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,133 @@
|
|
|
1
|
+
import pathlib
|
|
2
|
+
from typing import Protocol
|
|
3
|
+
|
|
4
|
+
import ase
|
|
5
|
+
from ase.calculators.calculator import Calculator
|
|
6
|
+
from PIL import Image
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
class NodeWithCalculator(Protocol):
|
|
10
|
+
"""Any class with a `get_calculator` method returning an ASE Calculator."""
|
|
11
|
+
|
|
12
|
+
def get_calculator(
|
|
13
|
+
self, *, directory: str | pathlib.Path | None = None, **kwargs
|
|
14
|
+
) -> Calculator: ...
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
class AtomSelector(Protocol):
|
|
18
|
+
"""Protocol for selecting atoms within a single ASE Atoms object.
|
|
19
|
+
|
|
20
|
+
This interface defines the contract for selecting atoms based on various
|
|
21
|
+
criteria within an individual frame/structure.
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
def select(self, atoms: ase.Atoms) -> list[list[int]]:
|
|
25
|
+
"""Select atoms based on the implemented criteria.
|
|
26
|
+
|
|
27
|
+
Parameters
|
|
28
|
+
----------
|
|
29
|
+
atoms : ase.Atoms
|
|
30
|
+
The atomic structure to select from.
|
|
31
|
+
|
|
32
|
+
Returns
|
|
33
|
+
-------
|
|
34
|
+
list[list[int]]
|
|
35
|
+
Groups of indices of selected atoms. All indices in the inner lists
|
|
36
|
+
are representative of the same group, e.g. one molecule.
|
|
37
|
+
"""
|
|
38
|
+
...
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
class PlumedGenerator(Protocol):
|
|
42
|
+
"""Protocol for generating PLUMED strings from collective variables."""
|
|
43
|
+
|
|
44
|
+
def to_plumed(self, atoms: ase.Atoms) -> list[str]: ...
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
class CollectiveVariable(Protocol):
|
|
48
|
+
"""Protocol for collective variables (CVs) that can be used in PLUMED."""
|
|
49
|
+
|
|
50
|
+
prefix: str
|
|
51
|
+
|
|
52
|
+
def get_img(self, atoms: ase.Atoms) -> Image.Image: ...
|
|
53
|
+
|
|
54
|
+
def to_plumed(self, atoms: ase.Atoms) -> tuple[list[str], list[str]]:
|
|
55
|
+
"""
|
|
56
|
+
Convert the collective variable to a PLUMED string.
|
|
57
|
+
|
|
58
|
+
Parameters
|
|
59
|
+
----------
|
|
60
|
+
atoms : ase.Atoms
|
|
61
|
+
The atomic structure to use for generating the PLUMED string.
|
|
62
|
+
|
|
63
|
+
Returns
|
|
64
|
+
-------
|
|
65
|
+
tuple[list[str], str]
|
|
66
|
+
- List of distance labels.
|
|
67
|
+
- list of PLUMED strings representing the CV.
|
|
68
|
+
"""
|
|
69
|
+
...
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
class BiasProtocol(Protocol):
|
|
73
|
+
"""Protocol for individual bias potentials that act on collective variables.
|
|
74
|
+
|
|
75
|
+
Individual bias potentials (restraints, walls) operate on collective variables
|
|
76
|
+
and generate their own PLUMED commands via to_plumed(). These biases are added
|
|
77
|
+
to MetaDynamicsModel via the `actions` parameter.
|
|
78
|
+
|
|
79
|
+
This is distinct from MetadynamicsBias, which is used for configuring the
|
|
80
|
+
collective METAD command itself (via the `bias_cvs` parameter).
|
|
81
|
+
"""
|
|
82
|
+
|
|
83
|
+
cv: CollectiveVariable
|
|
84
|
+
|
|
85
|
+
def to_plumed(self, atoms: ase.Atoms) -> list[str]:
|
|
86
|
+
"""Generate PLUMED input strings for this bias.
|
|
87
|
+
|
|
88
|
+
Parameters
|
|
89
|
+
----------
|
|
90
|
+
atoms : ase.Atoms
|
|
91
|
+
The atomic structure to use for generating the PLUMED string.
|
|
92
|
+
|
|
93
|
+
Returns
|
|
94
|
+
-------
|
|
95
|
+
list[str]
|
|
96
|
+
List of PLUMED command strings.
|
|
97
|
+
"""
|
|
98
|
+
...
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
class MetadynamicsBias(Protocol):
|
|
102
|
+
"""Protocol for metadynamics bias configuration objects.
|
|
103
|
+
|
|
104
|
+
This protocol defines the configuration structure for per-CV metadynamics
|
|
105
|
+
parameters (sigma, grid settings, etc.). These configuration objects are
|
|
106
|
+
used in the `bias_cvs` parameter of MetaDynamicsModel to build the collective
|
|
107
|
+
METAD command.
|
|
108
|
+
|
|
109
|
+
This is distinct from BiasProtocol, which is for individual bias potentials
|
|
110
|
+
(restraints, walls) that generate their own PLUMED commands and are added
|
|
111
|
+
via the `actions` parameter.
|
|
112
|
+
"""
|
|
113
|
+
|
|
114
|
+
cv: CollectiveVariable
|
|
115
|
+
sigma: float | None = None
|
|
116
|
+
grid_min: float | str | None = None
|
|
117
|
+
grid_max: float | str | None = None
|
|
118
|
+
grid_bin: int | None = None
|
|
119
|
+
|
|
120
|
+
|
|
121
|
+
__all__ = [
|
|
122
|
+
"NodeWithCalculator",
|
|
123
|
+
"AtomSelector",
|
|
124
|
+
"PlumedGenerator",
|
|
125
|
+
"CollectiveVariable",
|
|
126
|
+
"BiasProtocol",
|
|
127
|
+
"MetadynamicsBias",
|
|
128
|
+
]
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
def interfaces() -> dict[str, list[str]]:
|
|
132
|
+
"""Return a dictionary of available interfaces."""
|
|
133
|
+
return {"plumed-nodes": __all__}
|
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
import dataclasses
|
|
2
|
+
import typing as t
|
|
3
|
+
from pathlib import Path
|
|
4
|
+
|
|
5
|
+
import ase.units
|
|
6
|
+
import zntrack
|
|
7
|
+
|
|
8
|
+
from hillclimber.calc import NonOverwritingPlumed
|
|
9
|
+
from hillclimber.interfaces import (
|
|
10
|
+
CollectiveVariable,
|
|
11
|
+
NodeWithCalculator,
|
|
12
|
+
PlumedGenerator,
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@dataclasses.dataclass
|
|
17
|
+
class MetadBias:
|
|
18
|
+
"""Metadynamics bias configuration for a collective variable.
|
|
19
|
+
|
|
20
|
+
Parameters
|
|
21
|
+
----------
|
|
22
|
+
cv : CollectiveVariable
|
|
23
|
+
The collective variable to bias.
|
|
24
|
+
sigma : float, optional
|
|
25
|
+
The width of the Gaussian potential in the same units as the CV
|
|
26
|
+
(e.g., Å for distances, radians for angles), by default None.
|
|
27
|
+
grid_min : float | str, optional
|
|
28
|
+
The minimum value of the grid in CV units (or PLUMED expression like "-pi"),
|
|
29
|
+
by default None.
|
|
30
|
+
grid_max : float | str, optional
|
|
31
|
+
The maximum value of the grid in CV units (or PLUMED expression like "pi"),
|
|
32
|
+
by default None.
|
|
33
|
+
grid_bin : int, optional
|
|
34
|
+
The number of bins in the grid, by default None.
|
|
35
|
+
|
|
36
|
+
Resources
|
|
37
|
+
---------
|
|
38
|
+
- https://www.plumed.org/doc-master/user-doc/html/METAD/
|
|
39
|
+
"""
|
|
40
|
+
|
|
41
|
+
cv: CollectiveVariable
|
|
42
|
+
sigma: float | None = None
|
|
43
|
+
grid_min: float | str | None = None
|
|
44
|
+
grid_max: float | str | None = None
|
|
45
|
+
grid_bin: int | None = None
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
@dataclasses.dataclass
|
|
49
|
+
class MetaDynamicsConfig:
|
|
50
|
+
"""Base configuration for metadynamics.
|
|
51
|
+
|
|
52
|
+
This contains only the global parameters that apply to all CVs.
|
|
53
|
+
|
|
54
|
+
Units
|
|
55
|
+
-----
|
|
56
|
+
hillclimber uses ASE units throughout. The UNITS line in the PLUMED input tells
|
|
57
|
+
PLUMED to interpret all values in ASE units:
|
|
58
|
+
- Distances: Ångström (Å)
|
|
59
|
+
- Energies: electronvolt (eV) - including HEIGHT, SIGMA for energy-based CVs, etc.
|
|
60
|
+
- Time: femtoseconds (fs)
|
|
61
|
+
- Temperature: Kelvin (K)
|
|
62
|
+
|
|
63
|
+
Parameters
|
|
64
|
+
----------
|
|
65
|
+
height : float, optional
|
|
66
|
+
The height of the Gaussian potential in eV, by default 1.0.
|
|
67
|
+
pace : int, optional
|
|
68
|
+
The frequency of Gaussian deposition in MD steps, by default 500.
|
|
69
|
+
biasfactor : float, optional
|
|
70
|
+
The bias factor for well-tempered metadynamics, by default None.
|
|
71
|
+
temp : float, optional
|
|
72
|
+
The temperature of the system in Kelvin, by default 300.0.
|
|
73
|
+
file : str, optional
|
|
74
|
+
The name of the hills file, by default "HILLS".
|
|
75
|
+
adaptive : t.Literal["GEOM", "DIFF"] | None, optional
|
|
76
|
+
The adaptive scheme to use, by default None.
|
|
77
|
+
If None, no ADAPTIVE parameter is written to PLUMED.
|
|
78
|
+
flush : int | None
|
|
79
|
+
The frequency of flushing the output files in MD steps.
|
|
80
|
+
If None, uses the plumed default.
|
|
81
|
+
|
|
82
|
+
Resources
|
|
83
|
+
---------
|
|
84
|
+
- https://www.plumed.org/doc-master/user-doc/html/METAD/
|
|
85
|
+
- https://www.plumed.org/doc-master/user-doc/html/FLUSH/
|
|
86
|
+
"""
|
|
87
|
+
|
|
88
|
+
height: float = 1.0 # kJ/mol
|
|
89
|
+
pace: int = 500
|
|
90
|
+
biasfactor: float | None = None
|
|
91
|
+
temp: float = 300.0
|
|
92
|
+
file: str = "HILLS"
|
|
93
|
+
adaptive: t.Literal["GEOM", "DIFF"] | None = None
|
|
94
|
+
flush: int | None = None
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
# THERE SEEMS to be an issue with MetaDynamicsModel changing but ASEMD not updating?!?!
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
class MetaDynamicsModel(zntrack.Node, NodeWithCalculator):
|
|
101
|
+
"""A metadynamics model.
|
|
102
|
+
|
|
103
|
+
Parameters
|
|
104
|
+
----------
|
|
105
|
+
config : MetaDynamicsConfig
|
|
106
|
+
The configuration for the metadynamics simulation.
|
|
107
|
+
data : list[ase.Atoms]
|
|
108
|
+
The input data for the simulation.
|
|
109
|
+
data_idx : int, optional
|
|
110
|
+
The index of the data to use, by default -1.
|
|
111
|
+
bias_cvs : list[MetaDBiasCV], optional
|
|
112
|
+
The collective variables to bias, by default [].
|
|
113
|
+
actions : list[PlumedGenerator], optional
|
|
114
|
+
A list of actions to perform during the simulation, by default [].
|
|
115
|
+
timestep : float, optional
|
|
116
|
+
The timestep of the simulation in fs, by default 1.0.
|
|
117
|
+
model : NodeWithCalculator
|
|
118
|
+
The model to use for the simulation.
|
|
119
|
+
|
|
120
|
+
Example
|
|
121
|
+
-------
|
|
122
|
+
>>> import hillclimber as pn
|
|
123
|
+
>>> import ipsuite as ips
|
|
124
|
+
>>>
|
|
125
|
+
>>> data = ips.AddData("seed.xyz")
|
|
126
|
+
>>> cv1 = pn.DistanceCV(
|
|
127
|
+
... x1=pn.SMARTSSelector(pattern="[H]O[H]"),
|
|
128
|
+
... x2=pn.SMARTSSelector(pattern="CO[C:1]"),
|
|
129
|
+
... prefix="d",
|
|
130
|
+
... )
|
|
131
|
+
>>> metad_cv1 = pn.MetadBias(
|
|
132
|
+
... cv=cv1, sigma=0.1, grid_min=0.0, grid_max=2.0, grid_bin=200
|
|
133
|
+
... )
|
|
134
|
+
>>> model = pn.MetaDynamicsModel(
|
|
135
|
+
... config=pn.MetaDynamicsConfig(height=0.25, temp=300, pace=2000, biasfactor=10),
|
|
136
|
+
... bias_cvs=[metad_cv1],
|
|
137
|
+
... data=data.frames,
|
|
138
|
+
... model=ips.MACEMP(),
|
|
139
|
+
... timestep=0.5
|
|
140
|
+
... )
|
|
141
|
+
>>> md = ips.ASEMD(
|
|
142
|
+
... model=model, data=data.frames, ...
|
|
143
|
+
... )
|
|
144
|
+
"""
|
|
145
|
+
|
|
146
|
+
config: MetaDynamicsConfig = zntrack.deps()
|
|
147
|
+
data: list[ase.Atoms] = zntrack.deps()
|
|
148
|
+
data_idx: int = zntrack.params(-1)
|
|
149
|
+
bias_cvs: list[MetadBias] = zntrack.deps(default_factory=list)
|
|
150
|
+
actions: list[PlumedGenerator] = zntrack.deps(default_factory=list)
|
|
151
|
+
timestep: float = zntrack.params(1.0) # in fs, default is 1 fs
|
|
152
|
+
model: NodeWithCalculator = zntrack.deps()
|
|
153
|
+
|
|
154
|
+
figures: Path = zntrack.outs_path(zntrack.nwd / "figures", independent=True)
|
|
155
|
+
|
|
156
|
+
def run(self):
|
|
157
|
+
self.figures.mkdir(parents=True, exist_ok=True)
|
|
158
|
+
for cv in self.bias_cvs:
|
|
159
|
+
img = cv.cv.get_img(self.data[self.data_idx])
|
|
160
|
+
img.save(self.figures / f"{cv.cv.prefix}.png")
|
|
161
|
+
|
|
162
|
+
def get_calculator(
|
|
163
|
+
self, *, directory: str | Path | None = None, **kwargs
|
|
164
|
+
) -> NonOverwritingPlumed:
|
|
165
|
+
if directory is None:
|
|
166
|
+
raise ValueError("Directory must be specified for PLUMED input files.")
|
|
167
|
+
directory = Path(directory)
|
|
168
|
+
directory.mkdir(parents=True, exist_ok=True)
|
|
169
|
+
|
|
170
|
+
lines = self.to_plumed(self.data[self.data_idx])
|
|
171
|
+
# replace FILE= with f"FILE={directory}/" inside config
|
|
172
|
+
lines = [line.replace("FILE=", f"FILE={directory}/") for line in lines]
|
|
173
|
+
|
|
174
|
+
# Write plumed input file
|
|
175
|
+
with (directory / "plumed.dat").open("w") as file:
|
|
176
|
+
for line in lines:
|
|
177
|
+
file.write(line + "\n")
|
|
178
|
+
|
|
179
|
+
kT = ase.units.kB * self.config.temp
|
|
180
|
+
|
|
181
|
+
return NonOverwritingPlumed(
|
|
182
|
+
calc=self.model.get_calculator(directory=directory),
|
|
183
|
+
atoms=self.data[self.data_idx],
|
|
184
|
+
input=lines,
|
|
185
|
+
timestep=float(self.timestep * ase.units.fs),
|
|
186
|
+
kT=float(kT),
|
|
187
|
+
log=(directory / "plumed.log").as_posix(),
|
|
188
|
+
)
|
|
189
|
+
|
|
190
|
+
def to_plumed(self, atoms: ase.Atoms) -> list[str]:
|
|
191
|
+
"""Generate PLUMED input string for the metadynamics model."""
|
|
192
|
+
# check for duplicate CV prefixes
|
|
193
|
+
cv_labels = set()
|
|
194
|
+
for bias_cv in self.bias_cvs:
|
|
195
|
+
if bias_cv.cv.prefix in cv_labels:
|
|
196
|
+
raise ValueError(f"Duplicate CV prefix found: {bias_cv.cv.prefix}")
|
|
197
|
+
cv_labels.add(bias_cv.cv.prefix)
|
|
198
|
+
|
|
199
|
+
plumed_lines = []
|
|
200
|
+
all_labels = []
|
|
201
|
+
|
|
202
|
+
sigmas, grid_mins, grid_maxs, grid_bins = [], [], [], []
|
|
203
|
+
|
|
204
|
+
# PLUMED UNITS line specifies conversion factors from ASE units to PLUMED's native units:
|
|
205
|
+
# - LENGTH=A: ASE uses Ångström (A), PLUMED native is nm → A is a valid PLUMED unit
|
|
206
|
+
# - TIME: ASE uses fs, PLUMED native is ps → 1 fs = 0.001 ps
|
|
207
|
+
# - ENERGY: ASE uses eV, PLUMED native is kJ/mol → 1 eV = 96.485 kJ/mol
|
|
208
|
+
# See: https://www.plumed.org/doc-master/user-doc/html/ (MD engine integration docs)
|
|
209
|
+
plumed_lines.append(
|
|
210
|
+
f"UNITS LENGTH=A TIME={1 / 1000} ENERGY={ase.units.mol / ase.units.kJ}"
|
|
211
|
+
)
|
|
212
|
+
|
|
213
|
+
for bias_cv in self.bias_cvs:
|
|
214
|
+
labels, cv_str = bias_cv.cv.to_plumed(atoms)
|
|
215
|
+
plumed_lines.extend(cv_str)
|
|
216
|
+
all_labels.extend(labels)
|
|
217
|
+
|
|
218
|
+
# Collect per-CV parameters for later - repeat for each label
|
|
219
|
+
# PLUMED requires one parameter value per ARG, so if a CV generates
|
|
220
|
+
# multiple labels, we need to repeat the parameter values
|
|
221
|
+
for _ in labels:
|
|
222
|
+
sigmas.append(str(bias_cv.sigma) if bias_cv.sigma is not None else None)
|
|
223
|
+
grid_mins.append(
|
|
224
|
+
str(bias_cv.grid_min) if bias_cv.grid_min is not None else None
|
|
225
|
+
)
|
|
226
|
+
grid_maxs.append(
|
|
227
|
+
str(bias_cv.grid_max) if bias_cv.grid_max is not None else None
|
|
228
|
+
)
|
|
229
|
+
grid_bins.append(
|
|
230
|
+
str(bias_cv.grid_bin) if bias_cv.grid_bin is not None else None
|
|
231
|
+
)
|
|
232
|
+
|
|
233
|
+
metad_parts = [
|
|
234
|
+
"METAD",
|
|
235
|
+
f"ARG={','.join(all_labels)}",
|
|
236
|
+
f"HEIGHT={self.config.height}",
|
|
237
|
+
f"PACE={self.config.pace}",
|
|
238
|
+
f"TEMP={self.config.temp}",
|
|
239
|
+
f"FILE={self.config.file}",
|
|
240
|
+
]
|
|
241
|
+
if self.config.adaptive is not None:
|
|
242
|
+
metad_parts.append(f"ADAPTIVE={self.config.adaptive}")
|
|
243
|
+
if self.config.biasfactor is not None:
|
|
244
|
+
metad_parts.append(f"BIASFACTOR={self.config.biasfactor}")
|
|
245
|
+
|
|
246
|
+
# Add SIGMA, GRID_MIN, GRID_MAX, GRID_BIN only if any value is set
|
|
247
|
+
if any(v is not None for v in sigmas):
|
|
248
|
+
# When using ADAPTIVE, PLUMED requires only one sigma value
|
|
249
|
+
if self.config.adaptive is not None:
|
|
250
|
+
# Validate that all sigma values are the same when adaptive is set
|
|
251
|
+
unique_sigmas = set(v for v in sigmas if v is not None)
|
|
252
|
+
if len(unique_sigmas) > 1:
|
|
253
|
+
raise ValueError(
|
|
254
|
+
f"When using ADAPTIVE={self.config.adaptive}, all CVs must have the same sigma value. "
|
|
255
|
+
f"Found different sigma values: {unique_sigmas}"
|
|
256
|
+
)
|
|
257
|
+
# Use the first non-None sigma value
|
|
258
|
+
sigma_value = next(v for v in sigmas if v is not None)
|
|
259
|
+
metad_parts.append(f"SIGMA={sigma_value}")
|
|
260
|
+
else:
|
|
261
|
+
# Standard mode: one sigma per CV
|
|
262
|
+
metad_parts.append(
|
|
263
|
+
f"SIGMA={','.join(v if v is not None else '0.0' for v in sigmas)}"
|
|
264
|
+
)
|
|
265
|
+
if any(v is not None for v in grid_mins):
|
|
266
|
+
metad_parts.append(
|
|
267
|
+
f"GRID_MIN={','.join(v if v is not None else '0.0' for v in grid_mins)}"
|
|
268
|
+
)
|
|
269
|
+
if any(v is not None for v in grid_maxs):
|
|
270
|
+
metad_parts.append(
|
|
271
|
+
f"GRID_MAX={','.join(v if v is not None else '0.0' for v in grid_maxs)}"
|
|
272
|
+
)
|
|
273
|
+
if any(v is not None for v in grid_bins):
|
|
274
|
+
metad_parts.append(
|
|
275
|
+
f"GRID_BIN={','.join(v if v is not None else '0' for v in grid_bins)}"
|
|
276
|
+
)
|
|
277
|
+
|
|
278
|
+
plumed_lines.append(f"metad: {' '.join(metad_parts)}")
|
|
279
|
+
|
|
280
|
+
# Track defined commands to detect duplicates and conflicts
|
|
281
|
+
# Map label -> full command for labeled commands (e.g., "d: DISTANCE ...")
|
|
282
|
+
defined_commands = {}
|
|
283
|
+
for line in plumed_lines:
|
|
284
|
+
# Check if this is a labeled command (format: "label: ACTION ...")
|
|
285
|
+
if ": " in line:
|
|
286
|
+
label = line.split(": ", 1)[0]
|
|
287
|
+
defined_commands[label] = line
|
|
288
|
+
|
|
289
|
+
# Add any additional actions (restraints, walls, print actions, etc.)
|
|
290
|
+
for action in self.actions:
|
|
291
|
+
action_lines = action.to_plumed(atoms)
|
|
292
|
+
|
|
293
|
+
# Filter out duplicate CV definitions, but detect conflicts
|
|
294
|
+
filtered_lines = []
|
|
295
|
+
for line in action_lines:
|
|
296
|
+
# Check if this is a labeled command
|
|
297
|
+
if ": " in line:
|
|
298
|
+
label = line.split(": ", 1)[0]
|
|
299
|
+
|
|
300
|
+
# Check if this label was already defined
|
|
301
|
+
if label in defined_commands:
|
|
302
|
+
# If the command is identical, skip (deduplication)
|
|
303
|
+
if defined_commands[label] == line:
|
|
304
|
+
continue
|
|
305
|
+
# If the command is different, raise error (conflict)
|
|
306
|
+
else:
|
|
307
|
+
raise ValueError(
|
|
308
|
+
f"Conflicting definitions for label '{label}':\n"
|
|
309
|
+
f" Already defined: {defined_commands[label]}\n"
|
|
310
|
+
f" New definition: {line}"
|
|
311
|
+
)
|
|
312
|
+
else:
|
|
313
|
+
# New labeled command, track it
|
|
314
|
+
defined_commands[label] = line
|
|
315
|
+
filtered_lines.append(line)
|
|
316
|
+
else:
|
|
317
|
+
# Unlabeled command, always add
|
|
318
|
+
filtered_lines.append(line)
|
|
319
|
+
|
|
320
|
+
plumed_lines.extend(filtered_lines)
|
|
321
|
+
|
|
322
|
+
# Add FLUSH if configured
|
|
323
|
+
if self.config.flush is not None:
|
|
324
|
+
plumed_lines.append(f"FLUSH STRIDE={self.config.flush}")
|
|
325
|
+
return plumed_lines
|