diff --git a/doc/html/compute_dpd.html b/doc/html/compute_dpd.html index 12e58daa9..ddab1ca7a 100644 --- a/doc/html/compute_dpd.html +++ b/doc/html/compute_dpd.html @@ -1,245 +1,245 @@ compute dpd command — LAMMPS documentation

compute dpd command

Syntax

compute ID group-ID dpd
 
  • ID, group-ID are documented in compute command
  • dpd = style name of this compute command

Examples

compute 1 all dpd
 

Description

Define a computation that accumulates the total internal conductive energy (U_cond), the total internal mechanical energy (U_mech), the total internal energy (U) and the harmonic average of the internal temperature (dpdTheta) for the entire system of particles. See the compute dpd/atom command if you want per-particle internal energies and internal temperatures.

The system internal properties are computed according to the following relations:

_images/compute_dpd.jpg

where N is the number of particles in the system


Output info:

This compute calculates a global vector of length 5 (U_cond, U_mech, U, dpdTheta, N_particles), which can be accessed by indices 1-5. See this section for an overview of LAMMPS output options.

-

The vector values will be in energy and temperature units.

+

The vector values will be in energy and temperature units.

Restrictions

The compute dpd is only available if LAMMPS is built with the USER-DPD package and requires the atom_style dpd.

\ No newline at end of file diff --git a/doc/html/compute_gyration.html b/doc/html/compute_gyration.html index 5958bda2d..9d92b09b0 100644 --- a/doc/html/compute_gyration.html +++ b/doc/html/compute_gyration.html @@ -1,256 +1,256 @@ compute gyration command — LAMMPS documentation

compute gyration command

Syntax

compute ID group-ID gyration
 
  • ID, group-ID are documented in compute command
  • gyration = style name of this compute command

Examples

compute 1 molecule gyration
 

Description

Define a computation that calculates the radius of gyration Rg of the group of atoms, including all effects due to atoms passing thru periodic boundaries.

Rg is a measure of the size of the group of atoms, and is computed as the square root of the Rg^2 value in this formula

_images/compute_gyration.jpg

where M is the total mass of the group, Rcm is the center-of-mass position of the group, and the sum is over all atoms in the group.

A Rg^2 tensor, stored as a 6-element vector, is also calculated by this compute. The formula for the components of the tensor is the same as the above formula, except that (Ri - Rcm)^2 is replaced by (Rix - Rcmx) * (Riy - Rcmy) for the xy component, etc. The 6 components of the vector are ordered xx, yy, zz, xy, xz, yz. Note that unlike the scalar Rg, each of the 6 values of the tensor is effectively a “squared” value, since the cross-terms may be negative and taking a sqrt() would be invalid.

Note

The coordinates of an atom contribute to Rg in “unwrapped” form, by using the image flags associated with each atom. See the dump custom command for a discussion of “unwrapped” coordinates. See the Atoms section of the read_data command for a discussion of image flags and how they are set for each atom. You can reset the image flags (e.g. to 0) before invoking this compute by using the set image command.

Output info:

This compute calculates a global scalar (Rg) and a global vector of length 6 (Rg^2 tensor), which can be accessed by indices 1-6. These values can be used by any command that uses a global scalar value or vector values from a compute as input. See Section_howto 15 for an overview of LAMMPS output options.

The scalar and vector values calculated by this compute are “intensive”. The scalar and vector values will be in distance and -distance^2 units respectively.

+distance^2 units respectively.

Restrictions

none
\ No newline at end of file diff --git a/doc/html/compute_gyration_chunk.html b/doc/html/compute_gyration_chunk.html index 4105254e7..388ee64c0 100644 --- a/doc/html/compute_gyration_chunk.html +++ b/doc/html/compute_gyration_chunk.html @@ -1,287 +1,287 @@ compute gyration/chunk command — LAMMPS documentation

compute gyration/chunk command

Syntax

compute ID group-ID gyration/chunk chunkID keyword value ...
 
  • ID, group-ID are documented in compute command
  • gyration/chunk = style name of this compute command
  • chunkID = ID of compute chunk/atom command
  • zero or more keyword/value pairs may be appended
  • keyword = tensor
 tensor value = none
 

Examples

compute 1 molecule gyration/chunk molchunk
 compute 2 molecule gyration/chunk molchunk tensor
 

Description

Define a computation that calculates the radius of gyration Rg for multiple chunks of atoms.

In LAMMPS, chunks are collections of atoms defined by a compute chunk/atom command, which assigns each atom to a single chunk (or no chunk). The ID for this command is specified as chunkID. For example, a single chunk could be the atoms in a molecule or atoms in a spatial bin. See the compute chunk/atom doc page and “Section_howto 23 for details of how chunks can be defined and examples of how they can be used to measure properties of a system.

This compute calculates the radius of gyration Rg for each chunk, which includes all effects due to atoms passing thru periodic boundaries.

Rg is a measure of the size of a chunk, and is computed by this formula

_images/compute_gyration.jpg

where M is the total mass of the chunk, Rcm is the center-of-mass position of the chunk, and the sum is over all atoms in the chunk.

Note that only atoms in the specified group contribute to the calculation. The compute chunk/atom command defines its own group; atoms will have a chunk ID = 0 if they are not in that group, signifying they are not assigned to a chunk, and will thus also not contribute to this calculation. You can specify the “all” group for this command if you simply want to include atoms with non-zero chunk IDs.

If the tensor keyword is specified, then the scalar Rg value is not calculated, but an Rg tensor is instead calculated for each chunk. The formula for the components of the tensor is the same as the above formula, except that (Ri - Rcm)^2 is replaced by (Rix - Rcmx) * (Riy - Rcmy) for the xy component, etc. The 6 components of the tensor are ordered xx, yy, zz, xy, xz, yz.

Note

The coordinates of an atom contribute to Rg in “unwrapped” form, by using the image flags associated with each atom. See the dump custom command for a discussion of “unwrapped” coordinates. See the Atoms section of the read_data command for a discussion of image flags and how they are set for each atom. You can reset the image flags (e.g. to 0) before invoking this compute by using the set image command.

The simplest way to output the results of the compute gyration/chunk calculation to a file is to use the fix ave/time command, for example:

compute cc1 all chunk/atom molecule
 compute myChunk all gyration/chunk cc1
 fix 1 all ave/time 100 1 100 c_myChunk file tmp.out mode vector
 

Output info:

This compute calculates a global vector if the tensor keyword is not specified and a global array if it is. The length of the vector or number of rows in the array = the number of chunks Nchunk as calculated by the specified compute chunk/atom command. If the tensor keyword is specified, the global array has 6 columns. The vector or array can be accessed by any command that uses global values from a compute as input. See this section for an overview of LAMMPS output options.

All the vector or array values calculated by this compute are “intensive”. The vector or array values will be in distance -units, since they are the square root of values +units, since they are the square root of values represented by the formula above.

Restrictions

none

Related commands: none

compute gyration

Default: none

\ No newline at end of file diff --git a/doc/html/compute_heat_flux.html b/doc/html/compute_heat_flux.html index 5af22ca90..6357ed453 100644 --- a/doc/html/compute_heat_flux.html +++ b/doc/html/compute_heat_flux.html @@ -1,370 +1,370 @@ compute heat/flux command — LAMMPS documentation

compute heat/flux command

Syntax

compute ID group-ID heat/flux ke-ID pe-ID stress-ID
 
  • ID, group-ID are documented in compute command
  • heat/flux = style name of this compute command
  • ke-ID = ID of a compute that calculates per-atom kinetic energy
  • pe-ID = ID of a compute that calculates per-atom potential energy
  • stress-ID = ID of a compute that calculates per-atom stress

Examples

compute myFlux all heat/flux myKE myPE myStress
 

Description

Define a computation that calculates the heat flux vector based on contributions from atoms in the specified group. This can be used by itself to measure the heat flux into or out of a reservoir of atoms, or to calculate a thermal conductivity using the Green-Kubo formalism.

See the fix thermal/conductivity command for details on how to compute thermal conductivity in an alternate way, via the Muller-Plathe method. See the fix heat command for a way to control the heat added or subtracted to a group of atoms.

The compute takes three arguments which are IDs of other computes. One calculates per-atom kinetic energy (ke-ID), one calculates per-atom potential energy (pe-ID), and the third calcualtes per-atom stress (stress-ID). These should be defined for the same group used by compute heat/flux, though LAMMPS does not check for this.

The Green-Kubo formulas relate the ensemble average of the auto-correlation of the heat flux J to the thermal conductivity kappa:

_images/heat_flux_J.jpg _images/heat_flux_k.jpg

Ei in the first term of the equation for J is the per-atom energy (potential and kinetic). This is calculated by the computes ke-ID and pe-ID. Si in the second term of the equation for J is the per-atom stress tensor calculated by the compute stress-ID. The tensor multiplies Vi as a 3x3 matrix-vector multiply to yield a vector. Note that as discussed below, the 1/V scaling factor in the equation for J is NOT included in the calculation performed by this compute; you need to add it for a volume appropriate to the atoms included in the calculation.

Note

The compute pe/atom and compute stress/atom commands have options for which terms to include in their calculation (pair, bond, etc). The heat flux calculation will thus include exactly the same terms. Normally you should use compute stress/atom virial so as not to include a kinetic energy term in the heat flux.

This compute calculates 6 quantities and stores them in a 6-component vector. The first 3 components are the x, y, z components of the full heat flux vector, i.e. (Jx, Jy, Jz). The next 3 components are the x, y, z components of just the convective portion of the flux, i.e. the first term in the equation for J above.


The heat flux can be output every so many timesteps (e.g. via the thermo_style custom command). Then as a post-processing operation, an autocorrelation can be performed, its integral estimated, and the Green-Kubo formula above evaluated.

The fix ave/correlate command can calclate the autocorrelation. The trap() function in the variable command can calculate the integral.

An example LAMMPS input script for solid Ar is appended below. The result should be: average conductivity ~0.29 in W/mK.


Output info:

This compute calculates a global vector of length 6 (total heat flux vector, followed by convective heat flux vector), which can be accessed by indices 1-6. These values can be used by any command that uses global vector values from a compute as input. See this section for an overview of LAMMPS output options.

The vector values calculated by this compute are “extensive”, meaning they scale with the number of atoms in the simulation. They can be divided by the appropriate volume to get a flux, which would then be an “intensive” value, meaning independent of the number of atoms in the simulation. Note that if the compute is “all”, then the appropriate volume to divide by is the simulation box volume. However, if a sub-group is used, it should be the volume containing those atoms.

-

The vector values will be in energy*velocity units. Once +

The vector values will be in energy*velocity units. Once divided by a volume the units will be that of flux, namely -energy/area/time units

+energy/area/time units

Restrictions

none
\ No newline at end of file diff --git a/doc/html/compute_msd_nongauss.html b/doc/html/compute_msd_nongauss.html index 056dd5907..a185b2a47 100644 --- a/doc/html/compute_msd_nongauss.html +++ b/doc/html/compute_msd_nongauss.html @@ -1,260 +1,260 @@ compute msd/nongauss command — LAMMPS documentation

compute msd/nongauss command

Syntax

compute ID group-ID msd/nongauss keyword values ...
 
  • ID, group-ID are documented in compute command
  • msd/nongauss = style name of this compute command
  • zero or more keyword/value pairs may be appended
  • keyword = com
 com value = yes or no
 

Examples

compute 1 all msd/nongauss
 compute 1 upper msd/nongauss com yes
 

Description

Define a computation that calculates the mean-squared displacement (MSD) and non-Gaussian parameter (NGP) of the group of atoms, including all effects due to atoms passing thru periodic boundaries.

A vector of three quantites is calculated by this compute. The first element of the vector is the total squared dx,dy,dz displacements drsquared = (dx*dx + dy*dy + dz*dz) of atoms, and the second is the fourth power of these displacements drfourth = (dx*dx + dy*dy + dz*dz)*(dx*dx + dy*dy + dz*dz), summed and averaged over atoms in the group. The 3rd component is the nonGaussian diffusion paramter NGP = 3*drfourth/(5*drsquared*drsquared), i.e.

_images/compute_msd_nongauss.jpg

The NGP is a commonly used quantity in studies of dynamical heterogeneity. Its minimum theoretical value (-0.4) occurs when all atoms have the same displacement magnitude. NGP=0 for Brownian diffusion, while NGP > 0 when some mobile atoms move faster than others.

If the com option is set to yes then the effect of any drift in the center-of-mass of the group of atoms is subtracted out before the displacment of each atom is calcluated.

See the compute msd doc page for further important NOTEs, which also apply to this compute.

Output info:

This compute calculates a global vector of length 3, which can be accessed by indices 1-3 by any command that uses global vector values from a compute as input. See this section for an overview of LAMMPS output options.

The vector values are “intensive”. The first vector value will be in -distance^2 units, the second is in distance^4 units, and +distance^2 units, the second is in distance^4 units, and the 3rd is dimensionless.

Restrictions

This compute is part of the MISC package. It is only enabled if LAMMPS was built with that package. See the Making LAMMPS section for more info.

Default

The option default is com = no.

\ No newline at end of file diff --git a/doc/html/compute_pressure.html b/doc/html/compute_pressure.html index 62864812f..cdee346c8 100644 --- a/doc/html/compute_pressure.html +++ b/doc/html/compute_pressure.html @@ -1,311 +1,311 @@ compute pressure command — LAMMPS documentation

compute pressure command

compute pressure/cuda command

Syntax

compute ID group-ID pressure temp-ID keyword ...
 
  • ID, group-ID are documented in compute command
  • pressure = style name of this compute command
  • temp-ID = ID of compute that calculates temperature, can be NULL if not needed
  • zero or more keywords may be appended
  • keyword = ke or pair or bond or angle or dihedral or improper or kspace or fix or virial

Examples

compute 1 all pressure thermo_temp
 compute 1 all pressure NULL pair bond
 

Description

Define a computation that calculates the pressure of the entire system of atoms. The specified group must be “all”. See the compute stress/atom command if you want per-atom pressure (stress). These per-atom values could be summed for a group of atoms via the compute reduce command.

The pressure is computed by the formula

_images/pressure.jpg

where N is the number of atoms in the system (see discussion of DOF below), Kb is the Boltzmann constant, T is the temperature, d is the dimensionality of the system (2 or 3 for 2d/3d), V is the system volume (or area in 2d), and the second term is the virial, computed within LAMMPS for all pairwise as well as 2-body, 3-body, and 4-body, and long-range interactions. Fixes that impose constraints (e.g. the fix shake command) also contribute to the virial term.

A symmetric pressure tensor, stored as a 6-element vector, is also calculated by this compute. The 6 components of the vector are ordered xx, yy, zz, xy, xz, yz. The equation for the I,J components (where I and J = x,y,z) is similar to the above formula, except that the first term uses components of the kinetic energy tensor and the second term uses components of the virial tensor:

_images/pressure_tensor.jpg

If no extra keywords are listed, the entire equations above are calculated. This includes a kinetic energy (temperature) term and the virial as the sum of pair, bond, angle, dihedral, improper, kspace (long-range), and fix contributions to the force on each atom. If any extra keywords are listed, then only those components are summed to compute temperature or ke and/or the virial. The virial keyword means include all terms except the kinetic energy ke.

Details of how LAMMPS computes the virial efficiently for the entire system, including the effects of periodic boundary conditions is discussed in (Thompson).

The temperature and kinetic energy tensor is not calculated by this compute, but rather by the temperature compute specified with the command. If the kinetic energy is not included in the pressure, than the temperature compute is not used and can be specified as NULL. Normally the temperature compute used by compute pressure should calculate the temperature of all atoms for consistency with the virial term, but any compute style that calculates temperature can be used, e.g. one that excludes frozen atoms or other degrees of freedom.

Note that if desired the specified temperature compute can be one that subtracts off a bias to calculate a temperature using only the thermal velocity of the atoms, e.g. by subtracting a background streaming velocity. See the doc pages for individual compute commands to determine which ones include a bias.

Also note that the N in the first formula above is really degrees-of-freedom divided by d = dimensionality, where the DOF value is calcluated by the temperature compute. See the various compute temperature styles for details.

A compute of this style with the ID of “thermo_press” is created when LAMMPS starts up, as if this command were in the input script:

compute thermo_press all pressure thermo_temp
 

where “thermo_temp” is the ID of a similarly defined compute of style “temp”. See the “thermo_style” command for more details.


Styles with a cuda, gpu, intel, kk, omp, or opt suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available hardware, as discussed in Section_accelerate of the manual. The accelerated styles take the same arguments and should produce the same results, except for round-off and precision issues.

These accelerated styles are part of the USER-CUDA, GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if LAMMPS was built with those packages. See the Making LAMMPS section for more info.

You can specify the accelerated styles explicitly in your input script by including their suffix, or you can use the -suffix command-line switch when you invoke LAMMPS, or you can use the suffix command in your input script.

See Section_accelerate of the manual for more instructions on how to use the accelerated styles effectively.


Output info:

This compute calculates a global scalar (the pressure) and a global vector of length 6 (pressure tensor), which can be accessed by indices 1-6. These values can be used by any command that uses global scalar or vector values from a compute as input. See this section for an overview of LAMMPS output options.

The scalar and vector values calculated by this compute are “intensive”. The scalar and vector values will be in pressure -units.

+units.

Restrictions

none
\ No newline at end of file diff --git a/doc/html/compute_stress_atom.html b/doc/html/compute_stress_atom.html index d55fe581d..e99ece170 100644 --- a/doc/html/compute_stress_atom.html +++ b/doc/html/compute_stress_atom.html @@ -1,329 +1,329 @@ compute stress/atom command — LAMMPS documentation

compute stress/atom command

Syntax

compute ID group-ID stress/atom temp-ID keyword ...
 
  • ID, group-ID are documented in compute command
  • stress/atom = style name of this compute command
  • temp-ID = ID of compute that calculates temperature, can be NULL if not needed
  • zero or more keywords may be appended
  • keyword = ke or pair or bond or angle or dihedral or improper or kspace or fix or virial

Examples

compute 1 mobile stress/atom NULL
 compute 1 mobile stress/atom myRamp
 compute 1 all stress/atom NULL pair bond
 

Description

Define a computation that computes the symmetric per-atom stress tensor for each atom in a group. The tensor for each atom has 6 components and is stored as a 6-element vector in the following order: xx, yy, zz, xy, xz, yz. See the compute pressure command if you want the stress tensor (pressure) of the entire system.

The stress tensor for atom I is given by the following formula, where a and b take on values x,y,z to generate the 6 components of the symmetric tensor:

_images/stress_tensor.jpg

The first term is a kinetic energy contribution for atom I. See details below on how the specified temp-ID can affect the velocities used in this calculation. The second term is a pairwise energy contribution where n loops over the Np neighbors of atom I, r1 and r2 are the positions of the 2 atoms in the pairwise interaction, and F1 and F2 are the forces on the 2 atoms resulting from the pairwise interaction. The third term is a bond contribution of similar form for the Nb bonds which atom I is part of. There are similar terms for the Na angle, Nd dihedral, and Ni improper interactions atom I is part of. There is also a term for the KSpace contribution from long-range Coulombic interactions, if defined. Finally, there is a term for the Nf fixes that apply internal constraint forces to atom I. Currently, only the fix shake and fix rigid commands contribute to this term.

As the coefficients in the formula imply, a virial contribution produced by a small set of atoms (e.g. 4 atoms in a dihedral or 3 atoms in a Tersoff 3-body interaction) is assigned in equal portions to each atom in the set. E.g. 1/4 of the dihedral virial to each of the 4 atoms, or 1/3 of the fix virial due to SHAKE constraints applied to atoms in a a water molecule via the fix shake command.

If no extra keywords are listed, all of the terms in this formula are included in the per-atom stress tensor. If any extra keywords are listed, only those terms are summed to compute the tensor. The virial keyword means include all terms except the kinetic energy ke.

Note that the stress for each atom is due to its interaction with all other atoms in the simulation, not just with other atoms in the group.

Details of how LAMMPS computes the virial for individual atoms for either pairwise or manybody potentials, and including the effects of periodic boundary conditions is discussed in (Thompson). The basic idea for manybody potentials is to treat each component of the force computation between a small cluster of atoms in the same manner as in the formula above for bond, angle, dihedral, etc interactions. Namely the quantity R dot F is summed over the atoms in the interaction, with the R vectors unwrapped by periodic boundaries so that the cluster of atoms is close together. The total contribution for the cluster interaction is divided evenly among those atoms.

The dihedral_style charmm style calculates pairwise interactions between 1-4 atoms. The virial contribution of these terms is included in the pair virial, not the dihedral virial.

The KSpace contribution is calculated using the method in (Heyes) for the Ewald method and by the methodology described in (Sirk) for PPPM. The choice of KSpace solver is specified by the kspace_style pppm command. Note that for PPPM, the calcluation requires 6 extra FFTs each timestep that per-atom stress is calculated. Thus it can significantly increase the cost of the PPPM calculation if it is needed on a large fraction of the simulation timesteps.

The temp-ID argument can be used to affect the per-atom velocities used in the kinetic energy contribution to the total stress. If the kinetic energy is not included in the stress, than the temperature compute is not used and can be specified as NULL. If the kinetic energy is included and you wish to use atom velocities as-is, then temp-ID can also be specified as NULL. If desired, the specified temperature compute can be one that subtracts off a bias to leave each atom with only a thermal velocity to use in the formula above, e.g. by subtracting a background streaming velocity. See the doc pages for individual compute commands to determine which ones include a bias.


Note that as defined in the formula, per-atom stress is the negative of the per-atom pressure tensor. It is also really a stress*volume formulation, meaning the computed quantity is in units of pressure*volume. It would need to be divided by a per-atom volume to have units of stress (pressure), but an individual atom’s volume is not well defined or easy to compute in a deformed solid or a liquid. See the compute voronoi/atom command for one possible way to estimate a per-atom volume.

Thus, if the diagonal components of the per-atom stress tensor are summed for all atoms in the system and the sum is divided by dV, where d = dimension and V is the volume of the system, the result should be -P, where P is the total pressure of the system.

These lines in an input script for a 3d system should yield that result. I.e. the last 2 columns of thermo output will be the same:

compute              peratom all stress/atom NULL
 compute              p all reduce sum c_peratom[1] c_peratom[2] c_peratom[3]
 variable     press equal -(c_p[1]+c_p[2]+c_p[3])/(3*vol)
 thermo_style custom step temp etotal press v_press
 

Output info:

This compute calculates a per-atom array with 6 columns, which can be accessed by indices 1-6 by any command that uses per-atom values from a compute as input. See Section_howto 15 for an overview of LAMMPS output options.

The per-atom array values will be in pressure*volume -units as discussed above.

+units as discussed above.

Restrictions

none
\ No newline at end of file diff --git a/doc/html/create_atoms.html b/doc/html/create_atoms.html index d2b1b6504..e7b3d635f 100644 --- a/doc/html/create_atoms.html +++ b/doc/html/create_atoms.html @@ -1,495 +1,495 @@ create_atoms command — LAMMPS documentation

create_atoms command

Syntax

create_atoms type style args keyword values ...
 
  • type = atom type (1-Ntypes) of atoms to create (offset for molecule creation)
  • style = box or region or single or random
 box args = none
 region args = region-ID
   region-ID = particles will only be created if contained in the region
 single args = x y z
   x,y,z = coordinates of a single particle (distance units)
 random args = N seed region-ID
   N = number of particles to create
   seed = random # seed (positive integer)
   region-ID = create atoms within this region, use NULL for entire simulation box
 
  • zero or more keyword/value pairs may be appended
  • keyword = mol or basis or remap or var or set or units
 mol value = template-ID seed
   template-ID = ID of molecule template specified in a separate molecule command
   seed = random # seed (positive integer)
 basis values = M itype
   M = which basis atom
   itype = atom type (1-N) to assign to this basis atom
 remap value = yes or no
 var value = name = variable name to evaluate for test of atom creation
 set values = dim name
   dim = x or y or z
   name = name of variable to set with x, y, or z atom position
 rotate values = Rx Ry Rz theta
   Rx,Ry,Rz = rotation vector for single molecule
   theta = rotation angle for single molecule (degrees)
 units value = lattice or box
   lattice = the geometry is defined in lattice units
   box = the geometry is defined in simulation box units
 

Examples

create_atoms 1 box
 create_atoms 3 region regsphere basis 2 3
 create_atoms 3 single 0 0 5
 create_atoms 1 box var v set x xpos set y ypos
 

Description

This command creates atoms (or molecules) on a lattice, or a single atom (or molecule), or a random collection of atoms (or molecules), as an alternative to reading in their coordinates explicitly via a read_data or read_restart command. A simulation box must already exist, which is typically created via the create_box command. Before using this command, a lattice must also be defined using the lattice command, unless you specify the single style with units = box or the random style. For the remainder of this doc page, a created atom or molecule is referred to as a “particle”.

If created particles are individual atoms, they are assigned the specified atom type, though this can be altered via the basis keyword as discussed below. If molecules are being created, the type of each atom in the created molecule is specified in the file read by the molecule command, and those values are added to the specified atom type. E.g. if type = 2, and the file specifies atom types 1,2,3, then each created molecule will have atom types 3,4,5.

For the box style, the create_atoms command fills the entire simulation box with particles on the lattice. If your simulation box is periodic, you should insure its size is a multiple of the lattice spacings, to avoid unwanted atom overlaps at the box boundaries. If your box is periodic and a multiple of the lattice spacing in a particular dimension, LAMMPS is careful to put exactly one particle at the boundary (on either side of the box), not zero or two.

For the region style, a geometric volume is filled with particles on the lattice. This volume what is inside the simulation box and is also consistent with the region volume. See the region command for details. Note that a region can be specified so that its “volume” is either inside or outside a geometric boundary. Also note that if your region is the same size as a periodic simulation box (in some dimension), LAMMPS does not implement the same logic described above as for the box style, to insure exactly one particle at periodic boundaries. if this is what you desire, you should either use the box style, or tweak the region size to get precisely the particles you want.

For the single style, a single particle is added to the system at the specified coordinates. This can be useful for debugging purposes or to create a tiny system with a handful of particles at specified positions.

For the random style, N particles are added to the system at randomly generated coordinates, which can be useful for generating an amorphous system. The particles are created one by one using the speficied random number seed, resulting in the same set of particles coordinates, independent of how many processors are being used in the simulation. If the region-ID argument is specified as NULL, then the created particles will be anywhere in the simulation box. If a region-ID is specified, a geometric volume is filled which is both inside the simulation box and is also consistent with the region volume. See the region command for details. Note that a region can be specified so that its “volume” is either inside or outside a geometric boundary.

Note

Particles generated by the random style will typically be highly overlapped which will cause many interatomic potentials to compute large energies and forces. Thus you should either perform an energy minimization or run dynamics with fix nve/limit to equilibrate such a system, before running normal dynamics.

Note that this command adds particles to those that already exist. This means it can be used to add particles to a system previously read in from a data or restart file. Or the create_atoms command can be used multiple times, to add multiple sets of particles to the simulation. For example, grain boundaries can be created, by interleaving create_atoms with lattice commands specifying different orientations. By using the create_atoms command in conjunction with the delete_atoms command, reasonably complex geometries can be created, or a protein can be solvated with a surrounding box of water molecules.

In all these cases, care should be taken to insure that new atoms do not overlap existing atoms inappropriately, especially if molecules are being added. The delete_atoms command can be used to remove overlapping atoms or molecules.


Individual atoms are inserted by this command, unless the mol keyword is used. It specifies a template-ID previously defined using the molecule command, which reads a file that defines the molecule. The coordinates, atom types, charges, etc, as well as any bond/angle/etc and special neighbor information for the molecule can be specified in the molecule file. See the molecule command for details. The only settings required to be in this file are the coordinates and types of atoms in the molecule.

Using a lattice to add molecules, e.g. via the box or region or single styles, is exactly the same as adding atoms on lattice points, except that entire molecules are added at each point, i.e. on the point defined by each basis atom in the unit cell as it tiles the simulation box or region. This is done by placing the geometric center of the molecule at the lattice point, and giving the molecule a random orientation about the point. The random seed specified with the mol keyword is used for this operation, and the random numbers generated by each processor are different. This means the coordinates of individual atoms (in the molecules) will be different when running on different numbers of processors, unlike when atoms are being created in parallel.

Also note that because of the random rotations, it may be important to use a lattice with a large enough spacing that adjacent molecules will not overlap, regardless of their relative orientations.

Note

If the create_box command is used to create the simulation box, followed by the create_atoms command with its mol option for adding molecules, then you typically need to use the optional keywords allowed by the create_box command for extra bonds (angles,etc) or extra special neighbors. This is because by default, the create_box command sets up a non-molecular system which doesn’t allow molecules to be added.


This is the meaning of the other allowed keywords.

The basis keyword is only used when atoms (not molecules) are being created. It specifies an atom type that will be assigned to specific basis atoms as they are created. See the lattice command for specifics on how basis atoms are defined for the unit cell of the lattice. By default, all created atoms are assigned the argument type as their atom type.

The remap keyword only applies to the single style. If it is set to yes, then if the specified position is outside the simulation box, it will mapped back into the box, assuming the relevant dimensions are periodic. If it is set to no, no remapping is done and no particle is created if its position is outside the box.

The var and set keywords can be used together to provide a criterion for accepting or rejecting the addition of an individual atom, based on its coordinates. The name specified for the var keyword is the name of an equal-style variable which should evaluate to a zero or non-zero value based on one or two or three variables which will store the x, y, or z coordinates of an atom (one variable per coordinate). If used, these other variables must be equal-style variables defined in the input script, but their formula can by anything. The set keyword is used to identify the names of these other variables, one variable for the x-coordinate of a created atom, one for y, and one for z.

When an atom is created, its x, y, or z coordinates override the formula for any set variable that is defined. The var variable is then evaluated. If the returned value is 0.0, the atom is not created. If it is non-zero, the atom is created. After all atoms are created, the formulas defined for all of the set variables are restored to their original strings.

As an example, these commands can be used in a 2d simulation, to create a sinusoidal surface. Note that the surface is “rough” due to individual lattice points being “above” or “below” the mathematical expression for the sinusoidal curve. If a finer lattice were used, the sinusoid would appear to be “smoother”. Also note the use of the “xlat” and “ylat” thermo_style keywords which converts lattice spacings to distance. Click on the image for a larger version.

variable        x equal 100
 variable        y equal 25
 lattice              hex 0.8442
 region               box block 0 $x 0 $y -0.5 0.5
 create_box   1 box
 
variable        xx equal 0.0
 variable        yy equal 0.0
 variable        v equal "(0.2*v_y*ylat * cos(v_xx/xlat * 2.0*PI*4.0/v_x) + 0.5*v_y*ylat - v_yy) > 0.0"
 create_atoms 1 box var v set x xx set y yy
 

The rotate keyword can be used with the single style, when adding a single molecule to specify the orientation at which the molecule is inserted. The axis of rotation is determined by the rotation vector (Rx,Ry,Rz) that goes through the insertion point. The specified theta determines the angle of rotation around that axis. Note that the direction of rotation for the atoms around the rotation axis is consistent with the right-hand rule: if your right-hand’s thumb points along R, then your fingers wrap around the axis in the direction of rotation.

The units keyword determines the meaning of the distance units used to specify the coordinates of the one particle created by the single style. A box value selects standard distance units as defined by -the units command, e.g. Angstroms for units = real or +the units command, e.g. Angstroms for units = real or metal. A lattice value means the distance units are in lattice spacings.


