FLEUR with AiiDA
This software contains a plugin that enables the usage of the all-electron
DFT FLEUR code with the AiiDA framework.
Developed at Forschungszentrum Jülich GmbH
Compatibility matrix
FLEUR Plugin | AiiDA CORE | Python | FLEUR/XML file version |
---|
v2.0.0 < v3.0.0 | | | /<=0.37 |
v1.2.0 < v2.0.0 | | | /<=0.35 |
v1.0.0 < v1.2.0 | | | /<=0.33 |
< v0.6.3 | | | /<=0.31 |
Documentation and User Support
Hosted at http://aiida-fleur.readthedocs.io/en/develop/index.html.
For other information see the AiiDA-core docs or http://www.flapw.de.
Users can post any questions in the Fleur user forum
For bugs, feature requests and further issues please use the issue tracker on github of the aiida-fleur repository.
License:
MIT license.
See the license file.
How to cite:
If you use this package please consider citing:
J. Broeder, D. Wortmann, and S. Blügel,
Using the AiiDA-FLEUR package for all-electron ab initio electronic structure
data generation and processing in materials science,
In Extreme Data Workshop 2018 Proceedings, 2019, vol 40, p 43-48
The plug-in and the workflows will only work with a Fleur version using xml files as I/O, i.e >v0.27.
Contents
- Introduction
- Installation Instructions
- Code Dependencies
- Further Information
Introduction
This is a python package (AiiDA plugin, workflows and utility)
allowing to use the FLEUR-code in the AiiDA Framework.
The FLEUR-code is an all-electron DFT code using the FLAPW method,
that is widely applied in the material science and physics community.
The plugin :
The Fleur plugin consists of:
1. A data-structure representing input files and called FleurinpData.
2. inpgen calculation
3. FLEUR calculation
4. Workchains
5. utility
Workchains in this package:
workflow entry point name | Description |
---|
fleur.scf | SCF-cycle of Fleur. Converge the charge density and the Total energy with multiple FLEUR runs |
fleur.eos | Calculate and Equation of States with FLEUR (currently cubic systems only) |
fleur.dos | Calculate a Density of States (DOS) with FLEUR |
fleur.band | Calculate a Band structure with FLEUR |
fleur.relax | Relaxation of the atomic positions of a crystal structure with FLEUR |
fleur.init_cls | Calculate initial corelevel shifts and formation energies with FLEUR |
fleur.corehole | Workflow for corehole calculations, calculation of Binding energies with FLEUR |
fleur.dmi | Calculates Dzyaloshinskii–Moriya Interaction energy dispersion of a spin spiral |
fleur.ssdisp | Calculates exchange interaction energy dispersion of a spin spiral |
fleur.mae | Calculates Magnetic Anisotropy Energy |
See the AiiDA documentation for general info about the AiiDA workflow system or how to write workflows.
Utility/tools:
filename | Description |
---|
Structure_util.py | Constains some methods to handle AiiDA structures (some of them might now be methods of the AiiDA structureData, if so use them from there!) |
merge_parameter.py | Methods to handle parameterData nodes, i.e merge them. Which is very useful for all-electron codes, because instead of pseudo potentialsfamilies you can create now families of parameter nodes for the periodic table. |
read_cif.py | This can be used as stand-alone to create StructureData nodes from .cif files from an directory tree. |
Utility and tools, which are independend of AiiDA are moved to the masci-tools (material science tools) repository,
which is a dependency of aiida-fleur.
Command line interface (CLI)
Besides the python API, aiida-fleur comes with a builtin CLI: aiida-fleur
.
This interface is built using the click library and supports tab-completion.
To enable tab-completion, add the following to your shell loading script, e.g. the .bashrc or virtual environment activate script:
eval "$(_AIIDA_FLEUR_COMPLETE=source aiida-fleur)"
the main subcommands include:
data: Commands to create and inspect data nodes
fleurinp Commands to handle `FleurinpData` nodes.
parameter Commands to create and inspect `Dict` nodes containing FLAPW parameters
structure Commands to create and inspect `StructureData` nodes.
launch: Commands to launch workflows and calcjobs of aiida-fleur
banddos Launch a banddos workchain
corehole Launch a corehole workchain
create_magnetic Launch a create_magnetic workchain
dmi Launch a dmi workchain
eos Launch a eos workchain
fleur Launch a base_fleur workchain.
init_cls Launch an init_cls workchain
inpgen Launch an inpgen calcjob on given input If no code is...
mae Launch a mae workchain
relax Launch a base relax workchain # TODO final scf input
scf Launch a scf workchain
ssdisp Launch a ssdisp workchain
plot: Invoke the plot_fleur command on given nodes
workflow: Commands to inspect aiida-fleur workchains and prepare inputs
for example to launch an scf workchain on a given structure execute:
$ aiida-fleur launch scf -i <inpgenpk> -f <fleurpk> -S <structurepk>
the command can also process structures in any format ase
can handle, this includes Cif
, xsf
and poscar
files. In such a case simply parse the path to the file:
$ aiida-fleur launch scf -i <inpgenpk> -f <fleurpk> -S ./structure/Cu.cif
Installation Instructions
From the aiida-fleur folder (after downloading the code, recommended) use:
$ pip install .
# or which is very useful to keep track of the changes (developers)
$ pip install -e .
To uninstall use:
$ pip uninstall aiida-fleur
Or install latest release version from pypi:
$ pip install aiida-fleur
Test Installation
To test rather the installation was successful use:
$ verdi plugins list aiida.calculations
...
* fleur.fleur
* fleur.inpgen
You should see 'fleur.*' in the list
The other entry points can be checked with the AiiDA Factories (Data, Workflow, Calculation, Parser).
(this is done in test_entry_points.py)
We suggest to run all the (unit)tests in the aiida-fleur/aiida_fleur/tests/ folder.
$ bash run_all_cov.sh
Code Dependencies
Requirements are listed in pyproject.toml
most important are:
- aiida_core >= 2.0
- lxml
- ase
- masci-tools
Mainly AiiDA:
- Download from www.aiida.net -> Download
- install and setup -> aiida's documentation
Easy plotting and other useful routines that do not depend on aiida_core are part of
the masci-tools (material science tools) repository.
For easy plotting we recommend using 'plot_methods' from masci-tools, which are also deployed by the 'plot_fleur(<node(s)>)' function.
Further Information
The plug-in source code documentation is here.
also some documentation of the plug-in, further things can be found at www.flapw.de.
Usage examples are shown in 'examples'.
Acknowledgements
Besides the Forschungszentrum Juelich, this work is supported by the European MaX Centre of Excellence 'Materials design at the Exascale' MaX funded by the Horizon 2020 EINFRA-5 program, Grant No. 676598 and under grant agreement No. 824143. This work is further supported by the Joint Lab Virtual Materials Design (JLVMD) of the Forschungszentrum Jülich.
For this work essential is AiiDA, which itself is supported by the MARVEL National Centre for Competency in Research funded by the Swiss National Science Foundation.