General design

All of the WorkChains have a similar interface and they share several common input nodes.


First, all of the workflows accept FLEUR and inpgen Code nodes as an input for Fleur and inpgen submission during the workchain.

There is always a wf_parameters: Dict node for controlling the workflow behaviour. It contains all the parameters related to physical aspects of the workchain and its content vary between different workchains.


inpxml_changes key of wf_parameters exists for all the workchains. This list can be used to apply any supported change to inp.xml that will be used in calculations. To add a required change, simply append a two-element tuple where the first element is the name of the registration method and the second is a dictionary of inputs for the registration method. For more information about possible registration methods and their inputs see FleurinpModifier. An example:

inpxml_changes = [('set_inpchanges', {'change_dict': {'l_noco': False}})]

The other common input is an options: Dict node where the technical parameters (AiiDA options) are specified i.e resources, queue name and so on.

Regarding an input crystal structure, it can be set in two ways in the most of the workflows:

  1. Provide a structure: StructureData node and an optional calc_parameters: Dict. It this case an inpgen code node is required. The workflow will call inpgen calculation and create a new FleurinpData that will be used in the workchain.
  2. Provide a fleurinp: FleurinpData node which contains a complete input for a FLEUR calculation.

Next, a remote_data: RemoteData can be optionally given to use the last charge density or other files from the previous calculation. For example, it is used when one wants to start a SCF calculation from a given charge density to speed up the calculation.


Most of the workchains return a workflow specific ParameterData (Dict) node named output_name_wc_para which contains the main results and some information about the workchain.

There are additional workflow specific input and output nodes, please read the documentation of a particular workchain that you are interested in.

Workchain classification


All of the workchains are divided into the groups. First, we separate technical and scientific workflows. This separation is purely subjective: technical workchains tend to be less complex and represent basic routine tasks that people usually encounter. Scientific workflows are less general and aimed at certain tasks.

There are the sub-group of the force theorem calculations and their self-consistent analogs in the scientific workchains group.


The plot_fleur function provides a quick visualization for every workflow node or node list. Inputs are uuid, pk, workchain nodes or ParameterData (workchain output) nodes.