Atom IDs are assigned to created atoms in the following way. The collection of created atoms are assigned consecutive IDs that start immediately following the largest atom ID existing before the create_atoms command was invoked. When a simulation is performed on different numbers of processors, there is no guarantee a particular created atom will be assigned the same ID. If molecules are being created, molecule IDs are assigned to created molecules in a similar fashion.

Aside from their ID, atom type, and xyz position, other properties of created atoms are set to default values, depending on which quantities are defined by the chosen atom style. See the atom style command for more details. See the set and velocity commands for info on how to change these values.

  • charge = 0.0
  • dipole moment magnitude = 0.0
  • diameter = 1.0
  • shape = 0.0 0.0 0.0
  • density = 1.0
  • volume = 1.0
  • velocity = 0.0 0.0 0.0
  • angular velocity = 0.0 0.0 0.0
  • angular momentum = 0.0 0.0 0.0
  • quaternion = (1,0,0,0)
  • bonds, angles, dihedrals, impropers = none

If molecules are being created, these defaults can be overridden by values specified in the file read by the molecule command. E.g. the file typically defines bonds (angles,etc) between atoms in the molecule, and can optionally define charges on each atom.

Note that the sphere atom style sets the default particle diameter to 1.0 as well as the density. This means the mass for the particle is not 1.0, but is PI/6 * diameter^3 = 0.5236.

Note that the ellipsoid atom style sets the default particle shape to (0.0 0.0 0.0) and the density to 1.0 which means it is a point particle, not an ellipsoid, and has a mass of 1.0.

Note that the peri style sets the default volume and density to 1.0 and thus also set the mass for the particle to 1.0.

The set command can be used to override many of these default settings.


Restrictions

An atom_style must be previously defined to use this command.

A rotation vector specified for a single molecule must be in the z-direction for a 2d model.

Default

The default for the basis keyword is that all created atoms are assigned the argument type as their atom type (when single atoms are being created). The other defaults are remap = no, rotate = random, and units = lattice.

\ No newline at end of file diff --git a/doc/html/dump_image.html b/doc/html/dump_image.html index 04e766fde..d87a86461 100644 --- a/doc/html/dump_image.html +++ b/doc/html/dump_image.html @@ -1,778 +1,778 @@ dump image command — LAMMPS documentation

dump image command

dump movie command

Syntax

dump ID group-ID style N file color diameter keyword value ...
 
  • ID = user-assigned name for the dump
  • group-ID = ID of the group of atoms to be imaged
  • style = image or movie = style of dump command (other styles atom or cfg or dcd or xtc or xyz or local or custom are discussed on the dump doc page)
  • N = dump every this many timesteps
  • file = name of file to write image to
  • color = atom attribute that determines color of each atom
  • diameter = atom attribute that determines size of each atom
  • zero or more keyword/value pairs may be appended
  • keyword = atom or adiam or bond or line or tri or body or size or view or center or up or zoom or persp or box or axes or subbox or shiny or ssao
 atom = yes/no = do or do not draw atoms
 adiam size = numeric value for atom diameter (distance units)
 bond values = color width = color and width of bonds
   color = atom or type or none
   width = number or atom or type or none
     number = numeric value for bond width (distance units)
 line = color width
   color = type
   width = numeric value for line width (distance units)
 tri = color tflag width
   color = type
   tflag = 1 for just triangle, 2 for just tri edges, 3 for both
   width = numeric value for tringle edge width (distance units)
 body = color bflag1 bflag2
   color = type
   bflag1,bflag2 = 2 numeric flags to affect how bodies are drawn
 size values = width height = size of images
   width = width of image in # of pixels
   height = height of image in # of pixels
 view values = theta phi = view of simulation box
   theta = view angle from +z axis (degrees)
   phi = azimuthal view angle (degrees)
   theta or phi can be a variable (see below)
 center values = flag Cx Cy Cz = center point of image
   flag = "s" for static, "d" for dynamic
   Cx,Cy,Cz = center point of image as fraction of box dimension (0.5 = center of box)
   Cx,Cy,Cz can be variables (see below)
 up values = Ux Uy Uz = direction that is "up" in image
   Ux,Uy,Uz = components of up vector
   Ux,Uy,Uz can be variables (see below)
 zoom value = zfactor = size that simulation box appears in image
   zfactor = scale image size by factor > 1 to enlarge, factor < 1 to shrink
   zfactor can be a variable (see below)
 persp value = pfactor = amount of "perspective" in image
   pfactor = amount of perspective (0 = none, < 1 = some, > 1 = highly skewed)
   pfactor can be a variable (see below)
 box values = yes/no diam = draw outline of simulation box
   yes/no = do or do not draw simulation box lines
   diam = diameter of box lines as fraction of shortest box length
 axes values = yes/no length diam = draw xyz axes
   yes/no = do or do not draw xyz axes lines next to simulation box
   length = length of axes lines as fraction of respective box lengths
   diam = diameter of axes lines as fraction of shortest box length
 subbox values = yes/no diam = draw outline of processor sub-domains
   yes/no = do or do not draw sub-domain lines
   diam = diameter of sub-domain lines as fraction of shortest box length
 shiny value = sfactor = shinyness of spheres and cylinders
   sfactor = shinyness of spheres and cylinders from 0.0 to 1.0
 ssao value = yes/no seed dfactor = SSAO depth shading
   yes/no = turn depth shading on/off
   seed = random # seed (positive integer)
   dfactor = strength of shading from 0.0 to 1.0
 

Examples

dump d0 all image 100 dump.*.jpg type type
 dump d1 mobile image 500 snap.*.png element element ssao yes 4539 0.6
 dump d2 all image 200 img-*.ppm type type zoom 2.5 adiam 1.5 size 1280 720
 dump m0 all movie 1000 movie.mpg type type size 640 480
 dump m1 all movie 1000 movie.avi type type size 640 480
 dump m2 all movie 100 movie.m4v type type zoom 1.8 adiam v_value size 1280 720
 

Description

Dump a high-quality rendered image of the atom configuration every N timesteps and save the images either as a sequence of JPEG or PNG or PPM files, or as a single movie file. The options for this command as well as the dump_modify command control what is included in the image or movie and how it appears. A series of such images can easily be manually converted into an animated movie of your simulation or the process can be automated without writing the intermediate files using the dump movie style; see further details below. Other dump styles store snapshots of numerical data asociated with atoms in various formats, as discussed on the dump doc page.

Note that a set of images or a movie can be made after a simulation has been run, using the rerun command to read snapshots from an existing dump file, and using these dump commands in the rerun script to generate the images/movie.

Here are two sample images, rendered as 1024x1024 JPEG files. Click to see the full-size images:

Only atoms in the specified group are rendered in the image. The dump_modify region and thresh commands can also alter what atoms are included in the image. The filename suffix determines whether a JPEG, PNG, or PPM file is created with the image dump style. If the suffix is ”.jpg” or ”.jpeg”, then a JPEG format file is created, if the suffix is ”.png”, then a PNG format is created, else a PPM (aka NETPBM) format file is created. The JPEG and PNG files are binary; PPM has a text mode header followed by binary data. JPEG images have lossy compression; PNG has lossless compression; and PPM files are uncompressed but can be compressed with gzip, if LAMMPS has been compiled with -DLAMMPS_GZIP and a ”.gz” suffix is used.

Similarly, the format of the resulting movie is chosen with the movie dump style. This is handled by the underlying FFmpeg converter and thus details have to be looked up in the FFmpeg documentation. Typical examples are: .avi, .mpg, .m4v, .mp4, .mkv, .flv, .mov, .gif Additional settings of the movie compression like bitrate and framerate can be set using the dump_modify command.

To write out JPEG and PNG format files, you must build LAMMPS with support for the corresponding JPEG or PNG library. To convert images into movies, LAMMPS has to be compiled with the -DLAMMPS_FFMPEG flag. See this section of the manual for instructions on how to do this.

Note

Because periodic boundary conditions are enforced only on timesteps when neighbor lists are rebuilt, the coordinates of an atom in the image may be slightly outside the simulation box.


Dumps are performed on timesteps that are a multiple of N (including timestep 0) and on the last timestep of a minimization if the minimization converges. Note that this means a dump will not be performed on the initial timestep after the dump command is invoked, if the current timestep is not a multiple of N. This behavior can be changed via the dump_modify first command, which can be useful if the dump command is invoked after a minimization ended on an arbitrary timestep. N can be changed between runs by using the dump_modify every command.

Dump image filenames must contain a wildcard character “*”, so that one image file per snapshot is written. The “*” character is replaced with the timestep value. For example, tmp.dump.*.jpg becomes tmp.dump.0.jpg, tmp.dump.10000.jpg, tmp.dump.20000.jpg, etc. Note that the dump_modify pad command can be used to insure all timestep numbers are the same length (e.g. 00010), which can make it easier to convert a series of images into a movie in the correct ordering.

Dump movie filenames on the other hand, must not have any wildcard character since only one file combining all images into a single movie will be written by the movie encoder.


The color and diameter settings determine the color and size of atoms rendered in the image. They can be any atom attribute defined for the dump custom command, including type and element. This includes per-atom quantities calculated by a compute, fix, or variable, which are prefixed by “c_”, “f_”, or “v_” respectively. Note that the diameter setting can be overridden with a numeric value applied to all atoms by the optional adiam keyword.

If type is specified for the color setting, then the color of each atom is determined by its atom type. By default the mapping of types to colors is as follows:

  • type 1 = red
  • type 2 = green
  • type 3 = blue
  • type 4 = yellow
  • type 5 = aqua
  • type 6 = cyan

and repeats itself for types > 6. This mapping can be changed by the dump_modify acolor command.

If type is specified for the diameter setting then the diameter of each atom is determined by its atom type. By default all types have diameter 1.0. This mapping can be changed by the dump_modify adiam command.

If element is specified for the color and/or diameter setting, then the color and/or diameter of each atom is determined by which element it is, which in turn is specified by the element-to-type mapping specified by the “dump_modify element” command. By default every atom type is C (carbon). Every element has a color and diameter associated with it, which is the same as the colors and sizes used by the AtomEye visualization package.

If other atom attributes are used for the color or diameter settings, they are interpreted in the following way.

If “vx”, for example, is used as the color setting, then the color of the atom will depend on the x-component of its velocity. The association of a per-atom value with a specific color is determined by a “color map”, which can be specified via the dump_modify command. The basic idea is that the atom-attribute will be within a range of values, and every value within the range is mapped to a specific color. Depending on how the color map is defined, that mapping can take place via interpolation so that a value of -3.2 is halfway between “red” and “blue”, or discretely so that the value of -3.2 is “orange”.

If “vx”, for example, is used as the diameter setting, then the atom will be rendered using the x-component of its velocity as the diameter. If the per-atom value <= 0.0, them the atom will not be drawn. Note that finite-size spherical particles, as defined by atom_style sphere define a per-particle radius or diameter, which can be used as the diameter setting.


The various kewords listed above control how the image is rendered. As listed below, all of the keywords have defaults, most of which you will likely not need to change. The dump modify also has options specific to the dump image style, particularly for assigning colors to atoms, bonds, and other image features.


The atom keyword allow you to turn off the drawing of all atoms, if the specified value is no. Note that this will not turn off the drawing of particles that are represented as lines, triangles, or bodies, as discussed below. These particles can be drawn separately if the line, tri, or body keywords are used.

The adiam keyword allows you to override the diameter setting to set a single numeric size. All atoms will be drawn with that -diameter, e.g. 1.5, which is in whatever distance units +diameter, e.g. 1.5, which is in whatever distance units the input script defines, e.g. Angstroms.

The bond keyword allows to you to alter how bonds are drawn. A bond is only drawn if both atoms in the bond are being drawn due to being in the specified group and due to other selection criteria (e.g. region, threshhold settings of the dump_modify command). By default, bonds are drawn if they are defined in the input data file as read by the read_data command. Using none for both the bond color and width value will turn off the drawing of all bonds.

If atom is specified for the bond color value, then each bond is drawn in 2 halves, with the color of each half being the color of the atom at that end of the bond.

If type is specified for the color value, then the color of each bond is determined by its bond type. By default the mapping of bond types to colors is as follows:

  • type 1 = red
  • type 2 = green
  • type 3 = blue
  • type 4 = yellow
  • type 5 = aqua
  • type 6 = cyan

and repeats itself for bond types > 6. This mapping can be changed by the dump_modify bcolor command.

The bond width value can be a numeric value or atom or type (or none as indicated above).

If a numeric value is specified, then all bonds will be drawn as cylinders with that diameter, e.g. 1.0, which is in whatever distance -units the input script defines, e.g. Angstroms.

+units the input script defines, e.g. Angstroms.

If atom is specified for the width value, then each bond will be drawn with a width corresponding to the minimum diameter of the 2 atoms in the bond.

If type is specified for the width value then the diameter of each bond is determined by its bond type. By default all types have diameter 0.5. This mapping can be changed by the dump_modify bdiam command.

The line keyword can be used when atom_style line is used to define particles as line segments, and will draw them as lines. If this keyword is not used, such particles will be drawn as spheres, the same as if they were regular atoms. The only setting currently allowed for the color value is type, which will color the lines according to the atom type of the particle. By default the mapping of types to colors is as follows:

  • type 1 = red
  • type 2 = green
  • type 3 = blue
  • type 4 = yellow
  • type 5 = aqua
  • type 6 = cyan

and repeats itself for types > 6. There is not yet an option to change this via the dump_modify command.

The line width can only be a numeric value, which specifies that all lines will be drawn as cylinders with that diameter, e.g. 1.0, which -is in whatever distance units the input script defines, +is in whatever distance units the input script defines, e.g. Angstroms.

The tri keyword can be used when atom_style tri is used to define particles as triangles, and will draw them as triangles or edges (3 lines) or both, depending on the setting for tflag. If edges are drawn, the width setting determines the diameters of the line segments. If this keyword is not used, triangle particles will be drawn as spheres, the same as if they were regular atoms. The only setting currently allowed for the color value is type, which will color the triangles according to the atom type of the particle. By default the mapping of types to colors is as follows:

  • type 1 = red
  • type 2 = green
  • type 3 = blue
  • type 4 = yellow
  • type 5 = aqua
  • type 6 = cyan

and repeats itself for types > 6. There is not yet an option to change this via the dump_modify command.

The body keyword can be used when atom_style body is used to define body particles with internal state (e.g. sub-particles), and will drawn them in a manner specific to the body style. If this keyword is not used, such particles will be drawn as spheres, the same as if they were regular atoms.

The body doc page descibes the body styles LAMMPS currently supports, and provides more details as to the kind of body particles they represent and how they are drawn by this dump image command. For all the body styles, individual atoms can be either a body particle or a usual point (non-body) particle. Non-body particles will be drawn the same way they would be as a regular atom. The bflag1 and bflag2 settings are numerical values which are passed to the body style to affect how the drawing of a body particle is done. See the body doc page for a description of what these parameters mean for each body style.


The size keyword sets the width and height of the created images, i.e. the number of pixels in each direction.


The view, center, up, zoom, and persp values determine how 3d simulation space is mapped to the 2d plane of the image. Basically they control how the simulation box appears in the image.

All of the view, center, up, zoom, and persp values can be specified as numeric quantities, whose meaning is explained below. Any of them can also be specified as an equal-style variable, by using v_name as the value, where “name” is the variable name. In this case the variable will be evaluated on the timestep each image is created to create a new value. If the equal-style variable is time-dependent, this is a means of changing the way the simulation box appears from image to image, effectively doing a pan or fly-by view of your simulation.

The view keyword determines the viewpoint from which the simulation box is viewed, looking towards the center point. The theta value is the vertical angle from the +z axis, and must be an angle from 0 to 180 degrees. The phi value is an azimuthal angle around the z axis and can be positive or negative. A value of 0.0 is a view along the +x axis, towards the center point. If theta or phi are specified via variables, then the variable values should be in degrees.

The center keyword determines the point in simulation space that will be at the center of the image. Cx, Cy, and Cz are speficied as fractions of the box dimensions, so that (0.5,0.5,0.5) is the center of the simulation box. These values do not have to be between 0.0 and 1.0, if you want the simulation box to be offset from the center of the image. Note, however, that if you choose strange values for Cx, Cy, or Cz you may get a blank image. Internally, Cx, Cy, and Cz are converted into a point in simulation space. If flag is set to “s” for static, then this conversion is done once, at the time the dump command is issued. If flag is set to “d” for dynamic then the conversion is performed every time a new image is created. If the box size or shape is changing, this will adjust the center point in simulation space.

The up keyword determines what direction in simulation space will be “up” in the image. Internally it is stored as a vector that is in the plane perpendicular to the view vector implied by the theta and pni values, and which is also in the plane defined by the view vector and user-specified up vector. Thus this internal vector is computed from the user-specified up vector as

up_internal = view cross (up cross view)
 

This means the only restriction on the specified up vector is that it cannot be parallel to the view vector, implied by the theta and phi values.

The zoom keyword scales the size of the simulation box as it appears in the image. The default zfactor value of 1 should display an image mostly filled by the atoms in the simulation box. A zfactor > 1 will make the simulation box larger; a zfactor < 1 will make it smaller. Zfactor must be a value > 0.0.

The persp keyword determines how much depth perspective is present in the image. Depth perspective makes lines that are parallel in simulation space appear non-parallel in the image. A pfactor value of 0.0 means that parallel lines will meet at infininty (1.0/pfactor), which is an orthographic rendering with no persepctive. A pfactor value between 0.0 and 1.0 will introduce more perspective. A pfactor value > 1 will create a highly skewed image with a large amount of perspective.

Note

The persp keyword is not yet supported as an option.


The box keyword determines if and how the simulation box boundaries are rendered as thin cylinders in the image. If no is set, then the box boundaries are not drawn and the diam setting is ignored. If yes is set, the 12 edges of the box are drawn, with a diameter that is a fraction of the shortest box length in x,y,z (for 3d) or x,y (for 2d). The color of the box boundaries can be set with the dump_modify boxcolor command.

The axes keyword determines if and how the coordinate axes are rendered as thin cylinders in the image. If no is set, then the axes are not drawn and the length and diam settings are ignored. If yes is set, 3 thin cylinders are drawn to represent the x,y,z axes in colors red,green,blue. The origin of these cylinders will be offset from the lower left corner of the box by 10%. The length setting determines how long the cylinders will be as a fraction of the respective box lengths. The diam setting determines their thickness as a fraction of the shortest box length in x,y,z (for 3d) or x,y (for 2d).

The subbox keyword determines if and how processor sub-domain boundaries are rendered as thin cylinders in the image. If no is set (default), then the sub-domain boundaries are not drawn and the diam setting is ignored. If yes is set, the 12 edges of each processor sub-domain are drawn, with a diameter that is a fraction of the shortest box length in x,y,z (for 3d) or x,y (for 2d). The color of the sub-domain boundaries can be set with the dump_modify boxcolor command.


The shiny keyword determines how shiny the objects rendered in the image will appear. The sfactor value must be a value 0.0 <= sfactor <= 1.0, where sfactor = 1 is a highly reflective surface and sfactor = 0 is a rough non-shiny surface.

The ssao keyword turns on/off a screen space ambient occlusion (SSAO) model for depth shading. If yes is set, then atoms further away from the viewer are darkened via a randomized process, which is perceived as depth. The calculation of this effect can increase the cost of computing the image by roughly 2x. The strength of the effect can be scaled by the dfactor parameter. If no is set, no depth shading is performed.


A series of JPEG, PNG, or PPM images can be converted into a movie file and then played as a movie using commonly available tools. Using dump style movie automates this step and avoids the intermediate step of writing (many) image snapshot file. But LAMMPS has to be compiled with -DLAMMPS_FFMPEG and an FFmpeg executable have to be installed.

To manually convert JPEG, PNG or PPM files into an animated GIF or MPEG or other movie file you can use:

    1. Use the ImageMagick convert program.
% convert *.jpg foo.gif
 % convert -loop 1 *.ppm foo.mpg
 

Animated GIF files from ImageMagick are unoptimized. You can use a program like gifsicle to optimize and massively shrink them. MPEG files created by ImageMagick are in MPEG-1 format with rather inefficient compression and low quality.

    1. Use QuickTime.

Select “Open Image Sequence” under the File menu Load the images into QuickTime to animate them Select “Export” under the File menu Save the movie as a QuickTime movie (*.mov) or in another format. QuickTime can generate very high quality and efficiently compressed movie files. Some of the supported formats require to buy a license and some are not readable on all platforms until specific runtime libraries are installed.

    1. Use FFmpeg

FFmpeg is a command line tool that is available on many platforms and allows extremely flexible encoding and decoding of movies.

cat snap.*.jpg | ffmpeg -y -f image2pipe -c:v mjpeg -i - -b:v 2000k movie.m4v
 cat snap.*.ppm | ffmpeg -y -f image2pipe -c:v ppm -i - -b:v 2400k movie.avi
 

Frontends for FFmpeg exist for multiple platforms. For more information see the FFmpeg homepage


Play the movie:

    1. Use your browser to view an animated GIF movie.

Select “Open File” under the File menu Load the animated GIF file

  • b) Use the freely available mplayer or ffplay tool to view a movie. Both are available for multiple OSes and support a large variety of file formats and decoders.
% mplayer foo.mpg
 % ffplay bar.avi
 
a = animate("foo*.jpg")
 
  • d) QuickTime and other Windows- or MacOS-based media players can obviously play movie files directly. Similarly for corresponding tools bundled with Linux desktop environments. However, due to licensing issues with some file formats, the formats may require installing additional libraries, purchasing a license, or may not be supported.

See Section_modify of the manual for information on how to add new compute and fix styles to LAMMPS to calculate per-atom quantities which could then be output into dump files.


Restrictions

To write JPEG images, you must use the -DLAMMPS_JPEG switch when building LAMMPS and link with a JPEG library. To write PNG images, you must use the -DLAMMPS_PNG switch when building LAMMPS and link with a PNG library.

To write movie dumps, you must use the -DLAMMPS_FFMPEG switch when building LAMMPS and have the FFmpeg executable available on the machine where LAMMPS is being run. Typically it’s name is lowercase, i.e. ffmpeg.

See the Making LAMMPS section of the documentation for details on how to compile with optional switches.

Note that since FFmpeg is run as an external program via a pipe, LAMMPS has limited control over its execution and no knowledge about errors and warnings printed by it. Those warnings and error messages will be printed to the screen only. Due to the way image data is communicated to FFmpeg, it will often print the message

pipe:: Input/output error
 

which can be safely ignored. Other warnings and errors have to be addressed according to the FFmpeg documentation. One known issue is that certain movie file formats (e.g. MPEG level 1 and 2 format streams) have video bandwith limits that can be crossed when rendering too large of image sizes. Typical warnings look like this:

[mpeg @ 0x98b5e0] packet too large, ignoring buffer limits to mux it
 [mpeg @ 0x98b5e0] buffer underflow st=0 bufi=281407 size=285018
 [mpeg @ 0x98b5e0] buffer underflow st=0 bufi=283448 size=285018
 

In this case it is recommended to either reduce the size of the image or encode in a different format that is also supported by your copy of FFmpeg, and which does not have this limitation (e.g. .avi, .mkv, mp4).

Default

The defaults for the keywords are as follows:

  • adiam = not specified (use diameter setting)
  • atom = yes
  • bond = none none (if no bonds in system)
  • bond = atom 0.5 (if bonds in system)
  • size = 512 512
  • view = 60 30 (for 3d)
  • view = 0 0 (for 2d)
  • center = s 0.5 0.5 0.5
  • up = 0 0 1 (for 3d)
  • up = 0 1 0 (for 2d)
  • zoom = 1.0
  • persp = 0.0
  • box = yes 0.02
  • axes = no 0.0 0.0
  • subbox no 0.0
  • shiny = 1.0
  • ssao = no
\ No newline at end of file diff --git a/doc/html/fix_nh.html b/doc/html/fix_nh.html index bc140c13f..bdf5b051b 100644 --- a/doc/html/fix_nh.html +++ b/doc/html/fix_nh.html @@ -1,789 +1,789 @@ fix nvt command — LAMMPS documentation

fix nvt command

fix nvt/cuda command

fix nvt/intel command

fix nvt/kk command

fix nvt/omp command

fix npt command

fix npt/cuda command

fix npt/intel command

fix npt/kk command

fix npt/omp command

fix nph command

fix nph/kk command

fix nph/omp command

Syntax

fix ID group-ID style_name keyword value ...
 
  • ID, group-ID are documented in fix command
  • style_name = nvt or npt or nph
  • one or more keyword/value pairs may be appended
 keyword = temp or iso or aniso or tri or x or y or z or xy or yz or xz or couple or tchain or pchain or mtk or tloop or ploop or nreset or drag or dilate or scalexy or scaleyz or scalexz or flip or fixedpoint or update
   temp values = Tstart Tstop Tdamp
     Tstart,Tstop = external temperature at start/end of run
     Tdamp = temperature damping parameter (time units)
   iso or aniso or tri values = Pstart Pstop Pdamp
     Pstart,Pstop = scalar external pressure at start/end of run (pressure units)
     Pdamp = pressure damping parameter (time units)
   x or y or z or xy or yz or xz values = Pstart Pstop Pdamp
     Pstart,Pstop = external stress tensor component at start/end of run (pressure units)
     Pdamp = stress damping parameter (time units)
   couple = none or xyz or xy or yz or xz
   tchain value = N
     N = length of thermostat chain (1 = single thermostat)
   pchain values = N
     N length of thermostat chain on barostat (0 = no thermostat)
   mtk value = yes or no = add in MTK adjustment term or not
   tloop value = M
     M = number of sub-cycles to perform on thermostat
   ploop value = M
     M = number of sub-cycles to perform on barostat thermostat
   nreset value = reset reference cell every this many timesteps
   drag value = Df
     Df = drag factor added to barostat/thermostat (0.0 = no drag)
   dilate value = dilate-group-ID
     dilate-group-ID = only dilate atoms in this group due to barostat volume changes
   scalexy value = yes or no = scale xy with ly
   scaleyz value = yes or no = scale yz with lz
   scalexz value = yes or no = scale xz with lz
   flip value = yes or no = allow or disallow box flips when it becomes highly skewed
   fixedpoint values = x y z
     x,y,z = perform barostat dilation/contraction around this point (distance units)
   update value = dipole update dipole orientation (only for sphere variants)
 

Examples

fix 1 all nvt temp 300.0 300.0 100.0
 fix 1 water npt temp 300.0 300.0 100.0 iso 0.0 0.0 1000.0
 fix 2 jello npt temp 300.0 300.0 100.0 tri 5.0 5.0 1000.0
 fix 2 ice nph x 1.0 1.0 0.5 y 2.0 2.0 0.5 z 3.0 3.0 0.5 yz 0.1 0.1 0.5 xz 0.2 0.2 0.5 xy 0.3 0.3 0.5 nreset 1000
 

Description

These commands perform time integration on Nose-Hoover style non-Hamiltonian equations of motion which are designed to generate positions and velocities sampled from the canonical (nvt), isothermal-isobaric (npt), and isenthalpic (nph) ensembles. This updates the position and velocity for atoms in the group each timestep.

The thermostatting and barostatting is achieved by adding some dynamic variables which are coupled to the particle velocities (thermostatting) and simulation domain dimensions (barostatting). In addition to basic thermostatting and barostatting, these fixes can also create a chain of thermostats coupled to the particle thermostat, and another chain of thermostats coupled to the barostat variables. The barostat can be coupled to the overall box volume, or to individual dimensions, including the xy, xz and yz tilt dimensions. The external pressure of the barostat can be specified as either a scalar pressure (isobaric ensemble) or as components of a symmetric stress tensor (constant stress ensemble). 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 (Shinoda), which combine the hydrostatic equations of -Martyna, Tobias and Klein in (Martyna) with the strain +Martyna, Tobias and Klein in (Martyna) with the strain energy proposed by Parrinello and Rahman in -(Parrinello). The time integration schemes closely +(Parrinello). The time integration schemes closely follow the time-reversible measure-preserving Verlet and rRESPA -integrators derived by Tuckerman et al in (Tuckerman).

+integrators derived by Tuckerman et al in (Tuckerman).


The thermostat parameters for fix styles nvt and npt is specified using the temp keyword. Other thermostat-related keywords are tchain, tloop and drag, which are discussed below.

The thermostat is applied to only the translational degrees of freedom for the particles. The translational degrees of freedom can also have a bias velocity removed before thermostatting takes place; see the description below. The desired temperature at each timestep is a ramped value during the run from Tstart to Tstop. The Tdamp parameter is specified in time units and determines how rapidly the temperature is relaxed. For example, a value of 10.0 means to relax the temperature in a timespan of (roughly) 10 time units (e.g. tau or -fmsec or psec - see the units command). The atoms in the +fmsec or psec - see the units command). The atoms in the fix group are the only ones whose velocities and positions are updated by the velocity/position update portion of the integration.

Note

A Nose-Hoover thermostat will not work well for arbitrary values of Tdamp. If Tdamp is too small, the temperature can fluctuate wildly; if it is too large, the temperature will take a very long time to equilibrate. A good choice for many models is a Tdamp of around 100 timesteps. Note that this is NOT the same as 100 time units for -most units settings.

+most units settings.


The barostat parameters for fix styles npt and nph is specified using one or more of the iso, aniso, tri, x, y, z, xy, xz, yz, and couple keywords. These keywords give you the ability to specify all 6 components of an external stress tensor, and to couple various of these components together so that the dimensions they represent are varied together during a constant-pressure simulation.

Other barostat-related keywords are pchain, mtk, ploop, nreset, drag, and dilate, which are discussed below.

Orthogonal simulation boxes have 3 adjustable dimensions (x,y,z). Triclinic (non-orthogonal) simulation boxes have 6 adjustable dimensions (x,y,z,xy,xz,yz). The create_box, read data, and read_restart commands specify whether the simulation box is orthogonal or non-orthogonal (triclinic) and explain the meaning of the xy,xz,yz tilt factors.

The target pressures for each of the 6 components of the stress tensor can be specified independently via the x, y, z, xy, xz, yz keywords, which correspond to the 6 simulation box dimensions. For each component, the external pressure or tensor component at each timestep is a ramped value during the run from Pstart to Pstop. If a target pressure is specified for a component, then the corresponding box dimension will change during a simulation. For example, if the y keyword is used, the y-box length will change. If the xy keyword is used, the xy tilt factor will change. A box dimension will not change if that component is not specified, although you have the option to change that dimension via the fix deform command.

Note that in order to use the xy, xz, or yz keywords, the simulation box must be triclinic, even if its initial tilt factors are 0.0.

For all barostat keywords, the Pdamp parameter operates like the Tdamp parameter, determining the time scale on which pressure is relaxed. For example, a value of 10.0 means to relax the pressure in a timespan of (roughly) 10 time units (e.g. tau or fmsec or psec - see -the units command).

+the units command).

Note

A Nose-Hoover barostat will not work well for arbitrary values of Pdamp. If Pdamp is too small, the pressure and volume can fluctuate wildly; if it is too large, the pressure will take a very long time to equilibrate. A good choice for many models is a Pdamp of around 1000 timesteps. However, note that Pdamp is specified in time units, and that timesteps are NOT the same as time units for most -units settings.

+units settings.

Regardless of what atoms are in the fix group (the only atoms which are time integrated), a global pressure or stress tensor is computed for all atoms. Similarly, when the size of the simulation box is changed, all atoms are re-scaled to new positions, unless the keyword dilate is specified with a dilate-group-ID for a group that represents a subset of the atoms. This can be useful, for example, to leave the coordinates of atoms in a solid substrate unchanged and controlling the pressure of a surrounding fluid. This option should be used with care, since it can be unphysical to dilate some atoms and not others, because it can introduce large, instantaneous displacements between a pair of atoms (one dilated, one not) that are far from the dilation origin. Also note that for atoms not in the fix group, a separate time integration fix like fix nve or fix nvt can be used on them, independent of whether they are dilated or not.


