Commit 32185ffa authored by Daniel Wortmann's avatar Daniel Wortmann

Modified Documentation in mkdocs

parent ff82e278
......@@ -11,8 +11,8 @@ If you manage to compile on some system that can be of general interest, please
* [How to adjust to your configuration](#how-to-adjust-the-configuration)
* [Running the automatic tests](#ci-tests)
#Quick guide
Quick guide
If you are extremely lucky (and/or your system is directly supported by us) installation can be very simple:
* run the configuration script `'PATH_TO_SOURCE_CODE/`. You can do that in any directory in which the 'build' directory should be created. The script accepts some useful arguments, you can run the script with ` -h` to get a list of supported arguments.
......@@ -29,8 +29,8 @@ Usually only the serial or the MPI version will be build. You can run the MPI-ve
You might want to [run the automatic tests](#ci-tests).
There are a couple of external dependencies in the build process of FLEUR.
**Required are:**
......@@ -51,8 +51,8 @@ FLEUR can benefit significantly if the following further software components are
You should also check the output of ` -h` for further dependencies and hints.
The `` script found in the main FLEUR source directory can (and should) be used to start the configuration of FLEUR.
It is called as
......@@ -84,7 +84,8 @@ fine-tuning is needed. In particular you might have to:
* provide hints on which compiler to use
* provide hints on how to use libraries.
## Setting of the compiler to use
Setting the compiler to use
By defining the environment variables FC and CC to point to the Fortran and C compiler you can make sure that cmake uses the correct compilers. E.g. you might want to say
`export FC=mpif90`.
......@@ -96,25 +97,23 @@ This should be done using the `-flag` option to ``. So for example y
In general for a compiler [not known](#compilers) in cmake/compilerflags.cmake you need at least an option to specify the promotion of standard real variables to double precision (like the `-r8`). But additional switches can/should be used.
###Adding include directories
### Adding include directories
For libraries with a Fortran-90 interface, ELPA, HDF5, MAGMA, ... you probably will have to give an include path. This can
be achieved using the `-includedir` option. So you might want to say something like
` -includedir SOMEPATH`
###Adding linker flags
### Adding linker flags
To add flags to the linker you can do
* add a directory in which the linker looks for libraries with `-libdir SOMEDIR`
* add the corresponding link option(s) with e.g. `-link "-lxml2;-llapack;-lblas"`. Please note that the specification is different from the compiler switches as different switches are separated by ';'.
### Further options:
Further options:
There are more options you might find useful. Please
check ` -h` for a list.
Compiler specifics
FLEUR is known to work with the following compilers:
......@@ -135,11 +134,10 @@ GFortran is knwon to work with versions newer thant 6.3.
The PGI compilers also can compile FLEUR. Here you need ad least version 18.4 but might still run into some problems.
After the build was finished you might want to run the automatic test.
Just type `ctest` in the build directory for this purpose.
......@@ -12,7 +12,7 @@ In most cases you will first run the [input generator]( to create an [
Please note that fleur/fleur_MPI will always read its setting from an inp.xml file in the current directory.
Command line options
The run-time behaviour of FLEUR can be modified using command line switches. You should understand that these switches modify the way FLEUR might operate or in some cases determine what FLEUR actually does. If you want to change the calculation setup you should modify the [inp.xml]( file.
Here we document the most relevant command line options. For a full list of available options, please run
......@@ -45,11 +45,11 @@ Here we document the most relevant command line options. For a full list of avai
* Further options might be available, check `fleur -h` for a list.
Environment Variables
Environment Variables
There are basically two environments variables you might want to change when using FLEUR.
As FLEUR uses OpenMP it is generally a good idea to consider adjusting OMP_NUM_THREADS to use
all cores available. While this might happen automatically in you queuing system you should check if you use
......@@ -58,7 +58,7 @@ appropriate values. Check the output of FLEUR to standard out.
So you might want to use `export OMP_NUM_THREADS=2` or something similar.
### juDFT
You can use the juDFT variable to set command line switches that do not require an additional argument. For example
......@@ -69,12 +69,12 @@ would run FLEUR with these command line switches.
Hybrid MPI/OpenMP Parallelization
The efficient usage of FLEUR on modern supercomputers is ensured by hybrid MPI/OpenMP parallelization. The k-point loop and the eigenvector problem
are parallelized via MPI (Message Passing Interface). In addition to that, every MPI process can be executed on several computer cores with shared memory,
using either OpenMP (Open Multi-Processing) interface or multi-threaded libraries.
#MPI parallelization
### MPI parallelization
* The k-point parallelisation gives us increased speed when making calculations with large k-point sets.
* The eigenvector parallelisation gives us an additional speed up but also allows us to tackle larger systems by reducing the amount of memory that we use with each MPI process.
......@@ -82,7 +82,7 @@ Depending on the specific architecture, one or the other or both levels of paral
##k-point Parallelisation
### k-point Parallelisation
This type of parallelization is always chosen, if the number of k-points (K) is a multiple of the number of MPI processes (P). If K/P is not integer, a mixed parallelization will be attempted and M MPI processes will work on a single k-point, so that K.M/P is integer. This type of parallelization
can be very efficient, because all three most time-consuming parts of the code (Hamiltonian matrix setup, diagonalization and generation of the new charge density) are independent for different k-points and there is no need to communicate during the calculation. That is why this type of parallelization is fine,
......@@ -96,7 +96,7 @@ of the speedup from the ideal.
(NaCl, 64 atoms, 216 k-points) on a computer cluster (Intel E5-2650V4, 2.2 GHz).
Execution time of one iteration is 3 hours 53 minutes.
##Eigenvector Parallelization
### Eigenvector Parallelization
If the number of k-points is not a multiple of the number of MPI processes, every k-point will be parallelized over several MPI processes. It might be necessary
to use this type of parallelization to reduce the memory usage per MPI process, i.e. if the eigenvalue-problem is too large. This type of parallelization depends
......@@ -111,7 +111,7 @@ to use HDF library if needed.
Test system: CuAg (256 atoms, 1 k-point). Memory usage was measured on
the CLAIX supercomputer (Intel E5-2650V4, 2.2 GHz, 128 GB per node)
## OpenMP parallelization
### OpenMP parallelization
Modern HPC systems are usually cluster systems, i.e. they consist of shared-memory computer nodes connected through a communication network.
It is possible to use the distributed-memory paradigm (that means MPI parallelization) also inside the node, but in this case the memory available
for every MPI process will be considerably smaller. Imagine you use a node with 24 cores and 120 GB memory. If you start one MPI process it will get
......@@ -124,7 +124,7 @@ from this type of parallelization, you would need ELPA and multithreaded MKL lib
Timing measurements of the GaAs system (512 atoms) on the CLAIX supercomputer
(Intel E5-2650V4, 2.2 GHz, 24 cores per node, 128 GB per node).
## Parallel execution: best practices
### Parallel execution: best practices
Since there are several levels of parallelization available in FLEUR: k-point MPI parallelization, eigenvalue MPI parallelization and multi-threaded
parallelization, it is not always an easy decision, how to use the available HPC resources in the most effective way: how many nodes does one need,
how many MPI processes per node, how many threads per MPI process. First of all, if your system contains several k-point, choose the number of MPI
......@@ -19,46 +19,16 @@ Within the [MaX project]( we created a series of FLEUR-
* [FLEUR MaX Release 1 of Version 0.27]( Current as of 31/08/2016
Quantum Mobile -- A virtual machine with all MaX-codes and AiiDA installed can be found on [Github](
There is also a page with a few [[BinariesDownloads| precompiled binaries]].
After downloading the source we strongly recommend to have a look at the [[User-Documentation/Documentation]].
Accessing the GITLAB
The source code of FLEUR can also be found at the [Fleur GitLab]( This includes all the versions mentioned above as well as the most recent snapshots and development branches.
[+ Releases of older FLEUR versions: +]
(You have to [[Main.Registration|register]] first to obtain a userID for these Downloads)
[+ Here you can download the FLEUR code +]
* [[ | Version 0.22]] Current as of 26/10/2001
* [[ | Version 0.23]] Current as of 25/02/2005
* [[ | Version 0.24]] Current as of 14/02/2006 (Version used at NIC winterschool 2006)
* [[ | Version 0.25]] Current as of 05/07/2006
* [[ | Version 0.26]] Current as of 02/02/2017 ([[VesNotes | update]] v0.26e)
[+ Useful helpers +]
More ....
Quantum Mobile -- A virtual machine with all MaX-codes and AiiDA installed can be found on [Github](
* [[ | Scripts archive]] Current as of Feb 15, 2005
->Please note that assembly of these script is a task i.tgz Version 0.25n progress.
->The contents of this archive are preliminary and may change with time.
->Currently, it contains: \
scripts [[Symmetry Of Bands | band3xmgr]] and [[User-Documentation.CalculatingTheBandStructure |]], program [[User-Documentation.SortingBandsInABandStructurePlot | sortbands.f.]]
* [[ | Archive]] Current as of Sep 16, 2009
-> containing an external program for the analysis of the SOC matrix elements when calculating [[User-Documentation.SsoHowto | spin-spirals + SOC]].
There is also a page with a few [precompiled binaries](
[+ Beta versions +]
After downloading the source we strongly recommend to have a look at the [Documentation](
* [[ | Version 0.25g]] Current as of 08/06/2009 \
(last [[Bug-fixes | bugfix]] from 24/02/2010)
* [[ | Version 0.26b]] Version as of 06/12/2011 \
(containing complete wannier-part, [[Bug-fixes | bugfixes]] and some new functionality)
* [[ | Version 0.26d]] Version as of 26/10/2012 \
(including spin-spirals & SOC, some new functionality for inpgen and [[Bug-fixes | bugfixes]])
* [[ | Wannier-version 0.25h]] Current as of 20/11/2009
* [[| Beta Version 0.27]] Current as of 19/09/2014 (includes new IO module with the option to keep more data in memory and first OpenMP parallel parts)
# Welcome to the FLEUR-project
Welcome to the FLEUR-project
This is the homepage of FLEUR, a feature-full, freely available FLAPW (full potential linearized augmented planewave) code, based on density-functional theory.
The FLAPW-Method (Full Potential Linearized Augmented Plane Wave Method) is an all-electron method which within density functional theory is universally applicable to all atoms of the periodic table and to systems with compact as well as open structures. It is widely considered to be the most precise electronic structure method in solid state physics.
FLEUR is one of the flagship codes of the MaX-Centre of Excellence. Within MaX we aim at creating a new FLEUR version fit for the challenges of high-throughput and exascale computing.
Please feel free to [download]( and [run our code](
Fleur is part of the [juDFT family]( of codes developed in Jülich.
<video width="640" height="300" preload="auto" autoplay="autoplay" controls="controls" >
<source src="" type="video/mp4" />
<source src="" type="video/webm" />
<p class="novideo"></p>
[Downloading FLEUR](
To obtain FLEUR have a look at out [download page](
Support for FLEUR-users
We have established a mailing list for all users and developers of the FLEUR code. To subscribe to the list simply send a mail to <>.
FLEUR development team
FLEUR is mainly developed at the Forschungszentrum Jülich at the Institute of Advanced Simulation and the Peter Grünberg Institut.
<script src="//"></script>
<div id="katacoda-scenario-1"
style="height: 700px; padding-top: 2px;"></div>
<script src="//"></script>
<div id="katacoda-scenario-1"
style="height: 700px; padding-top: 2px;"></div>
Installation of FLEUR
<script src="//"></script>
<div id="katacoda-scenario-1"
style="height: 600px; padding-top: 20px;"></div>
Online tutorials
First calculation
We provide some online-tutorial using [KataCoda]( You might use
the [KataCoda-Site for FLEUR]( or the list below to
access the tutorials.
<script src="//"></script>
<div id="katacoda-scenario-1"
style="height: 600px; padding-top: 20px;"></div>
# Install Fleur
A short tutorial demonstrating how to install FLEUR from its Git source can be found [here](
# First Calculation
A simple Si bulk calculation is performed [here](
#Support for FLEUR-users
We have established a mailing list for all users and developers of the FLEUR code. To subscribe to the list simply send a mail to <>.
\ No newline at end of file
This diff is collapsed.
......@@ -2,10 +2,9 @@ site_name: FLEUR
repo_name: GIT
edit_url: edit/develop/docs/mkdocs/
edit_uri: edit/develop/docs/mkdocs/docs/
- Welcome:
- Further support:
- User Guide:
- Overview:
- Installation:
......@@ -24,4 +23,5 @@ nav:
- search
name: cosmo
name: cerulean
custom_dir: tutorial_scheme
{% extends "base.html" %}
{% block content %}
{% if page.meta.no_toc %}
<div class="col-md-12" role="main">{% include "content.html" %}</div>
{% else %}
<div class="col-md-3">{% include "toc.html" %}</div>
<div class="col-md-9" role="main">{% include "content.html" %}</div>
{% endif %}
{% endblock %}
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