diff --git a/doc/Section_commands.html b/doc/Section_commands.html index c1283d06f2..8a166919c0 100644 --- a/doc/Section_commands.html +++ b/doc/Section_commands.html @@ -323,7 +323,7 @@ of each style or click on the style itself for a full description: npt/aspherenvenve/aspherenve/dipolenve/grannve/limitnve/noforcenvt nvt/aspherenvt/sllodorient/fccplaneforcepoemspourprintrdf recenterrigidsetforceshakespringspring/rgspring/selftemp/rescale -tmdviscouswall/granwall/lj126wall/lj93wall/reflectwiggle +tmdviscosityviscouswall/granwall/lj126wall/lj93wall/reflectwiggle
diff --git a/doc/Section_commands.txt b/doc/Section_commands.txt index 78bf519a30..8c2d81c48e 100644 --- a/doc/Section_commands.txt +++ b/doc/Section_commands.txt @@ -424,6 +424,7 @@ of each style or click on the style itself for a full description: "spring/self"_fix_spring_self.html, "temp/rescale"_fix_temp_rescale.html, "tmd"_fix_tmd.html, +"viscosity"_fix_viscosity.html, "viscous"_fix_viscous.html, "wall/gran"_fix_wall_gran.html, "wall/lj126"_fix_wall_lj126.html, diff --git a/doc/Section_howto.html b/doc/Section_howto.html index 5a2cd97306..906b1297fa 100644 --- a/doc/Section_howto.html +++ b/doc/Section_howto.html @@ -751,6 +751,9 @@ deform should be set to "remap v", since that is what fix nvt/sllod assumes to generate a velocity profile consistent with the applied shear strain rate.

+

An alternative method for calculating viscosities is provided via the +fix viscosity command. +