The couple keyword allows two or three of the diagonal components of the pressure tensor to be “coupled” together. The value specified with the keyword determines which are coupled. For example, xz means the Pxx and Pzz components of the stress tensor are coupled. Xyz means all 3 diagonal components are coupled. Coupling means two things: the instantaneous stress will be computed as an average of the corresponding diagonal components, and the coupled box dimensions will be changed together in lockstep, meaning coupled dimensions will be dilated or contracted by the same percentage every timestep. The Pstart, Pstop, Pdamp parameters for any coupled dimensions must be identical. Couple xyz can be used for a 2d simulation; the z dimension is simply ignored.


The iso, aniso, and tri keywords are simply shortcuts that are equivalent to specifying several other keywords together.

The keyword iso means couple all 3 diagonal components together when pressure is computed (hydrostatic pressure), and dilate/contract the dimensions together. Using “iso Pstart Pstop Pdamp” is the same as specifying these 4 keywords:

x Pstart Pstop Pdamp
 y Pstart Pstop Pdamp
 z Pstart Pstop Pdamp
 couple xyz
 

The keyword aniso means x, y, and z dimensions are controlled independently using the Pxx, Pyy, and Pzz components of the stress tensor as the driving forces, and the specified scalar external pressure. Using “aniso Pstart Pstop Pdamp” is the same as specifying these 4 keywords:

x Pstart Pstop Pdamp
 y Pstart Pstop Pdamp
 z Pstart Pstop Pdamp
 couple none
 

The keyword tri means x, y, z, xy, xz, and yz dimensions are controlled independently using their individual stress components as the driving forces, and the specified scalar pressure as the external normal stress. Using “tri Pstart Pstop Pdamp” is the same as specifying these 7 keywords:

x Pstart Pstop Pdamp
 y Pstart Pstop Pdamp
 z Pstart Pstop Pdamp
 xy 0.0 0.0 Pdamp
 yz 0.0 0.0 Pdamp
 xz 0.0 0.0 Pdamp
 couple none
 

In some cases (e.g. for solids) the pressure (volume) and/or temperature of the system can oscillate undesirably when a Nose/Hoover barostat and thermostat is applied. The optional drag keyword will damp these oscillations, although it alters the Nose/Hoover equations. A value of 0.0 (no drag) leaves the Nose/Hoover formalism unchanged. A non-zero value adds a drag term; the larger the value specified, the greater the damping effect. Performing a short run and monitoring the pressure and temperature is the best way to determine if the drag term is working. Typically a value between 0.2 to 2.0 is sufficient to damp oscillations after a few periods. Note that use of the drag keyword will interfere with energy conservation and will also change the distribution of positions and velocities so that they do not correspond to the nominal NVT, NPT, or NPH ensembles.

An alternative way to control initial oscillations is to use chain thermostats. The keyword tchain determines the number of thermostats in the particle thermostat. A value of 1 corresponds to the original Nose-Hoover thermostat. The keyword pchain specifies the number of thermostats in the chain thermostatting the barostat degrees of freedom. A value of 0 corresponds to no thermostatting of the barostat variables.

The mtk keyword controls whether or not the correction terms due to Martyna, Tuckerman, and Klein are included in the equations of motion -(Martyna). Specifying no reproduces the original +(Martyna). Specifying no reproduces the original Hoover barostat, whose volume probability distribution function differs from the true NPT and NPH ensembles by a factor of 1/V. Hence using yes is more correct, but in many cases the difference is negligible.

The keyword tloop can be used to improve the accuracy of integration scheme at little extra cost. The initial and final updates of the thermostat variables are broken up into tloop substeps, each of length dt/tloop. This corresponds to using a first-order -Suzuki-Yoshida scheme (Tuckerman). The keyword ploop +Suzuki-Yoshida scheme (Tuckerman). The keyword ploop does the same thing for the barostat thermostat.

The keyword nreset controls how often the reference dimensions used to define the strain energy are reset. If this keyword is not used, or is given a value of zero, then the reference dimensions are set to those of the initial simulation domain and are never changed. If the simulation domain changes significantly during the simulation, then the final average pressure tensor will differ significantly from the specified values of the external stress tensor. A value of nstep means that every nstep timesteps, the reference dimensions are set to those of the current simulation domain.

The scaleyz, scalexz, and scalexy keywords control whether or not the corresponding tilt factors are scaled with the associated box dimensions when barostatting triclinic periodic cells. The default values yes will turn on scaling, which corresponds to adjusting the linear dimensions of the cell while preserving its shape. Choosing no ensures that the tilt factors are not scaled with the box dimensions. See below for restrictions and default values in different situations. In older versions of LAMMPS, scaling of tilt factors was not performed. The old behavior can be recovered by setting all three scale keywords to no.

The flip keyword allows the tilt factors for a triclinic box to exceed half the distance of the parallel box length, as discussed below. If the flip value is set to yes, the bound is enforced by flipping the box when it is exceeded. If the flip value is set to no, the tilt will continue to change without flipping. Note that if applied stress induces large deformations (e.g. in a liquid), this means the box shape can tilt dramatically and LAMMPS will run less efficiently, due to the large volume of communication needed to acquire ghost atoms around a processor’s irregular-shaped sub-domain. For extreme values of tilt, LAMMPS may also lose atoms and generate an error.

The fixedpoint keyword specifies the fixed point for barostat volume changes. By default, it is the center of the box. Whatever point is chosen will not move during the simulation. For example, if the lower periodic boundaries pass through (0,0,0), and this point is provided to fixedpoint, then the lower periodic boundaries will remain at (0,0,0), while the upper periodic boundaries will move twice as far. In all cases, the particle trajectories are unaffected by the chosen value, except for a time-dependent constant translation of positions.

If the update keyword is used with the dipole value, then the orientation of the dipole moment of each particle is also updated during the time integration. This option should be used for models where a dipole moment is assigned to finite-size particles, e.g. spheroids via use of the atom_style hybrid sphere dipole command.


Note

Using a barostat coupled to tilt dimensions xy, xz, yz can sometimes result in arbitrarily large values of the tilt dimensions, i.e. a dramatically deformed simulation box. LAMMPS allows the tilt factors to grow a small amount beyond the normal limit of half the box length (0.6 times the box length), and then performs a box “flip” to an equivalent periodic cell. See the discussion of the flip keyword above, to allow this bound to be exceeded, if desired.

The flip operation is described in more detail in the doc page for fix deform. Both the barostat dynamics and the atom trajectories are unaffected by this operation. However, if a tilt factor is incremented by a large amount (1.5 times the box length) on a single timestep, LAMMPS can not accomodate this event and will terminate the simulation with an error. This error typically indicates that there is something badly wrong with how the simulation was constructed, such as specifying values of Pstart that are too far from the current stress value, or specifying a timestep that is too large. Triclinic barostatting should be used with care. This also is true for other barostat styles, although they tend to be more forgiving of insults. In particular, it is important to recognize that equilibrium liquids can not support a shear stress and that equilibrium solids can not support shear stresses that exceed the yield stress.

One exception to this rule is if the 1st dimension in the tilt factor (x for xy) is non-periodic. In that case, the limits on the tilt factor are not enforced, since flipping the box in that dimension does not change the atom positions due to non-periodicity. In this mode, if you tilt the system to extreme angles, the simulation will simply become inefficient due to the highly skewed simulation box.

Note

Unlike the fix temp/berendsen command which performs thermostatting but NO time integration, these fixes perform thermostatting/barostatting AND time integration. Thus you should not use any other time integration fix, such as fix nve on atoms to which this fix is applied. Likewise, fix nvt and fix npt should not normally be used on atoms that also have their temperature controlled by another fix - e.g. by fix langevin or fix temp/rescale commands.

See this howto section of the manual for a discussion of different ways to compute temperature and perform thermostatting and barostatting.


These fixes compute a temperature and pressure each timestep. To do this, the fix creates its own computes of style “temp” and “pressure”, as if one of these two sets of commands had been issued:

compute fix-ID_temp group-ID temp
 compute fix-ID_press group-ID pressure fix-ID_temp
 
compute fix-ID_temp all temp
 compute fix-ID_press all pressure fix-ID_temp
 

See the compute temp and compute pressure commands for details. Note that the IDs of the new computes are the fix-ID + underscore + “temp” or fix_ID + underscore + “press”. For fix nvt, the group for the new computes is the same as the fix group. For fix nph and fix npt, the group for the new computes is “all” since pressure is computed for the entire system.

Note that these are NOT the computes used by thermodynamic output (see the thermo_style command) with ID = thermo_temp and thermo_press. This means you can change the attributes of this fix’s temperature or pressure via the compute_modify command or print this temperature or pressure during thermodynamic output via the thermo_style custom command using the appropriate compute-ID. It also means that changing attributes of thermo_temp or thermo_press will have no effect on this fix.

Like other fixes that perform thermostatting, fix nvt and fix npt can be used with compute commands that calculate a temperature after removing a “bias” from the atom velocities. E.g. removing the center-of-mass velocity from a group of atoms or only calculating temperature on the x-component of velocity or only calculating temperature for atoms in a geometric region. This is not done by default, but only if the fix_modify command is used to assign a temperature compute to this fix that includes such a bias term. See the doc pages for individual compute commands to determine which ones include a bias. In this case, the thermostat works in the following manner: the current temperature is calculated taking the bias into account, bias is removed from each atom, thermostatting is performed on the remaining thermal degrees of freedom, and the bias is added back in.


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):

_images/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.

Note

This implementation has been shown to conserve linear momentum up to machine precision under NVT dynamics. Under NPT dynamics, for a system with zero initial total linear momentum, the total momentum fluctuates close to zero. It may occasionally undergo brief excursions to non-negligible values, before returning close to zero. Over long simulations, this has the effect of causing the center-of-mass to undergo a slow random walk. This can be mitigated by resetting the momentum at infrequent intervals using the fix momentum command.

Note

This implementation has been shown to conserve linear momentum up to machine precision under NVT dynamics. Under NPT dynamics, for a system with zero initial total linear momentum, the total momentum fluctuates close to zero. It may occasionally undergo brief excursions to non-negligible values, before returning close to zero. Over long simulations, this has the effect of causing the center-of-mass to undergo a slow random walk. This can be mitigated by resetting the momentum at infrequent intervals using the fix momentum command.


The fix npt and fix nph commands can be used with rigid bodies or mixtures of rigid bodies and non-rigid particles (e.g. solvent). But there are also fix rigid/npt and fix rigid/nph commands, which are typically a more natural choice. See the doc page for those commands for more discussion of the various ways to do this.


Styles with a cuda, gpu, intel, kk, omp, or opt suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available hardware, as discussed in Section_accelerate of the manual. The accelerated styles take the same arguments and should produce the same results, except for round-off and precision issues.

These accelerated styles are part of the USER-CUDA, GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if LAMMPS was built with those packages. See the Making LAMMPS section for more info.

You can specify the accelerated styles explicitly in your input script by including their suffix, or you can use the -suffix command-line switch when you invoke LAMMPS, or you can use the suffix command in your input script.

See Section_accelerate of the manual for more instructions on how to use the accelerated styles effectively.


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

These fixes writes the state of all the thermostat and barostat variables to binary restart files. See the read_restart command for info on how to re-specify a fix in an input script that reads a restart file, so that the operation of the fix continues in an uninterrupted fashion.

The fix_modify temp and press options are supported by these fixes. You can use them to assign a compute you have defined to this fix which will be used in its thermostatting or barostatting procedure, as described above. If you do this, note that the kinetic energy derived from the compute temperature should be consistent with the virial term computed using all atoms for the pressure. LAMMPS will warn you if you choose to compute temperature on a subset of atoms.

Note

If both the temp and press keywords are used in a single thermo_modify command (or in two separate commands), then the order in which the keywords are specified is important. Note that a pressure compute defines its own temperature compute as an argument when it is specified. The temp keyword will override this (for the pressure compute being used by fix npt), but only if the temp keyword comes after the press keyword. If the temp keyword comes before the press keyword, then the new pressure compute specified by the press keyword will be unaffected by the temp setting.

The fix_modify energy option is supported by these fixes to add the energy change induced by Nose/Hoover thermostatting and barostatting to the system’s potential energy as part of thermodynamic output.

These fixes compute a global scalar and a global vector of quantities, which can be accessed by various output commands. The scalar value calculated by these fixes is “extensive”; the vector values are “intensive”.

The scalar is the cumulative energy change due to the fix.

The vector stores internal Nose/Hoover thermostat and barostat variables. The number and meaning of the vector values depends on which fix is used and the settings for keywords tchain and pchain, which specify the number of Nose/Hoover chains for the thermostat and barostat. If no thermostatting is done, then tchain is 0. If no barostatting is done, then pchain is 0. In the following list, “ndof” is 0, 1, 3, or 6, and is the number of degrees of freedom in the barostat. Its value is 0 if no barostat is used, else its value is 6 if any off-diagonal stress tensor component is barostatted, else its value is 1 if couple xyz is used or couple xy for a 2d simulation, otherwise its value is 3.

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 (unitless)
  • eta_dot[tchain] = particle thermostat velocities (1/time units)
  • omega[ndof] = barostat displacements (unitless)
  • omega_dot[ndof] = barostat velocities (1/time units)
  • etap[pchain] = barostat thermostat displacements (unitless)
  • etap_dot[pchain] = barostat thermostat velocities (1/time units)
  • PE_eta[tchain] = potential energy of each particle thermostat displacement (energy units)
  • KE_eta_dot[tchain] = kinetic energy of each particle thermostat velocity (energy units)
  • PE_omega[ndof] = potential energy of each barostat displacement (energy units)
  • KE_omega_dot[ndof] = kinetic energy of each barostat velocity (energy units)
  • PE_etap[pchain] = potential energy of each barostat thermostat displacement (energy units)
  • KE_etap_dot[pchain] = kinetic energy of each barostat thermostat velocity (energy units)
  • PE_strain[1] = scalar strain energy (energy units)

These fixes can ramp their external temperature and pressure over multiple runs, using the start and stop keywords of the run command. See the run command for details of how to do this.

These fixes are not invoked during energy minimization.


Restrictions

X, y, z cannot be barostatted if the associated dimension is not periodic. Xy, xz, and yz can only be barostatted if the simulation domain is triclinic and the 2nd dimension in the keyword (y dimension in xy) is periodic. Z, xz, and yz, cannot be barostatted for 2D simulations. The create_box, read data, and read_restart commands specify whether the simulation box is orthogonal or non-orthogonal (triclinic) and explain the meaning of the xy,xz,yz tilt factors.

For the temp keyword, the final Tstop cannot be 0.0 since it would make the external T = 0.0 at some timestep during the simulation which is not allowed in the Nose/Hoover formulation.

The scaleyz yes and scalexz yes keyword/value pairs can not be used for 2D simulations. scaleyz yes, scalexz yes, and scalexy yes options can only be used if the 2nd dimension in the keyword is periodic, and if the tilt factor is not coupled to the barostat via keywords tri, yz, xz, and xy.

These fixes can be used with dynamic groups as defined by the group command. Likewise they can be used with groups to which atoms are added or deleted over time, e.g. a deposition simulation. However, the conservation properties of the thermostat and barostat are defined for systems with a static set of atoms. You may observe odd behavior if the atoms in a group vary dramatically over time or the atom count becomes very small.

Default

The keyword defaults are tchain = 3, pchain = 3, mtk = yes, tloop = ploop = 1, nreset = 0, drag = 0.0, dilate = all, couple = none, scaleyz = scalexz = scalexy = yes if periodic in 2nd dimension and not coupled to barostat, otherwise no.


(Martyna) Martyna, Tobias and Klein, J Chem Phys, 101, 4177 (1994).

(Parrinello) Parrinello and Rahman, J Appl Phys, 52, 7182 (1981).

(Tuckerman) Tuckerman, Alejandre, Lopez-Rendon, Jochim, and Martyna, J Phys A: Math Gen, 39, 5629 (2006).

(Shinoda) Shinoda, Shiga, and Mikami, Phys Rev B, 69, 134103 (2004).

\ No newline at end of file diff --git a/doc/html/fix_wall.html b/doc/html/fix_wall.html index 0931658a2..2c601bc4a 100644 --- a/doc/html/fix_wall.html +++ b/doc/html/fix_wall.html @@ -1,468 +1,468 @@ fix wall/lj93 command — LAMMPS documentation

fix wall/lj93 command

fix wall/lj126 command

fix wall/lj1043 command

fix wall/colloid command

fix wall/harmonic command

Syntax

fix ID group-ID style face args ... keyword value ...
 
  • ID, group-ID are documented in fix command
  • style = wall/lj93 or wall/lj126 or wall/lj1043 or wall/colloid or wall/harmonic
  • one or more face/arg pairs may be appended
  • face = xlo or xhi or ylo or yhi or zlo or zhi
 args = coord epsilon sigma cutoff
   coord = position of wall = EDGE or constant or variable
     EDGE = current lo or hi edge of simulation box
     constant = number like 0.0 or -30.0 (distance units)
     variable = equal-style variable like v_x or v_wiggle
   epsilon = strength factor for wall-particle interaction (energy or energy/distance^2 units)
     epsilon can be a variable (see below)
   sigma = size factor for wall-particle interaction (distance units)
     sigma can be a variable (see below)
   cutoff = distance from wall at which wall-particle interaction is cut off (distance units)
 
  • zero or more keyword/value pairs may be appended
  • keyword = units or fld
 units value = lattice or box
   lattice = the wall position is defined in lattice units
   box = the wall position is defined in simulation box units
 fld value = yes or no
   yes = invoke the wall constraint to be compatible with implicit FLD
   no = invoke the wall constraint in the normal way
 pbc value = yes or no
   yes = allow periodic boundary in a wall dimension
   no = require non-perioidic boundaries in any wall dimension
 

Examples

fix wallhi all wall/lj93 xlo -1.0 1.0 1.0 2.5 units box
 fix wallhi all wall/lj93 xhi EDGE 1.0 1.0 2.5
 fix wallhi all wall/lj126 v_wiggle 23.2 1.0 1.0 2.5
 fix zwalls all wall/colloid zlo 0.0 1.0 1.0 0.858 zhi 40.0 1.0 1.0 0.858
 

Description

Bound the simulation domain on one or more of its faces with a flat wall that interacts with the atoms in the group by generating a force on the atom in a direction perpendicular to the wall. The energy of wall-particle interactions depends on the style.

For style wall/lj93, the energy E is given by the 9/3 potential:

_images/fix_wall_lj93.jpg

For style wall/lj126, the energy E is given by the 12/6 potential:

_images/pair_lj.jpg

For style wall/lj1043, the energy E is given by the 10/4/3 potential:

_images/fix_wall_lj1043.jpg

For style wall/colloid, the energy E is given by an integrated form of the pair_style colloid potential:

_images/fix_wall_colloid.jpg

For style wall/harmonic, the energy E is given by a harmonic spring potential:

_images/fix_wall_harmonic.jpg

In all cases, r is the distance from the particle to the wall at position coord, and Rc is the cutoff distance at which the particle and wall no longer interact. The energy of the wall potential is shifted so that the wall-particle interaction energy is 0.0 at the cutoff distance.

Up to 6 walls or faces can be specified in a single command: xlo, xhi, ylo, yhi, zlo, zhi. A lo face interacts with particles near the lower side of the simulation box in that dimension. A hi face interacts with particles near the upper side of the simulation box in that dimension.

The position of each wall can be specified in one of 3 ways: as the EDGE of the simulation box, as a constant value, or as a variable. If EDGE is used, then the corresponding boundary of the current simulation box is used. If a numeric constant is specified then the wall is placed at that position in the appropriate dimension (x, y, or z). In both the EDGE and constant cases, the wall will never move. If the wall position is a variable, it should be specified as v_name, where name is an equal-style variable name. In this case the variable is evaluated each timestep and the result becomes the current position of the reflecting wall. Equal-style variables can specify formulas with various mathematical functions, and include thermo_style command keywords for the simulation box parameters and timestep and elapsed time. Thus it is easy to specify a time-dependent wall position. See examples below.

For the wall/lj93 and wall/lj126 and wall/lj1043 styles, epsilon and sigma are the usual Lennard-Jones parameters, which determine the strength and size of the particle as it interacts with the wall. Epsilon has energy units. Note that this epsilon and sigma may be different than any epsilon or sigma values defined for a pair style that computes particle-particle interactions.

The wall/lj93 interaction is derived by integrating over a 3d half-lattice of Lennard-Jones 12/6 particles. The wall/lj126 interaction is effectively a harder, more repulsive wall interaction. The wall/lj1043 interaction is yet a different form of wall interaction, described in Magda et al in (Magda).

For the wall/colloid style, R is the radius of the colloid particle, D is the distance from the surface of the colloid particle to the wall (r-R), and sigma is the size of a constituent LJ particle inside the colloid particle and wall. Note that the cutoff distance Rc in this case is the distance from the colloid particle center to the wall. The prefactor epsilon can be thought of as an effective Hamaker constant with energy units for the strength of the colloid-wall interaction. More specifically, the epsilon pre-factor = 4 * pi^2 * rho_wall * rho_colloid * epsilon * sigma^6, where epsilon and sigma are the LJ parameters for the constituent LJ particles. Rho_wall and rho_colloid are the number density of the constituent particles, in the wall and colloid respectively, in units of 1/volume.

The wall/colloid interaction is derived by integrating over constituent LJ particles of size sigma within the colloid particle and a 3d half-lattice of Lennard-Jones 12/6 particles of size sigma in the wall. As mentioned in the preceeding paragraph, the density of particles in the wall and colloid can be different, as specified by the epsilon pre-factor.

For the wall/harmonic style, epsilon is effectively the spring constant K, and has units (energy/distance^2). The input parameter sigma is ignored. The minimum energy position of the harmonic spring is at the cutoff. This is a repulsive-only spring since the interaction is truncated at the cutoff

For any wall, the epsilon and/or sigma parameter can be specified as an equal-style variable, in which case it should be specified as v_name, where name is the variable name. As with a variable wall position, the variable is evaluated each timestep and the result becomes the current epsilon or sigma of the wall. Equal-style variables can specify formulas with various mathematical functions, and include thermo_style command keywords for the simulation box parameters and timestep and elapsed time. Thus it is easy to specify a time-dependent wall interaction.

Note

For all of the styles, you must insure that r is always > 0 for all particles in the group, or LAMMPS will generate an error. This means you cannot start your simulation with particles at the wall position coord (r = 0) or with particles on the wrong side of the wall (r < 0). For the wall/lj93 and wall/lj126 styles, the energy of the wall/particle interaction (and hence the force on the particle) blows up as r -> 0. The wall/colloid style is even more restrictive, since the energy blows up as D = r-R -> 0. This means the finite-size particles of radius R must be a distance larger than R from the wall position coord. The harmonic style is a softer potential and does not blow up as r -> 0, but you must use a large enough epsilon that particles always reamin on the correct side of the wall (r > 0).

The units keyword determines the meaning of the distance units used to define a wall position, but only when a numeric constant or variable is used. It is not relevant when EDGE is used to specify a face position. In the variable case, the variable is assumed to produce a value compatible with the units setting you specify.

A box value selects standard distance units as defined by the -units command, e.g. Angstroms for units = real or metal. +units command, e.g. Angstroms for units = real or metal. A lattice value means the distance units are in lattice spacings. The lattice command must have been previously used to define the lattice spacings.

The fld keyword can be used with a yes setting to invoke the wall constraint before pairwise interactions are computed. This allows an implicit FLD model using pair_style lubricateU to include the wall force in its calculations. If the setting is no, wall forces are imposed after pairwise interactions, in the usual manner.

The pbc keyword can be used with a yes setting to allow walls to be specified in a periodic dimension. See the boundary command for options on simulation box boundaries. The default for pbc is no, which means the system must be non-periodic when using a wall. But you may wish to use a periodic box. E.g. to allow some particles to interact with the wall via the fix group-ID, and others to pass through it and wrap around a periodic box. In this case you should insure that the wall if sufficiently far enough away from the box boundary. If you do not, then particles may interact with both the wall and with periodic images on the other side of the box, which is probably not what you want.


Here are examples of variable definitions that move the wall position in a time-dependent fashion using equal-style variables. The wall interaction parameters (epsilon, sigma) could be varied with additional variable definitions.

variable ramp equal ramp(0,10)
 fix 1 all wall xlo v_ramp 1.0 1.0 2.5
 
variable linear equal vdisplace(0,20)
 fix 1 all wall xlo v_linear 1.0 1.0 2.5
 
variable wiggle equal swiggle(0.0,5.0,3.0)
 fix 1 all wall xlo v_wiggle 1.0 1.0 2.5
 
variable wiggle equal cwiggle(0.0,5.0,3.0)
 fix 1 all wall xlo v_wiggle 1.0 1.0 2.5
 

The ramp(lo,hi) function adjusts the wall position linearly from lo to hi over the course of a run. The vdisplace(c0,velocity) function does something similar using the equation position = c0 + velocity*delta, where delta is the elapsed time.

The swiggle(c0,A,period) function causes the wall position to oscillate sinusoidally according to this equation, where omega = 2 PI / period:

position = c0 + A sin(omega*delta)
 

The cwiggle(c0,A,period) function causes the wall position to oscillate sinusoidally according to this equation, which will have an initial wall velocity of 0.0, and thus may impose a gentler perturbation on the particles:

position = c0 + A (1 - cos(omega*delta))
 

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

No information about this fix is written to binary restart files.

The fix_modify energy option is supported by this fix to add the energy of interaction between atoms and each wall to the system’s potential energy as part of thermodynamic output.

This fix computes a global scalar energy and a global vector of forces, which can be accessed by various output commands. Note that the scalar energy is the sum of interactions with all defined walls. If you want the energy on a per-wall basis, you need to use multiple fix wall commands. The length of the vector is equal to the number of walls defined by the fix. Each vector value is the normal force on a specific wall. Note that an outward force on a wall will be a negative value for lo walls and a positive value for hi walls. The scalar and vector values calculated by this fix are “extensive”.

No parameter of this fix can be used with the start/stop keywords of the run command.

The forces due to this fix are imposed during an energy minimization, invoked by the minimize command.

Note

If you want the atom/wall interaction energy to be included in the total potential energy of the system (the quantity being minimized), you MUST enable the fix_modify energy option for this fix.

Restrictions

none

Default

The option defaults units = lattice, fld = no, and pbc = no.


(Magda) Magda, Tirrell, Davis, J Chem Phys, 83, 1888-1901 (1985); erratum in JCP 84, 2901 (1986).

\ No newline at end of file diff --git a/doc/html/genindex.html b/doc/html/genindex.html index f2a539cec..cda2a3aa6 100644 --- a/doc/html/genindex.html +++ b/doc/html/genindex.html @@ -1,2344 +1,2348 @@ Index — LAMMPS documentation

Index

A | B | C | D | E | F | G | I | J | K | L | M | N | P | Q | R | S | T | U | V | W

A

angle_coeff
angle_style
angle_style charmm
angle_style class2
angle_style cosine
angle_style cosine/delta
angle_style cosine/periodic
angle_style cosine/shift
angle_style cosine/shift/exp
angle_style cosine/squared
angle_style dipole
angle_style fourier
angle_style fourier/simple
angle_style harmonic
angle_style hybrid
angle_style none
angle_style quartic
angle_style sdk
angle_style table
angle_style zero
atom_modify
atom_style

B

balance
bond_coeff
bond_style
bond_style class2
bond_style fene
bond_style fene/expand
bond_style harmonic
bond_style harmonic/shift
bond_style harmonic/shift/cut
bond_style hybrid
bond_style morse
bond_style none
bond_style nonlinear
bond_style quartic
bond_style table
bond_style zero
bond_write
boundary
box

C

change_box
clear
comm_modify
comm_style
compute
compute ackland/atom
compute angle
compute angle/local
compute angmom/chunk
compute basal/atom
compute body/local
compute bond
compute bond/local
compute centro/atom
compute chunk/atom
compute cluster/atom
compute cna/atom
compute com
compute com/chunk
compute contact/atom
compute coord/atom
compute damage/atom
compute dihedral
compute dihedral/local
compute dilatation/atom
compute dipole/chunk
compute displace/atom
compute dpd
compute dpd/atom
compute erotate/asphere
compute erotate/rigid
compute erotate/sphere
compute erotate/sphere/atom
compute event/displace
compute fep
compute force/tally
compute group/group
compute gyration
compute gyration/chunk
compute heat/flux
compute hexorder/atom
compute improper
compute improper/local
compute inertia/chunk
compute ke
compute ke/atom
compute ke/atom/eff
compute ke/eff
compute ke/rigid
compute meso/e/atom
compute meso/rho/atom
compute meso/t/atom
compute msd
compute msd/chunk
compute msd/nongauss
compute omega/chunk
compute orientorder/atom
compute pair
compute pair/local
compute pe
compute pe/atom
compute plasticity/atom
compute pressure
compute property/atom
compute property/chunk
compute property/local
compute rdf
compute reduce
compute saed
compute slice
compute smd/contact/radius
compute smd/damage
compute smd/hourglass/error
compute smd/internal/energy
compute smd/plastic/strain
compute smd/plastic/strain/rate
compute smd/rho
compute smd/tlsph/defgrad
compute smd/tlsph/dt
compute smd/tlsph/num/neighs
compute smd/tlsph/shape
compute smd/tlsph/strain
compute smd/tlsph/strain/rate
compute smd/tlsph/stress
compute smd/ulsph/num/neighs
compute smd/ulsph/strain
compute smd/ulsph/strain/rate
compute smd/ulsph/stress
compute smd/vol
compute sna/atom
compute stress/atom
compute temp
compute temp/asphere
compute temp/body
compute temp/chunk
compute temp/com
compute temp/cs
compute temp/deform
compute temp/deform/eff
compute temp/drude
compute temp/eff
compute temp/partial
compute temp/profile
compute temp/ramp
compute temp/region
compute temp/region/eff
compute temp/rotate
compute temp/sphere
compute ti
compute torque/chunk
compute vacf
compute vcm/chunk
compute voronoi/atom
compute xrd
compute_modify
create_atoms
create_bonds
create_box

D

delete_atoms
delete_bonds
dielectric
dihedral_coeff
dihedral_style
dihedral_style charmm
dihedral_style class2
dihedral_style cosine/shift/exp
dihedral_style fourier
dihedral_style harmonic
dihedral_style helix
dihedral_style hybrid
dihedral_style multi/harmonic
dihedral_style nharmonic
dihedral_style none
dihedral_style opls
dihedral_style quadratic
dihedral_style table
dihedral_style zero
dimension
displace_atoms
dump
dump custom/vtk
dump h5md
dump image
dump molfile
dump_modify

E

echo

F

