Relaxation Methods
An accurately strain-relaxed VASP calculation requires multiple restarts. The reasons for this lies in that the plane-wave basis is determined at the start of any particular VASP run. Hence, the basis is incorrect if the cell-shape changes during the run. The same can be said of real-space pseudo-potential grids when relaxing ionic positions.
This module contains methods to chain together VASP calculations until a fully relaxed structure is obtained.
Iterator over calls to VASP during relaxation.
This function is created automagically from pylada.vasp.relax.iter_relax. Please see that function for the description of its parameters.
Parameters: | comm (Communicator) – Additional keyword argument defining how call external programs. |
---|
Contains an Extract attribute which can be used to instantiate the relevant extraction object.
Iterator over calls to VASP during relaxation.
This generator iterates over successive VASP calculations until a fully relaxed structure is obtained. Its last calculation is static, ensuring that the final electronic structure accurately represents the relaxed structure.
The full process is to first relax the cell-shape (and internal degrees of freedom upon request) until convergence is achieved, as determined by the difference in total energies (see the keyword argument convergence) within the current VASP run. Subsequent runs keep the cell-shape constant while allowing ionic degrees of freedom to relax, until the same convergence criteria is achieved. Finally, a static calculation is performed.
It is possible to bypass cell-shape relaxations and perform only ionic-relaxations.
Parameters: |
|
---|---|
Returns: | At each step, yields an extraction object if the relevant VASP calculation already exists. Otherwise, it yields a ProgramProcess object detailing the call to the external VASP program. |
Contains an Extract attribute which can be used to instantiate the relevant extraction object.
Bases: pylada.vasp.functional.Vasp
Functional form of the pylada.vasp.relax.iter_relax method.
This class was automagically generated by pylada.tools.makeclass().
Holds parameters which are used only for the very first VASP calculation. It can be used to accelerate the first step of the relaxation if starting far from the optimum. Defaults to empty dictionary.
Maximum number of calls to VASP before aborting. Defaults to 10.
If True, intermediate steps are kept. If False, intermediate steps are erased.
If True, will not fail if convergence is not achieved. Just keeps going. Defaults to False.
Convergence criteria. If minrelsteps is positive, it is only checked after minrelsteps have been performed.
Fine tunes how convergence criteria is applied.
Iterator over calls to VASP during relaxation.
This function is created automagically from pylada.vasp.relax.iter_relax(). Please see that function for the description of its parameters.
Parameters: | comm (Communicator) – Additional keyword argument defining how call external programs. |
---|
Iterator over calls to VASP during relaxation.
This function is created automagically from iter_relax. Please see that function for the description of its parameters.
Class RelaxExtract. When called, it creates the appropriate relaxation object.
Performs epitaxial relaxation in given direction.
This function is created automagically from pylada.vasp.relax.iter_epitaxial. Please see that function for the description of its parameters.
Parameters: | comm (Communicator) – Additional keyword argument defining how call external programs. |
---|
Contains an Extract attribute which can be used to instantiate the relevant extraction object.
Performs epitaxial relaxation in given direction.
This generator iterates over successive VASP calculations until an epitaxially relaxed structure is obtained. The external (cell) coordinates of the structure can only relax in the growth/epitaxial direction. Internal coordinates (ions), however, are allowed to relax in whatever direction.
Since VASP does not intrinsically allow for such a relaxation, it is performed by chaining different vasp calculations together. The minimization procedure itself is the secant method, enhanced by the knowledge of the stress tensor. The last calculation is static, for maximum accuracy.
Parameters: |
|
---|---|
Returns: | At each step, yields an extraction object if the relevant VASP calculation already exists. Otherwise, it yields a ProgramProcess object detailing the call to the external VASP program. |
Contains an Extract attribute which can be used to instantiate the relevant extraction object.
Bases: pylada.vasp.functional.Vasp
Functional form of the pylada.vasp.relax.iter_epitaxial method.
This class was automagically generated by pylada.tools.makeclass().
Performs epitaxial relaxation in given direction.
This function is created automagically from pylada.vasp.relax.iter_epitaxial(). Please see that function for the description of its parameters.
Parameters: | comm (Communicator) – Additional keyword argument defining how call external programs. |
---|
Performs epitaxial relaxation in given direction.
This function is created automagically from iter_epitaxial. Please see that function for the description of its parameters.
Epitaxial direction. Defaults to [0, 0, 1].
Convergence criteria of the total energy.
Class RelaxExtract. When called, it creates the appropriate relaxation object.
Bases: pylada.vasp.extract.Extract
Extractor class for vasp relaxations.
Intermediate steps.
MassExtract instance which maps extraction objects for intermediate steps in the ‘relax_cellshape’ and ‘relax_ions’ subdirectories.