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 1999 by gezelter, Sat May 31 21:00:46 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"
# Line 97 | 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 128 | 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 183 | 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 271 | Line 291 | int main(int argc, char* argv[]){
291        painCave.isFatal = 1;
292        simError();
293      }
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 IcosahedralOfR(info, dumpFileName, sele1,
# Line 312 | Line 361 | int main(int argc, char* argv[]){
361                                          args_info.molname_arg,
362                                          args_info.begin_arg, args_info.end_arg);
363      } else{
315      std::string sele3 = args_info.sele3_arg;
364        analyser  = new SCDOrderParameter(info, dumpFileName,
365                                          sele1, sele2, sele3);
366      }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines