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
to initialize G-vectors for all grids: one (ggen) to generate a new set of
G-vectors, one (ggens) to generate a subset of G-vectors with the same
ordering as in the original set.
hopefully solving issues with some older version of intel compiler. The
The routine writing a temporary copy of upf files compliant to xml
syntax has been moved in an external module
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
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
avoid changing too many things at the same time. The way the option
"trhor" works is just awful. Two auxiliary routines that perform FFT of
the charge density extracted. They may be useful in other cases as well
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13512 c92efa57-630b-4861-b058-cf58834340f0
"dist.x" but a link to pw.x. The code figures out what to do. May be useful
as well as "dry run", to check that everything is correct in input.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13426 c92efa57-630b-4861-b058-cf58834340f0
- old routine computing dos, allocation and deallocation of "tetra" moved into
module ktetra; variables tetra and ntetra are used only inside the module
- added module variable nntetra containing number of neighboring points used
(20 for optimized tetrahedra, 4 otherwise)
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@13228 c92efa57-630b-4861-b058-cf58834340f0
the three pieces are in three different places: fsocket.f90 in Modules/,
sockets.c in clib/, run_driver in PW/src. Subroutine get_server_address might
actually be moved to module "command_line_options".
Version number updated to 6.beta (6.0.beta too long, 6.0bet? 6.0.b?)
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12833 c92efa57-630b-4861-b058-cf58834340f0
(it was acting only on descriptor variables, noneed to keep it into module)
- name change: all function/variables named *_dlay_* renamed *_type_* for consistency
- IMPORTANT: fft_type_allocate merged with real space grid initializaiton
some other grid functions removed/merged with fft types.
Since some initialization has been moved elseware there could be some SIDE EFFECT
- In practice, now grid dimensions (nr1, nr2, nr3) comes with fft variable definition
and variable allocation.
NEXT: review of the initialization/setting of the fft parallelization
- real space grid initialization subroutines moved to fft_types module
(it was acting only on descriptor variables, no need to keep it in Modules)
- name change: all function/variables named *_dlay_* renamed *_type_* for consistency
- IMPORTANT: fft_type_allocate merged with real space grid initializaiton
some other grid functions removed/merged with fft types.
Since some initialization has been moved elseware there could be some SIDE EFFECT
- In practice, now grid dimensions (nr1, nr2, nr3) comes with fft variable definition
and variable allocation.
NEXT: review of the initialization/setting of the fft parallelization
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12703 c92efa57-630b-4861-b058-cf58834340f0
l-dependent array in all cases.
This is already the case when upf%tpawp or upf%q_with_l are .true. .
For vanderbilt US pseudos, where nqf and rinner are non zero, we do here what otherwise
would be done multiple times in many parts of the code (such as in init_us_1, addusforce_r,
bp_calc_btq, compute_qdipol) whenever the q_l(r) were to be constructed.
For simple rrkj3 pseudos we duplicate the infomation contained in q(r) for all q_l(r).
This requires a little extra memory but unifies the treatment of q_l(r) and allows further
tweaking with the augmentation charge.
Variable upf%q_with_l set .true. at the end of the operation. It would be better to leave the
variable untouched at its input value and modify the routines that compute q_l(r) to just use
the now always present upf%qfuncl array but this is the first step before some cleanup.
setqf.f90 moved from PW/src to Modules, Makefiles and dependencies updated
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12591 c92efa57-630b-4861-b058-cf58834340f0
of pw.x, developed in a distinct branch are merged to the trunk.
Work done by:
Giovanni Borghi, Andrea Ferretti, Pietro Delugas
N.B. The feature is still experimental. To compile it,
add in make.sys the manual preprocessing flag
-D __XSD
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@12372 c92efa57-630b-4861-b058-cf58834340f0
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
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
with PW. There are several other variables that can be merged now, but these
three were easier and required changes to a very small number of routines.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@11983 c92efa57-630b-4861-b058-cf58834340f0
1. rewritten the core part of the ESM to improve readability and efficiency
of the code (esm.f90).
2. introduce a new function (exp_erfc(x,y) = exp(x) * erfc(y)) to avoid
getting “NaN” in particular case.
4. two dimensional (xy plane) average charge density and electrostatic
potentials are printed out to ‘prefix.esm1’ instead of stdout
3. make ESM calculation compatible with the NEB (neb.x).
4. introduce the constant bias potential (constant-mu)
(PRL 109, 266101 (2012)) feature to both pw.x and neb.x.
5. write ESM information in the XML file (One can use post-processing program
such as pp.x).
6. including various example calculations.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@11662 c92efa57-630b-4861-b058-cf58834340f0
Added two small files from libxc. Compile with -D__LIBXC, link with libxc:
-L/dir/where/libxc/is -lxcf90 -lxc
User guides updated with a reshuffling of names: contributors to all of QE
(in particular, most functionals) are listed in the user guide of QE and
not in the one of PW. make.depend updated
This is just to avoid that the work done is lost. It should be a first step
towards better organization of XC functionals. We should seriously consider
one of the following options:
1. move to libxc, getting rid of all duplicated functionals, keeping only
those that are not available in libxc;
2. add the possibility to use any functional from libxc (currently only a few
can be used). This may require serious restructuring work in our XC
functional (il-)logic, that has become clumsy, obscure and redundant
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@11075 c92efa57-630b-4861-b058-cf58834340f0
(e.g. some versions of optimized BLAS for Mac). In order to ctivate it, add
-Dzdotc=zdotc_wrapper to DFLAGS in make.sys.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@10972 c92efa57-630b-4861-b058-cf58834340f0
change with PHonon phq_init.f90. I also added a new module wannier_gw, for a tight integration with the rest of the QE.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@10772 c92efa57-630b-4861-b058-cf58834340f0