Fleur equation of states (eos) workflow
Current version: 0.3.5
Class:
FleurEosWorkChain
String to pass to the
WorkflowFactory()
:fleur.eos
Workflow type: Technical
Aim: Vary the cell volume, to fit an equation of states, (Bulk modulus, …)
Contents
Import Example:
from aiida_fleur.workflows.eos import fleur_eos_wc
#or
WorkflowFactory('fleur.eos')
Description/Purpose
Calculates equation of states for a given crystal structure.
First, an input structure is scaled and a list of scaled structures is constructed.
Then, total energies of all the scaled structures are calculated via
FleurScfWorkChain
(SCF). Finally,
resulting total energies are fitted via the Birch–Murnaghan
equation of state and the cell volume corresponding to the lowest energy is evaluated.
Other fit options are also available.
Input nodes
The FleurEosWorkChain
employs
exposed feature of the AiiDA-core, thus inputs for the
SCF sub-workchain should be passed in the namespace called
scf
(see example of usage). Please note that the structure input node
is excluded from the scf namespace since the EOS workchain should process input structure before
performing energy calculations.
name |
type |
description |
required |
---|---|---|---|
scf |
namespace |
inputs for nested SCF WorkChain. structure input is excluded |
no |
wf_parameters |
Settings of the workchain |
no |
|
structure |
input structure |
no |
Returns nodes
name |
type |
comment |
---|---|---|
output_eos_wc_para |
results of the workchain |
|
output_eos_wc_structure |
Crystal structure with the volume of the lowest total energy |
Layout
Database Node graph
Plot_fleur visualization
Example usage
# -*- coding: utf-8 -*- from aiida_fleur.workflows.ssdisp import FleurSSDispWorkChain from aiida.orm import Dict, load_node fleur_code = load_node(FLEUR_PK) inpgen_code = load_node(INPGEN_PK) structure = load_node(STRUCTURE_PK) wf_para = Dict(dict={'points': 9, 'step': 0.002, 'guess': 1.00 }) wf_para_scf = Dict(dict={'fleur_runmax': 2, 'itmax_per_run': 120, 'density_converged': 0.2, 'mode': 'density' }) options_scf = Dict(dict={'resources': {'num_machines': 1, 'num_mpiprocs_per_machine': 8}, 'queue_name': 'devel', 'custom_scheduler_commands': '', 'max_wallclock_seconds': 60*60}) inputs = {'scf': { 'wf_parameters': wf_para_scf, 'calc_parameters': parameters, 'options': options_scf, 'inpgen': inpgen_code, 'fleur': fleur_code }, 'wf_parameters': wf_para, 'structure': structure } SCF_workchain = submit(FleurSSDispWorkChain, fleur=fleur_code, inpgen=inpgen_code, calc_parameters=calc_parameters, structure=structure, wf_parameters=wf_para, options=options)
Output node example
# -*- coding: utf-8 -*- { 'bulk_deriv': -612.513884563477, 'bulk_modulus': 29201.4098068761, 'bulk_modulus_units': 'GPa', 'calculations': [], 'distance_charge': [ 4.4141e-06, 4.8132e-06, 1.02898e-05, 1.85615e-05 ], 'distance_charge_units': 'me/bohr^3', 'errors': [], 'guess': 1.0, 'info': [ 'Consider refining your basis set.' ], 'initial_structure': 'd6985712-7eca-4730-991f-1d924cbd1062', 'natoms': 1, 'nsteps': 4, 'residuals': [], 'scaling': [ 0.998, 1.0, 1.002, 1.004 ], 'scaling_gs': 1.00286268683922, 'scf_wfs': [], 'stepsize': 0.002, 'structures': [ 'f7fddbb5-51af-4dac-a4ba-021d1bf5795b', '28e9ed28-837c-447e-aae7-371b70454dc4', 'fc340850-1a54-4be4-abed-576621b3015f', '77fd128b-e88c-4d7d-9aea-d909166926cb' ], 'successful': true, 'total_energy': [ -439902.565469453, -439902.560450163, -439902.564547518, -439902.563105211 ], 'total_energy_units': 'Htr', 'volume_gs': 16.2724654374658, 'volume_units': 'A^3', 'volumes': [ 16.1935634057491, 16.2260154366224, 16.2584674674955, 16.290919498369 ], 'warnings': [ 'Abnormality in Total energy list detected. Check entr(ies) [1].' ], 'workflow_name': 'fleur_eos_wc', 'workflow_version': '0.3.3' }
Error handling
Total energy check:
The workflow quickly checks the behavior of the total energy for outliers. Which might occur, because the chosen FLAPW parameters might not be good for all volumes. Also local Orbital setup and so on might matter.
Not enough points for fit
Some calculations did not converge
Volume ground state does not lie in the calculated interval, interval refinement
Exit codes
A list of implemented exit codes:
Code |
Meaning |
---|---|
230 |
Invalid workchain parameters |