Commit 22884882 authored by Matthias Redies's avatar Matthias Redies

Merge branch 'develop' into MetaGGA

parents 3a7328ee 8300a407
stages:
- build
- test
- coverage
- html
- deploy
- build-pgi
- test-pgi
- build-intel-static
- build-intel
- test-intel
build-gfortran-hdf5:
......@@ -18,6 +13,7 @@ build-gfortran-hdf5:
- build
script:
- cd /builds/fleur/fleur; ./configure.sh GITLAB; cd build; make -j 4
allow_failure: true
# only:
# - schedules
# - triggers
......@@ -31,6 +27,7 @@ test-gfortran-hdf5:
- build
script:
- ulimit -s unlimited ;export juDFT_MPI="mpirun -n 2 --allow-run-as-root ";export OMP_NUM_THREADS=4;cd /builds/fleur/fleur/build;ctest
allow_failure: true
artifacts:
when: on_failure
paths:
......@@ -40,21 +37,39 @@ test-gfortran-hdf5:
# - schedules
# - triggers
# - web
pages:
image: iffregistry.fz-juelich.de/fleur/fleur:latest
stage: deploy
cache:
paths:
- build
- public
script:
- echo "HTML should be ready from cache..."
- mv /builds/fleur/fleur/docs/Docu_main.html /builds/fleur/fleur/public/index.html
environment:
name: HTML-Pages
url: https://fleur.iffgit.fz-juelich.de/fleur
artifacts:
paths:
- public
# only:
# - schedules
# - triggers
# - web
doxygen:
image: iffregistry.fz-juelich.de/fleur/fleur:latest
stage: html
cache:
paths:
- build
- public
script:
- cd /builds/fleur/fleur/build ; make doc
- mv docs/html/ ../public/
- mv /builds/fleur/fleur/docs/Docu_main.html ../public/index.html
environment:
name: Doxygen
url: https://fleur.iffgit.fz-juelich.de/fleur
- mkdir ../public
- mv docs/html/ ../public/doxygen
artifacts:
paths:
- public
......@@ -64,16 +79,36 @@ pages:
only:
- schedules
- triggers
- web
- web
mkdocs:
image: iffregistry.fz-juelich.de/fleur/fleur:mkdocs
stage: html
cache:
paths:
- public
script:
- cd /builds/fleur/fleur/docs/mkdocs ; mkdocs build
- cp tutorial_scheme/color.css site/css/bootstrap-custom.min.css
- mkdir ../../public
- mv site ../../public/site
artifacts:
paths:
- public
# only:
# - schedules
# - triggers
# - web
build-pgi:
image: iffregistry.fz-juelich.de/fleur/fleur:pgi
stage: build-pgi
stage: build
cache:
paths:
- build.pgi
script:
- cd /builds/fleur/fleur; ./configure.sh -l pgi ; cd build.pgi; make
allow_failure: true
only:
- schedules
- triggers
......@@ -82,12 +117,15 @@ build-pgi:
test-pgi:
image: iffregistry.fz-juelich.de/fleur/fleur:pgi
stage: test-pgi
stage: test
dependencies:
- build-pgi
cache:
paths:
- build.pgi
script:
- cd /builds/fleur/fleur/build.pgi;ctest
allow_failure: true
only:
- schedules
- web
......@@ -96,7 +134,7 @@ test-pgi:
build-intel-static:
image: iffregistry.fz-juelich.de/fleur/fleur:intel-static
stage: build-intel-static
stage: build
cache:
paths:
- build.intel-static
......@@ -109,6 +147,7 @@ build-intel-static:
- build.intel-static/fleur
- build.intel-static/fleur_MPI
- build.intel-static/inpgen
allow_failure: true
only:
- schedules
- triggers
......@@ -117,13 +156,14 @@ build-intel-static:
build-intel:
image: iffregistry.fz-juelich.de/fleur/fleur:intel-static
stage: build-intel
stage: build
cache:
paths:
- build.intel.debug
script:
- set +e && source compilervars.sh intel64 && set -e ; ulimit -s unlimited
- cd /builds/fleur/fleur; CC=gcc FC=mpiifort FLEUR_LIBRARIES="-lmkl_scalapack_lp64;-lmkl_blacs_intelmpi_lp64" ./configure.sh -t -d -l intel INTEL_MPI ; cd build.intel.debug; make -j 4
allow_failure: true
only:
- schedules
- triggers
......@@ -132,13 +172,16 @@ build-intel:
test-intel:
image: iffregistry.fz-juelich.de/fleur/fleur:intel-static
stage: test-intel
stage: test
dependencies:
- build-intel
cache:
paths:
- build.intel.debug
script:
- set +e && source compilervars.sh intel64 && set -e; ulimit -s unlimited
- cd /builds/fleur/fleur/build.intel.debug;ctest
allow_failure: true
artifacts:
when: on_failure
paths:
......@@ -151,7 +194,7 @@ test-intel:
gfortran-coverage:
image: iffregistry.fz-juelich.de/fleur/fleur:latest
stage: coverage
stage: html
cache:
paths:
- build
......@@ -163,6 +206,7 @@ gfortran-coverage:
- lcov --add-tracefile baseline.info --add-tracefile after.info -o combined.info
- genhtml combined.info --output-directory html_out
- mkdir ../public;mv html_out ../public/coverage_html
allow_failure: true
artifacts:
paths:
- public
......
......@@ -4,3 +4,6 @@
[submodule "external/libxc-git"]
path = external/libxc-git
url = https://gitlab.com/libxc/libxc.git
[submodule "docs/katacoda-tutorials"]
path = docs/katacoda-tutorials
url = gitlab@iffgit.fz-juelich.de:fleur/katacoda-tutorials.git
......@@ -29,6 +29,7 @@ if test -d $DIR/.git
then
echo "Git version found"
else
mkdir -p $DIR/.git/hooks
ln -s $DIR/tests/git-hooks/pre-commit $DIR/.git/hooks
echo "Git version found, hook installed"
fi
......
Subproject commit c1f62527f4fd6af8a4c91762885a967889c64415
FROM ubuntu
MAINTAINER d.wortmann@fz-juelich.de
RUN apt update && apt install -y \
python-pip
RUN pip install mkdocs mkdocs-bootswatch python-markdown-math
......@@ -23,3 +23,4 @@ If you are a more expert user or developer, you might be interested in:
* Discussion of reasons why v27 gives [differences](v26differences.md) to v26.
* A [Guide/Manual](developers.md) for developers of FLEUR.
Part of the documentation of the Version v0.26 of FLEUR was also made available [here](v26/v26.md).
Developing FLEUR
====================
The development effort for FLEUR is mainly hosted at [the Institute Quantum Theory of Materials @Forschungszentrum Juelich Germany](https://www.fz-juelich.de/pgi/pgi-1/EN).
GITLAB
------
The development process is performed using gitlab. You can access the [main gitlab page here](http://iffgit.fz-juelich.de/fleur/fleur).
If you checkout the code please be aware that there are several branches.
* The release branch contains the code of the last release published on the FLEUR webpage. You can not push to this branch directly.
* You probably want to use the development branch to insert your changes.
* If your changes are large, it might be a good idea to create your own branch first.
The changes you push to the gitlab will be tested by our CI directly: [![](https://iffgit.fz-juelich.de/fleur/fleur/badges/develop/pipeline.svg)](https://iffgit.fz-juelich.de/fleur/fleur/pipelines).
Doxygen
------
We use doxygen to create the documentation of the source. This can be [found here](https://fleur.iffgit.fz-juelich.de/fleur/doxygen).
Coverage
---------
The automatic tests of FLEUR cover only part of the source. [Here you find the analysis](https://fleur.iffgit.fz-juelich.de/fleur/coverage_html).
Further information
---------------
Some more information for developers are collected [here](developers.md).
Welcome to the developers documentation of FLEUR
========================
These pages are complementing the <A HREF="http://www.flapw.de/pm/index.php?n=User-Documentation.Documentation"> User documentation </A> in which the actual use of FLEUR is documented.
Here we collect information useful for developers or advanced users that actually will modify the source code.
## GitLab
The development process is performed using gitlab. You can access the <A HREF="https://iffgit.fz-juelich.de/fleur/fleur"> main gitlab page here.</A>
If you checkout the code please be aware that there are several branches. The release branch contains the code of the last release published on <A HREF="http://www.flapw.de/pm/index.php?n=FLEUR.Downloads"> the FLEUR webpage</A>. You can *not* push to this branch directly.
You probably want to use the development branch to insert your changes. If your changes are large, it might be a good idea to create your own branch first.
Contributors guide
======================================
......
......@@ -11,7 +11,8 @@ Suppose, you have converged a charge density, e.g. of a 3 layer Cu film as descr
* change ` force =F ` to ` force =T ` in the inp-file, for those atoms, which you want to relax.
* change ` l_f=F ` to ` l_f=T ` in the inp-file, to allow the generation of Pulay-forces
* edit the line ` relax 000 001 ` at the end of the inp-file to allow relaxations in specific directions (here, ` 000` means no relaxation of the first atom, ` 001 ` means only in z-direction for the second).
* then run a few iterations, until the program stops with ` GEO: new inp created !`. This will happen, if the forces of two subsequent iterations do not differ more than 0.00001 htr/a.u. (This parameter should not be changed to ensure good convergence of the forces. It can, however, in cases of emergency be changed by creating an "eps_force"-file, which contains a different convergence parameter.)
* then run a few iterations, until the program stops with ` Structual relaxation: new displacements generated`. This will happen, if the forces of two subsequent iterations do not differ more than 0.00001 htr/a.u. (This parameter should not be changed to ensure good convergence of the forces. It can, however, in cases of emergency be changed by creating an "eps_force"-file, which contains a different convergence parameter.)
* now the new forces and the displacement is saved in the file `relax.xml`. When starting fleur for another time this file is included in the `inp.xml` and will be used for the new positions of the atoms.
When this is finished, you will notice that you have two new files in your working directory:
......
This diff is collapsed.
Documentation of FLEUR v0.26
=======================
Part of the documentation of the version v0.26 (and previous) of FLEUR is available here.
* [Info on files used](files.md)
* [How To information](main.md)
* [Previous Workshops](workshops.md)
\ No newline at end of file
Homepages of various workshops with FLEUR hands-on sessions
\ No newline at end of file
......@@ -28,15 +28,17 @@ nav:
- Videos: video.md
- Example inputs: examples.md
- Developers Infomation:
- Developers Home: develop-main.md
- Fleur-GITLAB: https://iffgit.fz-juelich.de/fleur/fleur/
- The DOXYGEN documentation of the source code: https://fleur.iffgit.fz-juelich.de/fleur/html
- The DOXYGEN documentation of the source code: https://fleur.iffgit.fz-juelich.de/fleur/doxygen
- The coverage analysis: https://fleur.iffgit.fz-juelich.de/fleur/coverage_html
- Developers Guide/Manual: developers.md
plugins:
- search
theme:
name: cerulean
custom_dir: tutorial_scheme
custom_dir: tutorial_scheme
extra_css: custom.css
extra_javascript:
- https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.0/MathJax.js?config=TeX-AMS-MML_HTMLorMML
markdown_extensions:
......
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -14,7 +14,8 @@
<img width="80px" src="img/new.png"><br>
<li><a href="handson"> Hands-on tutorial in September</a></li>
<br><br><br>
<li><a href="https://www.flapw.de/pm/index.php"> Link to the old FLEUR-pages</a></li>
<a href="https://www.flapw.de">Public Webpage</a><br>
<a href="https://fleur.iffgit.fz-juelich.de/fleur/site/">Development version of webpage</a>
</ul>
</div>
</div>
......
......@@ -147,7 +147,7 @@ CONTAINS
IF (info.NE.0) THEN
td%e_shift(n,jsp)=td%e_shift(n,jsp)*2.0
PRINT *,"Potential shift to small, increasing the value to:",td%e_shift(n,jsp)
PRINT *,"Potential shift for atom type ",n," is too small. Increasing the value to:",td%e_shift(n,jsp)
IF (td%e_shift(n,jsp)>e_shift_max) THEN
CALL judft_error("Potential shift at maximum")
ENDIF
......
......@@ -133,19 +133,19 @@ CONTAINS
IF (mpi%irank == 0) WRITE (6,FMT=8000) itype
ng = atoms%jri(itype)
DO l=0,atoms%lmax(itype)
CALL radfun(l,itype,1,el_eig(l,itype),vr(:,itype,jsp),atoms,f(:,:,l),df(:,:,l),usdus,nodem,noded,wronk)
IF (mpi%irank == 0 ) WRITE (6,FMT=8010) l,el_eig(l,itype),usdus%us(l,itype,1),usdus%dus(l,itype,1),nodem,&
usdus%uds(l,itype,1),usdus%duds(l,itype,1),noded,usdus%ddn(l,itype,1),wronk
CALL radfun(l,itype,jsp,el_eig(l,itype),vr(:,itype,jsp),atoms,f(:,:,l),df(:,:,l),usdus,nodem,noded,wronk)
IF (mpi%irank == 0 ) WRITE (6,FMT=8010) l,el_eig(l,itype),usdus%us(l,itype,jsp),usdus%dus(l,itype,jsp),nodem,&
usdus%uds(l,itype,jsp),usdus%duds(l,itype,jsp),noded,usdus%ddn(l,itype,jsp),wronk
hybdat%bas1(1:ng,1,l,itype) = f(1:ng,1,l)
hybdat%bas2(1:ng,1,l,itype) = f(1:ng,2,l)
hybdat%bas1(1:ng,2,l,itype) = df(1:ng,1,l)
hybdat%bas2(1:ng,2,l,itype) = df(1:ng,2,l)
hybdat%bas1_MT(1,l,itype) = usdus%us(l,itype,1)
hybdat%drbas1_MT(1,l,itype) = usdus%dus(l,itype,1)
hybdat%bas1_MT(2,l,itype) = usdus%uds(l,itype,1)
hybdat%drbas1_MT(2,l,itype) = usdus%duds(l,itype,1)
hybdat%bas1_MT(1,l,itype) = usdus%us(l,itype,jsp)
hybdat%drbas1_MT(1,l,itype) = usdus%dus(l,itype,jsp)
hybdat%bas1_MT(2,l,itype) = usdus%uds(l,itype,jsp)
hybdat%drbas1_MT(2,l,itype) = usdus%duds(l,itype,jsp)
END DO
IF (atoms%nlo(itype).GE.1) THEN
......@@ -155,8 +155,8 @@ CONTAINS
iarr(atoms%llo(ilo,itype),itype) = iarr(atoms%llo(ilo,itype),itype) + 1
hybdat%bas1(1:ng,iarr(atoms%llo(ilo,itype),itype),atoms%llo(ilo,itype),itype) = flo(1:ng,1,ilo)
hybdat%bas2(1:ng,iarr(atoms%llo(ilo,itype),itype),atoms%llo(ilo,itype),itype) = flo(1:ng,2,ilo)
hybdat%bas1_MT(iarr(atoms%llo(ilo,itype),itype),atoms%llo(ilo,itype),itype) = usdus%ulos(ilo,itype,1)
hybdat%drbas1_MT(iarr(atoms%llo(ilo,itype),itype),atoms%llo(ilo,itype),itype) = usdus%dulos(ilo,itype,1)
hybdat%bas1_MT(iarr(atoms%llo(ilo,itype),itype),atoms%llo(ilo,itype),itype) = usdus%ulos(ilo,itype,jsp)
hybdat%drbas1_MT(iarr(atoms%llo(ilo,itype),itype),atoms%llo(ilo,itype),itype) = usdus%dulos(ilo,itype,jsp)
END DO
END IF
END DO
......
......@@ -20,6 +20,7 @@ CONTAINS
USE m_types
USE m_types_mixvector
USE m_constants
#ifdef CPP_MPI
USE m_mpi_bc_potden
#endif
......@@ -45,6 +46,7 @@ CONTAINS
real :: fix
integer :: lh,n
CALL resDen%init( stars, atoms, sphhar, vacuum, noco, input%jspins, POTDEN_TYPE_DEN )
CALL vYukawa%init( stars, atoms, sphhar, vacuum, noco, input%jspins, 4 )
MPI0_b: IF( mpi%irank == 0 ) THEN
......@@ -63,7 +65,7 @@ CONTAINS
call resDenMod%copyPotDen( resDen )
end if
vYukawa%iter = resDen%iter
CALL VYukawaFilm( stars, vacuum, cell, sym, input, mpi, atoms, sphhar, DIMENSION, oneD, noco, resDenMod, &
CALL VYukawaFilm( stars, vacuum, cell, sym, input, mpi, atoms, sphhar, oneD, noco, resDenMod, &
vYukawa )
END IF
......@@ -76,6 +78,8 @@ CONTAINS
* vYukawa%mt(1:atoms%jri(n),lh,n,1) * atoms%rmsh(1:atoms%jri(n),n) ** 2
END DO
END DO
resDen%vacz = resDen%vacz - input%preconditioning_param ** 2 / fpi_const * vYukawa%vacz
resDen%vacxy = resDen%vacxy - input%preconditioning_param ** 2 / fpi_const * vYukawa%vacxy
IF( input%jspins == 2 ) CALL resDen%ChargeAndMagnetisationToSpins()
! fix the preconditioned density
CALL outDen%addPotDen( resDen, inDen )
......
This diff is collapsed.
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