lammps/doc/fix_uniaxial.txt

124 lines
4.1 KiB
Plaintext

"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 uniaxial command :h3
[Syntax:]
fix ID group-ID uniaxial N keyword dim amount :pre
ID, group-ID are documented in "fix"_fix.html command
uniaxial = style name of this fix command
N = perform uniaxial rescaling every this many timesteps
dim = {x} or {y} or {z}
strain = uniaxial strain in dim (2.0 = 2x larger) :ul
[Examples:]
fix 1 all uniaxial 100 x 2.0 :pre
[Description:]
Enable a uniaxial dilation/contraction of the simulation box during a
simulation. For example if the direction is X and the strain is 2,
then the final box size is 2L, L/sqrt(2), L/sqrt(2), where L**3 is a
cube with the same volume as the initial box, which need not be cubic.
The chosen direction is ramped linearly during the course of the run
to its final value. The "run"_run.html command documents how to make
the ramping take place across multiple runs.
If the two perpendicular box sizes are equal then the deformation
pathway is uniaxial at each timestep. If the two perpendicular box
length sizes differ, then their aspect ratio will be linearily ramped
down to 1. Irregardless of the initial box shape the total volume is
constant during the deformation. Additional details provided by
Carsten Svaneborg (Max Planck Institute for Complex Systems, Dresden,
Germany) who authored this fix, are at the bottom of this page.
The initial simulation box boundaries at the beginning of a run are
specified by the "create_box"_create_box.html or
"read_data"_read_data.html or "read_restart"_read_restart.html command
used to setup the simulation, or they are the values at the end of the
previous run. Every Nth timestep during the run, the various
dimensions are expanded or contracted. The coordinates of all atoms
in the group are also scaled to the new box size.
[Restrictions:]
To use this fix, all dimensions of the system must be periodic.
[Related commands:] none
[Default:] none
[Extra Notes:]
The uniaxial deformation is performed as follows:
For notational simplicity the deformation is assumed to be in
the X direction with final strain lambda. alpha denotes an
arbitrary Cartesian direction.
The initial strain is obtained from box dimensions:
lambdai_alpha = Box(alpha)/power(Box(0)*Box(1)*Box(2),1/3) :pre
The final strain lambda in dir is specified:
lambdaf_x = lambda
lambda_y = lambda_z = 1/sqrt(lambda) :pre
Volume conservation implies lambda_x(t)*lambda_y(t)lambda_z(t) = 1.0
for all times. Rather than time, let delta is denotes reduced time in
the interval from 0 to 1.
We want a linear ramp in the specified strain component, such that MD
time steps and uniaxial strain are linearly related:
lambda_x(delta) = lambdai_x (1-delta) + lambdaf_x :pre
The problem that remains is to choose a deformation pathway for
lambda_y(delta) and lambda_z(delta) that agrees with the initial and
final strains, and at all times conserves volume. Secondly the pathway
should be symmetric if the box has y<->z symmetry.
In the case where the initial box is symmetric in yz, this follows
from volume conservation:
lambda_y(d) = lambda_z(d) = 1/sqrt(lambda_x(d)) :pre
However, in general the initial box dimensions in the y and z directions
need not be the same so assume a relation:
lambda_y(d) = alpha(d)lambda_z(d) :pre
From volume conservation it follows that
lambda_y(d) = sqrt(alpha(d)/lambda_x(d))
lambda_z(d) = 1/sqrt(alpha(d)*lambda_x(d)) :pre
The asymmetry parameter has to fulfill the following boundary
conditions:
initial alpha(d=0) = lambdai_y/lambdai_z
final alpha(d=1) = 1 :pre
Any interpolation that does this will by define a continuous volume
conserving deformation from the initial to the desired final state.
The freedom of choice here is e.g. to relax the asymetry of the box
very fast, and then slowly elongate along x, or to do this more
slowly.
The choice used in the code is:
alpha(d) = lambdai_y/lambdai_z (1-d) + d :pre
Note in some cases like strain <1 2 0.5> -> strain <2 0.707107
0.707107> the perpendicular strains do not follow a monotonic curve.