Ultrasoft PPs, merged into a single index. The logic of the index
should be the same as for the other USPP_related variables. Tested
for UPF format, should work for old van and rrkjus formats as well,
but I haven't tested it (tests very welcome).
Why? with default static dimensions, qfunc took 40Mb. Some compilers
(e.g. g95) store a copy of statically dimensioned arrays in objects
and executables, so 'make all' produced *.x for 1Gb or so ...
Apart from this, wasting nonscalable memory should be avoided anyway
in massively parallel machines.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3506 c92efa57-630b-4861-b058-cf58834340f0
was desired) with pools: a unit open only for the node performing I/O
(ionode) was needed by the first process of each pool.
Temporary fix: open the unit when is needed.
Better fix: read/write from I/O node, broadcast what is read to all pools.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3483 c92efa57-630b-4861-b058-cf58834340f0
libcp.a respectively), used to load the executables. This removes
the need to specify all needed objects in many different makefiles.
Works with 95, ifort, xlf. Please let me know if there are problems
with more exotic or lousy compilers.
A few minor things fixed as well.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3428 c92efa57-630b-4861-b058-cf58834340f0
make.depend are now in the CVS and shouldn't be updated unless
needed. Configure no longer runs makedeps.sh. Type 'make depend'
to regenerate dependencies.
Remove all */make.depend files before updating!
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3409 c92efa57-630b-4861-b058-cf58834340f0
representation of the small group of k. k points on the border
of the Brillouin zone of systems with non symmorphic space groups
are not dealt with. Spin-orbit case included.
Find_mode_sym extended to all the q points, with the same limitations as
the bands.
(still experimental).
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3330 c92efa57-630b-4861-b058-cf58834340f0
environment variable, or to './' (as before) if this is not set
- pseudo_dir is set by default to the value of $ESPRESSO_PSEDIR,
to $HOME/espresso/pseudo/ otherwise
- documentation updated to reflect the new defaults
Note that the 'capture' of $HOME/pw/pseudo using a call to 'getenv'
was already present in pwscf but it was not working (pseudo_dir was
overwritten) so nothing susceptible to create new problems was added.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3309 c92efa57-630b-4861-b058-cf58834340f0
This variable is .true. when xq is gamma and only the gamma point is used
for k point sampling.
The symmetrization used in phcg.x has been imported in ph.x in the case
lgamma_gamma=.true..
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3288 c92efa57-630b-4861-b058-cf58834340f0
Now the input of v_of_rho is the charge density in both real and reciprocal
space (always available within the scf loop); the output is unchanged. This
permits to get rid of one FFT for the calculation of V-Hartree and one for the
calculation of V-XC (\nabla rhr in GGA). Array dimensions removed from the list
of arguments of several routines (they are read from the modules). Unused
variables removed.
2) mix_rho has been modified in order to mix only the fourier components of the
smooth part of the density. The FFTs in the local-TF preconditioning are done
using the coarse mesh (cft3s). The performance of the mixing is almost
unchanged, but the mixing itself is much cheaper. Cleanup of unused variables.
Please, check for posible side effects of these modifications.
C.S.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3256 c92efa57-630b-4861-b058-cf58834340f0
- default for ngauss1 in el-phon calculation set to simple gaussian
(ngauss1=0) . There is no reason to use Methfessel-Paxton broadening
to represent the delta.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3177 c92efa57-630b-4861-b058-cf58834340f0
- io_pot removed, replaced by read_rho, write_rho. It looks like it is
working but more testing is needed
- Makeifles updated
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3072 c92efa57-630b-4861-b058-cf58834340f0
states. This bug (introduced at the end of May 2005) was responsible for
somehow wrong results in the case of calculations with many k-points.
Cleanup of diagonalization thresholds: wg_set variable removed and btype array
is now set in sum_band.
Added a logical input variable (diago_full_acc) to decide if the empty states
(defined as states with occupation < 1%) have to be converged at full accuracy
or not. Defaul is .FALSE. (I am not sure this is the best choice, comments
appreciated).
C.S.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3040 c92efa57-630b-4861-b058-cf58834340f0
now work together with dispersion calculations. No need for N separate
calculations for each q. The example will come soon.
- misc el-phon cleanup, removal of old stuff
- misc cleanup
NOTA BENE: the phonon code badly needs a cleanup of the symmetry stuff!
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2999 c92efa57-630b-4861-b058-cf58834340f0
So far it only works for non-metals and the output is specific for
molecules (it prints polarizability, not the dielectric constants).
Contributed by Viet Huy Nguyen.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2980 c92efa57-630b-4861-b058-cf58834340f0
dispersions to prevent a stupid error when initializing non-scf
calculations at finite k (the problem arises only with metals).
I don't know if this may cause trouble in other cases, though.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2973 c92efa57-630b-4861-b058-cf58834340f0
- further changes to support image parallelization in CP
- bug fix in XML save file for wave functions / charge density / pools .
In siple case and combinations of procs and polls now it seem to work.
More testing is required
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2963 c92efa57-630b-4861-b058-cf58834340f0
In fft_scalar the convention for the sign of the transform
is now the most common one, and not the essl one. Comments
updated to reflect this and other changes.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2820 c92efa57-630b-4861-b058-cf58834340f0
(he claims it is more tested); documentation updated (sort of)
- routines find_free_unit, delete_if_present, moved from 'parser'
to 'io_files' (it is a more natural place)
- routines int_to_char moved from 'parser' to flib/ (it is quite
unrelated with the rest of the module)
- routine trimcheck moved from flib/ to 'io_files' (more natural place)
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2753 c92efa57-630b-4861-b058-cf58834340f0
Modules/functionals.f90 and flib/functionals.f90 and lsda_functionals.f90
Duplicated routine dmxc.f90 removed. Atomic code does not depend any
longer on PH/.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2551 c92efa57-630b-4861-b058-cf58834340f0
If ibrav=0 ph.x write also at(3,3) and symm_type and so do q2.x and matdyn.x
It could actually be simpler to always write/read at(3,3) and symm_type and
forget about ibrav and celldm ...
latgen modified so that it deals properly with ibrav=0 case.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2543 c92efa57-630b-4861-b058-cf58834340f0
charges are computed in real space only in spheres around the atoms and
these patches are added to rho on the dense fft grid.
Affected routines: addusdens and newd.
Should scale linearly with system size, as opposed to the quadratic
scaling of the G-space implentation.
Experimental version:
- no forces nor stress yet.
- parallel version to be tested
- not to mention phonon and the other codes ...
DISCLAIMER
There are accuracy issues to be understood better, we may need properly
modifies pseudopotentials in order to avoid (or reduce) errors when
ecutrho is still insufficient to describe all Fourier components of the
augmentation charge.
In this case (that is nearly always) also the usal G-space has errors
(negative charges for molecules and surfaces, for instance) but they are
usually small and we are used to live with them.
Some experience is needed to understand the relevance of the error related
to R-space augmentation charges.
CP has R-space augmentation with small-boxes.
They also produce some different, usually small, errors.
I think (I may be wrong) this is the origin of the fact that sometime PWscf
and CP total energies are not exactly the same.
SdG and Antonio Suriano
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2531 c92efa57-630b-4861-b058-cf58834340f0
The idea is that module funct contains data defining the DFT functional in use
and a number of functions and subroutines to manage them.
Data are PRIVATE and are (shuold be) accessed and set only by function calls.
Basic drivers to compute XC quantities are also included.
It should be the main place where definitions for and calculation of xc
functionals are centralized.
In CPV printout [A.U.] replaced by [HARTREE A.U.] in many places.
stefano
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2411 c92efa57-630b-4861-b058-cf58834340f0
conversion to real => DBLE
(including real part of a complex number)
conversion to complex => CMPLX
complex conjugate => CONJG
imaginary part => AIMAG
All functions are uppercase.
CMPLX is preprocessed by f_defs.h and performs an explicit cast:
#define CMPLX(a,b) cmplx(a,b,kind=DP)
This implies that 1) f_defs.h must be included whenever a CMPLX is present,
2) CMPLX should stay in a single line, 3) DP must be defined.
All occurrences of real, float, dreal, dfloat, dconjg, dimag, dcmplx
removed - please do not reintroduce any of them.
Tested only with ifc7 and g95 - beware unintended side effects
Maybe not the best solution (explicit casts everywhere would be better)
but it can be easily changed with a script if the need arises.
The following code might be used to test for possible trouble:
program test_intrinsic
implicit none
integer, parameter :: dp = selected_real_kind(14,200)
real (kind=dp) :: a = 0.123456789012345_dp
real (kind=dp) :: b = 0.987654321098765_dp
complex (kind=dp) :: c = ( 0.123456789012345_dp, 0.987654321098765_dp)
print *, ' A = ', a
print *, ' DBLE(A)= ', DBLE(a)
print *, ' C = ', c
print *, 'CONJG(C)= ', CONJG(c)
print *, 'DBLE(c),AIMAG(C) = ', DBLE(c), AIMAG(c)
print *, 'CMPLX(A,B,kind=dp)= ', CMPLX( a, b, kind=dp)
end program test_intrinsic
Note that CMPLX and REAL without a cast yield single precision numbers on
ifc7 and g95 !!!
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2133 c92efa57-630b-4861-b058-cf58834340f0
A file containing information on the q-point grid is written by ph.x
and read by q2r.x, thus making the process less clumsy
The phonon code does not restart automatically any longer unless instructed
to do so by setting input variable "recover"
Misc cleanup
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2039 c92efa57-630b-4861-b058-cf58834340f0
- core charge, same module between CPV and FPMD
- Makefile: added dependency between "mods" and "libiotk"
- Makefile: fix for dependencies in PH and Gamma when __NEWPUNCH is defined
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1995 c92efa57-630b-4861-b058-cf58834340f0
all files open by seqopn.f90 and diropn.f90 in the TMP_DIR have the
general form "prefix"."extension" where extension is the only part of
the filename passed as an argument. This should avoid conflicts between
different jobs running at the same time and sharing the same TMP_DIR
(provided they have different prefixes ...)
All examples (from 1 to 26) give the same output as before on my pc.
Please let me know if you notice unexpected behaviours.
stefano
PS: example26 apparently does nothing (even giving the command run_example 7)..
As it uses cp.x which does not use seqopn/diropn routines this behaviour
cannot be due to the present changes.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1963 c92efa57-630b-4861-b058-cf58834340f0
exchange stuff.
These features can be obtained by compiling with -DEXX added to DFLAGS
in make.sys
***** DO NOT USE FOR ANY PRODUCTION RUN. *****
Stefano and Antonio
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1883 c92efa57-630b-4861-b058-cf58834340f0
No need to symmetrize it once again when it is read.
Note that the symmetrization in solve_e is now applied to Delta rho,
not to Delta Vscf. This is consistent with the behavior of solve_linter
Some cleanup in solve_e and solve_linter
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1685 c92efa57-630b-4861-b058-cf58834340f0
Array int3 (used in US case) was incorrectly dimensioned as int3(...,3,...)
instead of int3(...,max_irr_dim,...).
This generated incorrect results in an US phonon calculation when irreducible
reresentations with dimension larger than 3 (currently max_irr_dim is 4)
were found.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1554 c92efa57-630b-4861-b058-cf58834340f0
noncolinear and spin-orbit cases. pwnc.x is no more needed and the
directory PWNC and all its files will be removed.
Step one: added to PW the noncolinear routines that have not been
merged, changes on all the Makefiles.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1537 c92efa57-630b-4861-b058-cf58834340f0
- Few more functionals has been added to file more_functionals.f90
since in PW BLYP/LSDA were not implemented .
In the same file, temporary, are stored old CP90 subroutines
for testing purpose ( in CP functionals were vectorized!! ).
The small program PP/xctest.f90 can be used to make a comparative
test between new and old routines, in case someone suspect a problem
there.
- buon anno!
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1533 c92efa57-630b-4861-b058-cf58834340f0
in particular (modenum.ne.0) stands for iswitch = -4 now: is it OK?
unused show_memory routine also removed
documentation updated
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1503 c92efa57-630b-4861-b058-cf58834340f0
(to be tested). Makefile and ChangeLog cleanup
Per favore scrivete qualcosa nel ChangeLog quando fate qualcosa
e verificate che tutto compile quando aggiungete roba - PG
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1413 c92efa57-630b-4861-b058-cf58834340f0
- iotk_scan in iotk_module had a mixed up 'intent' statement.
- sun ultra fire 3 compiler warnings
- cleanup in filename length (brought to 256)
- cleanup in include files
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1399 c92efa57-630b-4861-b058-cf58834340f0
added example for phonon DOS; version number updated to 2.1 (PG)
Please start testing and debugging the next version, i.e., this one.
Note that reference data have to be updated for all examples.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1039 c92efa57-630b-4861-b058-cf58834340f0
is now within ph.x possible.
New input variables:
lnscf: if .true. the nscf and phonon run are done in one single run
ldisp: if .true. calculation of dyn. matrices for dispersion
nq1, nq2, nq3: q-point mesh
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1017 c92efa57-630b-4861-b058-cf58834340f0
1) f_defs.h for definitions to be included in FORTRAN files ONLY
2) c_defs.h for definitions to be included in C files ONLY
C.S.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1012 c92efa57-630b-4861-b058-cf58834340f0
in one step with pw.
A new calculation is possible called 'dispersion'
in the phonon card new input parameters are:
nq1, nq2, nq3 : number of q points in the direction
tr2_ph : threshold for the phonon calculation (see also INPUT_PH)
Therefore tr2_ph has been moved from phcom.f90 to Module disp in pwcom.f90
UP TO NOW ONLY THE Q POINTS FOR THE DYN. MATRICES ARE CALCULATED AND PRINTED.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@944 c92efa57-630b-4861-b058-cf58834340f0
Note that lqx => lmaxq for consistency with other names
(those ending in x are static dimensioning)
Beware unexpected side effects (PG)
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@933 c92efa57-630b-4861-b058-cf58834340f0
zstar, epsilon and dynamical matrices written with
8 digits only (it should not make any significant difference
and it should be easier to spot differences in dynmat files
if 0.123456789E-10 is treated as zero)
symmetrization is applied already to drho (not anymore to dvscf)
(SdG)
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@930 c92efa57-630b-4861-b058-cf58834340f0
new module uspp_param, shared between PW and CP (in file Modules/uspp.f90)
The flag newpseudo is no longer used to decide whether states with oc=0 are
bound or not: for those states, and only for the old RRKJ format, oc is set
to a negative value, and this signals that they are not bound. Not elegant
but simpler than it used to be. The converter to UPF format did not include
those states anyway. Beware unexpected side effects!
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@914 c92efa57-630b-4861-b058-cf58834340f0
is now the default. Moreover, if the wf_collect flag (in the control namelist)
is true, it collects all wave functions and store them in the same file.
The phonon and postprocessing codes can handle this new .save file.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@864 c92efa57-630b-4861-b058-cf58834340f0
PW: nqfm => nqfx, some us variables and aainit moved to Modules/uspp.f90 (new)
CP: lx, lqx => lqmax, lix => lmaxx+1, variables moved, aainit not yet merged
invmat moved to flib/ and merged with invmat3 of CP/FPMD,
rndm and ylmr2 moved to flib/ in rranf.f90
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@793 c92efa57-630b-4861-b058-cf58834340f0
and linked by all codes.
Now in case of severe error, errore writes its message also to the file 'CRASH'
that is closed before aborting, this to avoid information loss in those
systems that do not flush open streams, when the code is stopped through
a call to MPI_ABORT
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@750 c92efa57-630b-4861-b058-cf58834340f0
This required a deep modification of the parallelism in PWscf:
there are two new communicators (intra_image_comm and inter_image_comm) and the
existing "pool" communicators (intra_pool_comm and inter_pool_comm) are now vectors
of length given by the number of parallel images. #ifdef __PARA is no longer
needed because all "parallel" variables are always initialized for a serial run
and all parallel routines are, in the case of a serial run, dummy routines.
The wrappers to MPI routines used only by PWscf are in the PW/para.f90 file.
The others (mp_***) are in the Modules/mp.f90. All explicit referencies to mpif.h
should be replaced by an "USE parallel_include" (in a serial run parallel_include
is simply a dummy module).
2) The extrapolation of both potential and wavefunctions has been rewritten in
order to be smarter than before: on the basis of the required extrapolation
order, on the basis of the history and on the basis of which files are really
present on the disk, the algorithm chooses the extrapolation order.
All the algorithms in which ions are moved can use the extrapolation.
These are both unstable features: I need the help of everybody to test them.
C.S.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@742 c92efa57-630b-4861-b058-cf58834340f0
- basic cell and ionic variables moved frpm pwcom to
cell_base and ions_base .
cell_base modules and ions_base modules should be initialized
through the use of cell_base_init and ions_base_init, this after
having read the namelists and the cards .
IN THE FUTURE NONE OF THE VARIABLES IN THE BASIC MODULES SHOULD
BE SET IN THE MAIN CODES, BUT THROUGH A CALL TO SOME INIT
FUNCTIONS CONTAINED IN THE BASIC MODULE ITSELF.
THE IDEA IS THAT THE BASIC VARIABLES SHOULD BE USED AS
READ-ONLY. UNFORTUNATELY IN F90 THERE IS NO POSSIBILITY
TO SET A READ ONLY ATTRIBUTE.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@702 c92efa57-630b-4861-b058-cf58834340f0
All kinds ionic dynamics are done by a single cpu (see move_ions.f90).
After the ions are moved the new positions (and other information) are
broadcasted to all other cpus.
C.S.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@701 c92efa57-630b-4861-b058-cf58834340f0
order to allow to specify how to fill starting ns occupation
matrices. Useful when the default choice take the wrong
(or not desired) path.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@598 c92efa57-630b-4861-b058-cf58834340f0
as requested by Tone - examples updated with the exception of example12
(please verify if they are ok). Version number updated to 2.0 .
configure => configure.old, configure.new => configure
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@553 c92efa57-630b-4861-b058-cf58834340f0
correct place (kinds); module "varie" replaced by "control_flags" (not
yet in pwcom, though) - many many files changed.
64-bit cpus (Opteron, maybe Itanium) should now work if __LINUX64 is defined
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@513 c92efa57-630b-4861-b058-cf58834340f0
minus_q and related variables where not set properly: minus_q was always
set .false. while instead it may be .true. for some value of q (gamma
for instance).
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@503 c92efa57-630b-4861-b058-cf58834340f0
- variables in module pwcom/varie moved to Modules/control_flags
- module PW/format moved to Modules/format
- in module PW/supercell added workaround for AUTOMATIC variable and
AIX compilers
- PH Makefile added rbecmod.o
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@468 c92efa57-630b-4861-b058-cf58834340f0
- module filnam in pwcom moved to io_files module
- module units in pwcom moved to io_file
From now on, all file names and their unit and attributes (i.e. reclen)
should be defined in Modules/io_files.f90
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@382 c92efa57-630b-4861-b058-cf58834340f0
- ^M removed from pseudo files
- wavefunctions arrais moved to module
wavefunctions_module, common to all codes
this is required to reduce duplicated subroutine
- new lapack subroutine, called from PWCOND,
added to lib/lapack.f lib/lapack_ibm.f
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@381 c92efa57-630b-4861-b058-cf58834340f0