hillclimber 0.1.6__cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (475) hide show
  1. hillclimber/__init__.py +41 -0
  2. hillclimber/actions.py +53 -0
  3. hillclimber/analysis.py +590 -0
  4. hillclimber/biases.py +293 -0
  5. hillclimber/calc.py +22 -0
  6. hillclimber/cvs.py +1070 -0
  7. hillclimber/interfaces.py +133 -0
  8. hillclimber/metadynamics.py +416 -0
  9. hillclimber/nodes.py +6 -0
  10. hillclimber/opes.py +359 -0
  11. hillclimber/pycv.py +362 -0
  12. hillclimber/selectors.py +230 -0
  13. hillclimber/virtual_atoms.py +341 -0
  14. hillclimber-0.1.6.dist-info/METADATA +325 -0
  15. hillclimber-0.1.6.dist-info/RECORD +475 -0
  16. hillclimber-0.1.6.dist-info/WHEEL +6 -0
  17. hillclimber-0.1.6.dist-info/entry_points.txt +8 -0
  18. hillclimber-0.1.6.dist-info/licenses/LICENSE +165 -0
  19. hillclimber-0.1.6.dist-info/sboms/auditwheel.cdx.json +1 -0
  20. hillclimber.libs/libgomp-a49a47f9.so.1.0.0 +0 -0
  21. plumed/__init__.py +104 -0
  22. plumed/_lib/bin/plumed +0 -0
  23. plumed/_lib/bin/plumed-config +9 -0
  24. plumed/_lib/bin/plumed-patch +9 -0
  25. plumed/_lib/include/plumed/adjmat/AdjacencyMatrixBase.h +659 -0
  26. plumed/_lib/include/plumed/adjmat/ContactMatrix.h +59 -0
  27. plumed/_lib/include/plumed/asmjit/arch.h +228 -0
  28. plumed/_lib/include/plumed/asmjit/arm.h +43 -0
  29. plumed/_lib/include/plumed/asmjit/asmjit.h +69 -0
  30. plumed/_lib/include/plumed/asmjit/asmjit_apibegin.h +143 -0
  31. plumed/_lib/include/plumed/asmjit/asmjit_apiend.h +93 -0
  32. plumed/_lib/include/plumed/asmjit/asmjit_build.h +971 -0
  33. plumed/_lib/include/plumed/asmjit/assembler.h +183 -0
  34. plumed/_lib/include/plumed/asmjit/base.h +56 -0
  35. plumed/_lib/include/plumed/asmjit/codebuilder.h +944 -0
  36. plumed/_lib/include/plumed/asmjit/codecompiler.h +767 -0
  37. plumed/_lib/include/plumed/asmjit/codeemitter.h +528 -0
  38. plumed/_lib/include/plumed/asmjit/codeholder.h +777 -0
  39. plumed/_lib/include/plumed/asmjit/constpool.h +286 -0
  40. plumed/_lib/include/plumed/asmjit/cpuinfo.h +402 -0
  41. plumed/_lib/include/plumed/asmjit/func.h +1327 -0
  42. plumed/_lib/include/plumed/asmjit/globals.h +370 -0
  43. plumed/_lib/include/plumed/asmjit/inst.h +137 -0
  44. plumed/_lib/include/plumed/asmjit/logging.h +317 -0
  45. plumed/_lib/include/plumed/asmjit/misc_p.h +103 -0
  46. plumed/_lib/include/plumed/asmjit/moved_string.h +318 -0
  47. plumed/_lib/include/plumed/asmjit/operand.h +1599 -0
  48. plumed/_lib/include/plumed/asmjit/osutils.h +207 -0
  49. plumed/_lib/include/plumed/asmjit/regalloc_p.h +597 -0
  50. plumed/_lib/include/plumed/asmjit/runtime.h +227 -0
  51. plumed/_lib/include/plumed/asmjit/simdtypes.h +1104 -0
  52. plumed/_lib/include/plumed/asmjit/utils.h +1387 -0
  53. plumed/_lib/include/plumed/asmjit/vmem.h +183 -0
  54. plumed/_lib/include/plumed/asmjit/x86.h +45 -0
  55. plumed/_lib/include/plumed/asmjit/x86assembler.h +125 -0
  56. plumed/_lib/include/plumed/asmjit/x86builder.h +117 -0
  57. plumed/_lib/include/plumed/asmjit/x86compiler.h +322 -0
  58. plumed/_lib/include/plumed/asmjit/x86emitter.h +5149 -0
  59. plumed/_lib/include/plumed/asmjit/x86globals.h +535 -0
  60. plumed/_lib/include/plumed/asmjit/x86inst.h +2547 -0
  61. plumed/_lib/include/plumed/asmjit/x86instimpl_p.h +74 -0
  62. plumed/_lib/include/plumed/asmjit/x86internal_p.h +108 -0
  63. plumed/_lib/include/plumed/asmjit/x86logging_p.h +92 -0
  64. plumed/_lib/include/plumed/asmjit/x86misc.h +417 -0
  65. plumed/_lib/include/plumed/asmjit/x86operand.h +1133 -0
  66. plumed/_lib/include/plumed/asmjit/x86regalloc_p.h +734 -0
  67. plumed/_lib/include/plumed/asmjit/zone.h +1157 -0
  68. plumed/_lib/include/plumed/bias/Bias.h +82 -0
  69. plumed/_lib/include/plumed/bias/ReweightBase.h +58 -0
  70. plumed/_lib/include/plumed/blas/blas.h +253 -0
  71. plumed/_lib/include/plumed/blas/def_external.h +61 -0
  72. plumed/_lib/include/plumed/blas/def_internal.h +97 -0
  73. plumed/_lib/include/plumed/blas/real.h +49 -0
  74. plumed/_lib/include/plumed/cltools/CLTool.h +32 -0
  75. plumed/_lib/include/plumed/clusters/ClusteringBase.h +70 -0
  76. plumed/_lib/include/plumed/colvar/Colvar.h +32 -0
  77. plumed/_lib/include/plumed/colvar/ColvarInput.h +68 -0
  78. plumed/_lib/include/plumed/colvar/ColvarShortcut.h +81 -0
  79. plumed/_lib/include/plumed/colvar/CoordinationBase.h +52 -0
  80. plumed/_lib/include/plumed/colvar/MultiColvarTemplate.h +333 -0
  81. plumed/_lib/include/plumed/colvar/PathMSDBase.h +101 -0
  82. plumed/_lib/include/plumed/colvar/RMSDVector.h +78 -0
  83. plumed/_lib/include/plumed/config/Config.h +118 -0
  84. plumed/_lib/include/plumed/config/version.h +9 -0
  85. plumed/_lib/include/plumed/contour/ContourFindingObject.h +87 -0
  86. plumed/_lib/include/plumed/contour/DistanceFromContourBase.h +82 -0
  87. plumed/_lib/include/plumed/contour/FindContour.h +67 -0
  88. plumed/_lib/include/plumed/core/Action.h +540 -0
  89. plumed/_lib/include/plumed/core/ActionAnyorder.h +48 -0
  90. plumed/_lib/include/plumed/core/ActionAtomistic.h +343 -0
  91. plumed/_lib/include/plumed/core/ActionForInterface.h +99 -0
  92. plumed/_lib/include/plumed/core/ActionPilot.h +57 -0
  93. plumed/_lib/include/plumed/core/ActionRegister.h +124 -0
  94. plumed/_lib/include/plumed/core/ActionSet.h +163 -0
  95. plumed/_lib/include/plumed/core/ActionSetup.h +48 -0
  96. plumed/_lib/include/plumed/core/ActionShortcut.h +73 -0
  97. plumed/_lib/include/plumed/core/ActionToGetData.h +59 -0
  98. plumed/_lib/include/plumed/core/ActionToPutData.h +101 -0
  99. plumed/_lib/include/plumed/core/ActionWithArguments.h +140 -0
  100. plumed/_lib/include/plumed/core/ActionWithMatrix.h +87 -0
  101. plumed/_lib/include/plumed/core/ActionWithValue.h +258 -0
  102. plumed/_lib/include/plumed/core/ActionWithVector.h +94 -0
  103. plumed/_lib/include/plumed/core/ActionWithVirtualAtom.h +123 -0
  104. plumed/_lib/include/plumed/core/CLTool.h +177 -0
  105. plumed/_lib/include/plumed/core/CLToolMain.h +102 -0
  106. plumed/_lib/include/plumed/core/CLToolRegister.h +108 -0
  107. plumed/_lib/include/plumed/core/Colvar.h +115 -0
  108. plumed/_lib/include/plumed/core/DataPassingObject.h +94 -0
  109. plumed/_lib/include/plumed/core/DataPassingTools.h +54 -0
  110. plumed/_lib/include/plumed/core/DomainDecomposition.h +120 -0
  111. plumed/_lib/include/plumed/core/ExchangePatterns.h +47 -0
  112. plumed/_lib/include/plumed/core/FlexibleBin.h +63 -0
  113. plumed/_lib/include/plumed/core/GREX.h +61 -0
  114. plumed/_lib/include/plumed/core/GenericMolInfo.h +89 -0
  115. plumed/_lib/include/plumed/core/Group.h +41 -0
  116. plumed/_lib/include/plumed/core/ModuleMap.h +30 -0
  117. plumed/_lib/include/plumed/core/ParallelTaskManager.h +1023 -0
  118. plumed/_lib/include/plumed/core/PbcAction.h +61 -0
  119. plumed/_lib/include/plumed/core/PlumedMain.h +632 -0
  120. plumed/_lib/include/plumed/core/PlumedMainInitializer.h +118 -0
  121. plumed/_lib/include/plumed/core/RegisterBase.h +340 -0
  122. plumed/_lib/include/plumed/core/TargetDist.h +48 -0
  123. plumed/_lib/include/plumed/core/Value.h +547 -0
  124. plumed/_lib/include/plumed/core/WithCmd.h +93 -0
  125. plumed/_lib/include/plumed/dimred/SMACOF.h +55 -0
  126. plumed/_lib/include/plumed/drr/DRR.h +383 -0
  127. plumed/_lib/include/plumed/drr/colvar_UIestimator.h +777 -0
  128. plumed/_lib/include/plumed/fisst/legendre_rule_fast.h +44 -0
  129. plumed/_lib/include/plumed/function/Custom.h +54 -0
  130. plumed/_lib/include/plumed/function/Function.h +85 -0
  131. plumed/_lib/include/plumed/function/FunctionOfMatrix.h +368 -0
  132. plumed/_lib/include/plumed/function/FunctionOfScalar.h +135 -0
  133. plumed/_lib/include/plumed/function/FunctionOfVector.h +296 -0
  134. plumed/_lib/include/plumed/function/FunctionSetup.h +180 -0
  135. plumed/_lib/include/plumed/function/FunctionShortcut.h +130 -0
  136. plumed/_lib/include/plumed/function/FunctionWithSingleArgument.h +165 -0
  137. plumed/_lib/include/plumed/gridtools/ActionWithGrid.h +43 -0
  138. plumed/_lib/include/plumed/gridtools/EvaluateGridFunction.h +99 -0
  139. plumed/_lib/include/plumed/gridtools/FunctionOfGrid.h +295 -0
  140. plumed/_lib/include/plumed/gridtools/GridCoordinatesObject.h +179 -0
  141. plumed/_lib/include/plumed/gridtools/GridSearch.h +135 -0
  142. plumed/_lib/include/plumed/gridtools/Interpolator.h +45 -0
  143. plumed/_lib/include/plumed/gridtools/KDE.h +455 -0
  144. plumed/_lib/include/plumed/gridtools/RDF.h +40 -0
  145. plumed/_lib/include/plumed/gridtools/SumOfKernels.h +219 -0
  146. plumed/_lib/include/plumed/isdb/MetainferenceBase.h +398 -0
  147. plumed/_lib/include/plumed/lapack/def_external.h +207 -0
  148. plumed/_lib/include/plumed/lapack/def_internal.h +388 -0
  149. plumed/_lib/include/plumed/lapack/lapack.h +899 -0
  150. plumed/_lib/include/plumed/lapack/lapack_limits.h +79 -0
  151. plumed/_lib/include/plumed/lapack/real.h +50 -0
  152. plumed/_lib/include/plumed/lepton/CompiledExpression.h +164 -0
  153. plumed/_lib/include/plumed/lepton/CustomFunction.h +143 -0
  154. plumed/_lib/include/plumed/lepton/Exception.h +93 -0
  155. plumed/_lib/include/plumed/lepton/ExpressionProgram.h +137 -0
  156. plumed/_lib/include/plumed/lepton/ExpressionTreeNode.h +145 -0
  157. plumed/_lib/include/plumed/lepton/Lepton.h +85 -0
  158. plumed/_lib/include/plumed/lepton/MSVC_erfc.h +123 -0
  159. plumed/_lib/include/plumed/lepton/Operation.h +1302 -0
  160. plumed/_lib/include/plumed/lepton/ParsedExpression.h +165 -0
  161. plumed/_lib/include/plumed/lepton/Parser.h +111 -0
  162. plumed/_lib/include/plumed/lepton/windowsIncludes.h +73 -0
  163. plumed/_lib/include/plumed/mapping/Path.h +44 -0
  164. plumed/_lib/include/plumed/mapping/PathProjectionCalculator.h +57 -0
  165. plumed/_lib/include/plumed/matrixtools/MatrixOperationBase.h +54 -0
  166. plumed/_lib/include/plumed/matrixtools/MatrixTimesMatrix.h +309 -0
  167. plumed/_lib/include/plumed/matrixtools/MatrixTimesVectorBase.h +365 -0
  168. plumed/_lib/include/plumed/matrixtools/OuterProduct.h +238 -0
  169. plumed/_lib/include/plumed/maze/Core.h +65 -0
  170. plumed/_lib/include/plumed/maze/Loss.h +86 -0
  171. plumed/_lib/include/plumed/maze/Member.h +66 -0
  172. plumed/_lib/include/plumed/maze/Memetic.h +799 -0
  173. plumed/_lib/include/plumed/maze/Optimizer.h +357 -0
  174. plumed/_lib/include/plumed/maze/Random_MT.h +156 -0
  175. plumed/_lib/include/plumed/maze/Tools.h +183 -0
  176. plumed/_lib/include/plumed/metatomic/vesin.h +188 -0
  177. plumed/_lib/include/plumed/molfile/Gromacs.h +2013 -0
  178. plumed/_lib/include/plumed/molfile/endianswap.h +217 -0
  179. plumed/_lib/include/plumed/molfile/fastio.h +683 -0
  180. plumed/_lib/include/plumed/molfile/largefiles.h +78 -0
  181. plumed/_lib/include/plumed/molfile/libmolfile_plugin.h +77 -0
  182. plumed/_lib/include/plumed/molfile/molfile_plugin.h +1034 -0
  183. plumed/_lib/include/plumed/molfile/periodic_table.h +248 -0
  184. plumed/_lib/include/plumed/molfile/readpdb.h +447 -0
  185. plumed/_lib/include/plumed/molfile/vmdplugin.h +236 -0
  186. plumed/_lib/include/plumed/multicolvar/MultiColvarShortcuts.h +45 -0
  187. plumed/_lib/include/plumed/opes/ExpansionCVs.h +79 -0
  188. plumed/_lib/include/plumed/sasa/Sasa.h +32 -0
  189. plumed/_lib/include/plumed/secondarystructure/SecondaryStructureBase.h +372 -0
  190. plumed/_lib/include/plumed/setup/ActionSetup.h +25 -0
  191. plumed/_lib/include/plumed/small_vector/small_vector.h +6114 -0
  192. plumed/_lib/include/plumed/symfunc/CoordinationNumbers.h +41 -0
  193. plumed/_lib/include/plumed/tools/Angle.h +52 -0
  194. plumed/_lib/include/plumed/tools/AtomDistribution.h +138 -0
  195. plumed/_lib/include/plumed/tools/AtomNumber.h +152 -0
  196. plumed/_lib/include/plumed/tools/BiasRepresentation.h +106 -0
  197. plumed/_lib/include/plumed/tools/BitmaskEnum.h +167 -0
  198. plumed/_lib/include/plumed/tools/Brent1DRootSearch.h +159 -0
  199. plumed/_lib/include/plumed/tools/CheckInRange.h +44 -0
  200. plumed/_lib/include/plumed/tools/Citations.h +74 -0
  201. plumed/_lib/include/plumed/tools/ColvarOutput.h +118 -0
  202. plumed/_lib/include/plumed/tools/Communicator.h +316 -0
  203. plumed/_lib/include/plumed/tools/ConjugateGradient.h +80 -0
  204. plumed/_lib/include/plumed/tools/DLLoader.h +79 -0
  205. plumed/_lib/include/plumed/tools/ERMSD.h +73 -0
  206. plumed/_lib/include/plumed/tools/Exception.h +406 -0
  207. plumed/_lib/include/plumed/tools/File.h +28 -0
  208. plumed/_lib/include/plumed/tools/FileBase.h +153 -0
  209. plumed/_lib/include/plumed/tools/FileTools.h +37 -0
  210. plumed/_lib/include/plumed/tools/ForwardDecl.h +54 -0
  211. plumed/_lib/include/plumed/tools/Grid.h +638 -0
  212. plumed/_lib/include/plumed/tools/HistogramBead.h +136 -0
  213. plumed/_lib/include/plumed/tools/IFile.h +117 -0
  214. plumed/_lib/include/plumed/tools/KernelFunctions.h +113 -0
  215. plumed/_lib/include/plumed/tools/Keywords.h +380 -0
  216. plumed/_lib/include/plumed/tools/LatticeReduction.h +66 -0
  217. plumed/_lib/include/plumed/tools/LeptonCall.h +64 -0
  218. plumed/_lib/include/plumed/tools/LinkCells.h +126 -0
  219. plumed/_lib/include/plumed/tools/Log.h +41 -0
  220. plumed/_lib/include/plumed/tools/LoopUnroller.h +163 -0
  221. plumed/_lib/include/plumed/tools/Matrix.h +721 -0
  222. plumed/_lib/include/plumed/tools/MatrixSquareBracketsAccess.h +138 -0
  223. plumed/_lib/include/plumed/tools/MergeVectorTools.h +153 -0
  224. plumed/_lib/include/plumed/tools/Minimise1DBrent.h +244 -0
  225. plumed/_lib/include/plumed/tools/MinimiseBase.h +120 -0
  226. plumed/_lib/include/plumed/tools/MolDataClass.h +51 -0
  227. plumed/_lib/include/plumed/tools/NeighborList.h +112 -0
  228. plumed/_lib/include/plumed/tools/OFile.h +286 -0
  229. plumed/_lib/include/plumed/tools/OpenACC.h +180 -0
  230. plumed/_lib/include/plumed/tools/OpenMP.h +75 -0
  231. plumed/_lib/include/plumed/tools/PDB.h +154 -0
  232. plumed/_lib/include/plumed/tools/Pbc.h +139 -0
  233. plumed/_lib/include/plumed/tools/PlumedHandle.h +105 -0
  234. plumed/_lib/include/plumed/tools/RMSD.h +493 -0
  235. plumed/_lib/include/plumed/tools/Random.h +80 -0
  236. plumed/_lib/include/plumed/tools/RootFindingBase.h +79 -0
  237. plumed/_lib/include/plumed/tools/Stopwatch.h +475 -0
  238. plumed/_lib/include/plumed/tools/Subprocess.h +142 -0
  239. plumed/_lib/include/plumed/tools/SwitchingFunction.h +208 -0
  240. plumed/_lib/include/plumed/tools/Tensor.h +724 -0
  241. plumed/_lib/include/plumed/tools/TokenizedLine.h +123 -0
  242. plumed/_lib/include/plumed/tools/Tools.h +638 -0
  243. plumed/_lib/include/plumed/tools/Torsion.h +55 -0
  244. plumed/_lib/include/plumed/tools/TrajectoryParser.h +118 -0
  245. plumed/_lib/include/plumed/tools/Tree.h +61 -0
  246. plumed/_lib/include/plumed/tools/TypesafePtr.h +463 -0
  247. plumed/_lib/include/plumed/tools/Units.h +167 -0
  248. plumed/_lib/include/plumed/tools/Vector.h +433 -0
  249. plumed/_lib/include/plumed/tools/View.h +296 -0
  250. plumed/_lib/include/plumed/tools/View2D.h +100 -0
  251. plumed/_lib/include/plumed/tools/h36.h +39 -0
  252. plumed/_lib/include/plumed/vatom/ActionWithVirtualAtom.h +32 -0
  253. plumed/_lib/include/plumed/ves/BasisFunctions.h +380 -0
  254. plumed/_lib/include/plumed/ves/CoeffsBase.h +310 -0
  255. plumed/_lib/include/plumed/ves/CoeffsMatrix.h +220 -0
  256. plumed/_lib/include/plumed/ves/CoeffsVector.h +251 -0
  257. plumed/_lib/include/plumed/ves/FermiSwitchingFunction.h +74 -0
  258. plumed/_lib/include/plumed/ves/GridIntegrationWeights.h +50 -0
  259. plumed/_lib/include/plumed/ves/GridLinearInterpolation.h +81 -0
  260. plumed/_lib/include/plumed/ves/GridProjWeights.h +61 -0
  261. plumed/_lib/include/plumed/ves/LinearBasisSetExpansion.h +303 -0
  262. plumed/_lib/include/plumed/ves/Optimizer.h +444 -0
  263. plumed/_lib/include/plumed/ves/TargetDistModifer.h +53 -0
  264. plumed/_lib/include/plumed/ves/TargetDistribution.h +266 -0
  265. plumed/_lib/include/plumed/ves/VesBias.h +545 -0
  266. plumed/_lib/include/plumed/ves/VesTools.h +142 -0
  267. plumed/_lib/include/plumed/ves/WaveletGrid.h +75 -0
  268. plumed/_lib/include/plumed/volumes/ActionVolume.h +268 -0
  269. plumed/_lib/include/plumed/volumes/VolumeShortcut.h +147 -0
  270. plumed/_lib/include/plumed/wrapper/Plumed.h +5025 -0
  271. plumed/_lib/include/plumed/xdrfile/xdrfile.h +663 -0
  272. plumed/_lib/include/plumed/xdrfile/xdrfile_trr.h +89 -0
  273. plumed/_lib/include/plumed/xdrfile/xdrfile_xtc.h +90 -0
  274. plumed/_lib/lib/PythonCVInterface.so +0 -0
  275. plumed/_lib/lib/libplumed.a +0 -0
  276. plumed/_lib/lib/libplumed.so +0 -0
  277. plumed/_lib/lib/libplumedKernel.so +0 -0
  278. plumed/_lib/lib/libplumedWrapper.a +0 -0
  279. plumed/_lib/lib/pkgconfig/plumed.pc +13 -0
  280. plumed/_lib/lib/pkgconfig/plumedInternals.pc +13 -0
  281. plumed/_lib/lib/pkgconfig/plumedWrapper.pc +13 -0
  282. plumed/_lib/lib/plumed/fortran/plumed.f90 +879 -0
  283. plumed/_lib/lib/plumed/fortran/plumed_f08.f90 +2625 -0
  284. plumed/_lib/lib/plumed/modulefile +69 -0
  285. plumed/_lib/lib/plumed/patches/gromacs-2022.5.config +43 -0
  286. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/CMakeLists.txt +543 -0
  287. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/CMakeLists.txt.preplumed +540 -0
  288. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/expanded.cpp +1628 -0
  289. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/expanded.cpp.preplumed +1590 -0
  290. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/expanded.h +103 -0
  291. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/expanded.h.preplumed +99 -0
  292. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/sim_util.cpp +2527 -0
  293. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/sim_util.cpp.preplumed +2513 -0
  294. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/legacymdrunoptions.cpp +208 -0
  295. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/legacymdrunoptions.cpp.preplumed +175 -0
  296. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/legacymdrunoptions.h +408 -0
  297. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/legacymdrunoptions.h.preplumed +394 -0
  298. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/md.cpp +2348 -0
  299. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/md.cpp.preplumed +2091 -0
  300. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/minimize.cpp +3573 -0
  301. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/minimize.cpp.preplumed +3495 -0
  302. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/replicaexchange.cpp +1506 -0
  303. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/replicaexchange.cpp.preplumed +1402 -0
  304. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/replicaexchange.h +114 -0
  305. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/replicaexchange.h.preplumed +106 -0
  306. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/rerun.cpp +997 -0
  307. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/rerun.cpp.preplumed +906 -0
  308. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/runner.cpp +2780 -0
  309. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/runner.cpp.preplumed +2738 -0
  310. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp +224 -0
  311. plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp.preplumed +222 -0
  312. plumed/_lib/lib/plumed/patches/gromacs-2023.5.config +43 -0
  313. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/CMakeLists.txt +549 -0
  314. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/CMakeLists.txt.preplumed +546 -0
  315. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/expanded.cpp +1632 -0
  316. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/expanded.cpp.preplumed +1594 -0
  317. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/expanded.h +104 -0
  318. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/expanded.h.preplumed +100 -0
  319. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/sim_util.cpp +2624 -0
  320. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/sim_util.cpp.preplumed +2610 -0
  321. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/legacymdrunoptions.cpp +208 -0
  322. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/legacymdrunoptions.cpp.preplumed +175 -0
  323. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/legacymdrunoptions.h +409 -0
  324. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/legacymdrunoptions.h.preplumed +395 -0
  325. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/md.cpp +2419 -0
  326. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/md.cpp.preplumed +2164 -0
  327. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/minimize.cpp +3546 -0
  328. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/minimize.cpp.preplumed +3468 -0
  329. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/replicaexchange.cpp +1513 -0
  330. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/replicaexchange.cpp.preplumed +1409 -0
  331. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/replicaexchange.h +114 -0
  332. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/replicaexchange.h.preplumed +106 -0
  333. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/rerun.cpp +991 -0
  334. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/rerun.cpp.preplumed +900 -0
  335. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/runner.cpp +2895 -0
  336. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/runner.cpp.preplumed +2849 -0
  337. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp +224 -0
  338. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp.preplumed +222 -0
  339. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/taskassignment/decidegpuusage.cpp +886 -0
  340. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/taskassignment/decidegpuusage.cpp.preplumed +880 -0
  341. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/taskassignment/include/gromacs/taskassignment/decidegpuusage.h +347 -0
  342. plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/taskassignment/include/gromacs/taskassignment/decidegpuusage.h.preplumed +345 -0
  343. plumed/_lib/lib/plumed/patches/gromacs-2024.3.config +43 -0
  344. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/CMakeLists.txt +575 -0
  345. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/CMakeLists.txt.preplumed +572 -0
  346. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/expanded.cpp +1632 -0
  347. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/expanded.cpp.preplumed +1594 -0
  348. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/expanded.h +104 -0
  349. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/expanded.h.preplumed +100 -0
  350. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/sim_util.cpp +2564 -0
  351. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/sim_util.cpp.preplumed +2550 -0
  352. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/legacymdrunoptions.cpp +208 -0
  353. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/legacymdrunoptions.cpp.preplumed +175 -0
  354. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/legacymdrunoptions.h +410 -0
  355. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/legacymdrunoptions.h.preplumed +396 -0
  356. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/md.cpp +2435 -0
  357. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/md.cpp.preplumed +2187 -0
  358. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/minimize.cpp +3592 -0
  359. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/minimize.cpp.preplumed +3514 -0
  360. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/replicaexchange.cpp +1513 -0
  361. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/replicaexchange.cpp.preplumed +1409 -0
  362. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/replicaexchange.h +114 -0
  363. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/replicaexchange.h.preplumed +106 -0
  364. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/rerun.cpp +958 -0
  365. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/rerun.cpp.preplumed +929 -0
  366. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/runner.cpp +2987 -0
  367. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/runner.cpp.preplumed +2941 -0
  368. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp +224 -0
  369. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp.preplumed +222 -0
  370. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/taskassignment/decidegpuusage.cpp +904 -0
  371. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/taskassignment/decidegpuusage.cpp.preplumed +898 -0
  372. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/taskassignment/include/gromacs/taskassignment/decidegpuusage.h +353 -0
  373. plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/taskassignment/include/gromacs/taskassignment/decidegpuusage.h.preplumed +351 -0
  374. plumed/_lib/lib/plumed/patches/gromacs-2025.0.config +39 -0
  375. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/cmake/gmxManagePlumed.cmake +82 -0
  376. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/cmake/gmxManagePlumed.cmake.preplumed +82 -0
  377. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedMDModule.cpp +162 -0
  378. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedMDModule.cpp.preplumed +154 -0
  379. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedOptions.cpp +107 -0
  380. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedOptions.cpp.preplumed +99 -0
  381. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedOptions.h +120 -0
  382. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedOptions.h.preplumed +111 -0
  383. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedforceprovider.cpp +215 -0
  384. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedforceprovider.cpp.preplumed +197 -0
  385. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedforceprovider.h +87 -0
  386. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedforceprovider.h.preplumed +86 -0
  387. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/mdrun/runner.cpp +2971 -0
  388. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/mdrun/runner.cpp.preplumed +2970 -0
  389. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/mdrunutility/mdmodulesnotifiers.h +430 -0
  390. plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/mdrunutility/mdmodulesnotifiers.h.preplumed +429 -0
  391. plumed/_lib/lib/plumed/patches/namd-2.12.config +30 -0
  392. plumed/_lib/lib/plumed/patches/namd-2.12.diff +267 -0
  393. plumed/_lib/lib/plumed/patches/namd-2.13.config +30 -0
  394. plumed/_lib/lib/plumed/patches/namd-2.13.diff +267 -0
  395. plumed/_lib/lib/plumed/patches/namd-2.14.config +30 -0
  396. plumed/_lib/lib/plumed/patches/namd-2.14.diff +268 -0
  397. plumed/_lib/lib/plumed/patches/patch.sh +500 -0
  398. plumed/_lib/lib/plumed/patches/qespresso-5.0.2.config +25 -0
  399. plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/forces.f90 +368 -0
  400. plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/forces.f90.preplumed +366 -0
  401. plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/plugin_forces.f90 +71 -0
  402. plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/plugin_forces.f90.preplumed +24 -0
  403. plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/plugin_initialization.f90 +62 -0
  404. plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/plugin_initialization.f90.preplumed +21 -0
  405. plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/pwscf.f90 +189 -0
  406. plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/pwscf.f90.preplumed +185 -0
  407. plumed/_lib/lib/plumed/patches/qespresso-6.2.config +26 -0
  408. plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/forces.f90 +422 -0
  409. plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/forces.f90.preplumed +420 -0
  410. plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/plugin_ext_forces.f90 +70 -0
  411. plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/plugin_ext_forces.f90.preplumed +23 -0
  412. plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/plugin_initialization.f90 +62 -0
  413. plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/plugin_initialization.f90.preplumed +21 -0
  414. plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/run_pwscf.f90 +233 -0
  415. plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/run_pwscf.f90.preplumed +230 -0
  416. plumed/_lib/lib/plumed/patches/qespresso-7.0.config +28 -0
  417. plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/Modules/Makefile +175 -0
  418. plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/Modules/Makefile.preplumed +171 -0
  419. plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/forces.f90 +486 -0
  420. plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/forces.f90.preplumed +484 -0
  421. plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/plugin_ext_forces.f90 +74 -0
  422. plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/plugin_ext_forces.f90.preplumed +23 -0
  423. plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/plugin_initialization.f90 +64 -0
  424. plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/plugin_initialization.f90.preplumed +21 -0
  425. plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/run_pwscf.f90 +532 -0
  426. plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/run_pwscf.f90.preplumed +518 -0
  427. plumed/_lib/lib/plumed/patches/qespresso-7.2.config +28 -0
  428. plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/Modules/Makefile +249 -0
  429. plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/Modules/Makefile.preplumed +244 -0
  430. plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/forces.f90 +532 -0
  431. plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/forces.f90.preplumed +535 -0
  432. plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/plugin_ext_forces.f90 +74 -0
  433. plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/plugin_ext_forces.f90.preplumed +23 -0
  434. plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/plugin_initialization.f90 +64 -0
  435. plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/plugin_initialization.f90.preplumed +21 -0
  436. plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/run_pwscf.f90 +569 -0
  437. plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/run_pwscf.f90.preplumed +560 -0
  438. plumed/_lib/lib/plumed/plumed-config +9 -0
  439. plumed/_lib/lib/plumed/plumed-mklib +9 -0
  440. plumed/_lib/lib/plumed/plumed-newcv +9 -0
  441. plumed/_lib/lib/plumed/plumed-partial_tempering +9 -0
  442. plumed/_lib/lib/plumed/plumed-patch +9 -0
  443. plumed/_lib/lib/plumed/plumed-runtime +0 -0
  444. plumed/_lib/lib/plumed/plumed-selector +9 -0
  445. plumed/_lib/lib/plumed/plumed-vim2html +9 -0
  446. plumed/_lib/lib/plumed/scripts/config.sh +126 -0
  447. plumed/_lib/lib/plumed/scripts/mklib.sh +175 -0
  448. plumed/_lib/lib/plumed/scripts/newcv.sh +26 -0
  449. plumed/_lib/lib/plumed/scripts/partial_tempering.sh +319 -0
  450. plumed/_lib/lib/plumed/scripts/patch.sh +4 -0
  451. plumed/_lib/lib/plumed/scripts/selector.sh +234 -0
  452. plumed/_lib/lib/plumed/scripts/vim2html.sh +190 -0
  453. plumed/_lib/lib/plumed/src/colvar/Template.cpp +116 -0
  454. plumed/_lib/lib/plumed/src/config/compile_options.sh +3 -0
  455. plumed/_lib/lib/plumed/src/config/config.txt +179 -0
  456. plumed/_lib/lib/plumed/src/lib/Plumed.cmake +8 -0
  457. plumed/_lib/lib/plumed/src/lib/Plumed.cmake.runtime +5 -0
  458. plumed/_lib/lib/plumed/src/lib/Plumed.cmake.shared +5 -0
  459. plumed/_lib/lib/plumed/src/lib/Plumed.cmake.static +5 -0
  460. plumed/_lib/lib/plumed/src/lib/Plumed.inc +8 -0
  461. plumed/_lib/lib/plumed/src/lib/Plumed.inc.runtime +5 -0
  462. plumed/_lib/lib/plumed/src/lib/Plumed.inc.shared +5 -0
  463. plumed/_lib/lib/plumed/src/lib/Plumed.inc.static +5 -0
  464. plumed/_lib/lib/plumed/vim/scripts.vim +6 -0
  465. plumed/_plumed_core.cpython-311-aarch64-linux-gnu.so +0 -0
  466. plumed/_plumed_core.cpython-312-aarch64-linux-gnu.so +0 -0
  467. plumed/_plumed_core.cpython-313-aarch64-linux-gnu.so +0 -0
  468. plumed/_plumed_core.cpython-314-aarch64-linux-gnu.so +0 -0
  469. plumed/_plumed_core.cpython-314t-aarch64-linux-gnu.so +0 -0
  470. plumedCommunications.cpython-311-aarch64-linux-gnu.so +0 -0
  471. plumedCommunications.cpython-312-aarch64-linux-gnu.so +0 -0
  472. plumedCommunications.cpython-313-aarch64-linux-gnu.so +0 -0
  473. plumedCommunications.cpython-314-aarch64-linux-gnu.so +0 -0
  474. plumedCommunications.cpython-314t-aarch64-linux-gnu.so +0 -0
  475. plumedCommunications.pyi +431 -0
