LATTICE CONSTRAINTS: Difference between revisions

From VASP Wiki
No edit summary
No edit summary
 
(27 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{DISPLAYTITLE:LATTICE_CONSTRAINTS}}
{{DISPLAYTITLE:LATTICE_CONSTRAINTS}}{{TAGDEF|LATTICE_CONSTRAINTS|[logical][logical][logical]}}


{{TAGDEF|LATTICE_CONSTRAINTS|[logical][logical][logical]}}
Description: Sets three boolean to selectively allow changes in the lattice vectors.
----
The lattice vectors <math>\mathbf{a}_{1}</math>, <math>\mathbf{a}_{2}</math>, <math>\mathbf{a}_{3}</math>
defined in the {{FILE|POSCAR}} file can be represented by following matrix:
 
<math>
  \mathbf{A} =
  \begin{bmatrix}
    a_{11} & a_{12} & a_{13} \\
    a_{21} & a_{22} & a_{23} \\
    a_{31} & a_{32} & a_{33}
  \end{bmatrix}.
</math>
 
{{TAG|LATTICE_CONSTRAINTS}} is used to constrain certain entries of this matrix during an MD run.
==Orthorhombic case==
For orthorhombic unit cells <math>\mathbf{A}</math> is of diagonal form:


Description: The tag {{TAG|LATTICE_CONSTRAINTS}} determines whether the lattice dynamics are released ({{TAG|LATTICE_CONSTRAINTS}}=''.TRUE.'') in the given directions in molecular-dynamics calculations ({{TAG|IBRION}}=0).
<math>
----
  \mathbf{A} =
This tag requires three boolean values for the <math>a</math>, <math>b</math> and <math>c</math> direction of the lattice constants, respectively. By setting ''.TRUE.'' the lattice constant in the respective direction is allowed to change.
  \begin{bmatrix}
    a_{11} & 0      & 0 \\
      0    & a_{22} & 0 \\
      0    & 0      & a_{33}
  \end{bmatrix},
</math>


We recommend to use this tag for (orthorombic) liquids in the isobaric-isothermal (NpT) ensemble in the following way:
Therefore by setting one of the entries of {{TAG|LATTICE_CONSTRAINTS}} to FALSE the lattice parameter in this direction will not be allowed to change.                                                   
For [[MD|MD simulations]] ({{TAG|IBRION}}=0), we recommend using {{TAG|LATTICE_CONSTRAINTS}} for (orthorhombic) liquids in the isobaric-isothermal ([[NpT ensemble|NpT]]) ensemble in the following way:
  {{TAGBL|LATTICE_CONSTRAINTS}} = .FALSE. .FALSE. .TRUE.
  {{TAGBL|LATTICE_CONSTRAINTS}} = .FALSE. .FALSE. .TRUE.


This way the first two lattice constants are not allowed to change. The third lattice constant needs to be free to change to allow volume changes for the barostat (the system is then like a piston). The constraints are neccessary for liquids in NpT simulations, because if all lattice degrees of freedom are allowed to relax, irreversible deformations of the cell are very likely to happen.
Here, the first two lattice constants are not allowed to change. The third lattice constant needs to be free to allow volume changes for the barostat. The system is then like a piston. The constraints are necessary for liquids in [[NpT ensemble|NpT]] simulations because if all lattice degrees of freedom are allowed to relax, irreversible deformations of the cell are very likely to happen. This can lead to undesirable results like a very flat supercell, which cannot be used to obtain valid MD trajectories.
 
For [[Ionic minimization|structure relaxation]] ({{TAG|IBRION}}=1,2), {{TAG|LATTICE_CONSTRAINTS}} is useful to relax the lattice constants of 2D materials. In case of a slab in the <math>\mathbf{a}_1</math>-<math>\mathbf{a}_2</math> plane, add vacuum padding along <math>\mathbf{a}_3</math> and set
{{TAGBL|LATTICE_CONSTRAINTS}} = .TRUE. .TRUE. .FALSE.
 
==Non-orthorhombic case==
For non-orthorhombic boxes {{TAG|LATTICE_CONSTRAINTS}} is more complicated to use. The tag will set certain rows and columns of the stress tensor
 
<math>
  \mathbf{\sigma} =
  \begin{bmatrix}
    xx & xy & xz \\
    yx & yy & yz \\
    zx & zy & zz
  \end{bmatrix},
</math>
 
to zero. By setting certain entries of the stress tensor to zero the corresponding entries of the lattice <math>\mathbf{A}</math> will not be updated.
For example when setting {{TAGBL|LATTICE_CONSTRAINTS}} = .FALSE. .TRUE. .TRUE. the used stress tensor will look like
 
