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,380 @@
|
|
|
1
|
+
/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
2
|
+
Copyright (c) 2012-2023 The plumed team
|
|
3
|
+
(see the PEOPLE file at the root of the distribution for a list of names)
|
|
4
|
+
|
|
5
|
+
See http://www.plumed.org for more information.
|
|
6
|
+
|
|
7
|
+
This file is part of plumed, version 2.
|
|
8
|
+
|
|
9
|
+
plumed is free software: you can redistribute it and/or modify
|
|
10
|
+
it under the terms of the GNU Lesser General Public License as published by
|
|
11
|
+
the Free Software Foundation, either version 3 of the License, or
|
|
12
|
+
(at your option) any later version.
|
|
13
|
+
|
|
14
|
+
plumed is distributed in the hope that it will be useful,
|
|
15
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
16
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
17
|
+
GNU Lesser General Public License for more details.
|
|
18
|
+
|
|
19
|
+
You should have received a copy of the GNU Lesser General Public License
|
|
20
|
+
along with plumed. If not, see <http://www.gnu.org/licenses/>.
|
|
21
|
+
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
|
|
22
|
+
#ifndef __PLUMED_tools_Keywords_h
|
|
23
|
+
#define __PLUMED_tools_Keywords_h
|
|
24
|
+
#include <vector>
|
|
25
|
+
#include <string>
|
|
26
|
+
#include <string_view>
|
|
27
|
+
#include <map>
|
|
28
|
+
#include <variant>
|
|
29
|
+
|
|
30
|
+
#include "Exception.h"
|
|
31
|
+
#include "BitmaskEnum.h"
|
|
32
|
+
|
|
33
|
+
namespace PLMD {
|
|
34
|
+
|
|
35
|
+
class Log;
|
|
36
|
+
|
|
37
|
+
/// This class holds the keywords and their documentation
|
|
38
|
+
class Keywords {
|
|
39
|
+
/// This class lets me pass keyword types easily
|
|
40
|
+
struct KeyType {
|
|
41
|
+
enum class keyStyle {hidden,compulsory,flag,optional,atoms,deprecated,unknown};
|
|
42
|
+
keyStyle style;
|
|
43
|
+
static keyStyle keyStyleFromString(std::string_view type );
|
|
44
|
+
explicit KeyType( keyStyle type );
|
|
45
|
+
explicit KeyType( std::string_view type );
|
|
46
|
+
void setStyle( std::string_view type );
|
|
47
|
+
bool isCompulsory() const {
|
|
48
|
+
return (style==keyStyle::compulsory);
|
|
49
|
+
}
|
|
50
|
+
bool isFlag() const {
|
|
51
|
+
return (style==keyStyle::flag);
|
|
52
|
+
}
|
|
53
|
+
bool isOptional() const {
|
|
54
|
+
return (style==keyStyle::optional);
|
|
55
|
+
}
|
|
56
|
+
bool isAtomList() const {
|
|
57
|
+
return (style==keyStyle::atoms);
|
|
58
|
+
}
|
|
59
|
+
bool isHidden() const {
|
|
60
|
+
return (style==keyStyle::hidden);
|
|
61
|
+
}
|
|
62
|
+
bool isDeprecated() const {
|
|
63
|
+
return (style==keyStyle::deprecated);
|
|
64
|
+
}
|
|
65
|
+
std::string toString() const {
|
|
66
|
+
//if you add a style and you forget to update this function the compiler will refuse to compile
|
|
67
|
+
switch(style) {
|
|
68
|
+
case keyStyle::compulsory:
|
|
69
|
+
return "compulsory";
|
|
70
|
+
case keyStyle::optional:
|
|
71
|
+
return "optional";
|
|
72
|
+
case keyStyle::atoms:
|
|
73
|
+
return "atoms";
|
|
74
|
+
case keyStyle::flag:
|
|
75
|
+
return "flag";
|
|
76
|
+
case keyStyle::hidden:
|
|
77
|
+
return "hidden";
|
|
78
|
+
case keyStyle::deprecated:
|
|
79
|
+
return "deprecated";
|
|
80
|
+
default:
|
|
81
|
+
plumed_massert(false,"unknown keyword type");
|
|
82
|
+
}
|
|
83
|
+
return "unknown";
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
public:
|
|
88
|
+
enum class argType {scalar=1,vector=1<<2,matrix=1<<3,grid=1<<4};
|
|
89
|
+
enum class componentType {scalar=1,vector=1<<2,matrix=1<<3,grid=1<<4,atoms=1<<5,atom=1<<6};
|
|
90
|
+
private:
|
|
91
|
+
/// Is this an action or driver (this bool affects what style==atoms does in print)
|
|
92
|
+
bool isaction=true;
|
|
93
|
+
/// This allows us to overwrite the behavior of the atoms type in analysis actions
|
|
94
|
+
bool isatoms=true;
|
|
95
|
+
/// The name of the action that has this set of keywords
|
|
96
|
+
std::string thisactname;
|
|
97
|
+
/// The action to use in place of this deprecated action
|
|
98
|
+
std::string replaceaction="none";
|
|
99
|
+
|
|
100
|
+
struct keyInfo {
|
|
101
|
+
/// Whether the keyword is compulsory, optional...
|
|
102
|
+
KeyType type{KeyType::keyStyle::unknown};
|
|
103
|
+
/// The documentation for the keyword
|
|
104
|
+
std::string docstring;
|
|
105
|
+
/// The default values (if there are default values) for compulsory keywords or flags
|
|
106
|
+
std::variant<std::monostate,std::string,bool> defaultValue;
|
|
107
|
+
///The type of the argument if this keywords accepts arguments
|
|
108
|
+
std::variant<std::monostate,argType>argument_type;
|
|
109
|
+
/// The tags for atoms - we use this so the manual can differentiate between different ways of specifying atoms
|
|
110
|
+
std::string atomtag;//no noeed for optional, since the type will state if this is needed
|
|
111
|
+
///This stores any action documentation that we should link to
|
|
112
|
+
std::string linkaction;
|
|
113
|
+
///This stores any pages of doucmentation that we should link to
|
|
114
|
+
std::string linkpage;
|
|
115
|
+
/// Do we allow stuff like key1, key2 etc
|
|
116
|
+
bool allowmultiple;
|
|
117
|
+
keyInfo();
|
|
118
|
+
//these functions are not neeeded (this is a struct), but are useful in constructing the key
|
|
119
|
+
keyInfo& setType(KeyType t);
|
|
120
|
+
keyInfo& setDocString(std::string_view d);
|
|
121
|
+
keyInfo& setDefaultValue(std::string_view d);
|
|
122
|
+
keyInfo& setDefaultFlag(bool a);
|
|
123
|
+
keyInfo& setArgumentType(argType a);
|
|
124
|
+
keyInfo& setAllowMultiple(bool a);
|
|
125
|
+
keyInfo& setLinkedAction(std::string_view a);
|
|
126
|
+
keyInfo& setLinkedPage(std::string_view p);
|
|
127
|
+
bool isArgument() const;
|
|
128
|
+
};
|
|
129
|
+
///Add o reserve a new keyword (internal tool)
|
|
130
|
+
void addOrReserve( std::string_view keytype, std::string_view key, std::string_view docstring, bool reserve );
|
|
131
|
+
//std::less<void> make some magic and makes find and [] work with string_view
|
|
132
|
+
/// Stores the keywords along with their settings
|
|
133
|
+
std::map<std::string,keyInfo,std::less<void>> keywords;
|
|
134
|
+
/// The names of the allowed keywords, in order of declaration
|
|
135
|
+
std::vector<std::string> keys;
|
|
136
|
+
/// The names of the reserved keywords, in order of declaration
|
|
137
|
+
std::vector<std::string> reserved_keys;
|
|
138
|
+
struct component {
|
|
139
|
+
/// The keyword that turns on this component
|
|
140
|
+
std::string key;
|
|
141
|
+
/// The documentation for the component
|
|
142
|
+
std::string docstring;
|
|
143
|
+
/// The type of the component
|
|
144
|
+
componentType type;
|
|
145
|
+
component();
|
|
146
|
+
//these functions are not neeeded (this is a struct), but are useful in constructing the component
|
|
147
|
+
component& setKey(std::string_view k);
|
|
148
|
+
component& setDocstring(std::string_view d);
|
|
149
|
+
component& setType(componentType t);
|
|
150
|
+
};
|
|
151
|
+
//the "exists component" is stored in the map keys
|
|
152
|
+
std::map<std::string,component,std::less<void>> components;
|
|
153
|
+
/// The string that should be printed out to describe how the components work for this particular action
|
|
154
|
+
std::string cstring;
|
|
155
|
+
/// The names of all the possible components for an action, in order of their (first) declaration
|
|
156
|
+
std::vector<std::string> cnames;
|
|
157
|
+
/// The list of actions that are needed by this action
|
|
158
|
+
std::vector<std::string> neededActions;
|
|
159
|
+
/// List of suffixes that can be used with this action
|
|
160
|
+
std::vector<std::string> actionNameSuffixes;
|
|
161
|
+
/// List of doi's that should appear in the manual
|
|
162
|
+
std::vector<std::string> doilist;
|
|
163
|
+
/// Print the documentation for the named keyword in html
|
|
164
|
+
void print_html_item( const std::string& ) const;
|
|
165
|
+
public:
|
|
166
|
+
/// Constructor
|
|
167
|
+
Keywords() {}
|
|
168
|
+
///
|
|
169
|
+
void isDriver() {
|
|
170
|
+
isaction=false;
|
|
171
|
+
}
|
|
172
|
+
///
|
|
173
|
+
void isAnalysis() {
|
|
174
|
+
isatoms=false;
|
|
175
|
+
}
|
|
176
|
+
/// find out whether flag key is on or off by default.
|
|
177
|
+
bool getLogicalDefault(const std::string & key, bool& def ) const ;
|
|
178
|
+
/// Get the value of the default for the keyword named key
|
|
179
|
+
bool getDefaultValue(const std::string & key, std::string& def ) const ;
|
|
180
|
+
/// Return the number of defined keywords
|
|
181
|
+
unsigned size() const;
|
|
182
|
+
/// Check if numbered keywords are allowed for this action
|
|
183
|
+
bool numbered( const std::string & k ) const;
|
|
184
|
+
/// Get the ordered list of active keywords (not the reserved ones)
|
|
185
|
+
const std::vector<std::string>& getKeys() const {
|
|
186
|
+
return keys;
|
|
187
|
+
}
|
|
188
|
+
//Get the ordered list of arguments
|
|
189
|
+
std::vector<std::string> getArgumentKeys() const;
|
|
190
|
+
/// Return the ith keyword
|
|
191
|
+
std::string getKeyword( const unsigned i ) const;
|
|
192
|
+
/// Get the documentation for a particular keyword
|
|
193
|
+
std::string getKeywordDocs( const std::string& key ) const;
|
|
194
|
+
/// Print the documentation to the log file (used by PLMD::Action::error)
|
|
195
|
+
void print( Log& log ) const ;
|
|
196
|
+
/// Print the documentation to a file (use by PLUMED::CLTool::readCommandLineArgs)
|
|
197
|
+
void print( FILE* out ) const ;
|
|
198
|
+
/// Get the help string
|
|
199
|
+
std::string getHelpString() const ;
|
|
200
|
+
/// Print a file containing the list of keywords for a particular action (used for spell checking)
|
|
201
|
+
void print_spelling() const ;
|
|
202
|
+
/// Reserve a keyword
|
|
203
|
+
void reserve( std::string_view keytype, std::string_view key, std::string_view docstring );
|
|
204
|
+
/// Reserve a flag
|
|
205
|
+
void reserveFlag( const std::string & key, bool defaultValue, const std::string & docstring );
|
|
206
|
+
/// Use one of the reserved keywords
|
|
207
|
+
void use( std::string_view k );
|
|
208
|
+
/// append the data from another Keywords object (**only** keywords, reserved keywords and components)
|
|
209
|
+
void add( const Keywords& keys );
|
|
210
|
+
/// Add a new keyword of type t with name k and description d
|
|
211
|
+
void add( std::string_view keytype, std::string_view key, std::string_view docstring );
|
|
212
|
+
/// Add a keyword that was used in older versions of the code and that has now been replaced
|
|
213
|
+
void addDeprecatedKeyword( std::string_view key, const std::string& replacement );
|
|
214
|
+
/// Add a flag that was used in older versions of the the code that has now been replaced
|
|
215
|
+
void addDeprecatedFlag( const std::string& key, const std::string& replacement );
|
|
216
|
+
/// Add a new compulsory keyword (t must equal compulsory) with name k, default value def and description d
|
|
217
|
+
void add( std::string_view keytype, std::string_view key, std::string_view defaultValue, std::string_view docstring );
|
|
218
|
+
/// Add a falg with name k that is by default on if def is true and off if def is false. d should provide a description of the flag
|
|
219
|
+
void addFlag(std::string_view key, bool defaultValue, std::string_view docstring);
|
|
220
|
+
/// Remove the keyword with name k
|
|
221
|
+
void remove( const std::string & k );
|
|
222
|
+
/// Check if there is a keyword with name k
|
|
223
|
+
bool exists( std::string_view k ) const ;
|
|
224
|
+
/// Check the keyword k has been reserved
|
|
225
|
+
bool reserved( std::string_view k ) const ;
|
|
226
|
+
/// Get the type for the keyword with string k
|
|
227
|
+
std::string getStyle(const std::string & k ) const ;
|
|
228
|
+
/// Check if the keyword with name k has style t
|
|
229
|
+
bool style( const std::string & k, const std::string & t ) const ;
|
|
230
|
+
/// Print an html version of the documentation
|
|
231
|
+
void print_html() const ;
|
|
232
|
+
/// Print keywords in form readable by vim
|
|
233
|
+
void print_vim() const ;
|
|
234
|
+
/// Print the template version for the documentation
|
|
235
|
+
void print_template( const std::string& actionname, bool include_optional) const ;
|
|
236
|
+
/// Change part of the style of a keyword
|
|
237
|
+
///
|
|
238
|
+
/// The standard usecase for this method is creating a compulsory or an atom(s) numbered keyword.
|
|
239
|
+
/// For example:
|
|
240
|
+
/// @code{.cpp}
|
|
241
|
+
/// keys.add("numbered","ATOMS","the atoms involved in each of the contacts you wish to calculate. "
|
|
242
|
+
/// "Keywords like ATOMS1, ATOMS2, ATOMS3,... should be listed and one contact will be "
|
|
243
|
+
/// "calculated for each ATOM keyword you specify.");
|
|
244
|
+
/// keys.reset_style("ATOMS","atoms");
|
|
245
|
+
/// keys.add("numbered","SWITCH","The switching functions to use for each of the contacts in your map. "
|
|
246
|
+
/// "You can either specify a global switching function using SWITCH or one "
|
|
247
|
+
/// "switching function for each contact. Details of the various switching "
|
|
248
|
+
/// "functions you can use are provided on \\ref switchingfunction.");
|
|
249
|
+
/// keys.reset_style("SWITCH","compulsory");
|
|
250
|
+
/// @endcode
|
|
251
|
+
/// @note Note that some option of the selected keyword may not change. In particular:
|
|
252
|
+
/// - A numbered keyword will change the style but the keyInfo::allowmultiple
|
|
253
|
+
/// will remain set to `true`
|
|
254
|
+
/// - An eventual keyInfo::atomtag will not be changed unless the style is set to
|
|
255
|
+
/// an atomlist
|
|
256
|
+
void reset_style( const std::string & k, const std::string & style );
|
|
257
|
+
/// Clear everything from the keywords object.
|
|
258
|
+
/// Not actually needed if your Keywords object is going out of scope.
|
|
259
|
+
void destroyData();
|
|
260
|
+
/// Set the text that introduces how the components for this action are introduced
|
|
261
|
+
void setComponentsIntroduction( const std::string& instr );
|
|
262
|
+
/// Add the description of the value
|
|
263
|
+
void setValueDescription( const std::string& type, const std::string& descr );
|
|
264
|
+
/// @todo prepend[[deprecated("Please specify the data type for the argument from scalar/vector/matrix/grid with the Keywords::argType enum")]]
|
|
265
|
+
void setValueDescription( componentType type, const std::string& descr );
|
|
266
|
+
/// Add a potential component which can be output by this particular action
|
|
267
|
+
[[deprecated("Use addOutputComponent with four argument and specify valid types for value from scalar/vector/matrix/grid")]]
|
|
268
|
+
void addOutputComponent( const std::string& name, const std::string& key, const std::string& descr );
|
|
269
|
+
/// @todo prepend[[deprecated("Please specify the data type for the argument from scalar/vector/matrix/grid with the Keywords::argType enum")]]
|
|
270
|
+
void addOutputComponent( const std::string& name, const std::string& key, const std::string& type, const std::string& descr );
|
|
271
|
+
/// Add a potential component which can be output by this particular action
|
|
272
|
+
void addOutputComponent( const std::string& name, const std::string& key, componentType type, const std::string& descr );
|
|
273
|
+
/// Remove a component that can be output by this particular action
|
|
274
|
+
void removeOutputComponent( const std::string& name );
|
|
275
|
+
/// Has a component with this name been added?
|
|
276
|
+
bool outputComponentExists( const std::string& name ) const ;
|
|
277
|
+
/// Check that type for component has been documented correctly
|
|
278
|
+
bool componentHasCorrectType( const std::string& name, const std::size_t& rank, const bool& hasderiv ) const ;
|
|
279
|
+
/// Create the documentation for a keyword that reads arguments
|
|
280
|
+
/// @todo prepend [[deprecated("Please specify the data type for the argument from scalar/vector/matrix/grid with the Keywords::argType enum")]]
|
|
281
|
+
void addInputKeyword( const std::string & keyType, const std::string & key, const std::string & dataType, const std::string & docstring );
|
|
282
|
+
/// Create the documentation for a keyword that reads arguments
|
|
283
|
+
void addInputKeyword( const std::string & keyType, const std::string & key, argType dataType, const std::string & docstring );
|
|
284
|
+
/// Create the documentation for a keyword that reads arguments
|
|
285
|
+
/// @todo prepend[[deprecated("Please specify the data type for the argument from scalar/vector/matrix/grid with the Keywords::argType enum")]]
|
|
286
|
+
void addInputKeyword( const std::string & keyType, const std::string & key, const std::string & dataType, const std::string& defaultValue, const std::string & docstring );
|
|
287
|
+
/// Create the documentation for a keyword that reads arguments
|
|
288
|
+
void addInputKeyword( const std::string & keyType, const std::string & key, argType dataType, const std::string& defaultValue, const std::string & docstring );
|
|
289
|
+
/// Check the documentation of the argument types
|
|
290
|
+
bool checkArgumentType( const std::size_t& rank, const bool& hasderiv ) const ;
|
|
291
|
+
/// Get the valid types that can be used as argument for this keyword
|
|
292
|
+
std::string getArgumentType( const std::string& name ) const ;
|
|
293
|
+
/// Get the flag that forces thie named component to be calculated
|
|
294
|
+
std::string getOutputComponentFlag( const std::string& name ) const ;
|
|
295
|
+
/// Get the type for the named output component
|
|
296
|
+
std::string getOutputComponentType( const std::string& name ) const ;
|
|
297
|
+
/// Get the description of the named component
|
|
298
|
+
std::string getOutputComponentDescription( const std::string& name ) const ;
|
|
299
|
+
/// Get the full ordered list of output components
|
|
300
|
+
const std::vector<std::string>& getOutputComponents() const {
|
|
301
|
+
return cnames;
|
|
302
|
+
}
|
|
303
|
+
/// Get the description of a particular keyword
|
|
304
|
+
std::string getKeywordDescription( const std::string& name ) const ;
|
|
305
|
+
/// Get the description of a particular keyword
|
|
306
|
+
std::string getTooltip( const std::string& name ) const ;
|
|
307
|
+
/// Note that another actions is required to create this shortcut
|
|
308
|
+
void needsAction( const std::string& name );
|
|
309
|
+
/// Check if the requested action is in the list of the needed actions
|
|
310
|
+
bool isActionNeeded( std::string_view name ) const ;
|
|
311
|
+
/// Add a suffix to the list of possible action name suffixes
|
|
312
|
+
void addActionNameSuffix( const std::string& suffix );
|
|
313
|
+
/** @brief checks that name is is a composition of basename and one of the possible suffixes
|
|
314
|
+
|
|
315
|
+
Cycles on the registered suffixed and return true if the combination
|
|
316
|
+
`basename+suffix` equals to the passed name
|
|
317
|
+
*/
|
|
318
|
+
bool isActionSuffixed( std::string_view name, std::string_view basename) const ;
|
|
319
|
+
/// Get the list of keywords that are needed by this action
|
|
320
|
+
const std::vector<std::string>& getNeededKeywords() const ;
|
|
321
|
+
/// Return the name of the action that has this set of keywords
|
|
322
|
+
std::string getDisplayName() const ;
|
|
323
|
+
/// Set the display name
|
|
324
|
+
void setDisplayName( const std::string& name );
|
|
325
|
+
/// Get the action that should be used to replace this one if action has been deprecated
|
|
326
|
+
std::string getReplacementAction() const ;
|
|
327
|
+
/// Note that this action has been deprecated
|
|
328
|
+
void setDeprecated( const std::string& name );
|
|
329
|
+
/// Add a DOI to the list in the manual page for this action
|
|
330
|
+
void addDOI( const std::string& doi );
|
|
331
|
+
/// Get the list of DOI
|
|
332
|
+
const std::vector<std::string>& getDOIList() const ;
|
|
333
|
+
/// Create a link to this action in the documentation for it
|
|
334
|
+
void linkActionInDocs( const std::string& k, const std::string& action );
|
|
335
|
+
/// Create a link to this page in the documentation for a keyword
|
|
336
|
+
void addLinkInDocForFlag( const std::string& k, const std::string& page );
|
|
337
|
+
/// Get any actions that are linked to this keyword
|
|
338
|
+
std::string getLinkedActions( const std::string& key ) const ;
|
|
339
|
+
/// Get any pages that are linked to this keyword
|
|
340
|
+
std::string getLinkedPages( const std::string& key ) const ;
|
|
341
|
+
};
|
|
342
|
+
|
|
343
|
+
//the following templates specializations make the bitmask enum work with the
|
|
344
|
+
// bitwise operators `|`, `&` and the "valid" function (valid converts to bool the result of a "mask operation")
|
|
345
|
+
template<>
|
|
346
|
+
struct enum_traits::BitmaskEnum< Keywords::componentType > {
|
|
347
|
+
static constexpr bool has_valid = true;
|
|
348
|
+
static constexpr bool has_bit_or = true;
|
|
349
|
+
static constexpr bool has_bit_and = true;
|
|
350
|
+
};
|
|
351
|
+
|
|
352
|
+
template<>
|
|
353
|
+
struct enum_traits::BitmaskEnum< Keywords::argType > {
|
|
354
|
+
static constexpr bool has_valid = true;
|
|
355
|
+
static constexpr bool has_bit_or = true;
|
|
356
|
+
static constexpr bool has_bit_and = true;
|
|
357
|
+
};
|
|
358
|
+
|
|
359
|
+
std::string toString(Keywords::argType at);
|
|
360
|
+
/**
|
|
361
|
+
* Converts a string to the corresponding Keywords::argType.
|
|
362
|
+
*
|
|
363
|
+
* @param str The string to convert.
|
|
364
|
+
* @return The Keywords::argType corresponding to the string.
|
|
365
|
+
* @throws std::invalid_argument If the string does not match any enum value.
|
|
366
|
+
*/
|
|
367
|
+
Keywords::argType stoat(std::string_view str);
|
|
368
|
+
std::string toString(Keywords::componentType at);
|
|
369
|
+
|
|
370
|
+
/**
|
|
371
|
+
* Converts a string to the corresponding Keywords::componentType.
|
|
372
|
+
* @param str The string to convert.
|
|
373
|
+
* @return The Keywords::componentType corresponding to the string.
|
|
374
|
+
* @throws std::invalid_argument if the string does not match any enum value.
|
|
375
|
+
*/
|
|
376
|
+
Keywords::componentType stoct(std::string_view str) ;
|
|
377
|
+
|
|
378
|
+
} // namespace PLMD
|
|
379
|
+
|
|
380
|
+
#endif
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
2
|
+
Copyright (c) 2012-2023 The plumed team
|
|
3
|
+
(see the PEOPLE file at the root of the distribution for a list of names)
|
|
4
|
+
|
|
5
|
+
See http://www.plumed.org for more information.
|
|
6
|
+
|
|
7
|
+
This file is part of plumed, version 2.
|
|
8
|
+
|
|
9
|
+
plumed is free software: you can redistribute it and/or modify
|
|
10
|
+
it under the terms of the GNU Lesser General Public License as published by
|
|
11
|
+
the Free Software Foundation, either version 3 of the License, or
|
|
12
|
+
(at your option) any later version.
|
|
13
|
+
|
|
14
|
+
plumed is distributed in the hope that it will be useful,
|
|
15
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
16
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
17
|
+
GNU Lesser General Public License for more details.
|
|
18
|
+
|
|
19
|
+
You should have received a copy of the GNU Lesser General Public License
|
|
20
|
+
along with plumed. If not, see <http://www.gnu.org/licenses/>.
|
|
21
|
+
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
|
|
22
|
+
#ifndef __PLUMED_tools_LatticeReduction_h
|
|
23
|
+
#define __PLUMED_tools_LatticeReduction_h
|
|
24
|
+
|
|
25
|
+
#include "Vector.h"
|
|
26
|
+
#include "Tensor.h"
|
|
27
|
+
|
|
28
|
+
namespace PLMD {
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
Class implementing algorithms for lattice reduction.
|
|
32
|
+
|
|
33
|
+
This class implements algorithms described in
|
|
34
|
+
Igor Semaev, A 3-Dimensional Lattice Reduction Algorithm, CaLC 2001, LNCS 2146, pp. 181–193, 2001.
|
|
35
|
+
It just collect static methods in a separate namespace.
|
|
36
|
+
*/
|
|
37
|
+
class LatticeReduction {
|
|
38
|
+
/// Gaussian reduction
|
|
39
|
+
static void reduce(Vector&a,Vector&b);
|
|
40
|
+
/// Obtain three reduce-2 vectors (Algorithm 1 in the paper), equivalent to reduce2(Tensor&t)
|
|
41
|
+
static void reduce2(Vector&a,Vector&b,Vector&c);
|
|
42
|
+
/// Check if two vectors are reduced
|
|
43
|
+
static bool isReduced(const Vector&a,const Vector&b);
|
|
44
|
+
/// Check if three vectors are reduced
|
|
45
|
+
static bool isReduced(const Vector&a,const Vector&b,const Vector &c);
|
|
46
|
+
/// Check if three vectors are reduced-2
|
|
47
|
+
static bool isReduced2(const Vector&a,const Vector&b,const Vector &c);
|
|
48
|
+
/// Obtain three reduce-2 vectors (Algorithm 1 in the paper), equivalent to reduce2(Vector&a,Vector&b,Vector&c)
|
|
49
|
+
static void reduce2(Tensor&t);
|
|
50
|
+
/// Sort three vectors by modulo
|
|
51
|
+
static void sort(Vector v[3]);
|
|
52
|
+
public:
|
|
53
|
+
/// Reduce a basis in place, maps to reduceFast()
|
|
54
|
+
static void reduce(Tensor&t);
|
|
55
|
+
/// Reduce a basis in place using the slow algorithm (Algorithm 2 in the paper)
|
|
56
|
+
static void reduceSlow(Tensor&t);
|
|
57
|
+
/// Reduce a basis in place using the fast algorithm (Algorithm 3 in the paper)
|
|
58
|
+
static void reduceFast(Tensor&t);
|
|
59
|
+
/// Check if a basis is reduced
|
|
60
|
+
static bool isReduced(const Tensor&t);
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
#endif
|
|
66
|
+
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
2
|
+
Copyright (c) 2012-2023 The plumed team
|
|
3
|
+
(see the PEOPLE file at the root of the distribution for a list of names)
|
|
4
|
+
|
|
5
|
+
See http://www.plumed.org for more information.
|
|
6
|
+
|
|
7
|
+
This file is part of plumed, version 2.
|
|
8
|
+
|
|
9
|
+
plumed is free software: you can redistribute it and/or modify
|
|
10
|
+
it under the terms of the GNU Lesser General Public License as published by
|
|
11
|
+
the Free Software Foundation, either version 3 of the License, or
|
|
12
|
+
(at your option) any later version.
|
|
13
|
+
|
|
14
|
+
plumed is distributed in the hope that it will be useful,
|
|
15
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
16
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
17
|
+
GNU Lesser General Public License for more details.
|
|
18
|
+
|
|
19
|
+
You should have received a copy of the GNU Lesser General Public License
|
|
20
|
+
along with plumed. If not, see <http://www.gnu.org/licenses/>.
|
|
21
|
+
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
|
|
22
|
+
#ifndef __PLUMED_tools_LeptonCall_h
|
|
23
|
+
#define __PLUMED_tools_LeptonCall_h
|
|
24
|
+
|
|
25
|
+
#include "../core/Action.h"
|
|
26
|
+
#include "../lepton/Lepton.h"
|
|
27
|
+
#include "View.h"
|
|
28
|
+
|
|
29
|
+
namespace PLMD {
|
|
30
|
+
|
|
31
|
+
/// \ingroup TOOLBOX
|
|
32
|
+
class LeptonCall {
|
|
33
|
+
private:
|
|
34
|
+
unsigned nargs;
|
|
35
|
+
bool allow_extra_args;
|
|
36
|
+
/// Lepton expression.
|
|
37
|
+
/// \warning Since lepton::CompiledExpression is mutable, a vector is necessary for multithreading!
|
|
38
|
+
std::vector<lepton::CompiledExpression> expression;
|
|
39
|
+
/// Lepton expression for derivative
|
|
40
|
+
/// \warning Since lepton::CompiledExpression is mutable, a vector is necessary for multithreading!
|
|
41
|
+
std::vector<std::vector<lepton::CompiledExpression> > expression_deriv;
|
|
42
|
+
std::vector<double*> lepton_ref;
|
|
43
|
+
std::vector<double*> lepton_ref_deriv;
|
|
44
|
+
public:
|
|
45
|
+
void set(const std::string & func,
|
|
46
|
+
const std::vector<std::string>& var,
|
|
47
|
+
Action* action=nullptr,
|
|
48
|
+
bool extraArgs=false );
|
|
49
|
+
unsigned getNumberOfArguments() const ;
|
|
50
|
+
double evaluate( const std::vector<double>& args ) const ;
|
|
51
|
+
double evaluate( View<const double> args ) const ;
|
|
52
|
+
double evaluateDeriv( unsigned ider, View<const double> args ) const ;
|
|
53
|
+
double evaluateDeriv( unsigned ider, const std::vector<double>& args ) const ;
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
inline
|
|
57
|
+
unsigned LeptonCall::getNumberOfArguments() const {
|
|
58
|
+
return nargs;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
#endif
|
|
64
|
+
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
2
|
+
Copyright (c) 2014-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_tools_LinkCells_h
|
|
23
|
+
#define __PLUMED_tools_LinkCells_h
|
|
24
|
+
|
|
25
|
+
#include <vector>
|
|
26
|
+
#include <array>
|
|
27
|
+
#include "View.h"
|
|
28
|
+
#include "Vector.h"
|
|
29
|
+
#include "Pbc.h"
|
|
30
|
+
|
|
31
|
+
namespace PLMD {
|
|
32
|
+
|
|
33
|
+
class Communicator;
|
|
34
|
+
|
|
35
|
+
/// \ingroup TOOLBOX
|
|
36
|
+
/// A class for doing link cells
|
|
37
|
+
class LinkCells {
|
|
38
|
+
private:
|
|
39
|
+
/// Symbolic link to plumed communicator
|
|
40
|
+
Communicator & comm;
|
|
41
|
+
/// Check that the link cells were set up correctly
|
|
42
|
+
bool cutoffwasset=false;
|
|
43
|
+
/// Are there periodic boundary conditions setup
|
|
44
|
+
bool nopbc=false;
|
|
45
|
+
/// The cutoff to use for the sizes of the cells
|
|
46
|
+
double link_cutoff=0.0;
|
|
47
|
+
/// The pbc we are using for link cells
|
|
48
|
+
Pbc mypbc;
|
|
49
|
+
/// The location of the origin if we are not using periodic boundary conditions
|
|
50
|
+
Vector origin;
|
|
51
|
+
/// The number of cells in each direction
|
|
52
|
+
std::array<unsigned,3> ncells{0,0,0};
|
|
53
|
+
/// The number of cells to stride through to get the link cells
|
|
54
|
+
std::array<unsigned,3> nstride{0,0,0};
|
|
55
|
+
/// The list of cells each atom is inside
|
|
56
|
+
std::vector<unsigned> allcells;
|
|
57
|
+
/// The start of each block corresponding to each link cell
|
|
58
|
+
std::vector<unsigned> lcell_starts;
|
|
59
|
+
/// The number of atoms in each link cell
|
|
60
|
+
std::vector<unsigned> lcell_tots;
|
|
61
|
+
/// The atoms ordered by link cells
|
|
62
|
+
std::vector<unsigned> lcell_lists;
|
|
63
|
+
public:
|
|
64
|
+
///
|
|
65
|
+
explicit LinkCells( Communicator& comm );
|
|
66
|
+
/// Have the link cells been enabled
|
|
67
|
+
bool enabled() const ;
|
|
68
|
+
/// Set the value of the cutoff
|
|
69
|
+
void setCutoff( double lcut );
|
|
70
|
+
/// Get the value of the cutoff
|
|
71
|
+
double getCutoff() const ;
|
|
72
|
+
/// Get the total number of link cells
|
|
73
|
+
unsigned getNumberOfCells() const ;
|
|
74
|
+
/// Get the nuumber of atoms in the cell that contains the most atoms
|
|
75
|
+
unsigned getMaxInCell() const ;
|
|
76
|
+
/// Build the link cell lists
|
|
77
|
+
void buildCellLists( View<const Vector> pos,
|
|
78
|
+
View<const unsigned> indices,
|
|
79
|
+
const Pbc& pbc );
|
|
80
|
+
/// Take three indices and return the index of the corresponding cell
|
|
81
|
+
unsigned convertIndicesToIndex( unsigned nx,
|
|
82
|
+
unsigned ny,
|
|
83
|
+
unsigned nz ) const ;
|
|
84
|
+
/// Find the cell index in which this position is contained
|
|
85
|
+
unsigned findCell( const Vector& pos ) const ;
|
|
86
|
+
/// Find the cell in which this position is contained
|
|
87
|
+
std::array<unsigned,3> findMyCell( const Vector& pos ) const ;
|
|
88
|
+
/// Get the list of cells we need to surround the a particular cell
|
|
89
|
+
void addRequiredCells( const std::array<unsigned,3>& celn,
|
|
90
|
+
unsigned& ncells_required,
|
|
91
|
+
std::vector<unsigned>& cells_required ) const ;
|
|
92
|
+
/// Retrieve the atoms in a list of cells
|
|
93
|
+
void retrieveAtomsInCells( unsigned ncells_required,
|
|
94
|
+
View<const unsigned> cells_required,
|
|
95
|
+
unsigned& natomsper,
|
|
96
|
+
std::vector<unsigned>& atoms ) const ;
|
|
97
|
+
/// Retrieve the atoms we need to consider
|
|
98
|
+
void retrieveNeighboringAtoms( const Vector& pos,
|
|
99
|
+
std::vector<unsigned>& cell_list,
|
|
100
|
+
unsigned& natomsper,
|
|
101
|
+
std::vector<unsigned>& atoms ) const ;
|
|
102
|
+
/// Create a neighbour list for the specified input atoms
|
|
103
|
+
void createNeighborList( unsigned nat,
|
|
104
|
+
View<const Vector> pos,
|
|
105
|
+
View<const unsigned> ind,
|
|
106
|
+
View<const unsigned> tind,
|
|
107
|
+
View<const Vector> neigh_pos,
|
|
108
|
+
View<const unsigned> neigh_ind,
|
|
109
|
+
const Pbc& pbc,
|
|
110
|
+
unsigned& natoms_per_list,
|
|
111
|
+
std::vector<std::size_t>& nlist ) ;
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
inline
|
|
115
|
+
bool LinkCells::enabled() const {
|
|
116
|
+
return cutoffwasset;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
inline
|
|
120
|
+
unsigned LinkCells::getNumberOfCells() const {
|
|
121
|
+
return ncells[0]*ncells[1]*ncells[2];
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
#endif
|
|
@@ -0,0 +1,41 @@
|
|
|
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_tools_Log_h
|
|
23
|
+
#define __PLUMED_tools_Log_h
|
|
24
|
+
|
|
25
|
+
#include "OFile.h"
|
|
26
|
+
|
|
27
|
+
namespace PLMD {
|
|
28
|
+
|
|
29
|
+
/// Class containing the log stream.
|
|
30
|
+
///
|
|
31
|
+
/// It is similar to a FILE stream. It allows a printf() function, and
|
|
32
|
+
/// also to write with a << operator. Moreover, it can prefix
|
|
33
|
+
/// lines with the "PLUMED:" prefix, useful to grep out plumed
|
|
34
|
+
/// log from output
|
|
35
|
+
class Log :
|
|
36
|
+
public OFile {
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
#endif
|