Modules/error_handler.f90 . Not really an elegant solution, since
the module in error_handler is never used and subroutine "errore"
is not in the module, but better than it used to be. All makefiles
and make.depend updated (fixes yesterday's linking error as well).
Minor changes here and there as well.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4591 c92efa57-630b-4861-b058-cf58834340f0
- bug fix in chargedensity for task groups,
it could came out when the number of states
are not a multiple of the size of the group
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4586 c92efa57-630b-4861-b058-cf58834340f0
was not a multiple of the number of processors and gruop.
Most probably this is the bug that was pointed out by Konstantin Kudin
some time ago
- fft task groups driver replaced by the common CP/PW driver in Module
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4557 c92efa57-630b-4861-b058-cf58834340f0
much more time than the calls that follows, because of initialization activities.
Then, where performances are evaluated, a dummy call to the parallel
subroutine has been added before the timed one.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4527 c92efa57-630b-4861-b058-cf58834340f0
Precision of dylmr2 increased a bit, maybe it's not necessary
mix_rho messed up a bit, included the possibility to normalize mixing matrix (disabled by default)
Added a currently unused function in paw_init to increase integration precision on the fly
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4498 c92efa57-630b-4861-b058-cf58834340f0
like in it was in reduce sub of PW. This is to avoid large temporary
array allocations in module mp.f90 (mp.f90 calls subs in mp_base.f90).
On the other hands mp.f90 provide the general interfaces for different
kind of data and data size checking.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4441 c92efa57-630b-4861-b058-cf58834340f0
nymore). Other things working: parallel, gamma-only.
Files vxc_t, exc_t and vxcgc moved from atomic to Modules (to prevent cyclic dependencies).
Other random fixes: a kind in init_vloc, a call to infomsg in ./PH/add_for_charges.f90.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4358 c92efa57-630b-4861-b058-cf58834340f0
as a consequence very old FPMD pseudopotential files are no more
supported, they need to be converted with fpmd2upf.x upf tool.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4312 c92efa57-630b-4861-b058-cf58834340f0
zp, psd, dion, betar, jjj, qqq, qfunc, qfcoef, vloc_at, rinner,
nbeta, kkbeta, nqf, nqlc, lll, tvanp
have been replaced by the corresponding variables in structure 'upf'.
There shouldn't be any side effects, but who knows. There is still a
copy of the above variables that will be removed sooner or later.
Basically : variable([i,j,k,..,]n) => upf(n)%variable [(i,j,k,..)]
Note that upf%qfunc has for the time being three indices instead of two,
and that upf%kkbeta is the analogous of kkbeta and not what it used to be.
The logic of this operation will be clearer when it will be completed
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4308 c92efa57-630b-4861-b058-cf58834340f0
then copied into the internal modules. This is a first step towards
1) elimination of fixed-dimension atomic pseudopotential arrays,
2) reduction of memory usage by pseudopotentials,
3) cleanup of the pseudopotential mess.
Next steps: 1) the same in CP, 2) replacement of variables in "uspp"
module with an array of "upf" structures.
Beware: calculations using old formats should work as before, but
don't count on it
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4299 c92efa57-630b-4861-b058-cf58834340f0
This means that a lot of routines have been modified and a few files have
been added. During the year several people have contributed to this code,
mainly Guido Fratesi, Ricardo Mazzarello, Stefano de Gironcoli, Andrea Dal
Corso and me (Lorenzo Paulatto).
A brief report of modified or added files follows, further down you will
find a loger report of modifications that was necessary to merge develop_PAW
branch with the current CVS version.
Current version is not 100% functional, but it doesn't brake anything else and
can be used to generate and test PAW pseudopotential.
*************************************
*** Brief report of modifications ***
*************************************
Modified files:
PW/clean_pw.f90
PW/electrons.f90
PW/print_clock_pw.f90
PW/hinit0.f90
PW/potinit.f90
PW/newd.f90
PW/summary.f90
PW/setup.f90
PW/read_pseudo.f90
PW/init_us_1.f90
PW/init_run.f90
PW/mix_rho.f90
atomic/atomic_paw.f90
atomic/write_paw_recon.f90
atomic/ld1_writeout.f90
atomic/write_resultsps.f90
atomic/ld1inc.f90
atomic/ld1_readin.f90
atomic/gener_pseudo.f90
atomic/parameters.f900
atomic/run_pseudo.f900
atomic/set_rho_core.f90
atomic/pseudovloc.f90
Modules/read_upf.f90
Modules/uspp.f90
Modules/pseudo_types.f90
Modules/parameters.f90
Added files:
PW/grid_paw_routines.f90
PW/rad_paw_routines.f90
Modules/grid_paw_variables.f90
Modules/read_paw.f90
Added files that will be removed:
PW/rad_paw_trash.f90
PW/paw_xc.f90
Examples:
examples/PAWexample contains a full test of PAW pseudopotential
for Oxygen. The test consist in these tasks:
- 2 norm conserving, 2 US and 4 PAW pseudopotentials are
generated and tested in ld1
- pw test for an isolated O atom at different cutoffs
- pw test for an O2 molecule at different O-O distance
please read examples/PAWexample/README for (a few) details.
NOTES:
1. new modifications to atomic_paw (and related) from ADC have been rolled
back, as they were breaking a lot of things, I will reintroduce them
later when I am sure that everything works properly.
2. the files PW/paw_xc.f90 and Modules/rad_paw_trash.f90 will be removed in
the next few weeks.
TODO:
1. use new ld1 XC code as much as possible, and remove legacy XC routines
from rad_paw_routines
2. full self-consistency with radial energies
3. make new Harris-Foulkes estimate paw-aware
4. provide some kind error estimate
5. FORCES and stress!! (require symmetrization of becsums)
6. cleanup
************************
*** merge of PW code ***
************************
Versions notation:
OLD=version from 2 years ago used as reference to generate the patches
NEW=CURRENT=current trunk version
PAW=current develop_PAW version
Note: pseudo-potential input and allocation routines changed
a lot in the last years, this is a diagram:
OLD:PW/readin ~~> PAW:PW/read_pseudo --> disappears
pops out --> PAW:PW/readin ~~> NEW:PW/read_pseudo
added files:
Modules/read_paw.f90 (contains module read_paw_module with subroutines
paw_io nullify_pseudo_paw, allocate_pseudo_paw and
deallocate_pseudo_paw previously in removed file
Modules/readpseudo.f90. Also contains module
paw_to_internal with subroutine set_pseudo_paw,
previously in upf_to_internal.f90)
PW/paw_xc.f90 (contains OLD=PAW xc and gcxc routines as adapting paw
grid code to use new routines was very error prone and
quite worthless, as it has to be removed anyway)
Conflicts reported by CVS during merge:
DONE */Makefiles (all replaced with new, redone by hand)
DONE flib/functionals.f90 (nothing to do)
DONE Modules/functionals.f90 (RNV == replaced with NEW version)
DONE Modules/atom.f90 (trivial: duped rgrid)
DONE Modules/autopilot.f90 (trivial)
DONE Modules/bfgs_module.f90 (RNV)
DONE Modules/cell_base.f90 (RNV)
DONE Modules/check_stop.f90 (RNV)
DONE Modules/constants.f90 (RNV)
DONE Modules/constraints_module.f90 (RNV)
DONE Modules/energies.f90 (RNV)
DONE Modules/input_parameters.f90 (RNV)
DONE Modules/ions_base.f90 (RNV, has 3 new subs)
DONE Modules/ions_nose.f90 (RNV)
DONE Modules/parameters.f90 (actually RNV)
DONE Modules/path_base.f90 (RNV)
DONE Modules/path_opt_routines.f90 (RNV)
DONE Modules/path_reparametrisation.f90 (RNV)
DONE Modules/path_variables.f90 (RNV)
DONE Modules/pseudo_types.f90 (cleaned double def of paw_t)
DONE Modules/read_cards.f90 (RNV)
DONE Modules/read_namelists.f90 (checked and RNV)
DONE Modules/uspp.f90 (trivial)
DONE Modules/xml_io_base.f90 (RNV)
DONE PW/read_pseudo.f90 (merged by hand with PAW PW/readin)
DONE PW/bp_calc_btq.f90 (trivial)
DONE PW/c_bands.f90 (actually RNV)
DONE PW/ccgdiagg.f90 (RNV)
DONE PW/cegterg.f90 (RNV)
DONE PW/cft3s.f90 (RNV)
DONE PW/cinitcgg.f90 (RNV)
DONE PW/c_phase_field.f90 (RNV)
DONE PW/divide_et_impera.f90 (nothing to do?)
DONE PW/exx.f90 (RNV)
DONE PW/hinit0.f90 (easy)
DONE PW/h_psi.f90 (RNV)
DONE PW/init_run.f90 (easy)
DONE PW/kpoint_grid.f90 (nothing to do?)
DONE PW/newd.f90 (required mod in newd_paw_grid, CHECK!!)
DONE PW/openfil.f90 (actually RNV)
DONE PW/paw.f90 (actually RNV)
DONE PW/punch.f90 (RNV)
DONE PW/pwscf.f90 (quite RNV)
DONE PW/set_kup_and_kdw.f90 (RNV)
DONE PW/setup.f90 (RNV + 2 line merged by hand)
DONE PW/sgama.f9 (actually RNV)
DONE PW/sgam_at_mag.f90 (actually RNV)
DONE PW/stop_run.f90 (actually RNV)
DONE PW/stres_gradcorr.f90 (actually RNV)
DONE PW/symrho_mag.f90 (nothing to do)
DONE PW/v_of_rho.f90 (RNV)
DONE PW/compute_fes_grads.f90 (RNV)
DONE PW/gradcorr.f90 (RNV)
DONE PW/input.f90 (RNV)
DONE PW/pw_restart.f90 (RNV)
DONE PW/read_ncpp.f90 (actually RNV)
DONE PW/summary.f90 (RNV + inserted new PP type)
DONE PW/wfcinit.f90 (RNV)
the hard ones:
DONE PW/electrons.f90 (adapted code to new syntaxes, a lot of cleanup, removed
some PAW junk that can be readded later, removed parts
that were applyed twice, or had been removed in trunk,
the rhog allocations and usage may need fixes)
DONE PW/mix_rho.f90 (merged tauk and paw additions, a bit of cleanup and smarter
variables names)
DONE PW/init_us_1.f90 (qtot redefined with "triangular" index nb,mb-->ijv)
modified for compiling:
Modules/io_files.f90 (depatched)
PW/pwcom.f90 (depatched)
Modules/parameters.f90 (temporary readded cp_lmax = lmaxx+1)
PW/newd.f90 (merge was wrong, redone mostly by hand)
PW/read_ncpp.f90 (depatched)
PW/read_pseudo (small fixes)
PW/sgam_at_mag.f90 (depatched)
PW/sgama.f90 (depatched)
PW/stres_gradcorr.f90 (depatched)
modified for running:
PW/clean_pw.f90 (added call to deallocate_paw_internals)
Modifications to PAW routines:
1. compute_onecenter_charges and compute_onecenter_charges modified to
comply with new structure of v_xc (in v_of_rho.f90), requiring new
g-space densities to be saved and computed --> using old xc routines
as this code will be removed.
2. qrad size has changed, prad and ptrad had to be changed accordingly.
3. several minor modifications to use new radial grid structure.
4. infomsg arguments changed, very funny bug followed.
5. added new routine deallocate_paw_internals, called by PW/clean_pw.f90
required to run pp.x with more than one q-point(and good programming
practice)
*************************
*** merge of LD1 code ***
*************************
2nd try: atomic code replaced with current version, then merge by hand
the files that are used by paw subsystem:
* atomic_paw.f90 (replaced with most recent version from develop_PAW
routine us2paw and paw2us taken from newer trunk
version, a lot of minor changes.)
* gener_pseudo.f90 (fixes)
* ld1inc.f90 (PAW variables added)
* ld1_readin.f90 (PAW variables added, I am not sure if lpaw should go
in input or inputp namelist)
* ld1_writeout.f90 (it was only necessary to add a few lines)
* pseudovloc.f90 (nothing to do)
* run_pseudo.f90 (almost nothing to do)
* set_rho_core.f90 (readded a few lines for lnc2paw)
* write_paw_recon.f90 (nothing to do)
* write_resultsps.f90 (nothing to do: trunk version is more
PAW-aware than PAW version)
Main problems were found in subroutines run_pseudo and gen_pseudo,
a little code had to be rewritten to comply with new variable names
and fix with merge.
TODO: fix atomic_paw routines to use minimal allocated arrays insetad
of ndmx sized ones; try to use the pawet as much as possible. Remove
test lines and other garbage. Find a fix for PAW2.
The first week of september Andrea Dal Corso uploaded a few modifications to
the atomic_paw routines. I had to rollback them as the structure of atomic_paw
has changed a lot and reimplementing them is probably easier and definitely
safer than fixing everything. I will do it soon, I swear!
LP
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4257 c92efa57-630b-4861-b058-cf58834340f0
now ensemble dft+nspin=2 is working agian
The case cold-smearing has been tested
the case fermi-dirac is stll to be checked
P.U.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4241 c92efa57-630b-4861-b058-cf58834340f0
with questionable spelling
fftdrv: use the same scatter algorithm as PWscf (what_scatter=1)
the previous default, what_scatter=0, did not allow nr3x to differ from nr3
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4188 c92efa57-630b-4861-b058-cf58834340f0
data. Matrixes are distributed across processors.
- to turn on the use of the new algorithm, a new value for
input parameter "diagonalization", has been introduced:
diagonalization = 'david+distpara'
work like david but use fully distributed memory
iteration loop. Allocated memory scale down with the
number of procs. Procs involved in diagonalization can
be changed with input parameter "ortho_para".
On multi core/CPUs often it is convenient to let only
one core per CPU to work on linear algebra.
User can tune the number of core involved in diag. with
the keyword in electrons namelist:
ortho_para = NN
then the code will use the largest square smaller than NN,
since matrixes are always distributed on a suqre grid of procs.
Note that if NN < 2*nproc, then one proc every two is taken
for parellel diag. The same for NN < 4*proc, one every four
is taken. This is to minimize memory contention on multi core proc.
In example, if you run with 64procs on a 4core CPU cluster,
it may be convenient to specify:
ortho_para = 16
So that only one core per CPU is involved in diagonalization.
Further performance enhancements will be possible using
OpenMP BLAS inside regter/cegter/rdiaghg/cdiaghg (to be implemented)
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4153 c92efa57-630b-4861-b058-cf58834340f0
Now when the total number of procs is >= 2 * number of procs in ortho group,
only processors with even rank are included in ortho
group. This should stess less the memory BW in multi-core procs.
Normally in ortho group are included processors with rank < number of
procs in ortho group.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4124 c92efa57-630b-4861-b058-cf58834340f0
allocated memory now scale with the number of processor
in the ortho group. To be exact memory scale like the
square root of the number of processor used in the ortho
group. With 4 proc the allocated memory is 1/2 of the memory
required with a single proc.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4058 c92efa57-630b-4861-b058-cf58834340f0
for US PP, are completely ignored (box grid is not initialized) for NC PP.
This prevents nasty errors in US PP calculations if nr*b are forgotten
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@4045 c92efa57-630b-4861-b058-cf58834340f0
LD used instead of MPIF90 in Makefiles for loading. Since LD is used
anyway in iotk, it makes sense to use it. In some cases it may be
useful to have distinct options for compiling and for loading.
Minor cleanup in some routines
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3976 c92efa57-630b-4861-b058-cf58834340f0
PAW-related stuff extracted and put into the paw module; various checks
moved to more appropriate places; initialization of obsolete variables
lloc and lmax moved elsewhere; variable zp moved to uspp_param.
All PP-reading subroutines (too many) read zp, not zv; zv is set later.
Summary for pseudopotentials unified and purged of printout of
obsolete/unused/unset variables.
PW/readin.f90 renamed to something more suggestive of what it does
(PW/read_pseudo.f90). Module PW/upf_to_internal.f90 moved to Modules/,
routine upf2internal removed from CPV/read_pseudo.f90.
Harmless error in berry phase + a few bad formats in GIPAW fixed.
Dependencies and Makefiles updated.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3851 c92efa57-630b-4861-b058-cf58834340f0
GIPAW/make.depend added to CVS, like all others - should be updated
when dependencies change using "./makedeps.sh GIPAW" from the root
directory of QE
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3724 c92efa57-630b-4861-b058-cf58834340f0
lambda matrixes on a square mesh PxP of processors.
The number of processors used in the run not necessarily should be equal
to a perfect square PxP, the code, in distributing lambda,
try to use an optimal (for performances) square PxP less or equal than the
number of procs used.
- the size (Np=PxP) of the processor mesh to be used in distributing lambda
and ortho, can be suggested using the namelist keyword
ortho_para = Np
in the electrons namelist
- the distribution of lambda matrixes is required to save
memory in run with an high number of bands.
In a system with 2800 bands, the memory saved is about 200Mbyte
per proc/core if a sufficient number of proc ( some hundreds )
is used.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3643 c92efa57-630b-4861-b058-cf58834340f0
- fix for a bug in the computation of optimal
subdivision for parallel matrix multiplication
- parallel diagonalization is now performed only on
the same subset of processors used for matrix multiplication
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3625 c92efa57-630b-4861-b058-cf58834340f0
potentials and energy is ok, on the forces there is still
some small problems. Further clean ups required.
Contributed by
Patrick Sit
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3605 c92efa57-630b-4861-b058-cf58834340f0
- correct an unquoted string (iosys) in PW/input.f90:483
(this was the cause of tonight compilation failere)
- correct a few incorrect format strings
- make more use of the constants module and thus
provide more consistent units. NOTE, this has some
numerical changes in the outputs, as in some places
rather low precision and inconsistent numbers were
used for unit conversion.
- convert all(?) single precision constants to double
using the attached little perl program.
exceptions: efermi.f90 (as it is supposed to be rewritten
anyways), plotbands.f90 (it uses single precision everywhere,
which may result in saving a significant amount of memory,
so i converted the two double precision constants to single).
Unused routine 'set_fft_grid' removed
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3602 c92efa57-630b-4861-b058-cf58834340f0
the data is read into input_parameters and copied to module pres_ai_mod,
like for all the other input variables. This allows a better separation
between reading and initialization phases, removes many dependencies upon
upon pres_ai_mod. Module pres_ai_mod moved to CPV where it belongs.
Makefiles and dependency files updated. UNTESTED: it may or may not work..
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3597 c92efa57-630b-4861-b058-cf58834340f0
- disable locales via use of LC_ALL=C in all shell scripts
(which will hopefully make sorted lists more consistent
between people running with different locales).
- remove redundant files from PW, NMR_new, VdW, VIB;
rename subroutines if their functionality is noI
unchanged from the original source it was taken from.
- corresponding updates to Makefiles and dependencies.
- whitespace cleanups (eleminate remaining tabs).
- a few more float->DBLE
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3596 c92efa57-630b-4861-b058-cf58834340f0
energy and free-energy calculations): now it works for local file-systems also.
Variables names conflicting with fortran keywords (target) have been changed.
Clean-up of meta-dynamics code.
C.S.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3592 c92efa57-630b-4861-b058-cf58834340f0
- replace variables that have the names of keywords:
IF (this should make the code non-compilable!),
INT, SCALE.
- CALL getenv -> CALL get_env (which is the only place to call
getenv(). BTW, newer fortran standards now recommend to use
CALL get_environment_variable, so it might be needed to have
only one platform dependend place)
- makefile cleanup in VIB (more consistent with subdirs, not yet
perfect).
- whitespace fix (avoid tabs!).
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3591 c92efa57-630b-4861-b058-cf58834340f0
- workaround for gfortran (it is sort of working)
- single precision constants promoted to double precision
- dfloat-> DBLE
- DIMAG ->AIMAG
- DCMPLX->CMPLX
Note that ALL calls to dfloat, dimag, dcmplx have been added recently,
since I removed all of them no more than a few months ago
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3586 c92efa57-630b-4861-b058-cf58834340f0
Volume" and the "quantum surface" of an islated system to perform finite
pressure and/or finite surface tension MD simulations. For details look
PRL 94 145501 ('05).
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3551 c92efa57-630b-4861-b058-cf58834340f0
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
- Incoherences between gk-vectors and wfc-component eliminated,
now collected wfc components are stored in the same order
of gk-vectors. This will also save disk space.
- Some TAGS in data-file changed.
WARNING THE NEW LAYOUT IS NOT BACKWARD COMPATIBLE!
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3467 c92efa57-630b-4861-b058-cf58834340f0
This will save memory for large system with thousands of electrons.
- Parallel matrix multiplication using low network traffic Cannon's algorithm
- New processors subgroup to be used with ortho, infact Cannon's alg.
uses only square number of procs: 1, 4, 9, 16, 25, ...
- The performance of matrix multiplication are mesured, and the best
processor number is choosen.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3459 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
- enhanced restart procedure, with disk_io='high'
more stuff is saved to restart dir, this is required
for post-processing and pw.x codes.
- wave functions are read following the iotk link, without
explicitly open the file, this increases the possibility
for interoperability and backward compatibility.
- added input parameter saverho (to control the saving of charge density),
disk_io has a more general meaning
- merging of the subroutine that computes dekin stress component
- atomic wave function occupations factors ( "oc" ) now
are copied to internal "atom" module.
- various cleanups
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3322 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
to subroutines that will be taken out from the modules.
This will eliminate dependencies and speed-up the compilation
TO DEVELOPERS: to take out subroutines from modules
follow the example used for bessel2 and bessel3
(bessel.f90 file)
- subroutine bessel1 removed
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3299 c92efa57-630b-4861-b058-cf58834340f0
Now wave functions array have only 2 indices everywhere, the first
for the plane waves, and the second for the electronic states.
When a spin calculation is performed the "spin up" states
are stored in the first "nupdwn(1)" columns of the wave functions
array, and the "spin down" states are stored in the second "nupdwn(2)"
columns of the same array.
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3274 c92efa57-630b-4861-b058-cf58834340f0
CP can now restart from PW , and PW (at gamma) can restart from CP.
In CP the following control keyword should be specified:
disk_io = 'high'
to save the charge density
In PW the following control keyword should be specified:
restart_mode='restart',
wf_collect = .true.
to save wfc
- an example will follow
git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@3270 c92efa57-630b-4861-b058-cf58834340f0