Merge pull request #4237 from Yi-FanLi/pimd_langevin_lj

fix pimd/langevin: improve usage of lj reduced units
This commit is contained in:
Axel Kohlmeyer
2024-07-24 18:58:12 -04:00
committed by GitHub
2 changed files with 6 additions and 1 deletions

View File

@ -236,7 +236,7 @@ The keyword *fixcom* specifies whether the center-of-mass of the extended ring-p
Once *fixcom* is set to be *yes*, the center-of-mass velocity will be distracted from the centroid-mode velocities in each step.
The keyword *lj* should be used if :doc:`lj units <units>` is used for *fix pimd/langevin*. Typically one may want to use
reduced units to run the simulation, and then convert the results into some physical units (for example, :doc:`metal units <units>`). In this case, the 5 quantities in the physical mass units are needed: epsilon (energy scale), sigma (length scale), mass, Planck's constant, mvv2e (mass * velocity^2 to energy conversion factor). Planck's constant and mvv2e can be found in src/update.cpp. If there is no need to convert reduced units to physical units, set all these five value to 1.
reduced units to run the simulation, and then convert the results into some physical units (for example, :doc:`metal units <units>`). In this case, the 5 quantities in the physical mass units are needed: epsilon (energy scale), sigma (length scale), mass, Planck's constant, mvv2e (mass * velocity^2 to energy conversion factor). Planck's constant and mvv2e can be found in src/update.cpp. If there is no need to convert reduced units to physical units, you can omit the keyword *lj* and these five values will be set to 1.
The PIMD algorithm in LAMMPS is implemented as a hyper-parallel scheme
as described in :ref:`Calhoun <Calhoun>`. In LAMMPS this is done by using

View File

@ -90,6 +90,11 @@ FixPIMDLangevin::FixPIMDLangevin(LAMMPS *lmp, int narg, char **arg) :
integrator = OBABO;
thermostat = PILE_L;
barostat = BZP;
lj_epsilon = 1;
lj_sigma = 1;
lj_mass = 1;
other_planck = 1;
other_mvv2e = 1;
fmass = 1.0;
np = universe->nworlds;
inverse_np = 1.0 / np;