Commit Graph

377 Commits

Author SHA1 Message Date
Paolo Giannozzi afa7b1319a More removal of unused variables 2019-08-21 09:54:16 +02:00
Paolo Giannozzi 6ab7abb6f6 html and txt manuals updated 2019-03-01 18:00:27 +01:00
Paolo Giannozzi 6834a502ef [Skip-CI] Obsolete version 'svn' replaced by 'git'; various .PHONY of questionable
usefulness, referring to no longer existing procedure devised for svn, removed
2019-03-01 17:42:56 +01:00
Paolo Giannozzi f65046d3a9 Check in PWCOND suggested by ALexander Smogunov 2019-02-28 22:03:22 +01:00
Paolo Giannozzi 121edf52c8 [Skip-CI] ATOMIC_POSITIONS and CELL_PARAMETERS cards without units are
officially deprecated but there were several tests and examples using them
2019-02-23 22:45:29 +01:00
Paolo Giannozzi e7917e48a2 More cleanup of obsolete variables in examples 2019-02-22 22:20:39 +01:00
Paolo Giannozzi 814c3d5615 Cleanup of parallel modules:
- mp_world and world_comm should be used only in MPI initialization,
  not directly in codes - replaced by mp_images and intra_image_comm
  (except in a few cases whose usage is unclear to me)
- mp_global should be used only to provide initialization routines
  mp_startup, mp_global_end
- specific mp_* modules should be used for parallelization level on *
  (* = images, pools, bands, orhtoh, ...)
Nothing actually changes (I hope) but things will look cleaner if the module
for the required parallelization level is USEd instead of a generic one that
does too meny things at the same time. The final goal of this operation is to
better disentangle the various parallelization levels and to have a better
organized, more granular MPI initialization that does not introduces artificial
and meaningless dependencies. Not done for: PHonon, CPV, TDDFPT, GWW, EPW
2019-01-31 15:51:00 +01:00
fabrizio22 d8419017dd a couple of newlsda corrections on HP and PWCOND 2019-01-24 16:29:17 +01:00
Paolo Giannozzi a3f54e002a Cleanup: make.depend updated, unused references removed, removed ^M
PLEASE DO NOT COMMIT FILES CONTAINING DOS ^M CHARACTERS
2019-01-22 21:22:13 +01:00
fabrizio22 9c87cf7106 full lsda rho conversion 2019-01-21 12:02:37 +01:00
fabrizio22 f3114d67e1 merge develop with rho_updw_mz 2019-01-14 11:40:47 +01:00
Paolo Giannozzi c31cfd57a8 Updated gnuplot script (aligned to the one contained in run_example) 2018-08-31 14:03:12 +02:00
Paolo Giannozzi e90f03133e Following Uli Aschauer's example: uniform au to angstrom conversion constant 2018-08-23 22:09:15 +02: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 f3edd5884d Calculation of atomic rho in reciprocal space extracted from routine atomic_rho
Will be useful later. Some more cleanup: obsolete I/O variables moved into
soon-to-become obsolete routines
2018-08-16 16:29:04 +02:00
Stefano De Gironcoli d0ceafaf92 a single libks_solvers.a library is created.
Makefiles of the children codes are updated to use it.
2018-08-14 07:42:30 +02:00
Paolo Giannozzi c353e656f1 Some utility routines moved out from xml_io_base into io_files; useless
references to xml_io_base deleted. Now xml_io-base contains only obsolete
routines for reading and writing wfcs and rho, to be deleted soon.
2018-08-13 09:46:06 +02:00
Paolo Giannozzi f759fd5a79 Old-style I/O deleted. Everything should work as in 6.2 and 6.3 with default
options, but some codes that have not been updated, notably cppp.x and
bgw2pw.x, are broken for good; some exotic options may also be broken.
2018-08-07 19:43:21 +02:00
Stefano De Gironcoli 3c5389add6 more changes to add a ppcg option to c_bands.f90 diagonalization 2018-08-03 04:15:56 +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 ae635622db Added compiled documentation files in *.pdf. *txt, *html format.
Since github and gitlab just distribute a snapshot of the git repository,
these files must be in the repository as well. NOTA BENE:
All changes MUST GO TO *.tex or *.def FILES, NOT to these files!
Also note that the "make doc" machinery produces also *.xml files and
latex2html converted html versions of latex files. I don't think they belong
to the repository (latex files should maybe be replaced by md files)
2018-06-22 17:41:44 +02:00
Paolo Giannozzi 84d09bcc20 With the latest change, clean_pw, used in many places, depend upon dft-d3/.
Makefiles modified accordingly.

