hillclimber 0.1.6__cp313-cp313-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 +41 -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 +416 -0
- hillclimber/nodes.py +6 -0
- hillclimber/opes.py +359 -0
- hillclimber/pycv.py +362 -0
- hillclimber/selectors.py +230 -0
- hillclimber/virtual_atoms.py +341 -0
- hillclimber-0.1.6.dist-info/METADATA +325 -0
- hillclimber-0.1.6.dist-info/RECORD +468 -0
- hillclimber-0.1.6.dist-info/WHEEL +6 -0
- hillclimber-0.1.6.dist-info/entry_points.txt +8 -0
- hillclimber-0.1.6.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
- plumedCommunications.cpython-311-darwin.so +0 -0
- plumedCommunications.cpython-312-darwin.so +0 -0
- plumedCommunications.cpython-313-darwin.so +0 -0
- plumedCommunications.pyi +431 -0
|
@@ -0,0 +1,535 @@
|
|
|
1
|
+
!
|
|
2
|
+
! Copyright (C) 2001-2022 Quantum ESPRESSO group
|
|
3
|
+
! This file is distributed under the terms of the
|
|
4
|
+
! GNU General Public License. See the file `License'
|
|
5
|
+
! in the root directory of the present distribution,
|
|
6
|
+
! or http://www.gnu.org/copyleft/gpl.txt .
|
|
7
|
+
!
|
|
8
|
+
!----------------------------------------------------------------------------
|
|
9
|
+
SUBROUTINE forces()
|
|
10
|
+
!----------------------------------------------------------------------------
|
|
11
|
+
!! This routine is a driver routine which computes the forces
|
|
12
|
+
!! acting on the atoms. The complete expression of the forces
|
|
13
|
+
!! contains many parts which are computed by different routines:
|
|
14
|
+
!
|
|
15
|
+
!! - force_lc: local potential contribution
|
|
16
|
+
!! - force_us: non-local potential contribution
|
|
17
|
+
!! - (esm_)force_ew: (ESM) electrostatic ewald term
|
|
18
|
+
!! - force_cc: nonlinear core correction contribution
|
|
19
|
+
!! - force_corr: correction term for incomplete self-consistency
|
|
20
|
+
!! - force_hub: contribution due to the Hubbard term;
|
|
21
|
+
!! - force_london: Grimme DFT+D dispersion forces
|
|
22
|
+
!! - force_d3: Grimme-D3 (DFT-D3) dispersion forces
|
|
23
|
+
!! - force_xdm: XDM dispersion forces
|
|
24
|
+
!! - more terms from external electric fields, Martyna-Tuckerman, etc.
|
|
25
|
+
!! - force_sol: contribution due to 3D-RISM
|
|
26
|
+
!
|
|
27
|
+
USE kinds, ONLY : DP
|
|
28
|
+
USE io_global, ONLY : stdout
|
|
29
|
+
USE cell_base, ONLY : at, bg, alat, omega
|
|
30
|
+
USE ions_base, ONLY : nat, ntyp => nsp,nsp, ityp, tau, zv, amass, extfor, atm
|
|
31
|
+
USE gvect, ONLY : ngm, gstart, ngl, igtongl, g, gg, gcutm
|
|
32
|
+
USE lsda_mod, ONLY : nspin
|
|
33
|
+
USE symme, ONLY : symvector
|
|
34
|
+
USE vlocal, ONLY : strf, vloc
|
|
35
|
+
USE force_mod, ONLY : force, sumfor
|
|
36
|
+
USE scf, ONLY : rho
|
|
37
|
+
USE ions_base, ONLY : if_pos
|
|
38
|
+
USE ldaU, ONLY : lda_plus_u, Hubbard_projectors
|
|
39
|
+
USE extfield, ONLY : tefield, forcefield, gate, forcegate, relaxz
|
|
40
|
+
USE control_flags, ONLY : gamma_only, remove_rigid_rot, textfor, &
|
|
41
|
+
iverbosity, llondon, ldftd3, lxdm, ts_vdw, &
|
|
42
|
+
mbd_vdw, lforce => tprnfor, istep
|
|
43
|
+
USE bp, ONLY : lelfield, gdir, l3dstring, efield_cart, &
|
|
44
|
+
efield_cry,efield
|
|
45
|
+
USE uspp, ONLY : okvan
|
|
46
|
+
USE martyna_tuckerman, ONLY : do_comp_mt, wg_corr_force
|
|
47
|
+
USE london_module, ONLY : force_london
|
|
48
|
+
USE dftd3_api, ONLY : get_atomic_number
|
|
49
|
+
USE dftd3_qe, ONLY : dftd3_pbc_gdisp, dftd3
|
|
50
|
+
|
|
51
|
+
USE xdm_module, ONLY : force_xdm
|
|
52
|
+
USE tsvdw_module, ONLY : FtsvdW
|
|
53
|
+
USE libmbd_interface, ONLY : FmbdvdW
|
|
54
|
+
USE esm, ONLY : do_comp_esm, esm_bc, esm_force_ew
|
|
55
|
+
USE qmmm, ONLY : qmmm_mode
|
|
56
|
+
USE rism_module, ONLY : lrism, force_rism
|
|
57
|
+
USE extffield, ONLY : apply_extffield_PW
|
|
58
|
+
USE input_parameters, ONLY : nextffield
|
|
59
|
+
!
|
|
60
|
+
#if defined(__CUDA)
|
|
61
|
+
USE device_fbuff_m, ONLY : dev_buf
|
|
62
|
+
#endif
|
|
63
|
+
!
|
|
64
|
+
#if defined (__ENVIRON)
|
|
65
|
+
USE plugin_flags, ONLY : use_environ
|
|
66
|
+
USE environ_base_module, ONLY : calc_environ_force
|
|
67
|
+
USE environ_pw_module, ONLY : is_ms_gcs, run_ms_gcs
|
|
68
|
+
#endif
|
|
69
|
+
#if defined (__OSCDFT)
|
|
70
|
+
USE plugin_flags, ONLY : use_oscdft
|
|
71
|
+
USE oscdft_base, ONLY : oscdft_ctx
|
|
72
|
+
USE oscdft_forces_subs, ONLY : oscdft_apply_forces, oscdft_print_forces
|
|
73
|
+
#endif
|
|
74
|
+
#if defined(__LEGACY_PLUGINS)
|
|
75
|
+
USE plugin_flags, ONLY : plugin_ext_forces, plugin_int_forces
|
|
76
|
+
#endif
|
|
77
|
+
!
|
|
78
|
+
IMPLICIT NONE
|
|
79
|
+
!
|
|
80
|
+
REAL(DP), ALLOCATABLE :: forcenl(:,:), &
|
|
81
|
+
forcelc(:,:), &
|
|
82
|
+
forcecc(:,:), &
|
|
83
|
+
forceion(:,:), &
|
|
84
|
+
force_disp(:,:), &
|
|
85
|
+
force_d3(:,:), &
|
|
86
|
+
force_disp_xdm(:,:), &
|
|
87
|
+
force_mt(:,:), &
|
|
88
|
+
forcescc(:,:), &
|
|
89
|
+
forces_bp_efield(:,:),&
|
|
90
|
+
forceh(:,:), &
|
|
91
|
+
force_sol(:,:)
|
|
92
|
+
! nonlocal, local, core-correction, ewald, scf correction terms, and hubbard
|
|
93
|
+
!
|
|
94
|
+
! aux is used to store a possible additional density
|
|
95
|
+
! now defined in real space
|
|
96
|
+
!
|
|
97
|
+
COMPLEX(DP), ALLOCATABLE :: auxg(:), auxr(:)
|
|
98
|
+
!
|
|
99
|
+
REAL(DP) :: sumscf, sum_mm
|
|
100
|
+
REAL(DP), PARAMETER :: eps = 1.e-12_dp
|
|
101
|
+
INTEGER :: ipol, na
|
|
102
|
+
! counter on polarization
|
|
103
|
+
! counter on atoms
|
|
104
|
+
!
|
|
105
|
+
REAL(DP) :: latvecs(3,3)
|
|
106
|
+
INTEGER :: atnum(1:nat)
|
|
107
|
+
REAL(DP) :: stress_dftd3(3,3)
|
|
108
|
+
!
|
|
109
|
+
INTEGER :: ierr
|
|
110
|
+
!
|
|
111
|
+
force(:,:) = 0.D0
|
|
112
|
+
!
|
|
113
|
+
! Early return if all forces to be set to zero
|
|
114
|
+
!
|
|
115
|
+
IF ( ALL( if_pos == 0 ) ) RETURN
|
|
116
|
+
!
|
|
117
|
+
CALL start_clock( 'forces' )
|
|
118
|
+
#if defined(__CUDA)
|
|
119
|
+
! Cleanup scratch space used in previous SCF iterations.
|
|
120
|
+
! This will reduce memory footprint.
|
|
121
|
+
CALL dev_buf%reinit(ierr)
|
|
122
|
+
IF (ierr .ne. 0) CALL infomsg('forces', 'Cannot reset GPU buffers! Some buffers still locked.')
|
|
123
|
+
#endif
|
|
124
|
+
!
|
|
125
|
+
!
|
|
126
|
+
ALLOCATE( forcenl(3,nat), forcelc(3,nat), forcecc(3,nat), &
|
|
127
|
+
forceh(3,nat), forceion(3,nat), forcescc(3,nat) )
|
|
128
|
+
!
|
|
129
|
+
forcescc(:,:) = 0.D0
|
|
130
|
+
forceh(:,:) = 0.D0
|
|
131
|
+
!
|
|
132
|
+
! ... The nonlocal contribution is computed here
|
|
133
|
+
!
|
|
134
|
+
call start_clock('frc_us')
|
|
135
|
+
CALL force_us( forcenl )
|
|
136
|
+
call stop_clock('frc_us')
|
|
137
|
+
!
|
|
138
|
+
! ... The local contribution
|
|
139
|
+
!
|
|
140
|
+
call start_clock('frc_lc')
|
|
141
|
+
CALL force_lc( nat, tau, ityp, ntyp, alat, omega, ngm, ngl, igtongl, &
|
|
142
|
+
g, rho%of_r(:,1), gstart, gamma_only, vloc, forcelc )
|
|
143
|
+
call stop_clock('frc_lc')
|
|
144
|
+
!
|
|
145
|
+
! ... The NLCC contribution
|
|
146
|
+
!
|
|
147
|
+
call start_clock('frc_cc')
|
|
148
|
+
CALL force_cc( forcecc )
|
|
149
|
+
call stop_clock('frc_cc')
|
|
150
|
+
|
|
151
|
+
! ... The Hubbard contribution
|
|
152
|
+
! (included by force_us if using beta as local projectors)
|
|
153
|
+
!
|
|
154
|
+
IF ( lda_plus_u .AND. Hubbard_projectors.NE.'pseudo' ) CALL force_hub( forceh )
|
|
155
|
+
!
|
|
156
|
+
! ... The ionic contribution is computed here
|
|
157
|
+
!
|
|
158
|
+
IF( do_comp_esm ) THEN
|
|
159
|
+
CALL esm_force_ew( forceion )
|
|
160
|
+
ELSE
|
|
161
|
+
CALL force_ew( alat, nat, ntyp, ityp, zv, at, bg, tau, omega, g, &
|
|
162
|
+
gg, ngm, gstart, gamma_only, gcutm, strf, forceion )
|
|
163
|
+
ENDIF
|
|
164
|
+
!
|
|
165
|
+
! ... the semi-empirical dispersion correction
|
|
166
|
+
!
|
|
167
|
+
IF ( llondon ) THEN
|
|
168
|
+
!
|
|
169
|
+
ALLOCATE( force_disp(3,nat) )
|
|
170
|
+
force_disp(:,:) = 0.0_DP
|
|
171
|
+
force_disp = force_london( alat , nat , ityp , at , bg , tau )
|
|
172
|
+
!
|
|
173
|
+
ENDIF
|
|
174
|
+
!
|
|
175
|
+
! ... The Grimme-D3 dispersion correction
|
|
176
|
+
!
|
|
177
|
+
IF ( ldftd3 ) THEN
|
|
178
|
+
!
|
|
179
|
+
CALL start_clock('force_dftd3')
|
|
180
|
+
ALLOCATE( force_d3(3, nat) )
|
|
181
|
+
force_d3(:,:) = 0.0_DP
|
|
182
|
+
latvecs(:,:) = at(:,:)*alat
|
|
183
|
+
tau(:,:) = tau(:,:)*alat
|
|
184
|
+
atnum(:) = get_atomic_number(atm(ityp(:)))
|
|
185
|
+
CALL dftd3_pbc_gdisp( dftd3, tau, atnum, latvecs, &
|
|
186
|
+
force_d3, stress_dftd3 )
|
|
187
|
+
force_d3 = -2.d0*force_d3
|
|
188
|
+
tau(:,:) = tau(:,:)/alat
|
|
189
|
+
CALL stop_clock('force_dftd3')
|
|
190
|
+
ENDIF
|
|
191
|
+
!
|
|
192
|
+
!
|
|
193
|
+
IF (lxdm) THEN
|
|
194
|
+
ALLOCATE( force_disp_xdm(3,nat) )
|
|
195
|
+
force_disp_xdm = 0._dp
|
|
196
|
+
force_disp_xdm = force_xdm(nat)
|
|
197
|
+
ENDIF
|
|
198
|
+
!
|
|
199
|
+
! ... The SCF contribution
|
|
200
|
+
!
|
|
201
|
+
call start_clock('frc_scc')
|
|
202
|
+
#if defined(__CUDA)
|
|
203
|
+
! Cleanup scratch space again, next subroutines uses a lot of memory.
|
|
204
|
+
! In an ideal world this should be done only if really needed (TODO).
|
|
205
|
+
CALL dev_buf%reinit(ierr)
|
|
206
|
+
IF (ierr .ne. 0) CALL errore('forces', 'Cannot reset GPU buffers! Buffers still locked: ', abs(ierr))
|
|
207
|
+
#endif
|
|
208
|
+
!
|
|
209
|
+
CALL force_corr( forcescc )
|
|
210
|
+
call stop_clock('frc_scc')
|
|
211
|
+
!
|
|
212
|
+
IF (do_comp_mt) THEN
|
|
213
|
+
!
|
|
214
|
+
ALLOCATE( force_mt(3,nat) )
|
|
215
|
+
CALL wg_corr_force( .TRUE., omega, nat, ntyp, ityp, ngm, g, tau, zv, strf, &
|
|
216
|
+
rho%of_g(:,1), force_mt )
|
|
217
|
+
ENDIF
|
|
218
|
+
!
|
|
219
|
+
! ... The solvation contribution (3D-RISM)
|
|
220
|
+
!
|
|
221
|
+
IF (lrism) THEN
|
|
222
|
+
ALLOCATE ( force_sol ( 3 , nat ) )
|
|
223
|
+
CALL force_rism( force_sol )
|
|
224
|
+
END IF
|
|
225
|
+
!
|
|
226
|
+
! ... call void routine for user define/ plugin patches on internal forces
|
|
227
|
+
!
|
|
228
|
+
#if defined(__LEGACY_PLUGINS)
|
|
229
|
+
CALL plugin_int_forces()
|
|
230
|
+
#endif
|
|
231
|
+
#if defined (__ENVIRON)
|
|
232
|
+
IF (use_environ) CALL calc_environ_force(force)
|
|
233
|
+
#endif
|
|
234
|
+
#if defined (__OSCDFT)
|
|
235
|
+
IF (use_oscdft) CALL oscdft_apply_forces(oscdft_ctx)
|
|
236
|
+
#endif
|
|
237
|
+
!
|
|
238
|
+
! ... Berry's phase electric field terms
|
|
239
|
+
!
|
|
240
|
+
IF (lelfield) THEN
|
|
241
|
+
ALLOCATE( forces_bp_efield(3,nat) )
|
|
242
|
+
forces_bp_efield(:,:) = 0.d0
|
|
243
|
+
IF (.NOT.l3dstring) THEN
|
|
244
|
+
IF (okvan) CALL forces_us_efield( forces_bp_efield, gdir, efield )
|
|
245
|
+
CALL forces_ion_efield( forces_bp_efield, gdir, efield )
|
|
246
|
+
ELSE
|
|
247
|
+
IF (okvan) THEN
|
|
248
|
+
DO ipol = 1, 3
|
|
249
|
+
CALL forces_us_efield( forces_bp_efield, ipol, efield_cry(ipol) )
|
|
250
|
+
ENDDO
|
|
251
|
+
ENDIF
|
|
252
|
+
DO ipol = 1, 3
|
|
253
|
+
CALL forces_ion_efield( forces_bp_efield, ipol, efield_cart(ipol) )
|
|
254
|
+
ENDDO
|
|
255
|
+
ENDIF
|
|
256
|
+
ENDIF
|
|
257
|
+
!
|
|
258
|
+
! ... here we sum all the contributions and compute the total force acting
|
|
259
|
+
! ... on the crystal
|
|
260
|
+
!
|
|
261
|
+
DO ipol = 1, 3
|
|
262
|
+
!
|
|
263
|
+
sumfor = 0.D0
|
|
264
|
+
!
|
|
265
|
+
DO na = 1, nat
|
|
266
|
+
!
|
|
267
|
+
force(ipol,na) = force(ipol,na) + &
|
|
268
|
+
forcenl(ipol,na) + &
|
|
269
|
+
forceion(ipol,na) + &
|
|
270
|
+
forcelc(ipol,na) + &
|
|
271
|
+
forcecc(ipol,na) + &
|
|
272
|
+
forceh(ipol,na) + &
|
|
273
|
+
forcescc(ipol,na)
|
|
274
|
+
!
|
|
275
|
+
IF ( llondon ) force(ipol,na) = force(ipol,na) + force_disp(ipol,na)
|
|
276
|
+
IF ( ldftd3 ) force(ipol,na) = force(ipol,na) + force_d3(ipol,na)
|
|
277
|
+
IF ( lxdm ) force(ipol,na) = force(ipol,na) + force_disp_xdm(ipol,na)
|
|
278
|
+
! factor 2 converts from Ha to Ry a.u.
|
|
279
|
+
! the IF condition is to avoid double counting
|
|
280
|
+
IF ( mbd_vdw ) THEN
|
|
281
|
+
force(ipol, na) = force(ipol, na) + 2.0_dp*FmbdvdW(ipol, na)
|
|
282
|
+
ELSE IF ( ts_vdw ) THEN
|
|
283
|
+
force(ipol, na) = force(ipol, na) + 2.0_dp*FtsvdW(ipol, na)
|
|
284
|
+
ENDIF
|
|
285
|
+
IF ( tefield ) force(ipol,na) = force(ipol,na) + forcefield(ipol,na)
|
|
286
|
+
IF ( gate ) force(ipol,na) = force(ipol,na) + forcegate(ipol,na) ! TB
|
|
287
|
+
IF (lelfield) force(ipol,na) = force(ipol,na) + forces_bp_efield(ipol,na)
|
|
288
|
+
IF (do_comp_mt) force(ipol,na) = force(ipol,na) + force_mt(ipol,na)
|
|
289
|
+
IF ( lrism ) force(ipol,na) = force(ipol,na) + force_sol(ipol,na)
|
|
290
|
+
!
|
|
291
|
+
sumfor = sumfor + force(ipol,na)
|
|
292
|
+
!
|
|
293
|
+
ENDDO
|
|
294
|
+
!
|
|
295
|
+
!TB
|
|
296
|
+
IF ((gate.AND.relaxz).AND.(ipol==3)) WRITE( stdout, '("Total force in z direction = 0 disabled")')
|
|
297
|
+
!
|
|
298
|
+
IF ( (do_comp_esm .AND. ( esm_bc /= 'pbc' )).OR.(gate.AND.relaxz) ) THEN
|
|
299
|
+
!
|
|
300
|
+
! ... impose total force along xy = 0
|
|
301
|
+
!
|
|
302
|
+
DO na = 1, nat
|
|
303
|
+
IF ( ipol /= 3) force(ipol,na) = force(ipol,na) &
|
|
304
|
+
- sumfor / DBLE( nat )
|
|
305
|
+
ENDDO
|
|
306
|
+
!
|
|
307
|
+
ELSEIF ( qmmm_mode < 0 ) THEN
|
|
308
|
+
!
|
|
309
|
+
! ... impose total force = 0 except in a QM-MM calculation
|
|
310
|
+
!
|
|
311
|
+
DO na = 1, nat
|
|
312
|
+
force(ipol,na) = force(ipol,na) - sumfor / DBLE( nat )
|
|
313
|
+
ENDDO
|
|
314
|
+
!
|
|
315
|
+
ENDIF
|
|
316
|
+
!
|
|
317
|
+
ENDDO
|
|
318
|
+
!
|
|
319
|
+
! ... call run_extffield to apply external force fields on ions
|
|
320
|
+
!
|
|
321
|
+
IF ( nextffield > 0 ) THEN
|
|
322
|
+
tau(:,:) = tau(:,:)*alat
|
|
323
|
+
CALL apply_extffield_PW(istep,nextffield,tau,force)
|
|
324
|
+
tau(:,:) = tau(:,:)/alat
|
|
325
|
+
END IF
|
|
326
|
+
!
|
|
327
|
+
! ... resymmetrize (should not be needed, but ...)
|
|
328
|
+
!
|
|
329
|
+
CALL symvector( nat, force )
|
|
330
|
+
!
|
|
331
|
+
IF ( remove_rigid_rot ) &
|
|
332
|
+
CALL remove_tot_torque( nat, tau, amass(ityp(:)), force )
|
|
333
|
+
!
|
|
334
|
+
IF( textfor ) force(:,:) = force(:,:) + extfor(:,:)
|
|
335
|
+
!
|
|
336
|
+
! ... call void routine for user define/ plugin patches on external forces
|
|
337
|
+
!
|
|
338
|
+
#if defined(__LEGACY_PLUGINS)
|
|
339
|
+
CALL plugin_ext_forces()
|
|
340
|
+
#endif
|
|
341
|
+
#if defined (__ENVIRON)
|
|
342
|
+
IF (use_environ) THEN
|
|
343
|
+
IF (is_ms_gcs()) CALL run_ms_gcs()
|
|
344
|
+
END IF
|
|
345
|
+
#endif
|
|
346
|
+
!
|
|
347
|
+
! ... write on output the forces
|
|
348
|
+
!
|
|
349
|
+
WRITE( stdout, '(/,5x,"Forces acting on atoms (cartesian axes, Ry/au):", / )')
|
|
350
|
+
DO na = 1, nat
|
|
351
|
+
WRITE( stdout, 9035) na, ityp(na), force(:,na)
|
|
352
|
+
ENDDO
|
|
353
|
+
!
|
|
354
|
+
! ... forces on fixed coordinates are set to zero ( C.S. 15/10/2003 )
|
|
355
|
+
!
|
|
356
|
+
force(:,:) = force(:,:) * DBLE( if_pos )
|
|
357
|
+
forcescc(:,:) = forcescc(:,:) * DBLE( if_pos )
|
|
358
|
+
!
|
|
359
|
+
!civn
|
|
360
|
+
! IF ( iverbosity > 0 ) THEN
|
|
361
|
+
IF ( .true. ) THEN
|
|
362
|
+
!
|
|
363
|
+
IF ( do_comp_mt ) THEN
|
|
364
|
+
WRITE( stdout, '(5x,"The Martyna-Tuckerman correction term to forces")')
|
|
365
|
+
DO na = 1, nat
|
|
366
|
+
WRITE( stdout, 9035) na, ityp(na), ( force_mt(ipol,na), ipol = 1, 3 )
|
|
367
|
+
ENDDO
|
|
368
|
+
END IF
|
|
369
|
+
!
|
|
370
|
+
WRITE( stdout, '(5x,"The non-local contrib. to forces")')
|
|
371
|
+
DO na = 1, nat
|
|
372
|
+
WRITE( stdout, 9035) na, ityp(na), ( forcenl(ipol,na), ipol = 1, 3 )
|
|
373
|
+
ENDDO
|
|
374
|
+
WRITE( stdout, '(5x,"The ionic contribution to forces")')
|
|
375
|
+
DO na = 1, nat
|
|
376
|
+
WRITE( stdout, 9035) na, ityp(na), ( forceion(ipol,na), ipol = 1, 3 )
|
|
377
|
+
ENDDO
|
|
378
|
+
WRITE( stdout, '(5x,"The local contribution to forces")')
|
|
379
|
+
DO na = 1, nat
|
|
380
|
+
WRITE( stdout, 9035) na, ityp(na), ( forcelc(ipol,na), ipol = 1, 3 )
|
|
381
|
+
ENDDO
|
|
382
|
+
WRITE( stdout, '(5x,"The core correction contribution to forces")')
|
|
383
|
+
DO na = 1, nat
|
|
384
|
+
WRITE( stdout, 9035) na, ityp(na), ( forcecc(ipol,na), ipol = 1, 3 )
|
|
385
|
+
ENDDO
|
|
386
|
+
WRITE( stdout, '(5x,"The Hubbard contrib. to forces")')
|
|
387
|
+
DO na = 1, nat
|
|
388
|
+
WRITE( stdout, 9035) na, ityp(na), ( forceh(ipol,na), ipol = 1, 3 )
|
|
389
|
+
ENDDO
|
|
390
|
+
WRITE( stdout, '(5x,"The SCF correction term to forces")')
|
|
391
|
+
DO na = 1, nat
|
|
392
|
+
WRITE( stdout, 9035) na, ityp(na), ( forcescc(ipol,na), ipol = 1, 3 )
|
|
393
|
+
ENDDO
|
|
394
|
+
!
|
|
395
|
+
IF ( llondon) THEN
|
|
396
|
+
WRITE( stdout, '(/,5x,"Dispersion contribution to forces:")')
|
|
397
|
+
DO na = 1, nat
|
|
398
|
+
WRITE( stdout, 9035) na, ityp(na), (force_disp(ipol,na), ipol = 1, 3)
|
|
399
|
+
ENDDO
|
|
400
|
+
END IF
|
|
401
|
+
!
|
|
402
|
+
IF ( ldftd3 ) THEN
|
|
403
|
+
WRITE( stdout, '(/,5x,"DFT-D3 dispersion contribution to forces:")')
|
|
404
|
+
DO na = 1, nat
|
|
405
|
+
WRITE( stdout, 9035) na, ityp(na), (force_d3(ipol,na), ipol = 1, 3)
|
|
406
|
+
ENDDO
|
|
407
|
+
END IF
|
|
408
|
+
!
|
|
409
|
+
IF (lxdm) THEN
|
|
410
|
+
WRITE( stdout, '(/,5x,"XDM contribution to forces:")')
|
|
411
|
+
DO na = 1, nat
|
|
412
|
+
WRITE( stdout, 9035) na, ityp(na), (force_disp_xdm(ipol,na), ipol = 1, 3)
|
|
413
|
+
ENDDO
|
|
414
|
+
END IF
|
|
415
|
+
!
|
|
416
|
+
! again, as above, if condition is to avoid redundant printing
|
|
417
|
+
IF ( mbd_vdw ) THEN
|
|
418
|
+
WRITE( stdout, '(/,5x, "MBD contribution to forces")')
|
|
419
|
+
DO na = 1, nat
|
|
420
|
+
WRITE( stdout, 9035) na, ityp(na), (2.0d0*FmbdvdW(ipol, na), ipol = 1, 3)
|
|
421
|
+
ENDDO
|
|
422
|
+
ELSE IF ( ts_vdw ) THEN
|
|
423
|
+
WRITE( stdout, '(/,5x, "TS-VDW contribution to forces")')
|
|
424
|
+
DO na = 1, nat
|
|
425
|
+
WRITE( stdout, 9035) na, ityp(na), (2.0d0*FtsvdW(ipol, na), ipol = 1, 3)
|
|
426
|
+
ENDDO
|
|
427
|
+
ENDIF
|
|
428
|
+
|
|
429
|
+
!
|
|
430
|
+
! TB gate forces
|
|
431
|
+
IF ( gate ) THEN
|
|
432
|
+
WRITE( stdout, '(/,5x,"Gate contribution to forces:")')
|
|
433
|
+
DO na = 1, nat
|
|
434
|
+
WRITE( stdout, 9035) na, ityp(na), (forcegate(ipol,na), ipol = 1, 3)
|
|
435
|
+
ENDDO
|
|
436
|
+
END IF
|
|
437
|
+
!
|
|
438
|
+
IF ( lrism ) THEN
|
|
439
|
+
WRITE( stdout, '(/,5x,"3D-RISM Solvation contribution to forces:")')
|
|
440
|
+
DO na = 1, nat
|
|
441
|
+
WRITE( stdout, 9035) na, ityp(na), (force_sol(ipol,na), ipol = 1, 3)
|
|
442
|
+
END DO
|
|
443
|
+
END IF
|
|
444
|
+
!
|
|
445
|
+
END IF
|
|
446
|
+
#if defined (__OSCDFT)
|
|
447
|
+
IF (use_oscdft) CALL oscdft_print_forces(oscdft_ctx)
|
|
448
|
+
#endif
|
|
449
|
+
!
|
|
450
|
+
sumfor = 0.D0
|
|
451
|
+
sumscf = 0.D0
|
|
452
|
+
!
|
|
453
|
+
DO na = 1, nat
|
|
454
|
+
!
|
|
455
|
+
sumfor = sumfor + force(1,na)**2 + force(2,na)**2 + force(3,na)**2
|
|
456
|
+
sumscf = sumscf + forcescc(1,na)**2 + forcescc(2,na)**2+ forcescc(3,na)**2
|
|
457
|
+
!
|
|
458
|
+
ENDDO
|
|
459
|
+
!
|
|
460
|
+
sumfor = SQRT( sumfor )
|
|
461
|
+
sumscf = SQRT( sumscf )
|
|
462
|
+
!
|
|
463
|
+
WRITE( stdout, '(/5x,"Total force = ",F12.6,5X, &
|
|
464
|
+
& "Total SCF correction = ",F12.6)') sumfor, sumscf
|
|
465
|
+
!
|
|
466
|
+
IF ( llondon .AND. iverbosity > 0 ) THEN
|
|
467
|
+
!
|
|
468
|
+
sum_mm = 0.D0
|
|
469
|
+
DO na = 1, nat
|
|
470
|
+
sum_mm = sum_mm + &
|
|
471
|
+
force_disp(1,na)**2 + force_disp(2,na)**2 + force_disp(3,na)**2
|
|
472
|
+
ENDDO
|
|
473
|
+
sum_mm = SQRT( sum_mm )
|
|
474
|
+
WRITE ( stdout, '(/,5x, "Total Dispersion Force = ",F12.6)') sum_mm
|
|
475
|
+
!
|
|
476
|
+
END IF
|
|
477
|
+
!
|
|
478
|
+
IF ( ldftd3 .AND. iverbosity > 0 ) THEN
|
|
479
|
+
!
|
|
480
|
+
sum_mm = 0.D0
|
|
481
|
+
DO na = 1, nat
|
|
482
|
+
sum_mm = sum_mm + &
|
|
483
|
+
force_d3(1,na)**2 + force_d3(2,na)**2 + force_d3(3,na)**2
|
|
484
|
+
ENDDO
|
|
485
|
+
sum_mm = SQRT( sum_mm )
|
|
486
|
+
WRITE ( stdout, '(/,5x, "DFT-D3 dispersion Force = ",F12.6)') sum_mm
|
|
487
|
+
!
|
|
488
|
+
END IF
|
|
489
|
+
!
|
|
490
|
+
IF ( lxdm .AND. iverbosity > 0 ) THEN
|
|
491
|
+
!
|
|
492
|
+
sum_mm = 0.D0
|
|
493
|
+
DO na = 1, nat
|
|
494
|
+
sum_mm = sum_mm + &
|
|
495
|
+
force_disp_xdm(1,na)**2 + force_disp_xdm(2,na)**2 + force_disp_xdm(3,na)**2
|
|
496
|
+
ENDDO
|
|
497
|
+
sum_mm = SQRT( sum_mm )
|
|
498
|
+
WRITE ( stdout, '(/,5x, "Total XDM Force = ",F12.6)') sum_mm
|
|
499
|
+
!
|
|
500
|
+
END IF
|
|
501
|
+
!
|
|
502
|
+
IF ( lrism .AND. iverbosity > 0 ) THEN
|
|
503
|
+
!
|
|
504
|
+
sum_mm = 0.D0
|
|
505
|
+
DO na = 1, nat
|
|
506
|
+
sum_mm = sum_mm + &
|
|
507
|
+
force_sol(1,na)**2 + force_sol(2,na)**2 + force_sol(3,na)**2
|
|
508
|
+
END DO
|
|
509
|
+
sum_mm = SQRT( sum_mm )
|
|
510
|
+
WRITE ( stdout, '(/,5x, "Total 3D-RISM Solvation Force = ",F12.6)') sum_mm
|
|
511
|
+
!
|
|
512
|
+
END IF
|
|
513
|
+
!
|
|
514
|
+
DEALLOCATE( forcenl, forcelc, forcecc, forceh, forceion, forcescc )
|
|
515
|
+
IF ( llondon ) DEALLOCATE( force_disp )
|
|
516
|
+
IF ( ldftd3 ) DEALLOCATE( force_d3 )
|
|
517
|
+
IF ( lxdm ) DEALLOCATE( force_disp_xdm )
|
|
518
|
+
IF ( lelfield ) DEALLOCATE( forces_bp_efield )
|
|
519
|
+
IF ( lrism ) DEALLOCATE( force_sol )
|
|
520
|
+
IF(ALLOCATED(force_mt)) DEALLOCATE( force_mt )
|
|
521
|
+
!
|
|
522
|
+
! FIXME: what is the following line good for?
|
|
523
|
+
!
|
|
524
|
+
lforce = .TRUE.
|
|
525
|
+
!
|
|
526
|
+
CALL stop_clock( 'forces' )
|
|
527
|
+
!
|
|
528
|
+
IF ( ( sumfor < 10.D0*sumscf ) .AND. ( sumfor > nat*eps ) ) &
|
|
529
|
+
WRITE( stdout,'(5x,"SCF correction compared to forces is large: ", &
|
|
530
|
+
& "reduce conv_thr to get better values")')
|
|
531
|
+
RETURN
|
|
532
|
+
!
|
|
533
|
+
9035 FORMAT(5X,'atom ',I4,' type ',I2,' force = ',3F14.8)
|
|
534
|
+
!
|
|
535
|
+
END SUBROUTINE forces
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
!
|
|
2
|
+
! Copyright (C) 2001-2009 Quantum ESPRESSO group
|
|
3
|
+
! This file is distributed under the terms of the
|
|
4
|
+
! GNU General Public License. See the file `License'
|
|
5
|
+
! in the root directory of the present distribution,
|
|
6
|
+
! or http://www.gnu.org/copyleft/gpl.txt .
|
|
7
|
+
!
|
|
8
|
+
!----------------------------------------------------------------------------
|
|
9
|
+
SUBROUTINE plugin_ext_forces()
|
|
10
|
+
!----------------------------------------------------------------------------
|
|
11
|
+
!
|
|
12
|
+
!
|
|
13
|
+
USE mp, ONLY : mp_bcast
|
|
14
|
+
USE mp_images, ONLY : intra_image_comm
|
|
15
|
+
USE io_global, ONLY : stdout, ionode, ionode_id
|
|
16
|
+
USE kinds, ONLY : DP
|
|
17
|
+
!
|
|
18
|
+
USE plugin_flags, ONLY : use_plumed
|
|
19
|
+
!
|
|
20
|
+
USE cell_base, ONLY : alat, at
|
|
21
|
+
USE ions_base, ONLY : tau, nat, amass, ityp
|
|
22
|
+
USE force_mod, ONLY : force,sigma
|
|
23
|
+
USE control_flags, ONLY : istep
|
|
24
|
+
USE ener, ONLY : etot
|
|
25
|
+
|
|
26
|
+
USE plumed_module, ONLY: plumed_f_gcmd
|
|
27
|
+
!
|
|
28
|
+
IMPLICIT NONE
|
|
29
|
+
!
|
|
30
|
+
INTEGER:: i,j,ia
|
|
31
|
+
REAL(DP) :: at_plumed(3,3)
|
|
32
|
+
REAL(DP) :: virial(3,3)
|
|
33
|
+
REAL(DP) :: volume
|
|
34
|
+
REAL(DP), ALLOCATABLE :: tau_plumed(:,:)
|
|
35
|
+
REAL(DP) :: masses_plumed(nat)
|
|
36
|
+
!
|
|
37
|
+
masses_plumed = 0.0_DP
|
|
38
|
+
IF(use_plumed) then
|
|
39
|
+
IF(ionode)THEN
|
|
40
|
+
at_plumed=alat*at; ! the cell, rescaled properly
|
|
41
|
+
allocate(tau_plumed(3,nat))
|
|
42
|
+
tau_plumed=alat*tau
|
|
43
|
+
volume=+at_plumed(1,1)*at_plumed(2,2)*at_plumed(3,3) &
|
|
44
|
+
+at_plumed(1,2)*at_plumed(2,3)*at_plumed(3,1) &
|
|
45
|
+
+at_plumed(1,3)*at_plumed(2,1)*at_plumed(3,2) &
|
|
46
|
+
-at_plumed(1,1)*at_plumed(3,2)*at_plumed(2,3) &
|
|
47
|
+
-at_plumed(1,2)*at_plumed(3,3)*at_plumed(2,1) &
|
|
48
|
+
-at_plumed(1,3)*at_plumed(3,1)*at_plumed(2,2)
|
|
49
|
+
virial=-sigma*volume
|
|
50
|
+
|
|
51
|
+
! the masses in QE are stored per type, see q-e//Modules/ions_base.f90
|
|
52
|
+
do ia=1,nat
|
|
53
|
+
masses_plumed(ia)=amass(ityp(ia))
|
|
54
|
+
end do
|
|
55
|
+
|
|
56
|
+
CALL plumed_f_gcmd("setStep"//char(0),istep)
|
|
57
|
+
CALL plumed_f_gcmd("setMasses"//char(0),masses_plumed)
|
|
58
|
+
CALL plumed_f_gcmd("setForces"//char(0),force)
|
|
59
|
+
CALL plumed_f_gcmd("setPositions"//char(0),tau_plumed)
|
|
60
|
+
CALL plumed_f_gcmd("setBox"//char(0),at_plumed)
|
|
61
|
+
CALL plumed_f_gcmd("setVirial"//char(0),virial)
|
|
62
|
+
CALL plumed_f_gcmd("setEnergy"//char(0),etot)
|
|
63
|
+
CALL plumed_f_gcmd("calc"//char(0),0)
|
|
64
|
+
|
|
65
|
+
sigma=-virial/volume
|
|
66
|
+
|
|
67
|
+
deallocate(tau_plumed)
|
|
68
|
+
ENDIF
|
|
69
|
+
CALL mp_bcast(force, ionode_id, intra_image_comm)
|
|
70
|
+
CALL mp_bcast(sigma, ionode_id, intra_image_comm)
|
|
71
|
+
ENDIF
|
|
72
|
+
!
|
|
73
|
+
!
|
|
74
|
+
END SUBROUTINE plugin_ext_forces
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
!
|
|
2
|
+
! Copyright (C) 2001-2009 Quantum ESPRESSO group
|
|
3
|
+
! This file is distributed under the terms of the
|
|
4
|
+
! GNU General Public License. See the file `License'
|
|
5
|
+
! in the root directory of the present distribution,
|
|
6
|
+
! or http://www.gnu.org/copyleft/gpl.txt .
|
|
7
|
+
!
|
|
8
|
+
!----------------------------------------------------------------------------
|
|
9
|
+
SUBROUTINE plugin_ext_forces()
|
|
10
|
+
!----------------------------------------------------------------------------
|
|
11
|
+
!
|
|
12
|
+
!
|
|
13
|
+
USE mp, ONLY : mp_bcast
|
|
14
|
+
USE mp_images, ONLY : intra_image_comm
|
|
15
|
+
USE io_global, ONLY : stdout, ionode, ionode_id
|
|
16
|
+
USE kinds, ONLY : DP
|
|
17
|
+
!
|
|
18
|
+
USE plugin_flags
|
|
19
|
+
!
|
|
20
|
+
IMPLICIT NONE
|
|
21
|
+
!
|
|
22
|
+
!
|
|
23
|
+
END SUBROUTINE plugin_ext_forces
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
!
|
|
2
|
+
! Copyright (C) 2010 Quantum ESPRESSO group
|
|
3
|
+
! This file is distributed under the terms of the
|
|
4
|
+
! GNU General Public License. See the file `License'
|
|
5
|
+
! in the root directory of the present distribution,
|
|
6
|
+
! or http://www.gnu.org/copyleft/gpl.txt .
|
|
7
|
+
!
|
|
8
|
+
!----------------------------------------------------------------------------
|
|
9
|
+
SUBROUTINE plugin_initialization()
|
|
10
|
+
!----------------------------------------------------------------------------
|
|
11
|
+
!
|
|
12
|
+
USE io_global, ONLY : stdout, ionode
|
|
13
|
+
USE kinds, ONLY : DP
|
|
14
|
+
USE io_files, ONLY : tmp_dir
|
|
15
|
+
!
|
|
16
|
+
USE plugin_flags, ONLY : use_plumed
|
|
17
|
+
!
|
|
18
|
+
USE ions_base, ONLY : amass, ityp, nat
|
|
19
|
+
!
|
|
20
|
+
USE dynamics_module, ONLY : dt
|
|
21
|
+
USE constants, ONLY : au_ps
|
|
22
|
+
|
|
23
|
+
USE plumed_module, ONLY : plumed_f_installed, plumed_f_gcreate, plumed_f_gcmd
|
|
24
|
+
!
|
|
25
|
+
!
|
|
26
|
+
IMPLICIT NONE
|
|
27
|
+
!
|
|
28
|
+
INTEGER :: na
|
|
29
|
+
INTEGER :: plumedavailable
|
|
30
|
+
REAL*8 :: energyUnits,lengthUnits,timeUnits
|
|
31
|
+
!
|
|
32
|
+
IF(use_plumed) then
|
|
33
|
+
|
|
34
|
+
CALL plumed_f_installed(plumedavailable)
|
|
35
|
+
|
|
36
|
+
IF(plumedavailable<=0)THEN
|
|
37
|
+
write(stdout,*)"YOU ARE LOOKING FOR PLUMED BUT LOOKS LIKE IT IS NOT AVAILABLE: DO YOU HAVE IT IN YOUR LD_LIBRARY_PATH?"
|
|
38
|
+
STOP
|
|
39
|
+
ELSE
|
|
40
|
+
IF (ionode) THEN
|
|
41
|
+
|
|
42
|
+
write(stdout,*)" CREATING PLUMED FROM THE PROGRAM"
|
|
43
|
+
call plumed_f_gcreate()
|
|
44
|
+
CALL plumed_f_gcmd("setRealPrecision"//char(0),8)
|
|
45
|
+
energyUnits=1312.75 ! Ry to kjoule mol
|
|
46
|
+
lengthUnits=0.0529177249 ! bohr to nm
|
|
47
|
+
timeUnits=2*au_ps ! internal time to ps
|
|
48
|
+
call plumed_f_gcmd("setMDEnergyUnits"//char(0),energyUnits)
|
|
49
|
+
call plumed_f_gcmd("setMDLengthUnits"//char(0),lengthUnits)
|
|
50
|
+
call plumed_f_gcmd("setMDTimeUnits"//char(0),timeUnits)
|
|
51
|
+
call plumed_f_gcmd("setPlumedDat"//char(0),"plumed.dat"//char(0))
|
|
52
|
+
call plumed_f_gcmd("setLogFile"//char(0),"PLUMED.OUT"//char(0))
|
|
53
|
+
call plumed_f_gcmd("setNatoms"//char(0),nat)
|
|
54
|
+
call plumed_f_gcmd("setMDEngine"//char(0),"qespresso"//char(0));
|
|
55
|
+
call plumed_f_gcmd("setTimestep"//char(0),dt);
|
|
56
|
+
call plumed_f_gcmd("init"//char(0),0);
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
ENDIF
|
|
60
|
+
ENDIF
|
|
61
|
+
ENDIF
|
|
62
|
+
!
|
|
63
|
+
!
|
|
64
|
+
END SUBROUTINE plugin_initialization
|