hillclimber 0.1.5__cp313-cp313-musllinux_1_2_aarch64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- hillclimber/__init__.py +39 -0
- hillclimber/actions.py +53 -0
- hillclimber/analysis.py +590 -0
- hillclimber/biases.py +293 -0
- hillclimber/calc.py +22 -0
- hillclimber/cvs.py +1070 -0
- hillclimber/interfaces.py +133 -0
- hillclimber/metadynamics.py +325 -0
- hillclimber/nodes.py +6 -0
- hillclimber/opes.py +359 -0
- hillclimber/selectors.py +230 -0
- hillclimber/virtual_atoms.py +341 -0
- hillclimber-0.1.5.dist-info/METADATA +210 -0
- hillclimber-0.1.5.dist-info/RECORD +472 -0
- hillclimber-0.1.5.dist-info/WHEEL +5 -0
- hillclimber-0.1.5.dist-info/entry_points.txt +8 -0
- hillclimber-0.1.5.dist-info/licenses/LICENSE +165 -0
- hillclimber-0.1.5.dist-info/sboms/auditwheel.cdx.json +1 -0
- hillclimber.libs/libgcc_s-2d945d6c.so.1 +0 -0
- hillclimber.libs/libgomp-1ede7ee7.so.1.0.0 +0 -0
- hillclimber.libs/libstdc++-85f2cd6d.so.6.0.33 +0 -0
- plumed/__init__.py +104 -0
- plumed/_lib/bin/plumed +0 -0
- plumed/_lib/bin/plumed-config +9 -0
- plumed/_lib/bin/plumed-patch +9 -0
- plumed/_lib/include/plumed/adjmat/AdjacencyMatrixBase.h +659 -0
- plumed/_lib/include/plumed/adjmat/ContactMatrix.h +59 -0
- plumed/_lib/include/plumed/asmjit/arch.h +228 -0
- plumed/_lib/include/plumed/asmjit/arm.h +43 -0
- plumed/_lib/include/plumed/asmjit/asmjit.h +69 -0
- plumed/_lib/include/plumed/asmjit/asmjit_apibegin.h +143 -0
- plumed/_lib/include/plumed/asmjit/asmjit_apiend.h +93 -0
- plumed/_lib/include/plumed/asmjit/asmjit_build.h +971 -0
- plumed/_lib/include/plumed/asmjit/assembler.h +183 -0
- plumed/_lib/include/plumed/asmjit/base.h +56 -0
- plumed/_lib/include/plumed/asmjit/codebuilder.h +944 -0
- plumed/_lib/include/plumed/asmjit/codecompiler.h +767 -0
- plumed/_lib/include/plumed/asmjit/codeemitter.h +528 -0
- plumed/_lib/include/plumed/asmjit/codeholder.h +777 -0
- plumed/_lib/include/plumed/asmjit/constpool.h +286 -0
- plumed/_lib/include/plumed/asmjit/cpuinfo.h +402 -0
- plumed/_lib/include/plumed/asmjit/func.h +1327 -0
- plumed/_lib/include/plumed/asmjit/globals.h +370 -0
- plumed/_lib/include/plumed/asmjit/inst.h +137 -0
- plumed/_lib/include/plumed/asmjit/logging.h +317 -0
- plumed/_lib/include/plumed/asmjit/misc_p.h +103 -0
- plumed/_lib/include/plumed/asmjit/moved_string.h +318 -0
- plumed/_lib/include/plumed/asmjit/operand.h +1599 -0
- plumed/_lib/include/plumed/asmjit/osutils.h +207 -0
- plumed/_lib/include/plumed/asmjit/regalloc_p.h +597 -0
- plumed/_lib/include/plumed/asmjit/runtime.h +227 -0
- plumed/_lib/include/plumed/asmjit/simdtypes.h +1104 -0
- plumed/_lib/include/plumed/asmjit/utils.h +1387 -0
- plumed/_lib/include/plumed/asmjit/vmem.h +183 -0
- plumed/_lib/include/plumed/asmjit/x86.h +45 -0
- plumed/_lib/include/plumed/asmjit/x86assembler.h +125 -0
- plumed/_lib/include/plumed/asmjit/x86builder.h +117 -0
- plumed/_lib/include/plumed/asmjit/x86compiler.h +322 -0
- plumed/_lib/include/plumed/asmjit/x86emitter.h +5149 -0
- plumed/_lib/include/plumed/asmjit/x86globals.h +535 -0
- plumed/_lib/include/plumed/asmjit/x86inst.h +2547 -0
- plumed/_lib/include/plumed/asmjit/x86instimpl_p.h +74 -0
- plumed/_lib/include/plumed/asmjit/x86internal_p.h +108 -0
- plumed/_lib/include/plumed/asmjit/x86logging_p.h +92 -0
- plumed/_lib/include/plumed/asmjit/x86misc.h +417 -0
- plumed/_lib/include/plumed/asmjit/x86operand.h +1133 -0
- plumed/_lib/include/plumed/asmjit/x86regalloc_p.h +734 -0
- plumed/_lib/include/plumed/asmjit/zone.h +1157 -0
- plumed/_lib/include/plumed/bias/Bias.h +82 -0
- plumed/_lib/include/plumed/bias/ReweightBase.h +58 -0
- plumed/_lib/include/plumed/blas/blas.h +253 -0
- plumed/_lib/include/plumed/blas/def_external.h +61 -0
- plumed/_lib/include/plumed/blas/def_internal.h +97 -0
- plumed/_lib/include/plumed/blas/real.h +49 -0
- plumed/_lib/include/plumed/cltools/CLTool.h +32 -0
- plumed/_lib/include/plumed/clusters/ClusteringBase.h +70 -0
- plumed/_lib/include/plumed/colvar/Colvar.h +32 -0
- plumed/_lib/include/plumed/colvar/ColvarInput.h +68 -0
- plumed/_lib/include/plumed/colvar/ColvarShortcut.h +81 -0
- plumed/_lib/include/plumed/colvar/CoordinationBase.h +52 -0
- plumed/_lib/include/plumed/colvar/MultiColvarTemplate.h +333 -0
- plumed/_lib/include/plumed/colvar/PathMSDBase.h +101 -0
- plumed/_lib/include/plumed/colvar/RMSDVector.h +78 -0
- plumed/_lib/include/plumed/config/Config.h +118 -0
- plumed/_lib/include/plumed/config/version.h +9 -0
- plumed/_lib/include/plumed/contour/ContourFindingObject.h +87 -0
- plumed/_lib/include/plumed/contour/DistanceFromContourBase.h +82 -0
- plumed/_lib/include/plumed/contour/FindContour.h +67 -0
- plumed/_lib/include/plumed/core/Action.h +540 -0
- plumed/_lib/include/plumed/core/ActionAnyorder.h +48 -0
- plumed/_lib/include/plumed/core/ActionAtomistic.h +343 -0
- plumed/_lib/include/plumed/core/ActionForInterface.h +99 -0
- plumed/_lib/include/plumed/core/ActionPilot.h +57 -0
- plumed/_lib/include/plumed/core/ActionRegister.h +124 -0
- plumed/_lib/include/plumed/core/ActionSet.h +163 -0
- plumed/_lib/include/plumed/core/ActionSetup.h +48 -0
- plumed/_lib/include/plumed/core/ActionShortcut.h +73 -0
- plumed/_lib/include/plumed/core/ActionToGetData.h +59 -0
- plumed/_lib/include/plumed/core/ActionToPutData.h +101 -0
- plumed/_lib/include/plumed/core/ActionWithArguments.h +140 -0
- plumed/_lib/include/plumed/core/ActionWithMatrix.h +87 -0
- plumed/_lib/include/plumed/core/ActionWithValue.h +258 -0
- plumed/_lib/include/plumed/core/ActionWithVector.h +94 -0
- plumed/_lib/include/plumed/core/ActionWithVirtualAtom.h +123 -0
- plumed/_lib/include/plumed/core/CLTool.h +177 -0
- plumed/_lib/include/plumed/core/CLToolMain.h +102 -0
- plumed/_lib/include/plumed/core/CLToolRegister.h +108 -0
- plumed/_lib/include/plumed/core/Colvar.h +115 -0
- plumed/_lib/include/plumed/core/DataPassingObject.h +94 -0
- plumed/_lib/include/plumed/core/DataPassingTools.h +54 -0
- plumed/_lib/include/plumed/core/DomainDecomposition.h +120 -0
- plumed/_lib/include/plumed/core/ExchangePatterns.h +47 -0
- plumed/_lib/include/plumed/core/FlexibleBin.h +63 -0
- plumed/_lib/include/plumed/core/GREX.h +61 -0
- plumed/_lib/include/plumed/core/GenericMolInfo.h +89 -0
- plumed/_lib/include/plumed/core/Group.h +41 -0
- plumed/_lib/include/plumed/core/ModuleMap.h +30 -0
- plumed/_lib/include/plumed/core/ParallelTaskManager.h +1023 -0
- plumed/_lib/include/plumed/core/PbcAction.h +61 -0
- plumed/_lib/include/plumed/core/PlumedMain.h +632 -0
- plumed/_lib/include/plumed/core/PlumedMainInitializer.h +118 -0
- plumed/_lib/include/plumed/core/RegisterBase.h +340 -0
- plumed/_lib/include/plumed/core/TargetDist.h +48 -0
- plumed/_lib/include/plumed/core/Value.h +547 -0
- plumed/_lib/include/plumed/core/WithCmd.h +93 -0
- plumed/_lib/include/plumed/dimred/SMACOF.h +55 -0
- plumed/_lib/include/plumed/drr/DRR.h +383 -0
- plumed/_lib/include/plumed/drr/colvar_UIestimator.h +777 -0
- plumed/_lib/include/plumed/fisst/legendre_rule_fast.h +44 -0
- plumed/_lib/include/plumed/function/Custom.h +54 -0
- plumed/_lib/include/plumed/function/Function.h +85 -0
- plumed/_lib/include/plumed/function/FunctionOfMatrix.h +368 -0
- plumed/_lib/include/plumed/function/FunctionOfScalar.h +135 -0
- plumed/_lib/include/plumed/function/FunctionOfVector.h +296 -0
- plumed/_lib/include/plumed/function/FunctionSetup.h +180 -0
- plumed/_lib/include/plumed/function/FunctionShortcut.h +130 -0
- plumed/_lib/include/plumed/function/FunctionWithSingleArgument.h +165 -0
- plumed/_lib/include/plumed/gridtools/ActionWithGrid.h +43 -0
- plumed/_lib/include/plumed/gridtools/EvaluateGridFunction.h +99 -0
- plumed/_lib/include/plumed/gridtools/FunctionOfGrid.h +295 -0
- plumed/_lib/include/plumed/gridtools/GridCoordinatesObject.h +179 -0
- plumed/_lib/include/plumed/gridtools/GridSearch.h +135 -0
- plumed/_lib/include/plumed/gridtools/Interpolator.h +45 -0
- plumed/_lib/include/plumed/gridtools/KDE.h +455 -0
- plumed/_lib/include/plumed/gridtools/RDF.h +40 -0
- plumed/_lib/include/plumed/gridtools/SumOfKernels.h +219 -0
- plumed/_lib/include/plumed/isdb/MetainferenceBase.h +398 -0
- plumed/_lib/include/plumed/lapack/def_external.h +207 -0
- plumed/_lib/include/plumed/lapack/def_internal.h +388 -0
- plumed/_lib/include/plumed/lapack/lapack.h +899 -0
- plumed/_lib/include/plumed/lapack/lapack_limits.h +79 -0
- plumed/_lib/include/plumed/lapack/real.h +50 -0
- plumed/_lib/include/plumed/lepton/CompiledExpression.h +164 -0
- plumed/_lib/include/plumed/lepton/CustomFunction.h +143 -0
- plumed/_lib/include/plumed/lepton/Exception.h +93 -0
- plumed/_lib/include/plumed/lepton/ExpressionProgram.h +137 -0
- plumed/_lib/include/plumed/lepton/ExpressionTreeNode.h +145 -0
- plumed/_lib/include/plumed/lepton/Lepton.h +85 -0
- plumed/_lib/include/plumed/lepton/MSVC_erfc.h +123 -0
- plumed/_lib/include/plumed/lepton/Operation.h +1302 -0
- plumed/_lib/include/plumed/lepton/ParsedExpression.h +165 -0
- plumed/_lib/include/plumed/lepton/Parser.h +111 -0
- plumed/_lib/include/plumed/lepton/windowsIncludes.h +73 -0
- plumed/_lib/include/plumed/mapping/Path.h +44 -0
- plumed/_lib/include/plumed/mapping/PathProjectionCalculator.h +57 -0
- plumed/_lib/include/plumed/matrixtools/MatrixOperationBase.h +54 -0
- plumed/_lib/include/plumed/matrixtools/MatrixTimesMatrix.h +309 -0
- plumed/_lib/include/plumed/matrixtools/MatrixTimesVectorBase.h +365 -0
- plumed/_lib/include/plumed/matrixtools/OuterProduct.h +238 -0
- plumed/_lib/include/plumed/maze/Core.h +65 -0
- plumed/_lib/include/plumed/maze/Loss.h +86 -0
- plumed/_lib/include/plumed/maze/Member.h +66 -0
- plumed/_lib/include/plumed/maze/Memetic.h +799 -0
- plumed/_lib/include/plumed/maze/Optimizer.h +357 -0
- plumed/_lib/include/plumed/maze/Random_MT.h +156 -0
- plumed/_lib/include/plumed/maze/Tools.h +183 -0
- plumed/_lib/include/plumed/metatomic/vesin.h +188 -0
- plumed/_lib/include/plumed/molfile/Gromacs.h +2013 -0
- plumed/_lib/include/plumed/molfile/endianswap.h +217 -0
- plumed/_lib/include/plumed/molfile/fastio.h +683 -0
- plumed/_lib/include/plumed/molfile/largefiles.h +78 -0
- plumed/_lib/include/plumed/molfile/libmolfile_plugin.h +77 -0
- plumed/_lib/include/plumed/molfile/molfile_plugin.h +1034 -0
- plumed/_lib/include/plumed/molfile/periodic_table.h +248 -0
- plumed/_lib/include/plumed/molfile/readpdb.h +447 -0
- plumed/_lib/include/plumed/molfile/vmdplugin.h +236 -0
- plumed/_lib/include/plumed/multicolvar/MultiColvarShortcuts.h +45 -0
- plumed/_lib/include/plumed/opes/ExpansionCVs.h +79 -0
- plumed/_lib/include/plumed/sasa/Sasa.h +32 -0
- plumed/_lib/include/plumed/secondarystructure/SecondaryStructureBase.h +372 -0
- plumed/_lib/include/plumed/setup/ActionSetup.h +25 -0
- plumed/_lib/include/plumed/small_vector/small_vector.h +6114 -0
- plumed/_lib/include/plumed/symfunc/CoordinationNumbers.h +41 -0
- plumed/_lib/include/plumed/tools/Angle.h +52 -0
- plumed/_lib/include/plumed/tools/AtomDistribution.h +138 -0
- plumed/_lib/include/plumed/tools/AtomNumber.h +152 -0
- plumed/_lib/include/plumed/tools/BiasRepresentation.h +106 -0
- plumed/_lib/include/plumed/tools/BitmaskEnum.h +167 -0
- plumed/_lib/include/plumed/tools/Brent1DRootSearch.h +159 -0
- plumed/_lib/include/plumed/tools/CheckInRange.h +44 -0
- plumed/_lib/include/plumed/tools/Citations.h +74 -0
- plumed/_lib/include/plumed/tools/ColvarOutput.h +118 -0
- plumed/_lib/include/plumed/tools/Communicator.h +316 -0
- plumed/_lib/include/plumed/tools/ConjugateGradient.h +80 -0
- plumed/_lib/include/plumed/tools/DLLoader.h +79 -0
- plumed/_lib/include/plumed/tools/ERMSD.h +73 -0
- plumed/_lib/include/plumed/tools/Exception.h +406 -0
- plumed/_lib/include/plumed/tools/File.h +28 -0
- plumed/_lib/include/plumed/tools/FileBase.h +153 -0
- plumed/_lib/include/plumed/tools/FileTools.h +37 -0
- plumed/_lib/include/plumed/tools/ForwardDecl.h +54 -0
- plumed/_lib/include/plumed/tools/Grid.h +638 -0
- plumed/_lib/include/plumed/tools/HistogramBead.h +136 -0
- plumed/_lib/include/plumed/tools/IFile.h +117 -0
- plumed/_lib/include/plumed/tools/KernelFunctions.h +113 -0
- plumed/_lib/include/plumed/tools/Keywords.h +380 -0
- plumed/_lib/include/plumed/tools/LatticeReduction.h +66 -0
- plumed/_lib/include/plumed/tools/LeptonCall.h +64 -0
- plumed/_lib/include/plumed/tools/LinkCells.h +126 -0
- plumed/_lib/include/plumed/tools/Log.h +41 -0
- plumed/_lib/include/plumed/tools/LoopUnroller.h +163 -0
- plumed/_lib/include/plumed/tools/Matrix.h +721 -0
- plumed/_lib/include/plumed/tools/MatrixSquareBracketsAccess.h +138 -0
- plumed/_lib/include/plumed/tools/MergeVectorTools.h +153 -0
- plumed/_lib/include/plumed/tools/Minimise1DBrent.h +244 -0
- plumed/_lib/include/plumed/tools/MinimiseBase.h +120 -0
- plumed/_lib/include/plumed/tools/MolDataClass.h +51 -0
- plumed/_lib/include/plumed/tools/NeighborList.h +112 -0
- plumed/_lib/include/plumed/tools/OFile.h +286 -0
- plumed/_lib/include/plumed/tools/OpenACC.h +180 -0
- plumed/_lib/include/plumed/tools/OpenMP.h +75 -0
- plumed/_lib/include/plumed/tools/PDB.h +154 -0
- plumed/_lib/include/plumed/tools/Pbc.h +139 -0
- plumed/_lib/include/plumed/tools/PlumedHandle.h +105 -0
- plumed/_lib/include/plumed/tools/RMSD.h +493 -0
- plumed/_lib/include/plumed/tools/Random.h +80 -0
- plumed/_lib/include/plumed/tools/RootFindingBase.h +79 -0
- plumed/_lib/include/plumed/tools/Stopwatch.h +475 -0
- plumed/_lib/include/plumed/tools/Subprocess.h +142 -0
- plumed/_lib/include/plumed/tools/SwitchingFunction.h +208 -0
- plumed/_lib/include/plumed/tools/Tensor.h +724 -0
- plumed/_lib/include/plumed/tools/TokenizedLine.h +123 -0
- plumed/_lib/include/plumed/tools/Tools.h +638 -0
- plumed/_lib/include/plumed/tools/Torsion.h +55 -0
- plumed/_lib/include/plumed/tools/TrajectoryParser.h +118 -0
- plumed/_lib/include/plumed/tools/Tree.h +61 -0
- plumed/_lib/include/plumed/tools/TypesafePtr.h +463 -0
- plumed/_lib/include/plumed/tools/Units.h +167 -0
- plumed/_lib/include/plumed/tools/Vector.h +433 -0
- plumed/_lib/include/plumed/tools/View.h +296 -0
- plumed/_lib/include/plumed/tools/View2D.h +100 -0
- plumed/_lib/include/plumed/tools/h36.h +39 -0
- plumed/_lib/include/plumed/vatom/ActionWithVirtualAtom.h +32 -0
- plumed/_lib/include/plumed/ves/BasisFunctions.h +380 -0
- plumed/_lib/include/plumed/ves/CoeffsBase.h +310 -0
- plumed/_lib/include/plumed/ves/CoeffsMatrix.h +220 -0
- plumed/_lib/include/plumed/ves/CoeffsVector.h +251 -0
- plumed/_lib/include/plumed/ves/FermiSwitchingFunction.h +74 -0
- plumed/_lib/include/plumed/ves/GridIntegrationWeights.h +50 -0
- plumed/_lib/include/plumed/ves/GridLinearInterpolation.h +81 -0
- plumed/_lib/include/plumed/ves/GridProjWeights.h +61 -0
- plumed/_lib/include/plumed/ves/LinearBasisSetExpansion.h +303 -0
- plumed/_lib/include/plumed/ves/Optimizer.h +444 -0
- plumed/_lib/include/plumed/ves/TargetDistModifer.h +53 -0
- plumed/_lib/include/plumed/ves/TargetDistribution.h +266 -0
- plumed/_lib/include/plumed/ves/VesBias.h +545 -0
- plumed/_lib/include/plumed/ves/VesTools.h +142 -0
- plumed/_lib/include/plumed/ves/WaveletGrid.h +75 -0
- plumed/_lib/include/plumed/volumes/ActionVolume.h +268 -0
- plumed/_lib/include/plumed/volumes/VolumeShortcut.h +147 -0
- plumed/_lib/include/plumed/wrapper/Plumed.h +5025 -0
- plumed/_lib/include/plumed/xdrfile/xdrfile.h +663 -0
- plumed/_lib/include/plumed/xdrfile/xdrfile_trr.h +89 -0
- plumed/_lib/include/plumed/xdrfile/xdrfile_xtc.h +90 -0
- plumed/_lib/lib/PythonCVInterface.so +0 -0
- plumed/_lib/lib/libplumed.a +0 -0
- plumed/_lib/lib/libplumed.so +0 -0
- plumed/_lib/lib/libplumedKernel.so +0 -0
- plumed/_lib/lib/libplumedWrapper.a +0 -0
- plumed/_lib/lib/pkgconfig/plumed.pc +13 -0
- plumed/_lib/lib/pkgconfig/plumedInternals.pc +13 -0
- plumed/_lib/lib/pkgconfig/plumedWrapper.pc +13 -0
- plumed/_lib/lib/plumed/fortran/plumed.f90 +879 -0
- plumed/_lib/lib/plumed/fortran/plumed_f08.f90 +2625 -0
- plumed/_lib/lib/plumed/modulefile +69 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.config +43 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/CMakeLists.txt +543 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/CMakeLists.txt.preplumed +540 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/expanded.cpp +1628 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/expanded.cpp.preplumed +1590 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/expanded.h +103 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/expanded.h.preplumed +99 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/sim_util.cpp +2527 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/sim_util.cpp.preplumed +2513 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/legacymdrunoptions.cpp +208 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/legacymdrunoptions.cpp.preplumed +175 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/legacymdrunoptions.h +408 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/legacymdrunoptions.h.preplumed +394 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/md.cpp +2348 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/md.cpp.preplumed +2091 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/minimize.cpp +3573 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/minimize.cpp.preplumed +3495 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/replicaexchange.cpp +1506 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/replicaexchange.cpp.preplumed +1402 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/replicaexchange.h +114 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/replicaexchange.h.preplumed +106 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/rerun.cpp +997 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/rerun.cpp.preplumed +906 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/runner.cpp +2780 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/runner.cpp.preplumed +2738 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp +224 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp.preplumed +222 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.config +43 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/CMakeLists.txt +549 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/CMakeLists.txt.preplumed +546 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/expanded.cpp +1632 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/expanded.cpp.preplumed +1594 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/expanded.h +104 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/expanded.h.preplumed +100 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/sim_util.cpp +2624 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/sim_util.cpp.preplumed +2610 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/legacymdrunoptions.cpp +208 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/legacymdrunoptions.cpp.preplumed +175 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/legacymdrunoptions.h +409 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/legacymdrunoptions.h.preplumed +395 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/md.cpp +2419 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/md.cpp.preplumed +2164 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/minimize.cpp +3546 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/minimize.cpp.preplumed +3468 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/replicaexchange.cpp +1513 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/replicaexchange.cpp.preplumed +1409 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/replicaexchange.h +114 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/replicaexchange.h.preplumed +106 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/rerun.cpp +991 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/rerun.cpp.preplumed +900 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/runner.cpp +2895 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/runner.cpp.preplumed +2849 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp +224 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp.preplumed +222 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/taskassignment/decidegpuusage.cpp +886 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/taskassignment/decidegpuusage.cpp.preplumed +880 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/taskassignment/include/gromacs/taskassignment/decidegpuusage.h +347 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/taskassignment/include/gromacs/taskassignment/decidegpuusage.h.preplumed +345 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.config +43 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/CMakeLists.txt +575 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/CMakeLists.txt.preplumed +572 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/expanded.cpp +1632 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/expanded.cpp.preplumed +1594 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/expanded.h +104 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/expanded.h.preplumed +100 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/sim_util.cpp +2564 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/sim_util.cpp.preplumed +2550 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/legacymdrunoptions.cpp +208 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/legacymdrunoptions.cpp.preplumed +175 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/legacymdrunoptions.h +410 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/legacymdrunoptions.h.preplumed +396 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/md.cpp +2435 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/md.cpp.preplumed +2187 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/minimize.cpp +3592 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/minimize.cpp.preplumed +3514 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/replicaexchange.cpp +1513 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/replicaexchange.cpp.preplumed +1409 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/replicaexchange.h +114 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/replicaexchange.h.preplumed +106 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/rerun.cpp +958 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/rerun.cpp.preplumed +929 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/runner.cpp +2987 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/runner.cpp.preplumed +2941 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp +224 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp.preplumed +222 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/taskassignment/decidegpuusage.cpp +904 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/taskassignment/decidegpuusage.cpp.preplumed +898 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/taskassignment/include/gromacs/taskassignment/decidegpuusage.h +353 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/taskassignment/include/gromacs/taskassignment/decidegpuusage.h.preplumed +351 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.config +39 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/cmake/gmxManagePlumed.cmake +82 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/cmake/gmxManagePlumed.cmake.preplumed +82 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedMDModule.cpp +162 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedMDModule.cpp.preplumed +154 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedOptions.cpp +107 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedOptions.cpp.preplumed +99 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedOptions.h +120 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedOptions.h.preplumed +111 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedforceprovider.cpp +215 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedforceprovider.cpp.preplumed +197 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedforceprovider.h +87 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedforceprovider.h.preplumed +86 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/mdrun/runner.cpp +2971 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/mdrun/runner.cpp.preplumed +2970 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/mdrunutility/mdmodulesnotifiers.h +430 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/mdrunutility/mdmodulesnotifiers.h.preplumed +429 -0
- plumed/_lib/lib/plumed/patches/namd-2.12.config +30 -0
- plumed/_lib/lib/plumed/patches/namd-2.12.diff +267 -0
- plumed/_lib/lib/plumed/patches/namd-2.13.config +30 -0
- plumed/_lib/lib/plumed/patches/namd-2.13.diff +267 -0
- plumed/_lib/lib/plumed/patches/namd-2.14.config +30 -0
- plumed/_lib/lib/plumed/patches/namd-2.14.diff +268 -0
- plumed/_lib/lib/plumed/patches/patch.sh +500 -0
- plumed/_lib/lib/plumed/patches/qespresso-5.0.2.config +25 -0
- plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/forces.f90 +368 -0
- plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/forces.f90.preplumed +366 -0
- plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/plugin_forces.f90 +71 -0
- plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/plugin_forces.f90.preplumed +24 -0
- plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/plugin_initialization.f90 +62 -0
- plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/plugin_initialization.f90.preplumed +21 -0
- plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/pwscf.f90 +189 -0
- plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/pwscf.f90.preplumed +185 -0
- plumed/_lib/lib/plumed/patches/qespresso-6.2.config +26 -0
- plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/forces.f90 +422 -0
- plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/forces.f90.preplumed +420 -0
- plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/plugin_ext_forces.f90 +70 -0
- plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/plugin_ext_forces.f90.preplumed +23 -0
- plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/plugin_initialization.f90 +62 -0
- plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/plugin_initialization.f90.preplumed +21 -0
- plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/run_pwscf.f90 +233 -0
- plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/run_pwscf.f90.preplumed +230 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.config +28 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/Modules/Makefile +175 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/Modules/Makefile.preplumed +171 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/forces.f90 +486 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/forces.f90.preplumed +484 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/plugin_ext_forces.f90 +74 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/plugin_ext_forces.f90.preplumed +23 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/plugin_initialization.f90 +64 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/plugin_initialization.f90.preplumed +21 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/run_pwscf.f90 +532 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/run_pwscf.f90.preplumed +518 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.config +28 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/Modules/Makefile +249 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/Modules/Makefile.preplumed +244 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/forces.f90 +532 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/forces.f90.preplumed +535 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/plugin_ext_forces.f90 +74 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/plugin_ext_forces.f90.preplumed +23 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/plugin_initialization.f90 +64 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/plugin_initialization.f90.preplumed +21 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/run_pwscf.f90 +569 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/run_pwscf.f90.preplumed +560 -0
- plumed/_lib/lib/plumed/plumed-config +9 -0
- plumed/_lib/lib/plumed/plumed-mklib +9 -0
- plumed/_lib/lib/plumed/plumed-newcv +9 -0
- plumed/_lib/lib/plumed/plumed-partial_tempering +9 -0
- plumed/_lib/lib/plumed/plumed-patch +9 -0
- plumed/_lib/lib/plumed/plumed-runtime +0 -0
- plumed/_lib/lib/plumed/plumed-selector +9 -0
- plumed/_lib/lib/plumed/plumed-vim2html +9 -0
- plumed/_lib/lib/plumed/scripts/config.sh +126 -0
- plumed/_lib/lib/plumed/scripts/mklib.sh +175 -0
- plumed/_lib/lib/plumed/scripts/newcv.sh +26 -0
- plumed/_lib/lib/plumed/scripts/partial_tempering.sh +319 -0
- plumed/_lib/lib/plumed/scripts/patch.sh +4 -0
- plumed/_lib/lib/plumed/scripts/selector.sh +234 -0
- plumed/_lib/lib/plumed/scripts/vim2html.sh +190 -0
- plumed/_lib/lib/plumed/src/colvar/Template.cpp +116 -0
- plumed/_lib/lib/plumed/src/config/compile_options.sh +3 -0
- plumed/_lib/lib/plumed/src/config/config.txt +179 -0
- plumed/_lib/lib/plumed/src/lib/Plumed.cmake +8 -0
- plumed/_lib/lib/plumed/src/lib/Plumed.cmake.runtime +5 -0
- plumed/_lib/lib/plumed/src/lib/Plumed.cmake.shared +5 -0
- plumed/_lib/lib/plumed/src/lib/Plumed.cmake.static +5 -0
- plumed/_lib/lib/plumed/src/lib/Plumed.inc +8 -0
- plumed/_lib/lib/plumed/src/lib/Plumed.inc.runtime +5 -0
- plumed/_lib/lib/plumed/src/lib/Plumed.inc.shared +5 -0
- plumed/_lib/lib/plumed/src/lib/Plumed.inc.static +5 -0
- plumed/_lib/lib/plumed/vim/scripts.vim +6 -0
- plumed/_plumed_core.cpython-311-aarch64-linux-musl.so +0 -0
- plumed/_plumed_core.cpython-312-aarch64-linux-musl.so +0 -0
- plumed/_plumed_core.cpython-313-aarch64-linux-musl.so +0 -0
- plumedCommunications.cpython-311-aarch64-linux-musl.so +0 -0
- plumedCommunications.cpython-312-aarch64-linux-musl.so +0 -0
- plumedCommunications.cpython-313-aarch64-linux-musl.so +0 -0
- plumedCommunications.pyi +431 -0
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
2
|
+
Copyright (c) 2012-2023 The plumed team
|
|
3
|
+
(see the PEOPLE file at the root of the distribution for a list of names)
|
|
4
|
+
|
|
5
|
+
See http://www.plumed.org for more information.
|
|
6
|
+
|
|
7
|
+
This file is part of plumed, version 2.
|
|
8
|
+
|
|
9
|
+
plumed is free software: you can redistribute it and/or modify
|
|
10
|
+
it under the terms of the GNU Lesser General Public License as published by
|
|
11
|
+
the Free Software Foundation, either version 3 of the License, or
|
|
12
|
+
(at your option) any later version.
|
|
13
|
+
|
|
14
|
+
plumed is distributed in the hope that it will be useful,
|
|
15
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
16
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
17
|
+
GNU Lesser General Public License for more details.
|
|
18
|
+
|
|
19
|
+
You should have received a copy of the GNU Lesser General Public License
|
|
20
|
+
along with plumed. If not, see <http://www.gnu.org/licenses/>.
|
|
21
|
+
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
|
|
22
|
+
#ifndef __PLUMED_core_PbcAction_h
|
|
23
|
+
#define __PLUMED_core_PbcAction_h
|
|
24
|
+
|
|
25
|
+
#include "ActionToPutData.h"
|
|
26
|
+
#include "../tools/ForwardDecl.h"
|
|
27
|
+
|
|
28
|
+
#include <vector>
|
|
29
|
+
#include <string>
|
|
30
|
+
|
|
31
|
+
namespace PLMD {
|
|
32
|
+
|
|
33
|
+
class Pbc;
|
|
34
|
+
class DomainDecomposition;
|
|
35
|
+
|
|
36
|
+
class PbcAction : public ActionToPutData {
|
|
37
|
+
friend class ActionAtomistic;
|
|
38
|
+
private:
|
|
39
|
+
DomainDecomposition* interface;
|
|
40
|
+
ForwardDecl<Pbc> pbc_fwd;
|
|
41
|
+
Pbc& pbc=*pbc_fwd;
|
|
42
|
+
void setPbc();
|
|
43
|
+
public:
|
|
44
|
+
explicit PbcAction(const ActionOptions&);
|
|
45
|
+
// active methods:
|
|
46
|
+
static void registerKeywords( Keywords& keys );
|
|
47
|
+
Pbc& getPbc();
|
|
48
|
+
void wait() override;
|
|
49
|
+
void readBinary(std::istream&i) override;
|
|
50
|
+
PbcAction* castToPbcAction() noexcept final {
|
|
51
|
+
return this;
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
inline
|
|
56
|
+
Pbc& PbcAction::getPbc() {
|
|
57
|
+
return pbc;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
}
|
|
61
|
+
#endif
|
|
@@ -0,0 +1,632 @@
|
|
|
1
|
+
/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
2
|
+
Copyright (c) 2011-2023 The plumed team
|
|
3
|
+
(see the PEOPLE file at the root of the distribution for a list of names)
|
|
4
|
+
|
|
5
|
+
See http://www.plumed.org for more information.
|
|
6
|
+
|
|
7
|
+
This file is part of plumed, version 2.
|
|
8
|
+
|
|
9
|
+
plumed is free software: you can redistribute it and/or modify
|
|
10
|
+
it under the terms of the GNU Lesser General Public License as published by
|
|
11
|
+
the Free Software Foundation, either version 3 of the License, or
|
|
12
|
+
(at your option) any later version.
|
|
13
|
+
|
|
14
|
+
plumed is distributed in the hope that it will be useful,
|
|
15
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
16
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
17
|
+
GNU Lesser General Public License for more details.
|
|
18
|
+
|
|
19
|
+
You should have received a copy of the GNU Lesser General Public License
|
|
20
|
+
along with plumed. If not, see <http://www.gnu.org/licenses/>.
|
|
21
|
+
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
|
|
22
|
+
#ifndef __PLUMED_core_PlumedMain_h
|
|
23
|
+
#define __PLUMED_core_PlumedMain_h
|
|
24
|
+
|
|
25
|
+
#include "WithCmd.h"
|
|
26
|
+
#include "../tools/ForwardDecl.h"
|
|
27
|
+
#include <cstdio>
|
|
28
|
+
#include <string>
|
|
29
|
+
#include <vector>
|
|
30
|
+
#include <set>
|
|
31
|
+
#include <stack>
|
|
32
|
+
#include <memory>
|
|
33
|
+
#include <map>
|
|
34
|
+
#include <atomic>
|
|
35
|
+
|
|
36
|
+
// !!!!!!!!!!!!!!!!!!!!!! DANGER !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!11
|
|
37
|
+
// THE FOLLOWING ARE DEFINITIONS WHICH ARE NECESSARY FOR DYNAMIC LOADING OF THE PLUMED KERNEL:
|
|
38
|
+
// This section should be consistent with the Plumed.h file.
|
|
39
|
+
// Since the Plumed.h file may be included in host MD codes, **NEVER** MODIFY THE CODE DOWN HERE
|
|
40
|
+
|
|
41
|
+
/* Generic function pointer */
|
|
42
|
+
typedef void (*plumed_function_pointer)(void);
|
|
43
|
+
|
|
44
|
+
/* Holder for function pointer */
|
|
45
|
+
typedef struct {
|
|
46
|
+
plumed_function_pointer p;
|
|
47
|
+
} plumed_function_holder;
|
|
48
|
+
|
|
49
|
+
// END OF DANGER
|
|
50
|
+
////////////////////////////////////////////////////////////
|
|
51
|
+
|
|
52
|
+
namespace PLMD {
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
class ActionAtomistic;
|
|
57
|
+
class ActionPilot;
|
|
58
|
+
class ActionForInterface;
|
|
59
|
+
class Log;
|
|
60
|
+
class Atoms;
|
|
61
|
+
class ActionSet;
|
|
62
|
+
class DLLoader;
|
|
63
|
+
class Communicator;
|
|
64
|
+
class Stopwatch;
|
|
65
|
+
class Citations;
|
|
66
|
+
class ExchangePatterns;
|
|
67
|
+
class FileBase;
|
|
68
|
+
class TypesafePtr;
|
|
69
|
+
class IFile;
|
|
70
|
+
class Units;
|
|
71
|
+
class Keywords;
|
|
72
|
+
class DataPassingTools;
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
Main plumed object.
|
|
76
|
+
In MD engines this object is not manipulated directly but it is wrapped in
|
|
77
|
+
plumed or PLMD::Plumed objects. Its main method is cmd(),
|
|
78
|
+
which defines completely the external plumed interface.
|
|
79
|
+
It does not contain any static data.
|
|
80
|
+
*/
|
|
81
|
+
class PlumedMain:
|
|
82
|
+
public WithCmd {
|
|
83
|
+
/// Pointers to files opened in actions associated to this object.
|
|
84
|
+
/// Notice that with the current implementation this should be at the top of this
|
|
85
|
+
/// structure. Indeed, this should be destroyed *after* all the actions allocated
|
|
86
|
+
/// in this PlumedMain object have been destroyed.
|
|
87
|
+
std::set<FileBase*> files;
|
|
88
|
+
/// Forward declaration.
|
|
89
|
+
ForwardDecl<Communicator> comm_fwd;
|
|
90
|
+
public:
|
|
91
|
+
/// Communicator for plumed.
|
|
92
|
+
/// Includes all the processors used by plumed.
|
|
93
|
+
Communicator&comm=*comm_fwd;
|
|
94
|
+
|
|
95
|
+
private:
|
|
96
|
+
class DeprecatedAtoms {
|
|
97
|
+
private:
|
|
98
|
+
PlumedMain & plumed;
|
|
99
|
+
public:
|
|
100
|
+
explicit DeprecatedAtoms(PlumedMain& p): plumed(p) {}
|
|
101
|
+
[[deprecated("Use Action::getKBoltzmann().")]]
|
|
102
|
+
double getKBoltzmann() const ;
|
|
103
|
+
[[deprecated("Use Action::getkBT() N.B. this function also reads the TEMP keyword from the input for you.")]]
|
|
104
|
+
double getKbT() const ;
|
|
105
|
+
[[deprecated]]
|
|
106
|
+
int getNatoms() const ;
|
|
107
|
+
[[deprecated("Use Action::usingNaturalUnits().")]]
|
|
108
|
+
bool usingNaturalUnits() const ;
|
|
109
|
+
[[deprecated]]
|
|
110
|
+
void setCollectEnergy(bool b) const;
|
|
111
|
+
[[deprecated]]
|
|
112
|
+
double getEnergy() const ;
|
|
113
|
+
};
|
|
114
|
+
/// Forward declaration.
|
|
115
|
+
ForwardDecl<DeprecatedAtoms> datoms_fwd;
|
|
116
|
+
/// Object containing old bits of atoms that are used by many folks
|
|
117
|
+
DeprecatedAtoms& datoms=*datoms_fwd;
|
|
118
|
+
/// Forward declaration.
|
|
119
|
+
ForwardDecl<Communicator> multi_sim_comm_fwd;
|
|
120
|
+
public:
|
|
121
|
+
DeprecatedAtoms& getAtoms();
|
|
122
|
+
Communicator&multi_sim_comm=*multi_sim_comm_fwd;
|
|
123
|
+
|
|
124
|
+
private:
|
|
125
|
+
/// Error handler.
|
|
126
|
+
/// Pointer to a function that is called an exception thrown within
|
|
127
|
+
/// the library is about to leave the library.
|
|
128
|
+
/// Can be used to remap exceptions in case the plumed wrapper was compiled
|
|
129
|
+
/// with a different version of the C++ standard library.
|
|
130
|
+
/// Should only be called from \ref plumed_plumedmain_cmd().
|
|
131
|
+
typedef struct {
|
|
132
|
+
void* ptr;
|
|
133
|
+
void(*handler)(void* ptr,int code,const char*);
|
|
134
|
+
} plumed_error_handler;
|
|
135
|
+
|
|
136
|
+
plumed_error_handler error_handler= {NULL,NULL};
|
|
137
|
+
|
|
138
|
+
bool nestedExceptions=false;
|
|
139
|
+
|
|
140
|
+
/// Forward declaration.
|
|
141
|
+
ForwardDecl<DLLoader> dlloader_fwd;
|
|
142
|
+
DLLoader& dlloader=*dlloader_fwd;
|
|
143
|
+
|
|
144
|
+
std::unique_ptr<WithCmd> cltool;
|
|
145
|
+
|
|
146
|
+
std::unique_ptr<WithCmd> grex;
|
|
147
|
+
/// Flag to avoid double initialization
|
|
148
|
+
bool initialized=false;
|
|
149
|
+
/// Name of MD engine
|
|
150
|
+
std::string MDEngine{"mdcode"};
|
|
151
|
+
|
|
152
|
+
/// Forward declaration.
|
|
153
|
+
ForwardDecl<Log> log_fwd;
|
|
154
|
+
/// Log stream
|
|
155
|
+
Log& log=*log_fwd;
|
|
156
|
+
|
|
157
|
+
/// Forward declaration.
|
|
158
|
+
/// Should be placed after log since its constructor takes a log reference as an argument.
|
|
159
|
+
ForwardDecl<Stopwatch> stopwatch_fwd;
|
|
160
|
+
Stopwatch& stopwatch=*stopwatch_fwd;
|
|
161
|
+
|
|
162
|
+
/// Forward declaration.
|
|
163
|
+
ForwardDecl<Citations> citations_fwd;
|
|
164
|
+
/// tools/Citations.holder
|
|
165
|
+
Citations& citations=*citations_fwd;
|
|
166
|
+
|
|
167
|
+
/// Present step number.
|
|
168
|
+
long long int step=0;
|
|
169
|
+
|
|
170
|
+
/// Condition for plumed to be active.
|
|
171
|
+
/// At every step, PlumedMain is checking if there are Action's requiring some work.
|
|
172
|
+
/// If at least one Action requires some work, this variable is set to true.
|
|
173
|
+
bool active=false;
|
|
174
|
+
|
|
175
|
+
/// Name of the input file
|
|
176
|
+
std::string plumedDat;
|
|
177
|
+
|
|
178
|
+
/// End of input file.
|
|
179
|
+
/// Set to true to terminate reading
|
|
180
|
+
bool endPlumed=false;
|
|
181
|
+
|
|
182
|
+
/// Forward declaration.
|
|
183
|
+
ForwardDecl<ActionSet> actionSet_fwd;
|
|
184
|
+
/// Set of actions found in plumed.dat file
|
|
185
|
+
ActionSet& actionSet=*actionSet_fwd;
|
|
186
|
+
|
|
187
|
+
/// These are tools to pass data to PLUMED
|
|
188
|
+
std::unique_ptr<DataPassingTools> passtools;
|
|
189
|
+
|
|
190
|
+
/// Vector of actions that are passed data from the MD code
|
|
191
|
+
std::vector<ActionForInterface*> inputs;
|
|
192
|
+
|
|
193
|
+
/// Set of Pilot actions.
|
|
194
|
+
/// These are the action the, if they are Pilot::onStep(), can trigger execution
|
|
195
|
+
std::vector<ActionPilot*> pilots;
|
|
196
|
+
|
|
197
|
+
/// Suffix string for file opening, useful for multiple simulations in the same directory
|
|
198
|
+
std::string suffix;
|
|
199
|
+
|
|
200
|
+
/// The total bias (=total energy of the restraints)
|
|
201
|
+
double bias=0.0;
|
|
202
|
+
|
|
203
|
+
/// The total work.
|
|
204
|
+
/// This computed by accumulating the change in external potentials.
|
|
205
|
+
double work=0.0;
|
|
206
|
+
|
|
207
|
+
/// Forward declaration.
|
|
208
|
+
ForwardDecl<ExchangePatterns> exchangePatterns_fwd;
|
|
209
|
+
/// Class of possible exchange patterns, used for BIASEXCHANGE but also for future parallel tempering
|
|
210
|
+
ExchangePatterns& exchangePatterns=*exchangePatterns_fwd;
|
|
211
|
+
|
|
212
|
+
/// Set to true if on an exchange step
|
|
213
|
+
bool exchangeStep=false;
|
|
214
|
+
|
|
215
|
+
/// Flag for restart
|
|
216
|
+
bool restart=false;
|
|
217
|
+
|
|
218
|
+
/// Flag for checkpointig
|
|
219
|
+
bool doCheckPoint=false;
|
|
220
|
+
|
|
221
|
+
/// A string that holds the name of the action that gets the energy from the MD
|
|
222
|
+
/// code. Set empty if energy is not used.
|
|
223
|
+
std::string name_of_energy{""};
|
|
224
|
+
|
|
225
|
+
/// This sets up the values that are set from the MD code
|
|
226
|
+
void startStep();
|
|
227
|
+
|
|
228
|
+
/// This sets up the vector that contains the interface to the MD code
|
|
229
|
+
void setupInterfaceActions();
|
|
230
|
+
|
|
231
|
+
/// Flag for parse only mode -- basically just forces restart to turn off
|
|
232
|
+
bool doParseOnly=false;
|
|
233
|
+
|
|
234
|
+
private:
|
|
235
|
+
/// Forward declaration.
|
|
236
|
+
ForwardDecl<TypesafePtr> stopFlag_fwd;
|
|
237
|
+
public:
|
|
238
|
+
/// Stuff to make plumed stop the MD code cleanly
|
|
239
|
+
TypesafePtr& stopFlag=*stopFlag_fwd;
|
|
240
|
+
bool stopNow=false;
|
|
241
|
+
|
|
242
|
+
/// Stack for update flags.
|
|
243
|
+
/// Store information used in class \ref generic::UpdateIf
|
|
244
|
+
std::stack<bool> updateFlags;
|
|
245
|
+
|
|
246
|
+
public:
|
|
247
|
+
/// This determines if the user has created a value to hold the quantity that is being passed
|
|
248
|
+
bool valueExists( const std::string& name ) const ;
|
|
249
|
+
|
|
250
|
+
/// This sets the the value with a particular name to the pointer to the data in the MD code
|
|
251
|
+
void setInputValue( const std::string& name, const unsigned& start, const unsigned& stride, const TypesafePtr & val );
|
|
252
|
+
|
|
253
|
+
/// This sets the the forces with a particular name to the pointer to the data in the MD code
|
|
254
|
+
void setInputForce( const std::string& name, const TypesafePtr & val );
|
|
255
|
+
|
|
256
|
+
/// This updates the units of the input quantities
|
|
257
|
+
void setUnits( const bool& natural, const Units& u );
|
|
258
|
+
|
|
259
|
+
/// Flag to switch off virial calculation (for debug and MD codes with no barostat)
|
|
260
|
+
bool novirial=false;
|
|
261
|
+
|
|
262
|
+
/// Flag to switch on detailed timers
|
|
263
|
+
bool detailedTimers=false;
|
|
264
|
+
|
|
265
|
+
/// GpuDevice Identifier
|
|
266
|
+
int gpuDeviceId=-1;
|
|
267
|
+
|
|
268
|
+
/// Generic map string -> double
|
|
269
|
+
/// intended to pass information across Actions
|
|
270
|
+
std::map<std::string,double> passMap;
|
|
271
|
+
|
|
272
|
+
/// Add a citation, returning a string containing the reference number, something like "[10]"
|
|
273
|
+
std::string cite(const std::string&);
|
|
274
|
+
|
|
275
|
+
/// Get number of threads that can be used by openmp
|
|
276
|
+
unsigned getNumThreads()const;
|
|
277
|
+
|
|
278
|
+
/// Get a reasonable number of threads so as to access to an array of size s located at x
|
|
279
|
+
template<typename T>
|
|
280
|
+
unsigned getGoodNumThreads(const T*x,unsigned s)const;
|
|
281
|
+
|
|
282
|
+
/// Get a reasonable number of threads so as to access to vector v;
|
|
283
|
+
template<typename T>
|
|
284
|
+
unsigned getGoodNumThreads(const std::vector<T> & v)const;
|
|
285
|
+
|
|
286
|
+
public:
|
|
287
|
+
PlumedMain();
|
|
288
|
+
// this is to access to WithCmd versions of cmd (allowing overloading of a virtual method)
|
|
289
|
+
using WithCmd::cmd;
|
|
290
|
+
/**
|
|
291
|
+
cmd method, accessible with standard Plumed.h interface.
|
|
292
|
+
\param key The name of the command to be executed.
|
|
293
|
+
\param val The argument of the command to be executed.
|
|
294
|
+
It is called as plumed_cmd() or as PLMD::Plumed::cmd()
|
|
295
|
+
It is the interpreter for plumed commands. It basically contains the definition of the plumed interface.
|
|
296
|
+
If you want to add a new functionality to the interface between plumed
|
|
297
|
+
and an MD engine, this is the right place
|
|
298
|
+
Notice that this interface should always keep retro-compatibility
|
|
299
|
+
*/
|
|
300
|
+
void cmd(std::string_view key,const TypesafePtr & val) override;
|
|
301
|
+
~PlumedMain();
|
|
302
|
+
/**
|
|
303
|
+
Turn on parse only mode to deactivate restart in all actions.
|
|
304
|
+
This is only used by plumed driver --parse-only
|
|
305
|
+
*/
|
|
306
|
+
void activateParseOnlyMode();
|
|
307
|
+
/**
|
|
308
|
+
This checks if parse only mode is active and turns off any restart.
|
|
309
|
+
*/
|
|
310
|
+
bool parseOnlyMode() const ;
|
|
311
|
+
/**
|
|
312
|
+
Read an input file.
|
|
313
|
+
\param str name of the file
|
|
314
|
+
*/
|
|
315
|
+
void readInputFile(const std::string & str);
|
|
316
|
+
/**
|
|
317
|
+
Read an input file.
|
|
318
|
+
\param ifile
|
|
319
|
+
*/
|
|
320
|
+
void readInputFile(IFile & ifile);
|
|
321
|
+
/**
|
|
322
|
+
Read an input string.
|
|
323
|
+
\param str name of the string
|
|
324
|
+
*/
|
|
325
|
+
void readInputWords(const std::vector<std::string> & str, const bool& before_init);
|
|
326
|
+
|
|
327
|
+
/**
|
|
328
|
+
Read an input string.
|
|
329
|
+
\param str name of the string
|
|
330
|
+
At variance with readInputWords(), this is splitting the string into words
|
|
331
|
+
*/
|
|
332
|
+
void readInputLine(const std::string & str, const bool& before_init=false);
|
|
333
|
+
|
|
334
|
+
/**
|
|
335
|
+
Read an input buffer.
|
|
336
|
+
\param str name of the string
|
|
337
|
+
Same as readInputFile, but first write str on a temporary file and then read
|
|
338
|
+
that files. At variance with readInputLine, it can take care of comments and
|
|
339
|
+
continuation lines.
|
|
340
|
+
*/
|
|
341
|
+
void readInputLines(const std::string & str);
|
|
342
|
+
|
|
343
|
+
/**
|
|
344
|
+
Initialize the object.
|
|
345
|
+
Should be called once.
|
|
346
|
+
*/
|
|
347
|
+
void init();
|
|
348
|
+
/**
|
|
349
|
+
Prepare the calculation.
|
|
350
|
+
Here it is checked which are the active Actions and communication of the relevant atoms is initiated.
|
|
351
|
+
Shortcut for prepareDependencies() + shareData()
|
|
352
|
+
*/
|
|
353
|
+
void prepareCalc();
|
|
354
|
+
/**
|
|
355
|
+
Prepare the list of active Actions and needed atoms.
|
|
356
|
+
Scan the Actions to see which are active and which are not, so as to prepare a list of
|
|
357
|
+
the atoms needed at this step.
|
|
358
|
+
*/
|
|
359
|
+
void prepareDependencies();
|
|
360
|
+
/**
|
|
361
|
+
Ensure that all the atoms are shared.
|
|
362
|
+
This is used in GREX to ensure that we transfer all the positions from the MD code to PLUMED.
|
|
363
|
+
*/
|
|
364
|
+
void shareAll();
|
|
365
|
+
/**
|
|
366
|
+
Share the needed atoms.
|
|
367
|
+
In asynchronous implementations, this method sends the required atoms to all the plumed processes,
|
|
368
|
+
without waiting for the communication to complete.
|
|
369
|
+
*/
|
|
370
|
+
void shareData();
|
|
371
|
+
/**
|
|
372
|
+
Perform the calculation.
|
|
373
|
+
Shortcut for waitData() + justCalculate() + justApply().
|
|
374
|
+
Equivalently: waitData() + justCalculate() + backwardPropagate() + update().
|
|
375
|
+
*/
|
|
376
|
+
void performCalc();
|
|
377
|
+
/**
|
|
378
|
+
Perform the calculation without update()
|
|
379
|
+
Shortcut for: waitData() + justCalculate() + backwardPropagate()
|
|
380
|
+
*/
|
|
381
|
+
void performCalcNoUpdate();
|
|
382
|
+
/**
|
|
383
|
+
Perform the calculation without backpropagation nor update()
|
|
384
|
+
Shortcut for: waitData() + justCalculate()
|
|
385
|
+
*/
|
|
386
|
+
void performCalcNoForces();
|
|
387
|
+
/**
|
|
388
|
+
Complete PLUMED calculation.
|
|
389
|
+
Shortcut for prepareCalc() + performCalc()
|
|
390
|
+
*/
|
|
391
|
+
void calc();
|
|
392
|
+
/**
|
|
393
|
+
Scatters the needed atoms.
|
|
394
|
+
In asynchronous implementations, this method waits for the communications started in shareData()
|
|
395
|
+
to be completed. Otherwise, just send around needed atoms.
|
|
396
|
+
*/
|
|
397
|
+
void waitData();
|
|
398
|
+
/**
|
|
399
|
+
Perform the forward loop on active actions.
|
|
400
|
+
*/
|
|
401
|
+
void justCalculate();
|
|
402
|
+
/**
|
|
403
|
+
Backward propagate and update.
|
|
404
|
+
Shortcut for backwardPropagate() + update()
|
|
405
|
+
I leave it here for backward compatibility
|
|
406
|
+
*/
|
|
407
|
+
void justApply();
|
|
408
|
+
/**
|
|
409
|
+
Perform the backward loop on active actions.
|
|
410
|
+
Needed to apply the forces back.
|
|
411
|
+
*/
|
|
412
|
+
void backwardPropagate();
|
|
413
|
+
/**
|
|
414
|
+
Call the update() method.
|
|
415
|
+
*/
|
|
416
|
+
void update();
|
|
417
|
+
/**
|
|
418
|
+
If there are calculations that need to be done at the very end of the calculations this
|
|
419
|
+
makes sures they are done
|
|
420
|
+
*/
|
|
421
|
+
/**
|
|
422
|
+
This function does clearInputForces for the list of atoms that have a force on them. This
|
|
423
|
+
is an optimisation to prevent calling std::fill over a large array
|
|
424
|
+
*/
|
|
425
|
+
void resetInputs();
|
|
426
|
+
void runJobsAtEndOfCalculation();
|
|
427
|
+
/// Reference to the list of Action's
|
|
428
|
+
const ActionSet & getActionSet()const;
|
|
429
|
+
/// Referenge to the log stream
|
|
430
|
+
Log & getLog();
|
|
431
|
+
/// Return the number of the step
|
|
432
|
+
long long int getStep()const {
|
|
433
|
+
return step;
|
|
434
|
+
}
|
|
435
|
+
/// Stop the run
|
|
436
|
+
void exit(int c=0);
|
|
437
|
+
/// Load a shared library
|
|
438
|
+
void load(const std::string&);
|
|
439
|
+
/// Get the suffix string
|
|
440
|
+
const std::string & getSuffix()const;
|
|
441
|
+
/// Set the suffix string
|
|
442
|
+
void setSuffix(const std::string&);
|
|
443
|
+
/// get the value of the bias
|
|
444
|
+
double getBias()const;
|
|
445
|
+
/// get the value of the work
|
|
446
|
+
double getWork()const;
|
|
447
|
+
/// Opens a file.
|
|
448
|
+
/// Similar to plain fopen, but, if it finds an error in opening the file, it also tries with
|
|
449
|
+
/// path+suffix. This trick is useful for multiple replica simulations.
|
|
450
|
+
FILE* fopen(const char *path, const char *mode);
|
|
451
|
+
/// Closes a file opened with PlumedMain::fopen()
|
|
452
|
+
int fclose(FILE*fp);
|
|
453
|
+
/// Insert a file
|
|
454
|
+
void insertFile(FileBase&);
|
|
455
|
+
/// Erase a file
|
|
456
|
+
void eraseFile(FileBase&);
|
|
457
|
+
/// Flush all files
|
|
458
|
+
void fflush();
|
|
459
|
+
/// Check if restarting
|
|
460
|
+
bool getRestart()const;
|
|
461
|
+
/// Set restart flag
|
|
462
|
+
void setRestart(bool f) {
|
|
463
|
+
if(!doParseOnly) {
|
|
464
|
+
restart=f;
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
/// Check if checkpointing
|
|
468
|
+
bool getCPT()const;
|
|
469
|
+
/// Set exchangeStep flag
|
|
470
|
+
void setExchangeStep(bool f);
|
|
471
|
+
/// Get exchangeStep flag
|
|
472
|
+
bool getExchangeStep()const;
|
|
473
|
+
/// Stop the calculation cleanly (both the MD code and plumed)
|
|
474
|
+
void stop();
|
|
475
|
+
/// Enforce active flag.
|
|
476
|
+
/// This is a (bit dirty) hack to solve a bug. When there is no active ActionPilot,
|
|
477
|
+
/// several shortcuts are used. However, these shortcuts can block GREX module.
|
|
478
|
+
/// This function allows to enforce active plumed when doing exchanges,
|
|
479
|
+
/// thus fixing the bug.
|
|
480
|
+
void resetActive(bool active);
|
|
481
|
+
|
|
482
|
+
/// Access to exchange patterns
|
|
483
|
+
ExchangePatterns& getExchangePatterns() {
|
|
484
|
+
return exchangePatterns;
|
|
485
|
+
}
|
|
486
|
+
|
|
487
|
+
/// Push a state to update flags
|
|
488
|
+
void updateFlagsPush(bool);
|
|
489
|
+
/// Pop a state from update flags
|
|
490
|
+
void updateFlagsPop();
|
|
491
|
+
/// Get top of update flags
|
|
492
|
+
bool updateFlagsTop();
|
|
493
|
+
/// Set end of input file
|
|
494
|
+
void setEndPlumed();
|
|
495
|
+
/// Get the value of the end plumed flag
|
|
496
|
+
bool getEndPlumed() const ;
|
|
497
|
+
/// Get the value of the gpuDeviceId
|
|
498
|
+
int getGpuDeviceId() const ;
|
|
499
|
+
/// Call error handler.
|
|
500
|
+
/// Should only be called from \ref plumed_plumedmain_cmd().
|
|
501
|
+
/// If the error handler was not set, returns false.
|
|
502
|
+
bool callErrorHandler(int code,const char* msg)const;
|
|
503
|
+
private:
|
|
504
|
+
std::atomic<unsigned> referenceCounter{};
|
|
505
|
+
public:
|
|
506
|
+
/// Atomically increase reference counter and return the new value
|
|
507
|
+
unsigned increaseReferenceCounter() noexcept;
|
|
508
|
+
/// Atomically decrease reference counter and return the new value
|
|
509
|
+
unsigned decreaseReferenceCounter() noexcept;
|
|
510
|
+
/// Report the reference counter
|
|
511
|
+
unsigned useCountReferenceCounter() const noexcept;
|
|
512
|
+
void enableNestedExceptions();
|
|
513
|
+
bool getNestedExceptions()const {
|
|
514
|
+
return nestedExceptions;
|
|
515
|
+
}
|
|
516
|
+
/// Check if there is active input in the action set
|
|
517
|
+
bool inputsAreActive() const ;
|
|
518
|
+
/// Transfer information from input MD code
|
|
519
|
+
void writeBinary(std::ostream&)const;
|
|
520
|
+
void readBinary(std::istream&);
|
|
521
|
+
/// Used to set the name of the action that holds the energy
|
|
522
|
+
void setEnergyValue( const std::string& name );
|
|
523
|
+
/// Get the real preicision
|
|
524
|
+
int getRealPrecision() const;
|
|
525
|
+
/// Are we using natural units
|
|
526
|
+
bool usingNaturalUnits() const ;
|
|
527
|
+
/// Get the units that are being used
|
|
528
|
+
const Units& getUnits();
|
|
529
|
+
/// Take an energy that is calculated by PLUMED and pass it to a typesafe pointer
|
|
530
|
+
/// that the MD code can access.
|
|
531
|
+
void plumedQuantityToMD( const std::string& unit, const double& eng, const TypesafePtr & m) const ;
|
|
532
|
+
/// Take a typesafe pointer from the MD code and convert it to a double
|
|
533
|
+
double MDQuantityToPLUMED( const std::string& unit, const TypesafePtr & m) const ;
|
|
534
|
+
/// Get the keywords for a particular action
|
|
535
|
+
void getKeywordsForAction( const std::string& action, Keywords& keys ) const ;
|
|
536
|
+
/// Check if the input has been initialized
|
|
537
|
+
bool hasBeenInitialized() const ;
|
|
538
|
+
};
|
|
539
|
+
|
|
540
|
+
/////
|
|
541
|
+
// FAST INLINE METHODS:
|
|
542
|
+
|
|
543
|
+
inline
|
|
544
|
+
const ActionSet & PlumedMain::getActionSet()const {
|
|
545
|
+
return actionSet;
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
inline
|
|
549
|
+
const std::string & PlumedMain::getSuffix()const {
|
|
550
|
+
return suffix;
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
inline
|
|
554
|
+
void PlumedMain::setSuffix(const std::string&s) {
|
|
555
|
+
suffix=s;
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
inline
|
|
559
|
+
bool PlumedMain::getRestart()const {
|
|
560
|
+
return restart;
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
inline
|
|
564
|
+
bool PlumedMain::getCPT()const {
|
|
565
|
+
return doCheckPoint;
|
|
566
|
+
}
|
|
567
|
+
|
|
568
|
+
inline
|
|
569
|
+
void PlumedMain::setExchangeStep(bool s) {
|
|
570
|
+
exchangeStep=s;
|
|
571
|
+
}
|
|
572
|
+
|
|
573
|
+
inline
|
|
574
|
+
bool PlumedMain::getExchangeStep()const {
|
|
575
|
+
return exchangeStep;
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
inline
|
|
579
|
+
void PlumedMain::resetActive(bool setactive) {
|
|
580
|
+
active=setactive;
|
|
581
|
+
}
|
|
582
|
+
|
|
583
|
+
inline
|
|
584
|
+
void PlumedMain::updateFlagsPush(bool on) {
|
|
585
|
+
updateFlags.push(on);
|
|
586
|
+
}
|
|
587
|
+
|
|
588
|
+
inline
|
|
589
|
+
void PlumedMain::updateFlagsPop() {
|
|
590
|
+
updateFlags.pop();
|
|
591
|
+
}
|
|
592
|
+
|
|
593
|
+
inline
|
|
594
|
+
bool PlumedMain::updateFlagsTop() {
|
|
595
|
+
return updateFlags.top();
|
|
596
|
+
}
|
|
597
|
+
|
|
598
|
+
inline
|
|
599
|
+
void PlumedMain::setEndPlumed() {
|
|
600
|
+
endPlumed=true;
|
|
601
|
+
}
|
|
602
|
+
|
|
603
|
+
inline
|
|
604
|
+
bool PlumedMain::getEndPlumed() const {
|
|
605
|
+
return endPlumed;
|
|
606
|
+
}
|
|
607
|
+
|
|
608
|
+
inline
|
|
609
|
+
int PlumedMain::getGpuDeviceId() const {
|
|
610
|
+
return gpuDeviceId;
|
|
611
|
+
}
|
|
612
|
+
|
|
613
|
+
inline
|
|
614
|
+
bool PlumedMain::callErrorHandler(int code,const char* msg)const {
|
|
615
|
+
if(error_handler.handler) {
|
|
616
|
+
error_handler.handler(error_handler.ptr,code,msg);
|
|
617
|
+
return true;
|
|
618
|
+
} else {
|
|
619
|
+
return false;
|
|
620
|
+
}
|
|
621
|
+
}
|
|
622
|
+
|
|
623
|
+
inline
|
|
624
|
+
bool PlumedMain::hasBeenInitialized() const {
|
|
625
|
+
return initialized;
|
|
626
|
+
}
|
|
627
|
+
|
|
628
|
+
|
|
629
|
+
}
|
|
630
|
+
|
|
631
|
+
#endif
|
|
632
|
+
|