diff --git a/doc/Eqs/fix_nh1.jpg b/doc/Eqs/fix_nh1.jpg new file mode 100644 index 0000000000..a100650a57 Binary files /dev/null and b/doc/Eqs/fix_nh1.jpg differ diff --git a/doc/Eqs/fix_nh1.tex b/doc/Eqs/fix_nh1.tex new file mode 100644 index 0000000000..457dfd117f --- /dev/null +++ b/doc/Eqs/fix_nh1.tex @@ -0,0 +1,38 @@ +\documentclass[24pt]{article} + +\pagestyle{empty} +\Huge + +\begin{document} + +\mathchardef\mhyphen="2D + +% The imaginary unit +\providecommand*{\iu}% + {\ensuremath{{\rm i}}} + + +$$ +\exp \left(\iu{} L \Delta t \right) = +\exp \left(\iu{} L_{\rm T\mhyphen baro} \frac{\Delta t}{2} \right) +\exp \left(\iu{} L_{\rm T\mhyphen part} \frac{\Delta t}{2} \right) +\exp \left(\iu{} L_{\epsilon , 2} \frac{\Delta t}{2} \right) +\exp \left(\iu{} L_{2}^{(2)} \frac{\Delta t}{2} \right) +$$ +$$ +\times \left[ +\exp \left(\iu{} L_{2}^{(1)} \frac{\Delta t}{2n} \right) +\exp \left(\iu{} L_{\epsilon , 1} \frac{\Delta t}{n} \right) +\exp \left(\iu{} L_1 \frac{\Delta t}{n} \right) +\exp \left(\iu{} L_{2}^{(1)} \frac{\Delta t}{2n} \right) +\right]^n +$$ +$$ +\exp \left(\iu{} L_{2}^{(2)} \frac{\Delta t}{2} \right) +\exp \left(\iu{} L_{\epsilon , 2} \frac{\Delta t}{2} \right) +\exp \left(\iu{} L_{\rm T\mhyphen part} \frac{\Delta t}{2} \right) +\exp \left(\iu{} L_{\rm T\mhyphen baro} \frac{\Delta t}{2} \right) ++ \mathcal{O} \left(\Delta t^3 \right) +$$ + +\end{document} diff --git a/doc/fix_nh.html b/doc/fix_nh.html index 1fa07e3c14..6bc2b61591 100644 --- a/doc/fix_nh.html +++ b/doc/fix_nh.html @@ -73,13 +73,13 @@ When used correctly, the time-averaged temperature and stress tensor of the particles will match the target values specified by Tstart/Tstop and Pstart/Pstop.
-The equations of motion used are those of Shinoda et al in +
The equations of motion used are those of Shinoda et al. in (Shinoda), which combine the hydrostatic equations of Martyna, Tobias and Klein in (Martyna) with the strain energy proposed by Parrinello and Rahman in -(Parrinello). The time integration schemes follow the -time-reversible measure-preserving integrators derived by Tuckerman et -al in (Tuckerman). +(Parrinello). The time integration schemes closely +follow the time-reversible measure-preserving Verlet and +rRESPA integrators derived by Tuckerman et al. in (Tuckerman).
These fixes can ramp their external temperature and pressure over multiple runs, using the start and stop keywords of the @@ -408,6 +408,25 @@ how to do this.
These fixes are not invoked during energy minimization.
+These fixes can be used with either the verlet or respa +integrators. When using one of the barostat fixes +with respa, LAMMPS uses an integrator constructed +according to the following factorization of the Liouville propagator +(for two rRESPA levels): +
+
+This factorization differs somewhat from that of Tuckerman et al., in that +the barostat is only updated at the outermost rRESPA level, whereas +Tuckerman's factorization requires splitting the pressure into pieces +corresponding to the forces computed at each rRESPA level. In theory, the +latter method will exhibit better numerical stability. In practice, +because Pdamp is normally chosen to be a large multiple of the +outermost rRESPA timestep, the barostat dynamics are not the +limiting factor for numerical stability. Both +factorizations are time-reversible and can be shown to preserve the phase +space measure of the underlying non-Hamiltonian equations of motion. +
Restrictions:
Non-periodic dimensions cannot be barostatted. Z, xz, and yz, @@ -425,7 +444,7 @@ is not allowed in the Nose/Hoover formulation.
Related commands:
-fix nve, fix_modify, run_style
Default:
diff --git a/doc/fix_nh.txt b/doc/fix_nh.txt index 20532b21f5..c506a031ef 100644 --- a/doc/fix_nh.txt +++ b/doc/fix_nh.txt @@ -65,13 +65,13 @@ When used correctly, the time-averaged temperature and stress tensor of the particles will match the target values specified by Tstart/Tstop and Pstart/Pstop. -The equations of motion used are those of Shinoda et al in +The equations of motion used are those of Shinoda et al. in "(Shinoda)"_#Shinoda, which combine the hydrostatic equations of Martyna, Tobias and Klein in "(Martyna)"_#Martyna with the strain energy proposed by Parrinello and Rahman in -"(Parrinello)"_#Parrinello. The time integration schemes follow the -time-reversible measure-preserving integrators derived by Tuckerman et -al in "(Tuckerman)"_#Tuckerman. +"(Parrinello)"_#Parrinello. The time integration schemes closely +follow the time-reversible measure-preserving Verlet and +rRESPA integrators derived by Tuckerman et al. in "(Tuckerman)"_#Tuckerman. :line @@ -378,19 +378,19 @@ The order of values in the global vector and their meaning is as follows. The notation means there are tchain values for eta, followed by tchain for eta_dot, followed by ndof for omega, etc: -eta[tchain] = particle thermostat displacements -eta_dot[tchain] = particle thermostat velocities -omega[ndof] = barostat displacements -omega_dot[ndof] = barostat velocities -etap[pchain] = barostat thermostat displacements -etap_dot[pchain] = barostat thermostat velocities -PE_eta[tchain] = potential energy of each particle thermostat displacement -KE_eta_dot[tchain] = kinetic energy of each particle thermostat velocity -PE_omega[ndof] = potential energy of each barostat displacement -KE_omega_dot[ndof] = kinetic energy of each barostat velocity -PE_etap[pchain] = potential energy of each barostat thermostat displacement -KE_etap_dot[pchain] = kinetic energy of each barostat thermostat velocity -PE_strain[1] = scalar strain energy :ul +eta\[tchain\] = particle thermostat displacements +eta_dot\[tchain\] = particle thermostat velocities +omega\[ndof\] = barostat displacements +omega_dot\[ndof\] = barostat velocities +etap\[pchain\] = barostat thermostat displacements +etap_dot\[pchain\] = barostat thermostat velocities +PE_eta\[tchain\] = potential energy of each particle thermostat displacement +KE_eta_dot\[tchain\] = kinetic energy of each particle thermostat velocity +PE_omega\[ndof\] = potential energy of each barostat displacement +KE_omega_dot\[ndof\] = kinetic energy of each barostat velocity +PE_etap\[pchain\] = potential energy of each barostat thermostat displacement +KE_etap_dot\[pchain\] = kinetic energy of each barostat thermostat velocity +PE_strain\[1\] = scalar strain energy :ul These fixes can ramp their external temperature and pressure over multiple runs, using the {start} and {stop} keywords of the @@ -400,6 +400,26 @@ how to do this. These fixes are not invoked during "energy minimization"_minimize.html. +These fixes can be used with either the {verlet} or {respa} +"integrators"_run_style.html. When using one of the barostat fixes +with {respa}, LAMMPS uses an integrator constructed +according to the following factorization of the Liouville propagator +(for two rRESPA levels): + +:c,image(Eqs/fix_nh1.jpg) + +This factorization differs somewhat from that of Tuckerman et al., in that +the barostat is only updated at the outermost rRESPA level, whereas +Tuckerman's factorization requires splitting the pressure into pieces +corresponding to the forces computed at each rRESPA level. In theory, the +latter method will exhibit better numerical stability. In practice, +because Pdamp is normally chosen to be a large multiple of the +outermost rRESPA timestep, the barostat dynamics are not the +limiting factor for numerical stability. Both +factorizations are time-reversible and can be shown to preserve the phase +space measure of the underlying non-Hamiltonian equations of motion. + + [Restrictions:] Non-periodic dimensions cannot be barostatted. {Z}, {xz}, and {yz}, @@ -417,7 +437,7 @@ is not allowed in the Nose/Hoover formulation. [Related commands:] -"fix nve"_fix_nve.html, "fix_modify"_fix_modify.html +"fix nve"_fix_nve.html, "fix_modify"_fix_modify.html, "run_style"_run_style.html [Default:]