Commit Graph

18 Commits

Author SHA1 Message Date
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 c018b37a53 Minor changes to example for cp/pw interoperability 2019-02-22 11:26:03 +01:00
Paolo Giannozzi 5790b21d5b Remove examples with obsolete xml input 2019-02-18 09:09:55 +01: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
giannozz 99b1ddbee0 Merge of read_rho between CP and PW, but no change of format yet.
NOTE: directory names should always end with "/"


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13504 c92efa57-630b-4861-b058-cf58834340f0
2017-05-10 17:38:56 +00:00
hsinyu 7caf52608c update example descriptions
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@11188 c92efa57-630b-4861-b058-cf58834340f0
2014-09-20 00:11:12 +00:00
hsinyu cdf3cb333c correct EXX-wf-example inputs
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@11187 c92efa57-630b-4861-b058-cf58834340f0
2014-09-20 00:11:09 +00:00
hsinyu 808d47c935 updated CPV/Doc and CPV/examples
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@11186 c92efa57-630b-4861-b058-cf58834340f0
2014-09-20 00:11:04 +00:00
hsinyu 02ebcc85da Example input/output files of EXX with Wannier functions are updated in the folder CPV/examples/EXX-wf-example
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@11161 c92efa57-630b-4861-b058-cf58834340f0
2014-09-11 23:28:08 +00:00
giannozz fe16005724 Makov-Payne calculation in CP wasn't working any longer: array ityp in
ions_position is never initialized. This is just a temporary fix: there
is still a considerable mess with sorted and unsorted atomic positions


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@10680 c92efa57-630b-4861-b058-cf58834340f0
2014-01-13 06:52:37 +00:00
giannozz db78b5799b More careful removal of scratch files in examples: only files starting with
"pwscf" or "cp" are removed when the scratch directory is cleaned. May still
need some tweaking in some cases, though, because not all files start with
the value of "prefix" variable


git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@10437 c92efa57-630b-4861-b058-cf58834340f0
2013-08-16 14:39:10 +00:00
giannozz 76088ea7eb Mior fix
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@10383 c92efa57-630b-4861-b058-cf58834340f0
2013-07-16 07:06:48 +00:00
giannozz 52eafb11b4 Forgotten in previous commit
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@9000 c92efa57-630b-4861-b058-cf58834340f0
2012-05-14 13:27:11 +00:00
marsamos 891d1c420b examples deleted, environment_variables moved to main dir, all run_examples changed
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@8593 c92efa57-630b-4861-b058-cf58834340f0
2012-02-08 19:11:33 +00:00
marsamos 1cabaf5a83 updated README for examples in PW PP PHonon PWCOND and CPV
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@8569 c92efa57-630b-4861-b058-cf58834340f0
2012-02-02 15:31:33 +00:00
marsamos 02e794846e README for packages examples examples added in some cases. for PP/examples README is uptodate
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@8521 c92efa57-630b-4861-b058-cf58834340f0
2012-01-20 17:19:44 +00:00
marsamos ff596d687b Restart_example moved to CPV/examples
QExml_example moved to PP



git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@8515 c92efa57-630b-4861-b058-cf58834340f0
2012-01-20 13:55:31 +00:00
marsamos db2ca81972 CPV changed in dir structure. Working src, examples and tests
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@8107 c92efa57-630b-4861-b058-cf58834340f0
2011-08-25 12:46:21 +00:00