# | 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 | ||
62 | – | |
67 | using namespace OpenMD; | |
68 | ||
69 | int main(int argc, char* argv[]){ | |
70 | ||
67 | – | //register force fields |
68 | – | registerForceFields(); |
69 | – | |
71 | gengetopt_args_info args_info; | |
72 | ||
73 | //parse the command line option | |
# | Line 98 | Line 99 | int main(int argc, char* argv[]){ | |
99 | ||
100 | if (args_info.sele2_given) { | |
101 | sele2 = args_info.sele2_arg; | |
102 | < | }else { |
102 | > | } else { |
103 | char* sele2Env = getenv("SELECTION2"); | |
104 | if (sele2Env) { | |
105 | sele2 = sele2Env; | |
# | Line 107 | Line 108 | int main(int argc, char* argv[]){ | |
108 | } | |
109 | } | |
110 | ||
111 | + | // use the memory string to figure out how much memory we can use: |
112 | + | char *end; |
113 | + | long long int memSize = memparse(args_info.memory_arg, &end); |
114 | + | sprintf( painCave.errMsg, |
115 | + | "Amount of memory being used: %llu bytes\n", memSize); |
116 | + | painCave.severity = OPENMD_INFO; |
117 | + | painCave.isFatal = 0; |
118 | + | simError(); |
119 | + | |
120 | //parse md file and set up the system | |
121 | SimCreator creator; | |
122 | SimInfo* info = creator.createSim(dumpFileName, false); | |
123 | ||
114 | – | |
124 | TimeCorrFunc* corrFunc; | |
125 | < | if (args_info.dcorr_given){ |
126 | < | corrFunc = new DipoleCorrFunc(info, dumpFileName, sele1, sele2); |
125 | > | if(args_info.sdcorr_given){ |
126 | > | corrFunc = new SystemDipoleCorrFunc(info, dumpFileName, sele1, sele2, memSize); |
127 | > | } else if (args_info.selecorr_given){ |
128 | > | corrFunc = new SelectionCorrFunc(info, dumpFileName, sele1, sele2, memSize); |
129 | > | } else if (args_info.dcorr_given){ |
130 | > | corrFunc = new DipoleCorrFunc(info, dumpFileName, sele1, sele2, memSize); |
131 | } else if (args_info.rcorr_given) { | |
132 | < | corrFunc = new RCorrFunc(info, dumpFileName, sele1, sele2); |
132 | > | corrFunc = new RCorrFunc(info, dumpFileName, sele1, sele2, memSize); |
133 | } else if (args_info.r_rcorr_given) { | |
134 | < | corrFunc = new RadialRCorrFunc(info, dumpFileName, sele1, sele2); |
134 | > | corrFunc = new RadialRCorrFunc(info, dumpFileName, sele1, sele2, memSize); |
135 | } else if (args_info.thetacorr_given) { | |
136 | < | corrFunc = new ThetaCorrFunc(info, dumpFileName, sele1, sele2); |
136 | > | corrFunc = new ThetaCorrFunc(info, dumpFileName, sele1, sele2, memSize); |
137 | } else if (args_info.drcorr_given) { | |
138 | < | corrFunc = new DirectionalRCorrFunc(info, dumpFileName, sele1, sele2); |
138 | > | corrFunc = new DirectionalRCorrFunc(info, dumpFileName, sele1, sele2, memSize); |
139 | } else if (args_info.vcorr_given) { | |
140 | < | corrFunc = new VCorrFunc(info, dumpFileName, sele1, sele2); |
140 | > | corrFunc = new VCorrFunc(info, dumpFileName, sele1, sele2, memSize); |
141 | } else if (args_info.helfandEcorr_given){ | |
142 | < | corrFunc = new EnergyCorrFunc(info, dumpFileName, sele1, sele2); |
142 | > | corrFunc = new EnergyCorrFunc(info, dumpFileName, sele1, sele2, memSize); |
143 | } else if (args_info.stresscorr_given){ | |
144 | < | corrFunc = new StressCorrFunc(info, dumpFileName, sele1, sele2); |
144 | > | corrFunc = new StressCorrFunc(info, dumpFileName, sele1, sele2, memSize); |
145 | > | } else if (args_info.momentum_given){ |
146 | > | corrFunc = new MomentumCorrFunc(info, dumpFileName, sele1, sele2, memSize); |
147 | } else if (args_info.lcorr_given) { | |
148 | int order; | |
149 | if (args_info.order_given) | |
150 | order = args_info.order_arg; | |
151 | else { | |
152 | sprintf( painCave.errMsg, | |
153 | < | "--order must be set if --lcoor is set\n"); |
153 | > | "--order must be set if --lcorr is set\n"); |
154 | painCave.severity = OPENMD_ERROR; | |
155 | painCave.isFatal = 1; | |
156 | simError(); | |
157 | } | |
158 | ||
159 | < | corrFunc = new LegendreCorrFunc(info, dumpFileName, sele1, sele2, order); |
159 | > | corrFunc = new LegendreCorrFunc(info, dumpFileName, sele1, sele2, order, memSize); |
160 | > | } else if (args_info.lcorrZ_given) { |
161 | > | int order; |
162 | > | if (args_info.order_given) |
163 | > | order = args_info.order_arg; |
164 | > | else { |
165 | > | sprintf( painCave.errMsg, |
166 | > | "--order must be set if --lcorrZ is set\n"); |
167 | > | painCave.severity = OPENMD_ERROR; |
168 | > | painCave.isFatal = 1; |
169 | > | simError(); |
170 | > | } |
171 | > | |
172 | > | corrFunc = new LegendreCorrFuncZ(info, dumpFileName, sele1, sele2, order, args_info.nzbins_arg, memSize); |
173 | > | |
174 | } | |
175 | ||
176 | if (args_info.output_given) { |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |