PLUGINS/OCCUPANCIES: Difference between revisions

From VASP Wiki
(Created page with "{{TAGDEF|PLUGINS/OCCUPANCIES| .True. {{!}} .False.|.False.}} Description: {{TAG|PLUGINS/OCCUPANCIES}} calls the Python plugin for the occupancies interface for each ionic relaxation step ---- When {{TAG|PLUGINS/OCCUPANCIES}}=.TRUE., VASP calls the <code>occupancies</code> 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 {{TAG|PLUGINS/LOCA...")
 
No edit summary
Line 9: Line 9:
==Expected inputs==
==Expected inputs==


The <code>structure</code> Python function expects the following inputs,
The <code>occupancies</code> Python function expects the following inputs,
     def occupancies(constants, additions):
     def occupancies(constants, additions):
where <code>constants</code> and <code>additions</code> and [https://docs.python.org/3/library/dataclasses.html Python dataclasses].
where <code>constants</code> and <code>additions</code> and [https://docs.python.org/3/library/dataclasses.html Python dataclasses].

Revision as of 12:20, 11 June 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.

   def structure(constants, additions)
       additions.NELECT += 1
Mind: You may not make modifications to quantities in constants