--- trunk/src/applications/staticProps/StaticProps.cpp 2014/10/31 18:40:40 2031 +++ trunk/src/applications/staticProps/StaticProps.cpp 2015/03/07 21:41:51 2071 @@ -82,6 +82,7 @@ #include "applications/staticProps/NitrileFrequencyMap.hpp" #include "applications/staticProps/MultipoleSum.hpp" #include "applications/staticProps/SurfaceDiffusion.hpp" +#include "applications/staticProps/HBondGeometric.hpp" using namespace OpenMD; @@ -136,7 +137,7 @@ int main(int argc, char* argv[]){ if (args_info.sele3_given) sele3 = args_info.sele3_arg; - bool batchMode; + bool batchMode(false); if (args_info.scd_given){ if (args_info.sele1_given && args_info.sele2_given && args_info.sele3_given) { @@ -168,7 +169,7 @@ int main(int argc, char* argv[]){ SimInfo* info = creator.createSim(dumpFileName); RealType maxLen; - RealType zmaxLen; + RealType zmaxLen(0.0); if (args_info.length_given) { maxLen = args_info.length_arg; if (args_info.zlength_given){ @@ -433,6 +434,28 @@ int main(int argc, char* argv[]){ analyser = new NanoLength(info, dumpFileName, sele1); } else if (args_info.angle_r_given) { analyser = new AngleR(info, dumpFileName, sele1, maxLen,args_info.nbins_arg); + } else if (args_info.hbond_given){ + if (args_info.rcut_given) { + if (args_info.thetacut_given) { + + analyser = new HBondGeometric(info, dumpFileName, sele1, sele2, + args_info.rcut_arg, + args_info.thetacut_arg, + args_info.nbins_arg); + } else { + sprintf( painCave.errMsg, + "A cutoff angle (thetacut) must be specified when calculating Hydrogen Bonding Statistics"); + painCave.severity = OPENMD_ERROR; + painCave.isFatal = 1; + simError(); + } + } else { + sprintf( painCave.errMsg, + "A cutoff radius (rcut) must be specified when calculating Hydrogen Bonding Statistics"); + painCave.severity = OPENMD_ERROR; + painCave.isFatal = 1; + simError(); + } } if (args_info.output_given) {