Fleur dos/band workflows¶
Warning
These workchains do not work with AiiDA 1.1.0 version yet. They need to be updated.
These are two seperate workflows which are pretty similar so we treat them here together
Class:
fleur_dos_wc
andFleurBandWorkChain
String to pass to the
WorkflowFactory()
:fleur.dos
,fleur.band
Workflow type: Workflow (lv 1)
Aim: Calculate a density of states. Calculate a Band structure.
Compuational demand: 1
Fleur Job calculation
Database footprint: Outputnode with information, full provenance,
~ 10
nodesFile repository footprint: The
JobCalculation
run, plus the DOS or Bandstructure filesAdditional Info: Use alone.
Contents
Import Example:
from aiida_fleur.workflows.dos import fleur_dos_wc
#or
WorkflowFactory('fleur.dos')
from aiida_fleur.workflows.band import FleurBandWorkChain
#or
WorkflowFactory('fleur.band')
Description/Purpose¶
DOS:
Calculates an Density of states (DOS) ontop of a given Fleur calculation (converged or not).
Band:
Calculates an electronic band structure ontop of a given Fleur calculation (converged or not).
In the future we plan to add the posibility to converge a calculation before, and choose the kpaths automatic. This version should be able start simply from a crystal structure.
Each of these workflows prepares/chances the Fleur input and manages one Fleur calculation.
Input nodes:¶
fleur
(Code
): Fleur code using thefleur.fleur
plugin
wf_parameters
(Dict
, optional): Some settings of the workflow behavior (e.g. number of kpoints, path, energy sampling and smearing, …)
fleurinp
(FleurinpData
, path 2): Fleur input data object representing the fleur input files.
remote_data
(RemoteData
, optional): The remote folder of the (converged) calculation whose output density is used as input for the DOS, or band structure run.
options
(Dict
, optional): All options available in AiiDA, i.e resource specification, queue name, extras scheduler commands, …
settings
(Dict
, optional): special settings for Fleur calculations, will be given like it is through to calculationss.
Plot_fleur visualization¶
Single node
from aiida_fleur.tools.plot import plot_fleur # DOS calc plot_fleur(76867)![]()
For the bandstructure visualization it depends on the File produced. Old bandstructure file:¶
![]()
Bandstructure
`band_dos.hdf`
file with l-like charge information: Band resolved bandstructure and fat-bands for the different channels. Spin and combinded DOS plus band structure visualizations are in progress…¶Multi node just does a bunch of single plots for now.
from aiida_fleur.tools.plot import plot_fleur plot_fleur(dos_pk_list)
Example usage¶
# -*- coding: utf-8 -*- ############################################################################### # Copyright (c), Forschungszentrum Jülich GmbH, IAS-1/PGI-1, Germany. # # All rights reserved. # # This file is part of the AiiDA-FLEUR package. # # # # The code is hosted on GitHub at https://github.com/broeder-j/aiida-fleur # # For further information on the license, see the LICENSE.txt file # # For further information please visit http://www.flapw.de or # # http://aiida-fleur.readthedocs.io/en/develop/ # ############################################################################### """ Here we run the fleur_dos_wc for a Fleur calculation which has been converged before Layout: 1. Database env load, Import, create base classes 2. Creation of input nodes 3. Lauch workchain """ ####################### # 1. Load the database environment. Imports and base class creation from __future__ import absolute_import from aiida import load_dbenv, is_dbenv_loaded if not is_dbenv_loaded(): load_dbenv() from aiida.plugins import DataFactory from aiida.orm import Code, load_node from aiida.engine.launch import submit, run from aiida_fleur.workflows.dos import fleur_dos_wc ParameterData = DataFactory('parameter') StructureData = DataFactory('structure') ####################### # 2. Creation/loding of input nodes # Load the codes, thwy have to be setup in your database. fleur_label = 'fleur@localhost' fleur_code = Code.get_from_string(fleur_label) ### Create wf_parameters (optional) and options wf_para = Dict(dict={'fleur_runmax': 4, 'density_criterion': 0.000001, 'serial': False}) options = Dict(dict={'resources': {'num_machines': 1}, 'queue_name': '', 'max_wallclock_seconds': 60 * 60}) # load a fleurino data object from a scf_wc before ################################ # 3. submit the workchain with its inputs. inputs = {} inputs['wf_parameters'] = wf_para inputs['fleurinp'] = fleurinp inputs['fleur'] = fleur_code inputs['description'] = 'test fleur_dos_wc run on W' inputs['label'] = 'dos test ' inputs['options'] = options # submit workchain to the daemon # Noice that the nodes we created before are not yet stored in the database, # but AiiDA will do so automaticly when we launch the workchain. # To reuse nodes it might be a good idea, to save them before by hand and then load them res = submit(fleur_dos_wc, **inputs) # You can also run the workflow in the python interpreter as blocking #res = run(fleur_dos_wc, **inputs)
Error handling¶
Still has to be documented
Warning if parent calculation was not converged.