- the present algorithm for locating zeros in find_coeff i) was absurd,
ii) under some circumstances it could take an inordinate amount of time.
While i) still holds, ii) should be fixed now
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2616 c92efa57-630b-4861-b058-cf58834340f0
to be more efficient in crytical cases. I've tried it on pseudo-gen
examples and it works. Let me know if it creates problems in other
cases.
Adriano
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2594 c92efa57-630b-4861-b058-cf58834340f0
- el_config.f90 now contains all routines reading electronic configuration
- occ_spin.f90 contains all routines that assign spin or j top states
- more explicit message
- issue warning but do not stop if generating an USPP with zero augmentation
charge
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2586 c92efa57-630b-4861-b058-cf58834340f0
calculations (rel=2) using "config" to pass the electronic configuratio
- more checks on what is read in input
- some cleanup
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2584 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
C6 coefficients using Thomas-Fermi + vonWeizsaeker approximation for the
kinetic energy functional is implemented in atomic code.
A directory with some examples is added in atomic_doc
Contributed by Huy-Viet Nguyen (SISSA).
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2510 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
currently :
- ONLY for all-electron calculations
- ONLY for non-relativistic case
- determination of the exchange potential in the tail region tends
to be ill defined ... rmax not too large are tipically needed
sdg
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2097 c92efa57-630b-4861-b058-cf58834340f0