Commit Graph

65 Commits

Author SHA1 Message Date
Paolo Giannozzi 477667c6ee No atomic wavefunctions needed in GWW 2024-05-08 10:13:31 +02:00
Paolo Giannozzi 5c91c1263c Minor cleanup
atomic_wfc_acc in a module now; removal of unused variables
2024-05-03 19:31:23 +02:00
Paolo Giannozzi 19f9d8b990 Compilation problem in GWL 2022-01-18 16:56:32 +01:00
Paolo Giannozzi 5261c1dc50 Moving gen_us_dy* and gen_us_dj* to upflib, first step
gen_us_dy and gen_us_dj are very similar to init_us_2, the only real difference
being dj_l/dq or dY_lm/dq instead of j_l and Y_lm. They should be in upflib/ as
well. First step: make a wrapper like for init_us_2 in uspp_init module.
2021-12-29 10:55:20 +01:00
Paolo Giannozzi 5d74f827c4 Remove make.depend files from git 2021-10-24 21:29:29 +02:00
giannozz 8495cdf4aa Merge branch 'develop' into 'us_acc'
# Conflicts:
#   GWW/gww/Makefile
#   GWW/simple_bse/Makefile
#   GWW/simple_ip/Makefile
#   HP/src/hp_solve_linear_system.f90
#   PHonon/PH/solve_e.f90
#   PHonon/PH/solve_linter.f90
#   QEHeat/src/make.depend
2021-09-03 19:31:23 +00:00
Ivan Carnimeo 9698f31ab8 All codes updated with USE uspp_init 2021-09-01 22:46:44 +02:00
Paolo Giannozzi 31a7d9a284 Some more Makefile simplification 2021-08-27 11:07:16 +02:00
Paolo Giannozzi cd71868a3a Simplification and cleanup of Makefiles
The list of all general-purpose modules is defined once and for all in make.inc
and used everywhere. Can be further improved. IMPORTANT: re-run configure!
2021-08-26 22:26:28 +02:00
Paolo Giannozzi 10ac914e8f Removal of confusing commented out lines. find_free_unit is obsolete and
should nolonger be used: use "open ( newunit=..., ... )" instead
2021-02-18 10:27:16 +01:00
Paolo Giannozzi 671f25d895 Merge https://gitlab.com/QEF/q-e into devel-upflib 2021-01-19 17:44:14 +00:00
Paolo Giannozzi f0828ddc86 No need to keep a wrapper "us" module to module "uspp_data" 2021-01-18 14:25:39 +00:00
Andrea Ferretti 504ce31a46 init_us_1 moved to upflib 2021-01-16 01:07:21 +01:00
fabrizio22 c1337867b2 XClib - lib name changed 2021-01-06 15:36:00 +01:00
fabrizio22 2f933d101e XClib - lda - scratch 2021-01-06 15:31:24 +01:00
joshuadelliott 952e2c1822 Update GWW/bse/Makefile 2020-11-21 02:06:04 +00:00
joshuadelliott 332954cf26 Added functionality to GWL for iterative Www 2020-11-21 00:37:29 +00:00
joshuadelliott 10c4f20d00 Revert "gwl_Www_excitonic_states"
This reverts commit e2c53b76f9.
2020-11-20 23:50:08 +00:00
joshuadelliott e2c53b76f9 gwl_Www_excitonic_states 2020-11-20 23:41:24 +00:00
giannozz 1b072fbc4f First compiling version of QE with initial "pseudolib" in upflib/.
Most of the changes consist in small updates to Makefile and make.depend and
in the replacement of module "parameters" with "upf_params" whenever variables
lmaxx and lqmax are USEd. Routine "read_pseudo" moved back to Modules/;
"simpsn" moved to upflib/; a copy of "matches" temporarily added to upflib/

