IGMPlot 3.16 Optimized IGMplot version able to use wfn/wfx/xyz files

Loading...
Searching...
No Matches
output.h
Go to the documentation of this file.
1/*
2 * Copyright University of Reims Champagne-Ardenne
3 * Authors and Contributors: Akilan RAJAMANI, Corentin LEFEBVRE, Johanna KLEIN,
4 * Emmanuel PLUOT, Hugo ROUSSEL, Gaetan RUBEZ, Hassan KHARTABIL,
5 * Jean-Charles BOISSON and Eric HENON
6 * (24/07/2017)
7 * jean-charles.boisson@univ-reims.fr, eric.henon@univ-reims.fr
8 *
9 * This software is a computer program whose purpose is to
10 * detect and quantify interactions from electron density
11 * obtained either internally from promolecular density or
12 * calculated from an input wave function input file. It also
13 * prepares for the visualization of isosurfaces representing
14 * several descriptors (dg) coming from the IGM methodology.
15 *
16 * This software is governed by the CeCILL-C license under French law and
17 * abiding by the rules of distribution of free software. You can use,
18 * modify and/ or redistribute the software under the terms of the CeCILL-C
19 * license as circulated by CEA, CNRS and INRIA at the following URL
20 * "http://www.cecill.info".
21 *
22 * As a counterpart to the access to the source code and rights to copy,
23 * modify and redistribute granted by the license, users are provided only
24 * with a limited warranty and the software's author, the holder of the
25 * economic rights, and the successive licensors have only limited
26 * liability.
27 *
28 * In this respect, the user's attention is drawn to the risks associated
29 * with loading, using, modifying and/or developing or reproducing the
30 * software by the user in light of its specific status of free software,
31 * that may mean that it is complicated to manipulate, and that also
32 * therefore means that it is reserved for developers and experienced
33 * professionals having in-depth computer knowledge. Users are therefore
34 * encouraged to load and test the software's suitability as regards their
35 * requirements in conditions enabling the security of their systems and/or
36 * data to be ensured and, more generally, to use and operate it in the
37 * same conditions as regards security.
38 *
39 * The fact that you are presently reading this means that you have had
40 * knowledge of the CeCILL-C license and that you accept its terms.
41 *
42 * */
43
48
49#ifndef _OUTPUT_H_
50#define _OUTPUT_H_
51
52/*
53#ifdef WINDOWS
54 #include<direct.h>
55 #include<windows.h>
57 #define getDir _getcwd
58#else
59 #include<unistd.h>
61 #define getDir getcwd
62 #endif*/
63
64// LOCAL
65//#include <ProgData.h>
66#include <reader.h>
67//#include <Results.h>
68#include <vmdFileGenerator.h>
69
71 const std::string CUBE_NAMES [] =
72 {
73 "dgIntra",
74 "dgInter",
75 "dkIntra",
76 "dkInter"
77 };
78
79
81 const std::string KEYWORDS [] =
82 {
83 "XX_DGINTER_XX",
84 "XX_DGINTRA_XX",
85 "XX_DENS_XX",
86 "XX_RDG_XX",
87 "XX_PERCENT_XX",
88 "XX_COMPLEX_XX",
89 "XX_CUTPLOT1_XX",
90 "XX_CUTPLOT2_XX",
91 "XX_CUTPLOTIGM1_XX",
92 "XX_CUTPLOTIGM2_XX",
93 "XX_VMDCOLRANGIGM1_XX",
94 "XX_VMDCOLRANGIGM2_XX",
95 "XX_CUTOFFS1_XX",
96 "XX_CUTOFFS2_XX",
97 "XX_FRAG1Def_XX",
98 "XX_FRAG2Def_XX",
99// "XX_FIRST_PROT_INDEX_XX", /**< Index of first atom of molecule B */
100// "XX_LAST_COMPLEX_INDEX_XX", /**< Index of last atom of all complex */
101// "XX_LAST_LIG_INDEX_XX", /**< Index of last atom in molecule A */
102 "XX_MAX_PERCENT_XX"
103 };
104
105
107 const int SCRIPT_NAMES_LENGTH = 3;
108
110 const std::string SCRIPT_NAMES [] =
111 {
112 "atContr",
113 "nci",
114 "igm"
115 };
116
125 void outCube(int cubeType, param_t * params, ProgData * data, double * cubeRho, double * cube);
126
140 void writeCube(param_t * params, ProgData * data, const char* cubeFileName, double *** rho, double *** cube, const bool usingThreshold=false, const double lowerlimit=0.0, const double upperlimit=0.0, const double defaultValue=0.0);
141
150 void outCubeRDG(param_t * params, ProgData * data, double * cube, double * rho, bool * shouldPrint);
151
158 void outCubeRho(param_t * params, ProgData * data, double * cube);
159
166 void outDat(param_t * params, ProgData * data, Results& results);
167
174 void outPercent(param_t * params, Results &results, ProgData * data);
175
184 void outPercentQM(param_t params, ProgData *data, double *dgInterAtSum, double dv, unsigned int nbAtoms); // WFX/N mode
185
186
187
197 void outVMD(param_t * params, ProgData * data, double max, double deltagIntraMaximumValue, double deltagInterMaximumValue, double dgAtWeakMaxValue);
198
211 void writeVMDfiles(param_t * params, ProgData * data, double deltagIntraMaximumValue=0.08,
212 double deltagInterMaximumValue=0.01, double dgAtWeakMaxValue=0.05,
213 std::vector<criticalpoint> cpList = std::vector<criticalpoint>(), double max=0.0, double selfmaxrange=0.0);
214
219std::string getWorkPath();
220
228 void writeXYZ(param_t &params, ProgData *data, unsigned int nbAtoms, positions_t &atomCoordinates);
229
235 void writeCPTXT(param_t &params, std::vector<criticalpoint> cpList);
236
237
246 void writeAtomDOI(param_t params, ProgData *data, double *dgAtSum, double *dgAtSumW,
247 double *dgAtSumW2, double dvi, unsigned int nbAtoms);
248
256 void writeSelfAtomDat(param_t params, ProgData *data, double *pauliAT,unsigned int nbAtoms);
257
258#endif
259
260
261
ProgData
Class designed to store the program's main dataprovide some utilities concerning those.
Definition ProgData.h:65
Results
Class designed to store all results that can be used as output by the program.
Definition Results.h:67
outVMD
void outVMD(param_t *params, ProgData *data, double max, double deltagIntraMaximumValue, double deltagInterMaximumValue, double dgAtWeakMaxValue)
Writes down the VM script for visualisation.
Definition output.cpp:809
getWorkPath
std::string getWorkPath()
returns a string with the current working path
Definition output.cpp:795
CUBE_NAMES
const std::string CUBE_NAMES[]
The cubes' names.
Definition output.h:71
writeSelfAtomDat
void writeSelfAtomDat(param_t params, ProgData *data, double *pauliAT, unsigned int nbAtoms)
write Atom contributions to the Pauli repulsion between two fragments (SELF analysis)
Definition output.cpp:1492
writeAtomDOI
void writeAtomDOI(param_t params, ProgData *data, double *dgAtSum, double *dgAtSumW, double *dgAtSumW2, double dvi, unsigned int nbAtoms)
write Atom Degree of Interaction find within the atomi IGM framework
Definition output.cpp:1456
writeXYZ
void writeXYZ(param_t &params, ProgData *data, unsigned int nbAtoms, positions_t &atomCoordinates)
write xyz atom coordinates using the xyz file format
Definition output.cpp:1297
KEYWORDS
const std::string KEYWORDS[]
The VMD script's intern keywords.
Definition output.h:81
writeCube
void writeCube(param_t *params, ProgData *data, const char *cubeFileName, double ***rho, double ***cube, const bool usingThreshold=false, const double lowerlimit=0.0, const double upperlimit=0.0, const double defaultValue=0.0)
Writes down the given cube and some parameters to help interpreting it.
Definition output.cpp:204
writeVMDfiles
void writeVMDfiles(param_t *params, ProgData *data, double deltagIntraMaximumValue=0.08, double deltagInterMaximumValue=0.01, double dgAtWeakMaxValue=0.05, std::vector< criticalpoint > cpList=std::vector< criticalpoint >(), double max=0.0, double selfmaxrange=0.0)
Writes down the VM script for visualisation (quantum version)
Definition output.cpp:1064
outPercentQM
void outPercentQM(param_t params, ProgData *data, double *dgInterAtSum, double dv, unsigned int nbAtoms)
Writes down the percentage participation for each atom to the INTER interactions.
Definition output.cpp:708
outCube
void outCube(int cubeType, param_t *params, ProgData *data, double *cubeRho, double *cube)
Writes down the given cube and some parameters to help interprete it.
Definition output.cpp:62
outCubeRho
void outCubeRho(param_t *params, ProgData *data, double *cube)
Writes down the given Rho cube and some parameters to help interpreting it.
Definition output.cpp:383
outDat
void outDat(param_t *params, ProgData *data, Results &results)
Writes down the given Rho and RDG cubes.
Definition output.cpp:458
outCubeRDG
void outCubeRDG(param_t *params, ProgData *data, double *cube, double *rho, bool *shouldPrint)
Writes down the given RDG cube and some parameters to help interpreting it.
Definition output.cpp:303
outPercent
void outPercent(param_t *params, Results &results, ProgData *data)
Writes down the percentage participation for each atom to the INTER interactions.
Definition output.cpp:625
writeCPTXT
void writeCPTXT(param_t &params, std::vector< criticalpoint > cpList)
write the cp.txt output file after a critical point analysis
Definition output.cpp:1330
SCRIPT_NAMES
const std::string SCRIPT_NAMES[]
The VMD script's type names.
Definition output.h:110
SCRIPT_NAMES_LENGTH
const int SCRIPT_NAMES_LENGTH
TO DOCUMENT.
Definition output.h:107
reader.h
Tool functions for reading input data.
param_t
Structure used for the storage of the parameters read from the parameter file param....
Definition general.h:560
positions_t
Structure containing a serie of 3D position.
Definition general.h:705
vmdFileGenerator.h
Header of functions generating vmd files.