Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Library development: creation of data types and associated restructuring of the code #394

Merged
merged 491 commits into from
Feb 10, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
491 commits
Select commit Hold shift + click to select a range
47f8edd
work on dos.F90 in postw90
pleoluxbg May 12, 2021
a54f203
catch all recognised keywords when parsing .win file (captures postw9…
May 14, 2021
13534ea
With change to wannier90 types, chane w90_parameters to w90_param_types
sstgfbc May 17, 2021
90535ff
Merge branch 'input-parser-mod' into use-types
May 17, 2021
5dbf28e
Merge branch 'pw90-kpath' into use-types (kpath changes)
sstgfbc May 17, 2021
e3798b7
Reset postw90 testsuite to contain wannier90 keywords
sstgfbc May 17, 2021
2a5b604
add dummy read for projections, fix dummy read for kpath
May 17, 2021
fc3aedb
edit boltzwann.F90
pleoluxbg May 17, 2021
2dde126
Changes to postw90_common. Currently kslice, geninterp and gyrotropic
sstgfbc May 18, 2021
5f01fd5
use argument lists in get_oper.F90
May 19, 2021
3297973
propagate changes coming from get_oper argument lists (work in progre…
May 23, 2021
67bad52
correct number of k-points in geninterp (fix bug in last commit)
May 24, 2021
bd97b02
arguments geninterp.F90
pleoluxbg May 24, 2021
6d4e1a6
Merge branch 'use-types' of github.com:ImperialCollegeLondon/wannier9…
sstgfbc May 25, 2021
c658bac
Tidy up some line formatting to reduce compiler warnings
sstgfbc May 25, 2021
afa66f3
Fix the '-check all' issue with unallocated arrays in gyrotropic
sstgfbc May 25, 2021
d9f5fba
All the gyrotropic_get_k_list arrays needed to be allocatable to pass…
sstgfbc May 25, 2021
0663e0c
Tidy up some unused module parameters reported by the GNU compiler
sstgfbc May 25, 2021
e41ee76
Merge branch 'use-types' of github.com:ImperialCollegeLondon/wannier9…
sstgfbc May 25, 2021
df495a8
edit gyrotropic.F90
pleoluxbg May 25, 2021
c0aa04a
Merge branch 'use-types' of github.com:ImperialCollegeLondon/wannier9…
sstgfbc May 26, 2021
8835222
move get_oper data to a staging module while implementing arg lists
May 28, 2021
6dddd43
patch up some errors after rebase
May 28, 2021
4a62787
Postw90_common doesn't currently need get_oper_data, and makefile dep…
sstgfbc May 28, 2021
164150f
Turn ws_distance into a type that is used in post wannier90
sstgfbc May 28, 2021
6ec03e2
Localise use of get_oper_data in BGS files
sstgfbc Jun 2, 2021
3f66822
Remove get_oper_data from wan_ham
sstgfbc Jun 2, 2021
3e61cc9
Remove get_oper_data from spin
sstgfbc Jun 2, 2021
ea0964b
Remove get_oper_data from kpath
sstgfbc Jun 2, 2021
b9a3809
Remove get_oper_data from berry
sstgfbc Jun 2, 2021
9349154
Missed a get_oper_data in spin_get_S
sstgfbc Jun 2, 2021
018c91f
Remove get_oper_data from boltzwann
sstgfbc Jun 2, 2021
29c23d9
done get_oper.F90 arguments
pleoluxbg Jun 2, 2021
2641ee8
Remove w90_parameters data module
sstgfbc Jun 2, 2021
56aada4
Remove wannier_param_data
sstgfbc Jun 2, 2021
b93b612
Remove world communicator from pw90_parameters
sstgfbc Jun 2, 2021
2d59f71
Remove data from pw90_parameters
sstgfbc Jun 2, 2021
7e42f7c
Need an allocatable in gyrotropic_get_NOA_k
sstgfbc Jun 2, 2021
e4c16b0
delete comms_setup function, revive old library interface
Jun 3, 2021
a16b770
make the (old) library correctly depend on a serial comms object
Jun 3, 2021
01f751d
more kmesh.F90 and dos.F90 edits
pleoluxbg Jun 7, 2021
bb41ff8
Remove v_matrix from postw90_common
sstgfbc Jun 2, 2021
c5d76cd
Fix mistake rebasing postw90 driver
sstgfbc Jun 4, 2021
92fa589
Convert irvec/crvec... in postw90_common into a type
sstgfbc Jun 7, 2021
c2a77db
Only calculate call volume where it is needed
sstgfbc Jun 7, 2021
79aab1c
Turn kpoints from file into a type
sstgfbc Jun 7, 2021
e08cf20
move last module data into trans_main (but nrpts_one_dim essentially …
Jun 7, 2021
7413120
include io_error in imported names
Jun 8, 2021
2e751d4
Remove module vars from wann90_methods
sstgfbc Jun 9, 2021
bbfbc0c
ordering the arguments in src files
pleoluxbg Jun 16, 2021
003e0b4
rationalise arguments of selected top-level subroutines in postw90
Jun 9, 2021
2bdb849
forget objp
Jun 16, 2021
361e861
link executable to new library
Jun 16, 2021
0dbbe98
Remove module vars from postw90_param
sstgfbc Jun 15, 2021
3857f5f
Localise parameters module fermi data into read_fermi routine
sstgfbc Jun 15, 2021
3a8c1fd
Rename extra_write to extra_io
sstgfbc Jun 15, 2021
ba2fa38
remove libwan2 in clean target
Jun 16, 2021
9f09c8e
Split disentangle type into convergence data and window - wannier90 c…
sstgfbc Jun 16, 2021
6549bb6
Make postw90 and the other files compile with disentangle
sstgfbc Jun 16, 2021
43d4e40
some further simplifications to make setup
Jun 17, 2021
24bd4c7
Merge branch 'makehack' into use-types
Jun 18, 2021
f540e7e
more ordering of arguments
pleoluxbg Jun 22, 2021
4ffe985
Shift spin_moment into pw90_calcs
sstgfbc Jun 22, 2021
6adb973
Remvove redundant spin_ from pw90_spin components
sstgfbc Jun 22, 2021
1acdcd4
Move spin_decomp into pw90_spin
sstgfbc Jun 22, 2021
79538e8
Introduce general smearing type for use by dos/berry/boltzwann into p…
sstgfbc Jun 22, 2021
645ae54
Remove unused subroutine parameter in wan_ham
sstgfbc Jun 22, 2021
2a8ce9d
Change logical symbols for pre-processor and remove postproc_type
sstgfbc Jun 29, 2021
3965690
Split input_projection from kmesh_data
sstgfbc Jun 29, 2021
65a9c8a
ordering arguments in berry.F90
pleoluxbg Jul 4, 2021
6c43bb6
more ordering of arguments
pleoluxbg Jul 5, 2021
8be5394
done ordering berry
pleoluxbg Jul 6, 2021
b8c490c
Group all wannier tasks into w90_calculation_type
sstgfbc Jul 2, 2021
6d0ff83
Split param_plot_type into bands abd wannier plot sub-types
sstgfbc Jul 5, 2021
7e9b875
Restructure wannierise_type and group omega_ together.
sstgfbc Jul 5, 2021
2637b06
Extend use of wannier sub-types in wannierise
sstgfbc Jul 5, 2021
24ce036
Split of verbosity flags from parameter_input. Postw90 doesn't compil…
sstgfbc Jul 5, 2021
0da5384
Split off gamma_only to independent variable
sstgfbc Jul 6, 2021
fed4b77
Fix a few lenconfac that were still in parameter_input_type
sstgfbc Jul 6, 2021
7b69639
Introduce new types and temporarily keep original parameter_input_type
sstgfbc Jul 6, 2021
1e6e7ab
Introduce use of w90_system_type into wannier90 code
sstgfbc Jul 6, 2021
6bae997
Use exclude_bands_type
sstgfbc Jul 6, 2021
fed3e0b
Fix gamma_only in postw90
sstgfbc Jul 6, 2021
6d7c730
Initial use of real_space_type
sstgfbc Jul 6, 2021
d57f9d6
Split off have_disentangled
sstgfbc Jul 6, 2021
0d6b4c8
put back mpi_abort() call until error handling restructured
Jul 7, 2021
e20b11a
order
pleoluxbg Jul 13, 2021
2542338
Partial review of types implementation.
mostofi Jul 22, 2021
cd02349
remove param_input use (gone now) replace with system and verbose obj…
Aug 1, 2021
ea31d93
tidy up some argument ordering of wham* functions
Aug 1, 2021
fcde7b2
clean up some style clashes to do with using dimension()
Aug 1, 2021
7b98dec
Remove parameter_input_type
sstgfbc Aug 2, 2021
9f03a11
Rename real_space_type to real_space_ham_type
sstgfbc Aug 2, 2021
0b0c767
Rename param_kmesh_type to kmesh_input_type
sstgfbc Aug 2, 2021
5006bf0
Move projection_type into proj_input_type (was input_proj_type)
sstgfbc Aug 2, 2021
5ccfb5f
Remove checkpoint from param_driver_type
sstgfbc Aug 2, 2021
6addeac
Move preproc_setup/restart into w90_calculation_type
sstgfbc Aug 2, 2021
4f22d49
Finish removing param_driver_type
sstgfbc Aug 2, 2021
dcc3475
Split write_* from w90_calculation_type into separate type
sstgfbc Aug 2, 2021
3e7f620
Make disentanglement a local variable where it is used
sstgfbc Aug 2, 2021
65f6c11
Remove unused parameter to dos_get_k
sstgfbc Aug 2, 2021
e23a0eb
Move bands%plot_dim to real_space_ham_type as system_dim
sstgfbc Aug 2, 2021
64e746c
Rename special_kpoints_type to kpoint_path_type
sstgfbc Aug 2, 2021
8a03925
remove unsued parameter from get_gauge_overlap
sstgfbc Aug 2, 2021
f5dc0a3
Move bands_num_points to num_points_first_segment in kpoint_path_type
sstgfbc Aug 3, 2021
fa0411f
Since the real_space_ham_type is 'global', move the reader routine to
sstgfbc Aug 3, 2021
be9769a
Not sure that real_space_ham will remain in parameters, so revert move
sstgfbc Aug 3, 2021
cb1f21d
Split real_space_ham_type
sstgfbc Aug 3, 2021
322bfa3
Move separated real_space_ham_type into wannier90 only
sstgfbc Aug 3, 2021
983da2f
Remove param_ from plot_type
sstgfbc Aug 3, 2021
028a5dc
Remove param_ from wannierise_type
sstgfbc Aug 3, 2021
0966127
Remove param_ from hamiltonian_type
sstgfbc Aug 3, 2021
b76b443
Enabling tests in the branch
giovannipizzi Aug 4, 2021
512ba15
Completion of first pass of review of types.
mostofi Aug 9, 2021
ef5a699
Merge branch 'type-review' of github.com:ImperialCollegeLondon/wannie…
mostofi Aug 9, 2021
fa2c6d8
Rename k_point_type -> k_points_type
sstgfbc Aug 10, 2021
6652c82
Rename disentangle_manifold to dis_manifold
sstgfbc Aug 10, 2021
28750a4
Rename postw90_oper_type to pw90_oper_read_type
sstgfbc Aug 10, 2021
72ad5bb
Rename postw90_spin_type to pw90_spin_mod_type
sstgfbc Aug 10, 2021
29cea17
Rename postw90_ham_type to pw90_band_deriv_degen_type
sstgfbc Aug 10, 2021
4b26d2d
Rename kpath_type to pw90_kpath_mod_type
sstgfbc Aug 10, 2021
3b6c126
Rename kslice_type to pw90_kslice_mod_type
sstgfbc Aug 10, 2021
7be7b4b
Rename adapt_smear_type (and components) to pw90_smearing_type
sstgfbc Aug 10, 2021
bde4243
Rename dos_plot_type (and smr) to pw90_dos_mod_type (smearing)
sstgfbc Aug 10, 2021
d2c4842
Rename berry_type (and kubo_smr) to pw90_berry_mod_type (kubo_smearing)
sstgfbc Aug 10, 2021
87d2d0e
Rename spin_hall_type to pw90_spin_hall_type
sstgfbc Aug 10, 2021
b45ef07
Rename gyrotropic_type to pw90_gyrotropic_type
sstgfbc Aug 10, 2021
c00b9d8
Rename geninterp_type to pw90_geninterp_mod_type
sstgfbc Aug 10, 2021
1ef1242
Reanem boltzwann_type (and dos_smr) to pw90_boltzwann_type (dos_smear…
sstgfbc Aug 10, 2021
eb54ff4
Rename plot_type (and components) to wvfn_read_type
sstgfbc Aug 10, 2021
032f488
disentangle_type -> dis_control_type
sstgfbc Aug 10, 2021
0f82595
Rename wann_localise_type to wann_slwf_type
sstgfbc Aug 10, 2021
48cd0fb
Rename components of wann_slwf_type
sstgfbc Aug 10, 2021
27f09d7
Move hamiltonian_type into real_space_ham_type
sstgfbc Aug 10, 2021
896ae68
Rename fermi_surface_type to fermi_surface_plot_type
sstgfbc Aug 10, 2021
65dbe4d
Move spin_decomp into pw90_calculation_type
sstgfbc Aug 10, 2021
37b01b3
Create guiding_centres_type for wannierise
sstgfbc Aug 11, 2021
d337fa5
Fix Makefile dependency for parameters.F90
sstgfbc Aug 11, 2021
62be271
Remove devel_flag
sstgfbc Aug 11, 2021
0fe4590
Introduce dis_spheres_type
sstgfbc Aug 11, 2021
7d92f41
Move the constraints into wann_control_type, remove wannierise_type and
sstgfbc Aug 11, 2021
7efa32a
Tidy up a couple of review comments.
sstgfbc Aug 11, 2021
fcd8c7d
Tidy up a couple of variables in kmesh that were only used by devel_flag
sstgfbc Aug 11, 2021
1aef984
switch CI to use-types branch
Aug 11, 2021
6f8dd29
fixed disentanglement in param_dist
pleoluxbg Aug 12, 2021
7b1076e
separated out effective_model from postw90_common_type
pleoluxbg Aug 12, 2021
f08b1b3
hacks to remove MPI calls from io_error
Aug 10, 2021
68e5ad0
patch up some mistaken ifdefing for mpi_status type
Aug 11, 2021
f98dd39
fix some error message printing details
Aug 13, 2021
f9a6c75
correct status type in comms.F90
Aug 13, 2021
c3a10f8
another fix to status type in comms.F90
Aug 13, 2021
29a01d7
rewind unnecessary Makefile change for serial/plel comms.o
Aug 13, 2021
2e73b2d
make the various helper codes function correctly in pllel builds
Aug 13, 2021
b242ab5
split postw90_common_type into scissors_shift and effective_model and…
pleoluxbg Aug 16, 2021
bfe881b
Remove num_project from band_plot_type as it is the length of project
sstgfbc Aug 16, 2021
8764abc
Relabel fields in wannier_plot_type to remove plot_, and remove num_p…
sstgfbc Aug 16, 2021
6ea24e2
In the current code band plotting and wannier plotting have been spli…
sstgfbc Aug 16, 2021
16542f9
Remove bands_num_spec_points which is the size of the labels/points a…
sstgfbc Aug 16, 2021
eee580e
Remove exclude_bands_type, just passing the allocatable array and using
sstgfbc Aug 16, 2021
9a1b570
Remove fermi_data_type and revert to an array where the length is tak…
sstgfbc Aug 17, 2021
3cde925
changes affecting github CI (in progress)
Aug 23, 2021
90d3057
tweak wannier_lib
Aug 23, 2021
3f611b5
type naming according to convention
pleoluxbg Aug 20, 2021
021e65e
line length
Aug 23, 2021
e3e5c3c
run: pre-commit run --all-files
Aug 23, 2021
007179d
Only pass real_lattice and generate the correct recip_lattice or inve…
sstgfbc Aug 25, 2021
90832ec
Since we are only using the real_lattice, we also need to calculate the
sstgfbc Aug 26, 2021
b7b8c80
move mpi_init to test_library.F90, sanitise some other MPI details
Aug 26, 2021
4dd7fdd
type names in wannierise.F90
pleoluxbg Aug 27, 2021
2b18376
Lattice passed to get-projections should be inverse of real
sstgfbc Sep 1, 2021
6078699
Remove storage of fractional atom coordinates in atom_data_type.
sstgfbc Sep 1, 2021
04d063e
Only store kpt_latt fractional coordinates, and generate kpt_cart in …
sstgfbc Sep 2, 2021
3f95dde
Remove k_points_type now that it only contains kpt_latt.
sstgfbc Sep 2, 2021
9b1f132
Move translate_home_cell to real_space_ham_type
sstgfbc Sep 9, 2021
ab0c634
Introduce kmesh_spacing_type
sstgfbc Sep 13, 2021
5b5ad87
Apply kmesh_spacing_type to pw90_spin_mod_type
sstgfbc Sep 13, 2021
5503a9c
Use kmesh_spacing_type in pw90_dos_mod_type
sstgfbc Sep 13, 2021
cd062b4
Introduce kmesh_spacing_type into berry_mod_type
sstgfbc Sep 13, 2021
7032539
Introduce kmesh_spacing_type into gyrotropic_type
sstgfbc Sep 13, 2021
402e49a
Use kmesh_spacing_type in pw90_boltzwann_type
sstgfbc Sep 13, 2021
d1e33cb
Modify get_module_kmesh to use kmesh_spacing_type
sstgfbc Sep 13, 2021
f684fb5
Global kmesh is only needed na postw90 and can be moved from parameters
sstgfbc Sep 14, 2021
c108a2d
variable names in wannier_prog.F90
pleoluxbg Sep 14, 2021
b5da29b
more variable renamed
pleoluxbg Sep 15, 2021
4e66d43
Use pw90_smearing_type for TDF_smearing in boltzwann_type
sstgfbc Sep 14, 2021
935c8ae
Use pw90_smearing_type (fixed only), in gyrotropic_type
sstgfbc Sep 14, 2021
3a5efde
Move gyrotropic's smr_max_arg into smearing_type
sstgfbc Sep 29, 2021
c9dbb6b
Deallocate select_projection in param_w90_dealloc, since it doesn't s…
sstgfbc Sep 29, 2021
efeb2d2
Modify dos_get_k to pass smearing_type instead of optional sub-parts
sstgfbc Sep 29, 2021
228d369
Rename localisation_vars to *_type in wannierise
sstgfbc Sep 29, 2021
0db057f
Rename ham_logical to ham_logical_type in hamiltonian
sstgfbc Sep 29, 2021
dcb125c
Rename sitesym_data to sitesym_data_type
sstgfbc Sep 29, 2021
a9c4eec
variable names in berry.F90 and boltzwann.F90
pleoluxbg Sep 29, 2021
f785cc3
Merge branch 'use-types' of github.com:ImperialCollegeLondon/wannier9…
pleoluxbg Sep 29, 2021
834b2db
variables in boltzwann.F90
pleoluxbg Sep 29, 2021
e5b7413
varibables in geninterp.F90 and gyrotropic.F90
pleoluxbg Sep 29, 2021
007f031
type/variables in postw90/kpath.F90 and postw90/kslice.F90
pleoluxbg Oct 2, 2021
65d5f98
rename w90commtype to w90comm_type
Oct 8, 2021
142303d
use consistent name for communicator (comm, not w90comm)
Oct 8, 2021
f4db5a7
consistent use of _types in names of types
Oct 8, 2021
b9d8d92
variable names in postw90/postw90_common.F90
pleoluxbg Oct 11, 2021
ec629a8
Move sitesym_data, ham_logical and ws_distance types
sstgfbc Oct 12, 2021
dbb0ad8
Move wigner_seitz and kpoint_dist types from postw90_common
sstgfbc Oct 12, 2021
6b91db5
Modify variables names in wan_ham
sstgfbc Oct 12, 2021
7c12fcd
Rename sym and hmlg to match their type names (sitesym and ham_logical)
sstgfbc Oct 12, 2021
9b93082
variable names in postw90_param.F90
pleoluxbg Oct 12, 2021
8926761
changes to postw90_param.F90
pleoluxbg Oct 12, 2021
2b95913
mofified variable names in postw90/spin.F90
pleoluxbg Oct 13, 2021
7daed44
rename param -> types, readwrite
Oct 13, 2021
0df4148
wannier_param_types -> w90_wannier90_types
Oct 13, 2021
0445488
wannier_methods -> w90_wannier90_readwrite
Oct 13, 2021
f04453c
pw90_param_methods -> w90_postw90_readwrite
Oct 13, 2021
b1450c4
pw90_parameters -> w90_postw90_types
Oct 13, 2021
47a7f94
w90_param_methods -> w90_readwrite
Oct 13, 2021
be219be
w90_param_types -> w90_types
Oct 13, 2021
0120a47
rename modules in legacy lib
Oct 13, 2021
15a12b1
Make optimisation an independent variable
sstgfbc Oct 13, 2021
7984f61
Merge remote-tracking branch 'w90main/develop' into develop
Oct 18, 2021
32ff765
restore behaviour of ratmax (max imag in plot)
Oct 18, 2021
b1fdad9
some changes missed in merge
Oct 18, 2021
f9409ba
fixes mistake in plot.F90 merge
Oct 18, 2021
7bb044e
correct final problem to do with pllelisation of plot() after merge (…
Oct 19, 2021
7e7fa58
modified variable names in wannier90_readwrite.F90
pleoluxbg Oct 19, 2021
aa9fd67
checking files for missed variables
pleoluxbg Oct 20, 2021
f76c02b
modified variable names in readwrite.F90
pleoluxbg Oct 20, 2021
6d837be
final couple of modified variables in postw90/dos.F90
pleoluxbg Oct 20, 2021
b6fe793
fix plot issues after merge (wannier tests pass; postw90 not building)
Oct 22, 2021
aa73430
Add new commands from merge into postw90_readwrite and try to fix berry.
sstgfbc Oct 22, 2021
e65cca1
adapt (Ryoo) get_saa_r and get_sbb_r functions to new args
Oct 25, 2021
e5370a5
add strangely missing comm arg in legacy library
Oct 25, 2021
6cea6bb
correct failure to initialise on_root and mpi issue in plot()
Oct 25, 2021
4c292ae
add some notes describing new variables
Oct 27, 2021
d9ffa8b
remove irrelevant comments, remove parameters.F90
Nov 4, 2021
9a87655
remove some outdated comments
Nov 4, 2021
d72199c
rename various public subroutines according to convention
Nov 5, 2021
748459e
various cosmetic changes, remove some unused variables
Nov 5, 2021
6e13ed6
further cosmetic changes
Nov 5, 2021
8ad1b9f
filter with pre-commit
Nov 5, 2021
0a4cb3c
fixes line over-length
Nov 5, 2021
aed35ce
cleans up source code; removes dead comments
Nov 5, 2021
dc38c62
delete some likely uncompilable commented code; some cosmetic changes
Nov 5, 2021
e15512a
cosmetic change
Nov 5, 2021
4a44d4a
improve long line wrapping
Nov 5, 2021
388e0b6
consistently use (kind=dp)
Nov 5, 2021
01fd729
style improvement
Nov 5, 2021
0222396
cosmetic style changes
Nov 6, 2021
33865e5
remove irrelevant comments from disentangle
Nov 6, 2021
5826271
make subroutine name less insane
Nov 6, 2021
7d9708c
reinstate some commented out code in overlap.F90
Nov 8, 2021
465131a
Merge pull request #385 from mostofi/libdev_use-types
mostofi Jan 27, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 5 additions & 2 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,9 @@ name: CI
on:
pull_request:
push:

branches:
- develop

jobs:
pre-commit:
runs-on: ubuntu-20.04
Expand Down Expand Up @@ -47,7 +49,8 @@ jobs:
else
cp ./.github/workflows/config/make.inc.gfort ./make.inc
fi
make -j default w90chk2chk libs
#make -j default w90chk2chk libs
make all
- name: run tests
env:
W90BINARYPARALLEL: ${{ matrix.w90-binary-parallel }}
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ make.inc
w90chk2chk.x
w90spn2spn.x
libwannier.a
libwan2.a
libwannier.so
libwannier.dylib
*~
Expand Down
31 changes: 9 additions & 22 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -24,22 +24,19 @@ all: wannier lib post w90chk2chk w90pov w90vdw w90spn2spn

doc: thedoc

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

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

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

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

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

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

w90pov:
Expand All @@ -50,8 +47,8 @@ w90vdw:

libs: lib

post: objdirp
(cd $(ROOTDIR)/src/objp && $(MAKE) -f $(REALMAKEFILE) post)
post: objdir
(cd $(ROOTDIR)/src/obj && $(MAKE) -f $(REALMAKEFILE) post)

clean:
cd $(ROOTDIR) && rm -f *~
Expand All @@ -61,19 +58,14 @@ clean:
$(MAKE) -f $(REALMAKEFILE) clean && \
cd ../ && rm -rf obj ; \
fi )
@( cd $(ROOTDIR) && if [ -d src/objp ] ; \
then cd src/objp && \
$(MAKE) -f $(REALMAKEFILE) clean && \
cd ../ && rm -rf objp ; \
fi )
$(MAKE) -C $(ROOTDIR)/doc/user_guide clean
$(MAKE) -C $(ROOTDIR)/doc/tutorial clean
$(MAKE) -C $(ROOTDIR)/utility/w90pov clean
$(MAKE) -C $(ROOTDIR)/utility/w90vdw clean
cd $(ROOTDIR)/test-suite && ./clean_tests

veryclean: clean
cd $(ROOTDIR) && rm -f wannier90.x postw90.x libwannier.a w90chk2chk.x w90spn2spn.x
cd $(ROOTDIR) && rm -f wannier90.x postw90.x libwannier.a libwan2.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 Down Expand Up @@ -212,9 +204,4 @@ objdir:
then mkdir src/obj ; \
fi ) ;

objdirp:
@( cd $(ROOTDIR) && if [ ! -d src/objp ] ; \
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 w90spn2spn install
.PHONY: wannier default all doc lib libs post clean veryclean thedoc dist test-serial test-parallel dist-lite objdir objdirp tests w90spn2spn install
22 changes: 22 additions & 0 deletions README.install
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,28 @@
non-optimised BLAS.
http://www.netlib.org/lapack/

Parallel builds
---------------

wannier90.x and postw90.x both support parallel execution using MPI. wannier90
is paralellised over k-points: gamma-only mode is not currently parallelised.

There are three common ways for using MPI with fortran:
1. "use mpi_f08" uses a complete fortran08 interface with custom types, this
allows detailed checking of arguments in MPI function calls
2. "use mpi" uses a fortran90 style interface, limited checking
3. "include 'mpif.h'" uses a legacy interface, no checking at all

Methods 1 and 2 require module files built by the same version of compiler that
is to be used to compile wannier90.

The specific interface to be used must be chosen by setting COMMS in make.inc
to one of "mpi08", "mpi90" or "mpih" (plain "mpi" is the same as "mpi90").

Particularly when wannier90 is to be used in library mode, the MPI interface
specified by COMMS must be the same as that used in the calling code; otherwise
using the fortran08 is recommended.


Linux x86,x86-64
----------------
Expand Down
118 changes: 74 additions & 44 deletions src/Makefile.2
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

include ../../make.inc

# Contains definition of OBJS, OBJSLIB, OBJS_POST, LIBRARY, DYNLIBRARY
# Contains definition of OBJS, OBJS_POST, LIBRARY, DYNLIBRARY
include ../Makefile.header

POSTDIR = ../postw90/
Expand All @@ -15,32 +15,43 @@ else
COMMS = serial
endif

ifeq ($(COMMS),mpi)
TEMP1 = -DMPI
ifeq ($(COMMS),mpi08)
TEMP1 = -DMPI -DMPI08
TEMP2 = $(MPIF90)
else ifeq ($(COMMS),mpih)
TEMP1 = -DMPI -DMPIH
TEMP2 = $(MPIF90)
else ifeq ($(COMMS),mpi90)
TEMP1 = -DMPI -DMPI90
TEMP2 = $(MPIF90)
else ifeq ($(COMMS),mpi)
# default to f90 style "use mpi"
TEMP1 = -DMPI -DMPI90
TEMP2 = $(MPIF90)
else
TEMP1 =
TEMP2 = $(F90)
endif


wannier libs dynlibs w90chk2chk serialobjs w90spn2spn: POSTOPTS = $(TEMP1)
wannier libs dynlibs w90chk2chk serialobjs w90spn2spn: COMPILER = $(TEMP2)
wannier libs dynlibs w90chk2chk w90spn2spn: POSTOPTS = $(TEMP1)
wannier libs dynlibs w90chk2chk w90spn2spn: COMPILER = $(TEMP2)
wannier: ../../wannier90.x
w90chk2chk: ../../w90chk2chk.x
w90spn2spn: ../../w90spn2spn.x

serialobjs: $(OBJS)

../../w90chk2chk.x: $(OBJS) ../w90chk2chk.F90
$(COMPILER) ../w90chk2chk.F90 $(LDOPTS) $(OBJS) $(LIBS) -o ../../w90chk2chk.x
$(COMPILER) $(POSTOPTS) ../w90chk2chk.F90 $(LDOPTS) $(OBJS) $(LIBS) -o ../../w90chk2chk.x

../../w90spn2spn.x: $(OBJS) ../w90spn2spn.F90
$(COMPILER) ../w90spn2spn.F90 $(LDOPTS) $(OBJS) $(LIBS) -o ../../w90spn2spn.x
$(COMPILER) $(POSTOPTS) ../w90spn2spn.F90 $(LDOPTS) $(OBJS) $(LIBS) -o ../../w90spn2spn.x

../../wannier90.x: $(OBJS) ../wannier_prog.F90
$(COMPILER) ../wannier_prog.F90 $(POSTOPTS) $(LDOPTS) $(OBJS) $(LIBS) -o ../../wannier90.x
../../wannier90.x: $(LIBRARYV2) ../wannier_prog.F90
$(COMPILER) ../wannier_prog.F90 $(POSTOPTS) $(LDOPTS) $(LIBRARYV2) $(LIBS) -o ../../wannier90.x

$(LIBRARYV2): $(OBJS)
$(AR) $(ARFLAGS) $(LIBRARYV2) $(OBJS)

post: POSTOPTS = $(TEMP1)
post: COMPILER = $(TEMP2)
post: mpi_test ../../postw90.x
Expand Down Expand Up @@ -68,100 +79,119 @@ endif



libs: $(LIBRARY)
libs: $(LIBRARY) $(LIBRARYV2)

dynlibs: $(DYNLIBRARY)

$(LIBRARY): $(OBJS) $(OBJSLIB)
$(AR) $(ARFLAGS) $(LIBRARY) $(OBJSLIB) $(OBJS)
$(LIBRARY): $(OBJS) $(OBJS_LIBV1)
$(AR) $(ARFLAGS) $(LIBRARY) $(OBJS) $(OBJS_LIBV1)

$(DYNLIBRARY): $(OBJS) $(OBJSLIB)
$(DYNLIBRARY): $(OBJS) $(OBJS) $(OBJS_LIBV1)
echo $(COMPILER)
$(COMPILER) $(SHAREDLIBFLAGS) $(POSTOPTS) $(LDOPTS) $(OBJS) $(OBJSLIB) $(LIBS) -o $@
$(COMPILER) $(SHAREDLIBFLAGS) $(POSTOPTS) $(LDOPTS) $(OBJS) $(OBJS_LIBV1) $(LIBS) -o $@

clean:
rm -f *.o *.mod *.MOD *.obj

constants.o: ../constants.F90
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../constants.F90

io.o: ../io.F90 constants.o
comms-abort.o: ../comms-abort.F90 ../../make.inc
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../comms-abort.F90

io.o: ../io.F90 constants.o comms-abort.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../io.F90

utility.o: ../utility.F90 constants.o io.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../utility.F90

parameters.o: ../parameters.F90 constants.o io.o utility.o comms.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../parameters.F90
wannier90_types.o: ../wannier90_types.F90 constants.o io.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../wannier90_types.F90

hamiltonian.o: ../hamiltonian.F90 ws_distance.o constants.o io.o utility.o parameters.o
wannier90_readwrite.o: ../wannier90_readwrite.F90 constants.o io.o types.o wannier90_types.o readwrite.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../wannier90_readwrite.F90

readwrite.o: ../readwrite.F90 types.o constants.o io.o utility.o comms.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../readwrite.F90

types.o: ../types.F90 constants.o io.o utility.o comms.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../types.F90

hamiltonian.o: ../hamiltonian.F90 ws_distance.o constants.o io.o utility.o types.o wannier90_types.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../hamiltonian.F90

overlap.o: ../overlap.F90 constants.o io.o utility.o parameters.o sitesym.o
overlap.o: ../overlap.F90 constants.o io.o utility.o types.o sitesym.o wannier90_types.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../overlap.F90

kmesh.o: ../kmesh.F90 constants.o io.o utility.o parameters.o
kmesh.o: ../kmesh.F90 constants.o io.o utility.o types.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../kmesh.F90

disentangle.o: ../disentangle.F90 constants.o io.o parameters.o sitesym.o comms.o
disentangle.o: ../disentangle.F90 constants.o io.o types.o sitesym.o comms.o wannier90_types.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../disentangle.F90

wannierise.o: ../wannierise.F90 hamiltonian.o constants.o io.o utility.o parameters.o sitesym.o comms.o
wannierise.o: ../wannierise.F90 hamiltonian.o constants.o io.o utility.o types.o sitesym.o comms.o wannier90_types.o wannier90_readwrite.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../wannierise.F90

plot.o: ../plot.F90 constants.o io.o utility.o parameters.o hamiltonian.o ws_distance.o comms.o
plot.o: ../plot.F90 constants.o io.o utility.o types.o hamiltonian.o ws_distance.o wannier90_types.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../plot.F90

ws_distance.o: ../ws_distance.F90 constants.o io.o parameters.o
ws_distance.o: ../ws_distance.F90 constants.o io.o types.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../ws_distance.F90

transport.o: ../transport.F90 constants.o io.o parameters.o hamiltonian.o
transport.o: ../transport.F90 constants.o io.o types.o hamiltonian.o wannier90_types.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../transport.F90

sitesym.o : ../sitesym.F90 utility.o parameters.o constants.o
sitesym.o : ../sitesym.F90 utility.o types.o constants.o wannier90_types.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../sitesym.F90

comms.o: ../comms.F90 constants.o io.o
comms.o: ../comms.F90 constants.o io.o ../../make.inc
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../comms.F90

boltzwann.o: $(POSTDIR)boltzwann.F90 constants.o parameters.o io.o utility.o postw90_common.o get_oper.o wan_ham.o comms.o spin.o dos.o
boltzwann.o: $(POSTDIR)boltzwann.F90 constants.o types.o io.o utility.o postw90_common.o get_oper.o wan_ham.o comms.o spin.o dos.o postw90_types.o ws_distance.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c $(POSTDIR)boltzwann.F90

geninterp.o: $(POSTDIR)geninterp.F90 constants.o parameters.o io.o get_oper.o postw90_common.o comms.o utility.o wan_ham.o
geninterp.o: $(POSTDIR)geninterp.F90 constants.o types.o io.o get_oper.o postw90_common.o comms.o utility.o wan_ham.o postw90_types.o ws_distance.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c $(POSTDIR)geninterp.F90

get_oper.o: $(POSTDIR)get_oper.F90 parameters.o constants.o comms.o postw90_common.o io.o utility.o
get_oper.o: $(POSTDIR)get_oper.F90 types.o constants.o comms.o postw90_common.o io.o utility.o postw90_types.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c $(POSTDIR)get_oper.F90

spin.o: $(POSTDIR)spin.F90 comms.o parameters.o constants.o utility.o postw90_common.o get_oper.o io.o wan_ham.o
spin.o: $(POSTDIR)spin.F90 comms.o types.o constants.o utility.o postw90_common.o get_oper.o io.o wan_ham.o postw90_types.o ws_distance.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c $(POSTDIR)spin.F90

dos.o: $(POSTDIR)dos.F90 comms.o parameters.o constants.o utility.o io.o wan_ham.o postw90_common.o get_oper.o spin.o
dos.o: $(POSTDIR)dos.F90 comms.o types.o postw90_types.o constants.o utility.o io.o wan_ham.o postw90_common.o get_oper.o spin.o ws_distance.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c $(POSTDIR)dos.F90

kpath.o: $(POSTDIR)kpath.F90 comms.o parameters.o constants.o io.o spin.o berry.o
kpath.o: $(POSTDIR)kpath.F90 comms.o types.o constants.o io.o spin.o berry.o postw90_types.o ws_distance.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c $(POSTDIR)kpath.F90

kslice.o: $(POSTDIR)kslice.F90 comms.o parameters.o constants.o io.o spin.o berry.o
kslice.o: $(POSTDIR)kslice.F90 comms.o types.o constants.o io.o spin.o berry.o postw90_types.o ws_distance.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c $(POSTDIR)kslice.F90

berry.o: $(POSTDIR)berry.F90 comms.o parameters.o constants.o utility.o postw90_common.o get_oper.o io.o spin.o wan_ham.o
berry.o: $(POSTDIR)berry.F90 comms.o types.o constants.o utility.o postw90_common.o get_oper.o io.o spin.o wan_ham.o postw90_types.o ws_distance.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c $(POSTDIR)berry.F90

gyrotropic.o: $(POSTDIR)gyrotropic.F90 comms.o parameters.o constants.o utility.o postw90_common.o get_oper.o io.o spin.o wan_ham.o berry.o
gyrotropic.o: $(POSTDIR)gyrotropic.F90 comms.o types.o constants.o utility.o postw90_common.o get_oper.o io.o spin.o wan_ham.o berry.o postw90_types.o ws_distance.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c $(POSTDIR)gyrotropic.F90

wan_ham.o: $(POSTDIR)wan_ham.F90 parameters.o constants.o utility.o postw90_common.o get_oper.o
wan_ham.o: $(POSTDIR)wan_ham.F90 types.o postw90_types.o constants.o utility.o postw90_common.o get_oper.o ws_distance.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c $(POSTDIR)wan_ham.F90

postw90_common.o: $(POSTDIR)postw90_common.F90 ws_distance.o comms.o parameters.o utility.o constants.o io.o
postw90_common.o: $(POSTDIR)postw90_common.F90 postw90_types.o ws_distance.o comms.o types.o utility.o constants.o io.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c $(POSTDIR)postw90_common.F90

wannier_lib.o: ./constants.o ./io.o ./utility.o ./parameters.o \
postw90_types.o: $(POSTDIR)postw90_types.F90 comms.o types.o utility.o constants.o io.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c $(POSTDIR)postw90_types.F90

postw90_readwrite.o: $(POSTDIR)postw90_readwrite.F90 comms.o postw90_types.o types.o utility.o constants.o io.o
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c $(POSTDIR)postw90_readwrite.F90

wannier_lib.o: ./constants.o ./io.o ./utility.o ./types.o \
./hamiltonian.o ./kmesh.o ./overlap.o ./disentangle.o \
./wannierise.o ./plot.o ./transport.o ../wannier_lib.F90
$(COMPILER) $(FCOPTS) -c ../wannier_lib.F90
./wannierise.o ./plot.o ./transport.o ./wannier90_types.o \
./wannier90_readwrite.o ../wannier_lib.F90
$(COMPILER) $(POSTOPTS) $(FCOPTS) -c ../wannier_lib.F90


.PHONY: wannier libs post clean mpi_test serialobjs w90spn2spn
.PHONY: wannier libs post clean mpi_test w90spn2spn

13 changes: 8 additions & 5 deletions src/Makefile.header
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
OBJS = constants.o io.o utility.o parameters.o hamiltonian.o overlap.o \
kmesh.o disentangle.o ws_distance.o wannierise.o plot.o transport.o sitesym.o comms.o
OBJS = constants.o io.o utility.o types.o hamiltonian.o overlap.o kmesh.o disentangle.o \
ws_distance.o wannierise.o plot.o transport.o sitesym.o comms.o wannier90_types.o \
wannier90_readwrite.o comms-abort.o readwrite.o

OBJSLIB = wannier_lib.o
OBJS_LIBV1 = wannier_lib.o

OBJS_POST = ws_distance.o parameters.o kmesh.o io.o comms.o utility.o get_oper.o constants.o \
postw90_common.o wan_ham.o spin.o dos.o berry.o gyrotropic.o kpath.o kslice.o boltzwann.o geninterp.o
OBJS_POST = ws_distance.o types.o kmesh.o io.o comms.o utility.o get_oper.o constants.o \
postw90_common.o wan_ham.o spin.o dos.o berry.o gyrotropic.o kpath.o kslice.o \
boltzwann.o geninterp.o postw90_types.o postw90_readwrite.o comms-abort.o readwrite.o

LIBRARY = ../../libwannier.a
LIBRARYV2 = ../../libwan2.a

## Dynamic library section
## Define some defaults (good for linux) if none is defined in the make.inc
Expand Down
Loading