Note that everything compiles (except EPW) but nothing has been tested yet!
2020-04-25 19:13:15 +00:00
giannozz 1937b0a378 Cleanup: removal of usnused reference to node number (nd_nmbr)
Added a simple way to test what happens with non-parallel file systems
2020-03-04 18:00:00 +01:00
Paolo Giannozzi 3a5b0df082 More removal of unused references to DDOT 2020-01-09 15:33:14 +00:00
giannozz abae0dc559 Out-of-bound error when converting (tot,magn) to (up,down) rho.
Minor update to release notes
2019-06-05 19:46:10 +00:00
Paolo Giannozzi dc3ca5412f Merge branch 'develop' of gitlab.com:QEF/q-e into wfcollect
Conflict with unrelated commit removed, make.depend updated
2019-01-28 21:44:35 +01:00
Paolo Giannozzi da041348d1 twfcollect variable deleted. It is still mentioned here and there, still written
into xml files, listed among input variables, but it is never used and no longer
useful. In case, it is easy and quick to reintroduce it, in a less confusing way
2019-01-26 18:26:16 +01:00
Paolo Giannozzi 6f7bbdf452 More Makefile cleanup: targets pwlibs, phlibs added in order to avoid much
uneeded relinking; the mysterious "tldeps" machinery modified accordingly;
added explicit dependencies to GWW targets to prevent (once again) problems
with make -j (seems to work now). make.depend updated (once again).
2018-08-21 17:14:04 +02:00
Paolo Giannozzi ab3e8d2f4b iotk removed from CP as well. make.depend updated. 2018-08-18 09:02:36 +02:00
Paolo Giannozzi 97310ee405 Unused references to iotk deleted from GWL 2018-08-17 09:15:42 +02:00
Stefano De Gironcoli 18bfc19c86 a single libks_solvers.a library is created.
Makefiles of the children codes are updated to use it.
2018-08-14 01:41:44 +02:00
Stefano de Gironcoli bc59e529d8 more missing dependencies for libppcg.a added to Makefiles 2018-08-03 04:15:56 +02:00
giannozz 54abe91aa3 Merge branch 'feature/RefactorWfcModuleName' into 'develop'
Rename module wavefunctions_module to wavefunctions

See merge request QEF/q-e!118
2018-07-18 15:58:00 +00:00
Miguel Carvajal 68ee7b5e87 Rename module wavefunctions_module to wavefunctions 2018-07-12 16:11:48 +02:00
Paolo Giannozzi 7f32483fff IN all Makefiles, LIBS replaced by QELIBS, to prevent unlikely but not
impossible clashes with LIBS as defined by the OS or as used by the configure's
of external libraries (e.g. FoX, for which one such problem has been reported)
2018-07-11 19:58:41 +02:00
Paolo Giannozzi a929525d7b No valid reason to re-defined IFLAGS inside Makefiles 2018-07-04 16:42:12 +02:00
Paolo Giannozzi 5564088483 Compilation problems for EPW and GWW 2018-04-05 09:59:08 +02:00
degironc 3e6b4f8e76 MAJOR restructuring of the FFTXlib library
In real space processors are organized in a 2D pattern.

