hillclimber 0.1.5__cp313-cp313-musllinux_1_2_aarch64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- hillclimber/__init__.py +39 -0
- hillclimber/actions.py +53 -0
- hillclimber/analysis.py +590 -0
- hillclimber/biases.py +293 -0
- hillclimber/calc.py +22 -0
- hillclimber/cvs.py +1070 -0
- hillclimber/interfaces.py +133 -0
- hillclimber/metadynamics.py +325 -0
- hillclimber/nodes.py +6 -0
- hillclimber/opes.py +359 -0
- hillclimber/selectors.py +230 -0
- hillclimber/virtual_atoms.py +341 -0
- hillclimber-0.1.5.dist-info/METADATA +210 -0
- hillclimber-0.1.5.dist-info/RECORD +472 -0
- hillclimber-0.1.5.dist-info/WHEEL +5 -0
- hillclimber-0.1.5.dist-info/entry_points.txt +8 -0
- hillclimber-0.1.5.dist-info/licenses/LICENSE +165 -0
- hillclimber-0.1.5.dist-info/sboms/auditwheel.cdx.json +1 -0
- hillclimber.libs/libgcc_s-2d945d6c.so.1 +0 -0
- hillclimber.libs/libgomp-1ede7ee7.so.1.0.0 +0 -0
- hillclimber.libs/libstdc++-85f2cd6d.so.6.0.33 +0 -0
- plumed/__init__.py +104 -0
- plumed/_lib/bin/plumed +0 -0
- plumed/_lib/bin/plumed-config +9 -0
- plumed/_lib/bin/plumed-patch +9 -0
- plumed/_lib/include/plumed/adjmat/AdjacencyMatrixBase.h +659 -0
- plumed/_lib/include/plumed/adjmat/ContactMatrix.h +59 -0
- plumed/_lib/include/plumed/asmjit/arch.h +228 -0
- plumed/_lib/include/plumed/asmjit/arm.h +43 -0
- plumed/_lib/include/plumed/asmjit/asmjit.h +69 -0
- plumed/_lib/include/plumed/asmjit/asmjit_apibegin.h +143 -0
- plumed/_lib/include/plumed/asmjit/asmjit_apiend.h +93 -0
- plumed/_lib/include/plumed/asmjit/asmjit_build.h +971 -0
- plumed/_lib/include/plumed/asmjit/assembler.h +183 -0
- plumed/_lib/include/plumed/asmjit/base.h +56 -0
- plumed/_lib/include/plumed/asmjit/codebuilder.h +944 -0
- plumed/_lib/include/plumed/asmjit/codecompiler.h +767 -0
- plumed/_lib/include/plumed/asmjit/codeemitter.h +528 -0
- plumed/_lib/include/plumed/asmjit/codeholder.h +777 -0
- plumed/_lib/include/plumed/asmjit/constpool.h +286 -0
- plumed/_lib/include/plumed/asmjit/cpuinfo.h +402 -0
- plumed/_lib/include/plumed/asmjit/func.h +1327 -0
- plumed/_lib/include/plumed/asmjit/globals.h +370 -0
- plumed/_lib/include/plumed/asmjit/inst.h +137 -0
- plumed/_lib/include/plumed/asmjit/logging.h +317 -0
- plumed/_lib/include/plumed/asmjit/misc_p.h +103 -0
- plumed/_lib/include/plumed/asmjit/moved_string.h +318 -0
- plumed/_lib/include/plumed/asmjit/operand.h +1599 -0
- plumed/_lib/include/plumed/asmjit/osutils.h +207 -0
- plumed/_lib/include/plumed/asmjit/regalloc_p.h +597 -0
- plumed/_lib/include/plumed/asmjit/runtime.h +227 -0
- plumed/_lib/include/plumed/asmjit/simdtypes.h +1104 -0
- plumed/_lib/include/plumed/asmjit/utils.h +1387 -0
- plumed/_lib/include/plumed/asmjit/vmem.h +183 -0
- plumed/_lib/include/plumed/asmjit/x86.h +45 -0
- plumed/_lib/include/plumed/asmjit/x86assembler.h +125 -0
- plumed/_lib/include/plumed/asmjit/x86builder.h +117 -0
- plumed/_lib/include/plumed/asmjit/x86compiler.h +322 -0
- plumed/_lib/include/plumed/asmjit/x86emitter.h +5149 -0
- plumed/_lib/include/plumed/asmjit/x86globals.h +535 -0
- plumed/_lib/include/plumed/asmjit/x86inst.h +2547 -0
- plumed/_lib/include/plumed/asmjit/x86instimpl_p.h +74 -0
- plumed/_lib/include/plumed/asmjit/x86internal_p.h +108 -0
- plumed/_lib/include/plumed/asmjit/x86logging_p.h +92 -0
- plumed/_lib/include/plumed/asmjit/x86misc.h +417 -0
- plumed/_lib/include/plumed/asmjit/x86operand.h +1133 -0
- plumed/_lib/include/plumed/asmjit/x86regalloc_p.h +734 -0
- plumed/_lib/include/plumed/asmjit/zone.h +1157 -0
- plumed/_lib/include/plumed/bias/Bias.h +82 -0
- plumed/_lib/include/plumed/bias/ReweightBase.h +58 -0
- plumed/_lib/include/plumed/blas/blas.h +253 -0
- plumed/_lib/include/plumed/blas/def_external.h +61 -0
- plumed/_lib/include/plumed/blas/def_internal.h +97 -0
- plumed/_lib/include/plumed/blas/real.h +49 -0
- plumed/_lib/include/plumed/cltools/CLTool.h +32 -0
- plumed/_lib/include/plumed/clusters/ClusteringBase.h +70 -0
- plumed/_lib/include/plumed/colvar/Colvar.h +32 -0
- plumed/_lib/include/plumed/colvar/ColvarInput.h +68 -0
- plumed/_lib/include/plumed/colvar/ColvarShortcut.h +81 -0
- plumed/_lib/include/plumed/colvar/CoordinationBase.h +52 -0
- plumed/_lib/include/plumed/colvar/MultiColvarTemplate.h +333 -0
- plumed/_lib/include/plumed/colvar/PathMSDBase.h +101 -0
- plumed/_lib/include/plumed/colvar/RMSDVector.h +78 -0
- plumed/_lib/include/plumed/config/Config.h +118 -0
- plumed/_lib/include/plumed/config/version.h +9 -0
- plumed/_lib/include/plumed/contour/ContourFindingObject.h +87 -0
- plumed/_lib/include/plumed/contour/DistanceFromContourBase.h +82 -0
- plumed/_lib/include/plumed/contour/FindContour.h +67 -0
- plumed/_lib/include/plumed/core/Action.h +540 -0
- plumed/_lib/include/plumed/core/ActionAnyorder.h +48 -0
- plumed/_lib/include/plumed/core/ActionAtomistic.h +343 -0
- plumed/_lib/include/plumed/core/ActionForInterface.h +99 -0
- plumed/_lib/include/plumed/core/ActionPilot.h +57 -0
- plumed/_lib/include/plumed/core/ActionRegister.h +124 -0
- plumed/_lib/include/plumed/core/ActionSet.h +163 -0
- plumed/_lib/include/plumed/core/ActionSetup.h +48 -0
- plumed/_lib/include/plumed/core/ActionShortcut.h +73 -0
- plumed/_lib/include/plumed/core/ActionToGetData.h +59 -0
- plumed/_lib/include/plumed/core/ActionToPutData.h +101 -0
- plumed/_lib/include/plumed/core/ActionWithArguments.h +140 -0
- plumed/_lib/include/plumed/core/ActionWithMatrix.h +87 -0
- plumed/_lib/include/plumed/core/ActionWithValue.h +258 -0
- plumed/_lib/include/plumed/core/ActionWithVector.h +94 -0
- plumed/_lib/include/plumed/core/ActionWithVirtualAtom.h +123 -0
- plumed/_lib/include/plumed/core/CLTool.h +177 -0
- plumed/_lib/include/plumed/core/CLToolMain.h +102 -0
- plumed/_lib/include/plumed/core/CLToolRegister.h +108 -0
- plumed/_lib/include/plumed/core/Colvar.h +115 -0
- plumed/_lib/include/plumed/core/DataPassingObject.h +94 -0
- plumed/_lib/include/plumed/core/DataPassingTools.h +54 -0
- plumed/_lib/include/plumed/core/DomainDecomposition.h +120 -0
- plumed/_lib/include/plumed/core/ExchangePatterns.h +47 -0
- plumed/_lib/include/plumed/core/FlexibleBin.h +63 -0
- plumed/_lib/include/plumed/core/GREX.h +61 -0
- plumed/_lib/include/plumed/core/GenericMolInfo.h +89 -0
- plumed/_lib/include/plumed/core/Group.h +41 -0
- plumed/_lib/include/plumed/core/ModuleMap.h +30 -0
- plumed/_lib/include/plumed/core/ParallelTaskManager.h +1023 -0
- plumed/_lib/include/plumed/core/PbcAction.h +61 -0
- plumed/_lib/include/plumed/core/PlumedMain.h +632 -0
- plumed/_lib/include/plumed/core/PlumedMainInitializer.h +118 -0
- plumed/_lib/include/plumed/core/RegisterBase.h +340 -0
- plumed/_lib/include/plumed/core/TargetDist.h +48 -0
- plumed/_lib/include/plumed/core/Value.h +547 -0
- plumed/_lib/include/plumed/core/WithCmd.h +93 -0
- plumed/_lib/include/plumed/dimred/SMACOF.h +55 -0
- plumed/_lib/include/plumed/drr/DRR.h +383 -0
- plumed/_lib/include/plumed/drr/colvar_UIestimator.h +777 -0
- plumed/_lib/include/plumed/fisst/legendre_rule_fast.h +44 -0
- plumed/_lib/include/plumed/function/Custom.h +54 -0
- plumed/_lib/include/plumed/function/Function.h +85 -0
- plumed/_lib/include/plumed/function/FunctionOfMatrix.h +368 -0
- plumed/_lib/include/plumed/function/FunctionOfScalar.h +135 -0
- plumed/_lib/include/plumed/function/FunctionOfVector.h +296 -0
- plumed/_lib/include/plumed/function/FunctionSetup.h +180 -0
- plumed/_lib/include/plumed/function/FunctionShortcut.h +130 -0
- plumed/_lib/include/plumed/function/FunctionWithSingleArgument.h +165 -0
- plumed/_lib/include/plumed/gridtools/ActionWithGrid.h +43 -0
- plumed/_lib/include/plumed/gridtools/EvaluateGridFunction.h +99 -0
- plumed/_lib/include/plumed/gridtools/FunctionOfGrid.h +295 -0
- plumed/_lib/include/plumed/gridtools/GridCoordinatesObject.h +179 -0
- plumed/_lib/include/plumed/gridtools/GridSearch.h +135 -0
- plumed/_lib/include/plumed/gridtools/Interpolator.h +45 -0
- plumed/_lib/include/plumed/gridtools/KDE.h +455 -0
- plumed/_lib/include/plumed/gridtools/RDF.h +40 -0
- plumed/_lib/include/plumed/gridtools/SumOfKernels.h +219 -0
- plumed/_lib/include/plumed/isdb/MetainferenceBase.h +398 -0
- plumed/_lib/include/plumed/lapack/def_external.h +207 -0
- plumed/_lib/include/plumed/lapack/def_internal.h +388 -0
- plumed/_lib/include/plumed/lapack/lapack.h +899 -0
- plumed/_lib/include/plumed/lapack/lapack_limits.h +79 -0
- plumed/_lib/include/plumed/lapack/real.h +50 -0
- plumed/_lib/include/plumed/lepton/CompiledExpression.h +164 -0
- plumed/_lib/include/plumed/lepton/CustomFunction.h +143 -0
- plumed/_lib/include/plumed/lepton/Exception.h +93 -0
- plumed/_lib/include/plumed/lepton/ExpressionProgram.h +137 -0
- plumed/_lib/include/plumed/lepton/ExpressionTreeNode.h +145 -0
- plumed/_lib/include/plumed/lepton/Lepton.h +85 -0
- plumed/_lib/include/plumed/lepton/MSVC_erfc.h +123 -0
- plumed/_lib/include/plumed/lepton/Operation.h +1302 -0
- plumed/_lib/include/plumed/lepton/ParsedExpression.h +165 -0
- plumed/_lib/include/plumed/lepton/Parser.h +111 -0
- plumed/_lib/include/plumed/lepton/windowsIncludes.h +73 -0
- plumed/_lib/include/plumed/mapping/Path.h +44 -0
- plumed/_lib/include/plumed/mapping/PathProjectionCalculator.h +57 -0
- plumed/_lib/include/plumed/matrixtools/MatrixOperationBase.h +54 -0
- plumed/_lib/include/plumed/matrixtools/MatrixTimesMatrix.h +309 -0
- plumed/_lib/include/plumed/matrixtools/MatrixTimesVectorBase.h +365 -0
- plumed/_lib/include/plumed/matrixtools/OuterProduct.h +238 -0
- plumed/_lib/include/plumed/maze/Core.h +65 -0
- plumed/_lib/include/plumed/maze/Loss.h +86 -0
- plumed/_lib/include/plumed/maze/Member.h +66 -0
- plumed/_lib/include/plumed/maze/Memetic.h +799 -0
- plumed/_lib/include/plumed/maze/Optimizer.h +357 -0
- plumed/_lib/include/plumed/maze/Random_MT.h +156 -0
- plumed/_lib/include/plumed/maze/Tools.h +183 -0
- plumed/_lib/include/plumed/metatomic/vesin.h +188 -0
- plumed/_lib/include/plumed/molfile/Gromacs.h +2013 -0
- plumed/_lib/include/plumed/molfile/endianswap.h +217 -0
- plumed/_lib/include/plumed/molfile/fastio.h +683 -0
- plumed/_lib/include/plumed/molfile/largefiles.h +78 -0
- plumed/_lib/include/plumed/molfile/libmolfile_plugin.h +77 -0
- plumed/_lib/include/plumed/molfile/molfile_plugin.h +1034 -0
- plumed/_lib/include/plumed/molfile/periodic_table.h +248 -0
- plumed/_lib/include/plumed/molfile/readpdb.h +447 -0
- plumed/_lib/include/plumed/molfile/vmdplugin.h +236 -0
- plumed/_lib/include/plumed/multicolvar/MultiColvarShortcuts.h +45 -0
- plumed/_lib/include/plumed/opes/ExpansionCVs.h +79 -0
- plumed/_lib/include/plumed/sasa/Sasa.h +32 -0
- plumed/_lib/include/plumed/secondarystructure/SecondaryStructureBase.h +372 -0
- plumed/_lib/include/plumed/setup/ActionSetup.h +25 -0
- plumed/_lib/include/plumed/small_vector/small_vector.h +6114 -0
- plumed/_lib/include/plumed/symfunc/CoordinationNumbers.h +41 -0
- plumed/_lib/include/plumed/tools/Angle.h +52 -0
- plumed/_lib/include/plumed/tools/AtomDistribution.h +138 -0
- plumed/_lib/include/plumed/tools/AtomNumber.h +152 -0
- plumed/_lib/include/plumed/tools/BiasRepresentation.h +106 -0
- plumed/_lib/include/plumed/tools/BitmaskEnum.h +167 -0
- plumed/_lib/include/plumed/tools/Brent1DRootSearch.h +159 -0
- plumed/_lib/include/plumed/tools/CheckInRange.h +44 -0
- plumed/_lib/include/plumed/tools/Citations.h +74 -0
- plumed/_lib/include/plumed/tools/ColvarOutput.h +118 -0
- plumed/_lib/include/plumed/tools/Communicator.h +316 -0
- plumed/_lib/include/plumed/tools/ConjugateGradient.h +80 -0
- plumed/_lib/include/plumed/tools/DLLoader.h +79 -0
- plumed/_lib/include/plumed/tools/ERMSD.h +73 -0
- plumed/_lib/include/plumed/tools/Exception.h +406 -0
- plumed/_lib/include/plumed/tools/File.h +28 -0
- plumed/_lib/include/plumed/tools/FileBase.h +153 -0
- plumed/_lib/include/plumed/tools/FileTools.h +37 -0
- plumed/_lib/include/plumed/tools/ForwardDecl.h +54 -0
- plumed/_lib/include/plumed/tools/Grid.h +638 -0
- plumed/_lib/include/plumed/tools/HistogramBead.h +136 -0
- plumed/_lib/include/plumed/tools/IFile.h +117 -0
- plumed/_lib/include/plumed/tools/KernelFunctions.h +113 -0
- plumed/_lib/include/plumed/tools/Keywords.h +380 -0
- plumed/_lib/include/plumed/tools/LatticeReduction.h +66 -0
- plumed/_lib/include/plumed/tools/LeptonCall.h +64 -0
- plumed/_lib/include/plumed/tools/LinkCells.h +126 -0
- plumed/_lib/include/plumed/tools/Log.h +41 -0
- plumed/_lib/include/plumed/tools/LoopUnroller.h +163 -0
- plumed/_lib/include/plumed/tools/Matrix.h +721 -0
- plumed/_lib/include/plumed/tools/MatrixSquareBracketsAccess.h +138 -0
- plumed/_lib/include/plumed/tools/MergeVectorTools.h +153 -0
- plumed/_lib/include/plumed/tools/Minimise1DBrent.h +244 -0
- plumed/_lib/include/plumed/tools/MinimiseBase.h +120 -0
- plumed/_lib/include/plumed/tools/MolDataClass.h +51 -0
- plumed/_lib/include/plumed/tools/NeighborList.h +112 -0
- plumed/_lib/include/plumed/tools/OFile.h +286 -0
- plumed/_lib/include/plumed/tools/OpenACC.h +180 -0
- plumed/_lib/include/plumed/tools/OpenMP.h +75 -0
- plumed/_lib/include/plumed/tools/PDB.h +154 -0
- plumed/_lib/include/plumed/tools/Pbc.h +139 -0
- plumed/_lib/include/plumed/tools/PlumedHandle.h +105 -0
- plumed/_lib/include/plumed/tools/RMSD.h +493 -0
- plumed/_lib/include/plumed/tools/Random.h +80 -0
- plumed/_lib/include/plumed/tools/RootFindingBase.h +79 -0
- plumed/_lib/include/plumed/tools/Stopwatch.h +475 -0
- plumed/_lib/include/plumed/tools/Subprocess.h +142 -0
- plumed/_lib/include/plumed/tools/SwitchingFunction.h +208 -0
- plumed/_lib/include/plumed/tools/Tensor.h +724 -0
- plumed/_lib/include/plumed/tools/TokenizedLine.h +123 -0
- plumed/_lib/include/plumed/tools/Tools.h +638 -0
- plumed/_lib/include/plumed/tools/Torsion.h +55 -0
- plumed/_lib/include/plumed/tools/TrajectoryParser.h +118 -0
- plumed/_lib/include/plumed/tools/Tree.h +61 -0
- plumed/_lib/include/plumed/tools/TypesafePtr.h +463 -0
- plumed/_lib/include/plumed/tools/Units.h +167 -0
- plumed/_lib/include/plumed/tools/Vector.h +433 -0
- plumed/_lib/include/plumed/tools/View.h +296 -0
- plumed/_lib/include/plumed/tools/View2D.h +100 -0
- plumed/_lib/include/plumed/tools/h36.h +39 -0
- plumed/_lib/include/plumed/vatom/ActionWithVirtualAtom.h +32 -0
- plumed/_lib/include/plumed/ves/BasisFunctions.h +380 -0
- plumed/_lib/include/plumed/ves/CoeffsBase.h +310 -0
- plumed/_lib/include/plumed/ves/CoeffsMatrix.h +220 -0
- plumed/_lib/include/plumed/ves/CoeffsVector.h +251 -0
- plumed/_lib/include/plumed/ves/FermiSwitchingFunction.h +74 -0
- plumed/_lib/include/plumed/ves/GridIntegrationWeights.h +50 -0
- plumed/_lib/include/plumed/ves/GridLinearInterpolation.h +81 -0
- plumed/_lib/include/plumed/ves/GridProjWeights.h +61 -0
- plumed/_lib/include/plumed/ves/LinearBasisSetExpansion.h +303 -0
- plumed/_lib/include/plumed/ves/Optimizer.h +444 -0
- plumed/_lib/include/plumed/ves/TargetDistModifer.h +53 -0
- plumed/_lib/include/plumed/ves/TargetDistribution.h +266 -0
- plumed/_lib/include/plumed/ves/VesBias.h +545 -0
- plumed/_lib/include/plumed/ves/VesTools.h +142 -0
- plumed/_lib/include/plumed/ves/WaveletGrid.h +75 -0
- plumed/_lib/include/plumed/volumes/ActionVolume.h +268 -0
- plumed/_lib/include/plumed/volumes/VolumeShortcut.h +147 -0
- plumed/_lib/include/plumed/wrapper/Plumed.h +5025 -0
- plumed/_lib/include/plumed/xdrfile/xdrfile.h +663 -0
- plumed/_lib/include/plumed/xdrfile/xdrfile_trr.h +89 -0
- plumed/_lib/include/plumed/xdrfile/xdrfile_xtc.h +90 -0
- plumed/_lib/lib/PythonCVInterface.so +0 -0
- plumed/_lib/lib/libplumed.a +0 -0
- plumed/_lib/lib/libplumed.so +0 -0
- plumed/_lib/lib/libplumedKernel.so +0 -0
- plumed/_lib/lib/libplumedWrapper.a +0 -0
- plumed/_lib/lib/pkgconfig/plumed.pc +13 -0
- plumed/_lib/lib/pkgconfig/plumedInternals.pc +13 -0
- plumed/_lib/lib/pkgconfig/plumedWrapper.pc +13 -0
- plumed/_lib/lib/plumed/fortran/plumed.f90 +879 -0
- plumed/_lib/lib/plumed/fortran/plumed_f08.f90 +2625 -0
- plumed/_lib/lib/plumed/modulefile +69 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.config +43 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/CMakeLists.txt +543 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/CMakeLists.txt.preplumed +540 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/expanded.cpp +1628 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/expanded.cpp.preplumed +1590 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/expanded.h +103 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/expanded.h.preplumed +99 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/sim_util.cpp +2527 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/sim_util.cpp.preplumed +2513 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/legacymdrunoptions.cpp +208 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/legacymdrunoptions.cpp.preplumed +175 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/legacymdrunoptions.h +408 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/legacymdrunoptions.h.preplumed +394 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/md.cpp +2348 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/md.cpp.preplumed +2091 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/minimize.cpp +3573 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/minimize.cpp.preplumed +3495 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/replicaexchange.cpp +1506 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/replicaexchange.cpp.preplumed +1402 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/replicaexchange.h +114 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/replicaexchange.h.preplumed +106 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/rerun.cpp +997 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/rerun.cpp.preplumed +906 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/runner.cpp +2780 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/runner.cpp.preplumed +2738 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp +224 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp.preplumed +222 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.config +43 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/CMakeLists.txt +549 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/CMakeLists.txt.preplumed +546 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/expanded.cpp +1632 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/expanded.cpp.preplumed +1594 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/expanded.h +104 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/expanded.h.preplumed +100 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/sim_util.cpp +2624 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/sim_util.cpp.preplumed +2610 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/legacymdrunoptions.cpp +208 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/legacymdrunoptions.cpp.preplumed +175 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/legacymdrunoptions.h +409 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/legacymdrunoptions.h.preplumed +395 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/md.cpp +2419 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/md.cpp.preplumed +2164 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/minimize.cpp +3546 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/minimize.cpp.preplumed +3468 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/replicaexchange.cpp +1513 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/replicaexchange.cpp.preplumed +1409 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/replicaexchange.h +114 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/replicaexchange.h.preplumed +106 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/rerun.cpp +991 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/rerun.cpp.preplumed +900 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/runner.cpp +2895 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/runner.cpp.preplumed +2849 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp +224 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp.preplumed +222 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/taskassignment/decidegpuusage.cpp +886 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/taskassignment/decidegpuusage.cpp.preplumed +880 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/taskassignment/include/gromacs/taskassignment/decidegpuusage.h +347 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/taskassignment/include/gromacs/taskassignment/decidegpuusage.h.preplumed +345 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.config +43 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/CMakeLists.txt +575 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/CMakeLists.txt.preplumed +572 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/expanded.cpp +1632 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/expanded.cpp.preplumed +1594 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/expanded.h +104 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/expanded.h.preplumed +100 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/sim_util.cpp +2564 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/sim_util.cpp.preplumed +2550 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/legacymdrunoptions.cpp +208 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/legacymdrunoptions.cpp.preplumed +175 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/legacymdrunoptions.h +410 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/legacymdrunoptions.h.preplumed +396 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/md.cpp +2435 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/md.cpp.preplumed +2187 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/minimize.cpp +3592 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/minimize.cpp.preplumed +3514 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/replicaexchange.cpp +1513 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/replicaexchange.cpp.preplumed +1409 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/replicaexchange.h +114 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/replicaexchange.h.preplumed +106 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/rerun.cpp +958 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/rerun.cpp.preplumed +929 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/runner.cpp +2987 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/runner.cpp.preplumed +2941 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp +224 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp.preplumed +222 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/taskassignment/decidegpuusage.cpp +904 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/taskassignment/decidegpuusage.cpp.preplumed +898 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/taskassignment/include/gromacs/taskassignment/decidegpuusage.h +353 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/taskassignment/include/gromacs/taskassignment/decidegpuusage.h.preplumed +351 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.config +39 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/cmake/gmxManagePlumed.cmake +82 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/cmake/gmxManagePlumed.cmake.preplumed +82 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedMDModule.cpp +162 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedMDModule.cpp.preplumed +154 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedOptions.cpp +107 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedOptions.cpp.preplumed +99 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedOptions.h +120 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedOptions.h.preplumed +111 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedforceprovider.cpp +215 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedforceprovider.cpp.preplumed +197 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedforceprovider.h +87 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedforceprovider.h.preplumed +86 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/mdrun/runner.cpp +2971 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/mdrun/runner.cpp.preplumed +2970 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/mdrunutility/mdmodulesnotifiers.h +430 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/mdrunutility/mdmodulesnotifiers.h.preplumed +429 -0
- plumed/_lib/lib/plumed/patches/namd-2.12.config +30 -0
- plumed/_lib/lib/plumed/patches/namd-2.12.diff +267 -0
- plumed/_lib/lib/plumed/patches/namd-2.13.config +30 -0
- plumed/_lib/lib/plumed/patches/namd-2.13.diff +267 -0
- plumed/_lib/lib/plumed/patches/namd-2.14.config +30 -0
- plumed/_lib/lib/plumed/patches/namd-2.14.diff +268 -0
- plumed/_lib/lib/plumed/patches/patch.sh +500 -0
- plumed/_lib/lib/plumed/patches/qespresso-5.0.2.config +25 -0
- plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/forces.f90 +368 -0
- plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/forces.f90.preplumed +366 -0
- plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/plugin_forces.f90 +71 -0
- plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/plugin_forces.f90.preplumed +24 -0
- plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/plugin_initialization.f90 +62 -0
- plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/plugin_initialization.f90.preplumed +21 -0
- plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/pwscf.f90 +189 -0
- plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/pwscf.f90.preplumed +185 -0
- plumed/_lib/lib/plumed/patches/qespresso-6.2.config +26 -0
- plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/forces.f90 +422 -0
- plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/forces.f90.preplumed +420 -0
- plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/plugin_ext_forces.f90 +70 -0
- plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/plugin_ext_forces.f90.preplumed +23 -0
- plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/plugin_initialization.f90 +62 -0
- plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/plugin_initialization.f90.preplumed +21 -0
- plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/run_pwscf.f90 +233 -0
- plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/run_pwscf.f90.preplumed +230 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.config +28 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/Modules/Makefile +175 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/Modules/Makefile.preplumed +171 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/forces.f90 +486 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/forces.f90.preplumed +484 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/plugin_ext_forces.f90 +74 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/plugin_ext_forces.f90.preplumed +23 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/plugin_initialization.f90 +64 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/plugin_initialization.f90.preplumed +21 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/run_pwscf.f90 +532 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/run_pwscf.f90.preplumed +518 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.config +28 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/Modules/Makefile +249 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/Modules/Makefile.preplumed +244 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/forces.f90 +532 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/forces.f90.preplumed +535 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/plugin_ext_forces.f90 +74 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/plugin_ext_forces.f90.preplumed +23 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/plugin_initialization.f90 +64 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/plugin_initialization.f90.preplumed +21 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/run_pwscf.f90 +569 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/run_pwscf.f90.preplumed +560 -0
- plumed/_lib/lib/plumed/plumed-config +9 -0
- plumed/_lib/lib/plumed/plumed-mklib +9 -0
- plumed/_lib/lib/plumed/plumed-newcv +9 -0
- plumed/_lib/lib/plumed/plumed-partial_tempering +9 -0
- plumed/_lib/lib/plumed/plumed-patch +9 -0
- plumed/_lib/lib/plumed/plumed-runtime +0 -0
- plumed/_lib/lib/plumed/plumed-selector +9 -0
- plumed/_lib/lib/plumed/plumed-vim2html +9 -0
- plumed/_lib/lib/plumed/scripts/config.sh +126 -0
- plumed/_lib/lib/plumed/scripts/mklib.sh +175 -0
- plumed/_lib/lib/plumed/scripts/newcv.sh +26 -0
- plumed/_lib/lib/plumed/scripts/partial_tempering.sh +319 -0
- plumed/_lib/lib/plumed/scripts/patch.sh +4 -0
- plumed/_lib/lib/plumed/scripts/selector.sh +234 -0
- plumed/_lib/lib/plumed/scripts/vim2html.sh +190 -0
- plumed/_lib/lib/plumed/src/colvar/Template.cpp +116 -0
- plumed/_lib/lib/plumed/src/config/compile_options.sh +3 -0
- plumed/_lib/lib/plumed/src/config/config.txt +179 -0
- plumed/_lib/lib/plumed/src/lib/Plumed.cmake +8 -0
- plumed/_lib/lib/plumed/src/lib/Plumed.cmake.runtime +5 -0
- plumed/_lib/lib/plumed/src/lib/Plumed.cmake.shared +5 -0
- plumed/_lib/lib/plumed/src/lib/Plumed.cmake.static +5 -0
- plumed/_lib/lib/plumed/src/lib/Plumed.inc +8 -0
- plumed/_lib/lib/plumed/src/lib/Plumed.inc.runtime +5 -0
- plumed/_lib/lib/plumed/src/lib/Plumed.inc.shared +5 -0
- plumed/_lib/lib/plumed/src/lib/Plumed.inc.static +5 -0
- plumed/_lib/lib/plumed/vim/scripts.vim +6 -0
- plumed/_plumed_core.cpython-311-aarch64-linux-musl.so +0 -0
- plumed/_plumed_core.cpython-312-aarch64-linux-musl.so +0 -0
- plumed/_plumed_core.cpython-313-aarch64-linux-musl.so +0 -0
- plumedCommunications.cpython-311-aarch64-linux-musl.so +0 -0
- plumedCommunications.cpython-312-aarch64-linux-musl.so +0 -0
- plumedCommunications.cpython-313-aarch64-linux-musl.so +0 -0
- plumedCommunications.pyi +431 -0
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
2
|
+
Copyright (c) 2015-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_gridtools_SumOfKernels_h
|
|
23
|
+
#define __PLUMED_gridtools_SumOfKernels_h
|
|
24
|
+
|
|
25
|
+
#include "../function/FunctionSetup.h"
|
|
26
|
+
#include "../tools/SwitchingFunction.h"
|
|
27
|
+
#include "../tools/HistogramBead.h"
|
|
28
|
+
#include "../tools/Matrix.h"
|
|
29
|
+
|
|
30
|
+
namespace PLMD {
|
|
31
|
+
namespace gridtools {
|
|
32
|
+
|
|
33
|
+
template <class K>
|
|
34
|
+
class RegularKernel;
|
|
35
|
+
|
|
36
|
+
class DiagonalKernelParams {
|
|
37
|
+
public:
|
|
38
|
+
std::vector<double> at;
|
|
39
|
+
std::vector<double> sigma;
|
|
40
|
+
double height;
|
|
41
|
+
static bool bandwidthIsConstant( std::size_t ndim, const std::vector<Value*>& args );
|
|
42
|
+
static bool bandwidthsAllSame( std::size_t ndim, const std::vector<Value*>& args );
|
|
43
|
+
static bool setKernelAndCheckHeight( DiagonalKernelParams& kp, std::size_t ndim, const std::vector<double>& args );
|
|
44
|
+
static std::size_t getNumberOfParameters( const DiagonalKernelParams& kp );
|
|
45
|
+
static void getSigmaProjections( const DiagonalKernelParams& kp, std::vector<double>& support );
|
|
46
|
+
static double evaluateR2( const RegularKernel<DiagonalKernelParams>& p, const DiagonalKernelParams& kp, View<const double> x, View<double> paramderivs );
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
class NonDiagonalKernelParams {
|
|
50
|
+
public:
|
|
51
|
+
std::vector<double> at;
|
|
52
|
+
Matrix<double> sigma, metric;
|
|
53
|
+
double height;
|
|
54
|
+
static bool bandwidthIsConstant( std::size_t ndim, const std::vector<Value*>& args );
|
|
55
|
+
static bool bandwidthsAllSame( std::size_t ndim, const std::vector<Value*>& args );
|
|
56
|
+
static bool setKernelAndCheckHeight( NonDiagonalKernelParams& kp, std::size_t ndim, const std::vector<double>& args );
|
|
57
|
+
static std::size_t getNumberOfParameters( const NonDiagonalKernelParams& kp );
|
|
58
|
+
static void getSigmaProjections( const NonDiagonalKernelParams& kp, std::vector<double>& support );
|
|
59
|
+
static double evaluateR2( const RegularKernel<NonDiagonalKernelParams>& p, const NonDiagonalKernelParams& kp, View<const double> x, View<double> paramderivs );
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
class DiscreteKernel {
|
|
63
|
+
public:
|
|
64
|
+
static void registerKeywords( Keywords& keys ) {}
|
|
65
|
+
static void read( DiscreteKernel& p, ActionWithArguments* action, const std::vector<Value*>& args ) {}
|
|
66
|
+
static void setArgumentDomain( const unsigned& i, DiscreteKernel& params, const double& spacing, const bool isp, const std::string& min1, const std::string& max1 ) {}
|
|
67
|
+
static void getSupport( DiscreteKernel& params, const DiagonalKernelParams& kp, double dp2cutoff, std::vector<double>& support ) {}
|
|
68
|
+
static double calc( const DiscreteKernel& params, const DiagonalKernelParams& kp, View<const double> x, View<double> der, View<double> paramderivs );
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
class HistogramBeadKernel {
|
|
72
|
+
public:
|
|
73
|
+
std::vector<HistogramBead> beads;
|
|
74
|
+
std::vector<double> gridspacing;
|
|
75
|
+
static void registerKeywords( Keywords& keys );
|
|
76
|
+
static void read( HistogramBeadKernel& p, ActionWithArguments* action, const std::vector<Value*>& args );
|
|
77
|
+
static void setArgumentDomain( const unsigned& i, HistogramBeadKernel& params, const double& spacing, const bool isp, const std::string& min1, const std::string& max1 );
|
|
78
|
+
static void getSupport( HistogramBeadKernel& params, const DiagonalKernelParams& kp, double dp2cutoff, std::vector<double>& support );
|
|
79
|
+
static double calc( const HistogramBeadKernel& params, const DiagonalKernelParams& kp, View<const double> x, View<double> der, View<double> paramderivs );
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
template <class K>
|
|
83
|
+
class RegularKernel {
|
|
84
|
+
public:
|
|
85
|
+
bool canusevol;
|
|
86
|
+
SwitchingFunction switchingFunction;
|
|
87
|
+
std::vector<bool> periodic;
|
|
88
|
+
std::vector<double> max_minus_min, inv_max_minus_min;
|
|
89
|
+
static void registerKeywords( Keywords& keys );
|
|
90
|
+
static void read( RegularKernel& p, ActionWithArguments* action, const std::vector<Value*>& args );
|
|
91
|
+
static void setArgumentDomain( const unsigned& i, RegularKernel& params, const double& spacing, const bool isp, const std::string& min1, const std::string& max1 );
|
|
92
|
+
static double difference( const RegularKernel& params, unsigned i, const double& val1, const double& val2 );
|
|
93
|
+
static void getSupport( const RegularKernel& params, const K& kp, double dp2cutoff, std::vector<double>& support );
|
|
94
|
+
static double calc( const RegularKernel& params, const K& kp, View<const double> x, View<double> der, View<double> paramderivs );
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
template <class K>
|
|
98
|
+
void RegularKernel<K>::registerKeywords( Keywords& keys ) {
|
|
99
|
+
keys.add("compulsory","KERNEL","GAUSSIAN","the kernel function you are using.");
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
template <class K>
|
|
103
|
+
void RegularKernel<K>::read( RegularKernel& p, ActionWithArguments* action, const std::vector<Value*>& args ) {
|
|
104
|
+
std::string kerneltype;
|
|
105
|
+
action->parse("KERNEL",kerneltype);
|
|
106
|
+
std::string errors;
|
|
107
|
+
for(auto & c: kerneltype) {
|
|
108
|
+
c = std::toupper(c);
|
|
109
|
+
}
|
|
110
|
+
p.canusevol = (kerneltype=="GAUSSIAN");
|
|
111
|
+
p.switchingFunction.set( kerneltype + " R_0=1.0 NOSTRETCH", errors );
|
|
112
|
+
if( errors.length()!=0 ) {
|
|
113
|
+
action->error("problem reading switching function description " + errors);
|
|
114
|
+
}
|
|
115
|
+
p.periodic.resize( args.size() );
|
|
116
|
+
p.max_minus_min.resize( args.size() );
|
|
117
|
+
p.inv_max_minus_min.resize( args.size() );
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
template <class K>
|
|
121
|
+
void RegularKernel<K>::setArgumentDomain( const unsigned& i, RegularKernel& params, const double& spacing, const bool isp, const std::string& min1, const std::string& max1 ) {
|
|
122
|
+
params.periodic[i] = isp;
|
|
123
|
+
if( params.periodic[i] ) {
|
|
124
|
+
double min, max;
|
|
125
|
+
Tools::convert( min1, min );
|
|
126
|
+
Tools::convert( max1, max );
|
|
127
|
+
params.max_minus_min[i]=max-min;
|
|
128
|
+
params.inv_max_minus_min[i]=1.0/params.max_minus_min[i];
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
template <class K>
|
|
133
|
+
double RegularKernel<K>::difference( const RegularKernel<K>& params, unsigned i, const double& val1, const double& val2 ) {
|
|
134
|
+
if( !params.periodic[i] ) {
|
|
135
|
+
return val1 - val2;
|
|
136
|
+
}
|
|
137
|
+
return params.max_minus_min[i]*Tools::pbc( params.inv_max_minus_min[i]*( val1 - val2 ) );
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
template <class K>
|
|
141
|
+
void RegularKernel<K>::getSupport( const RegularKernel<K>& params, const K& kp, double dp2cutoff, std::vector<double>& support ) {
|
|
142
|
+
K::getSigmaProjections( kp, support );
|
|
143
|
+
for(unsigned i=0; i<support.size(); ++i) {
|
|
144
|
+
support[i] = sqrt(2.0*dp2cutoff)*support[i];
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
template <class K>
|
|
149
|
+
double RegularKernel<K>::calc( const RegularKernel<K>& params, const K& kp, View<const double> x, View<double> der, View<double> paramderivs ) {
|
|
150
|
+
double r2 = K::evaluateR2( params, kp, x, paramderivs );
|
|
151
|
+
double dval, val = kp.height*params.switchingFunction.calculateSqr( r2, dval );
|
|
152
|
+
dval *= kp.height;
|
|
153
|
+
for(unsigned i=0; i<der.size(); ++i) {
|
|
154
|
+
der[i] += dval*paramderivs[i];
|
|
155
|
+
paramderivs[i] = -dval*paramderivs[i];
|
|
156
|
+
}
|
|
157
|
+
paramderivs[2*kp.at.size()] = val / kp.height;
|
|
158
|
+
return val;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
class VonMissesKernelParams {
|
|
162
|
+
public:
|
|
163
|
+
std::vector<double> at;
|
|
164
|
+
double concentration;
|
|
165
|
+
double norm;
|
|
166
|
+
double height;
|
|
167
|
+
static bool bandwidthIsConstant( std::size_t ndim, const std::vector<Value*>& args );
|
|
168
|
+
static bool bandwidthsAllSame( std::size_t ndim, const std::vector<Value*>& args );
|
|
169
|
+
static bool setKernelAndCheckHeight( VonMissesKernelParams& kp, std::size_t ndim, const std::vector<double>& argval );
|
|
170
|
+
static std::size_t getNumberOfParameters( const VonMissesKernelParams& kp );
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
class UniversalVonMisses {
|
|
174
|
+
public:
|
|
175
|
+
std::string kerneltype;
|
|
176
|
+
SwitchingFunction switchingFunction;
|
|
177
|
+
static void registerKeywords( Keywords& keys ) {}
|
|
178
|
+
static void read( UniversalVonMisses& p, ActionWithArguments* action, const std::vector<Value*>& args ) {}
|
|
179
|
+
static void setArgumentDomain( const unsigned& i, UniversalVonMisses& params, const double& spacing, const bool isp, const std::string& min1, const std::string& max1 ) {}
|
|
180
|
+
static double calc( const UniversalVonMisses& params, const VonMissesKernelParams& kp, View<const double> x, View<double> der, View<double> paramderivs );
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
template <class K, class P>
|
|
184
|
+
class SumOfKernels {
|
|
185
|
+
public:
|
|
186
|
+
P params;
|
|
187
|
+
std::vector<K> kernelParams;
|
|
188
|
+
/// This is used to setup the input gridobject's bounds with the grid data from values
|
|
189
|
+
static void registerKeywords( Keywords& keys );
|
|
190
|
+
static void read( SumOfKernels<K,P>& func, ActionWithArguments* action, const std::vector<Value*>& args, function::FunctionOptions& options );
|
|
191
|
+
static void calc( View<const std::size_t> klist, const SumOfKernels<K,P>& func, View<const double> args, View<double> values, View<double> der, View<double> paramderivs );
|
|
192
|
+
};
|
|
193
|
+
|
|
194
|
+
template <class K, class P>
|
|
195
|
+
void SumOfKernels<K,P>::registerKeywords( Keywords& keys ) {
|
|
196
|
+
P::registerKeywords( keys );
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
template <class K, class P>
|
|
200
|
+
void SumOfKernels<K,P>::read( SumOfKernels<K,P>& func, ActionWithArguments* action, const std::vector<Value*>& args, function::FunctionOptions& options ) {
|
|
201
|
+
// Read the universal parameters for the kernel
|
|
202
|
+
P::read( func.params, action, args );
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
template <class K, class P>
|
|
206
|
+
void SumOfKernels<K,P>::calc( View<const std::size_t> klist, const SumOfKernels<K,P>& func, View<const double> args, View<double> values, View<double> der, View<double> paramderivs ) {
|
|
207
|
+
values[0] = 0;
|
|
208
|
+
for(unsigned i=0; i<der.size(); ++i) {
|
|
209
|
+
der[i] = 0;
|
|
210
|
+
}
|
|
211
|
+
std::size_t nparams = K::getNumberOfParameters( func.kernelParams[0] );
|
|
212
|
+
for(unsigned i=0; i<klist.size(); ++i) {
|
|
213
|
+
values[0] += P::calc( func.params, func.kernelParams[klist[i]], args, der, View<double>( paramderivs.data() + i*nparams, nparams ) );
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
#endif
|
|
@@ -0,0 +1,398 @@
|
|
|
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_isdb_MetainferenceBase_h
|
|
23
|
+
#define __PLUMED_isdb_MetainferenceBase_h
|
|
24
|
+
|
|
25
|
+
#include "../core/ActionWithValue.h"
|
|
26
|
+
#include "../core/ActionAtomistic.h"
|
|
27
|
+
#include "../core/ActionWithArguments.h"
|
|
28
|
+
#include "../tools/Communicator.h"
|
|
29
|
+
#include "../core/PlumedMain.h"
|
|
30
|
+
#include "../tools/Random.h"
|
|
31
|
+
#include "../tools/OpenMP.h"
|
|
32
|
+
|
|
33
|
+
#define PLUMED_METAINF_INIT(ao) Action(ao),MetainferenceBase(ao)
|
|
34
|
+
|
|
35
|
+
namespace PLMD {
|
|
36
|
+
namespace isdb {
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
\ingroup INHERIT
|
|
40
|
+
This is the abstract base class to use for implementing new ISDB Metainference actions, within it there is
|
|
41
|
+
information as to how to go about implementing a new Metainference action.
|
|
42
|
+
*/
|
|
43
|
+
|
|
44
|
+
class MetainferenceBase :
|
|
45
|
+
public ActionAtomistic,
|
|
46
|
+
public ActionWithArguments,
|
|
47
|
+
public ActionWithValue {
|
|
48
|
+
private:
|
|
49
|
+
std::vector<double> forces;
|
|
50
|
+
std::vector<double> forcesToApply;
|
|
51
|
+
|
|
52
|
+
// activate metainference
|
|
53
|
+
bool doscore_;
|
|
54
|
+
unsigned write_stride_;
|
|
55
|
+
// number of experimental data
|
|
56
|
+
unsigned narg;
|
|
57
|
+
// experimental data
|
|
58
|
+
std::vector<double> parameters;
|
|
59
|
+
// metainference derivatives
|
|
60
|
+
std::vector<double> metader_;
|
|
61
|
+
// vector of back-calculated experimental data
|
|
62
|
+
std::vector<double> calc_data_;
|
|
63
|
+
|
|
64
|
+
// noise type
|
|
65
|
+
unsigned noise_type_;
|
|
66
|
+
enum { GAUSS, MGAUSS, OUTLIERS, MOUTLIERS, GENERIC };
|
|
67
|
+
unsigned gen_likelihood_;
|
|
68
|
+
enum { LIKE_GAUSS, LIKE_LOGN };
|
|
69
|
+
bool doscale_;
|
|
70
|
+
unsigned scale_prior_;
|
|
71
|
+
enum { SC_GAUSS, SC_FLAT };
|
|
72
|
+
double scale_;
|
|
73
|
+
double scale_mu_;
|
|
74
|
+
double scale_min_;
|
|
75
|
+
double scale_max_;
|
|
76
|
+
double Dscale_;
|
|
77
|
+
// scale is data scaling factor
|
|
78
|
+
// noise type
|
|
79
|
+
unsigned offset_prior_;
|
|
80
|
+
bool dooffset_;
|
|
81
|
+
double offset_;
|
|
82
|
+
double offset_mu_;
|
|
83
|
+
double offset_min_;
|
|
84
|
+
double offset_max_;
|
|
85
|
+
double Doffset_;
|
|
86
|
+
// scale and offset regression
|
|
87
|
+
bool doregres_zero_;
|
|
88
|
+
int nregres_zero_;
|
|
89
|
+
// sigma is data uncertainty
|
|
90
|
+
std::vector<double> sigma_;
|
|
91
|
+
std::vector<double> sigma_min_;
|
|
92
|
+
std::vector<double> sigma_max_;
|
|
93
|
+
std::vector<double> Dsigma_;
|
|
94
|
+
// sigma_mean is uncertainty in the mean estimate
|
|
95
|
+
std::vector<double> sigma_mean2_;
|
|
96
|
+
// this is the estimator of the mean value per replica for generic metainference
|
|
97
|
+
std::vector<double> ftilde_;
|
|
98
|
+
double Dftilde_;
|
|
99
|
+
|
|
100
|
+
// temperature in kbt
|
|
101
|
+
double kbt_;
|
|
102
|
+
|
|
103
|
+
// Monte Carlo stuff
|
|
104
|
+
std::vector<Random> random;
|
|
105
|
+
unsigned MCsteps_;
|
|
106
|
+
long long unsigned MCaccept_;
|
|
107
|
+
long long unsigned MCacceptScale_;
|
|
108
|
+
long long unsigned MCacceptFT_;
|
|
109
|
+
long long unsigned MCtrial_;
|
|
110
|
+
unsigned MCchunksize_;
|
|
111
|
+
|
|
112
|
+
// output
|
|
113
|
+
Value* valueScore;
|
|
114
|
+
Value* valueScale;
|
|
115
|
+
Value* valueOffset;
|
|
116
|
+
Value* valueAccept;
|
|
117
|
+
Value* valueAcceptScale;
|
|
118
|
+
Value* valueAcceptFT;
|
|
119
|
+
std::vector<Value*> valueSigma;
|
|
120
|
+
std::vector<Value*> valueSigmaMean;
|
|
121
|
+
std::vector<Value*> valueFtilde;
|
|
122
|
+
|
|
123
|
+
// restart
|
|
124
|
+
std::string status_file_name_;
|
|
125
|
+
OFile sfile_;
|
|
126
|
+
std::string fmt_;
|
|
127
|
+
|
|
128
|
+
// others
|
|
129
|
+
bool firstTime;
|
|
130
|
+
std::vector<bool> firstTimeW;
|
|
131
|
+
bool master;
|
|
132
|
+
bool do_reweight_;
|
|
133
|
+
unsigned do_optsigmamean_;
|
|
134
|
+
unsigned nrep_;
|
|
135
|
+
unsigned replica_;
|
|
136
|
+
|
|
137
|
+
// selector
|
|
138
|
+
unsigned nsel_;
|
|
139
|
+
std::string selector_;
|
|
140
|
+
unsigned iselect;
|
|
141
|
+
|
|
142
|
+
// optimize sigma mean
|
|
143
|
+
std::vector< std::vector < std::vector <double> > > sigma_mean2_last_;
|
|
144
|
+
unsigned optsigmamean_stride_;
|
|
145
|
+
// optimize sigma max
|
|
146
|
+
unsigned N_optimized_step_;
|
|
147
|
+
unsigned optimized_step_;
|
|
148
|
+
bool sigmamax_opt_done_;
|
|
149
|
+
std::vector<double> sigma_max_est_;
|
|
150
|
+
|
|
151
|
+
// average weights
|
|
152
|
+
double decay_w_;
|
|
153
|
+
std::vector< std::vector <double> > average_weights_;
|
|
154
|
+
|
|
155
|
+
double getEnergyMIGEN(const std::vector<double> &mean, const std::vector<double> &ftilde, const std::vector<double> &sigma,
|
|
156
|
+
const double scale, const double offset);
|
|
157
|
+
double getEnergySP(const std::vector<double> &mean, const std::vector<double> &sigma,
|
|
158
|
+
const double scale, const double offset);
|
|
159
|
+
double getEnergySPE(const std::vector<double> &mean, const std::vector<double> &sigma,
|
|
160
|
+
const double scale, const double offset);
|
|
161
|
+
double getEnergyGJ(const std::vector<double> &mean, const std::vector<double> &sigma,
|
|
162
|
+
const double scale, const double offset);
|
|
163
|
+
double getEnergyGJE(const std::vector<double> &mean, const std::vector<double> &sigma,
|
|
164
|
+
const double scale, const double offset);
|
|
165
|
+
void setMetaDer(const unsigned index, const double der);
|
|
166
|
+
void getEnergyForceSP(const std::vector<double> &mean, const std::vector<double> &dmean_x, const std::vector<double> &dmean_b);
|
|
167
|
+
void getEnergyForceSPE(const std::vector<double> &mean, const std::vector<double> &dmean_x, const std::vector<double> &dmean_b);
|
|
168
|
+
void getEnergyForceGJ(const std::vector<double> &mean, const std::vector<double> &dmean_x, const std::vector<double> &dmean_b);
|
|
169
|
+
void getEnergyForceGJE(const std::vector<double> &mean, const std::vector<double> &dmean_x, const std::vector<double> &dmean_b);
|
|
170
|
+
void getEnergyForceMIGEN(const std::vector<double> &mean, const std::vector<double> &dmean_x, const std::vector<double> &dmean_b);
|
|
171
|
+
double getCalcData(const unsigned index);
|
|
172
|
+
void get_weights(double &weight, double &norm, double &neff);
|
|
173
|
+
void replica_averaging(const double weight, const double norm, std::vector<double> &mean, std::vector<double> &dmean_b);
|
|
174
|
+
void get_sigma_mean(const double weight, const double norm, const double neff, const std::vector<double> &mean);
|
|
175
|
+
void do_regression_zero(const std::vector<double> &mean);
|
|
176
|
+
void moveTilde(const std::vector<double> &mean_, double &old_energy);
|
|
177
|
+
void moveScaleOffset(const std::vector<double> &mean_, double &old_energy);
|
|
178
|
+
void moveSigmas(const std::vector<double> &mean_, double &old_energy, const unsigned i, const std::vector<unsigned> &indices, bool &breaknow);
|
|
179
|
+
double doMonteCarlo(const std::vector<double> &mean);
|
|
180
|
+
|
|
181
|
+
public:
|
|
182
|
+
static void registerKeywords( Keywords& keys );
|
|
183
|
+
explicit MetainferenceBase(const ActionOptions&);
|
|
184
|
+
~MetainferenceBase();
|
|
185
|
+
void Initialise(const unsigned input);
|
|
186
|
+
void Selector();
|
|
187
|
+
unsigned getNarg();
|
|
188
|
+
void setNarg(const unsigned input);
|
|
189
|
+
void setParameters(const std::vector<double>& input);
|
|
190
|
+
void setParameter(const double input);
|
|
191
|
+
void setCalcData(const unsigned index, const double datum);
|
|
192
|
+
void setCalcData(const std::vector<double>& data);
|
|
193
|
+
bool getDoScore();
|
|
194
|
+
unsigned getWstride();
|
|
195
|
+
double getScore();
|
|
196
|
+
void setScore(const double score);
|
|
197
|
+
void setDerivatives();
|
|
198
|
+
double getMetaDer(const unsigned index);
|
|
199
|
+
void writeStatus();
|
|
200
|
+
void turnOnDerivatives() override;
|
|
201
|
+
unsigned getNumberOfDerivatives() override;
|
|
202
|
+
void lockRequests() override;
|
|
203
|
+
void unlockRequests() override;
|
|
204
|
+
void calculateNumericalDerivatives( ActionWithValue* a ) override;
|
|
205
|
+
void apply() override;
|
|
206
|
+
void setArgDerivatives(Value *v, const double &d);
|
|
207
|
+
void setAtomsDerivatives(Value*v, const unsigned i, const Vector&d);
|
|
208
|
+
void setBoxDerivatives(Value*v, const Tensor&d);
|
|
209
|
+
};
|
|
210
|
+
|
|
211
|
+
inline
|
|
212
|
+
void MetainferenceBase::setNarg(const unsigned input) {
|
|
213
|
+
narg = input;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
inline
|
|
217
|
+
bool MetainferenceBase::getDoScore() {
|
|
218
|
+
return doscore_;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
inline
|
|
222
|
+
unsigned MetainferenceBase::getWstride() {
|
|
223
|
+
return write_stride_;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
inline
|
|
227
|
+
unsigned MetainferenceBase::getNarg() {
|
|
228
|
+
return narg;
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
inline
|
|
232
|
+
void MetainferenceBase::setMetaDer(const unsigned index, const double der) {
|
|
233
|
+
metader_[index] = der;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
inline
|
|
237
|
+
double MetainferenceBase::getMetaDer(const unsigned index) {
|
|
238
|
+
return metader_[index];
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
inline
|
|
242
|
+
double MetainferenceBase::getCalcData(const unsigned index) {
|
|
243
|
+
return calc_data_[index];
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
inline
|
|
247
|
+
void MetainferenceBase::setCalcData(const unsigned index, const double datum) {
|
|
248
|
+
calc_data_[index] = datum;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
inline
|
|
252
|
+
void MetainferenceBase::setCalcData(const std::vector<double>& data) {
|
|
253
|
+
for(unsigned i=0; i<data.size(); i++) {
|
|
254
|
+
calc_data_[i] = data[i];
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
inline
|
|
259
|
+
void MetainferenceBase::setParameters(const std::vector<double>& input) {
|
|
260
|
+
for(unsigned i=0; i<input.size(); i++) {
|
|
261
|
+
parameters.push_back(input[i]);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
inline
|
|
266
|
+
void MetainferenceBase::setParameter(const double input) {
|
|
267
|
+
parameters.push_back(input);
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
inline
|
|
271
|
+
void MetainferenceBase::setScore(const double score) {
|
|
272
|
+
valueScore->set(score);
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
inline
|
|
276
|
+
void MetainferenceBase::setDerivatives() {
|
|
277
|
+
// Get appropriate number of derivatives
|
|
278
|
+
// Derivatives are first for arguments and then for atoms
|
|
279
|
+
unsigned nder;
|
|
280
|
+
if( getNumberOfAtoms()>0 ) {
|
|
281
|
+
nder = 3*getNumberOfAtoms() + 9 + getNumberOfArguments();
|
|
282
|
+
} else {
|
|
283
|
+
nder = getNumberOfArguments();
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
// Resize all derivative arrays
|
|
287
|
+
forces.resize( nder );
|
|
288
|
+
forcesToApply.resize( nder );
|
|
289
|
+
for(unsigned i=0; i<getNumberOfComponents(); ++i) {
|
|
290
|
+
getPntrToComponent(i)->resizeDerivatives(nder);
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
inline
|
|
295
|
+
void MetainferenceBase::turnOnDerivatives() {
|
|
296
|
+
ActionWithValue::turnOnDerivatives();
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
inline
|
|
300
|
+
unsigned MetainferenceBase::getNumberOfDerivatives() {
|
|
301
|
+
if( getNumberOfAtoms()>0 ) {
|
|
302
|
+
return 3*getNumberOfAtoms() + 9 + getNumberOfArguments();
|
|
303
|
+
}
|
|
304
|
+
return getNumberOfArguments();
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
inline
|
|
308
|
+
void MetainferenceBase::lockRequests() {
|
|
309
|
+
ActionAtomistic::lockRequests();
|
|
310
|
+
ActionWithArguments::lockRequests();
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
inline
|
|
314
|
+
void MetainferenceBase::unlockRequests() {
|
|
315
|
+
ActionAtomistic::unlockRequests();
|
|
316
|
+
ActionWithArguments::unlockRequests();
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
inline
|
|
320
|
+
void MetainferenceBase::calculateNumericalDerivatives( ActionWithValue* a=NULL ) {
|
|
321
|
+
if( getNumberOfArguments()>0 ) {
|
|
322
|
+
ActionWithArguments::calculateNumericalDerivatives( a );
|
|
323
|
+
}
|
|
324
|
+
if( getNumberOfAtoms()>0 ) {
|
|
325
|
+
Matrix<double> save_derivatives( getNumberOfComponents(), getNumberOfArguments() );
|
|
326
|
+
for(unsigned j=0; j<getNumberOfComponents(); ++j) {
|
|
327
|
+
for(unsigned i=0; i<getNumberOfArguments(); ++i) {
|
|
328
|
+
if(getPntrToComponent(j)->hasDerivatives()) {
|
|
329
|
+
save_derivatives(j,i)=getPntrToComponent(j)->getDerivative(i);
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
calculateAtomicNumericalDerivatives( a, getNumberOfArguments() );
|
|
334
|
+
for(unsigned j=0; j<getNumberOfComponents(); ++j) {
|
|
335
|
+
for(unsigned i=0; i<getNumberOfArguments(); ++i) {
|
|
336
|
+
if(getPntrToComponent(j)->hasDerivatives()) {
|
|
337
|
+
getPntrToComponent(j)->addDerivative( i, save_derivatives(j,i) );
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
inline
|
|
345
|
+
void MetainferenceBase::apply() {
|
|
346
|
+
bool wasforced=false;
|
|
347
|
+
forcesToApply.assign(forcesToApply.size(),0.0);
|
|
348
|
+
for(unsigned i=0; i<getNumberOfComponents(); ++i) {
|
|
349
|
+
if( getPntrToComponent(i)->applyForce( forces ) ) {
|
|
350
|
+
wasforced=true;
|
|
351
|
+
for(unsigned ii=0; ii<forces.size(); ++ii) {
|
|
352
|
+
forcesToApply[ii]+=forces[ii];
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
if( wasforced ) {
|
|
357
|
+
unsigned ind=0;
|
|
358
|
+
addForcesOnArguments( 0, forcesToApply, ind );
|
|
359
|
+
if( getNumberOfAtoms()>0 ) {
|
|
360
|
+
setForcesOnAtoms( forcesToApply, ind );
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
inline
|
|
366
|
+
void MetainferenceBase::setArgDerivatives(Value *v, const double &d) {
|
|
367
|
+
v->addDerivative(0,d);
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
inline
|
|
371
|
+
void MetainferenceBase::setAtomsDerivatives(Value*v, const unsigned i, const Vector&d) {
|
|
372
|
+
const unsigned noa=getNumberOfArguments();
|
|
373
|
+
v->addDerivative(noa+3*i+0,d[0]);
|
|
374
|
+
v->addDerivative(noa+3*i+1,d[1]);
|
|
375
|
+
v->addDerivative(noa+3*i+2,d[2]);
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
inline
|
|
379
|
+
void MetainferenceBase::setBoxDerivatives(Value* v,const Tensor&d) {
|
|
380
|
+
const unsigned noa=getNumberOfArguments();
|
|
381
|
+
const unsigned nat=getNumberOfAtoms();
|
|
382
|
+
v->addDerivative(noa+3*nat+0,d(0,0));
|
|
383
|
+
v->addDerivative(noa+3*nat+1,d(0,1));
|
|
384
|
+
v->addDerivative(noa+3*nat+2,d(0,2));
|
|
385
|
+
v->addDerivative(noa+3*nat+3,d(1,0));
|
|
386
|
+
v->addDerivative(noa+3*nat+4,d(1,1));
|
|
387
|
+
v->addDerivative(noa+3*nat+5,d(1,2));
|
|
388
|
+
v->addDerivative(noa+3*nat+6,d(2,0));
|
|
389
|
+
v->addDerivative(noa+3*nat+7,d(2,1));
|
|
390
|
+
v->addDerivative(noa+3*nat+8,d(2,2));
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
#endif
|
|
398
|
+
|