- 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
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
(it was inside read_upf, now it has to be called explicitly after read_upf fails). The rationale is to
disentangle PP reading from parallelism (now parallelism is hidden deep inside PP reading), eventually
moving all utilities for reading and convering PP's into a single, "almost stand-alone" library.
- variable oldvan deleted. I think everything should work as before,
because both Q functions and the Herman-Skillman grid are correctly
computed in this case as well, but cannot check it. The old Vanderbilt
format is anyway really old, dating back to 20 years or so.
- variable newpseudo merged into the upf% structure as upf%is_multiproj.
I think I have reproduced exactly the previous behaviour but again
cannot check it. I haven't checked the current logic (or lack thereof)
of this variable, but a better logic would be to actually check whether
the PP is multi-projector and in all cases (USPP and PAW as well as NCPP)
- upf%tcoulombp is properly set by all routines reading PP in any format.
Previously its value was overridden by a bad initialization (apparently
without consequences: Fourier transforms were computed numerically instead
of analytically as they should, but the difference is not noticeable)
- same for upf%is_gth, which is never read but it is convenient to have it
set while reading
- the dft value is set in a single place, outside the routines reading PP
(removes an illogical dependency)
- additional upf initialization needed in some cases is clearer and better
documented (previousy it was confusing and documentation was misleading)
Courtesy Fadjar Fathurrahman
NB: I also added the same factor to mk_dffnl_gth because I think it
should be there, but I have no "experimental" evidence in support
ibrav even if it was set to 0 and lattice defined by at vectors. It wasn't
such a great idea: may break the phonon code, produces a different output
for scf and non-scf runs, does not account for the unlikely but not impossible
case of rotatted cell. This commit reverts to the previous behaviour, while
still allowing to guess an ibrav if desired.
1) DFPT+U with ortho-atomic orbitals is disables,
because it is more complicated than it was expected.
First, Hubbard forces in pw.x must be extended to ortho-atomic orbitals
and then DFPT+U must be reconsidered.
2) Update the reference files for example18 for DFPT+U
3) Various minor changes
the coulomb_fac array must be reallocated and upgraded at each variable cell
iteration.
Added to the cell namelist the treinit_gvecs flag if set to
true, fft grid related quantities are upgraded at each iteration.
1. Added in input/electron_control the element real_space_beta.
It is equivalent to real_space = .true. in the namelist input
2. Added in algorithmic info a real_space_beta which indicates whether
beta projectors are applied in direct space.
3. Fixed the real_space_q variable in which now copied in the file the value of
tqr internal variable of pw
4. Added to output/convergence_info/scf_conv the boolean element convergence_achieved
5. Added to ouptut/convergence_info/opt_conv the boolean element convergence_achieved
6. The output/convergence_info element has been set as optional in the schema and now
in printed only by pw while cp omits printing it.