Each processor owns data from a sub-set of Z-planes and a sub-set of Y-planes.
In reciprocal space each processor owns Z-columns that belong to a sub set of
X-values. This allows to split the processors in two sets for communication
in the YZ and XY planes.
In alternative, if the situation allows for it, a task group paralelization is used
(with ntg=nyfft) where complete XY planes of ntg wavefunctions are collected and Fourier
trasnformed in G space by different task-groups. This is preferable to the Z-proc + Y-proc
paralleization if task group can be used because a smaller number of larger ammounts of 
data are transferred. Hence three types of fft are implemented: 
 
  !
  !! ... isgn = +-1 : parallel 3d fft for rho and for the potential
  !
  !! ... isgn = +-2 : parallel 3d fft for wavefunctions
  !
  !! ... isgn = +-3 : parallel 3d fft for wavefunctions with task group
  !
  !! ... isgn = +   : G-space to R-space, output = \sum_G f(G)exp(+iG*R)
  !! ...              fft along z using pencils        (cft_1z)
  !! ...              transpose across nodes           (fft_scatter_yz)
  !! ...              fft along y using pencils        (cft_1y)
  !! ...              transpose across nodes           (fft_scatter_xy)
  !! ...              fft along x using pencils        (cft_1x)
  !
  !! ... isgn = -   : R-space to G-space, output = \int_R f(R)exp(-iG*R)/Omega
  !! ...              fft along x using pencils        (cft_1x)
  !! ...              transpose across nodes           (fft_scatter_xy)
  !! ...              fft along y using pencils        (cft_1y)
  !! ...              transpose across nodes           (fft_scatter_yz)
  !! ...              fft along z using pencils        (cft_1z)
  !
  ! If task_group_fft_is_active the FFT acts on a number of wfcs equal to 
  ! dfft%nproc2, the number of Y-sections in which a plane is divided. 
  ! Data are reshuffled by the fft_scatter_tg routine so that each of the 
  ! dfft%nproc2 subgroups (made by dfft%nproc3 procs) deals with whole planes 
  ! of a single wavefunciton.
  !

fft_type module heavily modified, a number of variables renamed with more intuitive names 
(at least to me), a number of more variables introduced for the Y-proc parallelization.

Task_group module made void. task_group management is now reduced to the logical component
 fft_desc%have_task_groups of fft_type_descriptor type variable fft_desc.

In term of interfaces, the 'easy' calling sequences are

SUBROUTINE invfft/fwfft( grid_type, f, dfft, howmany )

  !! where:
  !! 
  !! **grid_type = 'Dense'** : 
  !!   inverse/direct fourier transform of potentials and charge density f
  !!   on the dense grid (dfftp). On output, f is overwritten
  !! 
  !! **grid_type = 'Smooth'** :
  !!   inverse/direct fourier transform of  potentials and charge density f
  !!   on the smooth grid (dffts). On output, f is overwritten
  !! 
  !! **grid_type = 'Wave'** :
  !!   inverse/direct fourier transform of  wave functions f
  !!   on the smooth grid (dffts). On output, f is overwritten
  !!
  !! **grid_type = 'tgWave'** :
  !!   inverse/direct fourier transform of  wave functions f with task group
  !!   on the smooth grid (dffts). On output, f is overwritten
  !!
  !! **grid_type = 'Custom'** : 
  !!   inverse/direct fourier transform of potentials and charge density f
  !!   on a custom grid (dfft_exx). On output, f is overwritten
  !! 
  !! **grid_type = 'CustomWave'** :
  !!   inverse/direct fourier transform of  wave functions f
  !!   on a custom grid (dfft_exx). On output, f is overwritten
  !! 
  !! **dfft = FFT descriptor**, IMPORTANT NOTICE: grid is specified only by dfft.
  !!   No check is performed on the correspondence between dfft and grid_type.
  !!   grid_type is now used only to distinguish cases 'Wave' / 'CustomWave' 
  !!   from all other cases
                                                                                                 

Many more files modified.




git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13676 c92efa57-630b-4861-b058-cf58834340f0
2017-08-01 20:31:02 +00:00
degironc 4636bca635 KS_Solvers directory has been created with three subdirectories:
KS_Solvers/CG, KS_Solvers/Davidson, KS_Solvers/Davidson_RCI.
Two are currently used by QE, the third one implements the Davidson
diagonalization within the Reverse Communication Interface paradigm,
courtesy of Micael Oliveira.

KS_Solvers routines depend only on lower level libraries, notably UtilXlib, 
LAXlib, (SCA)LAPACK, and BLAS.

reorganization can be improved. For instance some duplicated routines like
cdiaghg and rdiaghg could/should be moved in LAXlib. This could reduce the need
to include  KS_Solvers directories in the link step of many codes.    