@@ -0,0 +1,484 @@
1
+ !
2
+ ! Copyright (C) 2001-2011 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
+ !
26
+ USE kinds, ONLY : DP
27
+ USE io_global, ONLY : stdout
28
+ USE cell_base, ONLY : at, bg, alat, omega
29
+ USE ions_base, ONLY : nat, ntyp => nsp, ityp, tau, zv, amass, extfor, atm
30
+ USE fft_base, ONLY : dfftp
31
+ USE gvect, ONLY : ngm, gstart, ngl, igtongl, igtongl_d, g, gg, &
32
+ g_d, gcutm
33
+ USE lsda_mod, ONLY : nspin
34
+ USE symme, ONLY : symvector
35
+ USE vlocal, ONLY : strf, vloc
36
+ USE force_mod, ONLY : force, sumfor
37
+ USE scf, ONLY : rho
38
+ USE ions_base, ONLY : if_pos
39
+ USE ldaU, ONLY : lda_plus_u, U_projection
40
+ USE extfield, ONLY : tefield, forcefield, gate, forcegate, relaxz
41
+ USE control_flags, ONLY : gamma_only, remove_rigid_rot, textfor, &
42
+ iverbosity, llondon, ldftd3, lxdm, ts_vdw, &
43
+ mbd_vdw, lforce => tprnfor
44
+ USE plugin_flags
45
+ USE bp, ONLY : lelfield, gdir, l3dstring, efield_cart, &
46
+ efield_cry,efield
47
+ USE uspp, ONLY : okvan
48
+ USE martyna_tuckerman, ONLY : do_comp_mt, wg_corr_force
49
+ USE london_module, ONLY : force_london
50
+ USE dftd3_api, ONLY : get_atomic_number, dftd3_calc
51
+ USE dftd3_qe, ONLY : dftd3_pbc_gdisp, dftd3
52
+
53
+ USE xdm_module, ONLY : force_xdm
54
+ USE tsvdw_module, ONLY : FtsvdW
55
+ USE libmbd_interface, ONLY : FmbdvdW
56
+ USE esm, ONLY : do_comp_esm, esm_bc, esm_force_ew
57
+ USE qmmm, ONLY : qmmm_mode
58
+ !
59
+ USE control_flags, ONLY : use_gpu
60
+ USE device_fbuff_m, ONLY : dev_buf
61
+ USE device_memcpy_m, ONLY : dev_memcpy
62
+ !
63
+ IMPLICIT NONE
64
+ !
65
+ REAL(DP), ALLOCATABLE :: forcenl(:,:), &
66
+ forcelc(:,:), &
67
+ forcecc(:,:), &
68
+ forceion(:,:), &
69
+ force_disp(:,:), &
70
+ force_d3(:,:), &
71
+ force_disp_xdm(:,:), &
72
+ force_mt(:,:), &
73
+ forcescc(:,:), &
74
+ forces_bp_efield(:,:),&
75
+ forceh(:,:)
76
+ ! nonlocal, local, core-correction, ewald, scf correction terms, and hubbard
77
+ !
78
+ ! aux is used to store a possible additional density
79
+ ! now defined in real space
80
+ !
81
+ COMPLEX(DP), ALLOCATABLE :: auxg(:), auxr(:)
82
+ !
83
+ REAL(DP) :: sumscf, sum_mm
84
+ REAL(DP), PARAMETER :: eps = 1.e-12_dp
85
+ INTEGER :: ipol, na
86
+ ! counter on polarization
87
+ ! counter on atoms
88
+ !
89
+ REAL(DP) :: latvecs(3,3)
90
+ INTEGER :: atnum(1:nat)
91
+ REAL(DP) :: stress_dftd3(3,3)
92
+ !
93
+ ! TODO: get rid of this !!!! Use standard method for duplicated global data
94
+ REAL(DP), POINTER :: vloc_d (:, :)
95
+ INTEGER :: ierr
96
+ #if defined(__CUDA)
97
+ attributes(DEVICE) :: vloc_d
98
+ #endif
99
+ !
100
+ force(:,:) = 0.D0
101
+ !
102
+ ! Early return if all forces to be set to zero
103
+ !
104
+ IF ( ALL( if_pos == 0 ) ) RETURN
105
+ !
106
+ CALL start_clock( 'forces' )
107
+ ! Cleanup scratch space used in previous SCF iterations.
108
+ ! This will reduce memory footprint.
109
+ CALL dev_buf%reinit(ierr)
110
+ IF (ierr .ne. 0) CALL infomsg('forces', 'Cannot reset GPU buffers! Some buffers still locked.')
111
+ !
112
+ !
113
+ ALLOCATE( forcenl(3,nat), forcelc(3,nat), forcecc(3,nat), &
114
+ forceh(3,nat), forceion(3,nat), forcescc(3,nat) )
115
+ !
116
+ forcescc(:,:) = 0.D0
117
+ forceh(:,:) = 0.D0
118
+ !
119
+ ! ... The nonlocal contribution is computed here
120
+ !
121
+ call start_clock('frc_us')
122
+ IF (.not. use_gpu) CALL force_us( forcenl )
123
+ IF ( use_gpu) CALL force_us_gpu( forcenl )
124
+ call stop_clock('frc_us')
125
+ !
126
+ ! ... The local contribution
127
+ !
128
+ CALL start_clock('frc_lc')
129
+ IF (.not. use_gpu) & ! On the CPU
130
+ CALL force_lc( nat, tau, ityp, alat, omega, ngm, ngl, igtongl, &
131
+ g, rho%of_r(:,1), dfftp%nl, gstart, gamma_only, vloc, &
132
+ forcelc )
133
+ IF ( use_gpu) THEN ! On the GPU
134
+ ! move these data to the GPU
135
+ CALL dev_buf%lock_buffer(vloc_d, (/ ngl, ntyp /) , ierr)
136
+ IF (ierr /= 0) CALL errore( 'forces', 'cannot allocate buffers', -1 )
137
+ CALL dev_memcpy(vloc_d, vloc)
138
+ CALL force_lc_gpu( nat, tau, ityp, alat, omega, ngm, ngl, igtongl_d, &
139
+ g_d, rho%of_r(:,1), dfftp%nl_d, gstart, gamma_only, vloc_d, &
140
+ forcelc )
141
+ CALL dev_buf%release_buffer(vloc_d, ierr)
142
+ END IF
143
+ call stop_clock('frc_lc')
144
+ !
145
+ ! ... The NLCC contribution
146
+ !
147
+ call start_clock('frc_cc')
148
+ IF (.not. use_gpu) CALL force_cc( forcecc )
149
+ IF ( use_gpu) CALL force_cc_gpu( forcecc )
150
+ !
151
+ call stop_clock('frc_cc')
152
+
153
+ ! ... The Hubbard contribution
154
+ ! (included by force_us if using beta as local projectors)
155
+ !
156
+ IF (.not. use_gpu) THEN
157
+ IF ( lda_plus_u .AND. U_projection.NE.'pseudo' ) CALL force_hub( forceh )
158
+ ELSE
159
+ IF ( lda_plus_u .AND. U_projection.NE.'pseudo' ) CALL force_hub_gpu( forceh )
160
+ ENDIF
161
+ !
162
+ ! ... The ionic contribution is computed here
163
+ !
164
+ IF( do_comp_esm ) THEN
165
+ CALL esm_force_ew( forceion )
166
+ ELSE
167
+ CALL force_ew( alat, nat, ntyp, ityp, zv, at, bg, tau, omega, g, &
168
+ gg, ngm, gstart, gamma_only, gcutm, strf, forceion )
169
+ ENDIF
170
+ !
171
+ ! ... the semi-empirical dispersion correction
172
+ !
173
+ IF ( llondon ) THEN
174
+ !
175
+ ALLOCATE( force_disp(3,nat) )
176
+ force_disp(:,:) = 0.0_DP
177
+ force_disp = force_london( alat , nat , ityp , at , bg , tau )
178
+ !
179
+ ENDIF
180
+ !
181
+ ! ... The Grimme-D3 dispersion correction
182
+ !
183
+ IF ( ldftd3 ) THEN
184
+ !
185
+ CALL start_clock('force_dftd3')
186
+ ALLOCATE( force_d3(3, nat) )
187
+ force_d3(:,:) = 0.0_DP
188
+ latvecs(:,:) = at(:,:)*alat
189
+ tau(:,:) = tau(:,:)*alat
190
+ atnum(:) = get_atomic_number(atm(ityp(:)))
191
+ CALL dftd3_pbc_gdisp( dftd3, tau, atnum, latvecs, &
192
+ force_d3, stress_dftd3 )
193
+ force_d3 = -2.d0*force_d3
194
+ tau(:,:) = tau(:,:)/alat
195
+ CALL stop_clock('force_dftd3')
196
+ ENDIF
197
+ !
198
+ !
199
+ IF (lxdm) THEN
200
+ ALLOCATE( force_disp_xdm(3,nat) )
201
+ force_disp_xdm = 0._dp
202
+ force_disp_xdm = force_xdm(nat)
203
+ ENDIF
204
+ !
205
+ ! ... The SCF contribution
206
+ !
207
+ call start_clock('frc_scc')
208
+ ! Cleanup scratch space again, next subroutines uses a lot of memory.
209
+ ! In an ideal world this should be done only if really needed (TODO).
210
+ CALL dev_buf%reinit(ierr)
211
+ IF (ierr .ne. 0) CALL errore('forces', 'Cannot reset GPU buffers! Buffers still locked: ', abs(ierr))
212
+ !
213
+ IF ( .not. use_gpu ) CALL force_corr( forcescc )
214
+ IF ( use_gpu ) CALL force_corr_gpu( forcescc )
215
+ call stop_clock('frc_scc')
216
+ !
217
+ IF (do_comp_mt) THEN
218
+ !
219
+ ALLOCATE( force_mt(3,nat) )
220
+ CALL wg_corr_force( .TRUE., omega, nat, ntyp, ityp, ngm, g, tau, zv, strf, &
221
+ rho%of_g(:,1), force_mt )
222
+ ENDIF
223
+ !
224
+ ! ... call void routine for user define/ plugin patches on internal forces
225
+ !
226
+ CALL plugin_int_forces()
227
+ !
228
+ ! ... Berry's phase electric field terms
229
+ !
230
+ IF (lelfield) THEN
231
+ ALLOCATE( forces_bp_efield(3,nat) )
232
+ forces_bp_efield(:,:) = 0.d0
233
+ IF (.NOT.l3dstring) THEN
234
+ IF (okvan) CALL forces_us_efield( forces_bp_efield, gdir, efield )
235
+ CALL forces_ion_efield( forces_bp_efield, gdir, efield )
236
+ ELSE
237
+ IF (okvan) THEN
238
+ DO ipol = 1, 3
239
+ CALL forces_us_efield( forces_bp_efield, ipol, efield_cry(ipol) )
240
+ ENDDO
241
+ ENDIF
242
+ DO ipol = 1, 3
243
+ CALL forces_ion_efield( forces_bp_efield, ipol, efield_cart(ipol) )
244
+ ENDDO
245
+ ENDIF
246
+ ENDIF
247
+ !
248
+ ! ... here we sum all the contributions and compute the total force acting
249
+ ! ... on the crystal
250
+ !
251
+ DO ipol = 1, 3
252
+ !
253
+ sumfor = 0.D0
254
+ !
255
+ DO na = 1, nat
256
+ !
257
+ force(ipol,na) = force(ipol,na) + &
258
+ forcenl(ipol,na) + &
259
+ forceion(ipol,na) + &
260
+ forcelc(ipol,na) + &
261
+ forcecc(ipol,na) + &
262
+ forceh(ipol,na) + &
263
+ forcescc(ipol,na)
264
+ !
265
+ IF ( llondon ) force(ipol,na) = force(ipol,na) + force_disp(ipol,na)
266
+ IF ( ldftd3 ) force(ipol,na) = force(ipol,na) + force_d3(ipol,na)
267
+ IF ( lxdm ) force(ipol,na) = force(ipol,na) + force_disp_xdm(ipol,na)
268
+ ! factor 2 converts from Ha to Ry a.u.
269
+ ! the IF condition is to avoid double counting
270
+ IF ( mbd_vdw ) THEN
271
+ force(ipol, na) = force(ipol, na) + 2.0_dp*FmbdvdW(ipol, na)
272
+ ELSE IF ( ts_vdw ) THEN
273
+ force(ipol, na) = force(ipol, na) + 2.0_dp*FtsvdW(ipol, na)
274
+ ENDIF
275
+ IF ( tefield ) force(ipol,na) = force(ipol,na) + forcefield(ipol,na)
276
+ IF ( gate ) force(ipol,na) = force(ipol,na) + forcegate(ipol,na) ! TB
277
+ IF (lelfield) force(ipol,na) = force(ipol,na) + forces_bp_efield(ipol,na)
278
+ IF (do_comp_mt) force(ipol,na) = force(ipol,na) + force_mt(ipol,na)
279
+ !
280
+ sumfor = sumfor + force(ipol,na)
281
+ !
282
+ ENDDO
283
+ !
284
+ !TB
285
+ IF ((gate.AND.relaxz).AND.(ipol==3)) WRITE( stdout, '("Total force in z direction = 0 disabled")')
286
+ !
287
+ IF ( (do_comp_esm .AND. ( esm_bc /= 'pbc' )).OR.(gate.AND.relaxz) ) THEN
288
+ !
289
+ ! ... impose total force along xy = 0
290
+ !
291
+ DO na = 1, nat
292
+ IF ( ipol /= 3) force(ipol,na) = force(ipol,na) &
293
+ - sumfor / DBLE( nat )
294
+ ENDDO
295
+ !
296
+ ELSEIF ( qmmm_mode < 0 ) THEN
297
+ !
298
+ ! ... impose total force = 0 except in a QM-MM calculation
299
+ !
300
+ DO na = 1, nat
301
+ force(ipol,na) = force(ipol,na) - sumfor / DBLE( nat )
302
+ ENDDO
303
+ !
304
+ ENDIF
305
+ !
306
+ ENDDO
307
+ !
308
+ ! ... resymmetrize (should not be needed, but ...)
309
+ !
310
+ CALL symvector( nat, force )
311
+ !
312
+ IF ( remove_rigid_rot ) &
313
+ CALL remove_tot_torque( nat, tau, amass(ityp(:)), force )
314
+ !
315
+ IF( textfor ) force(:,:) = force(:,:) + extfor(:,:)
316
+ !
317
+ ! ... call void routine for user define/ plugin patches on external forces
318
+ !
319
+ CALL plugin_ext_forces()
320
+ !
321
+ ! ... write on output the forces
322
+ !
323
+ WRITE( stdout, '(/,5x,"Forces acting on atoms (cartesian axes, Ry/au):", / )')
324
+ DO na = 1, nat
325
+ WRITE( stdout, 9035) na, ityp(na), force(:,na)
326
+ ENDDO
327
+ !
328
+ ! ... forces on fixed coordinates are set to zero ( C.S. 15/10/2003 )
329
+ !
330
+ force(:,:) = force(:,:) * DBLE( if_pos )
331
+ forcescc(:,:) = forcescc(:,:) * DBLE( if_pos )
332
+ !
333
+ IF ( iverbosity > 0 ) THEN
334
+ IF ( do_comp_mt ) THEN
335
+ WRITE( stdout, '(5x,"The Martyna-Tuckerman correction term to forces")')
336
+ DO na = 1, nat
337
+ WRITE( stdout, 9035) na, ityp(na), ( force_mt(ipol,na), ipol = 1, 3 )
338
+ ENDDO
339
+ END IF
340
+ !
341
+ WRITE( stdout, '(5x,"The non-local contrib. to forces")')
342
+ DO na = 1, nat
343
+ WRITE( stdout, 9035) na, ityp(na), ( forcenl(ipol,na), ipol = 1, 3 )
344
+ ENDDO
345
+ WRITE( stdout, '(5x,"The ionic contribution to forces")')
346
+ DO na = 1, nat
347
+ WRITE( stdout, 9035) na, ityp(na), ( forceion(ipol,na), ipol = 1, 3 )
348
+ ENDDO
349
+ WRITE( stdout, '(5x,"The local contribution to forces")')
350
+ DO na = 1, nat
351
+ WRITE( stdout, 9035) na, ityp(na), ( forcelc(ipol,na), ipol = 1, 3 )
352
+ ENDDO
353
+ WRITE( stdout, '(5x,"The core correction contribution to forces")')
354
+ DO na = 1, nat
355
+ WRITE( stdout, 9035) na, ityp(na), ( forcecc(ipol,na), ipol = 1, 3 )
356
+ ENDDO
357
+ WRITE( stdout, '(5x,"The Hubbard contrib. to forces")')
358
+ DO na = 1, nat
359
+ WRITE( stdout, 9035) na, ityp(na), ( forceh(ipol,na), ipol = 1, 3 )
360
+ ENDDO
361
+ WRITE( stdout, '(5x,"The SCF correction term to forces")')
362
+ DO na = 1, nat
363
+ WRITE( stdout, 9035) na, ityp(na), ( forcescc(ipol,na), ipol = 1, 3 )
364
+ ENDDO
365
+ !
366
+ IF ( llondon) THEN
367
+ WRITE( stdout, '(/,5x,"Dispersion contribution to forces:")')
368
+ DO na = 1, nat
369
+ WRITE( stdout, 9035) na, ityp(na), (force_disp(ipol,na), ipol = 1, 3)
370
+ ENDDO
371
+ END IF
372
+ !
373
+ IF ( ldftd3 ) THEN
374
+ WRITE( stdout, '(/,5x,"DFT-D3 dispersion contribution to forces:")')
375
+ DO na = 1, nat
376
+ WRITE( stdout, 9035) na, ityp(na), (force_d3(ipol,na), ipol = 1, 3)
377
+ ENDDO
378
+ END IF
379
+ !
380
+ IF (lxdm) THEN
381
+ WRITE( stdout, '(/,5x,"XDM contribution to forces:")')
382
+ DO na = 1, nat
383
+ WRITE( stdout, 9035) na, ityp(na), (force_disp_xdm(ipol,na), ipol = 1, 3)
384
+ ENDDO
385
+ END IF
386
+ !
387
+ ! again, as above, if condition is to avoid redundant printing
388
+ IF ( mbd_vdw ) THEN
389
+ WRITE( stdout, '(/,5x, "MBD contribution to forces")')
390
+ DO na = 1, nat
391
+ WRITE( stdout, 9035) na, ityp(na), (2.0d0*FmbdvdW(ipol, na), ipol = 1, 3)
392
+ ENDDO
393
+ ELSE IF ( ts_vdw ) THEN
394
+ WRITE( stdout, '(/,5x, "TS-VDW contribution to forces")')
395
+ DO na = 1, nat
396
+ WRITE( stdout, 9035) na, ityp(na), (2.0d0*FtsvdW(ipol, na), ipol = 1, 3)
397
+ ENDDO
398
+ ENDIF
399
+
400
+ !
401
+ ! TB gate forces
402
+ IF ( gate ) THEN
403
+ WRITE( stdout, '(/,5x,"Gate contribution to forces:")')
404
+ DO na = 1, nat
405
+ WRITE( stdout, 9035) na, ityp(na), (forcegate(ipol,na), ipol = 1, 3)
406
+ ENDDO
407
+ END IF
408
+ !
409
+ END IF
410
+ !
411
+ sumfor = 0.D0
412
+ sumscf = 0.D0
413
+ !
414
+ DO na = 1, nat
415
+ !
416
+ sumfor = sumfor + force(1,na)**2 + force(2,na)**2 + force(3,na)**2
417
+ sumscf = sumscf + forcescc(1,na)**2 + forcescc(2,na)**2+ forcescc(3,na)**2
418
+ !
419
+ ENDDO
420
+ !
421
+ sumfor = SQRT( sumfor )
422
+ sumscf = SQRT( sumscf )
423
+ !
424
+ WRITE( stdout, '(/5x,"Total force = ",F12.6,5X, &
425
+ & "Total SCF correction = ",F12.6)') sumfor, sumscf
426
+ !
427
+ IF ( llondon .AND. iverbosity > 0 ) THEN
428
+ !
429
+ sum_mm = 0.D0
430
+ DO na = 1, nat
431
+ sum_mm = sum_mm + &
432
+ force_disp(1,na)**2 + force_disp(2,na)**2 + force_disp(3,na)**2
433
+ ENDDO
434
+ sum_mm = SQRT( sum_mm )
435
+ WRITE ( stdout, '(/,5x, "Total Dispersion Force = ",F12.6)') sum_mm
436
+ !
437
+ END IF
438
+ !
439
+ IF ( ldftd3 .AND. iverbosity > 0 ) THEN
440
+ !
441
+ sum_mm = 0.D0
442
+ DO na = 1, nat
443
+ sum_mm = sum_mm + &
444
+ force_d3(1,na)**2 + force_d3(2,na)**2 + force_d3(3,na)**2
445
+ ENDDO
446
+ sum_mm = SQRT( sum_mm )
447
+ WRITE ( stdout, '(/,5x, "DFT-D3 dispersion Force = ",F12.6)') sum_mm
448
+ !
449
+ END IF
450
+ !
451
+ IF ( lxdm .AND. iverbosity > 0 ) THEN
452
+ !
453
+ sum_mm = 0.D0
454
+ DO na = 1, nat
455
+ sum_mm = sum_mm + &
456
+ force_disp_xdm(1,na)**2 + force_disp_xdm(2,na)**2 + force_disp_xdm(3,na)**2
457
+ ENDDO
458
+ sum_mm = SQRT( sum_mm )
459
+ WRITE ( stdout, '(/,5x, "Total XDM Force = ",F12.6)') sum_mm
460
+ !
461
+ END IF
462
+ !
463
+ DEALLOCATE( forcenl, forcelc, forcecc, forceh, forceion, forcescc )
464
+ IF ( llondon ) DEALLOCATE( force_disp )
465
+ IF ( ldftd3 ) DEALLOCATE( force_d3 )
466
+ IF ( lxdm ) DEALLOCATE( force_disp_xdm )
467
+ IF ( lelfield ) DEALLOCATE( forces_bp_efield )
468
+ IF(ALLOCATED(force_mt)) DEALLOCATE( force_mt )
469
+ !
470
+ ! FIXME: what is the following line good for?
471
+ !
472
+ lforce = .TRUE.
473
+ !
474
+ CALL stop_clock( 'forces' )
475
+ !
476
+ IF ( ( sumfor < 10.D0*sumscf ) .AND. ( sumfor > nat*eps ) ) &
477
+ WRITE( stdout,'(5x,"SCF correction compared to forces is large: ", &
478
+ & "reduce conv_thr to get better values")')
479
+
480
+ RETURN
481
+ !
482
+ 9035 FORMAT(5X,'atom ',I4,' type ',I2,' force = ',3F14.8)
483
+ !
484
+ 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
@@ -0,0 +1,21 @@
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
17
+ !
18
+ IMPLICIT NONE
19
+ !
20
+ !
21
+ END SUBROUTINE plugin_initialization