I am not at all happy about this "solution": unneeded dependencies should be
avoided, but this would need to change the way things are deallocated at the
end of a run (clean_pw does too many things at the same time)
2018-05-10 08:27:14 +02:00
Paolo Giannozzi 99515484f3 Some general-purpose routines for file and directory handling:
create_directory, check_tempdir, check_file_exist, clean_tempdir,
moved from input.f90 or xml_io_base into module "io_files"
2018-03-14 21:23:26 +01:00
Paolo Giannozzi 9af0317f8d Once again, a problem with modules in Makefiles. In order to simplify things,
after the proliferarion of modules and libraries, I have collected into a
single variable BASEMOD_FLAGS, defined in make.inc, the list of directories
for modules, to be included by all codes. IMPORTANT NOTICE: re-run "configure",
the new Makefiles work in conjunction with the new make.inc
2018-01-08 22:28:48 +01:00
giannozz 43f8062c8c Final cleanup of check_stop machinery - only real change in the end:
max_seconds is stored into module check_stop and no longer in input_parameters


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13774 c92efa57-630b-4861-b058-cf58834340f0
2017-08-25 09:51:34 +00:00
sponce 1284bc3048 LAXlib was missing from pwcond Makefile
==> did not compiled with intel



git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13685 c92efa57-630b-4861-b058-cf58834340f0
2017-08-04 11:26:37 +00: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
degironc e1d6b18de9 more changes at the smmothing of beta- and q-funcions
US variable qq renamed qq_nt and a new variable qq_na added
because in real space the integral may depend (slightly) on
the atomic position and an atomic value is needed to compute
exactly normalizable wfc.  
Whenever realspace tricks are not used  qq_nt is used.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13604 c92efa57-630b-4861-b058-cf58834340f0
2017-07-15 23:16:18 +00:00
nvarini 1c722061d3 Update examples with smearing=mv
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13323 c92efa57-630b-4861-b058-cf58834340f0
2017-02-18 20:01:41 +00:00
nvarini 85fdf20b3e Update examples with smearing=mv
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13322 c92efa57-630b-4861-b058-cf58834340f0
2017-02-18 19:40:52 +00:00
nvarini 3fa8513bb8 Updated examples with mv smearing
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13321 c92efa57-630b-4861-b058-cf58834340f0
2017-02-18 19:35:59 +00:00
giannozz 5bcd1e5c6d make.depend updated
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13152 c92efa57-630b-4861-b058-cf58834340f0
2016-11-14 17:22:37 +00:00
giannozz 1685417009 First set of changes needed to make new schema the default. Currently NEB will
not work #ifdef __XSD with FCP; PWCOND should work as before (no warranty)


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13144 c92efa57-630b-4861-b058-cf58834340f0
2016-11-14 10:57:54 +00:00
kokalj 6f9ac4a4a3 Improved handling of dependencies between input_xx.xsl and resulting INPUT_*.html|txt
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13024 c92efa57-630b-4861-b058-cf58834340f0
2016-09-26 14:16:43 +00:00
spigafi c0af04e2f8 ifdef preprocessor macro refactoring (PWCOND)
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12969 c92efa57-630b-4861-b058-cf58834340f0
2016-09-17 14:34:08 +00:00
giannozz 95cf2364ef Too many hyphens in "helpdoc --version", the correct syntax is "-version"
Now "make doc" works again


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12886 c92efa57-630b-4861-b058-cf58834340f0
2016-08-30 16:54:59 +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
kokalj c210dff2d8 - adding version number to INPUT_*.html|txt
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12819 c92efa57-630b-4861-b058-cf58834340f0
2016-08-20 22:23:09 +00:00
ccavazzoni 8f777555f3 - adding "howmany" parameter to the cfft3d subroutine,
to compute many FFTs at the same time, particularly usefull for EXX
  but could be usefule for many linear response code as well
  (for the time being implemented only for DFTI and internal FFTW,
  should be trivial to extend other drivers)
- more clean-ups


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12815 c92efa57-630b-4861-b058-cf58834340f0
2016-08-19 22:55:53 +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
giannozz 083900417d More removal of I/O for index - harmless but please verify if head.x works
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12491 c92efa57-630b-4861-b058-cf58834340f0
2016-06-13 12:39:34 +00:00
giannozz 0091e313e1 Replicated, useless and confusing variable "outdir" in module io_files deleted
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12450 c92efa57-630b-4861-b058-cf58834340f0
2016-05-31 18:07:16 +00:00
giannozz df30a665aa Explicit preprocessing produces *_tmp.f90 files instead of *.F90 files, to
prevent trouble with OS-X. May or may not work (it won't unless configure
is updated: please somebody with v.2.63 of autoconf do it), may turn out to
be obsolete anyway.


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12364 c92efa57-630b-4861-b058-cf58834340f0
2016-04-27 14:53:38 +00:00
giannozz ff7471ead0 Output of non-writing processes should not be redirected to /dev/null: it is
useless (the call to "environment_set" already does that) and breaks Windows


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12357 c92efa57-630b-4861-b058-cf58834340f0
2016-04-25 18:40:02 +00:00
giannozz 230cc9193b Minor clarification
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12303 c92efa57-630b-4861-b058-cf58834340f0
2016-04-12 20:21:52 +00:00
spigafi 5365327e70 Fix dependencies
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12265 c92efa57-630b-4861-b058-cf58834340f0
2016-03-26 14:45:06 +00:00
giannozz 1fea499fae Since we are in the process of moving stuff around, I think it is a good
moment to get rid of flib/, whose usefulness is far from obvious. The content
of flib/ is now in Modules/. Many makefiles updated and little more. 

Packages using QE routines should just remove links to flib/flib.a.



git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12072 c92efa57-630b-4861-b058-cf58834340f0
2016-01-26 12:51:02 +00:00