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,220 @@
|
|
|
1
|
+
/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
2
|
+
Copyright (c) 2016-2021 The VES code team
|
|
3
|
+
(see the PEOPLE-VES file at the root of this folder for a list of names)
|
|
4
|
+
|
|
5
|
+
See http://www.ves-code.org for more information.
|
|
6
|
+
|
|
7
|
+
This file is part of VES code module.
|
|
8
|
+
|
|
9
|
+
The VES code module 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
|
+
The VES code module 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 the VES code module. If not, see <http://www.gnu.org/licenses/>.
|
|
21
|
+
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
|
|
22
|
+
#ifndef __PLUMED_ves_CoeffsMatrix_h
|
|
23
|
+
#define __PLUMED_ves_CoeffsMatrix_h
|
|
24
|
+
|
|
25
|
+
#include "CoeffsBase.h"
|
|
26
|
+
|
|
27
|
+
#include <vector>
|
|
28
|
+
#include <string>
|
|
29
|
+
#include <cmath>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
namespace PLMD {
|
|
33
|
+
|
|
34
|
+
class Action;
|
|
35
|
+
class Value;
|
|
36
|
+
class IFile;
|
|
37
|
+
class OFile;
|
|
38
|
+
class Communicator;
|
|
39
|
+
|
|
40
|
+
namespace ves {
|
|
41
|
+
|
|
42
|
+
class BasisFunctions;
|
|
43
|
+
class CoeffsVector;
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
class CoeffsMatrix:
|
|
47
|
+
public CoeffsBase {
|
|
48
|
+
public:
|
|
49
|
+
private:
|
|
50
|
+
std::vector<double> data;
|
|
51
|
+
//
|
|
52
|
+
size_t size_;
|
|
53
|
+
size_t nrows_;
|
|
54
|
+
size_t ncolumns_;
|
|
55
|
+
//
|
|
56
|
+
bool diagonal_;
|
|
57
|
+
//
|
|
58
|
+
unsigned int averaging_counter;
|
|
59
|
+
unsigned int averaging_exp_decay_;
|
|
60
|
+
//
|
|
61
|
+
Communicator& mycomm;
|
|
62
|
+
//
|
|
63
|
+
void setupMatrix();
|
|
64
|
+
//
|
|
65
|
+
CoeffsMatrix& operator=(const CoeffsMatrix&);
|
|
66
|
+
public:
|
|
67
|
+
explicit CoeffsMatrix(
|
|
68
|
+
const std::string&,
|
|
69
|
+
const std::vector<std::string>&,
|
|
70
|
+
const std::vector<unsigned int>&,
|
|
71
|
+
Communicator& cc,
|
|
72
|
+
const bool diagonal=true,
|
|
73
|
+
const bool use_iteration_counter=false);
|
|
74
|
+
//
|
|
75
|
+
explicit CoeffsMatrix(
|
|
76
|
+
const std::string&,
|
|
77
|
+
std::vector<Value*>&,
|
|
78
|
+
std::vector<BasisFunctions*>&,
|
|
79
|
+
Communicator& cc,
|
|
80
|
+
const bool diagonal=true,
|
|
81
|
+
const bool use_iteration_counter=false);
|
|
82
|
+
//
|
|
83
|
+
explicit CoeffsMatrix(
|
|
84
|
+
const std::string&,
|
|
85
|
+
std::vector<std::vector<Value*> >& argsv,
|
|
86
|
+
std::vector<std::vector<BasisFunctions*> >& basisfv,
|
|
87
|
+
Communicator& cc,
|
|
88
|
+
const bool diagonal=true,
|
|
89
|
+
const bool use_iteration_counter=false,
|
|
90
|
+
const std::string& multicoeffs_label="bias");
|
|
91
|
+
//
|
|
92
|
+
explicit CoeffsMatrix(
|
|
93
|
+
const std::string&,
|
|
94
|
+
CoeffsVector*,
|
|
95
|
+
Communicator& cc,
|
|
96
|
+
const bool diagonal=true);
|
|
97
|
+
//
|
|
98
|
+
~CoeffsMatrix();
|
|
99
|
+
//
|
|
100
|
+
size_t getSize() const;
|
|
101
|
+
//
|
|
102
|
+
bool isSymmetric() const;
|
|
103
|
+
bool isDiagonal() const;
|
|
104
|
+
//
|
|
105
|
+
bool sameShape(CoeffsVector&) const;
|
|
106
|
+
bool sameShape(CoeffsMatrix&) const;
|
|
107
|
+
static bool sameShape(CoeffsMatrix&, CoeffsMatrix&);
|
|
108
|
+
static bool sameShape(CoeffsVector&, CoeffsMatrix&);
|
|
109
|
+
static bool sameShape(CoeffsMatrix&, CoeffsVector&);
|
|
110
|
+
//
|
|
111
|
+
void sumCommMPI();
|
|
112
|
+
void sumCommMPI(Communicator&);
|
|
113
|
+
//
|
|
114
|
+
void sumMultiSimCommMPI(Communicator&);
|
|
115
|
+
//
|
|
116
|
+
size_t getMatrixIndex(const size_t, const size_t) const;
|
|
117
|
+
//
|
|
118
|
+
// clear coeffs
|
|
119
|
+
void clear();
|
|
120
|
+
void setAllValuesToZero();
|
|
121
|
+
//
|
|
122
|
+
std::vector<double> getDataAsVector() const {
|
|
123
|
+
return data;
|
|
124
|
+
}
|
|
125
|
+
// get value
|
|
126
|
+
double getValue(const size_t, const size_t) const;
|
|
127
|
+
double getValue(const std::vector<unsigned int>&, const std::vector<unsigned int>&) const;
|
|
128
|
+
// set value
|
|
129
|
+
void setValue(const size_t, const size_t, const double);
|
|
130
|
+
void setValue(const std::vector<unsigned int>&, const std::vector<unsigned int>&, const double);
|
|
131
|
+
double& operator()(const size_t, const size_t);
|
|
132
|
+
const double& operator()(const size_t, const size_t) const;
|
|
133
|
+
double& operator()(const std::vector<unsigned int>&, const std::vector<unsigned int>&);
|
|
134
|
+
const double& operator()(const std::vector<unsigned int>&, const std::vector<unsigned int>&) const;
|
|
135
|
+
//
|
|
136
|
+
friend CoeffsVector operator*(const CoeffsMatrix&, const CoeffsVector&);
|
|
137
|
+
// add to value
|
|
138
|
+
void addToValue(const size_t, const size_t, const double);
|
|
139
|
+
void addToValue(const std::vector<unsigned int>&, const std::vector<unsigned int>&, const double);
|
|
140
|
+
// scale all values
|
|
141
|
+
void scaleAllValues(const double);
|
|
142
|
+
CoeffsMatrix& operator*=(const double);
|
|
143
|
+
friend CoeffsMatrix operator*(const double, const CoeffsMatrix&);
|
|
144
|
+
friend CoeffsMatrix operator*(const CoeffsMatrix&, const double);
|
|
145
|
+
CoeffsMatrix& operator*=(const CoeffsMatrix&);
|
|
146
|
+
CoeffsMatrix operator*(const CoeffsMatrix&) const;
|
|
147
|
+
// set all values
|
|
148
|
+
void setValues(const double);
|
|
149
|
+
void setValues(const std::vector<double>&);
|
|
150
|
+
void setValues(const CoeffsMatrix&);
|
|
151
|
+
CoeffsMatrix& operator=(const double);
|
|
152
|
+
CoeffsMatrix& operator=(const std::vector<double>&);
|
|
153
|
+
// CoeffsMatrix& operator=(const CoeffsMatrix&);
|
|
154
|
+
// add to all values
|
|
155
|
+
CoeffsMatrix operator+() const;
|
|
156
|
+
CoeffsMatrix operator-() const;
|
|
157
|
+
void addToValues(const double);
|
|
158
|
+
void addToValues(const std::vector<double>&);
|
|
159
|
+
void addToValues(const CoeffsMatrix&);
|
|
160
|
+
void subtractFromValues(const double);
|
|
161
|
+
void subtractFromValues(const std::vector<double>&);
|
|
162
|
+
void subtractFromValues(const CoeffsMatrix&);
|
|
163
|
+
CoeffsMatrix& operator+=(const double);
|
|
164
|
+
friend CoeffsMatrix operator+(const double, const CoeffsMatrix&);
|
|
165
|
+
friend CoeffsMatrix operator+(const CoeffsMatrix&, const double);
|
|
166
|
+
CoeffsMatrix& operator+=(const std::vector<double>&);
|
|
167
|
+
friend CoeffsMatrix operator+(const std::vector<double>&, const CoeffsMatrix&);
|
|
168
|
+
friend CoeffsMatrix operator+(const CoeffsMatrix&, const std::vector<double>&);
|
|
169
|
+
CoeffsMatrix& operator-=(const double);
|
|
170
|
+
friend CoeffsMatrix operator-(const double, const CoeffsMatrix&);
|
|
171
|
+
friend CoeffsMatrix operator-(const CoeffsMatrix&, const double);
|
|
172
|
+
CoeffsMatrix& operator-=(const std::vector<double>&);
|
|
173
|
+
friend CoeffsMatrix operator-(const std::vector<double>&, const CoeffsMatrix&);
|
|
174
|
+
friend CoeffsMatrix operator-(const CoeffsMatrix&, const std::vector<double>&);
|
|
175
|
+
CoeffsMatrix& operator+=(const CoeffsMatrix&);
|
|
176
|
+
CoeffsMatrix operator+(const CoeffsMatrix&) const;
|
|
177
|
+
CoeffsMatrix& operator-=(const CoeffsMatrix&);
|
|
178
|
+
CoeffsMatrix operator-(const CoeffsMatrix&) const;
|
|
179
|
+
//
|
|
180
|
+
static void averageMatrices(CoeffsMatrix&, CoeffsMatrix&);
|
|
181
|
+
static void averageMatrices(const std::vector<CoeffsMatrix*>&);
|
|
182
|
+
//
|
|
183
|
+
double getMinValue() const;
|
|
184
|
+
double getMaxValue() const;
|
|
185
|
+
//
|
|
186
|
+
void randomizeValuesGaussian(int);
|
|
187
|
+
//
|
|
188
|
+
void resetAveragingCounter() {
|
|
189
|
+
averaging_counter=0;
|
|
190
|
+
}
|
|
191
|
+
void setupExponentiallyDecayingAveraging(const unsigned int averaging_exp_decay_in) {
|
|
192
|
+
averaging_exp_decay_=averaging_exp_decay_in;
|
|
193
|
+
}
|
|
194
|
+
void turnOffExponentiallyDecayingAveraging() {
|
|
195
|
+
averaging_exp_decay_=0;
|
|
196
|
+
}
|
|
197
|
+
void resetAveraging();
|
|
198
|
+
void addToAverage(const CoeffsMatrix&);
|
|
199
|
+
void addToAverage(const CoeffsMatrix&, const unsigned int);
|
|
200
|
+
//
|
|
201
|
+
// file input/output stuff
|
|
202
|
+
void writeToFile(OFile&);
|
|
203
|
+
void writeToFile(const std::string&, const bool append_file=false, Action* action_pntr=NULL);
|
|
204
|
+
private:
|
|
205
|
+
void writeDataToFile(OFile&);
|
|
206
|
+
void writeMatrixInfoToFile(OFile&);
|
|
207
|
+
void writeHeaderToFile(OFile&);
|
|
208
|
+
void writeDataDiagonalToFile(OFile&);
|
|
209
|
+
void writeDataFullToFile(OFile&);
|
|
210
|
+
public:
|
|
211
|
+
Communicator& getCommunicator() const {
|
|
212
|
+
return mycomm;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
#endif
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
2
|
+
Copyright (c) 2016-2021 The VES code team
|
|
3
|
+
(see the PEOPLE-VES file at the root of this folder for a list of names)
|
|
4
|
+
|
|
5
|
+
See http://www.ves-code.org for more information.
|
|
6
|
+
|
|
7
|
+
This file is part of VES code module.
|
|
8
|
+
|
|
9
|
+
The VES code module 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
|
+
The VES code module 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 the VES code module. If not, see <http://www.gnu.org/licenses/>.
|
|
21
|
+
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
|
|
22
|
+
#ifndef __PLUMED_ves_CoeffsVector_h
|
|
23
|
+
#define __PLUMED_ves_CoeffsVector_h
|
|
24
|
+
|
|
25
|
+
#include "CoeffsBase.h"
|
|
26
|
+
|
|
27
|
+
#include <vector>
|
|
28
|
+
#include <string>
|
|
29
|
+
#include <cmath>
|
|
30
|
+
#include <memory>
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
namespace PLMD {
|
|
34
|
+
|
|
35
|
+
class Action;
|
|
36
|
+
class Value;
|
|
37
|
+
class IFile;
|
|
38
|
+
class OFile;
|
|
39
|
+
class Communicator;
|
|
40
|
+
|
|
41
|
+
namespace ves {
|
|
42
|
+
|
|
43
|
+
class BasisFunctions;
|
|
44
|
+
class CoeffsMatrix;
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
class CoeffsVector:
|
|
48
|
+
public CoeffsBase {
|
|
49
|
+
public:
|
|
50
|
+
private:
|
|
51
|
+
std::vector<double> data;
|
|
52
|
+
//
|
|
53
|
+
unsigned int averaging_counter;
|
|
54
|
+
unsigned int averaging_exp_decay_;
|
|
55
|
+
//
|
|
56
|
+
Communicator& mycomm;
|
|
57
|
+
//
|
|
58
|
+
CoeffsVector& operator=(const CoeffsVector&);
|
|
59
|
+
public:
|
|
60
|
+
explicit CoeffsVector(
|
|
61
|
+
const std::string&,
|
|
62
|
+
const std::vector<std::string>&,
|
|
63
|
+
const std::vector<unsigned int>&,
|
|
64
|
+
Communicator&,
|
|
65
|
+
const bool use_counter=false);
|
|
66
|
+
//
|
|
67
|
+
explicit CoeffsVector(
|
|
68
|
+
const std::string&,
|
|
69
|
+
const std::vector<Value*>&,
|
|
70
|
+
std::vector<BasisFunctions*>&,
|
|
71
|
+
Communicator&,
|
|
72
|
+
const bool use_counter=false);
|
|
73
|
+
//
|
|
74
|
+
explicit CoeffsVector(
|
|
75
|
+
const std::string&,
|
|
76
|
+
std::vector<std::vector<Value*> >&,
|
|
77
|
+
std::vector<std::vector<BasisFunctions*> >&,
|
|
78
|
+
Communicator&,
|
|
79
|
+
const bool use_counter=false,
|
|
80
|
+
const std::string& multicoeffs_label="bias");
|
|
81
|
+
//
|
|
82
|
+
explicit CoeffsVector(
|
|
83
|
+
const std::string&,
|
|
84
|
+
CoeffsMatrix*,
|
|
85
|
+
Communicator&);
|
|
86
|
+
//
|
|
87
|
+
~CoeffsVector();
|
|
88
|
+
//
|
|
89
|
+
size_t getSize() const {
|
|
90
|
+
return numberOfCoeffs();
|
|
91
|
+
}
|
|
92
|
+
// clear coeffs
|
|
93
|
+
void clear();
|
|
94
|
+
void setAllValuesToZero();
|
|
95
|
+
//
|
|
96
|
+
std::vector<double> getDataAsVector() const {
|
|
97
|
+
return data;
|
|
98
|
+
}
|
|
99
|
+
//
|
|
100
|
+
bool sameShape(CoeffsVector&) const;
|
|
101
|
+
bool sameShape(CoeffsMatrix&) const;
|
|
102
|
+
static bool sameShape(CoeffsVector&, CoeffsVector&);
|
|
103
|
+
//
|
|
104
|
+
void resizeCoeffs(const std::vector<unsigned int>&);
|
|
105
|
+
void resizeCoeffs(std::vector<BasisFunctions*>&);
|
|
106
|
+
//
|
|
107
|
+
void sumCommMPI();
|
|
108
|
+
void sumCommMPI(Communicator& cc);
|
|
109
|
+
//
|
|
110
|
+
void sumMultiSimCommMPI(Communicator&);
|
|
111
|
+
// get value
|
|
112
|
+
double getValue(const size_t) const;
|
|
113
|
+
double getValue(const std::vector<unsigned int>&) const;
|
|
114
|
+
double& operator[](const size_t index);
|
|
115
|
+
const double& operator[](const size_t index) const;
|
|
116
|
+
double& operator[](const std::vector<unsigned int>&);
|
|
117
|
+
const double& operator[](const std::vector<unsigned int>&) const;
|
|
118
|
+
double& operator()(const size_t index);
|
|
119
|
+
const double& operator()(const size_t index) const;
|
|
120
|
+
double& operator()(const std::vector<unsigned int>&);
|
|
121
|
+
const double& operator()(const std::vector<unsigned int>&) const;
|
|
122
|
+
// set value
|
|
123
|
+
void setValue(const size_t, const double);
|
|
124
|
+
void setValue(const std::vector<unsigned int>&, const double);
|
|
125
|
+
// add to value
|
|
126
|
+
void addToValue(const size_t, const double);
|
|
127
|
+
void addToValue(const std::vector<unsigned int>&, const double);
|
|
128
|
+
// scale all values
|
|
129
|
+
void scaleAllValues(const double);
|
|
130
|
+
void multiplyWithValues(const std::vector<double>&);
|
|
131
|
+
CoeffsVector& operator*=(const double);
|
|
132
|
+
friend CoeffsVector operator*(const double, const CoeffsVector&);
|
|
133
|
+
friend CoeffsVector operator*(const CoeffsVector&, const double);
|
|
134
|
+
CoeffsVector& operator*=(const std::vector<double>&);
|
|
135
|
+
friend CoeffsVector operator*(const std::vector<double>&, const CoeffsVector&);
|
|
136
|
+
friend CoeffsVector operator*(const CoeffsVector&, const std::vector<double>&);
|
|
137
|
+
CoeffsVector& operator*=(const CoeffsVector&);
|
|
138
|
+
CoeffsVector operator*(const CoeffsVector&) const;
|
|
139
|
+
// set all values
|
|
140
|
+
void setValues(const double);
|
|
141
|
+
void setValues(const std::vector<double>&);
|
|
142
|
+
void setValues(const CoeffsVector&);
|
|
143
|
+
CoeffsVector& operator=(const double);
|
|
144
|
+
CoeffsVector& operator=(const std::vector<double>&);
|
|
145
|
+
// CoeffsVector& operator=(const CoeffsVector&);
|
|
146
|
+
// add to all values
|
|
147
|
+
CoeffsVector operator+() const;
|
|
148
|
+
CoeffsVector operator-() const;
|
|
149
|
+
void addToValues(const double);
|
|
150
|
+
void addToValues(const std::vector<double>&);
|
|
151
|
+
void addToValues(const CoeffsVector&);
|
|
152
|
+
void subtractFromValues(const double);
|
|
153
|
+
void subtractFromValues(const std::vector<double>&);
|
|
154
|
+
void subtractFromValues(const CoeffsVector&);
|
|
155
|
+
CoeffsVector& operator+=(const double);
|
|
156
|
+
friend CoeffsVector operator+(const double, const CoeffsVector&);
|
|
157
|
+
friend CoeffsVector operator+(const CoeffsVector&, const double);
|
|
158
|
+
CoeffsVector& operator+=(const std::vector<double>&);
|
|
159
|
+
friend CoeffsVector operator+(const std::vector<double>&, const CoeffsVector&);
|
|
160
|
+
friend CoeffsVector operator+(const CoeffsVector&, const std::vector<double>&);
|
|
161
|
+
CoeffsVector& operator-=(const double);
|
|
162
|
+
friend CoeffsVector operator-(const double, const CoeffsVector&);
|
|
163
|
+
friend CoeffsVector operator-(const CoeffsVector&, const double);
|
|
164
|
+
CoeffsVector& operator-=(const std::vector<double>&);
|
|
165
|
+
friend CoeffsVector operator-(const std::vector<double>&, const CoeffsVector&);
|
|
166
|
+
friend CoeffsVector operator-(const CoeffsVector&, const std::vector<double>&);
|
|
167
|
+
CoeffsVector& operator+=(const CoeffsVector&);
|
|
168
|
+
CoeffsVector operator+(const CoeffsVector&) const;
|
|
169
|
+
CoeffsVector& operator-=(const CoeffsVector&);
|
|
170
|
+
CoeffsVector operator-(const CoeffsVector&) const;
|
|
171
|
+
//
|
|
172
|
+
void setValuesFromDifferentShape(const CoeffsVector&);
|
|
173
|
+
//
|
|
174
|
+
static void averageVectors(CoeffsVector&, CoeffsVector&);
|
|
175
|
+
static void averageVectors(const std::vector<CoeffsVector*>&);
|
|
176
|
+
//
|
|
177
|
+
double getMinValue() const;
|
|
178
|
+
double getMinValue(size_t&) const;
|
|
179
|
+
double getMinAbsValue() const;
|
|
180
|
+
double getMinAbsValue(size_t&) const;
|
|
181
|
+
//
|
|
182
|
+
double getMaxValue() const;
|
|
183
|
+
double getMaxValue(size_t&) const;
|
|
184
|
+
double getMaxAbsValue() const;
|
|
185
|
+
double getMaxAbsValue(size_t&) const;
|
|
186
|
+
//
|
|
187
|
+
double getNorm() const;
|
|
188
|
+
double getL1Norm() const;
|
|
189
|
+
double getL2Norm() const;
|
|
190
|
+
double getLpNorm(const double) const;
|
|
191
|
+
double getRMS() const;
|
|
192
|
+
//
|
|
193
|
+
void normalizeCoeffs();
|
|
194
|
+
// Random values
|
|
195
|
+
void randomizeValuesGaussian(int);
|
|
196
|
+
//
|
|
197
|
+
void resetAveragingCounter() {
|
|
198
|
+
averaging_counter=0;
|
|
199
|
+
}
|
|
200
|
+
void setupExponentiallyDecayingAveraging(const unsigned int averaging_exp_decay_in) {
|
|
201
|
+
averaging_exp_decay_=averaging_exp_decay_in;
|
|
202
|
+
}
|
|
203
|
+
void turnOffExponentiallyDecayingAveraging() {
|
|
204
|
+
averaging_exp_decay_=0;
|
|
205
|
+
}
|
|
206
|
+
void resetAveraging();
|
|
207
|
+
void addToAverage(const CoeffsVector&);
|
|
208
|
+
//
|
|
209
|
+
size_t countValues(const double) const;
|
|
210
|
+
|
|
211
|
+
// file input/output stuff
|
|
212
|
+
void writeToFile(const std::string&, const bool print_description=false, const bool append_file=false, Action* action_pntr=NULL);
|
|
213
|
+
void writeToFile(OFile&, const bool print_description=false);
|
|
214
|
+
void writeToFile(OFile& ofile, CoeffsVector*, const bool print_coeffs_descriptions=false);
|
|
215
|
+
static void writeToFile(const std::string&, const std::vector<CoeffsVector*>&, const bool print_description=false, const bool append_file=false, Action* action_pntr=NULL);
|
|
216
|
+
static void writeToFile(OFile&, const std::vector<CoeffsVector*>&, const bool print_description=false);
|
|
217
|
+
private:
|
|
218
|
+
void writeHeaderToFile(OFile&) const;
|
|
219
|
+
static void writeDataToFile(OFile&, const std::vector<CoeffsVector*>&, const bool print_description=false);
|
|
220
|
+
public:
|
|
221
|
+
size_t readFromFile(IFile&, const bool ignore_missing_coeffs=false, const bool ignore_header=false);
|
|
222
|
+
size_t readFromFile(const std::string&, const bool ignore_missing_coeffs=false, const bool ignore_header=false);
|
|
223
|
+
size_t readOneSetFromFile(IFile& ifile, const bool ignore_header=false);
|
|
224
|
+
private:
|
|
225
|
+
void readHeaderFromFile(IFile&, const bool ignore_coeffs_info=false);
|
|
226
|
+
size_t readDataFromFile(IFile&, const bool ignore_missing_coeffs=false);
|
|
227
|
+
public:
|
|
228
|
+
Communicator& getCommunicator() const {
|
|
229
|
+
return mycomm;
|
|
230
|
+
}
|
|
231
|
+
};
|
|
232
|
+
|
|
233
|
+
|
|
234
|
+
inline
|
|
235
|
+
double CoeffsVector::getValue(const size_t index) const {
|
|
236
|
+
return data[index];
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
inline
|
|
241
|
+
double CoeffsVector::getValue(const std::vector<unsigned int>& indices) const {
|
|
242
|
+
return data[getIndex(indices)];
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
|
|
251
|
+
#endif
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
2
|
+
Copyright (c) 2016-2021 The VES code team
|
|
3
|
+
(see the PEOPLE-VES file at the root of this folder for a list of names)
|
|
4
|
+
|
|
5
|
+
See http://www.ves-code.org for more information.
|
|
6
|
+
|
|
7
|
+
This file is part of VES code module.
|
|
8
|
+
|
|
9
|
+
The VES code module 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
|
+
The VES code module 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 the VES code module. If not, see <http://www.gnu.org/licenses/>.
|
|
21
|
+
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
|
|
22
|
+
#ifndef __PLUMED_ves_FermiSwitchingFunction_h
|
|
23
|
+
#define __PLUMED_ves_FermiSwitchingFunction_h
|
|
24
|
+
|
|
25
|
+
#include <string>
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
namespace PLMD {
|
|
29
|
+
|
|
30
|
+
class Keywords;
|
|
31
|
+
|
|
32
|
+
namespace ves {
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
/// \ingroup TOOLBOX
|
|
36
|
+
/// Small class to compute fermi switching function.
|
|
37
|
+
/// kept similar to the original SwitchingFunction class.
|
|
38
|
+
class FermiSwitchingFunction {
|
|
39
|
+
/// This is to check that switching function has been initialized
|
|
40
|
+
bool init;
|
|
41
|
+
/// Type of function
|
|
42
|
+
enum {fermi} type;
|
|
43
|
+
/// Parameters for fermi function
|
|
44
|
+
double r0_;
|
|
45
|
+
double invr0_;
|
|
46
|
+
double fermi_lambda_;
|
|
47
|
+
double fermi_exp_max_;
|
|
48
|
+
FermiSwitchingFunction& operator=(const FermiSwitchingFunction&);
|
|
49
|
+
public:
|
|
50
|
+
static void registerKeywords( Keywords& keys );
|
|
51
|
+
/// Constructor
|
|
52
|
+
FermiSwitchingFunction();
|
|
53
|
+
/// Destructor
|
|
54
|
+
~FermiSwitchingFunction();
|
|
55
|
+
/// Copy constructor
|
|
56
|
+
FermiSwitchingFunction(const FermiSwitchingFunction&);
|
|
57
|
+
//
|
|
58
|
+
void set(const double, const double, const double fermi_rdist_max=-1.0);
|
|
59
|
+
//
|
|
60
|
+
void set(const std::string& definition, std::string& errormsg);
|
|
61
|
+
//
|
|
62
|
+
std::string description() const ;
|
|
63
|
+
// Compute the switching function.
|
|
64
|
+
// Returns s(x). df will be set to the value of the derivative
|
|
65
|
+
// of the switching function _divided_by_x
|
|
66
|
+
double calculate(double x,double&df)const;
|
|
67
|
+
//
|
|
68
|
+
double get_r0() const;
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
#endif
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
2
|
+
Copyright (c) 2016-2021 The VES code team
|
|
3
|
+
(see the PEOPLE-VES file at the root of this folder for a list of names)
|
|
4
|
+
|
|
5
|
+
See http://www.ves-code.org for more information.
|
|
6
|
+
|
|
7
|
+
This file is part of VES code module.
|
|
8
|
+
|
|
9
|
+
The VES code module 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
|
+
The VES code module 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 the VES code module. If not, see <http://www.gnu.org/licenses/>.
|
|
21
|
+
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
|
|
22
|
+
#ifndef __PLUMED_ves_GridIntegrationWeights_h
|
|
23
|
+
#define __PLUMED_ves_GridIntegrationWeights_h
|
|
24
|
+
|
|
25
|
+
#include <vector>
|
|
26
|
+
#include <string>
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
namespace PLMD {
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
class Grid;
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
namespace ves {
|
|
36
|
+
|
|
37
|
+
class GridIntegrationWeights {
|
|
38
|
+
private:
|
|
39
|
+
static std::vector<double> getOneDimensionalTrapezoidalWeights(const unsigned int, const double, const bool periodic=false);
|
|
40
|
+
public:
|
|
41
|
+
static std::vector<double> getIntegrationWeights(const Grid*, const std::string& fname_weights_grid="", const std::string& weights_type="trapezoidal");
|
|
42
|
+
static void getOneDimensionalIntegrationPointsAndWeights(std::vector<double>&, std::vector<double>&, const unsigned int, const double, const double, const std::string& weights_type="trapezoidal");
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
#endif
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/* +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
2
|
+
Copyright (c) 2016-2021 The VES code team
|
|
3
|
+
(see the PEOPLE-VES file at the root of this folder for a list of names)
|
|
4
|
+
|
|
5
|
+
See http://www.ves-code.org for more information.
|
|
6
|
+
|
|
7
|
+
This file is part of VES code module.
|
|
8
|
+
|
|
9
|
+
The VES code module 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
|
+
The VES code module 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 the VES code module. If not, see <http://www.gnu.org/licenses/>.
|
|
21
|
+
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ */
|
|
22
|
+
#ifndef __PLUMED_ves_GridLinearInterpolation_h
|
|
23
|
+
#define __PLUMED_ves_GridLinearInterpolation_h
|
|
24
|
+
|
|
25
|
+
#include <vector>
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
namespace PLMD {
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class GridBase;
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
namespace ves {
|
|
35
|
+
|
|
36
|
+
class GridLinearInterpolation {
|
|
37
|
+
private:
|
|
38
|
+
static double getGridValueWithLinearInterpolation_1D(GridBase* grid_pntr, const std::vector<double>& arg);
|
|
39
|
+
static double getGridValueWithLinearInterpolation_2D(GridBase* grid_pntr, const std::vector<double>& arg);
|
|
40
|
+
static double getGridValueWithLinearInterpolation_ND(GridBase* grid_pntr, const std::vector<double>& arg);
|
|
41
|
+
static double getGridValueAndDerivativesWithLinearInterpolation_1D(GridBase* grid_pntr, const std::vector<double>& arg, std::vector<double>& der);
|
|
42
|
+
static double getGridValueAndDerivativesWithLinearInterpolation_ND(GridBase* grid_pntr, const std::vector<double>& arg, std::vector<double>& der);
|
|
43
|
+
static double linearInterpolation(const double x, const double x0, const double x1, const double y0, const double y1);
|
|
44
|
+
static double multiLinearInterpolation(const std::vector<double>& x, const std::vector<std::vector<double>>& points, std::vector<double>& values, const double dim);
|
|
45
|
+
public:
|
|
46
|
+
static double getGridValueWithLinearInterpolation(GridBase* grid_pntr, const std::vector<double>& arg);
|
|
47
|
+
static double getGridValueAndDerivativesWithLinearInterpolation(GridBase* grid_pntr, const std::vector<double>& arg, std::vector<double>& der);
|
|
48
|
+
static std::vector<std::vector<unsigned>> getAdjacentIndices(GridBase* grid_pntr, const std::vector<double>& arg);
|
|
49
|
+
static std::vector<std::vector<unsigned>> getAdjacentPoints(GridBase* grid_pntr, const std::vector<double>& arg);
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
inline
|
|
54
|
+
double GridLinearInterpolation::linearInterpolation(const double x, const double x0, const double x1, const double y0, const double y1) {
|
|
55
|
+
// https://en.wikipedia.org/wiki/Linear_interpolation
|
|
56
|
+
if(x1!=x0) {
|
|
57
|
+
return y0 + (x-x0) * ((y1-y0)/(x1-x0));
|
|
58
|
+
} else {
|
|
59
|
+
return y0;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
inline
|
|
65
|
+
double GridLinearInterpolation::multiLinearInterpolation(const std::vector<double>& x, const std::vector<std::vector<double>>& points, std::vector<double>& values, const double dim) {
|
|
66
|
+
for (unsigned direction = 0; direction < dim; ++direction) {
|
|
67
|
+
unsigned shift = 1<<(direction+1); // shift by 2, then 4, then 8 etc
|
|
68
|
+
for (unsigned i = 0; i < points.size(); i += shift) {
|
|
69
|
+
// replace every second value with interpolated ones
|
|
70
|
+
values[i] = linearInterpolation(
|
|
71
|
+
x[direction], points[i][direction], points[i+shift/2][direction], values[i], values[i+shift/2]);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return values[0];
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
#endif
|