FLEUR¶
Introduction¶
FLEUR is a densityfunctional theory code which uses the full potential linearized augmented planewave (FLAPW) method. FLEUR can be applied to any element in the periodic table, and the code is well suited especially to surfaces and magnetic materials.
Environment variables¶
In order to use FLEUR through ASE, two environment variables have to
be set. FLEUR_INPGEN
should point to the simple input
generator of FLEUR, and FLEUR
to the actual executable. Note
that FLEUR has different executables e.g. for cases with and without
inversion symmetry, so the environment variable has to be set accordingly.
As an example, the variables could be set like:
$ export FLEUR_INPGEN=$HOME/fleur/v25/inpgen.x
$ export FLEUR=$HOME/fleur/v25/fleur.x
or:
$ export FLEUR="mpirun np 32 $HOME/fleur/v25/fleur.x"
for parallel calculations.
FLEUR Calculator¶
Currently, limited number of FLEUR parameters can be set via the ASE interface Below follows a list of supported parameters
keyword  type  default value  description 

xc 
str 
'LDA' 
XCfunctional. Must be one of ‘LDA’, ‘PBE’, ‘RPBE’ 
kpts 
seq  \(\Gamma\)point  kpoint sampling 
convergence 
dict  {'energy':
0.0001} 
Convergence criteria (meV) 
width 
float 
Width of Fermi smearing (eV)  
kmax 
float 
Planewave cutoff (a.u.)  
mixer 
dict  Mixing parameters ‘imix’, ‘alpha’, and ‘spinf’  
maxiter 
int 
40  Maximum number of SCF steps 
maxrelax 
int 
20  Maximum number of relaxation steps 
workdir 
str 
Current dir  Working directory for the calculation 
seq: A sequence of three int
’s.
dict: A dictionary
Spinpolarized calculation¶
If the atoms object has nonzero magnetic moments, a spinpolarized calculation will be performed by default.
Utility functions¶
As only a subset of FLEUR parameters can currently be specified
through ASE interface, the interface defines some utility functions
for cases where manual editing of the FLEUR input file inp
is
necessary.

FLEUR.
write_inp
(atoms)[source]¶ Write the inp input file of FLEUR.
First, the information from Atoms is written to the simple input file and the actual input file inp is then generated with the FLEUR input generator. The location of input generator is specified in the environment variable FLEUR_INPGEN.
Finally, the inp file is modified according to the arguments of the FLEUR calculator object.

FLEUR.
calculate
(atoms)[source]¶ Converge a FLEUR calculation to selfconsistency.
Input files should be generated before calling this function FLEUR performs always fixed number of SCF steps. This function reduces the number of iterations gradually, however, a minimum of five SCF steps is always performed.
Examples¶
Lattice constant of fcc Ni
from numpy import linspace
from ase.calculators.fleur import FLEUR
from ase.build import bulk
from ase.io.trajectory import Trajectory
atoms = bulk('Ni', a=3.52)
calc = FLEUR(xc='PBE', kmax=3.6, kpts=(10, 10, 10), workdir='lat_const')
atoms.set_calculator(calc)
traj = Trajectory('Ni.traj','w', atoms)
cell0 = atoms.get_cell()
for s in linspace(0.95, 1.05, 7):
cell = cell0 * s
atoms.set_cell((cell))
ene = atoms.get_potential_energy()
traj.write()
See the equation of states tutorial for analysis of the results.