PLUGINS/OCCUPANCIES: Difference between revisions
| Line 26: | Line 26: | ||
==Modifying quantities== | ==Modifying quantities== | ||
Modify the quantities listed in additions by adding to them. | Modify the quantities listed in additions by adding to them. | ||
<syntaxhighlight lang="python" line> | |||
import numpy as np | |||
def structure(constants, additions) | |||
additions.NELECT += 1 | |||
</syntaxhighlight> | |||
{{NB| mind | You may not make modifications to quantities in <code>constants</code>}} | {{NB| mind | You may not make modifications to quantities in <code>constants</code>}} | ||
Revision as of 13:46, 16 October 2024
PLUGINS/OCCUPANCIES = .True. | .False.
Default: PLUGINS/OCCUPANCIES = .False.
Description: PLUGINS/OCCUPANCIES calls the Python plugin for the occupancies interface for each ionic relaxation step
When PLUGINS/OCCUPANCIES=.TRUE., VASP calls the occupancies Python function at the end of each ionic relaxation step.
The primary use-case of this tag to recompute the occupancies after performing modifications through other plugins such as PLUGINS/LOCAL_POTENTIAL. It also allows changing NELECT, EFERMI, NUPDOWN, ISMEAR, SIGMA, EMIN and EMAX at the end of each SCF step, to be reflected in the next step.
Expected inputs
The occupancies Python function expects the following inputs,
def occupancies(constants, additions):
where constants and additions and Python dataclasses.
The constants dataclass consists of the following inputs, listed here with their associated datatypes
NELECT: float EFERMI: float NUPDOWN: float ISMEAR: int SIGMA: float EMIN: float EMAX: float
The additions dataclass consists of the same quantities as the constants tag.
| Mind: Calling this interface implicitly triggers a recalculation of the occupancies |
Modifying quantities
Modify the quantities listed in additions by adding to them.
import numpy as np
def structure(constants, additions)
additions.NELECT += 1
Mind: You may not make modifications to quantities in constants
|