AIIDA-FLEUR WorkChains — AiiDA-FLEUR 1.1.0 documentation

# AIIDA-FLEUR WorkChains

## General design

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

### Inputs

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.

Note

`inpxml_changes` key of `wf_parameters` exists for most of 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.

> 3. Provide a `remote_data`: `RemoteData` and the last charge density and `inp.xml` from the previous calculation will be used.

Input for the nested workchains has to be specified via a corresponding namespace. Please, refer to the documentation of a particular workchain to see the details.

### Outputs

Most of the workchains return a workflow specific ParameterData (`Dict`) node named `output_name_wc_para` or simple `out` 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.

Note

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.

### Basic (Technical) Workchains

- Fleur base restart workchain
  - Description/Purpose
  - `check_kpts()` method
  - Errors
- Fleur self-consistency field workflow
  - Description/Purpose
  - Input nodes
  - Returns nodes
  - Layout
  - Error handling
  - Plot_fleur visualization
  - Database Node graph
  - Example usage
- Fleur equation of states (eos) workflow
  - Description/Purpose
  - Input nodes
  - Returns nodes
  - Layout
  - Database Node graph
  - Plot_fleur visualization
  - Example usage
  - Output node example
  - Error handling
  - Exit codes
- Fleur structure optimization Base workchain
  - Description/Purpose
  - Error handling
  - Example usage
- Fleur structure optimization workchain
  - Description/Purpose
  - Input nodes
  - Output nodes
  - Layout
  - Output nodes
  - Error handling
  - Example usage
- Fleur dos/band workflows
  - Description/Purpose
  - Input nodes:
  - Returns nodes
  - Layout
  - Database Node graph
  - Plot_fleur visualization
  - Example usage
  - Output node example
  - Error handling

### More advanced (Scientific) Workchains

- Fleur initial core-level shifts workflow
  - Description/Purpose
  - Input nodes
  - Returns nodes
  - Layout
  - Database Node graph
  - Plot_fleur visualization
  - Example usage
  - Output node example
  - Error handling
- Fleur core-hole workflow
  - Description/Purpose
  - Input nodes
  - Returns nodes
  - Layout
  - Database Node graph
  - Plot_fleur visualization
  - Example usage
  - Output node example
  - Error handling
- Fleur Create Magnetic Film workchain
  - Description/Purpose
  - Input nodes
  - Output nodes
  - Supported input configurations
  - Error handling
  - Example usage

#### Magnetic workchains

##### Force-theorem subgroup

- Fleur Spin-Spiral Dispersion workchain
  - Description/Purpose
  - Input nodes
  - Output nodes
  - Supported input configurations
  - Error handling
  - Example usage
- Fleur Dzyaloshinskii–Moriya Interaction energy workchain
  - Description/Purpose
  - Input nodes
  - Output nodes
  - Supported input configurations
  - Error handling
  - Example usage
- Fleur Magnetic Anisotropy Energy workflow
  - Description/Purpose
  - Input nodes
  - Output nodes
  - Supported input configurations
  - Error handling
  - Example usage

##### Self-consistent sub-group

- Fleur Spin-Spiral Dispersion Converge workchain
  - Description/Purpose
  - Input nodes
  - Output nodes
  - Layout
  - Error handling
  - Example usage
- Fleur Magnetic Anisotropy Energy Converge workchain
  - Description/Purpose
  - Input nodes
  - Output nodes
  - Layout
  - Error handling
  - Example usage