Skip to content

Commit

Permalink
Merge pull request #320 from giovannipizzi/release_3.1
Browse files Browse the repository at this point in the history
Release 3.1
  • Loading branch information
giovannipizzi authored Mar 5, 2020
2 parents 9676b93 + 68e9c04 commit 1d6b187
Show file tree
Hide file tree
Showing 248 changed files with 285,648 additions and 5,342 deletions.
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@ postw90.x
.DS_Store
make.inc
w90chk2chk.x
w90spn2spn.x
libwannier.a
libwannier.so
libwannier.dylib
*~
*.x.dSYM
*.x.dSYM
.vscode
14 changes: 13 additions & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,16 @@
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v2.2.3
hooks:
- id: trailing-whitespace
files: (?x)^(
config/make[.]inc[.\w]*|
examples/example\d\d[-]?\w*/.+win
)$
- id: end-of-file-fixer
files: (?x)^(
config/make[.]inc[.\w]*|
examples/example\d\d[-]?\w*/.+win
)$
- repo: git://github.com/pseewald/fprettify
sha: v0.3.3
hooks:
Expand All @@ -8,4 +21,3 @@
)$
verbose: true
entry: ./test-suite/tools/fprettify-wrapper.py

36 changes: 35 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,44 @@
# CHANGELOG of Wannier90

## v3.1.0 (5th March 2020)

### New features

