hillclimber 0.1.5a8__cp314-cp314-macosx_15_0_x86_64.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 +1065 -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.5a8.dist-info/METADATA +209 -0
- hillclimber-0.1.5a8.dist-info/RECORD +469 -0
- hillclimber-0.1.5a8.dist-info/WHEEL +6 -0
- hillclimber-0.1.5a8.dist-info/entry_points.txt +8 -0
- hillclimber-0.1.5a8.dist-info/licenses/LICENSE +165 -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.dylib +0 -0
- plumed/_lib/lib/libplumed.dylib +0 -0
- plumed/_lib/lib/libplumedKernel.dylib +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 +181 -0
- plumed/_lib/lib/plumed/src/lib/Plumed.cmake +6 -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 +3 -0
- plumed/_lib/lib/plumed/src/lib/Plumed.inc +6 -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 +3 -0
- plumed/_lib/lib/plumed/vim/scripts.vim +6 -0
- plumed/_plumed_core.cpython-311-darwin.so +0 -0
- plumed/_plumed_core.cpython-312-darwin.so +0 -0
- plumed/_plumed_core.cpython-313-darwin.so +0 -0
- plumed/_plumed_core.cpython-314-darwin.so +0 -0
- plumedCommunications.cpython-311-darwin.so +0 -0
- plumedCommunications.cpython-312-darwin.so +0 -0
- plumedCommunications.cpython-313-darwin.so +0 -0
- plumedCommunications.cpython-314-darwin.so +0 -0
- plumedCommunications.pyi +431 -0
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
2
|
+
Copyright (c) 2011-2023 The plumed team
|
|
3
|
+
(see the PEOPLE file at the root of the distribution for a list of names)
|
|
4
|
+
|
|
5
|
+
See http://www.plumed.org for more information.
|
|
6
|
+
|
|
7
|
+
This file is part of plumed, version 2.
|
|
8
|
+
|
|
9
|
+
plumed is free software: you can redistribute it and/or modify
|
|
10
|
+
it under the terms of the GNU Lesser General Public License as published by
|
|
11
|
+
the Free Software Foundation, either version 3 of the License, or
|
|
12
|
+
(at your option) any later version.
|
|
13
|
+
|
|
14
|
+
plumed is distributed in the hope that it will be useful,
|
|
15
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
16
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
17
|
+
GNU Lesser General Public License for more details.
|
|
18
|
+
|
|
19
|
+
You should have received a copy of the GNU Lesser General Public License
|
|
20
|
+
along with plumed. If not, see <http://www.gnu.org/licenses/>.
|
|
21
|
+
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
|
|
22
|
+
#ifndef __PLUMED_core_ActionSet_h
|
|
23
|
+
#define __PLUMED_core_ActionSet_h
|
|
24
|
+
|
|
25
|
+
#include "Action.h"
|
|
26
|
+
#include "ActionShortcut.h"
|
|
27
|
+
#include <memory>
|
|
28
|
+
|
|
29
|
+
namespace PLMD {
|
|
30
|
+
|
|
31
|
+
class PlumedMain;
|
|
32
|
+
|
|
33
|
+
/// std::vector containing the sequence of Action to be done.
|
|
34
|
+
/// It is a vector of Action*, and as such it has the entire
|
|
35
|
+
/// std::vector interface. Moreover, it implements methods to extract
|
|
36
|
+
/// Acion* of a given type (select<T>()), NOT of a given type (selectNot<T>())
|
|
37
|
+
/// or to find an Action with a given label (selectWithLabel())
|
|
38
|
+
/// Finally, since it holds pointers, there is a clearDelete() function
|
|
39
|
+
/// which deletes the pointers before deleting the vector
|
|
40
|
+
class ActionSet:
|
|
41
|
+
public std::vector<std::unique_ptr<Action>> {
|
|
42
|
+
PlumedMain& plumed;
|
|
43
|
+
public:
|
|
44
|
+
explicit ActionSet(PlumedMain&p);
|
|
45
|
+
~ActionSet();
|
|
46
|
+
/// Clear and deletes all the included pointers.
|
|
47
|
+
void clearDelete();
|
|
48
|
+
|
|
49
|
+
/// Extract pointers to all Action's of type T
|
|
50
|
+
/// To extract all Colvar , use select<Colvar*>();
|
|
51
|
+
template <class T>
|
|
52
|
+
std::vector<T> select()const;
|
|
53
|
+
/// Extract pointers to all Action's which are not of type T
|
|
54
|
+
/// E.g., to extract all noncolvars, use
|
|
55
|
+
/// selectNot<Colvar*>();
|
|
56
|
+
template <class T>
|
|
57
|
+
std::vector<Action*> selectNot()const;
|
|
58
|
+
/// Extract pointer to an action labeled s, only if it is of
|
|
59
|
+
/// type T. E.g., to extract an action labeled "pippo", use selectWithLabel<Action*>("pippo")
|
|
60
|
+
/// If you want it to be a Colvar, use selectWithLabel<Colvar*>(pippo). If it is
|
|
61
|
+
/// not found, it returns NULL
|
|
62
|
+
template <class T>
|
|
63
|
+
T selectWithLabel(const std::string&s)const;
|
|
64
|
+
/// get the labels in the list of actions in form of a string (useful to debug)
|
|
65
|
+
/// Only classes that can be dynamic casted to T are reported
|
|
66
|
+
template <class T>
|
|
67
|
+
std::string getLabelList() const;
|
|
68
|
+
/// get the labels in the form of a vector of strings
|
|
69
|
+
/// Only classes that can be dynamic casted to T are reported
|
|
70
|
+
template <class T>
|
|
71
|
+
std::vector<std::string> getLabelVector() const;
|
|
72
|
+
/// Extract pointer to last action of type T located before
|
|
73
|
+
/// action. If action is not in ActionSet or if there is no action of type T
|
|
74
|
+
/// returns NULL.
|
|
75
|
+
/// Typically to be used as selectLatest<Type>(this);
|
|
76
|
+
template <class T>
|
|
77
|
+
T selectLatest(const Action*action)const;
|
|
78
|
+
/// Get any shortcuts with this shortcut label
|
|
79
|
+
ActionShortcut* getShortcutActionWithLabel( const std::string& s ) const ;
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
/////
|
|
83
|
+
// INLINE IMPLEMENTATIONS:
|
|
84
|
+
|
|
85
|
+
template <class T>
|
|
86
|
+
std::vector<T> ActionSet::select()const {
|
|
87
|
+
std::vector<T> ret;
|
|
88
|
+
for(const auto & p : (*this)) {
|
|
89
|
+
T t=dynamic_cast<T>(p.get());
|
|
90
|
+
if(t) {
|
|
91
|
+
ret.push_back(t);
|
|
92
|
+
}
|
|
93
|
+
};
|
|
94
|
+
return ret;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
template <class T>
|
|
98
|
+
T ActionSet::selectWithLabel(const std::string&s)const {
|
|
99
|
+
for(const auto & p : (*this)) {
|
|
100
|
+
T t=dynamic_cast<T>(p.get());
|
|
101
|
+
if(t && t->getLabel()==s) {
|
|
102
|
+
return t;
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
return NULL;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
template <class T>
|
|
109
|
+
std::vector<Action*> ActionSet::selectNot()const {
|
|
110
|
+
std::vector<Action*> ret;
|
|
111
|
+
for(const auto & p : (*this)) {
|
|
112
|
+
T t=dynamic_cast<T>(p);
|
|
113
|
+
if(!t) {
|
|
114
|
+
ret.push_back(p.get());
|
|
115
|
+
}
|
|
116
|
+
};
|
|
117
|
+
return ret;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
template <class T>
|
|
121
|
+
std::string ActionSet::getLabelList() const {
|
|
122
|
+
std::string outlist;
|
|
123
|
+
for(const auto & p : (*this)) {
|
|
124
|
+
if(dynamic_cast<T>(p.get())) {
|
|
125
|
+
outlist+=p->getLabel()+" ";
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
return outlist;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
template <class T>
|
|
133
|
+
std::vector<std::string> ActionSet::getLabelVector() const {
|
|
134
|
+
std::vector<std::string> outlist;
|
|
135
|
+
for(const auto & p : (*this)) {
|
|
136
|
+
if(dynamic_cast<T>(p.get())) {
|
|
137
|
+
outlist.push_back(p->getLabel());
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
return outlist;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
template <class T>
|
|
144
|
+
T ActionSet::selectLatest(const Action*action) const {
|
|
145
|
+
T t=nullptr;
|
|
146
|
+
for(const auto & p : (*this)) {
|
|
147
|
+
if(p.get()==action) {
|
|
148
|
+
return t;
|
|
149
|
+
}
|
|
150
|
+
T r=dynamic_cast<T>(p.get());
|
|
151
|
+
if(r) {
|
|
152
|
+
t=r;
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
return t;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
#endif
|
|
163
|
+
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
2
|
+
Copyright (c) 2011-2023 The plumed team
|
|
3
|
+
(see the PEOPLE file at the root of the distribution for a list of names)
|
|
4
|
+
|
|
5
|
+
See http://www.plumed.org for more information.
|
|
6
|
+
|
|
7
|
+
This file is part of plumed, version 2.
|
|
8
|
+
|
|
9
|
+
plumed is free software: you can redistribute it and/or modify
|
|
10
|
+
it under the terms of the GNU Lesser General Public License as published by
|
|
11
|
+
the Free Software Foundation, either version 3 of the License, or
|
|
12
|
+
(at your option) any later version.
|
|
13
|
+
|
|
14
|
+
plumed is distributed in the hope that it will be useful,
|
|
15
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
16
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
17
|
+
GNU Lesser General Public License for more details.
|
|
18
|
+
|
|
19
|
+
You should have received a copy of the GNU Lesser General Public License
|
|
20
|
+
along with plumed. If not, see <http://www.gnu.org/licenses/>.
|
|
21
|
+
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
|
|
22
|
+
#ifndef __PLUMED_core_ActionSetup_h
|
|
23
|
+
#define __PLUMED_core_ActionSetup_h
|
|
24
|
+
|
|
25
|
+
#include "Action.h"
|
|
26
|
+
|
|
27
|
+
namespace PLMD {
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
\ingroup MULTIINHERIT
|
|
31
|
+
Action used to create a PLMD::Action that do something during setup only e.g. PLMD::SetupUnits
|
|
32
|
+
*/
|
|
33
|
+
class ActionSetup :
|
|
34
|
+
public virtual Action {
|
|
35
|
+
public:
|
|
36
|
+
/// Constructor
|
|
37
|
+
explicit ActionSetup(const ActionOptions&ao);
|
|
38
|
+
/// Creator of keywords
|
|
39
|
+
static void registerKeywords( Keywords& keys );
|
|
40
|
+
/// Do nothing.
|
|
41
|
+
void calculate() override {}
|
|
42
|
+
/// Do nothing.
|
|
43
|
+
void apply() override {}
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
#endif
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
2
|
+
Copyright (c) 2018-2023 The plumed team
|
|
3
|
+
(see the PEOPLE file at the root of the distribution for a list of names)
|
|
4
|
+
|
|
5
|
+
See http://www.plumed.org for more information.
|
|
6
|
+
|
|
7
|
+
This file is part of plumed, version 2.
|
|
8
|
+
|
|
9
|
+
plumed is free software: you can redistribute it and/or modify
|
|
10
|
+
it under the terms of the GNU Lesser General Public License as published by
|
|
11
|
+
the Free Software Foundation, either version 3 of the License, or
|
|
12
|
+
(at your option) any later version.
|
|
13
|
+
|
|
14
|
+
plumed is distributed in the hope that it will be useful,
|
|
15
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
16
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
17
|
+
GNU Lesser General Public License for more details.
|
|
18
|
+
|
|
19
|
+
You should have received a copy of the GNU Lesser General Public License
|
|
20
|
+
along with plumed. If not, see <http://www.gnu.org/licenses/>.
|
|
21
|
+
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
|
|
22
|
+
#ifndef __PLUMED_core_ActionShortcut_h
|
|
23
|
+
#define __PLUMED_core_ActionShortcut_h
|
|
24
|
+
|
|
25
|
+
#include "Action.h"
|
|
26
|
+
|
|
27
|
+
namespace PLMD {
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
\ingroup MULTIINHERIT
|
|
31
|
+
Action used to create a command that expands to multiple PLMD::Action commands when read in during input
|
|
32
|
+
*/
|
|
33
|
+
class ActionShortcut :
|
|
34
|
+
public virtual Action {
|
|
35
|
+
friend class ActionSet;
|
|
36
|
+
private:
|
|
37
|
+
std::string shortcutlabel;
|
|
38
|
+
std::vector<std::string> savedInputLines;
|
|
39
|
+
std::vector<std::string> savedOutputs;
|
|
40
|
+
void addToSavedInputLines( const std::string& line );
|
|
41
|
+
protected:
|
|
42
|
+
std::string getUpdateLimits() const ;
|
|
43
|
+
public:
|
|
44
|
+
const std::string & getShortcutLabel() const ;
|
|
45
|
+
static void registerKeywords( Keywords& keys );
|
|
46
|
+
/// Constructor
|
|
47
|
+
explicit ActionShortcut(const ActionOptions&ao);
|
|
48
|
+
/// Read keywords
|
|
49
|
+
void readShortcutKeywords( const Keywords& keys, std::map<std::string,std::string>& keymap );
|
|
50
|
+
/// Read a line of input and create appropriate actions
|
|
51
|
+
void readInputLine( const std::string& input, bool saveline=true );
|
|
52
|
+
/// Add a comment to your shortcut output
|
|
53
|
+
void addCommentToShortcutOutput( const std::string& input );
|
|
54
|
+
/// Do nothing.
|
|
55
|
+
void calculate() override {}
|
|
56
|
+
/// Do nothing.
|
|
57
|
+
void apply() override {}
|
|
58
|
+
/// Get the lines of the shortcut that were read in
|
|
59
|
+
const std::vector<std::string>& getSavedInputLines() const ;
|
|
60
|
+
/// Get the labels of the actions that this creates
|
|
61
|
+
const std::vector<std::string>& getSavedOutputs() const ;
|
|
62
|
+
/// Take everything that was input to this action and convert it to a string
|
|
63
|
+
std::string convertInputLineToString();
|
|
64
|
+
/// This sorts out the reading of arguments from shortcuts
|
|
65
|
+
void interpretDataLabel( const std::string& mystr, Action* myuser, std::vector<Value*>& args ) const ;
|
|
66
|
+
ActionShortcut* castToActionShortcut() noexcept final {
|
|
67
|
+
return this;
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
#endif
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
2
|
+
Copyright (c) 2017-2023 The plumed team
|
|
3
|
+
(see the PEOPLE file at the root of the distribution for a list of names)
|
|
4
|
+
|
|
5
|
+
See http://www.plumed.org for more information.
|
|
6
|
+
|
|
7
|
+
This file is part of plumed, version 2.
|
|
8
|
+
|
|
9
|
+
plumed is free software: you can redistribute it and/or modify
|
|
10
|
+
it under the terms of the GNU Lesser General Public License as published by
|
|
11
|
+
the Free Software Foundation, either version 3 of the License, or
|
|
12
|
+
(at your option) any later version.
|
|
13
|
+
|
|
14
|
+
plumed is distributed in the hope that it will be useful,
|
|
15
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
16
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
17
|
+
GNU Lesser General Public License for more details.
|
|
18
|
+
|
|
19
|
+
You should have received a copy of the GNU Lesser General Public License
|
|
20
|
+
along with plumed. If not, see <http://www.gnu.org/licenses/>.
|
|
21
|
+
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
|
|
22
|
+
#ifndef __PLUMED_core_ActionToGetData_h
|
|
23
|
+
#define __PLUMED_core_ActionToGetData_h
|
|
24
|
+
|
|
25
|
+
#include "ActionWithArguments.h"
|
|
26
|
+
#include "ActionPilot.h"
|
|
27
|
+
#include "DataPassingObject.h"
|
|
28
|
+
|
|
29
|
+
namespace PLMD {
|
|
30
|
+
|
|
31
|
+
class ActionToGetData :
|
|
32
|
+
public ActionPilot,
|
|
33
|
+
public ActionWithArguments {
|
|
34
|
+
private:
|
|
35
|
+
/// What do you want to collect to pass back to python
|
|
36
|
+
enum class dataType {val,deriv,force} gtype;
|
|
37
|
+
/// This holds the pointer that we are setting
|
|
38
|
+
std::unique_ptr<DataPassingObject> mydata;
|
|
39
|
+
/// This temporarily holds the data so it can be passed out
|
|
40
|
+
std::vector<double> data;
|
|
41
|
+
public:
|
|
42
|
+
static void registerKeywords(Keywords& keys);
|
|
43
|
+
explicit ActionToGetData(const ActionOptions&ao);
|
|
44
|
+
/// Get the rank of the output
|
|
45
|
+
void get_rank( const TypesafePtr & rank );
|
|
46
|
+
/// Get the shape of the output
|
|
47
|
+
void get_shape( const TypesafePtr & dims );
|
|
48
|
+
/// Set the memory that holds the output
|
|
49
|
+
void set_memory( const TypesafePtr & val );
|
|
50
|
+
/// Actually set the values for the output
|
|
51
|
+
void calculate();
|
|
52
|
+
void apply() {}
|
|
53
|
+
ActionToGetData* castToActionToGetData() noexcept final {
|
|
54
|
+
return this;
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
}
|
|
59
|
+
#endif
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
2
|
+
Copyright (c) 2017-2023 The plumed team
|
|
3
|
+
(see the PEOPLE file at the root of the distribution for a list of names)
|
|
4
|
+
|
|
5
|
+
See http://www.plumed.org for more information.
|
|
6
|
+
|
|
7
|
+
This file is part of plumed, version 2.
|
|
8
|
+
|
|
9
|
+
plumed is free software: you can redistribute it and/or modify
|
|
10
|
+
it under the terms of the GNU Lesser General Public License as published by
|
|
11
|
+
the Free Software Foundation, either version 3 of the License, or
|
|
12
|
+
(at your option) any later version.
|
|
13
|
+
|
|
14
|
+
plumed is distributed in the hope that it will be useful,
|
|
15
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
16
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
17
|
+
GNU Lesser General Public License for more details.
|
|
18
|
+
|
|
19
|
+
You should have received a copy of the GNU Lesser General Public License
|
|
20
|
+
along with plumed. If not, see <http://www.gnu.org/licenses/>.
|
|
21
|
+
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
|
|
22
|
+
#ifndef __PLUMED_core_ActionToPutData_h
|
|
23
|
+
#define __PLUMED_core_ActionToPutData_h
|
|
24
|
+
|
|
25
|
+
#include "ActionForInterface.h"
|
|
26
|
+
#include "DataPassingObject.h"
|
|
27
|
+
#include "../tools/Units.h"
|
|
28
|
+
#include "DataPassingTools.h"
|
|
29
|
+
|
|
30
|
+
namespace PLMD {
|
|
31
|
+
|
|
32
|
+
class ActionToPutData :
|
|
33
|
+
public ActionForInterface {
|
|
34
|
+
friend class PlumedMain;
|
|
35
|
+
friend class TimeStep;
|
|
36
|
+
friend class DomainDecomposition;
|
|
37
|
+
private:
|
|
38
|
+
/// Are we not applying forces on this values
|
|
39
|
+
bool noforce;
|
|
40
|
+
/// Is this quantity fixed
|
|
41
|
+
bool fixed;
|
|
42
|
+
/// Is this quantity passed from the domains
|
|
43
|
+
bool from_domains;
|
|
44
|
+
/// Is PLUMED allowed to change the value of this pointer
|
|
45
|
+
bool resetable;
|
|
46
|
+
/// Are we allowed to set data at this time
|
|
47
|
+
bool dataCanBeSet;
|
|
48
|
+
/// The unit of the value that has been passed to plumed
|
|
49
|
+
enum {n,e,l,m,q,t} unit;
|
|
50
|
+
/// The unit to to use for the force
|
|
51
|
+
enum {d,eng} funit;
|
|
52
|
+
/// This holds the pointer that we getting data from
|
|
53
|
+
std::unique_ptr<DataPassingObject> mydata;
|
|
54
|
+
/// Convert the enum contaning the unit into the name of the unit
|
|
55
|
+
std::string getUnitName() const ;
|
|
56
|
+
protected:
|
|
57
|
+
/// Setup the units of the input value
|
|
58
|
+
void setUnit( const std::string& unitstr, const std::string& funitstr );
|
|
59
|
+
public:
|
|
60
|
+
static void registerKeywords(Keywords& keys);
|
|
61
|
+
explicit ActionToPutData(const ActionOptions&ao);
|
|
62
|
+
/// Set the start point for the memory if needed
|
|
63
|
+
void setStart( const std::string& actname, const unsigned& sss) override;
|
|
64
|
+
/// This resets the stride in the collection object
|
|
65
|
+
void setStride( const std::string& actname, const unsigned& sss ) override;
|
|
66
|
+
/// Update the units on the input data
|
|
67
|
+
void updateUnits( DataPassingTools* passtools );
|
|
68
|
+
/// This is called at the start of the step
|
|
69
|
+
void resetForStepStart() override {
|
|
70
|
+
dataCanBeSet = true;
|
|
71
|
+
}
|
|
72
|
+
/// These are the actions that set the pointers to the approrpiate values
|
|
73
|
+
virtual bool setValuePointer( const std::string& actname, const TypesafePtr & val ) override ;
|
|
74
|
+
bool setForcePointer( const std::string& actname, const TypesafePtr & val ) override ;
|
|
75
|
+
///
|
|
76
|
+
void Set_comm(Communicator& newcomm) override {}
|
|
77
|
+
/// And this gets the number of forces that need to be rescaled
|
|
78
|
+
unsigned getNumberOfForcesToRescale() const override ;
|
|
79
|
+
/// Share the data
|
|
80
|
+
void share() override {}
|
|
81
|
+
void shareAll() override {}
|
|
82
|
+
///
|
|
83
|
+
void getLocalValues( std::vector<double>& vals ) const ;
|
|
84
|
+
/// Get the data to share
|
|
85
|
+
virtual void wait() override ;
|
|
86
|
+
/// Actually set the values for the output
|
|
87
|
+
virtual void apply() override ;
|
|
88
|
+
void rescaleForces( const double& alpha );
|
|
89
|
+
/// For replica exchange
|
|
90
|
+
void writeBinary(std::ostream&o) override;
|
|
91
|
+
virtual void readBinary(std::istream&i) override;
|
|
92
|
+
bool onStep() const override {
|
|
93
|
+
return false;
|
|
94
|
+
}
|
|
95
|
+
ActionToPutData* castToActionToPutData() noexcept final {
|
|
96
|
+
return this;
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
}
|
|
101
|
+
#endif
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
2
|
+
Copyright (c) 2011-2023 The plumed team
|
|
3
|
+
(see the PEOPLE file at the root of the distribution for a list of names)
|
|
4
|
+
|
|
5
|
+
See http://www.plumed.org for more information.
|
|
6
|
+
|
|
7
|
+
This file is part of plumed, version 2.
|
|
8
|
+
|
|
9
|
+
plumed is free software: you can redistribute it and/or modify
|
|
10
|
+
it under the terms of the GNU Lesser General Public License as published by
|
|
11
|
+
the Free Software Foundation, either version 3 of the License, or
|
|
12
|
+
(at your option) any later version.
|
|
13
|
+
|
|
14
|
+
plumed is distributed in the hope that it will be useful,
|
|
15
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
16
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
17
|
+
GNU Lesser General Public License for more details.
|
|
18
|
+
|
|
19
|
+
You should have received a copy of the GNU Lesser General Public License
|
|
20
|
+
along with plumed. If not, see <http://www.gnu.org/licenses/>.
|
|
21
|
+
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
|
|
22
|
+
#ifndef __PLUMED_core_ActionWithArguments_h
|
|
23
|
+
#define __PLUMED_core_ActionWithArguments_h
|
|
24
|
+
|
|
25
|
+
#include "Action.h"
|
|
26
|
+
#include "Value.h"
|
|
27
|
+
#include <vector>
|
|
28
|
+
|
|
29
|
+
namespace PLMD {
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
\ingroup MULTIINHERIT
|
|
33
|
+
This is used to create PLMD::Action objects that take the output from some other Action as input.
|
|
34
|
+
This is used in PLMD::Function and PLMD::Bias
|
|
35
|
+
PLMD::Action objects that inherit from PLMD::ActionWithArguments take
|
|
36
|
+
values and components calculated in other PLMD::Action objects and
|
|
37
|
+
use this information to calculate some new function. If you have
|
|
38
|
+
only one list of arguments you should use the reserved keyword <b> ARG </b>
|
|
39
|
+
when you use parseArgumentList.
|
|
40
|
+
*/
|
|
41
|
+
|
|
42
|
+
class ActionSet;
|
|
43
|
+
|
|
44
|
+
class ActionWithArguments:
|
|
45
|
+
public virtual Action {
|
|
46
|
+
std::vector<Value*> arguments;
|
|
47
|
+
bool lockRequestArguments;
|
|
48
|
+
protected:
|
|
49
|
+
/// This changes the arg keyword in the pdb file
|
|
50
|
+
void expandArgKeywordInPDB( const PDB& pdb );
|
|
51
|
+
public:
|
|
52
|
+
/// Get the scalar product between the gradients of two variables
|
|
53
|
+
double getProjection(unsigned i,unsigned j)const;
|
|
54
|
+
/// Registers the list of keywords
|
|
55
|
+
static void registerKeywords( Keywords& keys );
|
|
56
|
+
/// Returns the value of an argument
|
|
57
|
+
double getArgument( const unsigned n ) const;
|
|
58
|
+
/// Return a pointer to specific argument
|
|
59
|
+
Value* getPntrToArgument( const unsigned n ) const;
|
|
60
|
+
/// Returns the number of arguments
|
|
61
|
+
virtual unsigned getNumberOfArguments() const ;
|
|
62
|
+
/// Takes the difference taking into account pbc for arg i
|
|
63
|
+
double difference(int, double, double) const;
|
|
64
|
+
/// Takes one value and brings it back into the pbc of argument i
|
|
65
|
+
double bringBackInPbc(int i,double d1)const;
|
|
66
|
+
/// Parse a list of arguments
|
|
67
|
+
void parseArgumentList(const std::string&key,std::vector<Value*>&args);
|
|
68
|
+
/// Parse a numbered list of arguments
|
|
69
|
+
bool parseArgumentList(const std::string&key,int i,std::vector<Value*>&args);
|
|
70
|
+
/// Setup the dependencies
|
|
71
|
+
void requestArguments(const std::vector<Value*> &arg);
|
|
72
|
+
void requestExtraDependencies(const std::vector<Value*> &extra);
|
|
73
|
+
/// Add forces to arguments (used in apply)
|
|
74
|
+
void addForcesOnArguments( const unsigned& argstart, const std::vector<double>& forces, unsigned& ind );
|
|
75
|
+
public:
|
|
76
|
+
explicit ActionWithArguments(const ActionOptions&);
|
|
77
|
+
virtual ~ActionWithArguments() {}
|
|
78
|
+
/// Calculate the numerical derivatives
|
|
79
|
+
/// N.B. only pass an ActionWithValue to this routine if you know exactly what you
|
|
80
|
+
/// are doing. The default will be correct for the vast majority of cases
|
|
81
|
+
void calculateNumericalDerivatives( ActionWithValue* a=NULL ) override;
|
|
82
|
+
void lockRequests() override;
|
|
83
|
+
void unlockRequests() override;
|
|
84
|
+
/// Returns an array of pointers to the arguments
|
|
85
|
+
virtual const std::vector<Value*> & getArguments() const ;
|
|
86
|
+
/// Convert a list of argument names into a list of pointers to the values
|
|
87
|
+
static void interpretArgumentList(const std::vector<std::string>& c, const ActionSet& as, Action* action, std::vector<Value*>&arg);
|
|
88
|
+
/// Used to calculate constant values in startup
|
|
89
|
+
virtual bool calculateConstantValues( const bool& have_atoms );
|
|
90
|
+
/// Get the gradient for this action
|
|
91
|
+
void setGradients( Value* myval, unsigned& start ) const ;
|
|
92
|
+
ActionWithArguments* castToActionWithArguments() noexcept final {
|
|
93
|
+
return this;
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
inline
|
|
99
|
+
Value* ActionWithArguments::getPntrToArgument( const unsigned n ) const {
|
|
100
|
+
return arguments[n];
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
inline
|
|
104
|
+
double ActionWithArguments::getArgument(const unsigned n) const {
|
|
105
|
+
return arguments[n]->get();
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
inline
|
|
109
|
+
unsigned ActionWithArguments::getNumberOfArguments()const {
|
|
110
|
+
return arguments.size();
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
inline
|
|
114
|
+
double ActionWithArguments::difference(int i,double d1,double d2)const {
|
|
115
|
+
return arguments[i]->difference(d1,d2);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
inline
|
|
119
|
+
double ActionWithArguments::bringBackInPbc(int i,double d1)const {
|
|
120
|
+
return arguments[i]->bringBackInPbc(d1);
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
inline
|
|
124
|
+
void ActionWithArguments::lockRequests() {
|
|
125
|
+
lockRequestArguments=true;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
inline
|
|
129
|
+
void ActionWithArguments::unlockRequests() {
|
|
130
|
+
lockRequestArguments=false;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
inline
|
|
134
|
+
const std::vector<Value*> & ActionWithArguments::getArguments() const {
|
|
135
|
+
return arguments;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
#endif
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
2
|
+
Copyright (c) 2011-2023 The plumed team
|
|
3
|
+
(see the PEOPLE file at the root of the distribution for a list of names)
|
|
4
|
+
|
|
5
|
+
See http://www.plumed.org for more information.
|
|
6
|
+
|
|
7
|
+
This file is part of plumed, version 2.
|
|
8
|
+
|
|
9
|
+
plumed is free software: you can redistribute it and/or modify
|
|
10
|
+
it under the terms of the GNU Lesser General Public License as published by
|
|
11
|
+
the Free Software Foundation, either version 3 of the License, or
|
|
12
|
+
(at your option) any later version.
|
|
13
|
+
|
|
14
|
+
plumed is distributed in the hope that it will be useful,
|
|
15
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
16
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
17
|
+
GNU Lesser General Public License for more details.
|
|
18
|
+
|
|
19
|
+
You should have received a copy of the GNU Lesser General Public License
|
|
20
|
+
along with plumed. If not, see <http://www.gnu.org/licenses/>.
|
|
21
|
+
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
|
|
22
|
+
#ifndef __PLUMED_core_ActionWithMatrix_h
|
|
23
|
+
#define __PLUMED_core_ActionWithMatrix_h
|
|
24
|
+
|
|
25
|
+
#include "ActionWithVector.h"
|
|
26
|
+
#include <cstddef>
|
|
27
|
+
|
|
28
|
+
namespace PLMD {
|
|
29
|
+
|
|
30
|
+
//this class serves as a workaround for moving data with openacc without specifying --memory=managed
|
|
31
|
+
class RequiredMatrixElements {
|
|
32
|
+
std::vector<std::size_t> bookeeping{};
|
|
33
|
+
std::size_t* bookeeping_data=nullptr;
|
|
34
|
+
public:
|
|
35
|
+
std::size_t ncols=0;
|
|
36
|
+
void update() {
|
|
37
|
+
bookeeping_data = bookeeping.data();
|
|
38
|
+
}
|
|
39
|
+
void toACCDevice() const {
|
|
40
|
+
//this assumes that update() has already been called
|
|
41
|
+
#pragma acc enter data copyin(this[0:1], bookeeping_data[0:bookeeping.size()])
|
|
42
|
+
}
|
|
43
|
+
void removeFromACCDevice() const {
|
|
44
|
+
#pragma acc exit data delete(bookeeping_data[0:bookeeping.size()],this[0:1])
|
|
45
|
+
}
|
|
46
|
+
std::size_t& operator[]( std::size_t i ) {
|
|
47
|
+
return bookeeping_data[i];
|
|
48
|
+
}
|
|
49
|
+
std::size_t operator[]( std::size_t i ) const {
|
|
50
|
+
return bookeeping_data[i];
|
|
51
|
+
}
|
|
52
|
+
std::size_t size() const {
|
|
53
|
+
return bookeeping.size();
|
|
54
|
+
}
|
|
55
|
+
void resize(std::size_t newSize) {
|
|
56
|
+
bookeeping.resize(newSize);
|
|
57
|
+
update();
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
|
|
61
|
+
class MatrixElementOutput {
|
|
62
|
+
public:
|
|
63
|
+
View<double> values;
|
|
64
|
+
View2D<double> derivs;
|
|
65
|
+
MatrixElementOutput( std::size_t nv, std::size_t nd, double* v, double* d ) :
|
|
66
|
+
values( v, nv ),
|
|
67
|
+
derivs( d, nv, nd ) {
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
class ActionWithMatrix : public ActionWithVector {
|
|
72
|
+
protected:
|
|
73
|
+
/// Some actions have a flag that sets this to true. The elements on the diagonal of the resulting matrix are then set to zero
|
|
74
|
+
bool diagzero;
|
|
75
|
+
/// Update all the arrays for doing bookeeping
|
|
76
|
+
void updateBookeepingArrays( RequiredMatrixElements& mat );
|
|
77
|
+
public:
|
|
78
|
+
static void registerKeywords( Keywords& keys );
|
|
79
|
+
explicit ActionWithMatrix(const ActionOptions&);
|
|
80
|
+
/// Get the elements of the matrices into the output values
|
|
81
|
+
void transferStashToValues( const std::vector<unsigned>& partialTaskList, const std::vector<double>& stash ) override ;
|
|
82
|
+
/// Get the forces from the output values and transfer them to the stash
|
|
83
|
+
void transferForcesToStash( const std::vector<unsigned>& partialTaskList, std::vector<double>& stash ) const override ;
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
}
|
|
87
|
+
#endif
|