4.14 Aspherical particles diff --git a/doc/Section_howto.txt b/doc/Section_howto.txt index 02fb9ecad5..26d34ecb9c 100644 --- a/doc/Section_howto.txt +++ b/doc/Section_howto.txt @@ -744,6 +744,9 @@ deform"_fix_deform.html should be set to "remap v", since that is what "fix nvt/sllod"_fix_nvt_sllod.html assumes to generate a velocity profile consistent with the applied shear strain rate. +An alternative method for calculating viscosities is provided via the +"fix viscosity"_fix_viscosity.html command. + :line 4.14 Aspherical particles :link(4_14),h4 diff --git a/doc/fix.html b/doc/fix.html index b515105663..17ed8ccdc5 100644 --- a/doc/fix.html +++ b/doc/fix.html @@ -130,6 +130,7 @@ for individual fixes for info on which ones can be restarted.
  • spring/self - spring from each atom to its origin
  • temp/rescale - temperature control by velocity rescaling
  • tmd - guide a group of atoms to a new configuration +
  • viscosity - Muller-Plathe momentum exchange for viscosity calculation
  • viscous - viscous damping for granular simulations
  • wall/gran - frictional wall(s) for granular simulations
  • wall/lj126 - Lennard-Jones 12-6 wall diff --git a/doc/fix.txt b/doc/fix.txt index 2e5f033ced..ffec4842ed 100644 --- a/doc/fix.txt +++ b/doc/fix.txt @@ -134,6 +134,8 @@ Here is an alphabetic list of fix styles available in LAMMPS: "temp/rescale"_fix_temp_rescale.html - temperature control by \ velocity rescaling "tmd"_fix_tmd.html - guide a group of atoms to a new configuration +"viscosity"_fix_viscosity.html - Muller-Plathe momentum exchange for \ + viscosity calculation "viscous"_fix_viscous.html - viscous damping for granular simulations "wall/gran"_fix_wall_gran.html - frictional wall(s) for \ granular simulations diff --git a/doc/fix_viscosity.html b/doc/fix_viscosity.html new file mode 100644 index 0000000000..2f7fada686 --- /dev/null +++ b/doc/fix_viscosity.html @@ -0,0 +1,125 @@ + +
    LAMMPS WWW Site - LAMMPS Documentation - LAMMPS Commands +
    + + + + + + +
    + +

    fix viscosity command +

    +

    Syntax: +

    +
    fix ID group-ID viscosity N vdim pdim Nbin 
    +
    + +

    Examples: +

    +
    fix 1 all viscosity 100 x z 20 
    +
    +

    Description: +

    +

    Use the Muller-Plathe algorithm described in this +paper to exchange momenta between two particles in +different regions of the simulation box every N steps. This induces a +shear velocity profile in the system. As described below this enables +a viscosity of the fluid to be calculated. This algorithm is +sometimes called a reverse non-equilibrium MD (reverse NEMD) approach +to computing viscosity. This is because the usual NEMD approach is to +impose a shear velocity profile on the system and measure the response +via an off-diagonal component of the stress tensor, which is +proportional to the momentum flux. In the Muller-Plathe method, the +momentum flux is imposed, and the shear velocity profile is the +system's response. +

    +

    The simulation box is divided into Nbin layers in the pdim +direction. Every N steps, two atoms are chosen in the following +manner. Only atoms in the fix group are considered. The atom in the +bottom layer with the most positive momentum component in the vdim +direction is the first atom. The atom in the middle later with the +most negative momentum component in the vdim direction is the second +atom. The vdim momenta components of these two atoms are swapped, +which resets their velocities, typically in opposite directions. Over +time, this induces a shear velocity profile in the system which can be +measured using commands such as the following, which writes the +profile to the file tmp.profile: +

    +
    compute		c1 all attribute/atom vx
    +fix		f1 all ave/spatial 100 10 1000 z lower 0.05 tmp.profile &
    +		compute c1 units reduced 
    +
    +

    As described below, the total momentum transferred by these velocity +swaps is computed by the fix and can be output. Dividing this +quantity by time and the cross-sectional area of the simulation box +yields a momentum flux. The ratio of momentum flux to the slope of +the shear velocity profile is the viscosity of the fluid, in +appopriate units. See the Muller-Plathe paper for +details. +

    +

    An alternative method for calculating a viscosity is to run a NEMD +simulation, as described in this section of +the manual. NEMD simulations deform the simmulation box via the fix +deform command. Thus they cannot be run on a charged +system using a PPPM solver since PPPM does not +currently support non-orthogonal boxes. Using fix viscosity keeps the +box orthogonal; thus it does not suffer from this limitation. +

    +

    Restart, fix_modify, output, run start/stop, minimize info: +

    +

    No information about this fix is written to binary restart +files. None of the fix_modify options +are relevant to this fix. +

    +

    The cummulative momentum transferred between the bottom and middle of +the simulatoin box (in the pdim direction) is stored as a scalar +quantity by this fix. This quantity is zeroed when the fix is defined +and accumlates thereafter, once every N steps. The units of the +quantity are momentum = mass*velocity. This quantity can be +accessed by various output commands, such as +thermo_style custom. +

    +

    No parameter of this fix can be used with the start/stop keywords of +the run command. This fix is not invoked during energy +minimization. +

    +

    Restrictions: +

    +

    If the masses of the atom pairs are the same, the swaps conserve both +momentum and kinetic energy. Thus you should not need to thermostat +the system. If you do use a thermostat, you may want to apply it only +to the non-swapped dimensions (other than vdim). +

    +

    You should not swap velocities of atoms that are in constrained +molecules, e.g. via fix shake or fix +rigid, since application of the constraints will alter +the amount of transferred momentum. You should, however, be able to +use flexible molecules with this approach. LAMMPS does not check that +this advice is followed. +

    +

    When running a simulation with large, massive particles or molecules +in a background solvent, you may want to only exchange momenta bewteen +solvent particles. +

    +

    Related commands: +

    +

    fix ave/spatial, fix +nvt/sllod +

    +

    Default: none +

    +
    + + + +

    (Muller-Plathe) Muller-Plathe, Phys Rev E, 59, 4894-4898 (1999). +

    + diff --git a/doc/fix_viscosity.txt b/doc/fix_viscosity.txt new file mode 100644 index 0000000000..2a50fbc945 --- /dev/null +++ b/doc/fix_viscosity.txt @@ -0,0 +1,119 @@ +"LAMMPS WWW Site"_lws - "LAMMPS Documentation"_ld - "LAMMPS Commands"_lc :c + +:link(lws,http://lammps.sandia.gov) +:link(ld,Manual.html) +:link(lc,Section_commands.html#comm) + +:line + +fix viscosity command :h3 + +[Syntax:] + +fix ID group-ID viscosity N vdim pdim Nbin :pre + +ID, group-ID are documented in "fix"_fix.html command +viscosity = style name of this fix command +N = perform momentum exchange every N steps +vdim = {x} or {y} or {z} = which momentum component to exchange +pdim = {x} or {y} or {z} = direction of momentum transfer +Nbin = # of layers in pdim direction :ul + +[Examples:] + +fix 1 all viscosity 100 x z 20 :pre + +[Description:] + +Use the Muller-Plathe algorithm described in "this +paper"_#Muller-Plathe to exchange momenta between two particles in +different regions of the simulation box every N steps. This induces a +shear velocity profile in the system. As described below this enables +a viscosity of the fluid to be calculated. This algorithm is +sometimes called a reverse non-equilibrium MD (reverse NEMD) approach +to computing viscosity. This is because the usual NEMD approach is to +impose a shear velocity profile on the system and measure the response +via an off-diagonal component of the stress tensor, which is +proportional to the momentum flux. In the Muller-Plathe method, the +momentum flux is imposed, and the shear velocity profile is the +system's response. + +The simulation box is divided into {Nbin} layers in the {pdim} +direction. Every N steps, two atoms are chosen in the following +manner. Only atoms in the fix group are considered. The atom in the +bottom layer with the most positive momentum component in the {vdim} +direction is the first atom. The atom in the middle later with the +most negative momentum component in the {vdim} direction is the second +atom. The {vdim} momenta components of these two atoms are swapped, +which resets their velocities, typically in opposite directions. Over +time, this induces a shear velocity profile in the system which can be +measured using commands such as the following, which writes the +profile to the file tmp.profile: + +compute c1 all attribute/atom vx +fix f1 all ave/spatial 100 10 1000 z lower 0.05 tmp.profile & + compute c1 units reduced :pre + +As described below, the total momentum transferred by these velocity +swaps is computed by the fix and can be output. Dividing this +quantity by time and the cross-sectional area of the simulation box +yields a momentum flux. The ratio of momentum flux to the slope of +the shear velocity profile is the viscosity of the fluid, in +appopriate units. See the "Muller-Plathe paper"_#Muller-Plathe for +details. + +An alternative method for calculating a viscosity is to run a NEMD +simulation, as described in "this section"_Section_howto.html#4_13 of +the manual. NEMD simulations deform the simmulation box via the "fix +deform"_fix_deform.html command. Thus they cannot be run on a charged +system using a "PPPM solver"_kspace_style.html since PPPM does not +currently support non-orthogonal boxes. Using fix viscosity keeps the +box orthogonal; thus it does not suffer from this limitation. + +[Restart, fix_modify, output, run start/stop, minimize info:] + +No information about this fix is written to "binary restart +files"_restart.html. None of the "fix_modify"_fix_modify.html options +are relevant to this fix. + +The cummulative momentum transferred between the bottom and middle of +the simulatoin box (in the {pdim} direction) is stored as a scalar +quantity by this fix. This quantity is zeroed when the fix is defined +and accumlates thereafter, once every N steps. The units of the +quantity are momentum = mass*velocity. This quantity can be +accessed by various "output commands"_Section_howto.html#4_15, such as +"thermo_style custom"_thermo_style.html. + +No parameter of this fix can be used with the {start/stop} keywords of +the "run"_run.html command. This fix is not invoked during "energy +minimization"_minimize.html. + +[Restrictions:] + +If the masses of the atom pairs are the same, the swaps conserve both +momentum and kinetic energy. Thus you should not need to thermostat +the system. If you do use a thermostat, you may want to apply it only +to the non-swapped dimensions (other than {vdim}). + +You should not swap velocities of atoms that are in constrained +molecules, e.g. via "fix shake"_fix_shake.html or "fix +rigid"_fix_rigid.html, since application of the constraints will alter +the amount of transferred momentum. You should, however, be able to +use flexible molecules with this approach. LAMMPS does not check that +this advice is followed. + +When running a simulation with large, massive particles or molecules +in a background solvent, you may want to only exchange momenta bewteen +solvent particles. + +[Related commands:] + +"fix ave/spatial"_fix_ave_spatial.html, "fix +nvt/sllod"_fix_nvt_sllod.html + +[Default:] none + +:line + +:link(Muller-Plathe) +[(Muller-Plathe)] Muller-Plathe, Phys Rev E, 59, 4894-4898 (1999).