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
As projections are printed to sdout with 3 decimal digids, (sorted by
magnitude, in decreasing order), projections differing by less than 1.d-4
are considered equal so that output does not depend on phase of the moon
stefano
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2414 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
and it is still possible to do the two steps independently.
The output is basically the sum of the two outputs with minor
differences. Documentation and examples updated, GUI not yet.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2174 c92efa57-630b-4861-b058-cf58834340f0
written and read. Added some consistency checks. Postprocessing programs
not yet working (at least not all of them).
C.S.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2144 c92efa57-630b-4861-b058-cf58834340f0
pwscf set of drivers that read the xml punch file.
Now the postprocessing codes that use the read_file routine to read the punch
file should work (please check).
C.S.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2138 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
separate file. Note that :
- both executables are still untested
- no example is available for dipole calculation
- more cleanup is coming, at the end of which the GUI will have to be updated
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2043 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
Untested changes to ELF for the case US + double grid
(the kinetic energy density is still incorrect but less than before)
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1947 c92efa57-630b-4861-b058-cf58834340f0