<math>
  \mathbf{\sigma} =
  \begin{bmatrix}
    0 & 0 & 0 \\
    0 & yy & yz \\
    0 & zy & zz
  \end{bmatrix},
</math>
 
and therefore the first row and the first column of the lattice <math>\mathbf{A}</math> will not change.
Another example would be to set {{TAGBL|LATTICE_CONSTRAINTS}} = .FALSE. .TRUE. .FALSE. resulting in the following
stress tensor
 
<math>
  \mathbf{\sigma} =
  \begin{bmatrix}
    0 & 0  & 0 \\
    0 & yy & 0 \\
    0 & 0  & 0
  \end{bmatrix}
</math>


{{NB|warning|This tag is only available for molecular dynamics calculations.}}
So only the <math>yy</math>/<math>a_{22}</math> entry of the lattice <math>\mathbf{A}</math> will change.
{{NB|mind| Note that for non-orthorhombic boxes the angles between the lattice vectors <math>\mathbf{a}_{1}</math>, <math>\mathbf{a}_{2}</math>, <math>\mathbf{a}_{3}</math> will not be conserved.}}
{{NB|mind| {{TAG|LATTICE_CONSTRAINTS}} in combination with {{TAG|IBRION}}{{=}}1,2 is available from VASP 6.4.3.}}
{{NB|warning| Be aware of a bug in versions < 6.5.0 as described in following forum post[https://www.vasp.at/forum/viewtopic.php?p{{=}}29882#p29882].}}


== Related tags and articles ==
== Related tags and articles ==
{{TAG|IBRION}}, {{TAG|MDALGO}}, {{TAG|Interface pinning}}
{{TAG|IBRION}}, {{TAG|MDALGO}}, [[:Category:Interface pinning|Interface pinning]]


{{sc|LATTICE_CONSTRAINTS|Examples|Examples that use this tag}}
{{sc|LATTICE_CONSTRAINTS|Examples|Examples that use this tag}}
----
----


[[Category:INCAR tag]][[Category:Molecular Dynamics]]
[[Category:INCAR tag]][[Category:Molecular dynamics]][[Category:Symmetry]]

Latest revision as of 13:18, 9 December 2024

LATTICE_CONSTRAINTS = [logical][logical][logical] 

Description: Sets three boolean to selectively allow changes in the lattice vectors.


The lattice vectors , , defined in the POSCAR file can be represented by following matrix:

LATTICE_CONSTRAINTS is used to constrain certain entries of this matrix during an MD run.

Orthorhombic case

For orthorhombic unit cells is of diagonal form:

Therefore by setting one of the entries of LATTICE_CONSTRAINTS to FALSE the lattice parameter in this direction will not be allowed to change. For MD simulations (IBRION=0), we recommend using LATTICE_CONSTRAINTS for (orthorhombic) liquids in the isobaric-isothermal (NpT) ensemble in the following way:

LATTICE_CONSTRAINTS = .FALSE. .FALSE. .TRUE.

Here, the first two lattice constants are not allowed to change. The third lattice constant needs to be free to allow volume changes for the barostat. The system is then like a piston. The constraints are necessary for liquids in NpT simulations because if all lattice degrees of freedom are allowed to relax, irreversible deformations of the cell are very likely to happen. This can lead to undesirable results like a very flat supercell, which cannot be used to obtain valid MD trajectories.

For structure relaxation (IBRION=1,2), LATTICE_CONSTRAINTS is useful to relax the lattice constants of 2D materials. In case of a slab in the - plane, add vacuum padding along and set

LATTICE_CONSTRAINTS = .TRUE. .TRUE. .FALSE.

Non-orthorhombic case

For non-orthorhombic boxes LATTICE_CONSTRAINTS is more complicated to use. The tag will set certain rows and columns of the stress tensor

to zero. By setting certain entries of the stress tensor to zero the corresponding entries of the lattice will not be updated. For example when setting LATTICE_CONSTRAINTS = .FALSE. .TRUE. .TRUE. the used stress tensor will look like

and therefore the first row and the first column of the lattice will not change. Another example would be to set LATTICE_CONSTRAINTS = .FALSE. .TRUE. .FALSE. resulting in the following stress tensor

So only the / entry of the lattice will change.

Mind: Note that for non-orthorhombic boxes the angles between the lattice vectors , , will not be conserved.
Mind: LATTICE_CONSTRAINTS in combination with IBRION=1,2 is available from VASP 6.4.3.
Warning: Be aware of a bug in versions < 6.5.0 as described in following forum post[1].

Related tags and articles

IBRION, MDALGO, Interface pinning

Examples that use this tag