perform a DFT+DMFT calculation.
contributed by Dmtry Korotin, V.I. Anisimov, N. Binggeli et al.
The DMFT part will be loaded separately into QE-forge.
SdG
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@5397 c92efa57-630b-4861-b058-cf58834340f0
Note that both the electric enthalpy term and the noncollinear routines
are called by h_psi and s_psi. Changes should be harmless.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4470 c92efa57-630b-4861-b058-cf58834340f0
for a bug, before I realized that there were two copies of "gamma_only",
I wasted two more hours to iuse a single value of "gamma_only" (the one
oin control_flags).
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4468 c92efa57-630b-4861-b058-cf58834340f0
Now it works (i.e. it does something, as opposed to doing nothing)
with a more descriptive and less promising name: startingwfc='atomic+random'
Some cleanup of Berry phase and electric fields stuff - shouldn't change
anything. More descriptive message about surviving static dimensions.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4439 c92efa57-630b-4861-b058-cf58834340f0
- obscure printout of misc variables removed from allocate_wfc,
moved to less random places with hopefully less obscure meaning
- added printout of memory usage of main arrays
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4013 c92efa57-630b-4861-b058-cf58834340f0
File buffers.f90 contains replacements - with different names and syntax -
for diropn (open_buffer) and davcio (get_buffer, save_buffer). If you have
better names, please go ahead. Works for a single buffer right now.
Pitfalls: nwordwfc is now defined as the number of complex words, no longer
of real words, but only in PW/, so mixing routines from PW with routines from
other codes may run into trouble (although I didn't see any side effect).
Restart may no longer work in some specific cases.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3800 c92efa57-630b-4861-b058-cf58834340f0
for a single k-point without reading or writing anything is now available.
The functionality of c_bands should remain the same (please check).
Obsolete non-collinear DIIS diagonalization routines removed.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3683 c92efa57-630b-4861-b058-cf58834340f0
the starting wavefunctions from the atomic ones for a single k-point
without reading or writing anything is now available.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3652 c92efa57-630b-4861-b058-cf58834340f0
field. Now the projectors for the hermitean el. field operator
which depend on the wavefunctions,
are calculated just once and store on disk for every diagonalization
It permits much faster execution in particular for cg minimization.
P.U.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3607 c92efa57-630b-4861-b058-cf58834340f0
in analogy to evc.
Apparently swfcatom_nc was used but not allocated in noncollinear
calculations with LDA+U (not sure it was implemented, though)
There is still something I don't understand in wfcinit: the starting
wavefunctions needs to be set to 0 for n>npw at the end of the routine,
while it should be sufficient to clean them at the beginning. This might
be a sign that we are overwriting a zone that should not be overwritten.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3582 c92efa57-630b-4861-b058-cf58834340f0
as the usual two-index array evc(2*npwx,nbnd), no longer as a
different three-index array evc_nc(npwx,2,nbnd).
I am not really sure that this way is better than the previous
one: sometimes it is more convenient, sometimes it is less, but
I think that having the same array makes easier the transition
to a code that keeps everything in memory. Apologies to anybody
preferring three indices: anyway the physical memory layout
hasn't changed, so the transition from three-index to two-index
arrays shouldn't be a major problem
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3572 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
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
orthoatmwfc (the routine that set LDA+U projectors)
should always be called in wfcinit even if startingwfc=='file'
sdg
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@2106 c92efa57-630b-4861-b058-cf58834340f0
number bands and not all the atomic wfcs (they can be much more than the number of bands).
setup.f90 for collinear and noncollinear case unified.
C.S.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@1282 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
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
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
NEB/ removed from makedeps.sh
plotrho: added possibility to have contour lines of various type
A few undefined variables defined (again)
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@465 c92efa57-630b-4861-b058-cf58834340f0