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 1992 by gezelter, Thu Apr 24 17:30:00 2014 UTC vs.
Revision 2031 by jmichalk, Fri Oct 31 18:40:40 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 + #include "applications/staticProps/SurfaceDiffusion.hpp"
85  
86   using namespace OpenMD;
87  
# Line 95 | Line 99 | int main(int argc, char* argv[]){
99    std::string dumpFileName = args_info.input_arg;
100    std::string sele1;
101    std::string sele2;
102 +  std::string sele3;
103    
104    // check the first selection argument, or set it to the environment
105    // variable, or failing that, set it to "select all"
# Line 126 | Line 131 | int main(int argc, char* argv[]){
131      }
132    }
133  
134 +  // check the third selection argument, which is only set if
135 +  // requested by the user
136 +
137 +  if (args_info.sele3_given) sele3 = args_info.sele3_arg;
138 +
139    bool batchMode;
140    if (args_info.scd_given){
141      if (args_info.sele1_given &&
# Line 181 | Line 191 | int main(int argc, char* argv[]){
191      analyser  = new GofRZ(info, dumpFileName, sele1, sele2, maxLen, zmaxLen,
192                            args_info.nbins_arg, args_info.nbins_z_arg);
193    } else if (args_info.r_theta_given) {
194 <    analyser  = new GofRTheta(info, dumpFileName, sele1, sele2, maxLen,
195 <                              args_info.nbins_arg, args_info.nanglebins_arg);
196 <  } else if (args_info.r_omega_given) {
197 <    analyser  = new GofROmega(info, dumpFileName, sele1, sele2, maxLen,
198 <                              args_info.nbins_arg, args_info.nanglebins_arg);
194 >    if (args_info.sele3_given)
195 >      analyser  = new GofRTheta(info, dumpFileName, sele1, sele2, sele3, maxLen,
196 >                                args_info.nbins_arg, args_info.nanglebins_arg);
197 >    else
198 >      analyser  = new GofRTheta(info, dumpFileName, sele1, sele2, maxLen,
199 >                                args_info.nbins_arg, args_info.nanglebins_arg);
200 >  } else if (args_info.r_omega_given) {
201 >    if (args_info.sele3_given)
202 >      analyser  = new GofROmega(info, dumpFileName, sele1, sele2, sele3, maxLen,
203 >                                args_info.nbins_arg, args_info.nanglebins_arg);
204 >    else
205 >      analyser  = new GofROmega(info, dumpFileName, sele1, sele2, maxLen,
206 >                                args_info.nbins_arg, args_info.nanglebins_arg);
207 >
208    } else if (args_info.theta_omega_given) {
209 <    analyser  = new GofAngle2(info, dumpFileName, sele1, sele2,
210 <                              args_info.nanglebins_arg);
209 >    if (args_info.sele3_given)
210 >      analyser  = new GofAngle2(info, dumpFileName, sele1, sele2, sele3,
211 >                                args_info.nanglebins_arg);
212 >    else
213 >      analyser  = new GofAngle2(info, dumpFileName, sele1, sele2,
214 >                                args_info.nanglebins_arg);
215    } else if (args_info.gxyz_given) {
216      if (args_info.refsele_given) {
217        analyser= new GofXyz(info, dumpFileName, sele1, sele2,
# Line 242 | Line 265 | int main(int argc, char* argv[]){
265        painCave.isFatal = 1;
266        simError();
267      }
268 <    
268 >  } else if (args_info.multipole_given){
269 >    analyser = new MultipoleSum(info, dumpFileName, sele1,
270 >                                maxLen, args_info.nbins_arg);
271    } else if (args_info.tet_param_given) {
272      if (args_info.rcut_given) {  
273        analyser = new TetrahedralityParam(info, dumpFileName, sele1,
# Line 267 | Line 292 | int main(int argc, char* argv[]){
292        painCave.isFatal = 1;
293        simError();
294      }
295 +  } else if (args_info.tet_param_xyz_given) {
296 +    if (!args_info.rcut_given) {
297 +      sprintf( painCave.errMsg,
298 +               "A cutoff radius (rcut) must be specified when calculating"
299 +               " Tetrahedrality Parameters");
300 +      painCave.severity = OPENMD_ERROR;
301 +      painCave.isFatal = 1;
302 +      simError();
303 +    }
304 +    if (!args_info.voxelSize_given) {
305 +      sprintf( painCave.errMsg,
306 +               "A voxel size must be specified when calculating"
307 +               " volume-resolved Tetrahedrality Parameters");
308 +      painCave.severity = OPENMD_ERROR;
309 +      painCave.isFatal = 1;
310 +      simError();
311 +    }
312 +    if (!args_info.gaussWidth_given) {
313 +      sprintf( painCave.errMsg,
314 +               "A gaussian width must be specified when calculating"
315 +               " volume-resolved Tetrahedrality Parameters");
316 +      painCave.severity = OPENMD_ERROR;
317 +      painCave.isFatal = 1;
318 +      simError();
319 +    }
320 +    analyser = new TetrahedralityParamXYZ(info, dumpFileName, sele1, sele2,
321 +                                          args_info.rcut_arg,
322 +                                          args_info.voxelSize_arg,
323 +                                          args_info.gaussWidth_arg);
324    } else if (args_info.ior_given){
325      if (args_info.rcut_given) {
326        analyser = new IcosahedralOfR(info, dumpFileName, sele1,
# Line 308 | Line 362 | int main(int argc, char* argv[]){
362                                          args_info.molname_arg,
363                                          args_info.begin_arg, args_info.end_arg);
364      } else{
311      std::string sele3 = args_info.sele3_arg;
365        analyser  = new SCDOrderParameter(info, dumpFileName,
366                                          sele1, sele2, sele3);
367      }
# Line 326 | Line 379 | int main(int argc, char* argv[]){
379    } else if (args_info.rnemdrt_given) {
380      analyser = new RNEMDRTheta(info, dumpFileName, sele1,
381                                 args_info.nbins_arg, args_info.nanglebins_arg);
382 +  } else if (args_info.nitrile_given) {
383 +    analyser = new NitrileFrequencyMap(info, dumpFileName, sele1,
384 +                                       args_info.nbins_arg);
385    } else if (args_info.p_angle_given) {
386      if (args_info.sele1_given) {    
387        if (args_info.sele2_given)
# Line 359 | Line 415 | int main(int argc, char* argv[]){
415      analyser = new Hxy(info, dumpFileName, sele1, args_info.nbins_x_arg,
416                         args_info.nbins_y_arg, args_info.nbins_arg);
417   #endif
418 +  }else if (args_info.surfDiffusion_given){
419 +    analyser = new SurfaceDiffusion(info, dumpFileName, sele1, maxLen);
420    }else if (args_info.rho_r_given) {
421      if (args_info.radius_given){
422        analyser = new RhoR(info, dumpFileName, sele1, maxLen,args_info.nbins_arg,args_info.radius_arg);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines