hillclimber 0.1.6__cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_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 +41 -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 +416 -0
- hillclimber/nodes.py +6 -0
- hillclimber/opes.py +359 -0
- hillclimber/pycv.py +362 -0
- hillclimber/selectors.py +230 -0
- hillclimber/virtual_atoms.py +341 -0
- hillclimber-0.1.6.dist-info/METADATA +325 -0
- hillclimber-0.1.6.dist-info/RECORD +475 -0
- hillclimber-0.1.6.dist-info/WHEEL +6 -0
- hillclimber-0.1.6.dist-info/entry_points.txt +8 -0
- hillclimber-0.1.6.dist-info/licenses/LICENSE +165 -0
- hillclimber-0.1.6.dist-info/sboms/auditwheel.cdx.json +1 -0
- hillclimber.libs/libgomp-a49a47f9.so.1.0.0 +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-gnu.so +0 -0
- plumed/_plumed_core.cpython-312-aarch64-linux-gnu.so +0 -0
- plumed/_plumed_core.cpython-313-aarch64-linux-gnu.so +0 -0
- plumed/_plumed_core.cpython-314-aarch64-linux-gnu.so +0 -0
- plumed/_plumed_core.cpython-314t-aarch64-linux-gnu.so +0 -0
- plumedCommunications.cpython-311-aarch64-linux-gnu.so +0 -0
- plumedCommunications.cpython-312-aarch64-linux-gnu.so +0 -0
- plumedCommunications.cpython-313-aarch64-linux-gnu.so +0 -0
- plumedCommunications.cpython-314-aarch64-linux-gnu.so +0 -0
- plumedCommunications.cpython-314t-aarch64-linux-gnu.so +0 -0
- plumedCommunications.pyi +431 -0
|
@@ -0,0 +1,906 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* This file is part of the GROMACS molecular simulation package.
|
|
3
|
+
*
|
|
4
|
+
* Copyright 2018- The GROMACS Authors
|
|
5
|
+
* and the project initiators Erik Lindahl, Berk Hess and David van der Spoel.
|
|
6
|
+
* Consult the AUTHORS/COPYING files and https://www.gromacs.org for details.
|
|
7
|
+
*
|
|
8
|
+
* GROMACS is free software; you can redistribute it and/or
|
|
9
|
+
* modify it under the terms of the GNU Lesser General Public License
|
|
10
|
+
* as published by the Free Software Foundation; either version 2.1
|
|
11
|
+
* of the License, or (at your option) any later version.
|
|
12
|
+
*
|
|
13
|
+
* GROMACS is distributed in the hope that it will be useful,
|
|
14
|
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
15
|
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
16
|
+
* Lesser General Public License for more details.
|
|
17
|
+
*
|
|
18
|
+
* You should have received a copy of the GNU Lesser General Public
|
|
19
|
+
* License along with GROMACS; if not, see
|
|
20
|
+
* https://www.gnu.org/licenses, or write to the Free Software Foundation,
|
|
21
|
+
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
22
|
+
*
|
|
23
|
+
* If you want to redistribute modifications to GROMACS, please
|
|
24
|
+
* consider that scientific software is very special. Version
|
|
25
|
+
* control is crucial - bugs must be traceable. We will be happy to
|
|
26
|
+
* consider code for inclusion in the official distribution, but
|
|
27
|
+
* derived work must not be called official GROMACS. Details are found
|
|
28
|
+
* in the README & COPYING files - if they are missing, get the
|
|
29
|
+
* official version at https://www.gromacs.org.
|
|
30
|
+
*
|
|
31
|
+
* To help us fund GROMACS development, we humbly ask that you cite
|
|
32
|
+
* the research papers on the package. Check out https://www.gromacs.org.
|
|
33
|
+
*/
|
|
34
|
+
/*! \internal \file
|
|
35
|
+
*
|
|
36
|
+
* \brief Implements the loop for simulation reruns
|
|
37
|
+
*
|
|
38
|
+
* \author Pascal Merz <pascal.merz@colorado.edu>
|
|
39
|
+
* \ingroup module_mdrun
|
|
40
|
+
*/
|
|
41
|
+
#include "gmxpre.h"
|
|
42
|
+
|
|
43
|
+
#include <cinttypes>
|
|
44
|
+
#include <cmath>
|
|
45
|
+
#include <cstdio>
|
|
46
|
+
#include <cstdlib>
|
|
47
|
+
|
|
48
|
+
#include <algorithm>
|
|
49
|
+
#include <memory>
|
|
50
|
+
|
|
51
|
+
#include "gromacs/applied_forces/awh/awh.h"
|
|
52
|
+
#include "gromacs/commandline/filenm.h"
|
|
53
|
+
#include "gromacs/domdec/collect.h"
|
|
54
|
+
#include "gromacs/domdec/dlbtiming.h"
|
|
55
|
+
#include "gromacs/domdec/domdec.h"
|
|
56
|
+
#include "gromacs/domdec/domdec_network.h"
|
|
57
|
+
#include "gromacs/domdec/domdec_struct.h"
|
|
58
|
+
#include "gromacs/domdec/localtopologychecker.h"
|
|
59
|
+
#include "gromacs/domdec/mdsetup.h"
|
|
60
|
+
#include "gromacs/domdec/partition.h"
|
|
61
|
+
#include "gromacs/essentialdynamics/edsam.h"
|
|
62
|
+
#include "gromacs/ewald/pme_load_balancing.h"
|
|
63
|
+
#include "gromacs/ewald/pme_pp.h"
|
|
64
|
+
#include "gromacs/fileio/trxio.h"
|
|
65
|
+
#include "gromacs/gmxlib/network.h"
|
|
66
|
+
#include "gromacs/gmxlib/nrnb.h"
|
|
67
|
+
#include "gromacs/gpu_utils/gpu_utils.h"
|
|
68
|
+
#include "gromacs/listed_forces/listed_forces.h"
|
|
69
|
+
#include "gromacs/math/functions.h"
|
|
70
|
+
#include "gromacs/math/utilities.h"
|
|
71
|
+
#include "gromacs/math/vec.h"
|
|
72
|
+
#include "gromacs/math/vectypes.h"
|
|
73
|
+
#include "gromacs/mdlib/checkpointhandler.h"
|
|
74
|
+
#include "gromacs/mdlib/constr.h"
|
|
75
|
+
#include "gromacs/mdlib/ebin.h"
|
|
76
|
+
#include "gromacs/mdlib/enerdata_utils.h"
|
|
77
|
+
#include "gromacs/mdlib/energyoutput.h"
|
|
78
|
+
#include "gromacs/mdlib/expanded.h"
|
|
79
|
+
#include "gromacs/mdlib/force.h"
|
|
80
|
+
#include "gromacs/mdlib/force_flags.h"
|
|
81
|
+
#include "gromacs/mdlib/forcerec.h"
|
|
82
|
+
#include "gromacs/mdlib/freeenergyparameters.h"
|
|
83
|
+
#include "gromacs/mdlib/md_support.h"
|
|
84
|
+
#include "gromacs/mdlib/mdatoms.h"
|
|
85
|
+
#include "gromacs/mdlib/mdoutf.h"
|
|
86
|
+
#include "gromacs/mdlib/membed.h"
|
|
87
|
+
#include "gromacs/mdlib/resethandler.h"
|
|
88
|
+
#include "gromacs/mdlib/sighandler.h"
|
|
89
|
+
#include "gromacs/mdlib/simulationsignal.h"
|
|
90
|
+
#include "gromacs/mdlib/stat.h"
|
|
91
|
+
#include "gromacs/mdlib/stophandler.h"
|
|
92
|
+
#include "gromacs/mdlib/tgroup.h"
|
|
93
|
+
#include "gromacs/mdlib/trajectory_writing.h"
|
|
94
|
+
#include "gromacs/mdlib/update.h"
|
|
95
|
+
#include "gromacs/mdlib/vcm.h"
|
|
96
|
+
#include "gromacs/mdlib/vsite.h"
|
|
97
|
+
#include "gromacs/mdrunutility/handlerestart.h"
|
|
98
|
+
#include "gromacs/mdrunutility/multisim.h"
|
|
99
|
+
#include "gromacs/mdrunutility/printtime.h"
|
|
100
|
+
#include "gromacs/mdtypes/awh_history.h"
|
|
101
|
+
#include "gromacs/mdtypes/awh_params.h"
|
|
102
|
+
#include "gromacs/mdtypes/commrec.h"
|
|
103
|
+
#include "gromacs/mdtypes/df_history.h"
|
|
104
|
+
#include "gromacs/mdtypes/energyhistory.h"
|
|
105
|
+
#include "gromacs/mdtypes/forcebuffers.h"
|
|
106
|
+
#include "gromacs/mdtypes/forcerec.h"
|
|
107
|
+
#include "gromacs/mdtypes/group.h"
|
|
108
|
+
#include "gromacs/mdtypes/inputrec.h"
|
|
109
|
+
#include "gromacs/mdtypes/interaction_const.h"
|
|
110
|
+
#include "gromacs/mdtypes/md_enums.h"
|
|
111
|
+
#include "gromacs/mdtypes/mdatom.h"
|
|
112
|
+
#include "gromacs/mdtypes/mdrunoptions.h"
|
|
113
|
+
#include "gromacs/mdtypes/observableshistory.h"
|
|
114
|
+
#include "gromacs/mdtypes/observablesreducer.h"
|
|
115
|
+
#include "gromacs/mdtypes/simulation_workload.h"
|
|
116
|
+
#include "gromacs/mdtypes/state.h"
|
|
117
|
+
#include "gromacs/mimic/utilities.h"
|
|
118
|
+
#include "gromacs/pbcutil/pbc.h"
|
|
119
|
+
#include "gromacs/pulling/output.h"
|
|
120
|
+
#include "gromacs/pulling/pull.h"
|
|
121
|
+
#include "gromacs/swap/swapcoords.h"
|
|
122
|
+
#include "gromacs/timing/wallcycle.h"
|
|
123
|
+
#include "gromacs/timing/walltime_accounting.h"
|
|
124
|
+
#include "gromacs/topology/atoms.h"
|
|
125
|
+
#include "gromacs/topology/idef.h"
|
|
126
|
+
#include "gromacs/topology/mtop_util.h"
|
|
127
|
+
#include "gromacs/topology/topology.h"
|
|
128
|
+
#include "gromacs/trajectory/trajectoryframe.h"
|
|
129
|
+
#include "gromacs/utility/basedefinitions.h"
|
|
130
|
+
#include "gromacs/utility/cstringutil.h"
|
|
131
|
+
#include "gromacs/utility/exceptions.h"
|
|
132
|
+
#include "gromacs/utility/fatalerror.h"
|
|
133
|
+
#include "gromacs/utility/logger.h"
|
|
134
|
+
#include "gromacs/utility/real.h"
|
|
135
|
+
|
|
136
|
+
#include "legacysimulator.h"
|
|
137
|
+
#include "replicaexchange.h"
|
|
138
|
+
#include "shellfc.h"
|
|
139
|
+
|
|
140
|
+
using gmx::SimulationSignaller;
|
|
141
|
+
using gmx::VirtualSitesHandler;
|
|
142
|
+
|
|
143
|
+
/*! \brief Copy the state from \p rerunFrame to \p globalState and, if requested, construct vsites
|
|
144
|
+
*
|
|
145
|
+
* \param[in] rerunFrame The trajectory frame to compute energy/forces for
|
|
146
|
+
* \param[in,out] globalState The global state container
|
|
147
|
+
* \param[in] constructVsites When true, vsite coordinates are constructed
|
|
148
|
+
* \param[in] vsite Vsite setup, can be nullptr when \p constructVsites = false
|
|
149
|
+
*/
|
|
150
|
+
static void prepareRerunState(const t_trxframe& rerunFrame,
|
|
151
|
+
t_state* globalState,
|
|
152
|
+
bool constructVsites,
|
|
153
|
+
const VirtualSitesHandler* vsite)
|
|
154
|
+
{
|
|
155
|
+
auto x = makeArrayRef(globalState->x);
|
|
156
|
+
auto rerunX = arrayRefFromArray(reinterpret_cast<gmx::RVec*>(rerunFrame.x), globalState->natoms);
|
|
157
|
+
std::copy(rerunX.begin(), rerunX.end(), x.begin());
|
|
158
|
+
copy_mat(rerunFrame.box, globalState->box);
|
|
159
|
+
|
|
160
|
+
if (constructVsites)
|
|
161
|
+
{
|
|
162
|
+
GMX_ASSERT(vsite, "Need valid vsite for constructing vsites");
|
|
163
|
+
|
|
164
|
+
vsite->construct(globalState->x, globalState->v, globalState->box, gmx::VSiteOperation::PositionsAndVelocities);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
void gmx::LegacySimulator::do_rerun()
|
|
169
|
+
{
|
|
170
|
+
// TODO Historically, the EM and MD "integrators" used different
|
|
171
|
+
// names for the t_inputrec *parameter, but these must have the
|
|
172
|
+
// same name, now that it's a member of a struct. We use this ir
|
|
173
|
+
// alias to avoid a large ripple of nearly useless changes.
|
|
174
|
+
// t_inputrec is being replaced by IMdpOptionsProvider, so this
|
|
175
|
+
// will go away eventually.
|
|
176
|
+
const t_inputrec* ir = inputrec;
|
|
177
|
+
double t;
|
|
178
|
+
bool isLastStep = false;
|
|
179
|
+
bool doFreeEnergyPerturbation = false;
|
|
180
|
+
unsigned int force_flags;
|
|
181
|
+
tensor force_vir, shake_vir, total_vir, pres;
|
|
182
|
+
t_trxstatus* status = nullptr;
|
|
183
|
+
rvec mu_tot;
|
|
184
|
+
t_trxframe rerun_fr;
|
|
185
|
+
ForceBuffers f;
|
|
186
|
+
gmx_global_stat_t gstat;
|
|
187
|
+
gmx_shellfc_t* shellfc;
|
|
188
|
+
|
|
189
|
+
double cycles;
|
|
190
|
+
|
|
191
|
+
SimulationSignals signals;
|
|
192
|
+
// Most global communnication stages don't propagate mdrun
|
|
193
|
+
// signals, and will use this object to achieve that.
|
|
194
|
+
SimulationSignaller nullSignaller(nullptr, nullptr, nullptr, false, false);
|
|
195
|
+
|
|
196
|
+
GMX_LOG(mdlog.info)
|
|
197
|
+
.asParagraph()
|
|
198
|
+
.appendText(
|
|
199
|
+
"Note that it is planned that the command gmx mdrun -rerun will "
|
|
200
|
+
"be available in a different form in a future version of GROMACS, "
|
|
201
|
+
"e.g. gmx rerun -f.");
|
|
202
|
+
|
|
203
|
+
if (ir->efep != FreeEnergyPerturbationType::No
|
|
204
|
+
&& (mdAtoms->mdatoms()->nMassPerturbed > 0 || (constr && constr->havePerturbedConstraints())))
|
|
205
|
+
{
|
|
206
|
+
gmx_fatal(FARGS,
|
|
207
|
+
"Perturbed masses or constraints are not supported by rerun. "
|
|
208
|
+
"Either make a .tpr without mass and constraint perturbation, "
|
|
209
|
+
"or use GROMACS 2018.4, 2018.5 or later 2018 version.");
|
|
210
|
+
}
|
|
211
|
+
if (ir->bExpanded)
|
|
212
|
+
{
|
|
213
|
+
gmx_fatal(FARGS, "Expanded ensemble not supported by rerun.");
|
|
214
|
+
}
|
|
215
|
+
if (ir->bSimTemp)
|
|
216
|
+
{
|
|
217
|
+
gmx_fatal(FARGS, "Simulated tempering not supported by rerun.");
|
|
218
|
+
}
|
|
219
|
+
if (ir->bDoAwh)
|
|
220
|
+
{
|
|
221
|
+
gmx_fatal(FARGS, "AWH not supported by rerun.");
|
|
222
|
+
}
|
|
223
|
+
if (replExParams.exchangeInterval > 0)
|
|
224
|
+
{
|
|
225
|
+
gmx_fatal(FARGS, "Replica exchange not supported by rerun.");
|
|
226
|
+
}
|
|
227
|
+
if (opt2bSet("-ei", nfile, fnm) || observablesHistory->edsamHistory != nullptr)
|
|
228
|
+
{
|
|
229
|
+
gmx_fatal(FARGS, "Essential dynamics not supported by rerun.");
|
|
230
|
+
}
|
|
231
|
+
if (ir->bIMD)
|
|
232
|
+
{
|
|
233
|
+
gmx_fatal(FARGS, "Interactive MD not supported by rerun.");
|
|
234
|
+
}
|
|
235
|
+
if (isMultiSim(ms))
|
|
236
|
+
{
|
|
237
|
+
gmx_fatal(FARGS, "Multiple simulations not supported by rerun.");
|
|
238
|
+
}
|
|
239
|
+
if (std::any_of(ir->opts.annealing, ir->opts.annealing + ir->opts.ngtc, [](SimulatedAnnealing i) {
|
|
240
|
+
return i != SimulatedAnnealing::No;
|
|
241
|
+
}))
|
|
242
|
+
{
|
|
243
|
+
gmx_fatal(FARGS, "Simulated annealing not supported by rerun.");
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
/* Rerun can't work if an output file name is the same as the input file name.
|
|
247
|
+
* If this is the case, the user will get an error telling them what the issue is.
|
|
248
|
+
*/
|
|
249
|
+
if (strcmp(opt2fn("-rerun", nfile, fnm), opt2fn("-o", nfile, fnm)) == 0
|
|
250
|
+
|| strcmp(opt2fn("-rerun", nfile, fnm), opt2fn("-x", nfile, fnm)) == 0)
|
|
251
|
+
{
|
|
252
|
+
gmx_fatal(FARGS,
|
|
253
|
+
"When using mdrun -rerun, the name of the input trajectory file "
|
|
254
|
+
"%s cannot be identical to the name of an output file (whether "
|
|
255
|
+
"given explicitly with -o or -x, or by default)",
|
|
256
|
+
opt2fn("-rerun", nfile, fnm));
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
/* Settings for rerun */
|
|
260
|
+
{
|
|
261
|
+
// TODO: Avoid changing inputrec (#3854)
|
|
262
|
+
auto* nonConstInputrec = const_cast<t_inputrec*>(inputrec);
|
|
263
|
+
nonConstInputrec->nstlist = 1;
|
|
264
|
+
nonConstInputrec->nstcalcenergy = 1;
|
|
265
|
+
nonConstInputrec->nstxout_compressed = 0;
|
|
266
|
+
}
|
|
267
|
+
int nstglobalcomm = 1;
|
|
268
|
+
const bool bNS = true;
|
|
269
|
+
|
|
270
|
+
ObservablesReducer observablesReducer = observablesReducerBuilder->build();
|
|
271
|
+
|
|
272
|
+
const SimulationGroups* groups = &top_global.groups;
|
|
273
|
+
if (ir->eI == IntegrationAlgorithm::Mimic)
|
|
274
|
+
{
|
|
275
|
+
auto* nonConstGlobalTopology = const_cast<gmx_mtop_t*>(&top_global);
|
|
276
|
+
nonConstGlobalTopology->intermolecularExclusionGroup = genQmmmIndices(top_global);
|
|
277
|
+
}
|
|
278
|
+
int* fep_state = MASTER(cr) ? &state_global->fep_state : nullptr;
|
|
279
|
+
gmx::ArrayRef<real> lambda = MASTER(cr) ? state_global->lambda : gmx::ArrayRef<real>();
|
|
280
|
+
initialize_lambdas(fplog,
|
|
281
|
+
ir->efep,
|
|
282
|
+
ir->bSimTemp,
|
|
283
|
+
*ir->fepvals,
|
|
284
|
+
ir->simtempvals->temperatures,
|
|
285
|
+
gmx::arrayRefFromArray(ir->opts.ref_t, ir->opts.ngtc),
|
|
286
|
+
MASTER(cr),
|
|
287
|
+
fep_state,
|
|
288
|
+
lambda);
|
|
289
|
+
const bool simulationsShareState = false;
|
|
290
|
+
gmx_mdoutf* outf = init_mdoutf(fplog,
|
|
291
|
+
nfile,
|
|
292
|
+
fnm,
|
|
293
|
+
mdrunOptions,
|
|
294
|
+
cr,
|
|
295
|
+
outputProvider,
|
|
296
|
+
mdModulesNotifiers,
|
|
297
|
+
ir,
|
|
298
|
+
top_global,
|
|
299
|
+
oenv,
|
|
300
|
+
wcycle,
|
|
301
|
+
StartingBehavior::NewSimulation,
|
|
302
|
+
simulationsShareState,
|
|
303
|
+
ms);
|
|
304
|
+
gmx::EnergyOutput energyOutput(mdoutf_get_fp_ene(outf),
|
|
305
|
+
top_global,
|
|
306
|
+
*ir,
|
|
307
|
+
pull_work,
|
|
308
|
+
mdoutf_get_fp_dhdl(outf),
|
|
309
|
+
true,
|
|
310
|
+
StartingBehavior::NewSimulation,
|
|
311
|
+
simulationsShareState,
|
|
312
|
+
mdModulesNotifiers);
|
|
313
|
+
|
|
314
|
+
gstat = global_stat_init(ir);
|
|
315
|
+
|
|
316
|
+
/* Check for polarizable models and flexible constraints */
|
|
317
|
+
shellfc = init_shell_flexcon(fplog,
|
|
318
|
+
top_global,
|
|
319
|
+
constr ? constr->numFlexibleConstraints() : 0,
|
|
320
|
+
ir->nstcalcenergy,
|
|
321
|
+
haveDDAtomOrdering(*cr),
|
|
322
|
+
runScheduleWork->simulationWork.useGpuPme);
|
|
323
|
+
|
|
324
|
+
if (haveDDAtomOrdering(*cr))
|
|
325
|
+
{
|
|
326
|
+
// Local state only becomes valid now.
|
|
327
|
+
dd_init_local_state(*cr->dd, state_global, state);
|
|
328
|
+
|
|
329
|
+
/* Distribute the charge groups over the nodes from the master node */
|
|
330
|
+
dd_partition_system(fplog,
|
|
331
|
+
mdlog,
|
|
332
|
+
ir->init_step,
|
|
333
|
+
cr,
|
|
334
|
+
TRUE,
|
|
335
|
+
1,
|
|
336
|
+
state_global,
|
|
337
|
+
top_global,
|
|
338
|
+
*ir,
|
|
339
|
+
imdSession,
|
|
340
|
+
pull_work,
|
|
341
|
+
state,
|
|
342
|
+
&f,
|
|
343
|
+
mdAtoms,
|
|
344
|
+
top,
|
|
345
|
+
fr,
|
|
346
|
+
vsite,
|
|
347
|
+
constr,
|
|
348
|
+
nrnb,
|
|
349
|
+
nullptr,
|
|
350
|
+
FALSE);
|
|
351
|
+
}
|
|
352
|
+
else
|
|
353
|
+
{
|
|
354
|
+
state_change_natoms(state_global, state_global->natoms);
|
|
355
|
+
/* Copy the pointer to the global state */
|
|
356
|
+
state = state_global;
|
|
357
|
+
|
|
358
|
+
mdAlgorithmsSetupAtomData(cr, *ir, top_global, top, fr, &f, mdAtoms, constr, vsite, shellfc);
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
auto* mdatoms = mdAtoms->mdatoms();
|
|
362
|
+
fr->longRangeNonbondeds->updateAfterPartition(*mdatoms);
|
|
363
|
+
|
|
364
|
+
// NOTE: The global state is no longer used at this point.
|
|
365
|
+
// But state_global is still used as temporary storage space for writing
|
|
366
|
+
// the global state to file and potentially for replica exchange.
|
|
367
|
+
// (Global topology should persist.)
|
|
368
|
+
|
|
369
|
+
update_mdatoms(mdatoms, state->lambda[FreeEnergyPerturbationCouplingType::Mass]);
|
|
370
|
+
|
|
371
|
+
if (ir->efep != FreeEnergyPerturbationType::No && ir->fepvals->nstdhdl != 0)
|
|
372
|
+
{
|
|
373
|
+
doFreeEnergyPerturbation = true;
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
int64_t step = ir->init_step;
|
|
377
|
+
int64_t step_rel = 0;
|
|
378
|
+
|
|
379
|
+
{
|
|
380
|
+
int cglo_flags = CGLO_GSTAT;
|
|
381
|
+
bool bSumEkinhOld = false;
|
|
382
|
+
t_vcm* vcm = nullptr;
|
|
383
|
+
compute_globals(gstat,
|
|
384
|
+
cr,
|
|
385
|
+
ir,
|
|
386
|
+
fr,
|
|
387
|
+
ekind,
|
|
388
|
+
makeConstArrayRef(state->x),
|
|
389
|
+
makeConstArrayRef(state->v),
|
|
390
|
+
state->box,
|
|
391
|
+
mdatoms,
|
|
392
|
+
nrnb,
|
|
393
|
+
vcm,
|
|
394
|
+
nullptr,
|
|
395
|
+
enerd,
|
|
396
|
+
force_vir,
|
|
397
|
+
shake_vir,
|
|
398
|
+
total_vir,
|
|
399
|
+
pres,
|
|
400
|
+
&nullSignaller,
|
|
401
|
+
state->box,
|
|
402
|
+
&bSumEkinhOld,
|
|
403
|
+
cglo_flags,
|
|
404
|
+
step,
|
|
405
|
+
&observablesReducer);
|
|
406
|
+
// Clean up after pre-step use of compute_globals()
|
|
407
|
+
observablesReducer.markAsReadyToReduce();
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
if (MASTER(cr))
|
|
411
|
+
{
|
|
412
|
+
fprintf(stderr,
|
|
413
|
+
"starting md rerun '%s', reading coordinates from"
|
|
414
|
+
" input trajectory '%s'\n\n",
|
|
415
|
+
*(top_global.name),
|
|
416
|
+
opt2fn("-rerun", nfile, fnm));
|
|
417
|
+
if (mdrunOptions.verbose)
|
|
418
|
+
{
|
|
419
|
+
fprintf(stderr,
|
|
420
|
+
"Calculated time to finish depends on nsteps from "
|
|
421
|
+
"run input file,\nwhich may not correspond to the time "
|
|
422
|
+
"needed to process input trajectory.\n\n");
|
|
423
|
+
}
|
|
424
|
+
fprintf(fplog, "\n");
|
|
425
|
+
}
|
|
426
|
+
|
|
427
|
+
walltime_accounting_start_time(walltime_accounting);
|
|
428
|
+
wallcycle_start(wcycle, WallCycleCounter::Run);
|
|
429
|
+
print_start(fplog, cr, walltime_accounting, "mdrun");
|
|
430
|
+
|
|
431
|
+
/***********************************************************
|
|
432
|
+
*
|
|
433
|
+
* Loop over MD steps
|
|
434
|
+
*
|
|
435
|
+
************************************************************/
|
|
436
|
+
|
|
437
|
+
if (constr)
|
|
438
|
+
{
|
|
439
|
+
GMX_LOG(mdlog.info)
|
|
440
|
+
.asParagraph()
|
|
441
|
+
.appendText("Simulations has constraints. Rerun does not recalculate constraints.");
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
rerun_fr.natoms = 0;
|
|
445
|
+
if (MASTER(cr))
|
|
446
|
+
{
|
|
447
|
+
isLastStep = !read_first_frame(oenv, &status, opt2fn("-rerun", nfile, fnm), &rerun_fr, TRX_NEED_X);
|
|
448
|
+
if (rerun_fr.natoms != top_global.natoms)
|
|
449
|
+
{
|
|
450
|
+
gmx_fatal(FARGS,
|
|
451
|
+
"Number of atoms in trajectory (%d) does not match the "
|
|
452
|
+
"run input file (%d)\n",
|
|
453
|
+
rerun_fr.natoms,
|
|
454
|
+
top_global.natoms);
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
if (ir->pbcType != PbcType::No)
|
|
458
|
+
{
|
|
459
|
+
if (!rerun_fr.bBox)
|
|
460
|
+
{
|
|
461
|
+
gmx_fatal(FARGS,
|
|
462
|
+
"Rerun trajectory frame step %" PRId64
|
|
463
|
+
" time %f "
|
|
464
|
+
"does not contain a box, while pbc is used",
|
|
465
|
+
rerun_fr.step,
|
|
466
|
+
rerun_fr.time);
|
|
467
|
+
}
|
|
468
|
+
if (max_cutoff2(ir->pbcType, rerun_fr.box) < gmx::square(fr->rlist))
|
|
469
|
+
{
|
|
470
|
+
gmx_fatal(FARGS,
|
|
471
|
+
"Rerun trajectory frame step %" PRId64
|
|
472
|
+
" time %f "
|
|
473
|
+
"has too small box dimensions",
|
|
474
|
+
rerun_fr.step,
|
|
475
|
+
rerun_fr.time);
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
GMX_LOG(mdlog.info)
|
|
481
|
+
.asParagraph()
|
|
482
|
+
.appendText(
|
|
483
|
+
"Rerun does not report kinetic energy, total energy, temperature, virial and "
|
|
484
|
+
"pressure.");
|
|
485
|
+
|
|
486
|
+
if (PAR(cr))
|
|
487
|
+
{
|
|
488
|
+
rerun_parallel_comm(cr, &rerun_fr, &isLastStep);
|
|
489
|
+
}
|
|
490
|
+
|
|
491
|
+
if (ir->pbcType != PbcType::No)
|
|
492
|
+
{
|
|
493
|
+
/* Set the shift vectors.
|
|
494
|
+
* Necessary here when have a static box different from the tpr box.
|
|
495
|
+
*/
|
|
496
|
+
calc_shifts(rerun_fr.box, fr->shift_vec);
|
|
497
|
+
}
|
|
498
|
+
|
|
499
|
+
auto stopHandler = stopHandlerBuilder->getStopHandlerMD(
|
|
500
|
+
compat::not_null<SimulationSignal*>(&signals[eglsSTOPCOND]),
|
|
501
|
+
false,
|
|
502
|
+
MASTER(cr),
|
|
503
|
+
ir->nstlist,
|
|
504
|
+
mdrunOptions.reproducible,
|
|
505
|
+
nstglobalcomm,
|
|
506
|
+
mdrunOptions.maximumHoursToRun,
|
|
507
|
+
ir->nstlist == 0,
|
|
508
|
+
fplog,
|
|
509
|
+
step,
|
|
510
|
+
bNS,
|
|
511
|
+
walltime_accounting);
|
|
512
|
+
|
|
513
|
+
// we don't do counter resetting in rerun - finish will always be valid
|
|
514
|
+
walltime_accounting_set_valid_finish(walltime_accounting);
|
|
515
|
+
|
|
516
|
+
const DDBalanceRegionHandler ddBalanceRegionHandler(cr);
|
|
517
|
+
|
|
518
|
+
/* and stop now if we should */
|
|
519
|
+
isLastStep = (isLastStep || (ir->nsteps >= 0 && step_rel > ir->nsteps));
|
|
520
|
+
while (!isLastStep)
|
|
521
|
+
{
|
|
522
|
+
wallcycle_start(wcycle, WallCycleCounter::Step);
|
|
523
|
+
|
|
524
|
+
if (rerun_fr.bStep)
|
|
525
|
+
{
|
|
526
|
+
step = rerun_fr.step;
|
|
527
|
+
step_rel = step - ir->init_step;
|
|
528
|
+
}
|
|
529
|
+
if (rerun_fr.bTime)
|
|
530
|
+
{
|
|
531
|
+
t = rerun_fr.time;
|
|
532
|
+
}
|
|
533
|
+
else
|
|
534
|
+
{
|
|
535
|
+
t = step;
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
if (ir->efep != FreeEnergyPerturbationType::No && MASTER(cr))
|
|
539
|
+
{
|
|
540
|
+
if (rerun_fr.bLambda)
|
|
541
|
+
{
|
|
542
|
+
ir->fepvals->init_lambda = rerun_fr.lambda;
|
|
543
|
+
}
|
|
544
|
+
else
|
|
545
|
+
{
|
|
546
|
+
if (rerun_fr.bFepState)
|
|
547
|
+
{
|
|
548
|
+
state->fep_state = rerun_fr.fep_state;
|
|
549
|
+
}
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
state_global->lambda = currentLambdas(step, *(ir->fepvals), state->fep_state);
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
if (MASTER(cr))
|
|
556
|
+
{
|
|
557
|
+
const bool constructVsites = ((vsite != nullptr) && mdrunOptions.rerunConstructVsites);
|
|
558
|
+
if (constructVsites && haveDDAtomOrdering(*cr))
|
|
559
|
+
{
|
|
560
|
+
gmx_fatal(FARGS,
|
|
561
|
+
"Vsite recalculation with -rerun is not implemented with domain "
|
|
562
|
+
"decomposition, "
|
|
563
|
+
"use a single rank");
|
|
564
|
+
}
|
|
565
|
+
prepareRerunState(rerun_fr, state_global, constructVsites, vsite);
|
|
566
|
+
}
|
|
567
|
+
|
|
568
|
+
isLastStep = isLastStep || stopHandler->stoppingAfterCurrentStep(bNS);
|
|
569
|
+
|
|
570
|
+
if (haveDDAtomOrdering(*cr))
|
|
571
|
+
{
|
|
572
|
+
/* Repartition the domain decomposition */
|
|
573
|
+
const bool bMasterState = true;
|
|
574
|
+
dd_partition_system(fplog,
|
|
575
|
+
mdlog,
|
|
576
|
+
step,
|
|
577
|
+
cr,
|
|
578
|
+
bMasterState,
|
|
579
|
+
nstglobalcomm,
|
|
580
|
+
state_global,
|
|
581
|
+
top_global,
|
|
582
|
+
*ir,
|
|
583
|
+
imdSession,
|
|
584
|
+
pull_work,
|
|
585
|
+
state,
|
|
586
|
+
&f,
|
|
587
|
+
mdAtoms,
|
|
588
|
+
top,
|
|
589
|
+
fr,
|
|
590
|
+
vsite,
|
|
591
|
+
constr,
|
|
592
|
+
nrnb,
|
|
593
|
+
wcycle,
|
|
594
|
+
mdrunOptions.verbose);
|
|
595
|
+
}
|
|
596
|
+
|
|
597
|
+
if (MASTER(cr))
|
|
598
|
+
{
|
|
599
|
+
EnergyOutput::printHeader(fplog, step, t); /* can we improve the information printed here? */
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
if (ir->efep != FreeEnergyPerturbationType::No)
|
|
603
|
+
{
|
|
604
|
+
update_mdatoms(mdatoms, state->lambda[FreeEnergyPerturbationCouplingType::Mass]);
|
|
605
|
+
}
|
|
606
|
+
|
|
607
|
+
fr->longRangeNonbondeds->updateAfterPartition(*mdatoms);
|
|
608
|
+
|
|
609
|
+
force_flags = (GMX_FORCE_STATECHANGED | GMX_FORCE_DYNAMICBOX | GMX_FORCE_ALLFORCES
|
|
610
|
+
| GMX_FORCE_VIRIAL | // TODO: Get rid of this once #2649 and #3400 are solved
|
|
611
|
+
GMX_FORCE_ENERGY | (doFreeEnergyPerturbation ? GMX_FORCE_DHDL : 0));
|
|
612
|
+
|
|
613
|
+
if (shellfc)
|
|
614
|
+
{
|
|
615
|
+
/* Now is the time to relax the shells */
|
|
616
|
+
relax_shell_flexcon(fplog,
|
|
617
|
+
cr,
|
|
618
|
+
ms,
|
|
619
|
+
mdrunOptions.verbose,
|
|
620
|
+
enforcedRotation,
|
|
621
|
+
step,
|
|
622
|
+
ir,
|
|
623
|
+
imdSession,
|
|
624
|
+
pull_work,
|
|
625
|
+
bNS,
|
|
626
|
+
force_flags,
|
|
627
|
+
top,
|
|
628
|
+
constr,
|
|
629
|
+
enerd,
|
|
630
|
+
state->natoms,
|
|
631
|
+
state->x.arrayRefWithPadding(),
|
|
632
|
+
state->v.arrayRefWithPadding(),
|
|
633
|
+
state->box,
|
|
634
|
+
state->lambda,
|
|
635
|
+
&state->hist,
|
|
636
|
+
&f.view(),
|
|
637
|
+
force_vir,
|
|
638
|
+
*mdatoms,
|
|
639
|
+
fr->longRangeNonbondeds.get(),
|
|
640
|
+
nrnb,
|
|
641
|
+
wcycle,
|
|
642
|
+
shellfc,
|
|
643
|
+
fr,
|
|
644
|
+
runScheduleWork,
|
|
645
|
+
t,
|
|
646
|
+
mu_tot,
|
|
647
|
+
vsite,
|
|
648
|
+
ddBalanceRegionHandler);
|
|
649
|
+
}
|
|
650
|
+
else
|
|
651
|
+
{
|
|
652
|
+
/* The coordinates (x) are shifted (to get whole molecules)
|
|
653
|
+
* in do_force.
|
|
654
|
+
* This is parallellized as well, and does communication too.
|
|
655
|
+
* Check comments in sim_util.c
|
|
656
|
+
*/
|
|
657
|
+
Awh* awh = nullptr;
|
|
658
|
+
gmx_edsam* ed = nullptr;
|
|
659
|
+
try
|
|
660
|
+
{
|
|
661
|
+
do_force(fplog,
|
|
662
|
+
cr,
|
|
663
|
+
ms,
|
|
664
|
+
*ir,
|
|
665
|
+
awh,
|
|
666
|
+
enforcedRotation,
|
|
667
|
+
imdSession,
|
|
668
|
+
pull_work,
|
|
669
|
+
step,
|
|
670
|
+
nrnb,
|
|
671
|
+
wcycle,
|
|
672
|
+
top,
|
|
673
|
+
state->box,
|
|
674
|
+
state->x.arrayRefWithPadding(),
|
|
675
|
+
&state->hist,
|
|
676
|
+
&f.view(),
|
|
677
|
+
force_vir,
|
|
678
|
+
mdatoms,
|
|
679
|
+
enerd,
|
|
680
|
+
state->lambda,
|
|
681
|
+
fr,
|
|
682
|
+
runScheduleWork,
|
|
683
|
+
vsite,
|
|
684
|
+
mu_tot,
|
|
685
|
+
t,
|
|
686
|
+
ed,
|
|
687
|
+
fr->longRangeNonbondeds.get(),
|
|
688
|
+
GMX_FORCE_NS | force_flags,
|
|
689
|
+
ddBalanceRegionHandler);
|
|
690
|
+
}
|
|
691
|
+
catch (const gmx::InternalError&)
|
|
692
|
+
{
|
|
693
|
+
GMX_LOG(mdlog.warning)
|
|
694
|
+
.asParagraph()
|
|
695
|
+
.appendText(
|
|
696
|
+
"Continuing with next frame after catching invalid force in "
|
|
697
|
+
"previous frame");
|
|
698
|
+
};
|
|
699
|
+
}
|
|
700
|
+
|
|
701
|
+
/* Now we have the energies and forces corresponding to the
|
|
702
|
+
* coordinates at time t.
|
|
703
|
+
*/
|
|
704
|
+
{
|
|
705
|
+
const bool isCheckpointingStep = false;
|
|
706
|
+
const bool doRerun = true;
|
|
707
|
+
do_md_trajectory_writing(fplog,
|
|
708
|
+
cr,
|
|
709
|
+
nfile,
|
|
710
|
+
fnm,
|
|
711
|
+
step,
|
|
712
|
+
step_rel,
|
|
713
|
+
t,
|
|
714
|
+
ir,
|
|
715
|
+
state,
|
|
716
|
+
state_global,
|
|
717
|
+
observablesHistory,
|
|
718
|
+
top_global,
|
|
719
|
+
fr,
|
|
720
|
+
outf,
|
|
721
|
+
energyOutput,
|
|
722
|
+
ekind,
|
|
723
|
+
f.view().force(),
|
|
724
|
+
isCheckpointingStep,
|
|
725
|
+
doRerun,
|
|
726
|
+
isLastStep,
|
|
727
|
+
mdrunOptions.writeConfout,
|
|
728
|
+
EkindataState::NotUsed);
|
|
729
|
+
}
|
|
730
|
+
|
|
731
|
+
stopHandler->setSignal();
|
|
732
|
+
|
|
733
|
+
{
|
|
734
|
+
const bool doInterSimSignal = false;
|
|
735
|
+
const bool doIntraSimSignal = true;
|
|
736
|
+
bool bSumEkinhOld = false;
|
|
737
|
+
t_vcm* vcm = nullptr;
|
|
738
|
+
SimulationSignaller signaller(&signals, cr, ms, doInterSimSignal, doIntraSimSignal);
|
|
739
|
+
|
|
740
|
+
int cglo_flags = CGLO_GSTAT | CGLO_ENERGY;
|
|
741
|
+
compute_globals(gstat,
|
|
742
|
+
cr,
|
|
743
|
+
ir,
|
|
744
|
+
fr,
|
|
745
|
+
ekind,
|
|
746
|
+
makeConstArrayRef(state->x),
|
|
747
|
+
makeConstArrayRef(state->v),
|
|
748
|
+
state->box,
|
|
749
|
+
mdatoms,
|
|
750
|
+
nrnb,
|
|
751
|
+
vcm,
|
|
752
|
+
wcycle,
|
|
753
|
+
enerd,
|
|
754
|
+
force_vir,
|
|
755
|
+
shake_vir,
|
|
756
|
+
total_vir,
|
|
757
|
+
pres,
|
|
758
|
+
&signaller,
|
|
759
|
+
state->box,
|
|
760
|
+
&bSumEkinhOld,
|
|
761
|
+
cglo_flags,
|
|
762
|
+
step,
|
|
763
|
+
&observablesReducer);
|
|
764
|
+
// Clean up after pre-step use of compute_globals()
|
|
765
|
+
observablesReducer.markAsReadyToReduce();
|
|
766
|
+
}
|
|
767
|
+
|
|
768
|
+
/* Note: this is OK, but there are some numerical precision issues with using the convergence of
|
|
769
|
+
the virial that should probably be addressed eventually. state->veta has better properies,
|
|
770
|
+
but what we actually need entering the new cycle is the new shake_vir value. Ideally, we could
|
|
771
|
+
generate the new shake_vir, but test the veta value for convergence. This will take some thought. */
|
|
772
|
+
|
|
773
|
+
/* Output stuff */
|
|
774
|
+
if (MASTER(cr))
|
|
775
|
+
{
|
|
776
|
+
const bool bCalcEnerStep = true;
|
|
777
|
+
energyOutput.addDataAtEnergyStep(doFreeEnergyPerturbation,
|
|
778
|
+
bCalcEnerStep,
|
|
779
|
+
t,
|
|
780
|
+
mdatoms->tmass,
|
|
781
|
+
enerd,
|
|
782
|
+
ir->fepvals.get(),
|
|
783
|
+
state->box,
|
|
784
|
+
PTCouplingArrays({ state->boxv,
|
|
785
|
+
state->nosehoover_xi,
|
|
786
|
+
state->nosehoover_vxi,
|
|
787
|
+
state->nhpres_xi,
|
|
788
|
+
state->nhpres_vxi }),
|
|
789
|
+
state->fep_state,
|
|
790
|
+
total_vir,
|
|
791
|
+
pres,
|
|
792
|
+
ekind,
|
|
793
|
+
mu_tot,
|
|
794
|
+
constr);
|
|
795
|
+
|
|
796
|
+
const bool do_ene = true;
|
|
797
|
+
const bool do_log = true;
|
|
798
|
+
Awh* awh = nullptr;
|
|
799
|
+
const bool do_dr = ir->nstdisreout != 0;
|
|
800
|
+
const bool do_or = ir->nstorireout != 0;
|
|
801
|
+
|
|
802
|
+
EnergyOutput::printAnnealingTemperatures(do_log ? fplog : nullptr, groups, &(ir->opts));
|
|
803
|
+
energyOutput.printStepToEnergyFile(mdoutf_get_fp_ene(outf),
|
|
804
|
+
do_ene,
|
|
805
|
+
do_dr,
|
|
806
|
+
do_or,
|
|
807
|
+
do_log ? fplog : nullptr,
|
|
808
|
+
step,
|
|
809
|
+
t,
|
|
810
|
+
fr->fcdata.get(),
|
|
811
|
+
awh);
|
|
812
|
+
|
|
813
|
+
if (ir->bPull)
|
|
814
|
+
{
|
|
815
|
+
pull_print_output(pull_work, step, t);
|
|
816
|
+
}
|
|
817
|
+
|
|
818
|
+
if (do_per_step(step, ir->nstlog))
|
|
819
|
+
{
|
|
820
|
+
if (fflush(fplog) != 0)
|
|
821
|
+
{
|
|
822
|
+
gmx_fatal(FARGS, "Cannot flush logfile - maybe you are out of disk space?");
|
|
823
|
+
}
|
|
824
|
+
}
|
|
825
|
+
}
|
|
826
|
+
|
|
827
|
+
/* Print the remaining wall clock time for the run */
|
|
828
|
+
if (isMasterSimMasterRank(ms, MASTER(cr)) && (mdrunOptions.verbose || gmx_got_usr_signal()))
|
|
829
|
+
{
|
|
830
|
+
if (shellfc)
|
|
831
|
+
{
|
|
832
|
+
fprintf(stderr, "\n");
|
|
833
|
+
}
|
|
834
|
+
print_time(stderr, walltime_accounting, step, ir, cr);
|
|
835
|
+
}
|
|
836
|
+
|
|
837
|
+
/* Ion/water position swapping.
|
|
838
|
+
* Not done in last step since trajectory writing happens before this call
|
|
839
|
+
* in the MD loop and exchanges would be lost anyway. */
|
|
840
|
+
if ((ir->eSwapCoords != SwapType::No) && (step > 0) && !isLastStep
|
|
841
|
+
&& do_per_step(step, ir->swap->nstswap))
|
|
842
|
+
{
|
|
843
|
+
const bool doRerun = true;
|
|
844
|
+
do_swapcoords(cr,
|
|
845
|
+
step,
|
|
846
|
+
t,
|
|
847
|
+
ir,
|
|
848
|
+
swap,
|
|
849
|
+
wcycle,
|
|
850
|
+
rerun_fr.x,
|
|
851
|
+
rerun_fr.box,
|
|
852
|
+
MASTER(cr) && mdrunOptions.verbose,
|
|
853
|
+
doRerun);
|
|
854
|
+
}
|
|
855
|
+
|
|
856
|
+
if (MASTER(cr))
|
|
857
|
+
{
|
|
858
|
+
/* read next frame from input trajectory */
|
|
859
|
+
isLastStep = !read_next_frame(oenv, status, &rerun_fr);
|
|
860
|
+
}
|
|
861
|
+
|
|
862
|
+
if (PAR(cr))
|
|
863
|
+
{
|
|
864
|
+
rerun_parallel_comm(cr, &rerun_fr, &isLastStep);
|
|
865
|
+
}
|
|
866
|
+
|
|
867
|
+
cycles = wallcycle_stop(wcycle, WallCycleCounter::Step);
|
|
868
|
+
if (haveDDAtomOrdering(*cr) && wcycle)
|
|
869
|
+
{
|
|
870
|
+
dd_cycles_add(cr->dd, cycles, ddCyclStep);
|
|
871
|
+
}
|
|
872
|
+
|
|
873
|
+
if (!rerun_fr.bStep)
|
|
874
|
+
{
|
|
875
|
+
/* increase the MD step number */
|
|
876
|
+
step++;
|
|
877
|
+
step_rel++;
|
|
878
|
+
}
|
|
879
|
+
observablesReducer.markAsReadyToReduce();
|
|
880
|
+
}
|
|
881
|
+
/* End of main MD loop */
|
|
882
|
+
|
|
883
|
+
/* Closing TNG files can include compressing data. Therefore it is good to do that
|
|
884
|
+
* before stopping the time measurements. */
|
|
885
|
+
mdoutf_tng_close(outf);
|
|
886
|
+
|
|
887
|
+
/* Stop measuring walltime */
|
|
888
|
+
walltime_accounting_end_time(walltime_accounting);
|
|
889
|
+
|
|
890
|
+
if (MASTER(cr))
|
|
891
|
+
{
|
|
892
|
+
close_trx(status);
|
|
893
|
+
}
|
|
894
|
+
|
|
895
|
+
if (!thisRankHasDuty(cr, DUTY_PME))
|
|
896
|
+
{
|
|
897
|
+
/* Tell the PME only node to finish */
|
|
898
|
+
gmx_pme_send_finish(cr);
|
|
899
|
+
}
|
|
900
|
+
|
|
901
|
+
done_mdoutf(outf);
|
|
902
|
+
|
|
903
|
+
done_shellfc(fplog, shellfc, step_rel);
|
|
904
|
+
|
|
905
|
+
walltime_accounting_set_nsteps_done(walltime_accounting, step_rel);
|
|
906
|
+
}
|