LATTICE CONSTRAINTS: Difference between revisions
No edit summary |
No edit summary |
||
(One intermediate revision by the same user not shown) | |||
Line 50: | Line 50: | ||
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. | 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. . | For example when setting {{TAGBL|LATTICE_CONSTRAINTS}} = .FALSE. .TRUE. .TRUE. the used stress tensor will look like | ||
<math> | <math> | ||
Line 62: | Line 62: | ||
and therefore the first row and the first column of the lattice <math>\mathbf{A}</math> will not change. | 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. . | Another example would be to set {{TAGBL|LATTICE_CONSTRAINTS}} = .FALSE. .TRUE. .FALSE. resulting in the following | ||
stress tensor | stress tensor | ||
Line 76: | Line 76: | ||
So only the <math>yy</math>/<math>a_{22}</math> entry of the lattice <math>\mathbf{A}</math> will change. | 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| 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. | {{NB|mind| {{TAG|LATTICE_CONSTRAINTS}} in combination with {{TAG|IBRION}}{{=}}1,2 is available from VASP 6.4.3.}} | ||
== Related tags and articles == | == Related tags and articles == | ||
{{TAG|IBRION}}, {{TAG|MDALGO}}, [[:Category:Interface pinning|Interface pinning]] | {{TAG|IBRION}}, {{TAG|MDALGO}}, [[:Category:Interface pinning|Interface pinning]] |
Latest revision as of 10:34, 5 February 2024
LATTICE_CONSTRAINTS = [logical][logical][logical]
Description: Sets three boolean to selectively allow changes in the lattice vectors.
The lattice in VASP is defined by 3 lattice vectors , , , which are defined in the POSCAR file. The lattice can be represented by the following matrix:
The tag LATTICE_CONSTRAINTS can be used to constrain certain entries of this matrix.
Orthorhombic case
For orthorhombic boxes the lattice will be a diagonal matrix of the 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.
This way, 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. |
Related tags and articles
IBRION, MDALGO, Interface pinning