Commit 63be3976 authored by Daniel Wortmann's avatar Daniel Wortmann


parent ef9731e7
<div align="center">
<img src="" width="220">
Welcome to the source code of FLEUR
[Report bug](
[Request feature](
[Homepage and Documentation](
## Table of contents
- [Using the FLEUR git repository](#fleur-git-repository)
- [Dealing with Bugs and problems](#bugs-and-problems)
- [Installation of FLEUR](#installation-of-FLEUR)
- [Contributing](#contributing)
Please note that the documentation of the
code can be found at the [FLEUR Homepage]
## FLEUR git repository
For further instructions on Installation/Usage,
please check the [FLEUR Homepage]
The primary git-repository of FLEUR can be found on the [iffgit-Server at FZ-Jülich](
You can clone the repository by using
git clone
If you are a FLEUR developer you should use
git clone
to be able to push changes back to the server. If you are not a developer yet but want to contribute, please contact [Gregor]( or [Daniel](
## Bugs in FLEUR
Please note, that the default branch you will see after cloning the repository is the 'develop' branch. In general you might find
the following branches on the server.
* develop: this is the default branch with the most up-to-date version of FLEUR. Small changes and developments should be committed
directly into this branch. When doing so you should try to keep the code operational. It should still compile and the test should run.
* release: this branch collects the official releases. You cannot commit to this branch and bugfixes should be handled as [described below](#bugs-and-problems).
* stable: this branch contains snapshots of the development branch considered "stable".
In addition several other branches can/will be present corresponding to features currently under development. If you start your own larger development
it can be advisable to create your own branch. In this case you should try to follow changes in 'develop' by frequently merging 'develop' into your branch
and you should create a merge request with 'develop' as soon as you are finished or reached some usefull state in your development.
## Bugs and Problems
You might experience bugs in FLEUR :-).
If you find a bug you should:
A) Report this bug by generating an Issue. Please describe in
A) [Report this bug by generating an Issue]( Please describe in
detail the relevant input and what happens. You should consider using
the bug-template for your issue as this will help you providing us with
the relevant information.
......@@ -35,102 +71,15 @@ If you are fixing a bug in a release-version, please:
* merge your fix into the develop branch: ```git merge bugfix_SOME_NAME_HERE```
## Installation of FLEUR
To install and use FLEUR, please check the [Documentation](
## Structure of the source 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
* eels: code for electron-energy loss spectroscopy
* hybrid: code for hybrid functionals
* 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
If you modify FLEUR please do so in the develop branch by running
'git checkout -t origin/develop'
after cloning the git repository. For larger changes you might want to
create your own branch.
## Compiling Fleur on Jureca
To compile Fleur on Jureca the following modules need to be loaded:
module load intel-para CMake HDF5 libxml2/.2.9.7 ELPA/2017.11.001-hybrid
which is then configured with
./ -external libxc JURECA_INTEL
if libXC should be supported aswell.
## Compilling Fleur on Jureca Booster
To compile on the booster you need to first switch to the KNL environment
## Contributing
module purge
ml Architecture/KNL
module load intel-para CMake HDF5 libxml2/.2.9.7 ELPA/2017.11.001-hybrid
Then you can compile as discrebed above.
## Running Fleur on Jureca Booster
To run on the Boosters you need to switch the architecture in each job script aswell
#!/bin/bash -x
#SBATCH --nodes=1
##SBATCH --ntasks=10
##SBATCH --ntasks-per-node=10
#SBATCH --cpus-per-task=68
#SBATCH --output=mpi-%j.out
#SBATCH --error=mpi-%j.err
#SBATCH --time=1:00:00
#SBATCH --partition=develbooster
#SBATCH --gres=mem96
##SBATCH --mail-type=END
module purge
ml Architecture/KNL
module load intel-para CMake HDF5 libxml2/.2.9.7 ELPA/2017.11.001-hybrid
FLEUR is an open source code under the [MIT-license](
## Developing Fleur
Your are very welcome to contribute to its development. If you need help or access to the git repository,
please contact [Gregor]( or [Daniel](
We agreed to use a unified indentation-width of 3.
Hint: [vim]( [emacs](
\ No newline at end of file
Please also use the [Wiki]( for sharing information relevant for developers.
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment