hillclimber 0.1.5__cp313-cp313-musllinux_1_2_aarch64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- hillclimber/__init__.py +39 -0
- hillclimber/actions.py +53 -0
- hillclimber/analysis.py +590 -0
- hillclimber/biases.py +293 -0
- hillclimber/calc.py +22 -0
- hillclimber/cvs.py +1070 -0
- hillclimber/interfaces.py +133 -0
- hillclimber/metadynamics.py +325 -0
- hillclimber/nodes.py +6 -0
- hillclimber/opes.py +359 -0
- hillclimber/selectors.py +230 -0
- hillclimber/virtual_atoms.py +341 -0
- hillclimber-0.1.5.dist-info/METADATA +210 -0
- hillclimber-0.1.5.dist-info/RECORD +472 -0
- hillclimber-0.1.5.dist-info/WHEEL +5 -0
- hillclimber-0.1.5.dist-info/entry_points.txt +8 -0
- hillclimber-0.1.5.dist-info/licenses/LICENSE +165 -0
- hillclimber-0.1.5.dist-info/sboms/auditwheel.cdx.json +1 -0
- hillclimber.libs/libgcc_s-2d945d6c.so.1 +0 -0
- hillclimber.libs/libgomp-1ede7ee7.so.1.0.0 +0 -0
- hillclimber.libs/libstdc++-85f2cd6d.so.6.0.33 +0 -0
- plumed/__init__.py +104 -0
- plumed/_lib/bin/plumed +0 -0
- plumed/_lib/bin/plumed-config +9 -0
- plumed/_lib/bin/plumed-patch +9 -0
- plumed/_lib/include/plumed/adjmat/AdjacencyMatrixBase.h +659 -0
- plumed/_lib/include/plumed/adjmat/ContactMatrix.h +59 -0
- plumed/_lib/include/plumed/asmjit/arch.h +228 -0
- plumed/_lib/include/plumed/asmjit/arm.h +43 -0
- plumed/_lib/include/plumed/asmjit/asmjit.h +69 -0
- plumed/_lib/include/plumed/asmjit/asmjit_apibegin.h +143 -0
- plumed/_lib/include/plumed/asmjit/asmjit_apiend.h +93 -0
- plumed/_lib/include/plumed/asmjit/asmjit_build.h +971 -0
- plumed/_lib/include/plumed/asmjit/assembler.h +183 -0
- plumed/_lib/include/plumed/asmjit/base.h +56 -0
- plumed/_lib/include/plumed/asmjit/codebuilder.h +944 -0
- plumed/_lib/include/plumed/asmjit/codecompiler.h +767 -0
- plumed/_lib/include/plumed/asmjit/codeemitter.h +528 -0
- plumed/_lib/include/plumed/asmjit/codeholder.h +777 -0
- plumed/_lib/include/plumed/asmjit/constpool.h +286 -0
- plumed/_lib/include/plumed/asmjit/cpuinfo.h +402 -0
- plumed/_lib/include/plumed/asmjit/func.h +1327 -0
- plumed/_lib/include/plumed/asmjit/globals.h +370 -0
- plumed/_lib/include/plumed/asmjit/inst.h +137 -0
- plumed/_lib/include/plumed/asmjit/logging.h +317 -0
- plumed/_lib/include/plumed/asmjit/misc_p.h +103 -0
- plumed/_lib/include/plumed/asmjit/moved_string.h +318 -0
- plumed/_lib/include/plumed/asmjit/operand.h +1599 -0
- plumed/_lib/include/plumed/asmjit/osutils.h +207 -0
- plumed/_lib/include/plumed/asmjit/regalloc_p.h +597 -0
- plumed/_lib/include/plumed/asmjit/runtime.h +227 -0
- plumed/_lib/include/plumed/asmjit/simdtypes.h +1104 -0
- plumed/_lib/include/plumed/asmjit/utils.h +1387 -0
- plumed/_lib/include/plumed/asmjit/vmem.h +183 -0
- plumed/_lib/include/plumed/asmjit/x86.h +45 -0
- plumed/_lib/include/plumed/asmjit/x86assembler.h +125 -0
- plumed/_lib/include/plumed/asmjit/x86builder.h +117 -0
- plumed/_lib/include/plumed/asmjit/x86compiler.h +322 -0
- plumed/_lib/include/plumed/asmjit/x86emitter.h +5149 -0
- plumed/_lib/include/plumed/asmjit/x86globals.h +535 -0
- plumed/_lib/include/plumed/asmjit/x86inst.h +2547 -0
- plumed/_lib/include/plumed/asmjit/x86instimpl_p.h +74 -0
- plumed/_lib/include/plumed/asmjit/x86internal_p.h +108 -0
- plumed/_lib/include/plumed/asmjit/x86logging_p.h +92 -0
- plumed/_lib/include/plumed/asmjit/x86misc.h +417 -0
- plumed/_lib/include/plumed/asmjit/x86operand.h +1133 -0
- plumed/_lib/include/plumed/asmjit/x86regalloc_p.h +734 -0
- plumed/_lib/include/plumed/asmjit/zone.h +1157 -0
- plumed/_lib/include/plumed/bias/Bias.h +82 -0
- plumed/_lib/include/plumed/bias/ReweightBase.h +58 -0
- plumed/_lib/include/plumed/blas/blas.h +253 -0
- plumed/_lib/include/plumed/blas/def_external.h +61 -0
- plumed/_lib/include/plumed/blas/def_internal.h +97 -0
- plumed/_lib/include/plumed/blas/real.h +49 -0
- plumed/_lib/include/plumed/cltools/CLTool.h +32 -0
- plumed/_lib/include/plumed/clusters/ClusteringBase.h +70 -0
- plumed/_lib/include/plumed/colvar/Colvar.h +32 -0
- plumed/_lib/include/plumed/colvar/ColvarInput.h +68 -0
- plumed/_lib/include/plumed/colvar/ColvarShortcut.h +81 -0
- plumed/_lib/include/plumed/colvar/CoordinationBase.h +52 -0
- plumed/_lib/include/plumed/colvar/MultiColvarTemplate.h +333 -0
- plumed/_lib/include/plumed/colvar/PathMSDBase.h +101 -0
- plumed/_lib/include/plumed/colvar/RMSDVector.h +78 -0
- plumed/_lib/include/plumed/config/Config.h +118 -0
- plumed/_lib/include/plumed/config/version.h +9 -0
- plumed/_lib/include/plumed/contour/ContourFindingObject.h +87 -0
- plumed/_lib/include/plumed/contour/DistanceFromContourBase.h +82 -0
- plumed/_lib/include/plumed/contour/FindContour.h +67 -0
- plumed/_lib/include/plumed/core/Action.h +540 -0
- plumed/_lib/include/plumed/core/ActionAnyorder.h +48 -0
- plumed/_lib/include/plumed/core/ActionAtomistic.h +343 -0
- plumed/_lib/include/plumed/core/ActionForInterface.h +99 -0
- plumed/_lib/include/plumed/core/ActionPilot.h +57 -0
- plumed/_lib/include/plumed/core/ActionRegister.h +124 -0
- plumed/_lib/include/plumed/core/ActionSet.h +163 -0
- plumed/_lib/include/plumed/core/ActionSetup.h +48 -0
- plumed/_lib/include/plumed/core/ActionShortcut.h +73 -0
- plumed/_lib/include/plumed/core/ActionToGetData.h +59 -0
- plumed/_lib/include/plumed/core/ActionToPutData.h +101 -0
- plumed/_lib/include/plumed/core/ActionWithArguments.h +140 -0
- plumed/_lib/include/plumed/core/ActionWithMatrix.h +87 -0
- plumed/_lib/include/plumed/core/ActionWithValue.h +258 -0
- plumed/_lib/include/plumed/core/ActionWithVector.h +94 -0
- plumed/_lib/include/plumed/core/ActionWithVirtualAtom.h +123 -0
- plumed/_lib/include/plumed/core/CLTool.h +177 -0
- plumed/_lib/include/plumed/core/CLToolMain.h +102 -0
- plumed/_lib/include/plumed/core/CLToolRegister.h +108 -0
- plumed/_lib/include/plumed/core/Colvar.h +115 -0
- plumed/_lib/include/plumed/core/DataPassingObject.h +94 -0
- plumed/_lib/include/plumed/core/DataPassingTools.h +54 -0
- plumed/_lib/include/plumed/core/DomainDecomposition.h +120 -0
- plumed/_lib/include/plumed/core/ExchangePatterns.h +47 -0
- plumed/_lib/include/plumed/core/FlexibleBin.h +63 -0
- plumed/_lib/include/plumed/core/GREX.h +61 -0
- plumed/_lib/include/plumed/core/GenericMolInfo.h +89 -0
- plumed/_lib/include/plumed/core/Group.h +41 -0
- plumed/_lib/include/plumed/core/ModuleMap.h +30 -0
- plumed/_lib/include/plumed/core/ParallelTaskManager.h +1023 -0
- plumed/_lib/include/plumed/core/PbcAction.h +61 -0
- plumed/_lib/include/plumed/core/PlumedMain.h +632 -0
- plumed/_lib/include/plumed/core/PlumedMainInitializer.h +118 -0
- plumed/_lib/include/plumed/core/RegisterBase.h +340 -0
- plumed/_lib/include/plumed/core/TargetDist.h +48 -0
- plumed/_lib/include/plumed/core/Value.h +547 -0
- plumed/_lib/include/plumed/core/WithCmd.h +93 -0
- plumed/_lib/include/plumed/dimred/SMACOF.h +55 -0
- plumed/_lib/include/plumed/drr/DRR.h +383 -0
- plumed/_lib/include/plumed/drr/colvar_UIestimator.h +777 -0
- plumed/_lib/include/plumed/fisst/legendre_rule_fast.h +44 -0
- plumed/_lib/include/plumed/function/Custom.h +54 -0
- plumed/_lib/include/plumed/function/Function.h +85 -0
- plumed/_lib/include/plumed/function/FunctionOfMatrix.h +368 -0
- plumed/_lib/include/plumed/function/FunctionOfScalar.h +135 -0
- plumed/_lib/include/plumed/function/FunctionOfVector.h +296 -0
- plumed/_lib/include/plumed/function/FunctionSetup.h +180 -0
- plumed/_lib/include/plumed/function/FunctionShortcut.h +130 -0
- plumed/_lib/include/plumed/function/FunctionWithSingleArgument.h +165 -0
- plumed/_lib/include/plumed/gridtools/ActionWithGrid.h +43 -0
- plumed/_lib/include/plumed/gridtools/EvaluateGridFunction.h +99 -0
- plumed/_lib/include/plumed/gridtools/FunctionOfGrid.h +295 -0
- plumed/_lib/include/plumed/gridtools/GridCoordinatesObject.h +179 -0
- plumed/_lib/include/plumed/gridtools/GridSearch.h +135 -0
- plumed/_lib/include/plumed/gridtools/Interpolator.h +45 -0
- plumed/_lib/include/plumed/gridtools/KDE.h +455 -0
- plumed/_lib/include/plumed/gridtools/RDF.h +40 -0
- plumed/_lib/include/plumed/gridtools/SumOfKernels.h +219 -0
- plumed/_lib/include/plumed/isdb/MetainferenceBase.h +398 -0
- plumed/_lib/include/plumed/lapack/def_external.h +207 -0
- plumed/_lib/include/plumed/lapack/def_internal.h +388 -0
- plumed/_lib/include/plumed/lapack/lapack.h +899 -0
- plumed/_lib/include/plumed/lapack/lapack_limits.h +79 -0
- plumed/_lib/include/plumed/lapack/real.h +50 -0
- plumed/_lib/include/plumed/lepton/CompiledExpression.h +164 -0
- plumed/_lib/include/plumed/lepton/CustomFunction.h +143 -0
- plumed/_lib/include/plumed/lepton/Exception.h +93 -0
- plumed/_lib/include/plumed/lepton/ExpressionProgram.h +137 -0
- plumed/_lib/include/plumed/lepton/ExpressionTreeNode.h +145 -0
- plumed/_lib/include/plumed/lepton/Lepton.h +85 -0
- plumed/_lib/include/plumed/lepton/MSVC_erfc.h +123 -0
- plumed/_lib/include/plumed/lepton/Operation.h +1302 -0
- plumed/_lib/include/plumed/lepton/ParsedExpression.h +165 -0
- plumed/_lib/include/plumed/lepton/Parser.h +111 -0
- plumed/_lib/include/plumed/lepton/windowsIncludes.h +73 -0
- plumed/_lib/include/plumed/mapping/Path.h +44 -0
- plumed/_lib/include/plumed/mapping/PathProjectionCalculator.h +57 -0
- plumed/_lib/include/plumed/matrixtools/MatrixOperationBase.h +54 -0
- plumed/_lib/include/plumed/matrixtools/MatrixTimesMatrix.h +309 -0
- plumed/_lib/include/plumed/matrixtools/MatrixTimesVectorBase.h +365 -0
- plumed/_lib/include/plumed/matrixtools/OuterProduct.h +238 -0
- plumed/_lib/include/plumed/maze/Core.h +65 -0
- plumed/_lib/include/plumed/maze/Loss.h +86 -0
- plumed/_lib/include/plumed/maze/Member.h +66 -0
- plumed/_lib/include/plumed/maze/Memetic.h +799 -0
- plumed/_lib/include/plumed/maze/Optimizer.h +357 -0
- plumed/_lib/include/plumed/maze/Random_MT.h +156 -0
- plumed/_lib/include/plumed/maze/Tools.h +183 -0
- plumed/_lib/include/plumed/metatomic/vesin.h +188 -0
- plumed/_lib/include/plumed/molfile/Gromacs.h +2013 -0
- plumed/_lib/include/plumed/molfile/endianswap.h +217 -0
- plumed/_lib/include/plumed/molfile/fastio.h +683 -0
- plumed/_lib/include/plumed/molfile/largefiles.h +78 -0
- plumed/_lib/include/plumed/molfile/libmolfile_plugin.h +77 -0
- plumed/_lib/include/plumed/molfile/molfile_plugin.h +1034 -0
- plumed/_lib/include/plumed/molfile/periodic_table.h +248 -0
- plumed/_lib/include/plumed/molfile/readpdb.h +447 -0
- plumed/_lib/include/plumed/molfile/vmdplugin.h +236 -0
- plumed/_lib/include/plumed/multicolvar/MultiColvarShortcuts.h +45 -0
- plumed/_lib/include/plumed/opes/ExpansionCVs.h +79 -0
- plumed/_lib/include/plumed/sasa/Sasa.h +32 -0
- plumed/_lib/include/plumed/secondarystructure/SecondaryStructureBase.h +372 -0
- plumed/_lib/include/plumed/setup/ActionSetup.h +25 -0
- plumed/_lib/include/plumed/small_vector/small_vector.h +6114 -0
- plumed/_lib/include/plumed/symfunc/CoordinationNumbers.h +41 -0
- plumed/_lib/include/plumed/tools/Angle.h +52 -0
- plumed/_lib/include/plumed/tools/AtomDistribution.h +138 -0
- plumed/_lib/include/plumed/tools/AtomNumber.h +152 -0
- plumed/_lib/include/plumed/tools/BiasRepresentation.h +106 -0
- plumed/_lib/include/plumed/tools/BitmaskEnum.h +167 -0
- plumed/_lib/include/plumed/tools/Brent1DRootSearch.h +159 -0
- plumed/_lib/include/plumed/tools/CheckInRange.h +44 -0
- plumed/_lib/include/plumed/tools/Citations.h +74 -0
- plumed/_lib/include/plumed/tools/ColvarOutput.h +118 -0
- plumed/_lib/include/plumed/tools/Communicator.h +316 -0
- plumed/_lib/include/plumed/tools/ConjugateGradient.h +80 -0
- plumed/_lib/include/plumed/tools/DLLoader.h +79 -0
- plumed/_lib/include/plumed/tools/ERMSD.h +73 -0
- plumed/_lib/include/plumed/tools/Exception.h +406 -0
- plumed/_lib/include/plumed/tools/File.h +28 -0
- plumed/_lib/include/plumed/tools/FileBase.h +153 -0
- plumed/_lib/include/plumed/tools/FileTools.h +37 -0
- plumed/_lib/include/plumed/tools/ForwardDecl.h +54 -0
- plumed/_lib/include/plumed/tools/Grid.h +638 -0
- plumed/_lib/include/plumed/tools/HistogramBead.h +136 -0
- plumed/_lib/include/plumed/tools/IFile.h +117 -0
- plumed/_lib/include/plumed/tools/KernelFunctions.h +113 -0
- plumed/_lib/include/plumed/tools/Keywords.h +380 -0
- plumed/_lib/include/plumed/tools/LatticeReduction.h +66 -0
- plumed/_lib/include/plumed/tools/LeptonCall.h +64 -0
- plumed/_lib/include/plumed/tools/LinkCells.h +126 -0
- plumed/_lib/include/plumed/tools/Log.h +41 -0
- plumed/_lib/include/plumed/tools/LoopUnroller.h +163 -0
- plumed/_lib/include/plumed/tools/Matrix.h +721 -0
- plumed/_lib/include/plumed/tools/MatrixSquareBracketsAccess.h +138 -0
- plumed/_lib/include/plumed/tools/MergeVectorTools.h +153 -0
- plumed/_lib/include/plumed/tools/Minimise1DBrent.h +244 -0
- plumed/_lib/include/plumed/tools/MinimiseBase.h +120 -0
- plumed/_lib/include/plumed/tools/MolDataClass.h +51 -0
- plumed/_lib/include/plumed/tools/NeighborList.h +112 -0
- plumed/_lib/include/plumed/tools/OFile.h +286 -0
- plumed/_lib/include/plumed/tools/OpenACC.h +180 -0
- plumed/_lib/include/plumed/tools/OpenMP.h +75 -0
- plumed/_lib/include/plumed/tools/PDB.h +154 -0
- plumed/_lib/include/plumed/tools/Pbc.h +139 -0
- plumed/_lib/include/plumed/tools/PlumedHandle.h +105 -0
- plumed/_lib/include/plumed/tools/RMSD.h +493 -0
- plumed/_lib/include/plumed/tools/Random.h +80 -0
- plumed/_lib/include/plumed/tools/RootFindingBase.h +79 -0
- plumed/_lib/include/plumed/tools/Stopwatch.h +475 -0
- plumed/_lib/include/plumed/tools/Subprocess.h +142 -0
- plumed/_lib/include/plumed/tools/SwitchingFunction.h +208 -0
- plumed/_lib/include/plumed/tools/Tensor.h +724 -0
- plumed/_lib/include/plumed/tools/TokenizedLine.h +123 -0
- plumed/_lib/include/plumed/tools/Tools.h +638 -0
- plumed/_lib/include/plumed/tools/Torsion.h +55 -0
- plumed/_lib/include/plumed/tools/TrajectoryParser.h +118 -0
- plumed/_lib/include/plumed/tools/Tree.h +61 -0
- plumed/_lib/include/plumed/tools/TypesafePtr.h +463 -0
- plumed/_lib/include/plumed/tools/Units.h +167 -0
- plumed/_lib/include/plumed/tools/Vector.h +433 -0
- plumed/_lib/include/plumed/tools/View.h +296 -0
- plumed/_lib/include/plumed/tools/View2D.h +100 -0
- plumed/_lib/include/plumed/tools/h36.h +39 -0
- plumed/_lib/include/plumed/vatom/ActionWithVirtualAtom.h +32 -0
- plumed/_lib/include/plumed/ves/BasisFunctions.h +380 -0
- plumed/_lib/include/plumed/ves/CoeffsBase.h +310 -0
- plumed/_lib/include/plumed/ves/CoeffsMatrix.h +220 -0
- plumed/_lib/include/plumed/ves/CoeffsVector.h +251 -0
- plumed/_lib/include/plumed/ves/FermiSwitchingFunction.h +74 -0
- plumed/_lib/include/plumed/ves/GridIntegrationWeights.h +50 -0
- plumed/_lib/include/plumed/ves/GridLinearInterpolation.h +81 -0
- plumed/_lib/include/plumed/ves/GridProjWeights.h +61 -0
- plumed/_lib/include/plumed/ves/LinearBasisSetExpansion.h +303 -0
- plumed/_lib/include/plumed/ves/Optimizer.h +444 -0
- plumed/_lib/include/plumed/ves/TargetDistModifer.h +53 -0
- plumed/_lib/include/plumed/ves/TargetDistribution.h +266 -0
- plumed/_lib/include/plumed/ves/VesBias.h +545 -0
- plumed/_lib/include/plumed/ves/VesTools.h +142 -0
- plumed/_lib/include/plumed/ves/WaveletGrid.h +75 -0
- plumed/_lib/include/plumed/volumes/ActionVolume.h +268 -0
- plumed/_lib/include/plumed/volumes/VolumeShortcut.h +147 -0
- plumed/_lib/include/plumed/wrapper/Plumed.h +5025 -0
- plumed/_lib/include/plumed/xdrfile/xdrfile.h +663 -0
- plumed/_lib/include/plumed/xdrfile/xdrfile_trr.h +89 -0
- plumed/_lib/include/plumed/xdrfile/xdrfile_xtc.h +90 -0
- plumed/_lib/lib/PythonCVInterface.so +0 -0
- plumed/_lib/lib/libplumed.a +0 -0
- plumed/_lib/lib/libplumed.so +0 -0
- plumed/_lib/lib/libplumedKernel.so +0 -0
- plumed/_lib/lib/libplumedWrapper.a +0 -0
- plumed/_lib/lib/pkgconfig/plumed.pc +13 -0
- plumed/_lib/lib/pkgconfig/plumedInternals.pc +13 -0
- plumed/_lib/lib/pkgconfig/plumedWrapper.pc +13 -0
- plumed/_lib/lib/plumed/fortran/plumed.f90 +879 -0
- plumed/_lib/lib/plumed/fortran/plumed_f08.f90 +2625 -0
- plumed/_lib/lib/plumed/modulefile +69 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.config +43 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/CMakeLists.txt +543 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/CMakeLists.txt.preplumed +540 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/expanded.cpp +1628 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/expanded.cpp.preplumed +1590 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/expanded.h +103 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/expanded.h.preplumed +99 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/sim_util.cpp +2527 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdlib/sim_util.cpp.preplumed +2513 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/legacymdrunoptions.cpp +208 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/legacymdrunoptions.cpp.preplumed +175 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/legacymdrunoptions.h +408 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/legacymdrunoptions.h.preplumed +394 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/md.cpp +2348 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/md.cpp.preplumed +2091 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/minimize.cpp +3573 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/minimize.cpp.preplumed +3495 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/replicaexchange.cpp +1506 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/replicaexchange.cpp.preplumed +1402 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/replicaexchange.h +114 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/replicaexchange.h.preplumed +106 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/rerun.cpp +997 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/rerun.cpp.preplumed +906 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/runner.cpp +2780 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/mdrun/runner.cpp.preplumed +2738 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp +224 -0
- plumed/_lib/lib/plumed/patches/gromacs-2022.5.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp.preplumed +222 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.config +43 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/CMakeLists.txt +549 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/CMakeLists.txt.preplumed +546 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/expanded.cpp +1632 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/expanded.cpp.preplumed +1594 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/expanded.h +104 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/expanded.h.preplumed +100 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/sim_util.cpp +2624 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdlib/sim_util.cpp.preplumed +2610 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/legacymdrunoptions.cpp +208 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/legacymdrunoptions.cpp.preplumed +175 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/legacymdrunoptions.h +409 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/legacymdrunoptions.h.preplumed +395 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/md.cpp +2419 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/md.cpp.preplumed +2164 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/minimize.cpp +3546 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/minimize.cpp.preplumed +3468 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/replicaexchange.cpp +1513 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/replicaexchange.cpp.preplumed +1409 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/replicaexchange.h +114 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/replicaexchange.h.preplumed +106 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/rerun.cpp +991 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/rerun.cpp.preplumed +900 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/runner.cpp +2895 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/mdrun/runner.cpp.preplumed +2849 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp +224 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp.preplumed +222 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/taskassignment/decidegpuusage.cpp +886 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/taskassignment/decidegpuusage.cpp.preplumed +880 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/taskassignment/include/gromacs/taskassignment/decidegpuusage.h +347 -0
- plumed/_lib/lib/plumed/patches/gromacs-2023.5.diff/src/gromacs/taskassignment/include/gromacs/taskassignment/decidegpuusage.h.preplumed +345 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.config +43 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/CMakeLists.txt +575 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/CMakeLists.txt.preplumed +572 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/expanded.cpp +1632 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/expanded.cpp.preplumed +1594 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/expanded.h +104 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/expanded.h.preplumed +100 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/sim_util.cpp +2564 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdlib/sim_util.cpp.preplumed +2550 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/legacymdrunoptions.cpp +208 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/legacymdrunoptions.cpp.preplumed +175 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/legacymdrunoptions.h +410 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/legacymdrunoptions.h.preplumed +396 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/md.cpp +2435 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/md.cpp.preplumed +2187 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/minimize.cpp +3592 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/minimize.cpp.preplumed +3514 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/replicaexchange.cpp +1513 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/replicaexchange.cpp.preplumed +1409 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/replicaexchange.h +114 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/replicaexchange.h.preplumed +106 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/rerun.cpp +958 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/rerun.cpp.preplumed +929 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/runner.cpp +2987 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/mdrun/runner.cpp.preplumed +2941 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp +224 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/modularsimulator/expandedensembleelement.cpp.preplumed +222 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/taskassignment/decidegpuusage.cpp +904 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/taskassignment/decidegpuusage.cpp.preplumed +898 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/taskassignment/include/gromacs/taskassignment/decidegpuusage.h +353 -0
- plumed/_lib/lib/plumed/patches/gromacs-2024.3.diff/src/gromacs/taskassignment/include/gromacs/taskassignment/decidegpuusage.h.preplumed +351 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.config +39 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/cmake/gmxManagePlumed.cmake +82 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/cmake/gmxManagePlumed.cmake.preplumed +82 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedMDModule.cpp +162 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedMDModule.cpp.preplumed +154 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedOptions.cpp +107 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedOptions.cpp.preplumed +99 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedOptions.h +120 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedOptions.h.preplumed +111 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedforceprovider.cpp +215 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedforceprovider.cpp.preplumed +197 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedforceprovider.h +87 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/applied_forces/plumed/plumedforceprovider.h.preplumed +86 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/mdrun/runner.cpp +2971 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/mdrun/runner.cpp.preplumed +2970 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/mdrunutility/mdmodulesnotifiers.h +430 -0
- plumed/_lib/lib/plumed/patches/gromacs-2025.0.diff/src/gromacs/mdrunutility/mdmodulesnotifiers.h.preplumed +429 -0
- plumed/_lib/lib/plumed/patches/namd-2.12.config +30 -0
- plumed/_lib/lib/plumed/patches/namd-2.12.diff +267 -0
- plumed/_lib/lib/plumed/patches/namd-2.13.config +30 -0
- plumed/_lib/lib/plumed/patches/namd-2.13.diff +267 -0
- plumed/_lib/lib/plumed/patches/namd-2.14.config +30 -0
- plumed/_lib/lib/plumed/patches/namd-2.14.diff +268 -0
- plumed/_lib/lib/plumed/patches/patch.sh +500 -0
- plumed/_lib/lib/plumed/patches/qespresso-5.0.2.config +25 -0
- plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/forces.f90 +368 -0
- plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/forces.f90.preplumed +366 -0
- plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/plugin_forces.f90 +71 -0
- plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/plugin_forces.f90.preplumed +24 -0
- plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/plugin_initialization.f90 +62 -0
- plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/plugin_initialization.f90.preplumed +21 -0
- plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/pwscf.f90 +189 -0
- plumed/_lib/lib/plumed/patches/qespresso-5.0.2.diff/PW/src/pwscf.f90.preplumed +185 -0
- plumed/_lib/lib/plumed/patches/qespresso-6.2.config +26 -0
- plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/forces.f90 +422 -0
- plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/forces.f90.preplumed +420 -0
- plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/plugin_ext_forces.f90 +70 -0
- plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/plugin_ext_forces.f90.preplumed +23 -0
- plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/plugin_initialization.f90 +62 -0
- plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/plugin_initialization.f90.preplumed +21 -0
- plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/run_pwscf.f90 +233 -0
- plumed/_lib/lib/plumed/patches/qespresso-6.2.diff/PW/src/run_pwscf.f90.preplumed +230 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.config +28 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/Modules/Makefile +175 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/Modules/Makefile.preplumed +171 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/forces.f90 +486 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/forces.f90.preplumed +484 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/plugin_ext_forces.f90 +74 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/plugin_ext_forces.f90.preplumed +23 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/plugin_initialization.f90 +64 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/plugin_initialization.f90.preplumed +21 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/run_pwscf.f90 +532 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.0.diff/PW/src/run_pwscf.f90.preplumed +518 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.config +28 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/Modules/Makefile +249 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/Modules/Makefile.preplumed +244 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/forces.f90 +532 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/forces.f90.preplumed +535 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/plugin_ext_forces.f90 +74 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/plugin_ext_forces.f90.preplumed +23 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/plugin_initialization.f90 +64 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/plugin_initialization.f90.preplumed +21 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/run_pwscf.f90 +569 -0
- plumed/_lib/lib/plumed/patches/qespresso-7.2.diff/PW/src/run_pwscf.f90.preplumed +560 -0
- plumed/_lib/lib/plumed/plumed-config +9 -0
- plumed/_lib/lib/plumed/plumed-mklib +9 -0
- plumed/_lib/lib/plumed/plumed-newcv +9 -0
- plumed/_lib/lib/plumed/plumed-partial_tempering +9 -0
- plumed/_lib/lib/plumed/plumed-patch +9 -0
- plumed/_lib/lib/plumed/plumed-runtime +0 -0
- plumed/_lib/lib/plumed/plumed-selector +9 -0
- plumed/_lib/lib/plumed/plumed-vim2html +9 -0
- plumed/_lib/lib/plumed/scripts/config.sh +126 -0
- plumed/_lib/lib/plumed/scripts/mklib.sh +175 -0
- plumed/_lib/lib/plumed/scripts/newcv.sh +26 -0
- plumed/_lib/lib/plumed/scripts/partial_tempering.sh +319 -0
- plumed/_lib/lib/plumed/scripts/patch.sh +4 -0
- plumed/_lib/lib/plumed/scripts/selector.sh +234 -0
- plumed/_lib/lib/plumed/scripts/vim2html.sh +190 -0
- plumed/_lib/lib/plumed/src/colvar/Template.cpp +116 -0
- plumed/_lib/lib/plumed/src/config/compile_options.sh +3 -0
- plumed/_lib/lib/plumed/src/config/config.txt +179 -0
- plumed/_lib/lib/plumed/src/lib/Plumed.cmake +8 -0
- plumed/_lib/lib/plumed/src/lib/Plumed.cmake.runtime +5 -0
- plumed/_lib/lib/plumed/src/lib/Plumed.cmake.shared +5 -0
- plumed/_lib/lib/plumed/src/lib/Plumed.cmake.static +5 -0
- plumed/_lib/lib/plumed/src/lib/Plumed.inc +8 -0
- plumed/_lib/lib/plumed/src/lib/Plumed.inc.runtime +5 -0
- plumed/_lib/lib/plumed/src/lib/Plumed.inc.shared +5 -0
- plumed/_lib/lib/plumed/src/lib/Plumed.inc.static +5 -0
- plumed/_lib/lib/plumed/vim/scripts.vim +6 -0
- plumed/_plumed_core.cpython-311-aarch64-linux-musl.so +0 -0
- plumed/_plumed_core.cpython-312-aarch64-linux-musl.so +0 -0
- plumed/_plumed_core.cpython-313-aarch64-linux-musl.so +0 -0
- plumedCommunications.cpython-311-aarch64-linux-musl.so +0 -0
- plumedCommunications.cpython-312-aarch64-linux-musl.so +0 -0
- plumedCommunications.cpython-313-aarch64-linux-musl.so +0 -0
- plumedCommunications.pyi +431 -0
|
@@ -0,0 +1,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
|
|
@@ -0,0 +1,569 @@
|
|
|
1
|
+
!
|
|
2
|
+
! Copyright (C) 2013-2020 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 run_pwscf( exit_status )
|
|
10
|
+
!----------------------------------------------------------------------------
|
|
11
|
+
!! Author: Paolo Giannozzi
|
|
12
|
+
!! License: GNU
|
|
13
|
+
!! Summary: Run an instance of the Plane Wave Self-Consistent Field code
|
|
14
|
+
!
|
|
15
|
+
!! Run an instance of the Plane Wave Self-Consistent Field code
|
|
16
|
+
!! MPI initialization and input data reading is performed in the
|
|
17
|
+
!! calling code - returns in exit_status the exit code for pw.x,
|
|
18
|
+
!! returned in the shell. Values are:
|
|
19
|
+
!! * 0: completed successfully
|
|
20
|
+
!! * 1: an error has occurred (value returned by the errore() routine)
|
|
21
|
+
!! * 2-127: convergence error
|
|
22
|
+
!! * 2: scf convergence error
|
|
23
|
+
!! * 3: ion convergence error
|
|
24
|
+
!! * 128-255: code exited due to specific trigger
|
|
25
|
+
!! * 255: exit due to user request, or signal trapped,
|
|
26
|
+
!! or time > max_seconds
|
|
27
|
+
!! (note: in the future, check_stop_now could also return a value
|
|
28
|
+
!! to specify the reason of exiting, and the value could be used
|
|
29
|
+
!! to return a different value for different reasons)
|
|
30
|
+
!
|
|
31
|
+
!! @Note
|
|
32
|
+
!! 10/01/17 Samuel Ponce: Add Ford documentation
|
|
33
|
+
!! @endnote
|
|
34
|
+
!!
|
|
35
|
+
!
|
|
36
|
+
USE kinds, ONLY : DP
|
|
37
|
+
USE mp, ONLY : mp_bcast, mp_sum
|
|
38
|
+
USE io_global, ONLY : stdout, ionode, ionode_id
|
|
39
|
+
USE parameters, ONLY : ntypx, npk
|
|
40
|
+
USE upf_params, ONLY : lmaxx
|
|
41
|
+
USE cell_base, ONLY : fix_volume, fix_area
|
|
42
|
+
USE control_flags, ONLY : conv_elec, gamma_only, ethr, lscf, treinit_gvecs
|
|
43
|
+
USE control_flags, ONLY : conv_ions, istep, nstep, restart, lmd, lbfgs,&
|
|
44
|
+
lensemb, lforce=>tprnfor, tstress
|
|
45
|
+
USE control_flags, ONLY : io_level
|
|
46
|
+
USE cellmd, ONLY : lmovecell
|
|
47
|
+
USE command_line_options, ONLY : command_line
|
|
48
|
+
USE force_mod, ONLY : sigma, force
|
|
49
|
+
USE check_stop, ONLY : check_stop_init, check_stop_now
|
|
50
|
+
USE mp_images, ONLY : intra_image_comm
|
|
51
|
+
USE extrapolation, ONLY : update_file, update_pot
|
|
52
|
+
USE scf, ONLY : rho
|
|
53
|
+
USE lsda_mod, ONLY : nspin
|
|
54
|
+
USE fft_base, ONLY : dfftp
|
|
55
|
+
!
|
|
56
|
+
USE plugin_flags, ONLY : use_plumed
|
|
57
|
+
!
|
|
58
|
+
USE qmmm, ONLY : qmmm_initialization, qmmm_shutdown, &
|
|
59
|
+
qmmm_update_positions, qmmm_update_forces
|
|
60
|
+
USE qexsd_module, ONLY : qexsd_set_status
|
|
61
|
+
USE xc_lib, ONLY : xclib_dft_is, stop_exx, exx_is_active
|
|
62
|
+
USE beef, ONLY : beef_energies
|
|
63
|
+
USE ldaU, ONLY : lda_plus_u
|
|
64
|
+
USE add_dmft_occ, ONLY : dmft
|
|
65
|
+
USE extffield, ONLY : init_extffield, close_extffield
|
|
66
|
+
USE input_parameters, ONLY : nextffield
|
|
67
|
+
!
|
|
68
|
+
USE device_fbuff_m, ONLY : dev_buf
|
|
69
|
+
!
|
|
70
|
+
#if defined (__ENVIRON)
|
|
71
|
+
USE plugin_flags, ONLY : use_environ
|
|
72
|
+
USE environ_pw_module, ONLY : is_ms_gcs, init_ms_gcs
|
|
73
|
+
#endif
|
|
74
|
+
#if defined (__OSCDFT)
|
|
75
|
+
USE plugin_flags, ONLY : use_oscdft
|
|
76
|
+
USE oscdft_base, ONLY : oscdft_ctx
|
|
77
|
+
USE oscdft_functions, ONLY : oscdft_run_pwscf
|
|
78
|
+
#endif
|
|
79
|
+
!
|
|
80
|
+
IMPLICIT NONE
|
|
81
|
+
!
|
|
82
|
+
INTEGER, INTENT(OUT) :: exit_status
|
|
83
|
+
!! Gives the exit status at the end
|
|
84
|
+
!
|
|
85
|
+
LOGICAL, EXTERNAL :: matches
|
|
86
|
+
! checks if first string is contained in the second
|
|
87
|
+
!
|
|
88
|
+
! ... local variables
|
|
89
|
+
!
|
|
90
|
+
INTEGER :: idone
|
|
91
|
+
! counter of electronic + ionic steps done in this run
|
|
92
|
+
INTEGER :: ions_status
|
|
93
|
+
! ions_status = 3 not yet converged
|
|
94
|
+
! ions_status = 2 converged, restart with nonzero magnetization
|
|
95
|
+
! ions_status = 1 converged, final step with current cell needed
|
|
96
|
+
! ions_status = 0 converged, exiting
|
|
97
|
+
!
|
|
98
|
+
LOGICAL :: optimizer_failed = .FALSE.
|
|
99
|
+
!
|
|
100
|
+
INTEGER :: ierr
|
|
101
|
+
! collect error codes
|
|
102
|
+
!
|
|
103
|
+
ions_status = 3
|
|
104
|
+
exit_status = 0
|
|
105
|
+
IF ( ionode ) WRITE( UNIT = stdout, FMT = 9010 ) ntypx, npk, lmaxx
|
|
106
|
+
!
|
|
107
|
+
IF (ionode) CALL plugin_arguments()
|
|
108
|
+
CALL plugin_arguments_bcast( ionode_id, intra_image_comm )
|
|
109
|
+
!
|
|
110
|
+
! ... needs to come before iosys() so some input flags can be
|
|
111
|
+
! overridden without needing to write PWscf specific code.
|
|
112
|
+
!
|
|
113
|
+
CALL qmmm_initialization()
|
|
114
|
+
!
|
|
115
|
+
! ... convert to internal variables
|
|
116
|
+
!
|
|
117
|
+
CALL iosys()
|
|
118
|
+
!
|
|
119
|
+
! ... If executable names is "dist.x", compute atomic distances, angles,
|
|
120
|
+
! ... nearest neighbors, write them to file "dist.out", exit
|
|
121
|
+
!
|
|
122
|
+
IF ( matches('dist.x',command_line) ) THEN
|
|
123
|
+
IF (ionode) CALL run_dist( exit_status )
|
|
124
|
+
RETURN
|
|
125
|
+
ENDIF
|
|
126
|
+
!
|
|
127
|
+
IF ( gamma_only ) WRITE( UNIT = stdout, &
|
|
128
|
+
& FMT = '(/,5X,"gamma-point specific algorithms are used")' )
|
|
129
|
+
!
|
|
130
|
+
! call to void routine for user defined / plugin patches initializations
|
|
131
|
+
!
|
|
132
|
+
#if defined(__LEGACY_PLUGINS)
|
|
133
|
+
CALL plugin_initialization()
|
|
134
|
+
#endif
|
|
135
|
+
#if defined (__ENVIRON)
|
|
136
|
+
IF (use_environ) THEN
|
|
137
|
+
IF (is_ms_gcs()) CALL init_ms_gcs()
|
|
138
|
+
END IF
|
|
139
|
+
#endif
|
|
140
|
+
!
|
|
141
|
+
CALL check_stop_init()
|
|
142
|
+
!
|
|
143
|
+
CALL setup()
|
|
144
|
+
!
|
|
145
|
+
CALL qmmm_update_positions()
|
|
146
|
+
!
|
|
147
|
+
! ... dry run: code will stop here if called with exit file present
|
|
148
|
+
! ... useful for a quick and automated way to check input data
|
|
149
|
+
!
|
|
150
|
+
IF ( nstep == 0 .OR. check_stop_now() ) THEN
|
|
151
|
+
CALL pre_init()
|
|
152
|
+
CALL data_structure( gamma_only )
|
|
153
|
+
CALL summary()
|
|
154
|
+
CALL memory_report()
|
|
155
|
+
exit_status = 255
|
|
156
|
+
CALL qexsd_set_status( exit_status )
|
|
157
|
+
CALL punch( 'config-init' )
|
|
158
|
+
RETURN
|
|
159
|
+
ENDIF
|
|
160
|
+
!
|
|
161
|
+
CALL init_run()
|
|
162
|
+
!
|
|
163
|
+
! read external force fields parameters
|
|
164
|
+
!
|
|
165
|
+
IF ( nextffield > 0 .AND. ionode) THEN
|
|
166
|
+
!
|
|
167
|
+
CALL init_extffield( 'PW', nextffield )
|
|
168
|
+
!
|
|
169
|
+
END IF
|
|
170
|
+
!
|
|
171
|
+
IF ( check_stop_now() ) THEN
|
|
172
|
+
exit_status = 255
|
|
173
|
+
CALL qexsd_set_status( exit_status )
|
|
174
|
+
CALL punch( 'config' )
|
|
175
|
+
RETURN
|
|
176
|
+
ENDIF
|
|
177
|
+
!
|
|
178
|
+
main_loop: DO idone = 1, nstep
|
|
179
|
+
!
|
|
180
|
+
! ... electronic self-consistency or band structure calculation
|
|
181
|
+
!
|
|
182
|
+
#if defined (__OSCDFT)
|
|
183
|
+
IF (use_oscdft) THEN
|
|
184
|
+
CALL oscdft_run_pwscf(oscdft_ctx)
|
|
185
|
+
ELSE
|
|
186
|
+
#endif
|
|
187
|
+
IF ( .NOT. lscf) THEN
|
|
188
|
+
CALL non_scf()
|
|
189
|
+
ELSE
|
|
190
|
+
CALL electrons()
|
|
191
|
+
END IF
|
|
192
|
+
#if defined (__OSCDFT)
|
|
193
|
+
END IF
|
|
194
|
+
#endif
|
|
195
|
+
!
|
|
196
|
+
! ... code stopped by user or not converged
|
|
197
|
+
!
|
|
198
|
+
IF ( check_stop_now() .OR. .NOT. conv_elec ) THEN
|
|
199
|
+
IF ( check_stop_now() ) THEN
|
|
200
|
+
exit_status = 255
|
|
201
|
+
ELSE
|
|
202
|
+
IF (dmft) THEN
|
|
203
|
+
exit_status = 131
|
|
204
|
+
ELSE
|
|
205
|
+
exit_status = 2
|
|
206
|
+
ENDIF
|
|
207
|
+
ENDIF
|
|
208
|
+
CALL qexsd_set_status(exit_status)
|
|
209
|
+
IF(exx_is_active()) then
|
|
210
|
+
CALL punch( 'all' )
|
|
211
|
+
ELSE
|
|
212
|
+
CALL punch( 'config' )
|
|
213
|
+
ENDIF
|
|
214
|
+
RETURN
|
|
215
|
+
ENDIF
|
|
216
|
+
!
|
|
217
|
+
! ... file in CASINO format written here if required
|
|
218
|
+
!
|
|
219
|
+
IF ( lmd ) THEN
|
|
220
|
+
CALL pw2casino( istep )
|
|
221
|
+
ELSE
|
|
222
|
+
CALL pw2casino( 0 )
|
|
223
|
+
END IF
|
|
224
|
+
!
|
|
225
|
+
! ... ionic section starts here
|
|
226
|
+
!
|
|
227
|
+
CALL start_clock( 'ions' ); !write(*,*)' start ions' ; FLUSH(6)
|
|
228
|
+
conv_ions = .TRUE.
|
|
229
|
+
!
|
|
230
|
+
! ... force calculation
|
|
231
|
+
!
|
|
232
|
+
IF ( lforce ) CALL forces()
|
|
233
|
+
!
|
|
234
|
+
! ... stress calculation
|
|
235
|
+
!
|
|
236
|
+
IF ( tstress ) CALL stress( sigma )
|
|
237
|
+
!
|
|
238
|
+
IF ( lmd .OR. lbfgs ) THEN
|
|
239
|
+
!
|
|
240
|
+
! ... add information on this ionic step to xml file
|
|
241
|
+
!
|
|
242
|
+
CALL add_qexsd_step( idone )
|
|
243
|
+
!
|
|
244
|
+
IF (fix_volume) CALL impose_deviatoric_stress( sigma )
|
|
245
|
+
IF (fix_area) CALL impose_deviatoric_stress_2d( sigma )
|
|
246
|
+
!
|
|
247
|
+
! ... save data needed for potential and wavefunction extrapolation
|
|
248
|
+
!
|
|
249
|
+
CALL update_file()
|
|
250
|
+
!
|
|
251
|
+
! ... ionic step (for molecular dynamics or optimization)
|
|
252
|
+
!
|
|
253
|
+
CALL move_ions ( idone, ions_status, optimizer_failed )
|
|
254
|
+
conv_ions = ( ions_status == 0 ) .OR. &
|
|
255
|
+
( ions_status == 1 .AND. treinit_gvecs )
|
|
256
|
+
!
|
|
257
|
+
IF ( xclib_dft_is('hybrid') ) CALL stop_exx()
|
|
258
|
+
!
|
|
259
|
+
! ... save restart information for the new configuration
|
|
260
|
+
!
|
|
261
|
+
IF ( idone <= nstep .AND. .NOT. conv_ions ) THEN
|
|
262
|
+
exit_status = 255
|
|
263
|
+
CALL qexsd_set_status( exit_status )
|
|
264
|
+
CALL punch( 'config-only' )
|
|
265
|
+
END IF
|
|
266
|
+
!
|
|
267
|
+
END IF
|
|
268
|
+
!
|
|
269
|
+
CALL stop_clock( 'ions' ); !write(*,*)' stop ions' ; FLUSH(6)
|
|
270
|
+
!
|
|
271
|
+
! ... send out forces to MM code in QM/MM run
|
|
272
|
+
!
|
|
273
|
+
CALL qmmm_update_forces( force, rho%of_r, nspin, dfftp )
|
|
274
|
+
!
|
|
275
|
+
! ... exit condition (ionic convergence) is checked here
|
|
276
|
+
!
|
|
277
|
+
IF ( conv_ions .OR. optimizer_failed ) EXIT main_loop
|
|
278
|
+
!
|
|
279
|
+
! ... receive new positions from MM code in QM/MM run
|
|
280
|
+
!
|
|
281
|
+
CALL qmmm_update_positions()
|
|
282
|
+
!
|
|
283
|
+
! ... terms of the hamiltonian depending upon nuclear positions
|
|
284
|
+
! ... are reinitialized here
|
|
285
|
+
!
|
|
286
|
+
IF ( lmd .OR. lbfgs ) THEN
|
|
287
|
+
!
|
|
288
|
+
IF ( ions_status == 1 ) THEN
|
|
289
|
+
!
|
|
290
|
+
! ... final scf calculation with G-vectors for final cell
|
|
291
|
+
!
|
|
292
|
+
lbfgs=.FALSE.; lmd=.FALSE.
|
|
293
|
+
WRITE( UNIT = stdout, FMT=9020 )
|
|
294
|
+
!
|
|
295
|
+
CALL reset_gvectors( )
|
|
296
|
+
!
|
|
297
|
+
! ... read atomic occupations for DFT+U(+V)
|
|
298
|
+
!
|
|
299
|
+
IF ( lda_plus_u ) CALL read_ns()
|
|
300
|
+
!
|
|
301
|
+
ELSE IF ( ions_status == 2 ) THEN
|
|
302
|
+
!
|
|
303
|
+
! ... check whether nonzero magnetization is real
|
|
304
|
+
!
|
|
305
|
+
CALL reset_magn()
|
|
306
|
+
!
|
|
307
|
+
ELSE
|
|
308
|
+
!
|
|
309
|
+
IF ( treinit_gvecs ) THEN
|
|
310
|
+
!
|
|
311
|
+
! ... prepare for next step with freshly computed G vectors
|
|
312
|
+
!
|
|
313
|
+
IF ( lmovecell) CALL scale_h()
|
|
314
|
+
CALL reset_gvectors ( )
|
|
315
|
+
!
|
|
316
|
+
ELSE
|
|
317
|
+
!
|
|
318
|
+
! ... update the wavefunctions, charge density, potential
|
|
319
|
+
! ... update_pot initializes structure factor array as well
|
|
320
|
+
!
|
|
321
|
+
CALL update_pot()
|
|
322
|
+
!
|
|
323
|
+
! ... re-initialize atomic position-dependent quantities
|
|
324
|
+
!
|
|
325
|
+
CALL hinit1()
|
|
326
|
+
!
|
|
327
|
+
END IF
|
|
328
|
+
!
|
|
329
|
+
END IF
|
|
330
|
+
!
|
|
331
|
+
ENDIF
|
|
332
|
+
! ... Reset convergence threshold of iterative diagonalization for
|
|
333
|
+
! ... the first scf iteration of each ionic step (after the first)
|
|
334
|
+
!
|
|
335
|
+
ethr = 1.0D-6
|
|
336
|
+
!
|
|
337
|
+
CALL dev_buf%reinit( ierr )
|
|
338
|
+
IF ( ierr .ne. 0 ) CALL infomsg( 'run_pwscf', 'Cannot reset GPU buffers! Some buffers still locked.' )
|
|
339
|
+
!
|
|
340
|
+
ENDDO main_loop
|
|
341
|
+
!
|
|
342
|
+
! Set correct exit_status
|
|
343
|
+
!
|
|
344
|
+
IF ( .NOT. conv_ions .OR. optimizer_failed ) THEN
|
|
345
|
+
exit_status = 3
|
|
346
|
+
ELSE
|
|
347
|
+
! All good
|
|
348
|
+
exit_status = 0
|
|
349
|
+
END IF
|
|
350
|
+
!
|
|
351
|
+
! ... save final data file
|
|
352
|
+
!
|
|
353
|
+
CALL qexsd_set_status( exit_status )
|
|
354
|
+
IF ( lensemb ) CALL beef_energies( )
|
|
355
|
+
IF ( io_level > -2 ) CALL punch( 'all' )
|
|
356
|
+
!
|
|
357
|
+
! finalize plumed
|
|
358
|
+
!
|
|
359
|
+
IF(use_plumed) then
|
|
360
|
+
CALL plumed_f_gfinalize()
|
|
361
|
+
ENDIF
|
|
362
|
+
!
|
|
363
|
+
CALL qmmm_shutdown()
|
|
364
|
+
!
|
|
365
|
+
RETURN
|
|
366
|
+
!
|
|
367
|
+
9010 FORMAT( /,5X,'Current dimensions of program PWSCF are:', &
|
|
368
|
+
& /,5X,'Max number of different atomic species (ntypx) = ',I2,&
|
|
369
|
+
& /,5X,'Max number of k-points (npk) = ',I6, &
|
|
370
|
+
& /,5X,'Max angular momentum in pseudopotentials (lmaxx) = ',i2)
|
|
371
|
+
9020 FORMAT( /,5X,'Final scf calculation at the relaxed structure.', &
|
|
372
|
+
& /,5X,'The G-vectors are recalculated for the final unit cell', &
|
|
373
|
+
& /,5X,'Results may differ from those at the preceding step.' )
|
|
374
|
+
!
|
|
375
|
+
END SUBROUTINE run_pwscf
|
|
376
|
+
!
|
|
377
|
+
!
|
|
378
|
+
!-------------------------------------------------------------
|
|
379
|
+
SUBROUTINE reset_gvectors( )
|
|
380
|
+
!-------------------------------------------------------------
|
|
381
|
+
!
|
|
382
|
+
!! Prepare a new scf calculation with newly recomputed grids,
|
|
383
|
+
!! restarting from scratch, not from available data of previous
|
|
384
|
+
!! steps (dimensions and file lengths will be different in general)
|
|
385
|
+
!! Useful as a check of variable-cell optimization:
|
|
386
|
+
!! once convergence is achieved, compare the final energy with the
|
|
387
|
+
!! energy computed with G-vectors and plane waves for the final cell
|
|
388
|
+
!
|
|
389
|
+
USE io_global, ONLY : stdout
|
|
390
|
+
USE basis, ONLY : starting_wfc, starting_pot
|
|
391
|
+
USE fft_base, ONLY : dfftp
|
|
392
|
+
USE fft_base, ONLY : dffts
|
|
393
|
+
USE xc_lib, ONLY : xclib_dft_is
|
|
394
|
+
!
|
|
395
|
+
IMPLICIT NONE
|
|
396
|
+
!
|
|
397
|
+
! ... get magnetic moments from previous run before charge is deleted
|
|
398
|
+
!
|
|
399
|
+
CALL reset_starting_magnetization()
|
|
400
|
+
!
|
|
401
|
+
! ... clean everything (FIXME: clean only what has to be cleaned)
|
|
402
|
+
!
|
|
403
|
+
CALL clean_pw( .FALSE. )
|
|
404
|
+
CALL close_files(.TRUE.)
|
|
405
|
+
!
|
|
406
|
+
IF (TRIM(starting_wfc) == 'file') starting_wfc = 'atomic+random'
|
|
407
|
+
starting_pot='atomic'
|
|
408
|
+
!
|
|
409
|
+
! ... re-set FFT grids and re-compute needed stuff (FIXME: which?)
|
|
410
|
+
!
|
|
411
|
+
dfftp%nr1=0; dfftp%nr2=0; dfftp%nr3=0
|
|
412
|
+
dffts%nr1=0; dffts%nr2=0; dffts%nr3=0
|
|
413
|
+
!
|
|
414
|
+
CALL init_run()
|
|
415
|
+
!
|
|
416
|
+
! ... re-set and re-initialize EXX-related stuff
|
|
417
|
+
!
|
|
418
|
+
IF ( xclib_dft_is('hybrid') ) CALL reset_exx( )
|
|
419
|
+
!
|
|
420
|
+
END SUBROUTINE reset_gvectors
|
|
421
|
+
!
|
|
422
|
+
!
|
|
423
|
+
!-------------------------------------------------------------
|
|
424
|
+
SUBROUTINE reset_exx( )
|
|
425
|
+
!-------------------------------------------------------------
|
|
426
|
+
USE fft_types, ONLY : fft_type_deallocate
|
|
427
|
+
USE exx_base, ONLY : exx_grid_init, exx_mp_init, exx_div_check, &
|
|
428
|
+
coulomb_fac, coulomb_done
|
|
429
|
+
USE exx, ONLY : dfftt, exx_fft_create, deallocate_exx
|
|
430
|
+
USE exx_band, ONLY : igk_exx
|
|
431
|
+
!
|
|
432
|
+
IMPLICIT NONE
|
|
433
|
+
!
|
|
434
|
+
! ... re-set EXX-related stuff...
|
|
435
|
+
!
|
|
436
|
+
IF (ALLOCATED(coulomb_fac) ) DEALLOCATE( coulomb_fac, coulomb_done )
|
|
437
|
+
CALL deallocate_exx( )
|
|
438
|
+
IF (ALLOCATED(igk_exx)) DEALLOCATE(igk_exx)
|
|
439
|
+
dfftt%nr1=0; dfftt%nr2=0; dfftt%nr3=0
|
|
440
|
+
CALL fft_type_deallocate( dfftt ) ! FIXME: is this needed?
|
|
441
|
+
!
|
|
442
|
+
! ... re-compute needed EXX-related stuff
|
|
443
|
+
!
|
|
444
|
+
CALL exx_grid_init( REINIT = .TRUE. )
|
|
445
|
+
CALL exx_mp_init()
|
|
446
|
+
CALL exx_fft_create()
|
|
447
|
+
CALL exx_div_check()
|
|
448
|
+
!
|
|
449
|
+
END SUBROUTINE reset_exx
|
|
450
|
+
!
|
|
451
|
+
!
|
|
452
|
+
!----------------------------------------------------------------
|
|
453
|
+
SUBROUTINE reset_magn()
|
|
454
|
+
!----------------------------------------------------------------
|
|
455
|
+
!! LSDA optimization: a final configuration with zero
|
|
456
|
+
!! absolute magnetization has been found and we check
|
|
457
|
+
!! if it is really the minimum energy structure by
|
|
458
|
+
!! performing a new scf iteration without any "electronic" history.
|
|
459
|
+
!
|
|
460
|
+
USE io_global, ONLY : stdout
|
|
461
|
+
USE dfunct, ONLY : newd
|
|
462
|
+
!
|
|
463
|
+
IMPLICIT NONE
|
|
464
|
+
!
|
|
465
|
+
WRITE( UNIT = stdout, FMT = 9010 )
|
|
466
|
+
WRITE( UNIT = stdout, FMT = 9020 )
|
|
467
|
+
!
|
|
468
|
+
! ... re-initialize the potential (no need to re-initialize wavefunctions)
|
|
469
|
+
!
|
|
470
|
+
CALL potinit()
|
|
471
|
+
CALL newd()
|
|
472
|
+
!
|
|
473
|
+
9010 FORMAT( /5X,'lsda relaxation : a final configuration with zero', &
|
|
474
|
+
& /5X,' absolute magnetization has been found' )
|
|
475
|
+
9020 FORMAT( /5X,'the program is checking if it is really ', &
|
|
476
|
+
& 'the minimum energy structure', &
|
|
477
|
+
& /5X,'by performing a new scf iteration ', &
|
|
478
|
+
& 'without any "electronic" history' )
|
|
479
|
+
!
|
|
480
|
+
END SUBROUTINE reset_magn
|
|
481
|
+
!
|
|
482
|
+
!
|
|
483
|
+
!-------------------------------------------------------------------
|
|
484
|
+
SUBROUTINE reset_starting_magnetization()
|
|
485
|
+
!-------------------------------------------------------------------
|
|
486
|
+
!! On input, the scf charge density is needed.
|
|
487
|
+
!! On output, new values for starting_magnetization, angle1, angle2
|
|
488
|
+
!! estimated from atomic magnetic moments - to be used in last step.
|
|
489
|
+
!
|
|
490
|
+
USE kinds, ONLY : DP
|
|
491
|
+
USE constants, ONLY : pi
|
|
492
|
+
USE ions_base, ONLY : nsp, ityp, nat
|
|
493
|
+
USE lsda_mod, ONLY : nspin, starting_magnetization
|
|
494
|
+
USE scf, ONLY : rho
|
|
495
|
+
USE noncollin_module, ONLY : noncolin, angle1, angle2, domag
|
|
496
|
+
!
|
|
497
|
+
IMPLICIT NONE
|
|
498
|
+
!
|
|
499
|
+
! ... local variables
|
|
500
|
+
!
|
|
501
|
+
INTEGER :: i, nt, iat
|
|
502
|
+
! loop counter on species
|
|
503
|
+
! number of atoms per species
|
|
504
|
+
! loop counter on atoms
|
|
505
|
+
REAL(DP) :: norm_tot, norm_xy
|
|
506
|
+
! modulus of atomic magnetization
|
|
507
|
+
! xy-projection of atomic magnetization
|
|
508
|
+
REAL(DP) :: theta, phi
|
|
509
|
+
! angle between magnetization and z-axis
|
|
510
|
+
! angle between xy-magnetization and x-axis
|
|
511
|
+
REAL(DP), ALLOCATABLE :: r_loc(:)
|
|
512
|
+
! auxiliary array for density
|
|
513
|
+
REAL(DP), ALLOCATABLE :: m_loc(:,:)
|
|
514
|
+
! auxiliary array for magnetization
|
|
515
|
+
!
|
|
516
|
+
IF ( (noncolin .AND. domag) .OR. nspin==2) THEN
|
|
517
|
+
ALLOCATE( r_loc(nat), m_loc(nspin-1,nat) )
|
|
518
|
+
CALL get_locals( r_loc,m_loc, rho%of_r )
|
|
519
|
+
ELSE
|
|
520
|
+
RETURN
|
|
521
|
+
ENDIF
|
|
522
|
+
!
|
|
523
|
+
DO i = 1, nsp
|
|
524
|
+
!
|
|
525
|
+
starting_magnetization(i) = 0.0_DP
|
|
526
|
+
angle1(i) = 0.0_DP
|
|
527
|
+
angle2(i) = 0.0_DP
|
|
528
|
+
nt = 0
|
|
529
|
+
!
|
|
530
|
+
DO iat = 1, nat
|
|
531
|
+
IF (ityp(iat) == i) THEN
|
|
532
|
+
nt = nt + 1
|
|
533
|
+
IF (noncolin) THEN
|
|
534
|
+
norm_tot = SQRT(m_loc(1,iat)**2+m_loc(2,iat)**2+m_loc(3,iat)**2)
|
|
535
|
+
norm_xy = SQRT(m_loc(1,iat)**2+m_loc(2,iat)**2)
|
|
536
|
+
IF (norm_tot > 1.d-10) THEN
|
|
537
|
+
theta = ACOS(m_loc(3,iat)/norm_tot)
|
|
538
|
+
IF (norm_xy > 1.d-10) THEN
|
|
539
|
+
phi = ACOS(m_loc(1,iat)/norm_xy)
|
|
540
|
+
IF (m_loc(2,iat) < 0.d0) phi = - phi
|
|
541
|
+
ELSE
|
|
542
|
+
phi = 2.d0*pi
|
|
543
|
+
ENDIF
|
|
544
|
+
ELSE
|
|
545
|
+
theta = 2.d0*pi
|
|
546
|
+
phi = 2.d0*pi
|
|
547
|
+
ENDIF
|
|
548
|
+
angle1(i) = angle1(i) + theta
|
|
549
|
+
angle2(i) = angle2(i) + phi
|
|
550
|
+
starting_magnetization(i) = starting_magnetization(i) + &
|
|
551
|
+
norm_tot/r_loc(iat)
|
|
552
|
+
ELSE
|
|
553
|
+
starting_magnetization(i) = starting_magnetization(i) + &
|
|
554
|
+
m_loc(1,iat)/r_loc(iat)
|
|
555
|
+
ENDIF
|
|
556
|
+
ENDIF
|
|
557
|
+
ENDDO
|
|
558
|
+
!
|
|
559
|
+
IF ( nt > 0 ) THEN
|
|
560
|
+
starting_magnetization(i) = starting_magnetization(i) / DBLE(nt)
|
|
561
|
+
angle1(i) = angle1(i) / DBLE(nt)
|
|
562
|
+
angle2(i) = angle2(i) / DBLE(nt)
|
|
563
|
+
ENDIF
|
|
564
|
+
!
|
|
565
|
+
ENDDO
|
|
566
|
+
!
|
|
567
|
+
DEALLOCATE( r_loc, m_loc )
|
|
568
|
+
!
|
|
569
|
+
END SUBROUTINE reset_starting_magnetization
|