Fleur input generator plugin


The input generator plugin is capable of running the Fleur input generator (inpgen) with all its features, except crystal structure creation (we did not want to support that). To submit a calculation you need to specify a StructureData, the inpgen Code and a calc_parameters: Dict containing all other parameters that inpgen accepts as an input. As a result, an fleurinpData node will be created which is a database representation of inp.xml and all other input files for FLEUR.

Supported code versions

  • It is tested from Fleur v0.27 (MAX release 2.0) onwards, but it should work for all inpgen versions.

Sketch of nodes



  • code: Code - the Code node of an inpgen executable
  • structure: StructureData - a crystal structure


The plugin will run inpgen always with relative coordinates (crystal coordinates) in the 3D case. In the 2D case in rel, rel, abs. Currently for films no crystal rotations are be performed, therefore the coordinates need to be given as Fleur needs them. (x, y in plane, z out of plane)

  • calc_parameters: Dict, optional - Input parameters of inpgen, as a nested dictionary, mapping the fortran list input of inpgen. Examples:

    Cd = Dict(dict={
                      'atom':{'element' : 'Cd', 'rmt' : 2.5, 'jri' : 981, 'lmax' : 12, 'lnonsph' : 6, 'lo' : '4d', 'econfig' : '[Ar] 4s2 3d10 4p6 | 4d10 5s2'},
                      'comp': {'kmax': 4.7, 'gmaxxc' : 12.0, 'gmax' : 14.0},
                      'kpt': {'div1' : 17, 'div2': 17, 'div3' : 17, 'tkb' : 0.0005}})
    # Magnetism and spin orbit coupling
    Cr = Dict(dict={
                      'atom1':{'element' : 'Cr', 'id': '24.0', 'rmt' : 2.1, 'jri' : 981, 'lmax' : 12, 'lnonsph' : 6, 'lo' : '3s 3p', 'bmu':1.5},
                      'atom2':{'element' : 'Cr', 'id': '24.1', 'rmt' : 2.1, 'jri' : 981, 'lmax' : 12, 'lnonsph' : 6, 'lo' : '3s 3p', 'bmu':1.4},
                      'comp': {'kmax': 5.2, 'gmaxxc' : 12.5, 'gmax' : 15.0},
                      'kpt': {'div1' : 24, 'div2': 24, 'div3' : 24, 'tkb' : 0.0005},
                      'soc' : {'theta' : 0.0, 'phi' : 0.0}


The ‘&atom’ namelist can occur several times in inpgen input (each key can occur only ones in a python dictionary). The plugin will reconize any namelist which contains the chars ‘atom’.


Namelists in the inpgen input without key=value (like &soc) have to be provided with the attributename from the inp.xml.

See the Fleur documentation for the full list of variables and their meaning. Some keywords don’t have to be specified and are already taken care of by AiiDA (are related with the structure or with path to files):


&input film

so far not allowed/supported:

  • settings: class Dict, optional - An optional dictionary that allows the user to specify if additional files shall be received and other advanced non default stuff for inpgen.


There are several output nodes that can be created by the inpgen plugin, according to the calculation details. All output nodes can be accessed via calculation.outputs.

  • fleurinp: FleurinpData - Data structure which represents the inp.xml file and provides useful methods. For more information see fleurinpData. (accessed by calculation.outputs.fleurinp)
  • output_parameters: Dict - Should contain information about the inpgen run. Example:
    • errors (possible error messages generated in the run)
    • warnings (possible warning messages generated in the run).
    • recommendations (other hints)
    • output information (some information parsed from the out file)

Additional advanced features

While the input link with name calc_parameters is used for the content of the namelists and parameters of the inpgen input file, additional parameters for changing the plugin behavior can be specified in the ‘settings’: class Dict input.

Below we summarise some of the options that you can specify and their effect. In each case, after having defined the content of settings_dict, you can use it as input of a calculation calc by doing:


Retrieving more files

The inpgen plugin retrieves per default the files : inp.xml, out, struct.xsf.

If you know that your inpgen calculation is producing additional files that you want to retrieve (and preserve in the AiiDA repository in the long term), you can add those files as a list as follows (here in the case of a file named testfile.txt):

settings_dict = {
  'additional_retrieve_list': ['testfile.txt'],

Retrieving less files

If you know that you do not want to retrieve certain files (and preserve in the AiiDA repository in the long term) you can add those files as a list as follows (here in the case of a file named testfile.txt):

settings_dict = {
  'remove_from_retrieve_list': ['testfile.txt'],