fix
fix adapt
fix adapt/fep
fix addforce
fix addtorque
fix append/atoms
fix atc
fix atom/swap
fix ave/atom
fix ave/chunk
fix ave/correlate
fix ave/correlate/long
fix ave/histo
fix ave/spatial
fix ave/spatial/sphere
fix ave/time
fix aveforce
fix balance
fix bond/break
fix bond/create
fix bond/swap
fix box/relax
fix colvars
fix deform
fix deposit
fix drag
fix drude
fix drude/transform/direct
fix dt/reset
fix efield
fix enforce2d
fix eos/cv
fix eos/table
fix evaporate
fix external
fix freeze
fix gcmc
fix gld
fix gle
fix gravity
fix heat
fix imd
fix indent
fix ipi
fix langevin
fix langevin/drude
fix langevin/eff
fix lb/fluid
fix lb/momentum
fix lb/pc
fix lb/rigid/pc/sphere
fix lb/viscous
fix lineforce
fix meso
fix meso/stationary
fix momentum
fix move
fix msst
fix neb
fix nph/asphere
fix nph/body
fix nph/sphere
fix nphug
fix npt/asphere
fix npt/body
fix npt/sphere
fix nve
fix nve/asphere
fix nve/asphere/noforce
fix nve/body
fix nve/eff
fix nve/limit
fix nve/line
fix nve/noforce
fix nve/sphere
fix nve/tri
fix nvt
fix nvt/asphere
fix nvt/body
fix nvt/eff
fix nvt/sllod
fix nvt/sllod/eff
fix nvt/sphere
fix oneway
fix orient/fcc
fix phonon
fix pimd
fix planeforce
fix pour
fix press/berendsen
fix print
fix property/atom
fix qbmsst
fix qeq/comb
fix qeq/point
fix qeq/reax
fix qmmm
fix qtb
fix reax/bonds
fix reax/c/species
fix recenter
fix restrain
fix rigid
fix saed/vtk
fix setforce
fix shake
fix shardlow
fix smd
fix smd/adjust_dt
fix smd/integrate_tlsph
fix smd/integrate_ulsph
fix smd/move_tri_surf
fix smd/setvel
fix smd/wall_surface
fix spring
fix spring/rg
fix spring/self
fix srd
fix store/force
fix store/state
fix temp/berendsen
fix temp/csvr
fix temp/rescale
fix temp/rescale/eff
fix tfmc
fix thermal/conductivity
fix ti/rs
fix ti/spring
fix tmd
fix ttm
fix tune/kspace
fix vector
fix viscosity
fix viscous
fix wall/gran
fix wall/lj93
fix wall/piston
fix wall/reflect
fix wall/region
fix wall/srd
fix_modify

G

group
group2ndx

I

if
improper_coeff
improper_style
improper_style class2
improper_style cossq
improper_style cvff
improper_style distance
improper_style fourier
improper_style harmonic
improper_style hybrid
improper_style none
improper_style ring
improper_style umbrella
improper_style zero
include
info

J

jump

K

kspace_modify
kspace_style

L

label
lattice
log

M

mass
min_modify
min_style
minimize
molecule

N

neb
neigh_modify
neighbor
newton
next

P

package
pair_coeff
pair_modify
pair_style
pair_style adp
pair_style airebo
pair_style awpmd/cut
pair_style beck
pair_style body
pair_style bop
pair_style born
pair_style born/coul/long/cs
pair_style brownian
pair_style buck
pair_style buck/long/coul/long
pair_style colloid
pair_style comb
pair_style coul/cut
pair_style coul/diel
pair_style dpd
pair_style dpd/conservative
pair_style dpd/fdt
pair_style dsmc
pair_style eam
pair_style edip
pair_style eff/cut
pair_style eim
pair_style gauss
pair_style gayberne
pair_style gran/hooke
pair_style hbond/dreiding/lj
pair_style hybrid
pair_style kim
pair_style lcbop
pair_style line/lj
pair_style list
pair_style lj/charmm/coul/charmm
pair_style lj/class2
pair_style lj/cubic
pair_style lj/cut
pair_style lj/cut/dipole/cut
pair_style lj/cut/soft
pair_style lj/expand
pair_style lj/gromacs
pair_style lj/long/coul/long
pair_style lj/mdf
pair_style lj/sdk
pair_style lj/sf
pair_style lj/smooth
pair_style lj/smooth/linear
pair_style lj96/cut
pair_style lubricate
pair_style lubricateU
pair_style meam
pair_style mgpt
pair_style mie/cut
pair_style morse
pair_style nb3b/harmonic
pair_style nm/cut
pair_style none
pair_style peri/pmb
pair_style polymorphic
pair_style quip
pair_style reax
pair_style reax/c
pair_style resquared
pair_style smd/hertz
pair_style smd/tlsph
pair_style smd/tri_surface
pair_style smd/ulsph
pair_style smtbq
pair_style snap
pair_style soft
pair_style sph/heatconduction
pair_style sph/idealgas
pair_style sph/lj
pair_style sph/rhosum
pair_style sph/taitwater
pair_style sph/taitwater/morris
pair_style srp
pair_style sw
pair_style table
pair_style tersoff
pair_style tersoff/mod
pair_style tersoff/zbl
pair_style thole
pair_style tri/lj
pair_style vashishta
pair_style yukawa
pair_style yukawa/colloid
pair_style zbl
pair_style zero
pair_write
partition
prd
print
processors
python

Q

quit

R

read_data
read_dump
read_restart
region
replicate
rerun
reset_timestep
restart
run
run_style

S

set
shell
special_bonds
suffix

T

tad
temper
thermo
thermo_modify
thermo_style
timer
timestep

U

uncompute
undump
unfix
+ +
units +
+

V

variable
velocity

W

write_coeff
write_data
write_dump
write_restart
\ No newline at end of file diff --git a/doc/html/pair_airebo.html b/doc/html/pair_airebo.html index 005538853..75cc429e4 100644 --- a/doc/html/pair_airebo.html +++ b/doc/html/pair_airebo.html @@ -1,383 +1,383 @@ pair_style airebo command — LAMMPS documentation

pair_style airebo command

pair_style airebo/omp command

pair_style airebo/morse command

pair_style airebo/morse/omp command

pair_style rebo command

pair_style rebo/omp command

Syntax

pair_style style cutoff LJ_flag TORSION_flag
 
  • style = airebo or airebo/morse or rebo
  • cutoff = LJ or Morse cutoff (sigma scale factor) (AIREBO and AIREBO-M only)
  • LJ_flag = 0/1 to turn off/on the LJ or Morse term (AIREBO and AIREBO-M only, optional)
  • TORSION_flag = 0/1 to turn off/on the torsion term (AIREBO and AIREBO-M only, optional)

Examples

pair_style airebo 3.0
 pair_style airebo 2.5 1 0
 pair_coeff * * ../potentials/CH.airebo H C
 
pair_style airebo/morse 3.0
 pair_coeff * * ../potentials/CH.airebo-m H C
 
pair_style rebo
 pair_coeff * * ../potentials/CH.airebo H C
 

Description

The airebo pair style computes the Adaptive Intermolecular Reactive Empirical Bond Order (AIREBO) Potential of (Stuart) for a system of carbon and/or hydrogen atoms. Note that this is the initial formulation of AIREBO from 2000, not the later formulation.

The airebo/morse pair style computes the AIREBO-M potential, which is equivalent to AIREBO, but replaces the LJ term with a Morse potential. The Morse potentials are parameterized by high-quality quantum chemistry (MP2) calculations and do not diverge as quickly as particle density increases. This allows AIREBO-M to retain accuracy to much higher pressures than AIREBO (up to 40 GPa for Polyethylene). Details for this potential and its parameterization are given in (O’Conner).

The rebo pair style computes the Reactive Empirical Bond Order (REBO) Potential of (Brenner). Note that this is the so-called 2nd generation REBO from 2002, not the original REBO from 1990. As discussed below, 2nd generation REBO is closely related to the intial AIREBO; it is just a subset of the potential energy terms.

The AIREBO potential consists of three terms:

_images/pair_airebo.jpg

By default, all three terms are included. For the airebo style, if the two optional flag arguments to the pair_style command are included, the LJ and torsional terms can be turned off. Note that both or neither of the flags must be included. If both of the LJ an torsional terms are turned off, it becomes the 2nd-generation REBO potential, with a small caveat on the spline fitting procedure mentioned below. This can be specified directly as pair_style rebo with no additional arguments.

The detailed formulas for this potential are given in (Stuart); here we provide only a brief description.

The E_REBO term has the same functional form as the hydrocarbon REBO potential developed in (Brenner). The coefficients for E_REBO in AIREBO are essentially the same as Brenner’s potential, but a few fitted spline values are slightly different. For most cases the E_REBO term in AIREBO will produce the same energies, forces and statistical averages as the original REBO potential from which it was derived. The E_REBO term in the AIREBO potential gives the model its reactive capabilities and only describes short-ranged C-C, C-H and H-H interactions (r < 2 Angstroms). These interactions have strong coordination-dependence through a bond order parameter, which adjusts the attraction between the I,J atoms based on the position of other nearby atoms and thus has 3- and 4-body dependence.

The E_LJ term adds longer-ranged interactions (2 < r < cutoff) using a form similar to the standard Lennard Jones potential. The E_LJ term in AIREBO contains a series of switching functions so that the short-ranged LJ repulsion (1/r^12) does not interfere with the energetics captured by the E_REBO term. The extent of the E_LJ interactions is determined by the cutoff argument to the pair_style command which is a scale factor. For each type pair (C-C, C-H, H-H) the cutoff is obtained by multiplying the scale factor by the sigma value defined in the potential file for that type pair. In the standard AIREBO potential, sigma_CC = 3.4 Angstroms, so with a scale factor of 3.0 (the argument in pair_style), the resulting E_LJ cutoff would be 10.2 Angstroms.

The E_TORSION term is an explicit 4-body potential that describes various dihedral angle preferences in hydrocarbon configurations.


Only a single pair_coeff command is used with the airebo, airebo or rebo style which specifies an AIREBO or AIREBO-M potential file with parameters for C and H. Note that the rebo style in LAMMPS uses the same AIREBO-formatted potential file. These are mapped to LAMMPS atom types by specifying N additional arguments after the filename in the pair_coeff command, where N is the number of LAMMPS atom types:

  • filename
  • N element names = mapping of AIREBO elements to atom types

See the pair_coeff doc page for alternate ways to specify the path for the potential file.

As an example, if your LAMMPS simulation has 4 atom types and you want the 1st 3 to be C, and the 4th to be H, you would use the following pair_coeff command:

pair_coeff * * CH.airebo C C C H
 

The 1st 2 arguments must be * * so as to span all LAMMPS atom types. The first three C arguments map LAMMPS atom types 1,2,3 to the C element in the AIREBO file. The final H argument maps LAMMPS atom type 4 to the H element in the SW file. If a mapping value is specified as NULL, the mapping is not performed. This can be used when a airebo potential is used as part of the hybrid pair style. The NULL values are placeholders for atom types that will be used with other potentials.

The parameters/coefficients for the AIREBO potentials are listed in the CH.airebo file to agree with the original (Stuart) paper. Thus the parameters are specific to this potential and the way it was fit, so modifying the file should be done cautiously.

Similarly the parameters/coefficients for the AIREBO-M potentials are listed in the CH.airebo-m file to agree with the (O’Connor) paper. Thus the parameters are specific to this potential and the way it was fit, so modifying the file should be done cautiously. The AIREBO-M Morse potentials were parameterized using a cutoff of 3.0 (sigma). Modifying this cutoff may impact simulation accuracy.


Styles with a cuda, gpu, intel, kk, omp, or opt suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available hardware, as discussed in Section_accelerate of the manual. The accelerated styles take the same arguments and should produce the same results, except for round-off and precision issues.

These accelerated styles are part of the USER-CUDA, GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if LAMMPS was built with those packages. See the Making LAMMPS section for more info.

You can specify the accelerated styles explicitly in your input script by including their suffix, or you can use the -suffix command-line switch when you invoke LAMMPS, or you can use the suffix command in your input script.

See Section_accelerate of the manual for more instructions on how to use the accelerated styles effectively.


Mixing, shift, table, tail correction, restart, rRESPA info:

These pair styles do not support the pair_modify mix, shift, table, and tail options.

These pair styles do not write their information to binary restart files, since it is stored in potential files. Thus, you need to re-specify the pair_style and pair_coeff commands in an input script that reads a restart file.

These pair styles can only be used via the pair keyword of the run_style respa command. They do not support the inner, middle, outer keywords.

Restrictions

These pair styles are part of the MANYBODY package. They are only enabled if LAMMPS was built with that package (which it is by default). See the Making LAMMPS section for more info.

These pair potentials require the newton setting to be “on” for pair interactions.

The CH.airebo and CH.airebo-m potential files provided with LAMMPS -(see the potentials directory) are parameterized for metal units. +(see the potentials directory) are parameterized for metal units. You can use the AIREBO, AIREBO-M or REBO potential with any LAMMPS units, but you would need to create your own AIREBO or AIREBO-M potential file with coefficients listed in the appropriate units, if your simulation doesn’t use “metal” units.

\ No newline at end of file diff --git a/doc/html/pair_bop.html b/doc/html/pair_bop.html index e52f3f13e..1b07d82d7 100644 --- a/doc/html/pair_bop.html +++ b/doc/html/pair_bop.html @@ -1,562 +1,562 @@ pair_style bop command — LAMMPS documentation

pair_style bop command

Syntax

pair_style bop keyword ...
 
  • zero or more keywords may be appended
  • keyword = save
save = pre-compute and save some values
 

Examples

pair_style bop
 pair_coeff * * ../potentials/CdTe_bop Cd Te
 pair_style bop save
 pair_coeff * * ../potentials/CdTe.bop.table Cd Te Te
 comm_modify cutoff 14.70
 

Description

The bop pair style computes Bond-Order Potentials (BOP) based on quantum mechanical theory incorporating both sigma and pi bondings. By analytically deriving the BOP from quantum mechanical theory its transferability to different phases can approach that of quantum mechanical methods. This potential is similar to the original BOP developed by Pettifor (Pettifor_1, Pettifor_2, Pettifor_3) and later updated by Murdick, Zhou, and Ward (Murdick, Ward). Currently, BOP potential files for these systems are provided with LAMMPS: AlCu, CCu, CdTe, CdTeSe, CdZnTe, CuH, GaAs. A sysstem with only a subset of these elements, including a single element (e.g. C or Cu or Al or Ga or Zn or CdZn), can also be modeled by using the appropriate alloy file and assigning all atom types to the singleelement or subset of elements via the pair_coeff command, as discussed below.

The BOP potential consists of three terms:

_images/pair_bop.jpg

where phi_ij(r_ij) is a short-range two-body function representing the repulsion between a pair of ion cores, beta_(sigma,ij)(r_ij) and beta_(sigma,ij)(r_ij) are respectively sigma and pi bond ingtegrals, THETA_(sigma,ij) and THETA_(pi,ij) are sigma and pi bond-orders, and U_prom is the promotion energy for sp-valent systems.

The detailed formulas for this potential are given in Ward (Ward); here we provide only a brief description.

The repulsive energy phi_ij(r_ij) and the bond integrals beta_(sigma,ij)(r_ij) and beta_(phi,ij)(r_ij) are functions of the interatomic distance r_ij between atom i and j. Each of these potentials has a smooth cutoff at a radius of r_(cut,ij). These smooth cutoffs ensure stable behavior at situations with high sampling near the cutoff such as melts and surfaces.

The bond-orders can be viewed as environment-dependent local variables that are ij bond specific. The maximum value of the sigma bond-order (THETA_sigma) is 1, while that of the pi bond-order (THETA_pi) is 2, attributing to a maximum value of the total bond-order (THETA_sigma+THETA_pi) of 3. The sigma and pi bond-orders reflect the ubiquitous single-, double-, and triple- bond behavior of chemistry. Their analytical expressions can be derived from tight- binding theory by recursively expanding an inter-site Green’s function as a continued fraction. To accurately represent the bonding with a computationally efficient potential formulation suitable for MD simulations, the derived BOP only takes (and retains) the first two levels of the recursive representations for both the sigma and the pi bond-orders. Bond-order terms can be understood in terms of molecular orbital hopping paths based upon the Cyrot-Lackmann theorem (Pettifor_1). The sigma bond-order with a half-full valence shell is used to interpolate the bond-order expressiont that incorporated explicite valance band filling. This pi bond-order expression also contains also contains a three-member ring term that allows implementation of an asymmetric density of states, which helps to either stabilize or destabilize close-packed structures. The pi bond-order includes hopping paths of length 4. This enables the incorporation of dihedral angles effects.

Note

Note that unlike for other potentials, cutoffs for BOP potentials are not set in the pair_style or pair_coeff command; they are specified in the BOP potential files themselves. Likewise, the BOP potential files list atomic masses; thus you do not need to use the mass command to specify them. Note that for BOP potentials with hydrogen, you will likely want to set the mass of H atoms to be 10x or 20x larger to avoid having to use a tiny timestep. You can do this by using the mass command after using the pair_coeff command to read the BOP potential file.

One option can be specified as a keyword with the pair_style command.

The save keyword gives you the option to calculate in advance and store a set of distances, angles, and derivatives of angles. The default is to not do this, but to calculate them on-the-fly each time they are needed. The former may be faster, but takes more memory. The latter requires less memory, but may be slower. It is best to test this option to optimize the speed of BOP for your particular system configuration.


Only a single pair_coeff command is used with the bop style which specifies a BOP potential file, with parameters for all needed elements. These are mapped to LAMMPS atom types by specifying N additional arguments after the filename in the pair_coeff command, where N is the number of LAMMPS atom types:

  • filename
  • N element names = mapping of BOP elements to atom types

As an example, imagine the CdTe.bop file has BOP values for Cd and Te. If your LAMMPS simulation has 4 atoms types and you want the 1st 3 to be Cd, and the 4th to be Te, you would use the following pair_coeff command:

pair_coeff * * CdTe Cd Cd Cd Te
 

The 1st 2 arguments must be * * so as to span all LAMMPS atom types. The first three Cd arguments map LAMMPS atom types 1,2,3 to the Cd element in the BOP file. The final Te argument maps LAMMPS atom type 4 to the Te element in the BOP file.

BOP files in the potentials directory of the LAMMPS distribution have a ”.bop” suffix. The potentials are in tabulated form containing pre-tabulated pair functions for phi_ij(r_ij), beta_(sigma,ij)(r_ij), and beta_pi,ij)(r_ij).

The parameters/coefficients format for the different kinds of BOP files are given below with variables matching the formulation of Ward (Ward) and Zhou (Zhou). Each header line containing a ”:” is preceded by a blank line.


No angular table file format:

The parameters/coefficients format for the BOP potentials input file containing pre-tabulated functions of g is given below with variables matching the formulation of Ward (Ward). This format also assumes the angular functions have the formulation of (Ward).

  • Line 1: # elements N

The first line is followed by N lines containing the atomic number, mass, and element symbol of each element.

