Newer Older
Welcome to the source code of FLEUR
Ingo Meyer's avatar
Ingo Meyer committed

3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
1. Short Overview of the code
2. Installation

1. Overview of the code

The source of FLEUR is organized in several 
subdirectories. Some of them collect code 
specific for particular features, others code
relevant for crutial steps in the code or simply
code that is usually executed together.
Here a short description of the directories:

main: contains the main-program and several core subroutines
init: stuff for the initialization (called from fleur_init in main)
vgen: potential generation (called from vgen in main)
eigen: setup of the eigenproblem
diagonalization: various methods to diagonalize the Hamiltonian
cdn: general code for the generation of charge
cdn_mt: charge generation in MT-spheres
force: code related to the evaluation of forces
mix: charge/potential mixing routines
ldau: routines needed in case of LDA+U calculations
inpgen: code for the input generator (seperate executable inpgen)
fermi: determination of the fermi-level
eigen_secvar: second variational solution of the Hamiltonian
eigen_soc: Spin-orbit related code
core: Core states
dos: Code for Density of states, bandstructures
orbdep: Code for quantities depending on orbitals
optional: code that is used in special cases like inital charge generation
wannier: wannier related code
xc-pot: various exchange-correlation potential routines
mpi: code for parallel execution

io: subroutines doing IO
juDFT: timing, error handling, etc
math: code providing math functionality
include: c-type include files

global: code used everywhere (here you find types.F90 with the data-types)

cmake: definitions used by cmake (see Installation)

49 50 51 52
If you modify FLEUR please do so in the develop branch by running
git checkout -t origin/develop
after cloning the git repository.

53 54 55 56 57 58
2. Installation

For the compilation of FLEUR you will need:

- Fortran compiler (should support Fortran2008)
60 61 62 63 64 65 66 67 68
- Compatible C compiler for the XML-IO
- cmake for controlling the make-process
- Libraries:
  * MPI for parallelization
  * SCALAPACK or ELPA or ELEMENTAL if you want to use parallel diagonalization
    	      (without you can only exploit k-point parallelism)
  * HDF5 for parallel IO (if you have lots of memory, you might not need to do IO :-)

Daniel Wortmann's avatar
Daniel Wortmann committed
69 70 71
FLEUR now comes with a configuration script. This skript will
create a build sub-directory in the main FLEUR directory (where this file resides) and
then use cmake to generate a makefile. You should use it like 

Daniel Wortmann's avatar
Daniel Wortmann committed

Daniel Wortmann's avatar
Daniel Wortmann committed
75 76
where CONFIGURATION refers to a predefined maschine setup. Call ./ without any
argument for more information.

Daniel Wortmann's avatar
Daniel Wortmann committed
78 79 80
After the script finishes, you should do

cd build
81 82

This might generate the FLEUR executables. It most probable will only work on systems we know as
Daniel Wortmann's avatar
Daniel Wortmann committed
84 85
only for those there will be specific configurations available.