Minimal changes to calling sequence have been made, essentially just adding
h_psi,s_psi,g_psi and h_1psi,s_1psi routines names as arguments (with a
specific calling sequence ihardcode inside the routines that agree with PWSCF one). 
This could be avoided adopting the RCI paradigm.

Compiled in serial and parallel, 177/182 pw tests passed (3 that were failing 
even before on my laptop pw-berry, pw-langevin, pw-pawatom + 2 unknown==not tested), 
12 /17 cp tests passed (some o2-us-para-pbe-X fail but the same was for the 
original version)

I assume the modified calling procedure is working and the problem lies somewhere else.
 
Randomly tested some examples in pw, ph, pwcond and it seams to work.

Please report any problem.





git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13644 c92efa57-630b-4861-b058-cf58834340f0
2017-07-29 12:19:19 +00:00
degironc 7fd27ba0ad UtilXlib directory created to contain a library (libutil.a) for
basic operations: error handling, timing clocks, interfaces to basic mpi 
calls, find free units...
These routines are moved from Modules and dependencies to other modules
are removed. 

MANY files are updated to comply with the move.



git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13629 c92efa57-630b-4861-b058-cf58834340f0
2017-07-26 11:15:20 +00:00
giannozz 44d31e4709 Module pwcom should not contain references to other modules
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13498 c92efa57-630b-4861-b058-cf58834340f0
2017-05-08 15:26:53 +00:00
giannozz 0635f827dd Modules gvecs, gvect, ldaU no longer USEd by pwcom; minor changes here and there
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13409 c92efa57-630b-4861-b058-cf58834340f0
2017-03-17 15:25:44 +00:00
giannozz 04c1683c67 Removal of ctrl-M - many many changes but nothing really happening
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13206 c92efa57-630b-4861-b058-cf58834340f0
2016-12-21 16:15:04 +00:00
spigafi 185f9ed185 ifndef preprocessor macro refactoring
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12986 c92efa57-630b-4861-b058-cf58834340f0
2016-09-19 21:11:20 +00:00
spigafi 02ad44cdf1 ifdef preprocessor macro refactoring (GWW)
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12979 c92efa57-630b-4861-b058-cf58834340f0
2016-09-18 15:13:03 +00:00
giannozz a725fe91f2 Redundant routine kpoint_global_indices replaced by global_kpoint_index.
Everything should work (or not work) as before (not tested, no warranty). 



git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12898 c92efa57-630b-4861-b058-cf58834340f0
2016-09-01 08:20:30 +00:00
giannozz 7ce7d161bf Makefile simplification: TOPDIR is used to define the same LIBOBJS everywhere.
In case of trouble, see instruction in the make.inc file.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12840 c92efa57-630b-4861-b058-cf58834340f0
2016-08-25 19:27:31 +00:00
giannozz f57b3b298d 14 pieces of the same code returning the index of first and last k-point in
the global list of k-points, used for k-points parallelization, moved to a
single subroutine. Most of those pieces of code were never actually used
(k-point parallelization is not implemented in several of the utilities)
but just blindly copied from the code performing I/O of wavefunctions.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12720 c92efa57-630b-4861-b058-cf58834340f0
2016-08-11 16:29:04 +00:00
giannozz 1f35f5dc8b Variables iunigk and igk deleted from global variables. Beware: may break some
codes that rely on them. 


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12674 c92efa57-630b-4861-b058-cf58834340f0
2016-08-07 13:33:29 +00:00
puma d18e02ff7d Added options for real time evolution
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12595 c92efa57-630b-4861-b058-cf58834340f0
2016-07-21 09:30:11 +00:00
puma 548649a977 Cleaning of output file, default values for input file.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12564 c92efa57-630b-4861-b058-cf58834340f0
2016-07-06 13:02:52 +00:00
giannozz 02ce4df8d6 make.sys => make.inc. All other codes using make.sys should modify their build
mechanism accordingly.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12539 c92efa57-630b-4861-b058-cf58834340f0
2016-06-25 07:26:50 +00:00