Following the definition of the elements several global variables for the tabulated functions are given.

  • Line 1: nr, nBOt (nr is the number of divisions the radius is broken into for function tables and MUST be a factor of 5; nBOt is the number of divisions for the tabulated values of THETA_(S,ij)
  • Line 2: delta_1-delta_7 (if all are not used in the particular
  • formulation, set unused values to 0.0)

Following this N lines for e_1-e_N containing p_pi.

  • Line 3: p_pi (for e_1)
  • Line 4: p_pi (for e_2 and continues to e_N)

The next section contains several pair constants for the number of interaction types e_i-e_j, with i=1->N, j=i->N

  • Line 1: r_cut (for e_1-e_1 interactions)
  • Line 2: c_sigma, a_sigma, c_pi, a_pi
  • Line 3: delta_sigma, delta_pi
  • Line 4: f_sigma, k_sigma, delta_3 (This delta_3 is similar to that of the previous section but is interaction type dependent)

The next section contains a line for each three body interaction type e_j-e_i-e_k with i=0->N, j=0->N, k=j->N

  • Line 1: g_(sigma0), g_(sigma1), g_(sigma2) (These are coefficients for g_(sigma,jik)(THETA_ijk) for e_1-e_1-e_1 interaction. Ward contains the full expressions for the constants as functions of b_(sigma,ijk), p_(sigma,ijk), u_(sigma,ijk))
  • Line 2: g_(sigma0), g_(sigma1), g_(sigma2) (for e_1-e_1-e_2)

The next section contains a block for each interaction type for the phi_ij(r_ij). Each block has nr entries with 5 entries per line.

  • Line 1: phi(r1), phi(r2), phi(r3), phi(r4), phi(r5) (for the e_1-e_1 interaction type)
  • Line 2: phi(r6), phi(r7), phi(r8), phi(r9), phi(r10) (this continues until nr)
  • ...
  • Line nr/5_1: phi(r1), phi(r2), phi(r3), phi(r4), phi(r5), (for the e_1-e_1 interaction type)

The next section contains a block for each interaction type for the beta_(sigma,ij)(r_ij). Each block has nr entries with 5 entries per line.

  • Line 1: beta_sigma(r1), beta_sigma(r2), beta_sigma(r3), beta_sigma(r4), beta_sigma(r5) (for the e_1-e_1 interaction type)
  • Line 2: beta_sigma(r6), beta_sigma(r7), beta_sigma(r8), beta_sigma(r9), beta_sigma(r10) (this continues until nr)
  • ...
  • Line nr/5+1: beta_sigma(r1), beta_sigma(r2), beta_sigma(r3), beta_sigma(r4), beta_sigma(r5) (for the e_1-e_2 interaction type)

The next section contains a block for each interaction type for beta_(pi,ij)(r_ij). Each block has nr entries with 5 entries per line.

  • Line 1: beta_pi(r1), beta_pi(r2), beta_pi(r3), beta_pi(r4), beta_pi(r5) (for the e_1-e_1 interaction type)
  • Line 2: beta_pi(r6), beta_pi(r7), beta_pi(r8), beta_pi(r9), beta_pi(r10) (this continues until nr)
  • ...
  • Line nr/5+1: beta_pi(r1), beta_pi(r2), beta_pi(r3), beta_pi(r4), beta_pi(r5) (for the e_1-e_2 interaction type)

The next section contains a block for each interaction type for the THETA_(S,ij)((THETA_(sigma,ij))^(1/2), f_(sigma,ij)). Each block has nBOt entries with 5 entries per line.

  • Line 1: THETA_(S,ij)(r1), THETA_(S,ij)(r2), THETA_(S,ij)(r3), THETA_(S,ij)(r4), THETA_(S,ij)(r5) (for the e_1-e_2 interaction type)
  • Line 2: THETA_(S,ij)(r6), THETA_(S,ij)(r7), THETA_(S,ij)(r8), THETA_(S,ij)(r9), THETA_(S,ij)(r10) (this continues until nBOt)
  • ...
  • Line nBOt/5+1: THETA_(S,ij)(r1), THETA_(S,ij)(r2), THETA_(S,ij)(r3), THETA_(S,ij)(r4), THETA_(S,ij)(r5) (for the e_1-e_2 interaction type)

The next section contains a block of N lines for e_1-e_N

  • Line 1: delta^mu (for e_1)
  • Line 2: delta^mu (for e_2 and repeats to e_N)

The last section contains more constants for e_i-e_j interactions with i=0->N, j=i->N

  • Line 1: (A_ij)^(mu*nu) (for e1-e1)
  • Line 2: (A_ij)^(mu*nu) (for e1-e2 and repeats as above)

Angular spline table file format:

The parameters/coefficients format for the BOP potentials input file containing pre-tabulated functions of g is given below with variables matching the formulation of Ward (Ward). This format also assumes the angular functions have the formulation of (Zhou).

  • Line 1: # elements N

The first line is followed by N lines containing the atomic number, mass, and element symbol of each element.

Following the definition of the elements several global variables for the tabulated functions are given.

  • Line 1: nr, ntheta, nBOt (nr is the number of divisions the radius is broken into for function tables and MUST be a factor of 5; ntheta is the power of the power of the spline used to fit the angular function; nBOt is the number of divisions for the tabulated values of THETA_(S,ij)
  • Line 2: delta_1-delta_7 (if all are not used in the particular
  • formulation, set unused values to 0.0)

Following this N lines for e_1-e_N containing p_pi.

  • Line 3: p_pi (for e_1)
  • Line 4: p_pi (for e_2 and continues to e_N)

The next section contains several pair constants for the number of interaction types e_i-e_j, with i=1->N, j=i->N

  • Line 1: r_cut (for e_1-e_1 interactions)
  • Line 2: c_sigma, a_sigma, c_pi, a_pi
  • Line 3: delta_sigma, delta_pi
  • Line 4: f_sigma, k_sigma, delta_3 (This delta_3 is similar to that of the previous section but is interaction type dependent)

The next section contains a line for each three body interaction type e_j-e_i-e_k with i=0->N, j=0->N, k=j->N

  • Line 1: g0, g1, g2... (These are coefficients for the angular spline of the g_(sigma,jik)(THETA_ijk) for e_1-e_1-e_1 interaction. The function can contain up to 10 term thus 10 constants. The first line can contain up to five constants. If the spline has more than five terms the second line will contain the remaining constants The following lines will then contain the constants for the remainaing g0, g1, g2... (for e_1-e_1-e_2) and the other three body interactions

The rest of the table has the same structure as the previous section (see above).


Angular no-spline table file format:

The parameters/coefficients format for the BOP potentials input file containing pre-tabulated functions of g is given below with variables matching the formulation of Ward (Ward). This format also assumes the angular functions have the formulation of (Zhou).

  • Line 1: # elements N

The first two lines are followed by N lines containing the atomic number, mass, and element symbol of each element.

Following the definition of the elements several global variables for the tabulated functions are given.

  • Line 1: nr, ntheta, nBOt (nr is the number of divisions the radius is broken into for function tables and MUST be a factor of 5; ntheta is the number of divisions for the tabulated values of the g angular function; nBOt is the number of divisions for the tabulated values of THETA_(S,ij)
  • Line 2: delta_1-delta_7 (if all are not used in the particular
  • formulation, set unused values to 0.0)

Following this N lines for e_1-e_N containing p_pi.

  • Line 3: p_pi (for e_1)
  • Line 4: p_pi (for e_2 and continues to e_N)

The next section contains several pair constants for the number of interaction types e_i-e_j, with i=1->N, j=i->N

  • Line 1: r_cut (for e_1-e_1 interactions)
  • Line 2: c_sigma, a_sigma, c_pi, a_pi
  • Line 3: delta_sigma, delta_pi
  • Line 4: f_sigma, k_sigma, delta_3 (This delta_3 is similar to that of the previous section but is interaction type dependent)

The next section contains a line for each three body interaction type e_j-e_i-e_k with i=0->N, j=0->N, k=j->N

  • Line 1: g(theta1), g(theta2), g(theta3), g(theta4), g(theta5) (for the e_1-e_1-e_1 interaction type)
  • Line 2: g(theta6), g(theta7), g(theta8), g(theta9), g(theta10) (this continues until ntheta)
  • ...
  • Line ntheta/5+1: g(theta1), g(theta2), g(theta3), g(theta4), g(theta5), (for the e_1-e_1-e_2 interaction type)

The rest of the table has the same structure as the previous section (see above).


Mixing, shift, table tail correction, restart:

This pair style does not support the pair_modify mix, shift, table, and tail options.

This pair style does not write its information to binary restart files, since it is stored in potential files. Thus, you need to re-specify the pair_style and pair_coeff commands in an input script that reads a restart file.

This pair style can only be used via the pair keyword of the run_style respa command. It does not support the inner, middle, outer keywords.


Restrictions

These pair styles are part of the MANYBODY package. They are only enabled if LAMMPS was built with that package (which it is by default). See the Making LAMMPS section for more info.

These pair potentials require the newtion setting to be “on” for pair interactions.

The CdTe.bop and GaAs.bop potential files provided with LAMMPS (see the -potentials directory) are parameterized for metal units. +potentials directory) are parameterized for metal units. You can use the BOP potential with any LAMMPS units, but you would need to create your own BOP potential file with coefficients listed in the appropriate units if your simulation does not use “metal” units.

Default

non-tabulated potential file, a_0 is non-zero.


(Pettifor_1) D.G. Pettifor and I.I. Oleinik, Phys. Rev. B, 59, 8487 (1999).

(Pettifor_2) D.G. Pettifor and I.I. Oleinik, Phys. Rev. Lett., 84, 4124 (2000).

(Pettifor_3) D.G. Pettifor and I.I. Oleinik, Phys. Rev. B, 65, 172103 (2002).

(Murdick) D.A. Murdick, X.W. Zhou, H.N.G. Wadley, D. Nguyen-Manh, R. Drautz, and D.G. Pettifor, Phys. Rev. B, 73, 45206 (2006).

(Ward) D.K. Ward, X.W. Zhou, B.M. Wong, F.P. Doty, and J.A. Zimmerman, Phys. Rev. B, 85,115206 (2012).

(Zhou) X.W. Zhou, D.K. Ward, M. Foster (TBP).

\ No newline at end of file diff --git a/doc/html/pair_comb.html b/doc/html/pair_comb.html index e4e5b1371..2c1cd6006 100644 --- a/doc/html/pair_comb.html +++ b/doc/html/pair_comb.html @@ -1,352 +1,352 @@ pair_style comb command — LAMMPS documentation

pair_style comb command

pair_style comb/omp command

pair_style comb3 command

Syntax

pair_style comb
 pair_style comb3 keyword
 
 keyword = polar
   polar value = polar_on or polar_off = whether or not to include atomic polarization
 

Examples

pair_style comb
 pair_coeff * * ../potentials/ffield.comb Si
 pair_coeff * * ../potentials/ffield.comb Hf Si O
 
pair_style comb3 polar_off
 pair_coeff * * ../potentials/ffield.comb3 O Cu N C O
 

Description

Style comb computes the second-generation variable charge COMB (Charge-Optimized Many-Body) potential. Style comb3 computes the third-generation COMB potential. These COMB potentials are described in (COMB) and (COMB3). Briefly, the total energy E<sub>T</sub> of a system of atoms is given by

_images/pair_comb1.jpg

where E<sub>i</sub><sup>self</sup> is the self-energy of atom i (including atomic ionization energies and electron affinities), E<sub>ij</sub><sup>short</sup> is the bond-order potential between atoms i and j, E<sub>ij</sub><sup>Coul</sup> is the Coulomb interactions, E<sup>polar</sup> is the polarization term for organic systems (style comb3 only), E<sup>vdW</sup> is the van der Waals energy (style comb3 only), E<sup>barr</sup> is a charge barrier function, and E<sup>corr</sup> are angular correction terms.

The COMB potentials (styles comb and comb3) are variable charge potentials. The equilibrium charge on each atom is calculated by the electronegativity equalization (QEq) method. See Rick for further details. This is implemented by the fix qeq/comb command, which should normally be specified in the input script when running a model with the COMB potential. The fix qeq/comb command has options that determine how often charge equilibration is performed, its convergence criterion, and which atoms are included in the calculation.

Only a single pair_coeff command is used with the comb and comb3 styles which specifies the COMB potential file with parameters for all needed elements. These are mapped to LAMMPS atom types by specifying N additional arguments after the potential file in the pair_coeff command, where N is the number of LAMMPS atom types.

For example, if your LAMMPS simulation of a Si/SiO<sub>2</sub>/ HfO<sub>2</sub> interface has 4 atom types, and you want the 1st and last to be Si, the 2nd to be Hf, and the 3rd to be O, and you would use the following pair_coeff command:

pair_coeff * * ../potentials/ffield.comb Si Hf O Si
 

The first two arguments must be * * so as to span all LAMMPS atom types. The first and last Si arguments map LAMMPS atom types 1 and 4 to the Si element in the ffield.comb file. The second Hf argument maps LAMMPS atom type 2 to the Hf element, and the third O argument maps LAMMPS atom type 3 to the O element in the potential file. If a mapping value is specified as NULL, the mapping is not performed. This can be used when a comb potential is used as part of the hybrid pair style. The NULL values are placeholders for atom types that will be used with other potentials.

For style comb, the provided potential file ffield.comb contains all currently-available 2nd generation COMB parameterizations: for Si, Cu, Hf, Ti, O, their oxides and Zr, Zn and U metals. For style comb3, the potential file ffield.comb3 contains all currently-available 3rd generation COMB paramterizations: O, Cu, N, C, H, Ti, Zn and Zr. The status of the optimization of the compounds, for example Cu<sub>2</sub>O, TiN and hydrocarbons, are given in the following table:

_images/pair_comb2.jpg

For style comb3, in addition to ffield.comb3, a special parameter file, lib.comb3, that is exclusively used for C/O/H systems, will be automatically loaded if carbon atom is detected in LAMMPS input structure. This file must be in your working directory or in the directory pointed to by the environment variable LAMMPS_POTENTIALS, as described on the pair_coeff command doc page.

Keyword polar indicates whether the force field includes the atomic polarization. Since the equilibration of the polarization has not yet been implemented, it can only set polar_off at present.

Note

You can not use potential file ffield.comb with style comb3, nor file ffield.comb3 with style comb.


Styles with a cuda, gpu, intel, kk, omp, or opt suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available hardware, as discussed in Section_accelerate of the manual. The accelerated styles take the same arguments and should produce the same results, except for round-off and precision issues.

These accelerated styles are part of the USER-CUDA, GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if LAMMPS was built with those packages. See the Making LAMMPS section for more info.

You can specify the accelerated styles explicitly in your input script by including their suffix, or you can use the -suffix command-line switch when you invoke LAMMPS, or you can use the suffix command in your input script.

See Section_accelerate of the manual for more instructions on how to use the accelerated styles effectively.


Mixing, shift, table, tail correction, restart, rRESPA info:

For atom type pairs I,J and I != J, where types I and J correspond to two different element types, mixing is performed by LAMMPS as described above from values in the potential file.

These pair styles does not support the pair_modify shift, table, and tail options.

These pair styles do not write its information to binary restart files, since it is stored in potential files. Thus, you need to re-specify the pair_style, pair_coeff, and fix qeq/comb commands in an input script that reads a restart file.

These pair styles can only be used via the pair keyword of the run_style respa command. It does not support the inner, middle, outer keywords.


Restrictions

These pair styles are part of the MANYBODY package. It is only enabled if LAMMPS was built with that package (which it is by default). See the Making LAMMPS section for more info.

These pair styles requires the newton setting to be “on” for pair interactions.

The COMB potentials in the ffield.comb and ffield.comb3 files provided with LAMMPS (see the potentials directory) are parameterized for metal -units. You can use the COMB potential with any LAMMPS +units. You can use the COMB potential with any LAMMPS units, but you would need to create your own COMB potential file with coefficients listed in the appropriate units if your simulation doesn’t use “metal” units.

\ No newline at end of file diff --git a/doc/html/pair_dipole.html b/doc/html/pair_dipole.html index 823c52dbd..02978c0f0 100644 --- a/doc/html/pair_dipole.html +++ b/doc/html/pair_dipole.html @@ -1,425 +1,425 @@ pair_style lj/cut/dipole/cut command — LAMMPS documentation

pair_style lj/cut/dipole/cut command

pair_style lj/cut/dipole/cut/gpu command

pair_style lj/cut/dipole/cut/omp command

pair_style lj/sf/dipole/sf command

pair_style lj/sf/dipole/sf/gpu command

pair_style lj/sf/dipole/sf/omp command

pair_style lj/cut/dipole/long command

pair_style lj/long/dipole/long command

Syntax

pair_style lj/cut/dipole/cut cutoff (cutoff2)
 pair_style lj/sf/dipole/sf cutoff (cutoff2)
 pair_style lj/cut/dipole/long cutoff (cutoff2)
 pair_style lj/long/dipole/long flag_lj flag_coul cutoff (cutoff2)
 
  • cutoff = global cutoff LJ (and Coulombic if only 1 arg) (distance units)
  • cutoff2 = global cutoff for Coulombic and dipole (optional) (distance units)
  • flag_lj = long or cut or off
 long = use long-range damping on dispersion 1/r^6 term
 cut = use a cutoff on dispersion 1/r^6 term
 off = omit disperion 1/r^6 term entirely
 
  • flag_coul = long or off
 long = use long-range damping on Coulombic 1/r and point-dipole terms
 off = omit Coulombic and point-dipole terms entirely
 

Examples

pair_style lj/cut/dipole/cut 10.0
 pair_coeff * * 1.0 1.0
 pair_coeff 2 3 1.0 1.0 2.5 4.0
 
pair_style lj/sf/dipole/sf 9.0
 pair_coeff * * 1.0 1.0
 pair_coeff 2 3 1.0 1.0 2.5 4.0
 
pair_style lj/cut/dipole/long 10.0
 pair_coeff * * 1.0 1.0
 pair_coeff 2 3 1.0 1.0 2.5 4.0
 
pair_style lj/long/dipole/long long long 3.5 10.0
 pair_coeff * * 1.0 1.0
 pair_coeff 2 3 1.0 1.0 2.5 4.0
 

Description

Style lj/cut/dipole/cut computes interactions between pairs of particles that each have a charge and/or a point dipole moment. In addition to the usual Lennard-Jones interaction between the particles (Elj) the charge-charge (Eqq), charge-dipole (Eqp), and dipole-dipole (Epp) interactions are computed by these formulas for the energy (E), force (F), and torque (T) between particles I and J.

_images/pair_dipole.jpg

where qi and qj are the charges on the two particles, pi and pj are the dipole moment vectors of the two particles, r is their separation distance, and the vector r = Ri - Rj is the separation vector between the two particles. Note that Eqq and Fqq are simply Coulombic energy and force, Fij = -Fji as symmetric forces, and Tij != -Tji since the torques do not act symmetrically. These formulas are discussed in (Allen) and in (Toukmaji).

Style lj/sf/dipole/sf computes “shifted-force” interactions between pairs of particles that each have a charge and/or a point dipole moment. In general, a shifted-force potential is a (sligthly) modified potential containing extra terms that make both the energy and its derivative go to zero at the cutoff distance; this removes (cutoff-related) problems in energy conservation and any numerical instability in the equations of motion (Allen). Shifted-force interactions for the Lennard-Jones (E_LJ), charge-charge (Eqq), charge-dipole (Eqp), dipole-charge (Epq) and dipole-dipole (Epp) potentials are computed by these formulas for the energy (E), force (F), and torque (T) between particles I and J:

_images/pair_dipole_sf.jpg _images/pair_dipole_sf2.jpg

where epsilon and sigma are the standard LJ parameters, r_c is the cutoff, qi and qj are the charges on the two particles, pi and pj are the dipole moment vectors of the two particles, r is their separation distance, and the vector r = Ri - Rj is the separation vector between the two particles. Note that Eqq and Fqq are simply Coulombic energy and force, Fij = -Fji as symmetric forces, and Tij != -Tji since the torques do not act symmetrically. The shifted-force formula for the Lennard-Jones potential is reported in (Stoddard). The original (unshifted) formulas for the electrostatic potentials, forces and torques can be found in (Price). The shifted-force electrostatic potentials have been obtained by applying equation 5.13 of (Allen). The formulas for the corresponding forces and torques have been obtained by applying the ‘chain rule’ as in appendix C.3 of (Allen).

If one cutoff is specified in the pair_style command, it is used for both the LJ and Coulombic (q,p) terms. If two cutoffs are specified, they are used as cutoffs for the LJ and Coulombic (q,p) terms respectively.

Style lj/cut/dipole/long computes long-range point-dipole interactions as discussed in (Toukmaji). Dipole-dipole, dipole-charge, and charge-charge interactions are all supported, along with the standard 12/6 Lennard-Jones interactions, which are computed with a cutoff. A kspace_style must be defined to use this pair style. Currently, only kspace_style ewald/disp support long-range point-dipole interactions.

Style lj/long/dipole/long also computes point-dipole interactions as discussed in (Toukmaji). Long-range dipole-dipole, dipole-charge, and charge-charge interactions are all supported, along with the standard 12/6 Lennard-Jones interactions. LJ interactions can be cutoff or long-ranged.

For style lj/long/dipole/long, if flag_lj is set to long, no cutoff is used on the LJ 1/r^6 dispersion term. The long-range portion is calculated by using the kspace_style ewald_disp command. The specified LJ cutoff then determines which portion of the LJ interactions are computed directly by the pair potential versus which part is computed in reciprocal space via the Kspace style. If flag_lj is set to cut, the LJ interactions are simply cutoff, as with pair_style lj/cut. If flag_lj is set to off, LJ interactions are not computed at all.

If flag_coul is set to long, no cutoff is used on the Coulombic or dipole interactions. The long-range portion is calculated by using ewald_disp of the kspace_style command. If flag_coul is set to off, Coulombic and dipole interactions are not computed at all.

Atoms with dipole moments should be integrated using the fix nve/sphere update dipole command to rotate the dipole moments. The omega option on the fix langevin command can be used to thermostat the rotational motion. The compute temp/sphere command can be used to monitor the temperature, since it includes rotational degrees of freedom. The atom_style dipole command should be used since it defines the point dipoles and their rotational state. The magnitude of the dipole moment for each type of particle can be defined by the dipole command or in the “Dipoles” section of the data file read in by the read_data command. Their initial orientation can be defined by the set dipole command or in the “Atoms” section of the data file.

The following coefficients must be defined for each pair of atoms types via the pair_coeff command as in the examples above, or in the data file or restart files read by the read_data or read_restart commands, or by mixing as described below:

  • epsilon (energy units)
  • sigma (distance units)
  • cutoff1 (distance units)
  • cutoff2 (distance units)

The latter 2 coefficients are optional. If not specified, the global LJ and Coulombic cutoffs specified in the pair_style command are used. If only one cutoff is specified, it is used as the cutoff for both LJ and Coulombic interactions for this type pair. If both coefficients are specified, they are used as the LJ and Coulombic cutoffs for this type pair.


Styles with a cuda, gpu, intel, kk, omp, or opt suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available hardware, as discussed in Section_accelerate of the manual. The accelerated styles take the same arguments and should produce the same results, except for round-off and precision issues.

These accelerated styles are part of the USER-CUDA, GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if LAMMPS was built with those packages. See the Making LAMMPS section for more info.

You can specify the accelerated styles explicitly in your input script by including their suffix, or you can use the -suffix command-line switch when you invoke LAMMPS, or you can use the suffix command in your input script.

See Section_accelerate of the manual for more instructions on how to use the accelerated styles effectively.


Mixing, shift, table, tail correction, restart, rRESPA info:

For atom type pairs I,J and I != J, the epsilon and sigma coefficients and cutoff distances for this pair style can be mixed. The default mix value is geometric. See the “pair_modify” command for details.

For atom type pairs I,J and I != J, the A, sigma, d1, and d2 coefficients and cutoff distance for this pair style can be mixed. A is an energy value mixed like a LJ epsilon. D1 and d2 are distance values and are mixed like sigma. The default mix value is geometric. See the “pair_modify” command for details.

This pair style does not support the pair_modify shift option for the energy of the Lennard-Jones portion of the pair interaction; such energy goes to zero at the cutoff by construction.

The pair_modify table option is not relevant for this pair style.

This pair style does not support the pair_modify tail option for adding long-range tail corrections to energy and pressure.

This pair style writes its information to binary restart files, so pair_style and pair_coeff commands do not need to be specified in an input script that reads a restart file.

This pair style can only be used via the pair keyword of the run_style respa command. It does not support the inner, middle, outer keywords.

Restrictions

The lj/cut/dipole/cut, lj/cut/dipole/long, and lj/long/dipole/long styles are part of the DIPOLE package. They are only enabled if LAMMPS was built with that package. See the Making LAMMPS section for more info.

The lj/sf/dipole/sf style is part of the USER-MISC package. It is only enabled if LAMMPS was built with that package. See the Making LAMMPS section for more info.

-

Using dipole pair styles with electron units is not +

Using dipole pair styles with electron units is not currently supported.

\ No newline at end of file diff --git a/doc/html/pair_eam.html b/doc/html/pair_eam.html index a00d98fe9..e124e41a2 100644 --- a/doc/html/pair_eam.html +++ b/doc/html/pair_eam.html @@ -1,621 +1,621 @@ pair_style eam command — LAMMPS documentation

pair_style eam command

pair_style eam/cuda command

pair_style eam/gpu command

pair_style eam/kk command

pair_style eam/omp command

pair_style eam/opt command

pair_style eam/alloy command

pair_style eam/alloy/cuda command

pair_style eam/alloy/gpu command

pair_style eam/alloy/kk command

pair_style eam/alloy/omp command

pair_style eam/alloy/opt command

pair_style eam/cd command

pair_style eam/cd/omp command

pair_style eam/fs command

pair_style eam/fs/cuda command

pair_style eam/fs/gpu command

pair_style eam/fs/kk command

pair_style eam/fs/omp command

pair_style eam/fs/opt command

Syntax

pair_style style
 
  • style = eam or eam/alloy or eam/cd or eam/fs

Examples

pair_style eam
 pair_coeff * * cuu3
 pair_coeff 1*3 1*3 niu3.eam
 
pair_style eam/alloy
 pair_coeff * * ../potentials/NiAlH_jea.eam.alloy Ni Al Ni Ni
 
pair_style eam/cd
 pair_coeff * * ../potentials/FeCr.cdeam Fe Cr
 
pair_style eam/fs
 pair_coeff * * NiAlH_jea.eam.fs Ni Al Ni Ni
 

Description

Style eam computes pairwise interactions for metals and metal alloys using embedded-atom method (EAM) potentials (Daw). The total energy Ei of an atom I is given by

_images/pair_eam.jpg

where F is the embedding energy which is a function of the atomic electron density rho, phi is a pair potential interaction, and alpha and beta are the element types of atoms I and J. The multi-body nature of the EAM potential is a result of the embedding energy term. Both summations in the formula are over all neighbors J of atom I within the cutoff distance.

The cutoff distance and the tabulated values of the functionals F, rho, and phi are listed in one or more files which are specified by the pair_coeff command. These are ASCII text files in a DYNAMO-style format which is described below. DYNAMO was the original serial EAM MD code, written by the EAM originators. Several DYNAMO potential files for different metals are included in the “potentials” directory of the LAMMPS distribution. All of these files -are parameterized in terms of LAMMPS metal units.

+are parameterized in terms of LAMMPS metal units.

Note

The eam style reads single-element EAM potentials in the DYNAMO funcfl format. Either single element or alloy systems can be modeled using multiple funcfl files and style eam. For the alloy case LAMMPS mixes the single-element potentials to produce alloy potentials, the same way that DYNAMO does. Alternatively, a single DYNAMO setfl file or Finnis/Sinclair EAM file can be used by LAMMPS to model alloy systems by invoking the eam/alloy or eam/cd or eam/fs styles as described below. These files require no mixing since they specify alloy interactions explicitly.

Note

Note that unlike for other potentials, cutoffs for EAM potentials are not set in the pair_style or pair_coeff command; they are specified in the EAM potential files themselves. Likewise, the EAM potential files list atomic masses; thus you do not need to use the mass command to specify them.

There are several WWW sites that distribute and document EAM potentials stored in DYNAMO or other formats:

http://www.ctcms.nist.gov/potentials
 http://cst-www.nrl.navy.mil/ccm6/ap
 http://enpub.fulton.asu.edu/cms/potentials/main/main.htm
 

These potentials should be usable with LAMMPS, though the alternate formats would need to be converted to the DYNAMO format used by LAMMPS and described on this page. The NIST site is maintained by Chandler Becker (cbecker at nist.gov) who is good resource for info on interatomic potentials and file formats.


For style eam, potential values are read from a file that is in the DYNAMO single-element funcfl format. If the DYNAMO file was created by a Fortran program, it cannot have “D” values in it for exponents. C only recognizes “e” or “E” for scientific notation.

Note that unlike for other potentials, cutoffs for EAM potentials are not set in the pair_style or pair_coeff command; they are specified in the EAM potential files themselves.

For style eam a potential file must be assigned to each I,I pair of atom types by using one or more pair_coeff commands, each with a single argument:

  • filename

Thus the following command

pair_coeff *2 1*2 cuu3.eam
 

will read the cuu3 potential file and use the tabulated Cu values for F, phi, rho that it contains for type pairs 1,1 and 2,2 (type pairs 1,2 and 2,1 are ignored). See the pair_coeff doc page for alternate ways to specify the path for the potential file. In effect, this makes atom types 1 and 2 in LAMMPS be Cu atoms. Different single-element files can be assigned to different atom types to model an alloy system. The mixing to create alloy potentials for type pairs with I != J is done automatically the same way that the serial DYNAMO code originally did it; you do not need to specify coefficients for these type pairs.

Funcfl files in the potentials directory of the LAMMPS distribution have an ”.eam” suffix. A DYNAMO single-element funcfl file is formatted as follows:

  • line 1: comment (ignored)
  • line 2: atomic number, mass, lattice constant, lattice type (e.g. FCC)
  • line 3: Nrho, drho, Nr, dr, cutoff

On line 2, all values but the mass are ignored by LAMMPS. The mass is -in mass units, e.g. mass number or grams/mole for metal +in mass units, e.g. mass number or grams/mole for metal units. The cubic lattice constant is in Angstroms. On line 3, Nrho and Nr are the number of tabulated values in the subsequent arrays, drho and dr are the spacing in density and distance space for the values in those arrays, and the specified cutoff becomes the pairwise cutoff used by LAMMPS for the potential. The units of dr are Angstroms; I’m not sure of the units for drho - some measure of electron density.

Following the three header lines are three arrays of tabulated values:

  • embedding function F(rho) (Nrho values)
  • effective charge function Z(r) (Nr values)
  • density function rho(r) (Nr values)

The values for each array can be listed as multiple values per line, so long as each array starts on a new line. For example, the individual Z(r) values are for r = 0,dr,2*dr, ... (Nr-1)*dr.

The units for the embedding function F are eV. The units for the density function rho are the same as for drho (see above, electron density). The units for the effective charge Z are “atomic charge” or sqrt(Hartree * Bohr-radii). For two interacting atoms i,j this is used by LAMMPS to compute the pair potential term in the EAM energy expression as r*phi, in units of eV-Angstroms, via the formula

r*phi = 27.2 * 0.529 * Zi * Zj
 

where 1 Hartree = 27.2 eV and 1 Bohr = 0.529 Angstroms.


Style eam/alloy computes pairwise interactions using the same formula as style eam. However the associated pair_coeff command reads a DYNAMO setfl file instead of a funcfl file. Setfl files can be used to model a single-element or alloy system. In the alloy case, as explained above, setfl files contain explicit tabulated values for alloy interactions. Thus they allow more generality than funcfl files for modeling alloys.

For style eam/alloy, potential values are read from a file that is in the DYNAMO multi-element setfl format, except that element names (Ni, Cu, etc) are added to one of the lines in the file. If the DYNAMO file was created by a Fortran program, it cannot have “D” values in it for exponents. C only recognizes “e” or “E” for scientific notation.

Only a single pair_coeff command is used with the eam/alloy style which specifies a DYNAMO setfl file, which contains information for M elements. These are mapped to LAMMPS atom types by specifying N additional arguments after the filename in the pair_coeff command, where N is the number of LAMMPS atom types:

  • filename
  • N element names = mapping of setfl elements to atom types

As an example, the potentials/NiAlH_jea.eam.alloy file is a setfl file which has tabulated EAM values for 3 elements and their alloy interactions: Ni, Al, and H. See the pair_coeff doc page for alternate ways to specify the path for the potential file. If your LAMMPS simulation has 4 atoms types and you want the 1st 3 to be Ni, and the 4th to be Al, you would use the following pair_coeff command:

pair_coeff * * NiAlH_jea.eam.alloy Ni Ni Ni Al
 

The 1st 2 arguments must be * * so as to span all LAMMPS atom types. The first three Ni arguments map LAMMPS atom types 1,2,3 to the Ni element in the setfl file. The final Al argument maps LAMMPS atom type 4 to the Al element in the setfl file. Note that there is no requirement that your simulation use all the elements specified by the setfl file.

If a mapping value is specified as NULL, the mapping is not performed. This can be used when an eam/alloy potential is used as part of the hybrid pair style. The NULL values are placeholders for atom types that will be used with other potentials.

Setfl files in the potentials directory of the LAMMPS distribution have an ”.eam.alloy” suffix. A DYNAMO multi-element setfl file is formatted as follows:

  • lines 1,2,3 = comments (ignored)
  • line 4: Nelements Element1 Element2 ... ElementN
  • line 5: Nrho, drho, Nr, dr, cutoff

In a DYNAMO setfl file, line 4 only lists Nelements = the # of elements in the setfl file. For LAMMPS, the element name (Ni, Cu, etc) of each element must be added to the line, in the order the elements appear in the file.

The meaning and units of the values in line 5 is the same as for the funcfl file described above. Note that the cutoff (in Angstroms) is a global value, valid for all pairwise interactions for all element pairings.

Following the 5 header lines are Nelements sections, one for each element, each with the following format:

  • line 1 = atomic number, mass, lattice constant, lattice type (e.g. FCC)
  • embedding function F(rho) (Nrho values)
  • density function rho(r) (Nr values)
-

As with the funcfl files, only the mass (in mass units, +

As with the funcfl files, only the mass (in mass units, e.g. mass number or grams/mole for metal units) is used by LAMMPS from the 1st line. The cubic lattice constant is in Angstroms. The F and rho arrays are unique to a single element and have the same format and units as in a funcfl file.

Following the Nelements sections, Nr values for each pair potential phi(r) array are listed for all i,j element pairs in the same format as other arrays. Since these interactions are symmetric (i,j = j,i) only phi arrays with i >= j are listed, in the following order: i,j = (1,1), (2,1), (2,2), (3,1), (3,2), (3,3), (4,1), ..., (Nelements, Nelements). Unlike the effective charge array Z(r) in funcfl files, the tabulated values for each phi function are listed in setfl files directly as r*phi (in units of eV-Angstroms), since they are for atom pairs.


Style eam/cd is similar to the eam/alloy style, except that it computes alloy pairwise interactions using the concentration-dependent embedded-atom method (CD-EAM). This model can reproduce the enthalpy of mixing of alloys over the full composition range, as described in (Stukowski).

The pair_coeff command is specified the same as for the eam/alloy style. However the DYNAMO setfl file must has two lines added to it, at the end of the file:

  • line 1: Comment line (ignored)
  • line 2: N Coefficient0 Coefficient1 ... CoeffincientN

The last line begins with the degree N of the polynomial function h(x) that modifies the cross interaction between A and B elements. Then N+1 coefficients for the terms of the polynomial are then listed.

Modified EAM setfl files used with the eam/cd style must contain exactly two elements, i.e. in the current implementation the eam/cd style only supports binary alloys. The first and second elements in the input EAM file are always taken as the A and B species.

CD-EAM files in the potentials directory of the LAMMPS distribution have a ”.cdeam” suffix.


Style eam/fs computes pairwise interactions for metals and metal alloys using a generalized form of EAM potentials due to Finnis and Sinclair (Finnis). The total energy Ei of an atom I is given by

_images/pair_eam_fs.jpg

This has the same form as the EAM formula above, except that rho is now a functional specific to the atomic types of both atoms I and J, so that different elements can contribute differently to the total electron density at an atomic site depending on the identity of the element at that atomic site.

The associated pair_coeff command for style eam/fs reads a DYNAMO setfl file that has been extended to include additional rho_alpha_beta arrays of tabulated values. A discussion of how FS EAM differs from conventional EAM alloy potentials is given in (Ackland1). An example of such a potential is the same author’s Fe-P FS potential (Ackland2). Note that while FS potentials always specify the embedding energy with a square root dependence on the total density, the implementation in LAMMPS does not require that; the user can tabulate any functional form desired in the FS potential files.

For style eam/fs, the form of the pair_coeff command is exactly the same as for style eam/alloy, e.g.

pair_coeff * * NiAlH_jea.eam.fs Ni Ni Ni Al
 

where there are N additional arguments after the filename, where N is the number of LAMMPS atom types. See the pair_coeff doc page for alternate ways to specify the path for the potential file. The N values determine the mapping of LAMMPS atom types to EAM elements in the file, as described above for style eam/alloy. As with eam/alloy, if a mapping value is NULL, the mapping is not performed. This can be used when an eam/fs potential is used as part of the hybrid pair style. The NULL values are used as placeholders for atom types that will be used with other potentials.

FS EAM files include more information than the DYNAMO setfl format files read by eam/alloy, in that i,j density functionals for all pairs of elements are included as needed by the Finnis/Sinclair formulation of the EAM.

FS EAM files in the potentials directory of the LAMMPS distribution have an ”.eam.fs” suffix. They are formatted as follows:

  • lines 1,2,3 = comments (ignored)
  • line 4: Nelements Element1 Element2 ... ElementN
  • line 5: Nrho, drho, Nr, dr, cutoff

The 5-line header section is identical to an EAM setfl file.

Following the header are Nelements sections, one for each element I, each with the following format:

  • line 1 = atomic number, mass, lattice constant, lattice type (e.g. FCC)
  • embedding function F(rho) (Nrho values)
  • density function rho(r) for element I at element 1 (Nr values)
  • density function rho(r) for element I at element 2
  • ...
  • density function rho(r) for element I at element Nelement

The units of these quantities in line 1 are the same as for setfl files. Note that the rho(r) arrays in Finnis/Sinclair can be asymmetric (i,j != j,i) so there are Nelements^2 of them listed in the file.

Following the Nelements sections, Nr values for each pair potential phi(r) array are listed in the same manner (r*phi, units of eV-Angstroms) as in EAM setfl files. Note that in Finnis/Sinclair, the phi(r) arrays are still symmetric, so only phi arrays for i >= j are listed.


Styles with a cuda, gpu, intel, kk, omp, or opt suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available hardware, as discussed in Section_accelerate of the manual. The accelerated styles take the same arguments and should produce the same results, except for round-off and precision issues.

These accelerated styles are part of the USER-CUDA, GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if LAMMPS was built with those packages. See the Making LAMMPS section for more info.

You can specify the accelerated styles explicitly in your input script by including their suffix, or you can use the -suffix command-line switch when you invoke LAMMPS, or you can use the suffix command in your input script.

See Section_accerlate of the manual for more instructions on how to use the accelerated styles effectively.


Mixing, shift, table, tail correction, restart, rRESPA info:

For atom type pairs I,J and I != J, where types I and J correspond to two different element types, mixing is performed by LAMMPS as described above with the individual styles. You never need to specify a pair_coeff command with I != J arguments for the eam styles.

This pair style does not support the pair_modify shift, table, and tail options.

The eam pair styles do not write their information to binary restart files, since it is stored in tabulated potential files. Thus, you need to re-specify the pair_style and pair_coeff commands in an input script that reads a restart file.

The eam pair styles can only be used via the pair keyword of the run_style respa command. They do not support the inner, middle, outer keywords.


Restrictions

All of these styles except the eam/cd style are part of the MANYBODY package. They are only enabled if LAMMPS was built with that package (which it is by default). See the Making LAMMPS section for more info.

The eam/cd style is part of the USER-MISC package and also requires the MANYBODY package. It is only enabled if LAMMPS was built with those packages. See the Making LAMMPS section for more info.

\ No newline at end of file diff --git a/doc/html/pair_edip.html b/doc/html/pair_edip.html index 2f75c1f86..2fb3eff59 100644 --- a/doc/html/pair_edip.html +++ b/doc/html/pair_edip.html @@ -1,327 +1,327 @@ pair_style edip command — LAMMPS documentation

pair_style edip command

Syntax

pair_style edip
 
pair_style edip/omp
 

Examples

pair_style edip pair_coeff * * Si.edip Si

Description

The edip style computes a 3-body EDIP potential which is popular for modeling silicon materials where it can have advantages over other models such as the Stillinger-Weber or Tersoff potentials. In EDIP, the energy E of a system of atoms is

_images/pair_edip.jpg

where phi2 is a two-body term and phi3 is a three-body term. The summations in the formula are over all neighbors J and K of atom I within a cutoff distance = a. Both terms depend on the local environment of atom I through its effective coordination number defined by Z, which is unity for a cutoff distance < c and gently goes to 0 at distance = a.

Only a single pair_coeff command is used with the edip style which specifies a EDIP potential file with parameters for all needed elements. These are mapped to LAMMPS atom types by specifying N additional arguments after the filename in the pair_coeff command, where N is the number of LAMMPS atom types:

  • filename
  • N element names = mapping of EDIP elements to atom types

See the pair_coeff doc page for alternate ways to specify the path for the potential file.

As an example, imagine a file Si.edip has EDIP values for Si.

EDIP files in the potentials directory of the LAMMPS distribution have a ”.edip” suffix. Lines that are not blank or comments (starting with #) define parameters for a triplet of elements. The parameters in a single entry correspond to the two-body and three-body coefficients in the formula above:

  • element 1 (the center atom in a 3-body interaction)
  • element 2
  • element 3
  • A (energy units)
  • B (distance units)
  • cutoffA (distance units)
  • cutoffC (distance units)
  • alpha
  • beta
  • eta
  • gamma (distance units)
  • lambda (energy units)
  • mu
  • tho
  • sigma (distance units)
  • Q0
  • u1
  • u2
  • u3
  • u4

The A, B, beta, sigma parameters are used only for two-body interactions. The eta, gamma, lambda, mu, Q0 and all u1 to u4 parameters are used only for three-body interactions. The alpha and cutoffC parameters are used for the coordination environment function only.

The EDIP potential file must contain entries for all the elements listed in the pair_coeff command. It can also contain entries for additional elements not being used in a particular simulation; LAMMPS ignores those entries.

For a single-element simulation, only a single entry is required (e.g. SiSiSi). For a two-element simulation, the file must contain 8 entries (for SiSiSi, SiSiC, SiCSi, SiCC, CSiSi, CSiC, CCSi, CCC), that specify EDIP parameters for all permutations of the two elements interacting in three-body configurations. Thus for 3 elements, 27 entries would be required, etc.

At the moment, only a single element parametrization is implemented. However, the author is not aware of other multi-element EDIP parametrizations. If you know any and you are interest in that, please contact the author of the EDIP package.


Styles with a cuda, gpu, intel, kk, omp, or opt suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available hardware, as discussed in Section_accelerate of the manual. The accelerated styles take the same arguments and should produce the same results, except for round-off and precision issues.

These accelerated styles are part of the USER-CUDA, GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if LAMMPS was built with those packages. See the Making LAMMPS section for more info.

You can specify the accelerated styles explicitly in your input script by including their suffix, or you can use the -suffix command-line switch when you invoke LAMMPS, or you can use the suffix command in your input script.

See Section_accelerate of the manual for more instructions on how to use the accelerated styles effectively.


Mixing, shift, table, tail correction, restart, rRESPA info:

This pair style does not support the pair_modify shift, table, and tail options.

This pair style does not write its information to binary restart files, since it is stored in potential files. Thus, you need to re-specify the pair_style and pair_coeff commands in an input script that reads a restart file.

This pair style can only be used via the pair keyword of the run_style respa command. It does not support the inner, middle, outer keywords.


Restrictions

This angle style can only be used if LAMMPS was built with the USER-MISC package. See the Making LAMMPS section for more info on packages.

This pair style requires the newton setting to be “on” for pair interactions.

The EDIP potential files provided with LAMMPS (see the potentials directory) -are parameterized for metal units. +are parameterized for metal units. You can use the SW potential with any LAMMPS units, but you would need to create your own EDIP potential file with coefficients listed in the appropriate units if your simulation doesn’t use “metal” units.

\ No newline at end of file diff --git a/doc/html/pair_eff.html b/doc/html/pair_eff.html index 862f9f693..6bcd28cef 100644 --- a/doc/html/pair_eff.html +++ b/doc/html/pair_eff.html @@ -1,465 +1,465 @@ pair_style eff/cut command — LAMMPS documentation

pair_style eff/cut command

Syntax

pair_style eff/cut cutoff keyword args ...
 
  • cutoff = global cutoff for Coulombic interactions
  • zero or more keyword/value pairs may be appended
 keyword = limit/eradius or pressure/evirials or ecp
   limit/eradius args = none
   pressure/evirials args = none
   ecp args = type element type element ...
     type = LAMMPS atom type (1 to Ntypes)
     element = element symbol (e.g. H, Si)
 

Examples

pair_style eff/cut 39.7
 pair_style eff/cut 40.0 limit/eradius
 pair_style eff/cut 40.0 limit/eradius pressure/evirials
 pair_style eff/cut 40.0 ecp 1 Si 3 C
 pair_coeff * *
 pair_coeff 2 2 20.0
 pair_coeff 1 s 0.320852 2.283269 0.814857
 pair_coeff 3 p 22.721015 0.728733 1.103199 17.695345 6.693621
 

Description

This pair style contains a LAMMPS implementation of the electron Force Field (eFF) potential currently under development at Caltech, as described in (Jaramillo-Botero). The eFF for Z<6 was first introduced by (Su) in 2007. It has been extended to higher Zs by using effective core potentials (ECPs) that now cover up to 2nd and 3rd row p-block elements of the periodic table.

eFF can be viewed as an approximation to QM wave packet dynamics and Fermionic molecular dynamics, combining the ability of electronic structure methods to describe atomic structure, bonding, and chemistry in materials, and of plasma methods to describe nonequilibrium dynamics of large systems with a large number of highly excited electrons. Yet, eFF relies on a simplification of the electronic wavefunction in which electrons are described as floating Gaussian wave packets whose position and size respond to the various dynamic forces between interacting classical nuclear particles and spherical Gaussian electron wavepackets. The wavefunction is taken to be a Hartree product of the wave packets. To compensate for the lack of explicit antisymmetry in the resulting wavefunction, a spin-dependent Pauli potential is included in the Hamiltonian. Substituting this wavefunction into the time-dependent Schrodinger equation produces equations of motion that correspond - to second order - to classical Hamiltonian relations between electron position and size, and their conjugate momenta. The N-electron wavefunction is described as a product of one-electron Gaussian functions, whose size is a dynamical variable and whose position is not constrained to a nuclear center. This form allows for straightforward propagation of the wavefunction, with time, using a simple formulation from which the equations of motion are then integrated with conventional MD algorithms. In addition to this spin-dependent Pauli repulsion potential term between Gaussians, eFF includes the electron kinetic energy from the Gaussians. These two terms are based on first-principles quantum mechanics. On the other hand, nuclei are described as point charges, which interact with other nuclei and electrons through standard electrostatic potential forms.

The full Hamiltonian (shown below), contains then a standard description for electrostatic interactions between a set of delocalized point and Gaussian charges which include, nuclei-nuclei (NN), electron-electron (ee), and nuclei-electron (Ne). Thus, eFF is a mixed QM-classical mechanics method rather than a conventional force field method (in which electron motions are averaged out into ground state nuclear motions, i.e a single electronic state, and particle interactions are described via empirically parameterized interatomic potential functions). This makes eFF uniquely suited to simulate materials over a wide range of temperatures and pressures where electronically excited and ionized states of matter can occur and coexist. Furthermore, the interactions between particles -nuclei and electrons- reduce to the sum of a set of effective pairwise potentials in the eFF formulation. The eff/cut style computes the pairwise Coulomb interactions between nuclei and electrons (E_NN,E_Ne,E_ee), and the quantum-derived Pauli (E_PR) and Kinetic energy interactions potentials between electrons (E_KE) for a total energy expression given as,

_images/eff_energy_expression.jpg

The individual terms are defined as follows:

_images/eff_KE.jpg _images/eff_NN.jpg _images/eff_Ne.jpg _images/eff_ee.jpg _images/eff_Pauli.jpg

where, s_i correspond to the electron sizes, the sigmas i’s to the fixed spins of the electrons, Z_i to the charges on the nuclei, R_ij to the distances between the nuclei or the nuclei and electrons, and r_ij to the distances between electrons. For additional details see (Jaramillo-Botero).

The overall electrostatics energy is given in Hartree units of energy by default and can be modified by an energy-conversion constant, -according to the units chosen (see electron_units). The +according to the units chosen (see electron_units). The cutoff Rc, given in Bohrs (by default), truncates the interaction distance. The recommended cutoff for this pair style should follow the minimum image criterion, i.e. half of the minimum unit cell length.

Style eff/long (not yet available) computes the same interactions as style eff/cut except that an additional damping factor is applied so it can be used in conjunction with the kspace_style command and its ewald or pppm option. The Coulombic cutoff specified for this style means that pairwise interactions within this distance are computed directly; interactions outside that distance are computed in reciprocal space.

This potential is designed to be used with atom_style electron definitions, in order to handle the description of systems with interacting nuclei and explicit electrons.

The following coefficients must be defined for each pair of atoms types via the pair_coeff command as in the examples above, or in the data file or restart files read by the read_data or read_restart commands, or by mixing as described below:

  • cutoff (distance units)

For eff/cut, the cutoff coefficient is optional. If it is not used (as in some of the examples above), the default global value specified in the pair_style command is used.

For eff/long (not yet available) no cutoff will be specified for an individual I,J type pair via the pair_coeff command. All type pairs use the same global cutoff specified in the pair_style command.


The limit/eradius and pressure/evirials keywrods are optional. Neither or both must be specified. If not specified they are unset.

The limit/eradius keyword is used to restrain electron size from becoming excessively diffuse at very high temperatures were the Gaussian wave packet representation breaks down, and from expanding as free particles to infinite size. If unset, electron radius is free to increase without bounds. If set, a restraining harmonic potential of the form E = 1/2k_ss^2 for s > L_box/2, where k_s = 1 Hartrees/Bohr^2, is applied on the electron radius.

The pressure/evirials keyword is used to control between two types of pressure computation: if unset, the computed pressure does not include the electronic radial virials contributions to the total pressure (scalar or tensor). If set, the computed pressure will include the electronic radial virial contributions to the total pressure (scalar and tensor).

The ecp keyword is used to associate an ECP representation for a particular atom type. The ECP captures the orbital overlap between a core pseudo particle and valence electrons within the Pauli repulsion. A list of type:element-symbol pairs may be provided for all ECP representations, after the “ecp” keyword.

Note

Default ECP parameters are provided for C, N, O, Al, and Si. Users can modify these using the pair_coeff command as exemplified above. For this, the User must distinguish between two different functional forms supported, one that captures the orbital overlap assuming the s-type core interacts with an s-like valence electron (s-s) and another that assumes the interaction is s-p. For systems that exhibit significant p-character (e.g. C, N, O) the s-p form is recommended. The “s” ECP form requires 3 parameters and the “p” 5 parameters.

Note

there are two different pressures that can be reported for eFF when defining this pair_style, one (default) that considers electrons do not contribute radial virial components (i.e. electrons treated as incompressible ‘rigid’ spheres) and one that does. The radial electronic contributions to the virials are only tallied if the flexible pressure option is set, and this will affect both global and per-atom quantities. In principle, the true pressure of a system is somewhere in between the rigid and the flexible eFF pressures, but, for most cases, the difference between these two pressures will not be significant over long-term averaged runs (i.e. even though the energy partitioning changes, the total energy remains similar).


Note

This implemention of eFF gives a reasonably accurate description for systems containing nuclei from Z = 1-6 in “all electron” representations. For systems with increasingly non-spherical electrons, Users should use the ECP representations. ECPs are now supported and validated for most of the 2nd and 3rd row elements of the p-block. Predefined parameters are provided for C, N, O, Al, and Si. The ECP captures the orbital overlap between the core and valence electrons (i.e. Pauli repulsion) with one of the functional forms:

_images/eff_ECP1.jpg _images/eff_ECP2.jpg

Where the 1st form correspond to core interactions with s-type valence electrons and the 2nd to core interactions with p-type valence electrons.

The current version adds full support for models with fixed-core and ECP definitions. to enable larger timesteps (i.e. by avoiding the high frequency vibrational modes -translational and radial- of the 2 s electrons), and in the ECP case to reduce the increased orbital complexity in higher Z elements (up to Z<18). A fixed-core should be defined with a mass that includes the corresponding nuclear mass plus the 2 s electrons in atomic mass units (2x5.4857990943e-4), and a radius equivalent to that of minimized 1s electrons (see examples under /examples/USER/eff/fixed-core). An pseudo-core should be described with a mass that includes the corresponding nuclear mass, plus all the core electrons (i.e no outer shell electrons), and a radius equivalent to that of a corresponding minimized full-electron system. The charge for a pseudo-core atom should be given by the number of outer shell electrons.

In general, eFF excels at computing the properties of materials in extreme conditions and tracing the system dynamics over multi-picosend timescales; this is particularly relevant where electron excitations can change significantly the nature of bonding in the system. It can capture with surprising accuracy the behavior of such systems because it describes consistently and in an unbiased manner many different kinds of bonds, including covalent, ionic, multicenter, ionic, and plasma, and how they interconvert and/or change when they become excited. eFF also excels in computing the relative thermochemistry of isodemic reactions and conformational changes, where the bonds of the reactants are of the same type as the bonds of the products. eFF assumes that kinetic energy differences dominate the overall exchange energy, which is true when the electrons present are nearly spherical and nodeless and valid for covalent compounds such as dense hydrogen, hydrocarbons, and diamond; alkali metals (e.g. lithium), alkali earth metals (e.g. beryllium) and semimetals such as boron; and various compounds containing ionic and/or multicenter bonds, such as boron dihydride.


Mixing, shift, table, tail correction, restart, rRESPA info:

For atom type pairs I,J and I != J, the cutoff distance for the eff/cut style can be mixed. The default mix value is geometric. See the “pair_modify” command for details.

The pair_modify shift option is not relevant for these pair styles.

The eff/long (not yet available) style supports the pair_modify table option for tabulation of the short-range portion of the long-range Coulombic interaction.

These pair styles do not support the pair_modify tail option for adding long-range tail corrections to energy and pressure.

These pair styles write their information to binary restart files, so pair_style and pair_coeff commands do not need to be specified in an input script that reads a restart file.

These pair styles can only be used via the pair keyword of the run_style respa command. They do not support the inner, middle, outer keywords.


Restrictions

These pair styles will only be enabled if LAMMPS is built with the USER-EFF package. It will only be enabled if LAMMPS was built with that package. See the Making LAMMPS section for more info.

These pair styles require that particles store electron attributes such as radius, radial velocity, and radital force, as defined by the atom_style. The electron atom style does all of this.

Thes pair styles require you to use the comm_modify vel yes command so that velocites are stored by ghost atoms.

Default

If not specified, limit_eradius = 0 and pressure_with_evirials = 0.


(Su) Su and Goddard, Excited Electron Dynamics Modeling of Warm Dense Matter, Phys Rev Lett, 99:185003 (2007).

(Jaramillo-Botero) Jaramillo-Botero, Su, Qi, Goddard, Large-scale, Long-term Non-adiabatic Electron Molecular Dynamics for Describing Material Properties and Phenomena in Extreme Environments, J Comp Chem, 32, 497-512 (2011).

\ No newline at end of file diff --git a/doc/html/pair_eim.html b/doc/html/pair_eim.html index 930faaccc..d5a7dc508 100644 --- a/doc/html/pair_eim.html +++ b/doc/html/pair_eim.html @@ -1,338 +1,338 @@ pair_style eim command — LAMMPS documentation

pair_style eim command

pair_style eim/omp command

Syntax

pair_style style
 
  • style = eim

Examples

pair_style eim
 pair_coeff * * Na Cl ../potentials/ffield.eim Na Cl
 pair_coeff * * Na Cl ffield.eim  Na Na Na Cl
 pair_coeff * * Na Cl ../potentials/ffield.eim Cl NULL Na
 

Description

Style eim computes pairwise interactions for ionic compounds using embedded-ion method (EIM) potentials (Zhou). The energy of the system E is given by

_images/pair_eim1.jpg

The first term is a double pairwise sum over the J neighbors of all I atoms, where phi_ij is a pair potential. The second term sums over the embedding energy E_i of atom I, which is a function of its charge q_i and the electrical potential sigma_i at its location. E_i, q_i, and sigma_i are calculated as

_images/pair_eim2.jpg

where eta_ji is a pairwise function describing electron flow from atom I to atom J, and psi_ij is another pairwise function. The multi-body nature of the EIM potential is a result of the embedding energy term. A complete list of all the pair functions used in EIM is summarized below

_images/pair_eim3.jpg

Here E_b, r_e, r_(c,phi), alpha, beta, A_(psi), zeta, r_(s,psi), r_(c,psi), A_(eta), r_(s,eta), r_(c,eta), chi, and pair function type p are parameters, with subscripts ij indicating the two species of atoms in the atomic pair.

Note

Even though the EIM potential is treating atoms as charged ions, you should not use a LAMMPS atom_style that stores a charge on each atom and thus requires you to assign a charge to each atom, e.g. the charge or full atom styles. This is because the EIM potential infers the charge on an atom from the equation above for q_i; you do not assign charges explicitly.


All the EIM parameters are listed in a potential file which is specified by the pair_coeff command. This is an ASCII text file in a format described below. The “ffield.eim” file included in the “potentials” directory of the LAMMPS distribution currently includes nine elements Li, Na, K, Rb, Cs, F, Cl, Br, and I. A system with any combination of these elements can be modeled. This -file is parameterized in terms of LAMMPS metal units.

+file is parameterized in terms of LAMMPS metal units.

Note that unlike other potentials, cutoffs for EIM potentials are not set in the pair_style or pair_coeff command; they are specified in the EIM potential file itself. Likewise, the EIM potential file lists atomic masses; thus you do not need to use the mass command to specify them.

Only a single pair_coeff command is used with the eim style which specifies an EIM potential file and the element(s) to extract information for. The EIM elements are mapped to LAMMPS atom types by specifying N additional arguments after the filename in the pair_coeff command, where N is the number of LAMMPS atom types:

  • Elem1, Elem2, ...
  • EIM potential file
  • N element names = mapping of EIM elements to atom types

See the pair_coeff doc page for alternate ways to specify the path for the potential file.

As an example like one of those above, suppose you want to model a system with Na and Cl atoms. If your LAMMPS simulation has 4 atoms types and you want the 1st 3 to be Na, and the 4th to be Cl, you would use the following pair_coeff command:

pair_coeff * * Na Cl ffield.eim Na Na Na Cl
 

The 1st 2 arguments must be * * so as to span all LAMMPS atom types. The filename is the EIM potential file. The Na and Cl arguments (before the file name) are the two elements for which info will be extracted from the potentail file. The first three trailing Na arguments map LAMMPS atom types 1,2,3 to the EIM Na element. The final Cl argument maps LAMMPS atom type 4 to the EIM Cl element.

If a mapping value is specified as NULL, the mapping is not performed. This can be used when an eim potential is used as part of the hybrid pair style. The NULL values are placeholders for atom types that will be used with other potentials.

The ffield.eim file in the potentials directory of the LAMMPS distribution is formated as follows:

Lines starting with # are comments and are ignored by LAMMPS. Lines starting with “global:” include three global values. The first value divides the cations from anions, i.e., any elements with electronegativity above this value are viewed as anions, and any elements with electronegativity below this value are viewed as cations. The second and third values are related to the cutoff function - i.e. the 0.510204, 1.64498, and 0.010204 shown in the above equation can be derived from these values.

Lines starting with “element:” are formatted as follows: name of element, atomic number, atomic mass, electronic negativity, atomic radius (LAMMPS ignores it), ionic radius (LAMMPS ignores it), cohesive energy (LAMMPS ignores it), and q0 (must be 0).

Lines starting with “pair:” are entered as: element 1, element 2, r_(c,phi), r_(c,phi) (redundant for historical reasons), E_b, r_e, alpha, beta, r_(c,eta), A_(eta), r_(s,eta), r_(c,psi), A_(psi), zeta, r_(s,psi), and p.

The lines in the file can be in any order; LAMMPS extracts the info it needs.


Styles with a cuda, gpu, intel, kk, omp, or opt suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available hardware, as discussed in Section_accelerate of the manual. The accelerated styles take the same arguments and should produce the same results, except for round-off and precision issues.

These accelerated styles are part of the USER-CUDA, GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if LAMMPS was built with those packages. See the Making LAMMPS section for more info.

You can specify the accelerated styles explicitly in your input script by including their suffix, or you can use the -suffix command-line switch when you invoke LAMMPS, or you can use the suffix command in your input script.

See Section_accelerate of the manual for more instructions on how to use the accelerated styles effectively.


Restrictions

This style is part of the MANYBODY package. It is only enabled if LAMMPS was built with that package (which it is by default).

\ No newline at end of file diff --git a/doc/html/pair_meam.html b/doc/html/pair_meam.html index aae1c8e42..5d858456d 100644 --- a/doc/html/pair_meam.html +++ b/doc/html/pair_meam.html @@ -1,516 +1,516 @@ pair_style meam command — LAMMPS documentation

pair_style meam command

Syntax

pair_style meam
 

Examples

pair_style meam
 pair_coeff * * ../potentials/library.meam Si ../potentials/si.meam Si
 pair_coeff * * ../potentials/library.meam Ni Al NULL Ni Al Ni Ni
 

Description

Note

The behavior of the MEAM potential for alloy systems has changed as of November 2010; see description below of the mixture_ref_t parameter

Style meam computes pairwise interactions for a variety of materials using modified embedded-atom method (MEAM) potentials (Baskes). Conceptually, it is an extension to the original EAM potentials which adds angular forces. It is thus suitable for modeling metals and alloys with fcc, bcc, hcp and diamond cubic structures, as well as covalently bonded materials like silicon and carbon.

In the MEAM formulation, the total energy E of a system of atoms is given by:

_images/pair_meam.jpg

where F is the embedding energy which is a function of the atomic electron density rho, and phi is a pair potential interaction. The pair interaction is summed over all neighbors J of atom I within the cutoff distance. As with EAM, the multi-body nature of the MEAM potential is a result of the embedding energy term. Details of the computation of the embedding and pair energies, as implemented in LAMMPS, are given in (Gullet) and references therein.

The various parameters in the MEAM formulas are listed in two files which are specified by the pair_coeff command. These are ASCII text files in a format consistent with other MD codes that implement MEAM potentials, such as the serial DYNAMO code and Warp. Several MEAM potential files with parameters for different materials are included in the “potentials” directory of the LAMMPS distribution with a ”.meam” suffix. All of these are parameterized in -terms of LAMMPS metal units.

+terms of LAMMPS metal units.

Note that unlike for other potentials, cutoffs for MEAM potentials are not set in the pair_style or pair_coeff command; they are specified in the MEAM potential files themselves.

Only a single pair_coeff command is used with the meam style which specifies two MEAM files and the element(s) to extract information for. The MEAM elements are mapped to LAMMPS atom types by specifying N additional arguments after the 2nd filename in the pair_coeff command, where N is the number of LAMMPS atom types:

  • MEAM library file
  • Elem1, Elem2, ...
  • MEAM parameter file
  • N element names = mapping of MEAM elements to atom types

See the pair_coeff doc page for alternate ways to specify the path for the potential files.

As an example, the potentials/library.meam file has generic MEAM settings for a variety of elements. The potentials/sic.meam file has specific parameter settings for a Si and C alloy system. If your LAMMPS simulation has 4 atoms types and you want the 1st 3 to be Si, and the 4th to be C, you would use the following pair_coeff command:

pair_coeff * * library.meam Si C sic.meam Si Si Si C
 

The 1st 2 arguments must be * * so as to span all LAMMPS atom types. The two filenames are for the library and parameter file respectively. The Si and C arguments (between the file names) are the two elements for which info will be extracted from the library file. The first three trailing Si arguments map LAMMPS atom types 1,2,3 to the MEAM Si element. The final C argument maps LAMMPS atom type 4 to the MEAM C element.

If the 2nd filename is specified as NULL, no parameter file is read, which simply means the generic parameters in the library file are used. Use of the NULL specification for the parameter file is discouraged for systems with more than a single element type (e.g. alloys), since the parameter file is expected to set element interaction terms that are not captured by the information in the library file.

If a mapping value is specified as NULL, the mapping is not performed. This can be used when a meam potential is used as part of the hybrid pair style. The NULL values are placeholders for atom types that will be used with other potentials.

The MEAM library file provided with LAMMPS has the name potentials/library.meam. It is the “meamf” file used by other MD codes. Aside from blank and comment lines (start with #) which can appear anywhere, it is formatted as a series of entries, each of which has 19 parameters and can span multiple lines:

elt, lat, z, ielement, atwt, alpha, b0, b1, b2, b3, alat, esub, asub, t0, t1, t2, t3, rozero, ibar

The “elt” and “lat” parameters are text strings, such as elt = Si or Cu and lat = dia or fcc. Because the library file is used by Fortran MD codes, these strings may be enclosed in single quotes, but this is not required. The other numeric parameters match values in the formulas above. The value of the “elt” string is what is used in the pair_coeff command to identify which settings from the library file you wish to read in. There can be multiple entries in the library file with the same “elt” value; LAMMPS reads the 1st matching entry it finds and ignores the rest.

Other parameters in the MEAM library file correspond to single-element potential parameters:

 lat      = lattice structure of reference configuration
 z        = number of nearest neighbors in the reference structure
 ielement = atomic number
 atwt     = atomic weight
 alat     = lattice constant of reference structure
 esub     = energy per atom (eV) in the reference structure at equilibrium
 asub     = "A" parameter for MEAM (see e.g. (Baskes))
 

The alpha, b0, b1, b2, b3, t0, t1, t2, t3 parameters correspond to the standard MEAM parameters in the literature (Baskes) (the b parameters are the standard beta parameters). The rozero parameter is an element-dependent density scaling that weights the reference background density (see e.g. equation 4.5 in (Gullet)) and is typically 1.0 for single-element systems. The ibar parameter selects the form of the function G(Gamma) used to compute the electron density; options are

 0 => G = sqrt(1+Gamma)
  1 => G = exp(Gamma/2)
  2 => not implemented
  3 => G = 2/(1+exp(-Gamma))
  4 => G = sqrt(1+Gamma)
 -5 => G = +-sqrt(abs(1+Gamma))
 

If used, the MEAM parameter file contains settings that override or complement the library file settings. Examples of such parameter files are in the potentials directory with a ”.meam” suffix. Their format is the same as is read by other Fortran MD codes. Aside from blank and comment lines (start with #) which can appear anywhere, each line has one of the following forms. Each line can also have a trailing comment (starting with #) which is ignored.

keyword = value
 keyword(I) = value
 keyword(I,J) = value
 keyword(I,J,K) = value
 

The recognized keywords are as follows:

Ec, alpha, rho0, delta, lattce, attrac, repuls, nn2, Cmin, Cmax, rc, delr, augt1, gsmooth_factor, re

where

 rc          = cutoff radius for cutoff function; default = 4.0
 delr        = length of smoothing distance for cutoff function; default = 0.1
 rho0(I)     = relative density for element I (overwrites value
               read from meamf file)
 Ec(I,J)     = cohesive energy of reference structure for I-J mixture
 delta(I,J)  = heat of formation for I-J alloy; if Ec_IJ is input as
               zero, then LAMMPS sets Ec_IJ = (Ec_II + Ec_JJ)/2 - delta_IJ
 alpha(I,J)  = alpha parameter for pair potential between I and J (can
               be computed from bulk modulus of reference structure
 re(I,J)     = equilibrium distance between I and J in the reference
               structure
 Cmax(I,J,K) = Cmax screening parameter when I-J pair is screened
               by K (I<=J); default = 2.8
 Cmin(I,J,K) = Cmin screening parameter when I-J pair is screened
               by K (I<=J); default = 2.0
 lattce(I,J) = lattice structure of I-J reference structure:
                 dia = diamond (interlaced fcc for alloy)
                 fcc = face centered cubic
                 bcc = body centered cubic
                 dim = dimer
                 b1  = rock salt (NaCl structure)
              hcp = hexagonal close-packed
              c11 = MoSi2 structure
              l12 = Cu3Au structure (lower case L, followed by 12)
                 b2  = CsCl structure (interpenetrating simple cubic)
 nn2(I,J)    = turn on second-nearest neighbor MEAM formulation for
               I-J pair (see for example (Lee)).
                 0 = second-nearest neighbor formulation off
                 1 = second-nearest neighbor formulation on
                 default = 0
 attrac(I,J) = additional cubic attraction term in Rose energy I-J pair potential
                 default = 0
 repuls(I,J) = additional cubic repulsive term in Rose energy I-J pair potential
                 default = 0
 zbl(I,J)    = blend the MEAM I-J pair potential with the ZBL potential for small
               atom separations (ZBL)
                 default = 1
 gsmooth_factor  = factor determining the length of the G-function smoothing
                   region; only significant for ibar=0 or ibar=4.
                       99.0 = short smoothing region, sharp step
                       0.5  = long smoothing region, smooth step
                       default = 99.0
 augt1           = integer flag for whether to augment t1 parameter by
                   3/5*t3 to account for old vs. new meam formulations;
                     0 = don't augment t1
                     1 = augment t1
                     default = 1
 ialloy          = integer flag to use alternative averaging rule for t parameters,
                   for comparison with the DYNAMO MEAM code
                     0 = standard averaging (matches ialloy=0 in DYNAMO)
                     1 = alternative averaging (matches ialloy=1 in DYNAMO)
                     2 = no averaging of t (use single-element values)
                     default = 0
 mixture_ref_t   = integer flag to use mixture average of t to compute the background
                   reference density for alloys, instead of the single-element values
                   (see description and warning elsewhere in this doc page)
                     0 = do not use mixture averaging for t in the reference density
                     1 = use mixture averaging for t in the reference density
                     default = 0
 erose_form      = integer value to select the form of the Rose energy function
                   (see description below).
                     default = 0
 emb_lin_neg     = integer value to select embedding function for negative densities
                     0 = F(rho)=0
                     1 = F(rho) = -asub*esub*rho (linear in rho, matches DYNAMO)
                     default = 0
 bkgd_dyn        = integer value to select background density formula
                     0 = rho_bkgd = rho_ref_meam(a) (as in the reference structure)
                     1 = rho_bkgd = rho0_meam(a)*Z_meam(a) (matches DYNAMO)
                     default = 0
 

Rc, delr, re are in distance units (Angstroms in the case of metal units). Ec and delta are in energy units (eV in the case of metal units).

Each keyword represents a quantity which is either a scalar, vector, 2d array, or 3d array and must be specified with the correct corresponding array syntax. The indices I,J,K each run from 1 to N where N is the number of MEAM elements being used.

Thus these lines

rho0(2) = 2.25
 alpha(1,2) = 4.37
 

set rho0 for the 2nd element to the value 2.25 and set alpha for the alloy interaction between elements 1 and 2 to 4.37.

The augt1 parameter is related to modifications in the MEAM formulation of the partial electron density function. In recent literature, an extra term is included in the expression for the third-order density in order to make the densities orthogonal (see for example (Wang), equation 3d); this term is included in the MEAM implementation in lammps. However, in earlier published work this term was not included when deriving parameters, including most of those provided in the library.meam file included with lammps, and to account for this difference the parameter t1 must be augmented by 3/5*t3. If augt1=1, the default, this augmentation is done automatically. When parameter values are fit using the modified density function, as in more recent literature, augt1 should be set to 0.

The mixture_ref_t parameter is available to match results with those of previous versions of lammps (before January 2011). Newer versions of lammps, by default, use the single-element values of the t parameters to compute the background reference density. This is the proper way to compute these parameters. Earlier versions of lammps used an alloy mixture averaged value of t to compute the background reference density. Setting mixture_ref_t=1 gives the old behavior. WARNING: using mixture_ref_t=1 will give results that are demonstrably incorrect for second-neighbor MEAM, and non-standard for first-neighbor MEAM; this option is included only for matching with previous versions of lammps and should be avoided if possible.

The parameters attrac and repuls, along with the integer selection parameter erose_form, can be used to modify the Rose energy function used to compute the pair potential. This function gives the energy of the reference state as a function of interatomic spacing. The form of this function is:

astar = alpha * (r/re - 1.d0)
 if erose_form = 0: erose = -Ec*(1+astar+a3*(astar**3)/(r/re))*exp(-astar)
 if erose_form = 1: erose = -Ec*(1+astar+(-attrac+repuls/r)*(astar**3))*exp(-astar)
 if erose_form = 2: erose = -Ec*(1 +astar + a3*(astar**3))*exp(-astar)
 a3 = repuls, astar < 0
 a3 = attrac, astar >= 0
 

Most published MEAM parameter sets use the default values attrac=repulse=0. Setting repuls=attrac=delta corresponds to the form used in several recent published MEAM parameter sets, such as (Vallone)

Note

The default form of the erose expression in LAMMPS was corrected in March 2009. The current version is correct, but may show different behavior compared with earlier versions of lammps with the attrac and/or repuls parameters are non-zero. To obtain the previous default form, use erose_form = 1 (this form does not seem to appear in the literature). An alternative form (see e.g. (Lee2)) is available using erose_form = 2.


Mixing, shift, table, tail correction, restart, rRESPA info:

For atom type pairs I,J and I != J, where types I and J correspond to two different element types, mixing is performed by LAMMPS with user-specifiable parameters as described above. You never need to specify a pair_coeff command with I != J arguments for this style.

This pair style does not support the pair_modify shift, table, and tail options.

This pair style does not write its information to binary restart files, since it is stored in potential files. Thus, you need to re-specify the pair_style and pair_coeff commands in an input script that reads a restart file.

This pair style can only be used via the pair keyword of the run_style respa command. It does not support the inner, middle, outer keywords.


Restrictions

This style is part of the MEAM package. It is only enabled if LAMMPS was built with that package, which also requires the MEAM library be built and linked with LAMMPS. See the Making LAMMPS section for more info.

\ No newline at end of file diff --git a/doc/html/pair_meam_spline.html b/doc/html/pair_meam_spline.html index 86e5bf52e..f7affcc5d 100644 --- a/doc/html/pair_meam_spline.html +++ b/doc/html/pair_meam_spline.html @@ -1,309 +1,309 @@ pair_style meam/spline — LAMMPS documentation

pair_style meam/spline

pair_style meam/spline/omp

Syntax

pair_style meam/spline
 

Examples

pair_style meam/spline
 pair_coeff * * Ti.meam.spline Ti
 pair_coeff * * Ti.meam.spline Ti Ti Ti
 

Description

The meam/spline style computes pairwise interactions for metals using a variant of modified embedded-atom method (MEAM) potentials (Lenosky). The total energy E is given by

_images/pair_meam_spline.jpg

where rho_i is the density at atom I, theta_jik is the angle between atoms J, I, and K centered on atom I. The five functions Phi, U, rho, f, and g are represented by cubic splines.

The cutoffs and the coefficients for these spline functions are listed in a parameter file which is specified by the pair_coeff command. Parameter files for different elements are included in the “potentials” directory of the LAMMPS distribution and have a ”.meam.spline” file suffix. All of these -files are parameterized in terms of LAMMPS metal units.

+files are parameterized in terms of LAMMPS metal units.

Note that unlike for other potentials, cutoffs for spline-based MEAM potentials are not set in the pair_style or pair_coeff command; they are specified in the potential files themselves.

Unlike the EAM pair style, which retrieves the atomic mass from the potential file, the spline-based MEAM potentials do not include mass information; thus you need to use the mass command to specify it.

Only a single pair_coeff command is used with the meam/spline style which specifies a potential file with parameters for all needed elements. These are mapped to LAMMPS atom types by specifying N additional arguments after the filename in the pair_coeff command, where N is the number of LAMMPS atom types:

  • filename
  • N element names = mapping of spline-based MEAM elements to atom types

See the pair_coeff doc page for alternate ways to specify the path for the potential file.

As an example, imagine the Ti.meam.spline file has values for Ti. If your LAMMPS simulation has 3 atoms types and they are all to be treated with this potentials, you would use the following pair_coeff command:

pair_coeff * * Ti.meam.spline Ti Ti Ti
 

The 1st 2 arguments must be * * so as to span all LAMMPS atom types. The three Ti arguments map LAMMPS atom types 1,2,3 to the Ti element in the potential file. If a mapping value is specified as NULL, the mapping is not performed. This can be used when a meam/spline potential is used as part of the hybrid pair style. The NULL values are placeholders for atom types that will be used with other potentials.

Note

The meam/spline style currently supports only single-element MEAM potentials. It may be extended for alloy systems in the future.


Styles with a cuda, gpu, intel, kk, omp, or opt suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available hardware, as discussed in Section_accelerate of the manual. The accelerated styles take the same arguments and should produce the same results, except for round-off and precision issues.

These accelerated styles are part of the USER-CUDA, GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if LAMMPS was built with those packages. See the Making LAMMPS section for more info.

You can specify the accelerated styles explicitly in your input script by including their suffix, or you can use the -suffix command-line switch when you invoke LAMMPS, or you can use the suffix command in your input script.

See Section_accelerate of the manual for more instructions on how to use the accelerated styles effectively.


Mixing, shift, table, tail correction, restart, rRESPA info:

The current version of this pair style does not support multiple element types or mixing. It has been designed for pure elements only.

This pair style does not support the pair_modify shift, table, and tail options.

The meam/spline pair style does not write its information to binary restart files, since it is stored in an external potential parameter file. Thus, you need to re-specify the pair_style and pair_coeff commands in an input script that reads a restart file.

The meam/spline pair style can only be used via the pair keyword of the run_style respa command. They do not support the inner, middle, outer keywords.


Restrictions

This pair style requires the newton setting to be “on” for pair interactions.

This pair style is only enabled if LAMMPS was built with the USER-MISC package. See the Making LAMMPS section for more info.

\ No newline at end of file diff --git a/doc/html/pair_meam_sw_spline.html b/doc/html/pair_meam_sw_spline.html index f5a2dfbb6..2608d4c90 100644 --- a/doc/html/pair_meam_sw_spline.html +++ b/doc/html/pair_meam_sw_spline.html @@ -1,303 +1,303 @@ pair_style meam/sw/spline — LAMMPS documentation

pair_style meam/sw/spline

pair_style meam/sw/spline/omp

Syntax

pair_style meam/sw/spline
 

Examples

pair_style meam/sw/spline
 pair_coeff * * Ti.meam.sw.spline Ti
 pair_coeff * * Ti.meam.sw.spline Ti Ti Ti
 

Description

The meam/sw/spline style computes pairwise interactions for metals using a variant of modified embedded-atom method (MEAM) potentials (Lenosky) with an additional Stillinger-Weber (SW) term (Stillinger) in the energy. This form of the potential was first proposed by Nicklas, Fellinger, and Park (Nicklas). We refer to it as MEAM+SW. The total energy E is given by

_images/pair_meam_sw_spline.jpg

where rho_I is the density at atom I, theta_JIK is the angle between atoms J, I, and K centered on atom I. The seven functions Phi, F, G, U, rho, f, and g are represented by cubic splines.

The cutoffs and the coefficients for these spline functions are listed in a parameter file which is specified by the pair_coeff command. Parameter files for different elements are included in the “potentials” directory of the LAMMPS distribution and have a ”.meam.sw.spline” file suffix. All of these -files are parameterized in terms of LAMMPS metal units.

+files are parameterized in terms of LAMMPS metal units.

Note that unlike for other potentials, cutoffs for spline-based MEAM+SW potentials are not set in the pair_style or pair_coeff command; they are specified in the potential files themselves.

Unlike the EAM pair style, which retrieves the atomic mass from the potential file, the spline-based MEAM+SW potentials do not include mass information; thus you need to use the mass command to specify it.

Only a single pair_coeff command is used with the meam/sw/spline style which specifies a potential file with parameters for all needed elements. These are mapped to LAMMPS atom types by specifying N additional arguments after the filename in the pair_coeff command, where N is the number of LAMMPS atom types:

  • filename
  • N element names = mapping of spline-based MEAM+SW elements to atom types

See the pair_coeff doc page for alternate ways to specify the path for the potential file.

As an example, imagine the Ti.meam.sw.spline file has values for Ti. If your LAMMPS simulation has 3 atoms types and they are all to be treated with this potential, you would use the following pair_coeff command:

pair_coeff * * Ti.meam.sw.spline Ti Ti Ti

The 1st 2 arguments must be * * so as to span all LAMMPS atom types. The three Ti arguments map LAMMPS atom types 1,2,3 to the Ti element in the potential file. If a mapping value is specified as NULL, the mapping is not performed. This can be used when a meam/sw/spline potential is used as part of the hybrid pair style. The NULL values are placeholders for atom types that will be used with other potentials.

Note

The meam/sw/spline style currently supports only single-element MEAM+SW potentials. It may be extended for alloy systems in the future.

Example input scripts that use this pair style are provided in the examples/USER/misc/meam_sw_spline directory.


Mixing, shift, table, tail correction, restart, rRESPA info:

The pair style does not support multiple element types or mixing. It has been designed for pure elements only.

This pair style does not support the pair_modify shift, table, and tail options.

The meam/sw/spline pair style does not write its information to binary restart files, since it is stored in an external potential parameter file. Thus, you need to re-specify the pair_style and pair_coeff commands in an input script that reads a restart file.

The meam/sw/spline pair style can only be used via the pair keyword of the run_style respa command. They do not support the inner, middle, outer keywords.


Restrictions

This pair style requires the newton setting to be “on” for pair interactions.

This pair style is only enabled if LAMMPS was built with the USER-MISC package. See the Making LAMMPS section for more info.

\ No newline at end of file diff --git a/doc/html/pair_mgpt.html b/doc/html/pair_mgpt.html index 0d8569695..9c6274c8d 100644 --- a/doc/html/pair_mgpt.html +++ b/doc/html/pair_mgpt.html @@ -1,378 +1,378 @@ pair_style mgpt command — LAMMPS documentation

pair_style mgpt command

Syntax

pair_style mgpt
 

Examples

pair_style mgpt
 pair_coeff * * Ta6.8x.mgpt.parmin Ta6.8x.mgpt.potin Omega
 cp ~/lammps/potentials/Ta6.8x.mgpt.parmin parmin
 cp ~/lammps/potentials/Ta6.8x.mgpt.potin potin
 pair_coeff * * parmin potin Omega volpress yes nbody 1234 precision double
 pair_coeff * * parmin potin Omega volpress yes nbody 12
 

Description

Within DFT quantum mechanics, generalized pseudopotential theory (GPT) (Moriarty1) provides a first-principles approach to multi-ion interatomic potentials in d-band transition metals, with a volume-dependent, real-space total-energy functional for the N-ion elemental bulk material in the form

_images/pair_mgpt.jpg

where the prime on each summation sign indicates the exclusion of all self-interaction terms from the summation. The leading volume term E_vol as well as the two-ion central-force pair potential v_2 and the three- and four-ion angular-force potentials, v_3 and v_4, depend explicitly on the atomic volume Omega, but are structure independent and transferable to all bulk ion configurations, either ordered or disordered, and with of without the presence of point and line defects. The simplified model GPT or MGPT (Moriarty2, Moriarty3), which retains the form of E_tot and permits more efficient large-scale atomistic simulations, derives from the GPT through a series of systematic approximations applied to E_vol and the potentials v_n that are valid for mid-period transition metals with nearly half-filled d bands.

Both analytic (Moriarty2) and matrix (Moriarty3) representations of MGPT have been developed. In the more general matrix representation, which can also be applied to f-band actinide metals and permits both canonical and non-canonical d/f bands, the multi-ion potentials are evaluated on the fly during a simulation through d- or f-state matrix multiplication, and the forces that move the ions are determined analytically. Fast matrix-MGPT algorithms have been developed independently by Glosli (Glosli, Moriarty3) and by Oppelstrup (Oppelstrup)

The mgpt pair style calculates forces, energies, and the total energy per atom, E_tot/N, using the Oppelstrup matrix-MGPT algorithm. Input potential and control data are entered through the pair_coeff command. Each material treated requires input parmin and potin potential files, as shown in the above examples, as well as specification by the user of the initial atomic volume Omega through pair_coeff. At the beginning of a time step in any simulation, the total volume of the simulation cell V should always be equal to Omega*N, where N is the number of metal ions present, taking into account the presence of any vacancies and/or interstitials in the case of a solid. In a constant-volume simulation, which is the normal mode of operation for the mgpt pair style, Omega, V and N all remain constant throughout the simulation and thus are equal to their initial values. In a constant-stress simulation, the cell volume V will change (slowly) as the simulation proceeds. After each time step, the atomic volume should be updated by the code as Omega = V/N. In addition, the volume term E_vol and the potentials v_2, v_3 and v_4 have to be removed at the end of the time step, and then respecified at the new value of Omega. In all smulations, Omega must remain within the defined volume range for E_vol and the potentials for the given material.

The default option volpress yes in the pair_coeff command includes all volume derivatives of E_tot required to calculate the stress tensor and pressure correctly. The option volpress no disregards the pressure contribution resulting from the volume term E_vol, and can be used for testing and analysis purposes. The additional optional variable nbody controls the specific terms in E_tot that are calculated. The default option and the normal option for mid-period transition and actinide metals is nbody 1234 for which all four terms in E_tot are retained. The option nbody 12, for example, retains only the volume term and the two-ion pair potential term and can be used for GPT series-end transition metals that can be well described without v_3 and v_4. The nbody option can also be used to test or analyze the contribution of any of the four terms in E_tot to a given calculated property.

The mgpt pair style makes extensive use of matrix algebra and includes optimized kernels for the BlueGene/Q architecture and the Intel/AMD (x86) architectures. When compiled with the appropriate compiler and compiler switches (-msse3 on x86, and using the IBM XL compiler on BG/Q), these optimized routines are used automatically. For BG/Q machines, building with the default Makefile for that architecture (e.g., “make bgq”) should enable the optimized algebra routines. For x-86 machines, the here provided Makefile.mpi_fastmgpt (build with “make mpi_fastmgpt”) enables the fast algebra routines. The user will be informed in the output files of the matrix kernels in use. To further improve speed, on x86 the option precision single can be added to the pair_coeff command line, which improves speed (up to a factor of two) at the cost of doing matrix calculations with 7 digit precision instead of the default 16. For consistency the default option can be specified explicitly by the option precision double.

All remaining potential and control data are contained with the parmin and potin files, including cutoffs, atomic mass, and other basic MGPT variables. Specific MGPT potential data for the transition metals tantalum (Ta4 and Ta6.8x potentials), molybdenum (Mo5.2 potentials), and vanadium (V6.1 potentials) are contained in the LAMMPS potentials directory. The stored files are, respectively, Ta4.mgpt.parmin, Ta4.mgpt.potin, Ta6.8x.mgpt.parmin, Ta6.8x.mgpt.potin, Mo5.2.mgpt.parmin, Mo5.2.mgpt.potin, V6.1.mgpt.parmin, and V6.1.mgpt.potin . Useful corresponding informational “README” files on the Ta4, Ta6.8x, Mo5.2 and V6.1 potentials are also included in the potentials directory. These latter files indicate the volume mesh and range for each potential and give appropriate references for the potentials. It is expected that MGPT potentials for additional materials will be added over time.

Useful example MGPT scripts are given in the examples/USER/mgpt directory. These scripts show the necessary steps to perform constant-volume calculations and simulations. It is strongly recommended that the user work through and understand these examples before proceeding to more complex simulations.

Note

For good performance, LAMMPS should be built with the compiler flags “-O3 -msse3 -funroll-loops” when including this pair style. The src/MAKE/OPTIONS/Makefile.mpi_fastmgpt is an example machine Makefile with these options included as part of a standard MPI build. Note that as-is it will build with whatever low-level compiler (g++, icc, etc) is the default for your MPI installation.


Mixing, shift, table tail correction, restart:

This pair style does not support the pair_modify mix, shift, table, and tail options.

This pair style does not write its information to binary restart files, since it is stored in potential files. Thus, you needs to re-specify the pair_style and pair_coeff commands in an input script that reads a restart file.

This pair style can only be used via the pair keyword of the run_style respa command. It does not support the inner, middle, outer keywords.


Restrictions

This pair style is part of the USER-MGPT package and is only enabled if LAMMPS is built with that package. See the Making LAMMPS section for more info.

The MGPT potentials require the newtion setting to be “on” for pair style interactions.

The stored parmin and potin potential files provided with LAMMPS in the “potentials” directory are written in Rydberg atomic units, with energies in Rydbergs and distances in Bohr radii. The mgpt pair style converts Rydbergs to Hartrees to make the potential files -compatible with LAMMPS electron units.

+compatible with LAMMPS electron units.

The form of E_tot used in the mgpt pair style is only appropriate for elemental bulk solids and liquids. This includes solids with point and extended defects such as vacancies, interstitials, grain boundaries and dislocations. Alloys and free surfaces, however, require significant modifications, which are not included in the mgpt pair style. Likewise, the hybrid pair style is not allowed, where MGPT would be used for some atoms but not for others.

Electron-thermal effects are not included in the standard MGPT potentials provided in the “potentials” directory, where the potentials have been constructed at zero electron temperature. Physically, electron-thermal effects may be important in 3d (e.g., V) and 4d (e.g., Mo) transition metals at high temperatures near melt and above. It is expected that temperature-dependent MGPT potentials for such cases will be added over time.

Default

The options defaults for the pair_coeff command are volpress yes, nbody 1234, and precision double.


(Moriarty1) Moriarty, Physical Review B, 38, 3199 (1988).

(Moriarty2) Moriarty, Physical Review B, 42, 1609 (1990). Moriarty, Physical Review B 49, 12431 (1994).

(Moriarty3) Moriarty, Benedict, Glosli, Hood, Orlikowski, Patel, Soderlind, Streitz, Tang, and Yang, Journal of Materials Research, 21, 563 (2006).

(Glosli) Glosli, unpublished, 2005. Streitz, Glosli, Patel, Chan, Yates, de Supinski, Sexton and Gunnels, Journal of Physics: Conference Series, 46, 254 (2006).

(Oppelstrup) Oppelstrup, unpublished, 2015. Oppelstrup and Moriarty, to be published.

\ No newline at end of file diff --git a/doc/html/pair_polymorphic.html b/doc/html/pair_polymorphic.html index 9daaf4ebf..550805f4d 100644 --- a/doc/html/pair_polymorphic.html +++ b/doc/html/pair_polymorphic.html @@ -1,380 +1,380 @@ pair_style polymorphic command — LAMMPS documentation

pair_style polymorphic command

Syntax

pair_style polymorphic
 

style = polymorphic

Examples

pair_style polymorphic
 pair_coeff * * TlBr_msw.polymorphic Tl Br
 pair_coeff * * AlCu_eam.polymorphic Al Cu
 pair_coeff * * GaN_tersoff.polymorphic Ga N
 pair_coeff * * GaN_sw.polymorphic GaN
 

Description

The polymorphic pair style computes a 3-body free-form potential (Zhou) for the energy E of a system of atoms as

_images/polymorphic1.jpg _images/polymorphic2.jpg _images/polymorphic3.jpg

where I, J, K represent species of atoms i, j, and k, i_1, ..., i_N represents a list of i’s neighbors, delta_ij is a Direc constant (i.e., delta_ij = 1 when i = j, and delta_ij = 0 otherwise), eta_ij is similar constant that can be set either to eta_ij = delta_ij or eta_ij = 1 - delta_ij depending on the potential type, U_IJ(r_ij), V_IJ(r_ij), W_IK(r_ik) are pair functions, G_JIK(cos(theta)) is an angular function, P_IK(delta r_jik) is a function of atomic spacing differential delta r_jik = r_ij - xi_IJ*r_ik with xi_IJ being a pair-dependent parameter, and F_IJ(X_ij) is a function of the local environment variable X_ij. This generic potential is fully defined once the constants eta_ij and xi_IJ, and the six functions U_IJ(r_ij), V_IJ(r_ij), W_IK(r_ik), G_JIK(cos(theta)), P_IK(delta r_jik), and F_IJ(X_ij) are given. Note that these six functions are all one dimensional, and hence can be provided in an analytic or tabular form. This allows users to design different potentials solely based on a manipulation of these functions. For instance, the potential reduces to Stillinger-Weber potential (SW) if we set

_images/polymorphic4.jpg

The potential reduces to Tersoff types of potential (Tersoff or Albe) if we set

_images/polymorphic5.jpg _images/polymorphic6.jpg

The potential reduces to Rockett-Tersoff (Wang) type if we set

_images/polymorphic7.jpg _images/polymorphic6.jpg _images/polymorphic8.jpg

The potential becomes embedded atom method (Daw) if we set

_images/polymorphic9.jpg

In the embedded atom method case, phi_IJ(r_ij) is the pair energy, F_I(X) is the embedding energy, X is the local electron density, and f_K(r) is the atomic electron density function.

If the tabulated functions are created using the parameters of sw, tersoff, and eam potentials, the polymorphic pair style will produce the same global properties (energies and stresses) and the same forces as the sw, tersoff, and eam pair styles. The polymorphic pair style also produces the same atom properties (energies and stresses) as the corresponding tersoff and eam pair styles. However, due to a different partition of global properties to atom properties, the polymorphic pair style will produce different atom properties (energies and stresses) as the sw pair style. This does not mean that polymorphic pair style is different from the sw pair style in this case. It just means that the definitions of the atom energies and atom stresses are different.

Only a single pair_coeff command is used with the polymorphic style which specifies an potential file for all needed elements. These are mapped to LAMMPS atom types by specifying N additional arguments after the filename in the pair_coeff command, where N is the number of LAMMPS atom types:

  • filename
  • N element names = mapping of Tersoff elements to atom types

See the pair_coeff doc page for alternate ways to specify the path for the potential file. Several files for polymorphic potentials are included in the potentials dir of the LAMMPS distro. They have a “poly” suffix.

As an example, imagine the SiC_tersoff.polymorphic file has tabulated functions for Si-C tersoff potential. If your LAMMPS simulation has 4 atoms types and you want the 1st 3 to be Si, and the 4th to be C, you would use the following pair_coeff command:

pair_coeff * * SiC_tersoff.polymorphic Si Si Si C
 

The 1st 2 arguments must be * * so as to span all LAMMPS atom types. The first three Si arguments map LAMMPS atom types 1,2,3 to the Si element in the polymorphic file. The final C argument maps LAMMPS atom type 4 to the C element in the polymorphic file. If a mapping value is specified as NULL, the mapping is not performed. This can be used when an polymorphic potential is used as part of the hybrid pair style. The NULL values are placeholders for atom types that will be used with other potentials.

Potential files in the potentials directory of the LAMMPS distribution have a ”.poly” suffix. At the beginning of the files, an unlimited number of lines starting with ‘#’ are used to describe the potential and are ignored by LAMMPS. The next line lists two numbers:

ntypes eta
 

Here ntypes represent total number of species defined in the potential file, and eta = 0 or 1. The number ntypes must equal the total number of different species defined in the pair_coeff command. When eta = 1, eta_ij defined in the potential functions above is set to 1 - delta_ij, otherwise eta_ij is set to delta_ij. The next ntypes lines each lists two numbers and a character string representing atomic number, atomic mass, and name of the species of the ntypes elements:

atomic_number atomic-mass element (1)
 atomic_number atomic-mass element (2)
 ...
 atomic_number atomic-mass element (ntypes)
 

The next ntypes*(ntypes+1)/2 lines contain two numbers:

cut xi (1)
 cut xi (2)
 ...
 cut xi (ntypes*(ntypes+1)/2)
 

Here cut means the cutoff distance of the pair functions, xi is the same as defined in the potential functions above. The ntypes*(ntypes+1)/2 lines are related to the pairs according to the sequence of first ii (self) pairs, i = 1, 2, ..., ntypes, and then then ij (cross) pairs, i = 1, 2, ..., ntypes-1, and j = i+1, i+2, ..., ntypes (i.e., the sequence of the ij pairs follows 11, 22, ..., 12, 13, 14, ..., 23, 24, ...).

The final blocks of the potential file are the U, V, W, P, G, and F functions are listed sequentially. First, U functions are given for each of the ntypes*(ntypes+1)/2 pairs according to the sequence described above. For each of the pairs, nr values are listed. Next, similar arrays are given for V, W, and P functions. Then G functions are given for all the ntypes*ntypes*ntypes ijk triplets in a natural sequence i from 1 to ntypes, j from 1 to ntypes, and k from 1 to ntypes (i.e., ijk = 111, 112, 113, ..., 121, 122, 123 ..., 211, 212, ...). Each of the ijk functions contains ng values. Finally, the F functions are listed for all ntypes*(ntypes+1)/2 pairs, each containing nx values. Either analytic or tabulated functions can be specified. Currently, constant, exponential, sine and cosine analytic functions are available which are specified with: constant c1 , where f(x) = c1 exponential c1 c2 , where f(x) = c1 exp(c2*x) sine c1 c2 , where f(x) = c1 sin(c2*x) cos c1 c2 , where f(x) = c1 cos(c2*x) Tabulated functions are specified by spline n x1 x2, where n=number of point, (x1,x2)=range and then followed by n values evaluated uniformly over these argument ranges. The valid argument ranges of the functions are between 0 <= r <= cut for the U(r), V(r), W(r) functions, -cutmax <= delta_r <= cutmax for the P(delta_r) functions, -1 <= costheta <= 1 for the G(costheta) functions, and 0 <= X <= maxX for the F(X) functions.

Mixing, shift, table tail correction, restart:

This pair styles does not support the pair_modify shift, table, and tail options.

This pair style does not write their information to binary restart files, since it is stored in potential files. Thus, you need to re-specify the pair_style and pair_coeff commands in an input script that reads a restart file.


Restrictions

If using create_atoms command, atomic masses must be defined in the input script. If using read_data, atomic masses must be defined in the atomic structure data file.

This pair style is part of the MANYBODY package. It is only enabled if LAMMPS was built with that package (which it is by default). See the Making LAMMPS section for more info.

This pair potential requires the newtion setting to be “on” for pair interactions.

The potential files provided with LAMMPS (see the potentials -directory) are parameterized for metal units. You can use +directory) are parameterized for metal units. You can use any LAMMPS units, but you would need to create your own potential files.

\ No newline at end of file diff --git a/doc/html/pair_sw.html b/doc/html/pair_sw.html index 798d24fd2..52dac9513 100644 --- a/doc/html/pair_sw.html +++ b/doc/html/pair_sw.html @@ -1,384 +1,384 @@ pair_style sw command — LAMMPS documentation

pair_style sw command

pair_style sw/cuda command

pair_style sw/gpu command

pair_style sw/intel command

pair_style sw/kk command

pair_style sw/omp command

Syntax

pair_style sw
 

Examples

pair_style sw
 pair_coeff * * si.sw Si
 pair_coeff * * GaN.sw Ga N Ga
 

Description

The sw style computes a 3-body Stillinger-Weber potential for the energy E of a system of atoms as

_images/pair_sw.jpg

where phi2 is a two-body term and phi3 is a three-body term. The summations in the formula are over all neighbors J and K of atom I within a cutoff distance = a*sigma.

Only a single pair_coeff command is used with the sw style which specifies a Stillinger-Weber potential file with parameters for all needed elements. These are mapped to LAMMPS atom types by specifying N additional arguments after the filename in the pair_coeff command, where N is the number of LAMMPS atom types:

  • filename
  • N element names = mapping of SW elements to atom types

See the pair_coeff doc page for alternate ways to specify the path for the potential file.

As an example, imagine a file SiC.sw has Stillinger-Weber values for Si and C. If your LAMMPS simulation has 4 atoms types and you want the 1st 3 to be Si, and the 4th to be C, you would use the following pair_coeff command:

pair_coeff * * SiC.sw Si Si Si C
 

The 1st 2 arguments must be * * so as to span all LAMMPS atom types. The first three Si arguments map LAMMPS atom types 1,2,3 to the Si element in the SW file. The final C argument maps LAMMPS atom type 4 to the C element in the SW file. If a mapping value is specified as NULL, the mapping is not performed. This can be used when a sw potential is used as part of the hybrid pair style. The NULL values are placeholders for atom types that will be used with other potentials.

Stillinger-Weber files in the potentials directory of the LAMMPS distribution have a ”.sw” suffix. Lines that are not blank or comments (starting with #) define parameters for a triplet of elements. The parameters in a single entry correspond to the two-body and three-body coefficients in the formula above:

  • element 1 (the center atom in a 3-body interaction)
  • element 2
  • element 3
  • epsilon (energy units)
  • sigma (distance units)
  • a
  • lambda
  • gamma
  • costheta0
  • A
  • B
  • p
  • q
  • tol

The A, B, p, and q parameters are used only for two-body interactions. The lambda and costheta0 parameters are used only for three-body interactions. The epsilon, sigma and a parameters are used for both two-body and three-body interactions. gamma is used only in the three-body interactions, but is defined for pairs of atoms. The non-annotated parameters are unitless.

LAMMPS introduces an additional performance-optimization parameter tol that is used for both two-body and three-body interactions. In the Stillinger-Weber potential, the interaction energies become negligibly small at atomic separations substantially less than the theoretical cutoff distances. LAMMPS therefore defines a virtual cutoff distance based on a user defined tolerance tol. The use of the virtual cutoff distance in constructing atom neighbor lists can significantly reduce the neighbor list sizes and therefore the computational cost. LAMMPS provides a tol value for each of the three-body entries so that they can be separately controlled. If tol = 0.0, then the standard Stillinger-Weber cutoff is used.

The Stillinger-Weber potential file must contain entries for all the elements listed in the pair_coeff command. It can also contain entries for additional elements not being used in a particular simulation; LAMMPS ignores those entries.

For a single-element simulation, only a single entry is required (e.g. SiSiSi). For a two-element simulation, the file must contain 8 entries (for SiSiSi, SiSiC, SiCSi, SiCC, CSiSi, CSiC, CCSi, CCC), that specify SW parameters for all permutations of the two elements interacting in three-body configurations. Thus for 3 elements, 27 entries would be required, etc.

As annotated above, the first element in the entry is the center atom in a three-body interaction. Thus an entry for SiCC means a Si atom with 2 C atoms as neighbors. The parameter values used for the two-body interaction come from the entry where the 2nd and 3rd elements are the same. Thus the two-body parameters for Si interacting with C, comes from the SiCC entry. The three-body parameters can in principle be specific to the three elements of the configuration. In the literature, however, the three-body parameters are usually defined by simple formulas involving two sets of pair-wise parameters, corresponding to the ij and ik pairs, where i is the center atom. The user must ensure that the correct combining rule is used to calculate the values of the threebody parameters for alloys. Note also that the function phi3 contains two exponential screening factors with parameter values from the ij pair and ik pairs. So phi3 for a C atom bonded to a Si atom and a second C atom will depend on the three-body parameters for the CSiC entry, and also on the two-body parameters for the CCC and CSiSi entries. Since the order of the two neighbors is arbitrary, the threebody parameters for entries CSiC and CCSi should be the same. Similarly, the two-body parameters for entries SiCC and CSiSi should also be the same. The parameters used only for two-body interactions (A, B, p, and q) in entries whose 2nd and 3rd element are different (e.g. SiCSi) are not used for anything and can be set to 0.0 if desired. This is also true for the parameters in phi3 that are taken from the ij and ik pairs (sigma, a, gamma)


Styles with a cuda, gpu, intel, kk, omp, or opt suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available hardware, as discussed in Section_accelerate of the manual. The accelerated styles take the same arguments and should produce the same results, except for round-off and precision issues.

These accelerated styles are part of the USER-CUDA, GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if LAMMPS was built with those packages. See the Making LAMMPS section for more info.

You can specify the accelerated styles explicitly in your input script by including their suffix, or you can use the -suffix command-line switch when you invoke LAMMPS, or you can use the suffix command in your input script.

When using the USER-INTEL package with this style, there is an additional 5 to 10 percent performance improvement when the Stillinger-Weber parameters p and q are set to 4 and 0 respectively. These parameters are common for modeling silicon and water.

See Section_accelerate of the manual for more instructions on how to use the accelerated styles effectively.


Mixing, shift, table, tail correction, restart, rRESPA info:

For atom type pairs I,J and I != J, where types I and J correspond to two different element types, mixing is performed by LAMMPS as described above from values in the potential file.

This pair style does not support the pair_modify shift, table, and tail options.

This pair style does not write its information to binary restart files, since it is stored in potential files. Thus, you need to re-specify the pair_style and pair_coeff commands in an input script that reads a restart file.

This pair style can only be used via the pair keyword of the run_style respa command. It does not support the inner, middle, outer keywords.


Restrictions

This pair style is part of the MANYBODY package. It is only enabled if LAMMPS was built with that package (which it is by default). See the Making LAMMPS section for more info.

This pair style requires the newton setting to be “on” for pair interactions.

The Stillinger-Weber potential files provided with LAMMPS (see the -potentials directory) are parameterized for metal units. +potentials directory) are parameterized for metal units. You can use the SW potential with any LAMMPS units, but you would need to create your own SW potential file with coefficients listed in the appropriate units if your simulation doesn’t use “metal” units.

\ No newline at end of file diff --git a/doc/html/pair_tersoff.html b/doc/html/pair_tersoff.html index 605b2e750..233cdcc65 100644 --- a/doc/html/pair_tersoff.html +++ b/doc/html/pair_tersoff.html @@ -1,414 +1,414 @@ pair_style tersoff command — LAMMPS documentation

pair_style tersoff command

pair_style tersoff/table command

pair_style tersoff/cuda

pair_style tersoff/gpu

pair_style tersoff/intel

pair_style tersoff/kk

pair_style tersoff/omp

pair_style tersoff/table/omp command

Syntax

pair_style style
 

style = tersoff or tersoff/table or tersoff/cuda or tersoff/gpu or tersoff/omp or tersoff/table/omp

Examples

pair_style tersoff
 pair_coeff * * Si.tersoff Si
 pair_coeff * * SiC.tersoff Si C Si
 
pair_style tersoff/table
 pair_coeff * * SiCGe.tersoff Si(D)
 

Description

The tersoff style computes a 3-body Tersoff potential (Tersoff_1) for the energy E of a system of atoms as

_images/pair_tersoff_1.jpg

where f_R is a two-body term and f_A includes three-body interactions. The summations in the formula are over all neighbors J and K of atom I within a cutoff distance = R + D.

The tersoff/table style uses tabulated forms for the two-body, environment and angular functions. Linear interpolation is performed between adjacent table entries. The table length is chosen to be accurate within 10^-6 with respect to the tersoff style energy. The tersoff/table should give better performance in terms of speed.

Only a single pair_coeff command is used with the tersoff style which specifies a Tersoff potential file with parameters for all needed elements. These are mapped to LAMMPS atom types by specifying N additional arguments after the filename in the pair_coeff command, where N is the number of LAMMPS atom types:

  • filename
  • N element names = mapping of Tersoff elements to atom types

See the pair_coeff doc page for alternate ways to specify the path for the potential file.

As an example, imagine the SiC.tersoff file has Tersoff values for Si and C. If your LAMMPS simulation has 4 atoms types and you want the 1st 3 to be Si, and the 4th to be C, you would use the following pair_coeff command:

pair_coeff * * SiC.tersoff Si Si Si C
 

The 1st 2 arguments must be * * so as to span all LAMMPS atom types. The first three Si arguments map LAMMPS atom types 1,2,3 to the Si element in the Tersoff file. The final C argument maps LAMMPS atom type 4 to the C element in the Tersoff file. If a mapping value is specified as NULL, the mapping is not performed. This can be used when a tersoff potential is used as part of the hybrid pair style. The NULL values are placeholders for atom types that will be used with other potentials.

Tersoff files in the potentials directory of the LAMMPS distribution have a ”.tersoff” suffix. Lines that are not blank or comments (starting with #) define parameters for a triplet of elements. The parameters in a single entry correspond to coefficients in the formula above:

  • element 1 (the center atom in a 3-body interaction)
  • element 2 (the atom bonded to the center atom)
  • element 3 (the atom influencing the 1-2 bond in a bond-order sense)
  • m
  • gamma
  • lambda3 (1/distance units)
  • c
  • d
  • costheta0 (can be a value < -1 or > 1)
  • n
  • beta
  • lambda2 (1/distance units)
  • B (energy units)
  • R (distance units)
  • D (distance units)
  • lambda1 (1/distance units)
  • A (energy units)

The n, beta, lambda2, B, lambda1, and A parameters are only used for two-body interactions. The m, gamma, lambda3, c, d, and costheta0 parameters are only used for three-body interactions. The R and D parameters are used for both two-body and three-body interactions. The non-annotated parameters are unitless. The value of m must be 3 or 1.

The Tersoff potential file must contain entries for all the elements listed in the pair_coeff command. It can also contain entries for additional elements not being used in a particular simulation; LAMMPS ignores those entries.

For a single-element simulation, only a single entry is required (e.g. SiSiSi). For a two-element simulation, the file must contain 8 entries (for SiSiSi, SiSiC, SiCSi, SiCC, CSiSi, CSiC, CCSi, CCC), that specify Tersoff parameters for all permutations of the two elements interacting in three-body configurations. Thus for 3 elements, 27 entries would be required, etc.

As annotated above, the first element in the entry is the center atom in a three-body interaction and it is bonded to the 2nd atom and the bond is influenced by the 3rd atom. Thus an entry for SiCC means Si bonded to a C with another C atom influencing the bond. Thus three-body parameters for SiCSi and SiSiC entries will not, in general, be the same. The parameters used for the two-body interaction come from the entry where the 2nd element is repeated. Thus the two-body parameters for Si interacting with C, comes from the SiCC entry.

The parameters used for a particular three-body interaction come from the entry with the corresponding three elements. The parameters used only for two-body interactions (n, beta, lambda2, B, lambda1, and A) in entries whose 2nd and 3rd element are different (e.g. SiCSi) are not used for anything and can be set to 0.0 if desired.

Note that the twobody parameters in entries such as SiCC and CSiSi are often the same, due to the common use of symmetric mixing rules, but this is not always the case. For example, the beta and n parameters in Tersoff_2 (Tersoff_2) are not symmetric.

We chose the above form so as to enable users to define all commonly used variants of the Tersoff potential. In particular, our form reduces to the original Tersoff form when m = 3 and gamma = 1, while it reduces to the form of Albe et al. when beta = 1 and m = 1. Note that in the current Tersoff implementation in LAMMPS, m must be specified as either 3 or 1. Tersoff used a slightly different but equivalent form for alloys, which we will refer to as Tersoff_2 potential (Tersoff_2). The tersoff/table style implements Tersoff_2 parameterization only.

LAMMPS parameter values for Tersoff_2 can be obtained as follows: gamma_ijk = omega_ik, lambda3 = 0 and the value of m has no effect. The parameters for species i and j can be calculated using the Tersoff_2 mixing rules:

_images/pair_tersoff_2.jpg

Tersoff_2 parameters R and S must be converted to the LAMMPS parameters R and D (R is different in both forms), using the following relations: R=(R’+S’)/2 and D=(S’-R’)/2, where the primes indicate the Tersoff_2 parameters.

In the potentials directory, the file SiCGe.tersoff provides the LAMMPS parameters for Tersoff’s various versions of Si, as well as his alloy parameters for Si, C, and Ge. This file can be used for pure Si, (three different versions), pure C, pure Ge, binary SiC, and binary SiGe. LAMMPS will generate an error if this file is used with any combination involving C and Ge, since there are no entries for the GeC interactions (Tersoff did not publish parameters for this cross-interaction.) Tersoff files are also provided for the SiC alloy (SiC.tersoff) and the GaN (GaN.tersoff) alloys.

Many thanks to Rutuparna Narulkar, David Farrell, and Xiaowang Zhou for helping clarify how Tersoff parameters for alloys have been defined in various papers.


Styles with a cuda, gpu, intel, kk, omp, or opt suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available hardware, as discussed in Section_accelerate of the manual. The accelerated styles take the same arguments and should produce the same results, except for round-off and precision issues.

These accelerated styles are part of the USER-CUDA, GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if LAMMPS was built with those packages. See the Making LAMMPS section for more info.

You can specify the accelerated styles explicitly in your input script by including their suffix, or you can use the -suffix command-line switch when you invoke LAMMPS, or you can use the suffix command in your input script.

See Section_accelerate of the manual for more instructions on how to use the accelerated styles effectively.


Mixing, shift, table, tail correction, restart, rRESPA info:

For atom type pairs I,J and I != J, where types I and J correspond to two different element types, mixing is performed by LAMMPS as described above from values in the potential file.

This pair style does not support the pair_modify shift, table, and tail options.

This pair style does not write its information to binary restart files, since it is stored in potential files. Thus, you need to re-specify the pair_style and pair_coeff commands in an input script that reads a restart file.

This pair style can only be used via the pair keyword of the run_style respa command. It does not support the inner, middle, outer keywords.


Restrictions

This pair style is part of the MANYBODY package. It is only enabled if LAMMPS was built with that package (which it is by default). See the Making LAMMPS section for more info.

This pair style requires the newton setting to be “on” for pair interactions.

The Tersoff potential files provided with LAMMPS (see the potentials -directory) are parameterized for metal units. You can +directory) are parameterized for metal units. You can use the Tersoff potential with any LAMMPS units, but you would need to create your own Tersoff potential file with coefficients listed in the appropriate units if your simulation doesn’t use “metal” units.

\ No newline at end of file diff --git a/doc/html/pair_tersoff_mod.html b/doc/html/pair_tersoff_mod.html index 06d492dfb..856bfc916 100644 --- a/doc/html/pair_tersoff_mod.html +++ b/doc/html/pair_tersoff_mod.html @@ -1,351 +1,351 @@ pair_style tersoff/mod command — LAMMPS documentation

pair_style tersoff/mod command

pair_style tersoff/mod/gpu command

pair_style tersoff/mod/kk command

pair_style tersoff/mod/omp command

Syntax

pair_style tersoff/mod
 

Examples

pair_style tersoff/mod
 pair_coeff * * Si.tersoff.mod Si Si
 

Description

The tersoff/mod style computes a bond-order type interatomic potential (Kumagai) based on a 3-body Tersoff potential (Tersoff_1), (Tersoff_2) with modified cutoff function and angular-dependent term, giving the energy E of a system of atoms as

_images/pair_tersoff_mod.jpg

where f_R is a two-body term and f_A includes three-body interactions. The summations in the formula are over all neighbors J and K of atom I within a cutoff distance = R + D.

The modified cutoff function f_C proposed by (Murty) and having a continuous second-order differential is employed. The angular-dependent term g(theta) was modified to increase the flexibility of the potential.

The tersoff/mod potential is fitted to both the elastic constants and melting point by employing the modified Tersoff potential function form in which the angular-dependent term is improved. The model performs extremely well in describing the crystalline, liquid, and amorphous phases (Schelling).

Only a single pair_coeff command is used with the tersoff/mod style which specifies a Tersoff/MOD potential file with parameters for all needed elements. These are mapped to LAMMPS atom types by specifying N additional arguments after the filename in the pair_coeff command, where N is the number of LAMMPS atom types:

  • filename
  • N element names = mapping of Tersoff/MOD elements to atom types

As an example, imagine the Si.tersoff_mod file has Tersoff values for Si. If your LAMMPS simulation has 3 Si atoms types, you would use the following pair_coeff command:

pair_coeff * * Si.tersoff_mod Si Si Si
 

The 1st 2 arguments must be * * so as to span all LAMMPS atom types. The three Si arguments map LAMMPS atom types 1,2,3 to the Si element in the Tersoff/MOD file. If a mapping value is specified as NULL, the mapping is not performed. This can be used when a tersoff/mod potential is used as part of the hybrid pair style. The NULL values are placeholders for atom types that will be used with other potentials.

Tersoff/MOD file in the potentials directory of the LAMMPS distribution have a ”.tersoff.mod” suffix. Lines that are not blank or comments (starting with #) define parameters for a triplet of elements. The parameters in a single entry correspond to coefficients in the formula above:

  • element 1 (the center atom in a 3-body interaction)
  • element 2 (the atom bonded to the center atom)
  • element 3 (the atom influencing the 1-2 bond in a bond-order sense)
  • beta
  • alpha
  • h
  • eta
  • beta_ters = 1 (dummy parameter)
  • lambda2 (1/distance units)
  • B (energy units)
  • R (distance units)
  • D (distance units)
  • lambda1 (1/distance units)
  • A (energy units)
  • n
  • c1
  • c2
  • c3
  • c4
  • c5

The n, eta, lambda2, B, lambda1, and A parameters are only used for two-body interactions. The beta, alpha, c1, c2, c3, c4, c5, h parameters are only used for three-body interactions. The R and D parameters are used for both two-body and three-body interactions. The non-annotated parameters are unitless.

The Tersoff/MOD potential file must contain entries for all the elements listed in the pair_coeff command. It can also contain entries for additional elements not being used in a particular simulation; LAMMPS ignores those entries.

For a single-element simulation, only a single entry is required (e.g. SiSiSi). As annotated above, the first element in the entry is the center atom in a three-body interaction and it is bonded to the 2nd atom and the bond is influenced by the 3rd atom. Thus an entry for SiSiSi means Si bonded to a Si with another Si atom influencing the bond.


Styles with a cuda, gpu, intel, kk, omp, or opt suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available hardware, as discussed in Section_accelerate of the manual. The accelerated styles take the same arguments and should produce the same results, except for round-off and precision issues.

These accelerated styles are part of the USER-CUDA, GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if LAMMPS was built with those packages. See the Making LAMMPS section for more info.

You can specify the accelerated styles explicitly in your input script by including their suffix, or you can use the -suffix command-line switch when you invoke LAMMPS, or you can use the suffix command in your input script.

See Section_accelerate of the manual for more instructions on how to use the accelerated styles effectively.


Mixing, shift, table, tail correction, restart, rRESPA info:

This pair style does not support the pair_modify shift, table, and tail options.

This pair style does not write its information to binary restart files, since it is stored in potential files. Thus, you need to re-specify the pair_style and pair_coeff commands in an input script that reads a restart file.

This pair style can only be used via the pair keyword of the run_style respa command. It does not support the inner, middle, outer keywords.


Restrictions

This pair style is part of the MANYBODY package. It is only enabled if LAMMPS was built with that package (which it is by default). See the Making LAMMPS section for more info.

This pair style requires the newton setting to be “on” for pair interactions.

The Tersoff/MOD potential files provided with LAMMPS (see the potentials -directory) are parameterized for metal units. You can +directory) are parameterized for metal units. You can use the Tersoff/MOD potential with any LAMMPS units, but you would need to create your own Tersoff/MOD potential file with coefficients listed in the appropriate units if your simulation doesn’t use “metal” units.

\ No newline at end of file diff --git a/doc/html/pair_tersoff_zbl.html b/doc/html/pair_tersoff_zbl.html index 209ee5c84..ff73e73a2 100644 --- a/doc/html/pair_tersoff_zbl.html +++ b/doc/html/pair_tersoff_zbl.html @@ -1,417 +1,417 @@ pair_style tersoff/zbl command — LAMMPS documentation

pair_style tersoff/zbl command

pair_style tersoff/zbl/gpu command

pair_style tersoff/zbl/kk command

pair_style tersoff/zbl/omp command

Syntax

pair_style tersoff/zbl
 

Examples

pair_style tersoff/zbl
 pair_coeff * * SiC.tersoff.zbl Si C Si
 

Description

The tersoff/zbl style computes a 3-body Tersoff potential (Tersoff_1) with a close-separation pairwise modification based on a Coulomb potential and the Ziegler-Biersack-Littmark universal screening function (ZBL), giving the energy E of a system of atoms as

_images/pair_tersoff_zbl.jpg

The f_F term is a fermi-like function used to smoothly connect the ZBL repulsive potential with the Tersoff potential. There are 2 parameters used to adjust it: A_F and r_C. A_F controls how “sharp” the transition is between the two, and r_C is essentially the cutoff for the ZBL potential.

For the ZBL portion, there are two terms. The first is the Coulomb repulsive term, with Z1, Z2 as the number of protons in each nucleus, e as the electron charge (1 for metal and real units) and epsilon0 as the permittivity of vacuum. The second part is the ZBL universal screening function, with a0 being the Bohr radius (typically 0.529 Angstroms), and the remainder of the coefficients provided by the original paper. This screening function should be applicable to most systems. However, it is only accurate for small separations (i.e. less than 1 Angstrom).

For the Tersoff portion, f_R is a two-body term and f_A includes three-body interactions. The summations in the formula are over all neighbors J and K of atom I within a cutoff distance = R + D.

Only a single pair_coeff command is used with the tersoff/zbl style which specifies a Tersoff/ZBL potential file with parameters for all needed elements. These are mapped to LAMMPS atom types by specifying N additional arguments after the filename in the pair_coeff command, where N is the number of LAMMPS atom types:

  • filename
  • N element names = mapping of Tersoff/ZBL elements to atom types

See the pair_coeff doc page for alternate ways to specify the path for the potential file.

As an example, imagine the SiC.tersoff.zbl file has Tersoff/ZBL values for Si and C. If your LAMMPS simulation has 4 atoms types and you want the 1st 3 to be Si, and the 4th to be C, you would use the following pair_coeff command:

pair_coeff * * SiC.tersoff Si Si Si C
 

The 1st 2 arguments must be * * so as to span all LAMMPS atom types. The first three Si arguments map LAMMPS atom types 1,2,3 to the Si element in the Tersoff/ZBL file. The final C argument maps LAMMPS atom type 4 to the C element in the Tersoff/ZBL file. If a mapping value is specified as NULL, the mapping is not performed. This can be used when a tersoff/zbl potential is used as part of the hybrid pair style. The NULL values are placeholders for atom types that will be used with other potentials.

Tersoff/ZBL files in the potentials directory of the LAMMPS distribution have a ”.tersoff.zbl” suffix. Lines that are not blank or comments (starting with #) define parameters for a triplet of elements. The parameters in a single entry correspond to coefficients in the formula above:

  • element 1 (the center atom in a 3-body interaction)
  • element 2 (the atom bonded to the center atom)
  • element 3 (the atom influencing the 1-2 bond in a bond-order sense)
  • m
  • gamma
  • lambda3 (1/distance units)
  • c
  • d
  • costheta0 (can be a value < -1 or > 1)
  • n
  • beta
  • lambda2 (1/distance units)
  • B (energy units)
  • R (distance units)
  • D (distance units)
  • lambda1 (1/distance units)
  • A (energy units)
  • Z_i
  • Z_j
  • ZBLcut (distance units)
  • ZBLexpscale (1/distance units)

The n, beta, lambda2, B, lambda1, and A parameters are only used for two-body interactions. The m, gamma, lambda3, c, d, and costheta0 parameters are only used for three-body interactions. The R and D parameters are used for both two-body and three-body interactions. The Z_i,Z_j, ZBLcut, ZBLexpscale parameters are used in the ZBL repulsive portion of the potential and in the Fermi-like function. The non-annotated parameters are unitless. The value of m must be 3 or 1.

The Tersoff/ZBL potential file must contain entries for all the elements listed in the pair_coeff command. It can also contain entries for additional elements not being used in a particular simulation; LAMMPS ignores those entries.

For a single-element simulation, only a single entry is required (e.g. SiSiSi). For a two-element simulation, the file must contain 8 entries (for SiSiSi, SiSiC, SiCSi, SiCC, CSiSi, CSiC, CCSi, CCC), that specify Tersoff parameters for all permutations of the two elements interacting in three-body configurations. Thus for 3 elements, 27 entries would be required, etc.

As annotated above, the first element in the entry is the center atom in a three-body interaction and it is bonded to the 2nd atom and the bond is influenced by the 3rd atom. Thus an entry for SiCC means Si bonded to a C with another C atom influencing the bond. Thus three-body parameters for SiCSi and SiSiC entries will not, in general, be the same. The parameters used for the two-body interaction come from the entry where the 2nd element is repeated. Thus the two-body parameters for Si interacting with C, comes from the SiCC entry.

The parameters used for a particular three-body interaction come from the entry with the corresponding three elements. The parameters used only for two-body interactions (n, beta, lambda2, B, lambda1, and A) in entries whose 2nd and 3rd element are different (e.g. SiCSi) are not used for anything and can be set to 0.0 if desired.

Note that the twobody parameters in entries such as SiCC and CSiSi are often the same, due to the common use of symmetric mixing rules, but this is not always the case. For example, the beta and n parameters in Tersoff_2 (Tersoff_2) are not symmetric.

We chose the above form so as to enable users to define all commonly used variants of the Tersoff portion of the potential. In particular, our form reduces to the original Tersoff form when m = 3 and gamma = 1, while it reduces to the form of Albe et al. when beta = 1 and m = 1. Note that in the current Tersoff implementation in LAMMPS, m must be specified as either 3 or 1. Tersoff used a slightly different but equivalent form for alloys, which we will refer to as Tersoff_2 potential (Tersoff_2).

LAMMPS parameter values for Tersoff_2 can be obtained as follows: gamma = omega_ijk, lambda3 = 0 and the value of m has no effect. The parameters for species i and j can be calculated using the Tersoff_2 mixing rules:

_images/pair_tersoff_2.jpg

Tersoff_2 parameters R and S must be converted to the LAMMPS parameters R and D (R is different in both forms), using the following relations: R=(R’+S’)/2 and D=(S’-R’)/2, where the primes indicate the Tersoff_2 parameters.

In the potentials directory, the file SiCGe.tersoff provides the LAMMPS parameters for Tersoff’s various versions of Si, as well as his alloy parameters for Si, C, and Ge. This file can be used for pure Si, (three different versions), pure C, pure Ge, binary SiC, and binary SiGe. LAMMPS will generate an error if this file is used with any combination involving C and Ge, since there are no entries for the GeC interactions (Tersoff did not publish parameters for this cross-interaction.) Tersoff files are also provided for the SiC alloy (SiC.tersoff) and the GaN (GaN.tersoff) alloys.

Many thanks to Rutuparna Narulkar, David Farrell, and Xiaowang Zhou for helping clarify how Tersoff parameters for alloys have been defined in various papers. Also thanks to Ram Devanathan for providing the base ZBL implementation.


Styles with a cuda, gpu, intel, kk, omp, or opt suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available hardware, as discussed in Section_accelerate of the manual. The accelerated styles take the same arguments and should produce the same results, except for round-off and precision issues.

These accelerated styles are part of the USER-CUDA, GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if LAMMPS was built with those packages. See the Making LAMMPS section for more info.

You can specify the accelerated styles explicitly in your input script by including their suffix, or you can use the -suffix command-line switch when you invoke LAMMPS, or you can use the suffix command in your input script.

See Section_accelerate of the manual for more instructions on how to use the accelerated styles effectively.


Mixing, shift, table, tail correction, restart, rRESPA info:

For atom type pairs I,J and I != J, where types I and J correspond to two different element types, mixing is performed by LAMMPS as described above from values in the potential file.

This pair style does not support the pair_modify shift, table, and tail options.

This pair style does not write its information to binary restart files, since it is stored in potential files. Thus, you need to re-specify the pair_style and pair_coeff commands in an input script that reads a restart file.

This pair style can only be used via the pair keyword of the run_style respa command. It does not support the inner, middle, outer keywords.


Restrictions

This pair style is part of the MANYBODY package. It is only enabled if LAMMPS was built with that package (which it is by default). See the Making LAMMPS section for more info.

This pair style requires the newton setting to be “on” for pair interactions.

The Tersoff/ZBL potential files provided with LAMMPS (see the -potentials directory) are parameterized for metal units. +potentials directory) are parameterized for metal units. You can use the Tersoff potential with any LAMMPS units, but you would need to create your own Tersoff potential file with coefficients listed in the appropriate units if your simulation doesn’t use “metal” units.

\ No newline at end of file diff --git a/doc/html/pair_vashishta.html b/doc/html/pair_vashishta.html index 85c2d4d87..d51c88db9 100644 --- a/doc/html/pair_vashishta.html +++ b/doc/html/pair_vashishta.html @@ -1,384 +1,384 @@ pair_style vashishta command — LAMMPS documentation

pair_style vashishta command

pair_style vashishta/omp command

Syntax

pair_style vashishta
 

Examples

pair_style vashishta
 pair_coeff * * SiC.vashishta Si C
 

Description

The vashishta style computes the combined 2-body and 3-body family of potentials developed in the group of Vashishta and co-workers. By combining repulsive, screened Coulombic, screened charge-dipole, and dispersion interactions with a bond-angle energy based on the Stillinger-Weber potential, this potential has been used to describe a variety of inorganic compounds, including SiO2 Vashishta1990, SiC Vashishta2007, and InP Branicio2009.

The potential for the energy U of a system of atoms is

_images/pair_vashishta.jpg

where we follow the notation used in Branicio2009. U2 is a two-body term and U3 is a three-body term. The summation over two-body terms is over all neighbors J within a cutoff distance = rc. The twobody terms are shifted and tilted by a linear function so that the energy and force are both zero at rc. The summation over three-body terms is over all neighbors J and K within a cut-off distance = r0, where the exponential screening function becomes zero.

Only a single pair_coeff command is used with the vashishta style which specifies a Vashishta potential file with parameters for all needed elements. These are mapped to LAMMPS atom types by specifying N additional arguments after the filename in the pair_coeff command, where N is the number of LAMMPS atom types:

  • filename
  • N element names = mapping of Vashishta elements to atom types

See the pair_coeff doc page for alternate ways to specify the path for the potential file.

As an example, imagine a file SiC.vashishta has parameters for Si and C. If your LAMMPS simulation has 4 atoms types and you want the 1st 3 to be Si, and the 4th to be C, you would use the following pair_coeff command:

pair_coeff * * SiC.vashishta Si Si Si C
 

The 1st 2 arguments must be * * so as to span all LAMMPS atom types. The first three Si arguments map LAMMPS atom types 1,2,3 to the Si element in the file. The final C argument maps LAMMPS atom type 4 to the C element in the file. If a mapping value is specified as NULL, the mapping is not performed. This can be used when a vashishta potential is used as part of the hybrid pair style. The NULL values are placeholders for atom types that will be used with other potentials.

Vashishta files in the potentials directory of the LAMMPS distribution have a ”.vashishta” suffix. Lines that are not blank or comments (starting with #) define parameters for a triplet of elements. The parameters in a single entry correspond to the two-body and three-body coefficients in the formulae above:

  • element 1 (the center atom in a 3-body interaction)
  • element 2
  • element 3
  • H (energy units)
  • eta
  • Zi (electron charge units)
  • Zj (electron charge units)
  • lambda1 (distance units)
  • D (energy units)
  • lambda4 (distance units)
  • W (energy units)
  • rc (distance units)
  • B (energy units)
  • gamma
  • r0 (distance units)
  • C
  • costheta0

The non-annotated parameters are unitless. The Vashishta potential file must contain entries for all the elements listed in the pair_coeff command. It can also contain entries for additional elements not being used in a particular simulation; LAMMPS ignores those entries. For a single-element simulation, only a single entry is required (e.g. SiSiSi). For a two-element simulation, the file must contain 8 entries (for SiSiSi, SiSiC, SiCSi, SiCC, CSiSi, CSiC, CCSi, CCC), that specify parameters for all permutations of the two elements interacting in three-body configurations. Thus for 3 elements, 27 entries would be required, etc.

Depending on the particular version of the Vashishta potential, the values of these parameters may be keyed to the identities of zero, one, two, or three elements. In order to make the input file format unambiguous, general, and simple to code, LAMMPS uses a slightly confusing method for specifying parameters. All parameters are divided into two classes: two-body and three-body. Two-body and three-body parameters are handled differently, as described below. The two-body parameters are H, eta, lambda1, D, lambda4, W, rc, gamma, and r0. They appear in the above formulae with two subscripts. The parameters Zi and Zj are also classified as two-body parameters, even though they only have 1 subscript. The three-body parameters are B, C, costheta0. They appear in the above formulae with three subscripts. Two-body and three-body parameters are handled differently, as described below.

The first element in each entry is the center atom in a three-body interaction, while the second and third elements are two neighbor atoms. Three-body parameters for a central atom I and two neighbors J and K are taken from the IJK entry. Note that even though three-body parameters do not depend on the order of J and K, LAMMPS stores three-body parameters for both IJK and IKJ. The user must ensure that these values are equal. Two-body parameters for an atom I interacting with atom J are taken from the IJJ entry, where the 2nd and 3rd elements are the same. Thus the two-body parameters for Si interacting with C come from the SiCC entry. Note that even though two-body parameters (except possibly gamma and r0 in U3) do not depend on the order of the two elements, LAMMPS will get the Si-C value from the SiCC entry and the C-Si value from the CSiSi entry. The user must ensure that these values are equal. Two-body parameters appearing in entries where the 2nd and 3rd elements are different are stored but never used. It is good practice to enter zero for these values. Note that the three-body function U3 above contains the two-body parameters gamma and r0. So U3 for a central C atom bonded to an Si atom and a second C atom will take three-body parameters from the CSiC entry, but two-body parameters from the CCC and CSiSi entries.


Styles with a cuda, gpu, intel, kk, omp, or opt suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available hardware, as discussed in Section_accelerate of the manual. The accelerated styles take the same arguments and should produce the same results, except for round-off and precision issues.

These accelerated styles are part of the USER-CUDA, GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if LAMMPS was built with those packages. See the Making LAMMPS section for more info.

You can specify the accelerated styles explicitly in your input script by including their suffix, or you can use the -suffix command-line switch when you invoke LAMMPS, or you can use the suffix command in your input script.

See Section_accelerate of the manual for more instructions on how to use the accelerated styles effectively.


Mixing, shift, table, tail correction, restart, rRESPA info:

For atom type pairs I,J and I != J, where types I and J correspond to two different element types, mixing is performed by LAMMPS as described above from values in the potential file.

This pair style does not support the pair_modify shift, table, and tail options.

This pair style does not write its information to binary restart files, since it is stored in potential files. Thus, you need to re-specify the pair_style and pair_coeff commands in an input script that reads a restart file.

This pair style can only be used via the pair keyword of the run_style respa command. It does not support the inner, middle, outer keywords.


Restrictions

This pair style is part of the MANYBODY package. It is only enabled if LAMMPS was built with that package (which it is by default). See the Making LAMMPS section for more info.

This pair style requires the newton setting to be “on” for pair interactions.

The Vashishta potential files provided with LAMMPS (see the -potentials directory) are parameterized for metal units. +potentials directory) are parameterized for metal units. You can use the Vashishta potential with any LAMMPS units, but you would need to create your own Vashishta potential file with coefficients listed in the appropriate units if your simulation doesn’t use “metal” units.

\ No newline at end of file diff --git a/doc/html/pair_zbl.html b/doc/html/pair_zbl.html index 771b02483..c89c72b59 100644 --- a/doc/html/pair_zbl.html +++ b/doc/html/pair_zbl.html @@ -1,313 +1,313 @@ pair_style zbl command — LAMMPS documentation

pair_style zbl command

pair_style zbl/gpu command

pair_style zbl/omp command

Syntax

pair_style zbl inner outer
 
  • inner = distance where switching function begins
  • outer = global cutoff for ZBL interaction

Examples

pair_style zbl 3.0 4.0
 pair_coeff * * 73.0 73.0
 pair_coeff 1 1 14.0 14.0
 

Description

Style zbl computes the Ziegler-Biersack-Littmark (ZBL) screened nuclear repulsion for describing high-energy collisions between atoms. (Ziegler). It includes an additional switching function that ramps the energy, force, and curvature smoothly to zero between an inner and outer cutoff. The potential energy due to a pair of atoms at a distance r_ij is given by:

_images/pair_zbl.jpg

where e is the electron charge, epsilon_0 is the electrical permittivity of vacuum, and Z_i and Z_j are the nuclear charges of the two atoms. The switching function S(r) is identical to that used by pair_style lj/gromacs. Here, the inner and outer cutoff are the same for all pairs of atom types.

The following coefficients must be defined for each pair of atom types via the pair_coeff command as in the examples above, or in the LAMMPS data file.

  • Z_i (atomic number for first atom type, e.g. 13.0 for aluminum)
  • Z_j (ditto for second atom type)

The values of Z_i and Z_j are normally equal to the atomic numbers of the two atom types. Thus, the user may optionally specify only the coefficients for each I==I pair, and rely on the obvious mixing rule for cross interactions (see below). Note that when I==I it is required that Z_i == Z_j. When used with hybrid/overlay and pairs are assigned to more than one sub-style, the mixing rule is not used and each pair of types interacting with the ZBL sub-style must be included in a pair_coeff command.

Note

The numerical values of the exponential decay constants in the screening function depend on the unit of distance. In the above equation they are given for units of angstroms. LAMMPS will automatically convert these values to the distance unit of the -specified LAMMPS units setting. The values of Z should +specified LAMMPS units setting. The values of Z should always be given as multiples of a proton’s charge, e.g. 29.0 for copper.


Styles with a cuda, gpu, intel, kk, omp, or opt suffix are functionally the same as the corresponding style without the suffix. They have been optimized to run faster, depending on your available hardware, as discussed in Section_accelerate of the manual. The accelerated styles take the same arguments and should produce the same results, except for round-off and precision issues.

These accelerated styles are part of the USER-CUDA, GPU, USER-INTEL, KOKKOS, USER-OMP and OPT packages, respectively. They are only enabled if LAMMPS was built with those packages. See the Making LAMMPS section for more info.

You can specify the accelerated styles explicitly in your input script by including their suffix, or you can use the -suffix command-line switch when you invoke LAMMPS, or you can use the suffix command in your input script.

See Section_accelerate of the manual for more instructions on how to use the accelerated styles effectively.


Mixing, shift, table, tail correction, restart, rRESPA info:

For atom type pairs I,J and I != J, the Z_i and Z_j coefficients can be mixed by taking Z_i and Z_j from the values specified for I == I and J == J cases. When used with hybrid/overlay and pairs are assigned to more than one sub-style, the mixing rule is not used and each pair of types interacting with the ZBL sub-style must be included in a pair_coeff command. The pair_modify mix option has no effect on the mixing behavior

The ZBL pair style does not support the pair_modify shift option, since the ZBL interaction is already smoothed to 0.0 at the cutoff.

The pair_modify table option is not relevant for this pair style.

This pair style does not support the pair_modify tail option for adding long-range tail corrections to energy and pressure, since there are no corrections for a potential that goes to 0.0 at the cutoff.

This pair style does not write information to binary restart files, so pair_style and pair_coeff commands must be specified in an input script that reads a restart file.

This pair style can only be used via the pair keyword of the run_style respa command. It does not support the inner, middle, outer keywords.


Restrictions

none
\ No newline at end of file