- Calculation of spin Hall conductivity according to the formalism given in Junfeng Qiao, Jiaqi Zhou, Zhe Yuan and Weisheng Zhao, PRB 98, 214402 (2018) + examples 29 and 30 and tests [[#264]](https://github.com/wannier-developers/wannier90/pull/264)

- Implementation of the SCDM method in Wannier90 for spinor wavefunctions and added example31 for the tutorial [[#277]](https://github.com/wannier-developers/wannier90/pull/277)

- Utility `w90spn2spn.x` for conversion between formatted and unformatted `.spn` files [[#274]](https://github.com/wannier-developers/wannier90/pull/274)

### Various improvements and bugfixes

- Add `install` target for `make`, now `make install` works [[#307]](https://github.com/wannier-developers/wannier90/pull/307)

- Added new documentation and fixed typos [[#308]](https://github.com/wannier-developers/wannier90/pull/308) [[#256]](https://github.com/wannier-developers/wannier90/pull/256) [[#306]](https://github.com/wannier-developers/wannier90/pull/306) [[#300]](https://github.com/wannier-developers/wannier90/pull/300)

- small restructuring of the routines for the AHC calculation with multiple Fermi energies and adaptive refinement [[#289]](https://github.com/wannier-developers/wannier90/pull/289)

- Fix in restart mode (now gathering matrices before dumping `.chk` file) [[#283]](https://github.com/wannier-developers/wannier90/pull/283)

- Fix `pw90common_fourier_R_to_k` subroutines bugs when `use_ws_distance = .true.` [[#273]](https://github.com/wannier-developers/wannier90/pull/273)[[#271]](https://github.com/wannier-developers/wannier90/issues/271)

- Fixes and speed improvements in `pw2wannier90.f90` [[#295]](https://github.com/wannier-developers/wannier90/pull/295) [[#255]](https://github.com/wannier-developers/wannier90/pull/255)

- Bug fixes of `gw2wannier90.py` and `k_mapper.py` [[#294]](https://github.com/wannier-developers/wannier90/pull/294)

- Various bugfixes in input reading and output generation [[#309]](https://github.com/wannier-developers/wannier90/pull/309) [[#290]](https://github.com/wannier-developers/wannier90/pull/290) [[#270]](https://github.com/wannier-developers/wannier90/pull/270) [[#266]](https://github.com/wannier-developers/wannier90/pull/266) [[#258]](https://github.com/wannier-developers/wannier90/pull/258)

- Adding tests for BoltzWann (at least for the electrical conductivity) [[#282]](https://github.com/wannier-developers/wannier90/pull/282)

- Bug fixed in the disentanglement step with SAWFs, especially when running in parallel [[#315]](https://github.com/wannier-developers/wannier90/pull/315)

## v3.0.0 (27th February 2019)

### New Wannier90 features

- Selective localization and constrained centres from Marianetti et al. [PRB 90, 165125 (2014)] [[#187]](https://github.com/wannier-developers/wannier90/pull/187) [[#207]](https://github.com/wannier-developers/wannier90/pull/207) [[#206]](https://github.com/wannier-developers/wannier90/pull/206) [[#205]](https://github.com/wannier-developers/wannier90/pull/205)

- Implementation of the SCDM method in Wannier90 [[#167]](https://github.com/wannier-developers/wannier90/pull/167) [[#202]](https://github.com/wannier-developers/wannier90/pull/202) and added an example for the tutorial [[#194]](https://github.com/wannier-developers/wannier90/pull/194). Note that during development we have adapted the interface of the SCDM input flags; Quantum ESPRESSO v6.4 has the current implementation. [[#238]](https://github.com/wannier-developers/wannier90/pull/239)
- Implementation of the SCDM method in Wannier90 [[#167]](https://github.com/wannier-developers/wannier90/pull/167) [[#202]](https://github.com/wannier-developers/wannier90/pull/202) and added an example for the tutorial [[#194]](https://github.com/wannier-developers/wannier90/pull/194). Note that during development we have adapted the interface of the SCDM input flags; Quantum ESPRESSO v6.4 has the current implementation. [[#238]](https://github.com/wannier-developers/wannier90/pull/238)


- Parallelisation of the core Wannier90 routines [[#193]](https://github.com/wannier-developers/wannier90/pull/193) [[#185]](https://github.com/wannier-developers/wannier90/pull/185) [[#173]](https://github.com/wannier-developers/wannier90/pull/173) [[#151]](https://github.com/wannier-developers/wannier90/pull/151) [[#149]](https://github.com/wannier-developers/wannier90/pull/149) [[#125]](https://github.com/wannier-developers/wannier90/pull/125) [[#120]](https://github.com/wannier-developers/wannier90/pull/120) [[#76]](https://github.com/wannier-developers/wannier90/pull/76)
Expand Down Expand Up @@ -71,7 +103,9 @@ Moreover, it generates a new file `seedname_band.labelinfo.dat` with information

- Improvements to the Wigner-Seitz detection routines [[#117]](https://github.com/wannier-developers/wannier90/pull/117) [[#109]](https://github.com/wannier-developers/wannier90/pull/109)

- Fix berry_task check for morb, and add check for kpoint_path block in parameters [[#258]](https://github.com/wannier-developers/wannier90/pull/258)

- Use 64 bit integer in io_wallclocktime [[#266]](https://github.com/wannier-developers/wannier90/pull/266)



Expand Down
29 changes: 22 additions & 7 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,19 @@ TAR := $(shell if which gnutar 1>/dev/null 2> /dev/null; then echo gnutar; else

default: wannier post

all: wannier lib post w90chk2chk w90pov w90vdw
PREFIX ?= /usr

install: default
install -d $(DESTDIR)$(PREFIX)/bin/
for x in wannier90.x postw90.x w90chk2chk.x w90spn2spn.x ; do \
if [ -f "$$x" ]; then install -m755 "$$x" "$(DESTDIR)$(PREFIX)/bin/$$x"; fi; \
done
if [ -f "utility/w90pov/w90pov" ]; then install -m755 "utility/w90pov/w90pov" "$(DESTDIR)$(PREFIX)/bin/w90pov"; fi;
if [ -f "utility/w90vdw/w90vdw.x" ]; then install -m755 "utility/w90vdw/w90vdw.x" "$(DESTDIR)$(PREFIX)/bin/w90vdw.x"; fi;
install -d $(DESTDIR)$(PREFIX)/lib/
if [ -f "libwannier.a" ]; then install -m644 "libwannier.a" "$(DESTDIR)$(PREFIX)/lib/libwannier.a"; fi;

all: wannier lib post w90chk2chk w90pov w90vdw w90spn2spn

doc: thedoc

Expand All @@ -18,6 +30,9 @@ serialobjs: objdir
w90chk2chk: objdir serialobjs
(cd $(ROOTDIR)/src/obj && $(MAKE) -f $(REALMAKEFILE) w90chk2chk)

w90spn2spn: objdir serialobjs
(cd $(ROOTDIR)/src/obj && $(MAKE) -f $(REALMAKEFILE) w90spn2spn)

wannier: objdir serialobjs
(cd $(ROOTDIR)/src/obj && $(MAKE) -f $(REALMAKEFILE) wannier)

Expand Down Expand Up @@ -58,7 +73,7 @@ clean:
cd $(ROOTDIR)/test-suite && ./clean_tests

veryclean: clean
cd $(ROOTDIR) && rm -f wannier90.x postw90.x libwannier.a w90chk2chk.x
cd $(ROOTDIR) && rm -f wannier90.x postw90.x libwannier.a w90chk2chk.x w90spn2spn.x
cd $(ROOTDIR)/doc && rm -f user_guide.pdf tutorial.pdf
cd $(ROOTDIR)/doc/user_guide && rm -f user_guide.ps
cd $(ROOTDIR)/doc/tutorial && rm -f tutorial.ps
Expand All @@ -68,14 +83,14 @@ thedoc:
$(MAKE) -C $(ROOTDIR)/doc/user_guide
$(MAKE) -C $(ROOTDIR)/doc/tutorial

# For now hardcoded to 3.0.0, and using HEAD
# For now hardcoded to 3.1.0, and using HEAD
# Better to get the version from the io.F90 file and use
# the tag (e.g. v3.0.0) instead of HEAD
# the tag (e.g. v3.1.0) instead of HEAD
dist:
cd $(ROOTDIR) && git archive HEAD --prefix=wannier90-3.0.0/ -o wannier90-3.0.0.tar.gz
cd $(ROOTDIR) && git archive HEAD --prefix=wannier90-3.1.0/ -o wannier90-3.1.0.tar.gz

dist-legacy:
@(cd $(ROOTDIR) && $(TAR) -cz --transform='s,^\./,wannier90-3.0/,' -f wannier90-3.0.tar.gz \
@(cd $(ROOTDIR) && $(TAR) -cz --transform='s,^\./,wannier90-3.1/,' -f wannier90-3.1.tar.gz \
./src/*.?90 \
./src/postw90/*.?90 \
./autodoc/README.txt \
Expand Down Expand Up @@ -202,4 +217,4 @@ objdirp:
then mkdir src/objp ; \
fi ) ;

.PHONY: wannier default all doc lib libs post clean veryclean thedoc dist test-serial test-parallel dist-lite objdir objdirp serialobjs tests
.PHONY: wannier default all doc lib libs post clean veryclean thedoc dist test-serial test-parallel dist-lite objdir objdirp serialobjs tests w90spn2spn install
8 changes: 7 additions & 1 deletion README.install
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@
the user guide)
make w90vdw build the van der Waals code
make w90pov build the ray-tracing code
make install install the built binaries
make tests run test cases
make doc build the documentation
make dist make a tar-ball of the distribution
Expand All @@ -58,6 +59,11 @@
'make -j NN' will allow compilation using NN multiple threads.
On a multicore CPU this will build the executables in a shorter time.

'make install' supports DESTDIR and PREFIX variables.
Executables will be installed into $(DESTDIR)$(PREFIX)/bin directory,
libraries will be installed into $(DESTDIR)$(PREFIX)/lib directory.
The default DESTDIR is empty, and the default PREFIX is /usr.

In order to compile the postw90.x executable in its parallel version, you have
to specify
COMMS=mpi
Expand All @@ -78,7 +84,7 @@
LAPACK can be obtained from the netlib website. It also includes a
non-optimised BLAS.
http://www.netlib.org/lapack/


Linux x86,x86-64
----------------
Expand Down
17 changes: 15 additions & 2 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,25 @@ How to cite
+++++++++++
Please cite the following paper in any publications arising from the use of
this code:

G. Pizzi, V. Vitale, R. Arita, S. Blügel, F. Freimuth, G. Géranton, M. Gibertini,
D. Gresch, C. Johnson, T. Koretsune, J Ibañez-Azpiroz, H. Lee, J.M. Lihm,
D. Marchand, A. Marrazzo, Y. Mokrousov, J.I. Mustafa, Y. Nohara, Y. Nomura,
L. Paulatto, S. Poncé, T. Ponweiser, J. Qiao, F. Thöle, S.S. Tsirkin,
M. Wierzbowska, N. Marzari, D. Vanderbilt, I. Souza, A.A. Mostofi, J.R. Yates,
Wannier90 as a community code: new features and applications,
`J. Phys. Cond. Matt. 32, 165902`_ (2020)

.. _J. Phys. Cond. Matt. 32, 165902: https://doi.org/10.1088/1361-648X/ab51ff

If you are using versions 2.x of the code, cite instead:

A.A. Mostofi, J.R. Yates, G. Pizzi, Y.S. Lee, I. Souza,
D Vanderbilt, N Marzari, *An updated version of wannier90: A tool for
obtaining maximally-localised Wannier functions*,
`Comput. Phys. Commun. 185, 2309 (2014)`_

.. _Comput. Phys. Commun. 185, 2309 (2014): http://dx.doi.org/10.1016/j.cpc.2014.05.003
.. _Comput. Phys. Commun. 185, 2309 (2014): http://doi.org/10.1016/j.cpc.2014.05.003

For the method please cite:

Expand Down Expand Up @@ -95,6 +107,7 @@ In addition to the Wannier90 Developer Group, the other authors of Wannier90 v.3
* Takashi Koretsune (Tohoku University and JST PRESTO, JP): Symmetry-adapted Wannier functions, non-collinear spin with ultrasoft in pw2wannier90
* Julen Ibañez-Azpiroz (Universidad del Pais Vasco, ES): shift-current calculation
* Hyungjun Lee (EPFL, CH): Spinor-valued WFs, parallelisation of the core Wannier90 routines
* Jae-Mo Lihm (Seoul National University, KR): SCDM-k implementation for non-collinear spin in pw2wannier90
* Daniel Marchand (EPFL, CH): AiiDA-Wannier90 interface
* Antimo Marrazzo (EPFL, CH): GW bands interpolation, AiiDA-Wannier90 interface
* Yuriy Mokrousov (FZ Jülich, DE): Parallelization of the core routines
Expand Down Expand Up @@ -157,7 +170,7 @@ Wannier90 Version 1.0 was written by:
* Jonathan R. Yates (University of Oxford, GB)
* Young-Su Lee (KIST, KR)

Wannier90 is based on Fortran 77 codes written by:
Wannier90 is based on the [Wannier Fortran 77 code](http://www.wannier.org/history/) by:

* Nicola Marzari (EPFL, CH)
* Ivo Souza (Universidad del Pais Vasco, ES)
Expand Down
5 changes: 2 additions & 3 deletions config/make.inc.alpha
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
#======

F90 = f90
FCOPTS = -fast
LDOPTS = -fast
FCOPTS = -fast
LDOPTS = -fast
LIBS = -lcxml

5 changes: 1 addition & 4 deletions config/make.inc.g95
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
# g95
#===================
F90 = g95
FCOPTS = -O2
FCOPTS = -O2
LDOPTS = -O2


Expand All @@ -18,6 +18,3 @@ LDOPTS = -O2
#=======================
#LIBDIR = /usr/local/lib
#LIBS = -L$(LIBDIR) -llapack -lblas



13 changes: 4 additions & 9 deletions config/make.inc.gfort
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@
F90 = gfortran

#Add next two lines for parallel postw90. Choose the correct name of the mpi f90 wrapper
#COMMS = mpi
#COMMS = mpi
#MPIF90 = mpgfortran #mpif90

FCOPTS = -O3
FCOPTS = -O3
LDOPTS =

#Next two lines are good for debugging
#FCOPTS = -fstrict-aliasing -fno-omit-frame-pointer -fno-realloc-lhs -fcheck=bounds,do,recursion,pointer -ffree-form -Wall -Waliasing -Wsurprising -Wline-truncation -Wno-tabs -Wno-uninitialized -Wno-unused-dummy-argument -Wno-unused -Wno-character-truncation -O1 -g -fbacktrace
#FCOPTS = -fstrict-aliasing -fno-omit-frame-pointer -fno-realloc-lhs -fcheck=bounds,do,recursion,pointer -ffree-form -Wall -Waliasing -Wsurprising -Wline-truncation -Wno-tabs -Wno-uninitialized -Wno-unused-dummy-argument -Wno-unused -Wno-character-truncation -O1 -g -fbacktrace
#LDOPTS = -fstrict-aliasing -fno-omit-frame-pointer -fno-realloc-lhs -fcheck=bounds,do,recursion,pointer -ffree-form -Wall -Waliasing -Wsurprising -Wline-truncation -Wno-tabs -Wno-uninitialized -Wno-unused-dummy-argument -Wno-unused -Wno-character-truncation -O1 -g -fbacktrace


Expand All @@ -25,7 +25,7 @@ LDOPTS =
#=======================
# NETLIB LAPACK and BLAS
#=======================
#LIBDIR = /rscratch/jry20/LIB/gfortran
#LIBDIR = /rscratch/jry20/LIB/gfortran
#LIBS = -L$(LIBDIR) -llapack -lblas

#=======================
Expand All @@ -35,8 +35,3 @@ LDOPTS =
# on Ubuntu
#=======================
LIBS = -llapack -lblas





11 changes: 3 additions & 8 deletions config/make.inc.gfort.dynlib
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@
F90 = gfortran

#Add next two lines for parallel postw90. Choose the correct name of the mpi f90 wrapper
#COMMS = mpi
#COMMS = mpi
#MPIF90 = mpgfortran #mpif90

FCOPTS = -O3 -fPIC
LDOPTS = -fPIC

#Next two lines are good for debugging
#FCOPTS = -fstrict-aliasing -fno-omit-frame-pointer -fno-realloc-lhs -fcheck=bounds,do,recursion,pointer -ffree-form -Wall -Waliasing -Wsurprising -Wline-truncation -Wno-tabs -Wno-uninitialized -Wno-unused-dummy-argument -Wno-unused -Wno-character-truncation -O1 -g -fbacktrace
#FCOPTS = -fstrict-aliasing -fno-omit-frame-pointer -fno-realloc-lhs -fcheck=bounds,do,recursion,pointer -ffree-form -Wall -Waliasing -Wsurprising -Wline-truncation -Wno-tabs -Wno-uninitialized -Wno-unused-dummy-argument -Wno-unused -Wno-character-truncation -O1 -g -fbacktrace
#LDOPTS = -fstrict-aliasing -fno-omit-frame-pointer -fno-realloc-lhs -fcheck=bounds,do,recursion,pointer -ffree-form -Wall -Waliasing -Wsurprising -Wline-truncation -Wno-tabs -Wno-uninitialized -Wno-unused-dummy-argument -Wno-unused -Wno-character-truncation -O1 -g -fbacktrace


Expand All @@ -25,7 +25,7 @@ LDOPTS = -fPIC
#=======================
# NETLIB LAPACK and BLAS
#=======================
#LIBDIR = /rscratch/jry20/LIB/gfortran
#LIBDIR = /rscratch/jry20/LIB/gfortran
#LIBS = -L$(LIBDIR) -llapack -lblas

#=======================
Expand All @@ -35,8 +35,3 @@ LDOPTS = -fPIC
# on Ubuntu
#=======================
LIBS = -llapack -lblas





7 changes: 3 additions & 4 deletions config/make.inc.gfort.travisci
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@
F90 = gfortran

# Keep these committed - we test for the time being only the serial version
#COMMS = mpi
#COMMS = mpi
#MPIF90 = mpgfortran #mpif90

# Options for debugging When we move to 4.9 add -fsanitize=leak
FCOPTS = -fprofile-arcs -ftest-coverage -fstrict-aliasing -fno-omit-frame-pointer -fno-realloc-lhs -fcheck=bounds,do,recursion,pointer -ffree-form -Wall -Waliasing -Wsurprising -Wline-truncation -Wno-tabs -Wno-uninitialized -Wno-unused-dummy-argument -Wno-unused -Wno-character-truncation -O1 -g -fbacktrace
LDOPTS = -fprofile-arcs -ftest-coverage -fstrict-aliasing -fno-omit-frame-pointer -fno-realloc-lhs -fcheck=bounds,do,recursion,pointer -ffree-form -Wall -Waliasing -Wsurprising -Wline-truncation -Wno-tabs -Wno-uninitialized -Wno-unused-dummy-argument -Wno-unused -Wno-character-truncation -O1 -g -fbacktrace
FCOPTS = -fprofile-arcs -ftest-coverage -fstrict-aliasing -fno-omit-frame-pointer -fno-realloc-lhs -fcheck=bounds,do,recursion,pointer -ffree-form -Wall -Waliasing -Wsurprising -Wline-truncation -Wno-tabs -Wno-uninitialized -Wno-unused-dummy-argument -Wno-unused -Wno-character-truncation -O1 -g -fbacktrace
LDOPTS = -fprofile-arcs -ftest-coverage -fstrict-aliasing -fno-omit-frame-pointer -fno-realloc-lhs -fcheck=bounds,do,recursion,pointer -ffree-form -Wall -Waliasing -Wsurprising -Wline-truncation -Wno-tabs -Wno-uninitialized -Wno-unused-dummy-argument -Wno-unused -Wno-character-truncation -O1 -g -fbacktrace

#=======================
# System LAPACK and BLAS
Expand All @@ -18,4 +18,3 @@ LDOPTS = -fprofile-arcs -ftest-coverage -fstrict-aliasing -fno-omit-frame-poin
# on Ubuntu
#=======================
LIBS = -llapack -lblas

5 changes: 2 additions & 3 deletions config/make.inc.ifort
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@
F90 = ifort
COMMS=mpi
MPIF90=mpiifort
FCOPTS=-O2
LDOPTS=-O2
FCOPTS=-O2
LDOPTS=-O2

#========================================================
# Intel mkl libraries. Set LIBPATH if not in default path
Expand All @@ -20,4 +20,3 @@ LIBS = -L$(LIBDIR) -lmkl_core -lmkl_intel_lp64 -lmkl_sequential -lpthread
#=======================
#LIBDIR = /usr/local/lib
#LIBS = -L$(LIBDIR) -llapack -lf77blas -lcblas -latlas

5 changes: 2 additions & 3 deletions config/make.inc.ifort_tcm
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ F90 = ifort
COMMS=mpi
MPIF90=mpifort
FCOPTS = -O3
LDOPTS =
LDOPTS =

#useful debuf options
#FCOPTS=-Ddebug -O0 -g -fno-omit-frame-pointer -debug extended -traceback -C -Ddebug -stand f95 -warn all
Expand All @@ -17,11 +17,10 @@ LDOPTS =
# Intel mkl libraries. Set LIBPATH if not in default path
#========================================================

LIBS = -L$(LIBDIR) -Bstatic -lmkl
LIBS = -L$(LIBDIR) -Bstatic -lmkl

#=======================
# ATLAS Blas and LAPACK
#=======================
#LIBDIR = /usr/local/lib
#LIBS = -L$(LIBDIR) -llapack -lf77blas -lcblas -latlas

Loading

0 comments on commit 1d6b187

Please sign in to comment.