Fleur core-hole workflow¶
- Class name, import from:
from aiida_fleur.workflows.corehole import fleur_corehole_wc #or WorkflowFactory('fleur.corehole')
Description/Purpose¶
The core-hole workflow can be deployed to calculate absolute core-level binding energies.
Such core-hole calculations are performed through a super-cell setup. The workflow allows for arbitrary corehole charges and of valence and charged type core-holes. From a computational cost perspective it may be cheaper to calculate all relative initial-state shifts of a structure and then launch one core-hole calculation on the structure to get an absolute reference energy instead of performing expensive core-hole calculations for all atom-types in the structure. The core-hole workflow implements the usual FLEUR workflow interface with a workflow control parameter node.
Layout¶
Input nodes¶
name |
type |
description |
required |
|---|---|---|---|
inpgen |
Inpgen code |
yes |
|
fleur |
Fleur code |
yes |
|
wf_parameters |
Settings of the workchain |
no |
|
fleurinp |
no |
||
structure |
Crystal structure |
no |
|
calc_parameters |
FLAPW parameters for given structure |
no |
|
options |
AiiDA options (computational resources) |
no |
- More details:
fleur(aiida.orm.Code): Fleur code using thefleur.fleurplugininpgen(aiida.orm.Code): Inpgen code using thefleur.inpgenpluginwf_parameters(Dict, optional): Some settings of the workflow behaviorstructure(StructureData, path 1): Crystal structure data node.calc_parameters(Dict, optional): Longer description of the workflowfleurinp(FleurinpData, path 2): Label of the workflow
Workchain parameters and its defaults¶
wf_parameters¶
wf_parameters: Dict - Settings of the workflow behavior. All possible
keys and their defaults are listed below:
# -*- coding: utf-8 -*-
'method' : 'valence', # what method to use, default for valence to highest open shell
'hole_charge' : 1.0, # what is the charge of the corehole? 0<1.0
'atoms' : ['all'], # coreholes on what atoms, positions or index for list,
# or element ['Be', (0.0, 0.5, 0.334), 3]
'corelevel': ['all'], # coreholes on which corelevels [ 'Be1s', 'W4f', 'Oall'...]
'supercell_size' : [2,1,1],# size of the supercell [nx,ny,nz]
'para_group' : None, # use parameter nodes from a parameter group
'relax' : False, # relax the unit cell first?
'relax_mode': 'Fleur', # what releaxation do you want
'relax_para' : 'default', # parameter dict for the relaxation
'scf_para' : 'default', # wf parameter dict for the scfs
'same_para' : True, # enforce the same atom parameter/cutoffs on the corehole calc and ref
'serial' : True, # run fleur in serial, or parallel?
'magnetic' : True # jspins=2, makes a difference for coreholes
Returns nodes¶
output_corehole_wc_para(Dict): Information of workchain results
More details:
output_corehole_wc_para:Dict- Main results of the workchain. Contains Binding energies, band gaps, core-levels, atom-type information, errors, warnings, other information. An example:# -*- coding: utf-8 -*- {"atomtypes": [[ {"atomic_number": 4, "coreconfig": "(1s1/2)", "element": "Be", "natoms": 1, "species": "Be_corehole1", "stateOccupation": [ {"(1s1/2)": ["1.00000000", ".50000000"]}, {"(2p1/2)": [".50000000", ".00000000"]}], "valenceconfig": "(2s1/2) (2p1/2)"}, {"atomic_number": 4, "coreconfig": "[He]", "element": "Be", "natoms": 1, "species": "Be-2", "stateOccupation": [{"(2p1/2)": [".00000000", ".00000000"]}], "valenceconfig": "(2s1/2) (2p1/2)"}, {"atomic_number": 4, "coreconfig": "[He]", "element": "Be", "natoms": 1, "species": "Be-2", "stateOccupation": [{"(2p1/2)": [".00000000", ".00000000"]}], "valenceconfig": "(2s1/2) (2p1/2)"}, {"atomic_number": 4, "coreconfig": "[He]", "element": "Be", "natoms": 1, "species": "Be-2", "stateOccupation": [{"(2p1/2)": [".00000000", ".00000000"]}], "valenceconfig": "(2s1/2) (2p1/2)"}]], "bandgap": [0.0004425914], "bandgap_units":"eV", "binding_energy": [53.57027767044], "corehole_type": "valence", "binding_energy_units": "eV", "binding_energy_convention": "negativ", "coreholes_calculated": "Be1s", "coreholes_calculated_details": "", "coresetup": [], "errors": [], "fermi_energy": [0.3138075709], "fermi_energy_unit": "eV", "reference_bandgaps": [0.0225936434], "reference_coresetup": [], "successful": true, "total_energy_all": [-1554.08485250996], "total_energy_all_units": "eV", "total_energy_ref": [-1607.6551301804], "total_energy_ref_units": "eV", "warnings": [], "hints": [], "weighted_binding_energy": [107.14055534088], "weighted_binding_energy_units": "eV", "workflow_name": "fleur_corehole_wc", "workflow_version": "0.3.2" }
Database Node graph¶
Plot_fleur visualization¶
Currently there is no visualization directly implemented for plot fleur. Through there in masci-tools there are methods to visualize spectra and binding energies
Example usage¶
# -*- coding: utf-8 -*- from aiida.orm import load_node, Dict from aiida.engine import submit from aiida.plugins import WorkflowFactory fleur_corehole_wc = WorkflowFactory('fleur.corehole') struc = load_node(STRUCTURE_PK) flapw_para = load_node(PARAMETERS_PK) fleur_code = load_node(FLEUR_PK) inpgen_code = load_node(INPGEN_PK) options = Dict(dict={'resources': {'num_machines': 2, 'num_mpiprocs_per_machine': 24}, 'queue_name': '', 'custom_scheduler_commands': '', 'max_wallclock_seconds': 60*60}) wf_para_corehole = Dict(dict={u'atoms': [u'Be'], #[u'all'], u'supercell_size': [2, 2, 2], u'corelevel': ['1s'], #[u'all'], u'hole_charge': 1.0, u'magnetic': True, u'method': u'valence', u'serial': False} # launch workflow dos = submit(fleur_corehole_wc, wf_parameters=wf_para_corehole, structure=struc, calc_parameters=flapw_para, options=options, fleur=fleur, inpgen=inpgen, label="test core hole wc", description="fleur_corehole test")
Error handling¶
Still has to be documented
