51#include "applications/staticProps/BOPofR.hpp"
52#include "applications/staticProps/BondAngleDistribution.hpp"
53#include "applications/staticProps/BondOrderParameter.hpp"
54#include "applications/staticProps/DensityPlot.hpp"
55#include "applications/staticProps/GofAngle2.hpp"
56#include "applications/staticProps/GofR.hpp"
57#include "applications/staticProps/GofRAngle.hpp"
58#include "applications/staticProps/GofRAngle2.hpp"
59#include "applications/staticProps/GofRZ.hpp"
60#include "applications/staticProps/GofXyz.hpp"
61#include "applications/staticProps/GofZ.hpp"
62#include "applications/staticProps/KirkwoodBuff.hpp"
63#include "applications/staticProps/NanoLength.hpp"
64#include "applications/staticProps/NanoVolume.hpp"
65#include "applications/staticProps/ObjectCount.hpp"
66#include "applications/staticProps/P2OrderParameter.hpp"
67#include "applications/staticProps/P2R.hpp"
68#include "applications/staticProps/PipeDensity.hpp"
69#include "applications/staticProps/RhoZ.hpp"
70#include "applications/staticProps/RippleOP.hpp"
71#include "applications/staticProps/SCDOrderParameter.hpp"
72#include "applications/staticProps/StaticAnalyser.hpp"
73#include "applications/staticProps/TwoDGofR.hpp"
74#include "applications/staticProps/pAngle.hpp"
78#include "utils/simError.h"
79#if defined(HAVE_FFTW_H) || defined(HAVE_DFFTW_H) || defined(HAVE_FFTW3_H)
80#include "applications/staticProps/Hxy.hpp"
82#include "applications/staticProps/AngleR.hpp"
83#include "applications/staticProps/ChargeDensityZ.hpp"
84#include "applications/staticProps/ChargeHistogram.hpp"
85#include "applications/staticProps/ChargeR.hpp"
86#include "applications/staticProps/ChargeZ.hpp"
87#include "applications/staticProps/CoordinationNumber.hpp"
88#include "applications/staticProps/CurrentDensity.hpp"
89#include "applications/staticProps/DensityHistogram.hpp"
90#include "applications/staticProps/DipoleOrientation.hpp"
91#include "applications/staticProps/Field.hpp"
92#include "applications/staticProps/HBondGeometric.hpp"
93#include "applications/staticProps/HBondR.hpp"
94#include "applications/staticProps/HBondRvol.hpp"
95#include "applications/staticProps/HBondZ.hpp"
96#include "applications/staticProps/HBondZvol.hpp"
97#include "applications/staticProps/Kirkwood.hpp"
98#include "applications/staticProps/MassDensityR.hpp"
99#include "applications/staticProps/MassDensityZ.hpp"
100#include "applications/staticProps/MomentumHistogram.hpp"
101#include "applications/staticProps/MultipoleSum.hpp"
102#include "applications/staticProps/NitrileFrequencyMap.hpp"
103#include "applications/staticProps/NumberR.hpp"
104#include "applications/staticProps/NumberZ.hpp"
105#include "applications/staticProps/OrderParameterProbZ.hpp"
106#include "applications/staticProps/PositionZ.hpp"
108#include "applications/staticProps/RNEMDStats.hpp"
109#include "applications/staticProps/RhoR.hpp"
110#include "applications/staticProps/SurfaceDiffusion.hpp"
111#include "applications/staticProps/TetrahedralityHBMatrix.hpp"
112#include "applications/staticProps/TetrahedralityParam.hpp"
113#include "applications/staticProps/TetrahedralityParamDens.hpp"
114#include "applications/staticProps/TetrahedralityParamR.hpp"
115#include "applications/staticProps/TetrahedralityParamXYZ.hpp"
116#include "applications/staticProps/TetrahedralityParamZ.hpp"
117#include "applications/staticProps/TranslationalOrderParamZ.hpp"
118#include "applications/staticProps/VelocityZ.hpp"
122int main(
int argc,
char* argv[]) {
126 if (cmdline_parser(argc, argv, &args_info) != 0) { exit(1); }
129 std::string dumpFileName = args_info.
input_arg;
141 char* sele1Env = getenv(
"SELECTION1");
145 sele1 =
"select all";
155 char* sele2Env = getenv(
"SELECTION2");
175 bool batchMode(
false);
184 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
185 "below conditions are not satisfied:\n"
186 "0 <= begin && 0<= end && begin <= end-2\n");
187 painCave.severity = OPENMD_ERROR;
188 painCave.isFatal = 1;
193 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
194 "either --sele1, --sele2, --sele3 are specified,"
195 " or --molname, --begin, --end are specified\n");
196 painCave.severity = OPENMD_ERROR;
197 painCave.isFatal = 1;
216 case privilegedAxis_arg_x:
219 case privilegedAxis_arg_y:
222 case privilegedAxis_arg_z:
230 case privilegedAxis2_arg_x:
233 case privilegedAxis2_arg_y:
236 case privilegedAxis2_arg_z:
243 RealType zmaxLen(0.0);
251 maxLen = std::min(std::min(hmat(0, 0), hmat(1, 1)), hmat(2, 2)) / 2.0;
253 zmaxLen = hmat(privilegedAxis, privilegedAxis);
256 int nanglebins, nrbins;
293 case component_arg_x:
296 case component_arg_y:
299 case component_arg_z:
305 std::unique_ptr<StaticAnalyser> analyser {
nullptr};
308 analyser = std::make_unique<GofR>(info, dumpFileName, sele1, sele2, maxLen,
312 std::make_unique<GofZ>(info, dumpFileName, sele1, sele2, maxLen,
313 zmaxLen, args_info.
nbins_arg, privilegedAxis);
315 analyser = std::make_unique<GofRZ>(info, dumpFileName, sele1, sele2, maxLen,
320 analyser = std::make_unique<GofRTheta>(info, dumpFileName, sele1, sele2,
321 sele3, maxLen, nrbins, nanglebins);
323 analyser = std::make_unique<GofRTheta>(info, dumpFileName, sele1, sele2,
324 maxLen, nrbins, nanglebins);
327 analyser = std::make_unique<GofROmega>(info, dumpFileName, sele1, sele2,
328 sele3, maxLen, nrbins, nanglebins);
330 analyser = std::make_unique<GofROmega>(info, dumpFileName, sele1, sele2,
331 maxLen, nrbins, nanglebins);
334 analyser = std::make_unique<GofAngle2>(info, dumpFileName, sele1, sele2,
337 analyser = std::make_unique<GofAngle2>(info, dumpFileName, sele1, sele2,
341 analyser = std::make_unique<GofRAngle2>(
342 info, dumpFileName, sele1, sele2, sele3, maxLen, nrbins, nanglebins);
344 analyser = std::make_unique<GofRAngle2>(info, dumpFileName, sele1, sele2,
345 maxLen, nrbins, nanglebins);
348 analyser = std::make_unique<GofXyz>(info, dumpFileName, sele1, sele2,
352 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
353 "--refsele must set when --gxyz is used");
354 painCave.severity = OPENMD_ERROR;
355 painCave.isFatal = 1;
360 analyser = std::make_unique<TwoDGofR>(info, dumpFileName, sele1, sele2,
361 maxLen, args_info.
dz_arg, nrbins);
363 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
364 "A slab width (dz) must be specified when calculating TwoDGofR");
365 painCave.severity = OPENMD_ERROR;
366 painCave.isFatal = 1;
371 analyser = std::make_unique<KirkwoodBuff>(info, dumpFileName, sele1,
372 sele2, maxLen, nrbins);
375 painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
376 "Two selection scripts (--sele1 and --sele2) must be specified when "
377 "calculating Kirkwood Buff integrals");
378 painCave.severity = OPENMD_ERROR;
379 painCave.isFatal = 1;
385 analyser = std::make_unique<P2OrderParameter>(info, dumpFileName, sele1,
388 analyser = std::make_unique<P2OrderParameter>(info, dumpFileName, sele1,
392 std::make_unique<P2OrderParameter>(info, dumpFileName, sele1);
395 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
396 "At least one selection script (--sele1) must be specified when "
397 "calculating P2 order parameters");
398 painCave.severity = OPENMD_ERROR;
399 painCave.isFatal = 1;
403 analyser = std::make_unique<RippleOP>(info, dumpFileName, sele1, sele2);
406 analyser = std::make_unique<BondOrderParameter>(
409 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
410 "A cutoff radius (rcut) must be specified when calculating Bond "
413 painCave.severity = OPENMD_ERROR;
414 painCave.isFatal = 1;
418 analyser = std::make_unique<MultipoleSum>(info, dumpFileName, sele1, maxLen,
423 analyser = std::make_unique<TetrahedralityParam>(
426 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
427 "A cutoff radius (rcut) must be specified when calculating "
430 painCave.severity = OPENMD_ERROR;
431 painCave.isFatal = 1;
436 analyser = std::make_unique<TetrahedralityParamZ>(
437 info, dumpFileName, sele1, sele2, args_info.
rcut_arg,
440 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
441 "A cutoff radius (rcut) must be specified when calculating "
444 painCave.severity = OPENMD_ERROR;
445 painCave.isFatal = 1;
451 analyser = std::make_unique<TetrahedralityParamR>(
452 info, dumpFileName, sele1, sele2, sele3, args_info.
rcut_arg, maxLen,
455 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
456 "Selection3 (--sele3) must be given when calculating "
457 "Tetrahedrality Parameter Qk(r)");
458 painCave.severity = OPENMD_ERROR;
459 painCave.isFatal = 1;
463 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
464 "A cutoff radius (rcut) must be specified when calculating "
467 painCave.severity = OPENMD_ERROR;
468 painCave.isFatal = 1;
473 analyser = std::make_unique<TetrahedralityParamDens>(
474 info, dumpFileName, sele1, sele2, args_info.
rcut_arg,
477 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
478 "A cutoff radius (rcut) must be specified when calculating "
481 painCave.severity = OPENMD_ERROR;
482 painCave.isFatal = 1;
487 analyser = std::make_unique<TetrahedralityHBMatrix>(
491 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
492 "A cutoff radius (rcut) must be specified when calculating "
493 " Tetrahedrality Hydrogen Bonding Matrix");
494 painCave.severity = OPENMD_ERROR;
495 painCave.isFatal = 1;
500 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
501 "A cutoff radius (rcut) must be specified when calculating"
502 " Tetrahedrality Parameters");
503 painCave.severity = OPENMD_ERROR;
504 painCave.isFatal = 1;
508 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
509 "A voxel size must be specified when calculating"
510 " volume-resolved Tetrahedrality Parameters");
511 painCave.severity = OPENMD_ERROR;
512 painCave.isFatal = 1;
516 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
517 "A gaussian width must be specified when calculating"
518 " volume-resolved Tetrahedrality Parameters");
519 painCave.severity = OPENMD_ERROR;
520 painCave.isFatal = 1;
523 analyser = std::make_unique<TetrahedralityParamXYZ>(
524 info, dumpFileName, sele1, sele2, args_info.
rcut_arg,
528 analyser = std::make_unique<IcosahedralOfR>(
529 info, dumpFileName, sele1, args_info.
rcut_arg, nrbins, maxLen);
531 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
532 "A cutoff radius (rcut) must be specified when calculating Bond "
535 painCave.severity = OPENMD_ERROR;
536 painCave.isFatal = 1;
541 analyser = std::make_unique<FCCOfR>(info, dumpFileName, sele1,
542 args_info.
rcut_arg, nrbins, maxLen);
544 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
545 "A cutoff radius (rcut) must be specified when calculating Bond "
548 painCave.severity = OPENMD_ERROR;
549 painCave.isFatal = 1;
554 analyser = std::make_unique<BondAngleDistribution>(
557 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
558 "A cutoff radius (rcut) must be specified when calculating Bond "
561 painCave.severity = OPENMD_ERROR;
562 painCave.isFatal = 1;
567 analyser = std::make_unique<SCDOrderParameter>(
571 analyser = std::make_unique<SCDOrderParameter>(info, dumpFileName, sele1,
575 analyser = std::make_unique<DensityPlot>(info, dumpFileName, sele1, sele2,
578 analyser = std::make_unique<ObjectCount>(info, dumpFileName, sele1);
580 analyser = std::make_unique<MoleculeCount>(info, dumpFileName, sele1);
582 analyser = std::make_unique<RhoZ>(info, dumpFileName, sele1,
585 analyser = std::make_unique<DensityHistogram>(info, dumpFileName, sele1,
588 analyser = std::make_unique<MomentumHistogram>(
589 info, dumpFileName, sele1, args_info.
nbins_arg, momentum_type,
592 analyser = std::make_unique<ChargeHistogram>(info, dumpFileName, sele1,
595 analyser = std::make_unique<CurrentDensity>(
596 info, dumpFileName, sele1, args_info.
nbins_arg, privilegedAxis);
598 analyser = std::make_unique<ChargeZ>(info, dumpFileName, sele1,
601 analyser = std::make_unique<ChargeR>(info, dumpFileName, sele1, maxLen,
604 analyser = std::make_unique<NumberZ>(info, dumpFileName, sele1,
607 analyser = std::make_unique<NumberR>(info, dumpFileName, sele1, maxLen,
610 analyser = std::make_unique<MassDensityZ>(
611 info, dumpFileName, sele1, args_info.
nbins_arg, privilegedAxis);
613 analyser = std::make_unique<MassDensityR>(info, dumpFileName, sele1, maxLen,
616 analyser = std::make_unique<ChargeDensityZ>(
617 info, dumpFileName, sele1, args_info.
nbins_arg, vRadius,
620 analyser = std::make_unique<PositionZ>(info, dumpFileName, sele1,
623 switch (privilegedAxis) {
625 analyser = std::make_unique<PipeDensity>(
630 analyser = std::make_unique<PipeDensity>(
636 analyser = std::make_unique<PipeDensity>(
642 analyser = std::make_unique<RNEMDZ>(info, dumpFileName, sele1,
645 analyser = std::make_unique<RNEMDR>(info, dumpFileName, sele1, comsele,
648 analyser = std::make_unique<RNEMDRTheta>(info, dumpFileName, sele1, comsele,
649 nrbins, binWidth, nanglebins);
651 analyser = std::make_unique<NitrileFrequencyMap>(info, dumpFileName, sele1,
656 analyser = std::make_unique<pAngle>(info, dumpFileName, sele1, sele2,
660 analyser = std::make_unique<pAngle>(
664 analyser = std::make_unique<pAngle>(info, dumpFileName, sele1,
669 analyser = std::make_unique<pAngle>(info, dumpFileName, sele1,
672 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
673 "At least one selection script (--sele1) must be specified when "
674 "calculating P(angle) distributions");
675 painCave.severity = OPENMD_ERROR;
676 painCave.isFatal = 1;
679#if defined(HAVE_FFTW_H) || defined(HAVE_DFFTW_H) || defined(HAVE_FFTW3_H)
681 analyser = std::make_unique<Hxy>(
688 analyser = std::make_unique<CoordinationNumber>(
689 info, dumpFileName, sele1, sele2, args_info.
rcut_arg,
693 std::make_unique<SCN>(info, dumpFileName, sele1, sele2,
697 std::make_unique<GCN>(info, dumpFileName, sele1, sele2,
701 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
702 "A cutoff radius (rcut) must be specified when calculating\n"
703 "\t Coordination Numbers");
704 painCave.severity = OPENMD_ERROR;
705 painCave.isFatal = 1;
710 std::make_unique<SurfaceDiffusion>(info, dumpFileName, sele1, maxLen);
713 analyser = std::make_unique<RhoR>(info, dumpFileName, sele1, maxLen,
716 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
717 "A particle radius (radius) must be specified when calculating "
719 painCave.severity = OPENMD_ERROR;
720 painCave.isFatal = 1;
724 analyser = std::make_unique<NanoVolume>(info, dumpFileName, sele1);
726 analyser = std::make_unique<NanoLength>(info, dumpFileName, sele1);
730 analyser = std::make_unique<AngleR>(info, dumpFileName, sele1, sele2,
734 analyser = std::make_unique<AngleR>(
738 analyser = std::make_unique<AngleR>(info, dumpFileName, sele1,
744 std::make_unique<AngleR>(info, dumpFileName, sele1, maxLen, nrbins);
746 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
747 "At least one selection script (--sele1) must be specified when "
748 "calculating Angle(r) values");
749 painCave.severity = OPENMD_ERROR;
750 painCave.isFatal = 1;
756 analyser = std::make_unique<P2R>(info, dumpFileName, sele1, sele2,
760 analyser = std::make_unique<P2R>(
764 analyser = std::make_unique<P2R>(info, dumpFileName, sele1,
769 analyser = std::make_unique<P2R>(info, dumpFileName, sele1,
772 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
773 "At least one selection script (--sele1) must be specified when "
774 "calculating P2R values");
775 painCave.severity = OPENMD_ERROR;
776 painCave.isFatal = 1;
782 analyser = std::make_unique<P2Z>(info, dumpFileName, sele1, sele2,
786 analyser = std::make_unique<P2Z>(
790 analyser = std::make_unique<P2Z>(info, dumpFileName, sele1,
795 analyser = std::make_unique<P2Z>(info, dumpFileName, sele1,
798 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
799 "At least one selection script (--sele1) must be specified when "
800 "calculating P2Z values");
801 painCave.severity = OPENMD_ERROR;
802 painCave.isFatal = 1;
808 analyser = std::make_unique<HBondGeometric>(
809 info, dumpFileName, sele1, sele2, args_info.
rcut_arg,
812 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
813 "A cutoff angle (thetacut) must be specified when calculating "
815 "Bonding Statistics");
816 painCave.severity = OPENMD_ERROR;
817 painCave.isFatal = 1;
822 painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
823 "A cutoff radius (rcut) must be specified when calculating Hydrogen "
824 "Bonding Statistics");
825 painCave.severity = OPENMD_ERROR;
826 painCave.isFatal = 1;
833 analyser = std::make_unique<HBondZ>(
834 info, dumpFileName, sele1, sele2, args_info.
rcut_arg,
837 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
838 "A cutoff angle (thetacut) must be specified when calculating "
840 "Bonding Statistics");
841 painCave.severity = OPENMD_ERROR;
842 painCave.isFatal = 1;
847 painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
848 "A cutoff radius (rcut) must be specified when calculating Hydrogen "
849 "Bonding Statistics");
850 painCave.severity = OPENMD_ERROR;
851 painCave.isFatal = 1;
857 analyser = std::make_unique<HBondZvol>(
858 info, dumpFileName, sele1, sele2, args_info.
rcut_arg,
861 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
862 "A cutoff angle (thetacut) must be specified when calculating "
864 "Bonding Statistics");
865 painCave.severity = OPENMD_ERROR;
866 painCave.isFatal = 1;
871 painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
872 "A cutoff radius (rcut) must be specified when calculating Hydrogen "
873 "Bonding Statistics");
874 painCave.severity = OPENMD_ERROR;
875 painCave.isFatal = 1;
881 analyser = std::make_unique<HBondR>(
882 info, dumpFileName, sele1, sele2, sele3, args_info.
rcut_arg, maxLen,
885 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
886 "A cutoff angle (thetacut) must be specified when calculating "
888 "Bonding Statistics");
889 painCave.severity = OPENMD_ERROR;
890 painCave.isFatal = 1;
895 painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
896 "A cutoff radius (rcut) must be specified when calculating Hydrogen "
897 "Bonding Statistics");
898 painCave.severity = OPENMD_ERROR;
899 painCave.isFatal = 1;
905 analyser = std::make_unique<HBondRvol>(
906 info, dumpFileName, sele1, sele2, sele3, args_info.
rcut_arg, maxLen,
909 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
910 "A cutoff angle (thetacut) must be specified when calculating "
912 "Bonding Statistics");
913 painCave.severity = OPENMD_ERROR;
914 painCave.isFatal = 1;
919 painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
920 "A cutoff radius (rcut) must be specified when calculating Hydrogen "
921 "Bonding Statistics");
922 painCave.severity = OPENMD_ERROR;
923 painCave.isFatal = 1;
927 analyser = std::make_unique<PotDiff>(info, dumpFileName, sele1);
929 analyser = std::make_unique<Kirkwood>(info, dumpFileName, sele1, sele2,
932 analyser = std::make_unique<KirkwoodQuadrupoles>(info, dumpFileName, sele1,
933 sele2, maxLen, nrbins);
935 analyser = std::make_unique<DensityField>(info, dumpFileName, sele1,
938 analyser = std::make_unique<VelocityField>(info, dumpFileName, sele1,
941 switch (privilegedAxis) {
943 if (privilegedAxis2 == 1) {
944 analyser = std::make_unique<VelocityZ>(
946 args_info.
nbins_y_arg, privilegedAxis, privilegedAxis2);
947 }
else if (privilegedAxis2 == 2) {
948 analyser = std::make_unique<VelocityZ>(
950 args_info.
nbins_z_arg, privilegedAxis, privilegedAxis2);
954 if (privilegedAxis2 == 0) {
955 analyser = std::make_unique<VelocityZ>(
957 args_info.
nbins_x_arg, privilegedAxis, privilegedAxis2);
958 }
else if (privilegedAxis2 == 2) {
959 analyser = std::make_unique<VelocityZ>(
961 args_info.
nbins_z_arg, privilegedAxis, privilegedAxis2);
966 if (privilegedAxis2 == 0) {
967 analyser = std::make_unique<VelocityZ>(
969 args_info.
nbins_x_arg, privilegedAxis, privilegedAxis2);
970 }
else if (privilegedAxis2 == 1) {
971 analyser = std::make_unique<VelocityZ>(
973 args_info.
nbins_y_arg, privilegedAxis, privilegedAxis2);
980 analyser = std::make_unique<DipoleOrientation>(
985 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
986 "Dipole components must be provided.");
987 painCave.severity = OPENMD_ERROR;
988 painCave.isFatal = 1;
995 analyser = std::make_unique<OrderParameterProbZ>(
1000 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
1001 "Dipole components must be provided.");
1002 painCave.severity = OPENMD_ERROR;
1003 painCave.isFatal = 1;
1008 analyser = std::make_unique<TranslationalOrderParamZ>(
1009 info, dumpFileName, sele1, sele2, args_info.
rcut_arg,
1013 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
1014 "A cutoff radius (rcut) must be specified when calculating "
1015 "Translational Order "
1017 painCave.severity = OPENMD_ERROR;
1018 painCave.isFatal = 1;
1023 if (analyser != NULL) {
1025 analyser->setOutputName(args_info.
output_arg);
1029 analyser->process();
1031 snprintf(painCave.errMsg, MAX_SIM_ERROR_MSG_LENGTH,
1032 "StaticProps: No Analyser was created, nothing to do!");
1033 painCave.severity = OPENMD_ERROR;
1034 painCave.isFatal = 1;
StaticAnalyser for Potential Energy changes with charges turned off.
The header file for the command line option parser generated by GNU Gengetopt version 2....
The only responsibility of SimCreator is to parse the meta-data file and create a SimInfo instance ba...
SimInfo * createSim(const std::string &mdFileName, bool loadInitCoords=true)
Setup Simulation.
One of the heavy-weight classes of OpenMD, SimInfo maintains objects and variables relating to the cu...
SnapshotManager * getSnapshotManager()
Returns the snapshot manager.
Mat3x3d getHmat()
Returns the H-Matrix.
Snapshot * getCurrentSnapshot()
Returns the pointer of current snapshot.
This basic Periodic Table class was originally taken from the data.cpp file in OpenBabel.
Where the command line options are stored.
unsigned int nanglebins_given
Whether nanglebins was given.
unsigned int seleoffset2_given
Whether seleoffset2 was given.
char * sele2_arg
select second stuntdouble set (if sele2 is not set, use script from sele1).
unsigned int pipe_density_given
Whether pipe_density was given.
unsigned int surfDiffusion_given
Whether surfDiffusion was given.
unsigned int tet_param_r_given
Whether tet_param_r was given.
unsigned int output_given
Whether output was given.
double gaussWidth_arg
Gaussian width (angstroms).
unsigned int multipole_given
Whether multipole was given.
int nanglebins_arg
number of bins for cos(angle) (default='50').
unsigned int density_given
Whether density was given.
unsigned int comsele_given
Whether comsele was given.
unsigned int for_given
Whether for was given.
unsigned int thetacut_given
Whether thetacut was given.
char * atom_name_arg
name of atom for with average charge to be generated.
unsigned int scd_given
Whether scd was given.
unsigned int step_given
Whether step was given.
unsigned int rho_r_given
Whether rho_r was given.
unsigned int hullvol_given
Whether hullvol was given.
unsigned int net_charge_given
Whether net_charge was given.
unsigned int end_given
Whether end was given.
unsigned int ior_given
Whether ior was given.
unsigned int sele3_given
Whether sele3 was given.
double dipoleZ_arg
Z-component of the dipole with respect to body frame (default='-1.0').
double binWidth_arg
width of radial bins in angstroms (default='1.0').
unsigned int tet_hb_given
Whether tet_hb was given.
unsigned int chargez_given
Whether chargez was given.
unsigned int velocityZ_given
Whether velocityZ was given.
char * molname_arg
molecule name.
char * comsele_arg
select stunt doubles for center-of-mass reference point.
unsigned int voxelSize_given
Whether voxelSize was given.
unsigned int kirkwood_given
Whether kirkwood was given.
unsigned int gofr_given
Whether gofr was given.
unsigned int r_theta_omega_given
Whether r_theta_omega was given.
unsigned int potDiff_given
Whether potDiff was given.
unsigned int massdensityz_given
Whether massdensityz was given.
unsigned int molname_given
Whether molname was given.
int nbins_x_arg
number of bins in x axis (default='100').
unsigned int tet_param_z_given
Whether tet_param_z was given.
unsigned int gxyz_given
Whether gxyz was given.
unsigned int bo_given
Whether bo was given.
unsigned int kirkwoodQ_given
Whether kirkwoodQ was given.
unsigned int begin_given
Whether begin was given.
unsigned int p2z_given
Whether p2z was given.
double dipoleY_arg
Y-component of the dipole with respect to body frame (default='0.0').
int begin_arg
begin internal index.
unsigned int charge_density_z_given
Whether charge_density_z was given.
unsigned int cn_given
Whether cn was given.
unsigned int tet_param_given
Whether tet_param was given.
unsigned int dipole_orientation_given
Whether dipole_orientation was given.
unsigned int hbond_given
Whether hbond was given.
int nbins_y_arg
number of bins in y axis (default='100').
unsigned int hbondr_given
Whether hbondr was given.
unsigned int refsele_given
Whether refsele was given.
unsigned int bad_given
Whether bad was given.
unsigned int hbondrvol_given
Whether hbondrvol was given.
unsigned int charger_given
Whether charger was given.
unsigned int p2_given
Whether p2 was given.
unsigned int gaussWidth_given
Whether gaussWidth was given.
double length_arg
maximum length (default='100').
unsigned int rnemdr_given
Whether rnemdr was given.
char * sele3_arg
select third stuntdouble set.
unsigned int dipoleX_given
Whether dipoleX was given.
char * output_arg
output file name.
unsigned int eam_density_given
Whether eam_density was given.
unsigned int velocityfield_given
Whether velocityfield was given.
unsigned int tet_param_dens_given
Whether tet_param_dens was given.
unsigned int r_z_given
Whether r_z was given.
unsigned int v_radius_given
Whether v_radius was given.
char * input_arg
input dump file.
unsigned int hbondz_given
Whether hbondz was given.
int nbins_z_arg
number of bins in z axis (default='100').
double thetacut_arg
HOO cutoff angle (degrees) (default='30').
unsigned int dipoleZ_given
Whether dipoleZ was given.
unsigned int sele1_given
Whether sele1 was given.
unsigned int gcn_given
Whether gcn was given.
unsigned int length_given
Whether length was given.
int seleoffset_arg
global index offset for a second object (used to define a vector between sites in molecule).
unsigned int countz_given
Whether countz was given.
unsigned int rnemdrt_given
Whether rnemdrt was given.
unsigned int current_density_given
Whether current_density was given.
double rcut_arg
cutoff radius (angstroms).
unsigned int slab_density_given
Whether slab_density was given.
int gen_xyz_flag
generates xyz file (default=off).
unsigned int kirkwood_buff_given
Whether kirkwood_buff was given.
unsigned int p_angle_given
Whether p_angle was given.
unsigned int trans_param_z_given
Whether trans_param_z was given.
unsigned int densityfield_given
Whether densityfield was given.
enum enum_momentum momentum_arg
Type of momentum whose distribtution is required (default = Liner Momentum) (default='P').
char * refsele_arg
select reference.
double dz_arg
slab width (dz).
unsigned int twodgofr_given
Whether twodgofr was given.
enum enum_component component_arg
component of momentum for the momemtum distribution (default = z axis) (default='z').
double OHcut_arg
Oxygen-Hydrogen cutoff radius (angstroms) (default='2.45').
double voxelSize_arg
voxel size (angstroms).
char * sele1_arg
select first stuntdouble set.
double radius_arg
Nanoparticle radius in Angstroms.
unsigned int dipoleY_given
Whether dipoleY was given.
unsigned int order_prob_given
Whether order_prob was given.
double dipoleX_arg
X-component of the dipole with respect to body frame (default='0.0').
unsigned int rcut_given
Whether rcut was given.
unsigned int r_theta_given
Whether r_theta was given.
unsigned int nitrile_given
Whether nitrile was given.
unsigned int gofz_given
Whether gofz was given.
unsigned int rodlength_given
Whether rodlength was given.
unsigned int numberz_given
Whether numberz was given.
unsigned int radius_given
Whether radius was given.
unsigned int scn_given
Whether scn was given.
int nbins_arg
Number of bins (default='100').
unsigned int rp2_given
Whether rp2 was given.
unsigned int nrbins_given
Whether nrbins was given.
unsigned int p2r_given
Whether p2r was given.
enum enum_privilegedAxis privilegedAxis_arg
which axis is special for spatial analysis (default = z axis) (default='z').
unsigned int numberr_given
Whether numberr was given.
unsigned int hbondzvol_given
Whether hbondzvol was given.
unsigned int sele2_given
Whether sele2 was given.
double end_arg
ending affine scale (default='1.2').
unsigned int hxy_given
Whether hxy was given.
enum enum_privilegedAxis2 privilegedAxis2_arg
which axis is special for spatial analysis (default = x axis) (default='x').
unsigned int zlength_given
Whether zlength was given.
int seleoffset2_arg
global index offset for a third object (used to define a vector between sites in molecule).
double zlength_arg
maximum length (Defaults to 1/2 smallest length of first frame).
unsigned int r_omega_given
Whether r_omega was given.
unsigned int count_given
Whether count was given.
unsigned int momentum_distribution_given
Whether momentum_distribution was given.
unsigned int angle_r_given
Whether angle_r was given.
unsigned int tet_param_xyz_given
Whether tet_param_xyz was given.
double OOcut_arg
Oxygen-Oxygen cutoff radius (angstroms) (default='3.5').
int nrbins_arg
number of radial bins (usually duplicates functionality of nbins) (default='100').
unsigned int theta_omega_given
Whether theta_omega was given.
unsigned int seleoffset_given
Whether seleoffset was given.
unsigned int rnemdz_given
Whether rnemdz was given.
unsigned int massdensityr_given
Whether massdensityr was given.
double v_radius_arg
VanderWaals radiius for fictious atoms used in model eg.
unsigned int dz_given
Whether dz was given.
unsigned int mcount_given
Whether mcount was given.
int step_arg
process every n frame (default='1').