# | Line 35 | Line 35 | |
---|---|---|
35 | * | |
36 | * [1] Meineke, et al., J. Comp. Chem. 26, 252-271 (2005). | |
37 | * [2] Fennell & Gezelter, J. Chem. Phys. 124, 234104 (2006). | |
38 | < | * [3] Sun, Lin & Gezelter, J. Chem. Phys. 128, 24107 (2008). |
39 | < | * [4] Vardeman & Gezelter, in progress (2009). |
38 | > | * [3] Sun, Lin & Gezelter, J. Chem. Phys. 128, 234107 (2008). |
39 | > | * [4] Kuang & Gezelter, J. Chem. Phys. 133, 164101 (2010). |
40 | > | * [5] Vardeman, Stocker & Gezelter, J. Chem. Theory Comput. 7, 834 (2011). |
41 | */ | |
42 | ||
43 | #include <iostream> | |
44 | #include <fstream> | |
45 | #include <string> | |
46 | ||
46 | – | #include "brains/Register.hpp" |
47 | #include "brains/SimCreator.hpp" | |
48 | #include "brains/SimInfo.hpp" | |
49 | #include "utils/StringUtils.hpp" | |
50 | #include "utils/simError.h" | |
51 | ||
52 | #include "applications/dynamicProps/DynamicPropsCmd.h" | |
53 | + | #include "applications/dynamicProps/SelectionCorrFunc.hpp" |
54 | #include "applications/dynamicProps/DipoleCorrFunc.hpp" | |
55 | #include "applications/dynamicProps/RCorrFunc.hpp" | |
56 | #include "applications/dynamicProps/VCorrFunc.hpp" | |
57 | #include "applications/dynamicProps/LegendreCorrFunc.hpp" | |
58 | + | #include "applications/dynamicProps/LegendreCorrFuncZ.hpp" |
59 | #include "applications/dynamicProps/RadialRCorrFunc.hpp" | |
60 | #include "applications/dynamicProps/ThetaCorrFunc.hpp" | |
61 | #include "applications/dynamicProps/DirectionalRCorrFunc.hpp" | |
62 | #include "applications/dynamicProps/EnergyCorrFunc.hpp" | |
63 | #include "applications/dynamicProps/StressCorrFunc.hpp" | |
64 | + | #include "applications/dynamicProps/SystemDipoleCorrFunc.hpp" |
65 | + | #include "applications/dynamicProps/MomentumCorrFunc.hpp" |
66 | + | #include "applications/dynamicProps/cOHz.hpp" |
67 | + | #include "applications/dynamicProps/BondCorrFunc.hpp" |
68 | ||
63 | – | |
69 | using namespace OpenMD; | |
70 | ||
71 | int main(int argc, char* argv[]){ | |
72 | ||
68 | – | //register force fields |
69 | – | registerForceFields(); |
70 | – | |
73 | gengetopt_args_info args_info; | |
74 | ||
75 | //parse the command line option | |
# | Line 75 | Line 77 | int main(int argc, char* argv[]){ | |
77 | exit(1) ; | |
78 | } | |
79 | ||
78 | – | |
80 | //get the dumpfile name and meta-data file name | |
81 | std::string dumpFileName = args_info.input_arg; | |
82 | ||
83 | std::string sele1; | |
84 | std::string sele2; | |
85 | < | |
85 | > | |
86 | > | // check the first selection argument, or set it to the environment |
87 | > | // variable, or failing that, set it to "select all" |
88 | > | |
89 | if (args_info.sele1_given) { | |
90 | sele1 = args_info.sele1_arg; | |
91 | < | }else { |
91 | > | } else { |
92 | char* sele1Env= getenv("SELECTION1"); | |
93 | if (sele1Env) { | |
94 | sele1 = sele1Env; | |
95 | < | }else { |
96 | < | sprintf( painCave.errMsg, |
93 | < | "neither --sele1 option nor $SELECTION1 is set"); |
94 | < | painCave.severity = OPENMD_ERROR; |
95 | < | painCave.isFatal = 1; |
96 | < | simError(); |
95 | > | } else { |
96 | > | sele1 = "select all"; |
97 | } | |
98 | } | |
99 | < | |
99 | > | |
100 | > | // check the second selection argument, or set it to the environment |
101 | > | // variable, or failing that, set it to the first selection |
102 | > | |
103 | if (args_info.sele2_given) { | |
104 | sele2 = args_info.sele2_arg; | |
105 | < | }else { |
105 | > | } else { |
106 | char* sele2Env = getenv("SELECTION2"); | |
107 | if (sele2Env) { | |
108 | sele2 = sele2Env; | |
109 | < | } else { |
109 | > | } else { |
110 | > | //If sele2 is not specified, then the default behavior |
111 | > | //should be what is already intended for sele1 |
112 | sele2 = sele1; | |
113 | } | |
114 | } | |
# | Line 115 | Line 120 | int main(int argc, char* argv[]){ | |
120 | "Amount of memory being used: %llu bytes\n", memSize); | |
121 | painCave.severity = OPENMD_INFO; | |
122 | painCave.isFatal = 0; | |
123 | < | simError(); |
124 | < | |
123 | > | simError(); |
124 | > | |
125 | //parse md file and set up the system | |
126 | SimCreator creator; | |
127 | SimInfo* info = creator.createSim(dumpFileName, false); | |
128 | ||
124 | – | |
129 | TimeCorrFunc* corrFunc; | |
130 | < | if (args_info.dcorr_given){ |
130 | > | if(args_info.sdcorr_given){ |
131 | > | corrFunc = new SystemDipoleCorrFunc(info, dumpFileName, sele1, sele2, memSize); |
132 | > | } else if (args_info.selecorr_given){ |
133 | > | corrFunc = new SelectionCorrFunc(info, dumpFileName, sele1, sele2, memSize); |
134 | > | } else if (args_info.dcorr_given){ |
135 | corrFunc = new DipoleCorrFunc(info, dumpFileName, sele1, sele2, memSize); | |
136 | } else if (args_info.rcorr_given) { | |
137 | corrFunc = new RCorrFunc(info, dumpFileName, sele1, sele2, memSize); | |
# | Line 135 | Line 143 | int main(int argc, char* argv[]){ | |
143 | corrFunc = new DirectionalRCorrFunc(info, dumpFileName, sele1, sele2, memSize); | |
144 | } else if (args_info.vcorr_given) { | |
145 | corrFunc = new VCorrFunc(info, dumpFileName, sele1, sele2, memSize); | |
146 | + | } else if (args_info.bondcorr_given) { |
147 | + | corrFunc = new BondCorrFunc(info, dumpFileName, sele1, memSize); |
148 | } else if (args_info.helfandEcorr_given){ | |
149 | corrFunc = new EnergyCorrFunc(info, dumpFileName, sele1, sele2, memSize); | |
150 | } else if (args_info.stresscorr_given){ | |
151 | corrFunc = new StressCorrFunc(info, dumpFileName, sele1, sele2, memSize); | |
152 | + | } else if (args_info.momentum_given){ |
153 | + | corrFunc = new MomentumCorrFunc(info, dumpFileName, sele1, sele2, memSize); |
154 | } else if (args_info.lcorr_given) { | |
155 | int order; | |
156 | if (args_info.order_given) | |
157 | order = args_info.order_arg; | |
158 | else { | |
159 | sprintf( painCave.errMsg, | |
160 | < | "--order must be set if --lcoor is set\n"); |
160 | > | "--order must be set if --lcorr is set\n"); |
161 | painCave.severity = OPENMD_ERROR; | |
162 | painCave.isFatal = 1; | |
163 | simError(); | |
164 | } | |
165 | ||
166 | corrFunc = new LegendreCorrFunc(info, dumpFileName, sele1, sele2, order, memSize); | |
167 | + | } else if (args_info.lcorrZ_given) { |
168 | + | int order; |
169 | + | if (args_info.order_given) |
170 | + | order = args_info.order_arg; |
171 | + | else { |
172 | + | sprintf( painCave.errMsg, |
173 | + | "--order must be set if --lcorrZ is set\n"); |
174 | + | painCave.severity = OPENMD_ERROR; |
175 | + | painCave.isFatal = 1; |
176 | + | simError(); |
177 | + | } |
178 | + | |
179 | + | corrFunc = new LegendreCorrFuncZ(info, dumpFileName, sele1, sele2, order, args_info.nzbins_arg, memSize); |
180 | + | |
181 | + | } else if (args_info.cohZ_given) { |
182 | + | int order; |
183 | + | if (args_info.order_given) |
184 | + | order = args_info.order_arg; |
185 | + | else { |
186 | + | sprintf( painCave.errMsg, |
187 | + | "--order must be set if --cohZ is set\n"); |
188 | + | painCave.severity = OPENMD_ERROR; |
189 | + | painCave.isFatal = 1; |
190 | + | simError(); |
191 | + | } |
192 | + | |
193 | + | corrFunc = new COHZ(info, dumpFileName, sele1, sele2, order, args_info.nzbins_arg, memSize); |
194 | + | |
195 | } | |
196 | ||
197 | + | |
198 | if (args_info.output_given) { | |
199 | corrFunc->setOutputName(args_info.output_arg); | |
200 | } |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |