ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/trunk/src/applications/staticProps/StaticProps.cpp
(Generate patch)

Comparing trunk/src/applications/staticProps/StaticProps.cpp (file contents):
Revision 1991 by gezelter, Wed Apr 23 20:34:17 2014 UTC vs.
Revision 2023 by gezelter, Thu Oct 2 14:35:14 2014 UTC

# Line 77 | Line 77
77   #include "applications/staticProps/AngleR.hpp"
78   #include "applications/staticProps/TetrahedralityParam.hpp"
79   #include "applications/staticProps/TetrahedralityParamZ.hpp"
80 + #include "applications/staticProps/TetrahedralityParamXYZ.hpp"
81   #include "applications/staticProps/RNEMDStats.hpp"
82 + #include "applications/staticProps/NitrileFrequencyMap.hpp"
83 + #include "applications/staticProps/MultipoleSum.hpp"
84  
85   using namespace OpenMD;
86  
# Line 95 | Line 98 | int main(int argc, char* argv[]){
98    std::string dumpFileName = args_info.input_arg;
99    std::string sele1;
100    std::string sele2;
101 +  std::string sele3;
102    
103    // check the first selection argument, or set it to the environment
104    // variable, or failing that, set it to "select all"
# Line 126 | Line 130 | int main(int argc, char* argv[]){
130      }
131    }
132  
133 +  // check the third selection argument, which is only set if
134 +  // requested by the user
135 +
136 +  if (args_info.sele3_given) sele3 = args_info.sele3_arg;
137 +
138    bool batchMode;
139    if (args_info.scd_given){
140      if (args_info.sele1_given &&
# Line 181 | Line 190 | int main(int argc, char* argv[]){
190      analyser  = new GofRZ(info, dumpFileName, sele1, sele2, maxLen, zmaxLen,
191                            args_info.nbins_arg, args_info.nbins_z_arg);
192    } else if (args_info.r_theta_given) {
193 <    analyser  = new GofRTheta(info, dumpFileName, sele1, sele2, maxLen,
194 <                              args_info.nbins_arg, args_info.nanglebins_arg);
193 >    if (args_info.sele3_given)
194 >      analyser  = new GofRTheta(info, dumpFileName, sele1, sele2, sele3, maxLen,
195 >                                args_info.nbins_arg, args_info.nanglebins_arg);
196 >    else
197 >      analyser  = new GofRTheta(info, dumpFileName, sele1, sele2, maxLen,
198 >                                args_info.nbins_arg, args_info.nanglebins_arg);
199    } else if (args_info.r_omega_given) {
200 <    analyser  = new GofROmega(info, dumpFileName, sele1, sele2, maxLen,
201 <                              args_info.nbins_arg, args_info.nanglebins_arg);
200 >    if (args_info.sele3_given)
201 >      analyser  = new GofROmega(info, dumpFileName, sele1, sele2, sele3, maxLen,
202 >                                args_info.nbins_arg, args_info.nanglebins_arg);
203 >    else
204 >      analyser  = new GofROmega(info, dumpFileName, sele1, sele2, maxLen,
205 >                                args_info.nbins_arg, args_info.nanglebins_arg);
206 >
207    } else if (args_info.theta_omega_given) {
208 <    analyser  = new GofAngle2(info, dumpFileName, sele1, sele2,
209 <                              args_info.nanglebins_arg);
208 >    if (args_info.sele3_given)
209 >      analyser  = new GofAngle2(info, dumpFileName, sele1, sele2, sele3,
210 >                                args_info.nanglebins_arg);
211 >    else
212 >      analyser  = new GofAngle2(info, dumpFileName, sele1, sele2,
213 >                                args_info.nanglebins_arg);
214    } else if (args_info.gxyz_given) {
215      if (args_info.refsele_given) {
216        analyser= new GofXyz(info, dumpFileName, sele1, sele2,
# Line 242 | Line 264 | int main(int argc, char* argv[]){
264        painCave.isFatal = 1;
265        simError();
266      }
267 <    
267 >  } else if (args_info.multipole_given){
268 >    analyser = new MultipoleSum(info, dumpFileName, sele1,
269 >                                maxLen, args_info.nbins_arg);
270    } else if (args_info.tet_param_given) {
271      if (args_info.rcut_given) {  
272        analyser = new TetrahedralityParam(info, dumpFileName, sele1,
# Line 267 | Line 291 | int main(int argc, char* argv[]){
291        painCave.isFatal = 1;
292        simError();
293      }
294 <  } else if (args_info.bor_given){
294 >  } else if (args_info.tet_param_xyz_given) {
295 >    if (!args_info.rcut_given) {
296 >      sprintf( painCave.errMsg,
297 >               "A cutoff radius (rcut) must be specified when calculating"
298 >               " Tetrahedrality Parameters");
299 >      painCave.severity = OPENMD_ERROR;
300 >      painCave.isFatal = 1;
301 >      simError();
302 >    }
303 >    if (!args_info.voxelSize_given) {
304 >      sprintf( painCave.errMsg,
305 >               "A voxel size must be specified when calculating"
306 >               " volume-resolved Tetrahedrality Parameters");
307 >      painCave.severity = OPENMD_ERROR;
308 >      painCave.isFatal = 1;
309 >      simError();
310 >    }
311 >    if (!args_info.gaussWidth_given) {
312 >      sprintf( painCave.errMsg,
313 >               "A gaussian width must be specified when calculating"
314 >               " volume-resolved Tetrahedrality Parameters");
315 >      painCave.severity = OPENMD_ERROR;
316 >      painCave.isFatal = 1;
317 >      simError();
318 >    }
319 >    analyser = new TetrahedralityParamXYZ(info, dumpFileName, sele1, sele2,
320 >                                          args_info.rcut_arg,
321 >                                          args_info.voxelSize_arg,
322 >                                          args_info.gaussWidth_arg);
323 >  } else if (args_info.ior_given){
324      if (args_info.rcut_given) {
325 <      analyser = new BOPofR(info, dumpFileName, sele1, args_info.rcut_arg,
325 >      analyser = new IcosahedralOfR(info, dumpFileName, sele1,
326 >                                    args_info.rcut_arg,
327 >                                    args_info.nbins_arg, maxLen);
328 >    } else {
329 >      sprintf( painCave.errMsg,
330 >               "A cutoff radius (rcut) must be specified when calculating Bond Order Parameters");
331 >      painCave.severity = OPENMD_ERROR;
332 >      painCave.isFatal = 1;
333 >      simError();
334 >    }
335 >  } else if (args_info.for_given){
336 >    if (args_info.rcut_given) {
337 >      analyser = new FCCOfR(info, dumpFileName, sele1, args_info.rcut_arg,
338                              args_info.nbins_arg, maxLen);
339      } else {
340        sprintf( painCave.errMsg,
# Line 296 | Line 361 | int main(int argc, char* argv[]){
361                                          args_info.molname_arg,
362                                          args_info.begin_arg, args_info.end_arg);
363      } else{
299      std::string sele3 = args_info.sele3_arg;
364        analyser  = new SCDOrderParameter(info, dumpFileName,
365                                          sele1, sele2, sele3);
366      }
# Line 314 | Line 378 | int main(int argc, char* argv[]){
378    } else if (args_info.rnemdrt_given) {
379      analyser = new RNEMDRTheta(info, dumpFileName, sele1,
380                                 args_info.nbins_arg, args_info.nanglebins_arg);
381 +  } else if (args_info.nitrile_given) {
382 +    analyser = new NitrileFrequencyMap(info, dumpFileName, sele1,
383 +                                       args_info.nbins_arg);
384    } else if (args_info.p_angle_given) {
385      if (args_info.sele1_given) {    
386        if (args_info.sele2_given)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines