2010-01-07 00:54:57 +08:00
|
|
|
TODO LIST - January 2010
|
2009-10-02 21:57:51 +08:00
|
|
|
|
|
|
|
1) Organization
|
|
|
|
|
|
|
|
1.1 www.quantum-espresso.org:
|
|
|
|
1.1.1 update sample applications
|
2009-11-07 01:28:19 +08:00
|
|
|
1.1.2 pseudopotential upload facility: done, to be checked
|
2009-10-20 22:30:03 +08:00
|
|
|
1.2 Wiki:
|
2009-11-07 01:28:19 +08:00
|
|
|
1.2.1 move to qe-forge? is its current contents sensible?
|
2009-10-02 21:57:51 +08:00
|
|
|
1.3 CVS restructuring:
|
2009-10-20 22:30:03 +08:00
|
|
|
1.3.1 no pseudopotentials in CVS any longer
|
|
|
|
1.3.2 only general-purpose modules in Modules/
|
2009-10-02 21:57:51 +08:00
|
|
|
1.4 mailing lists:
|
|
|
|
1.4.1 move to qe-forge
|
|
|
|
1.4.2 better search facility. Use google with site:democritos.it ?
|
2009-12-05 00:23:17 +08:00
|
|
|
1.5 Interoperability:
|
|
|
|
1.5.1 we should maintain somewhere (user guide? wiki? web page?)
|
2009-12-12 17:50:13 +08:00
|
|
|
a list of external "QE-interoperable codes", that either
|
|
|
|
provide input data for QE or read output/data files from QE
|
2009-10-02 21:57:51 +08:00
|
|
|
|
|
|
|
2) Documentation
|
|
|
|
|
|
|
|
2.1 "Manuale delle giovani marmotte". Start from my notes for the course
|
|
|
|
of Electronic Structure, add more examples, with a short theoretical
|
|
|
|
introduction followed by explanation of practical calculations, ending
|
|
|
|
up with examples using QE. To begin with:
|
|
|
|
- convergence tests with USPP
|
|
|
|
- convergence tests with metals
|
2009-10-11 00:37:17 +08:00
|
|
|
- cohesive energies
|
2009-10-02 21:57:51 +08:00
|
|
|
- formation energies in defects (including charged defects)
|
|
|
|
- variable-cell optimization
|
|
|
|
- XPS spectra calculations
|
|
|
|
2.2 QE-Tutorial: should be moved to the cvs of qe-forge.
|
|
|
|
What are our plans for it, if any???
|
|
|
|
2.3 We should decide a strategy on where to put the documentation.
|
|
|
|
Now it is in Doc/ for everything, except for atomic and GWW.
|
|
|
|
We should decide which packages should have the documentation
|
|
|
|
in other places. The same applies to examples.
|
2009-10-11 00:39:18 +08:00
|
|
|
2.4 Documentation on how to generate PP for GIPAW calculation is missing
|
2009-10-02 21:57:51 +08:00
|
|
|
|
|
|
|
3) Pseudopotentials
|
|
|
|
|
|
|
|
3.1 Add Coulomb PPs - require first that we fix 1.1.2
|
|
|
|
3.2 Implement Goedecker PPs
|
|
|
|
3.3 Extend documentation in pseudo-gen.tex to the case of multiple
|
|
|
|
projectors and to USPP (eventually to PAW)
|
|
|
|
3.4 Various proposals to extend the PP table with extensive/automated
|
|
|
|
tests (FM, NM, etc.)
|
|
|
|
3.5 Add default cutoff values as well as radii of augmented charge
|
2009-10-02 22:45:39 +08:00
|
|
|
in pseudopotential files (they are present in recent PP only)
|
2009-10-02 21:57:51 +08:00
|
|
|
|
|
|
|
4) Development
|
|
|
|
|
|
|
|
4.1 Big new developments to add:
|
2009-10-17 19:16:50 +08:00
|
|
|
4.1.0 ready: QHA (remove pwtools/fqha.f90)
|
|
|
|
4.1.1 ready: TD-DFPT
|
|
|
|
4.1.2 coming soon (?): vdW with nonlocal xc functional
|
2009-10-02 22:45:39 +08:00
|
|
|
4.1.3 coming soon (?): new GWW
|
2009-11-07 01:28:19 +08:00
|
|
|
4.1.4 coming soon (?): electron-phonon with Wannier stuff
|
2009-12-23 01:01:28 +08:00
|
|
|
4.1.5 almost ready: interface with plumed for metadynamics
|
|
|
|
once it works, old metadynamics stuff can be removed
|
|
|
|
4.1.6 almost ready: G-space symmetrization. Once ready, the
|
|
|
|
wrappers should be removed and the algorithm made final.
|
|
|
|
4.1.7 next: bio-oriented stuff (Solvent Models, PCM, QM-MM)
|
|
|
|
4.1.8 not big but ongoing (or not going) since a long time:
|
2009-10-02 22:45:39 +08:00
|
|
|
Wyckoff interface
|
2009-12-23 01:01:28 +08:00
|
|
|
4.1.9 not big but useful: collection of tools and utilities
|
2009-11-07 01:28:19 +08:00
|
|
|
for data analysis (things like g(r) from MD simulations)
|
2009-10-02 21:57:51 +08:00
|
|
|
|
|
|
|
4.2 Small new developments, desirable or to be added:
|
2009-12-23 01:01:28 +08:00
|
|
|
4.2.1 configure issues:
|
|
|
|
- ifort+acml
|
|
|
|
- maybe we should use AC_PROG_FC instead of AC_PROG_F77
|
|
|
|
- check if all MKL versions are recognized
|
|
|
|
- add search for -lfftw3xf_intel
|
|
|
|
- remove obsolete stuff: mips alpha alinux macppc
|
2009-10-02 21:57:51 +08:00
|
|
|
4.2.2 Add check if constraints break the symmetry
|
|
|
|
4.2.3 inversion symmetry should allow real hamiltonian and wavefunctions
|
|
|
|
4.2.4 nscf calculations are slow. There must be a way to make a better
|
|
|
|
usage of the available information from the scf calculation:
|
|
|
|
wavefunctions are just discarded. Same for phonon calculation:
|
|
|
|
it shouldn't be needed to recalculate everything almost from
|
2009-12-23 01:01:28 +08:00
|
|
|
scratch at each different q-point
|
2009-10-02 21:57:51 +08:00
|
|
|
4.2.5 Fermi-Dirac: pass T instead of "broadening", make it possible
|
|
|
|
to use it on top of smearing for free-energy calculations
|
|
|
|
4.2.6 add traceback in error (error_handler module)
|
|
|
|
4.2.7 dynmat should write frequencies in a format that is suitable
|
2009-11-07 01:28:19 +08:00
|
|
|
for direct plotting by gnuplot/xmgrace - see also Eyvaz' script
|
|
|
|
for phonon plotting
|
2009-10-02 21:57:51 +08:00
|
|
|
4.2.8 Move to a xml-based format for the dynamical matrix files
|
2009-10-11 00:39:18 +08:00
|
|
|
4.2.9 Interface to RESP calculation - requires adding radii to xml file
|
2009-10-02 21:57:51 +08:00
|
|
|
4.2.10 PH: C(R) should be calculated at the end of a dispersion run
|
2009-10-20 22:30:03 +08:00
|
|
|
4.2.11 Gamma: same input as for PH
|
|
|
|
4.2.12 stop with 'prefix.EXIT' and restart in D3 and Gamma (KK)
|
|
|
|
4.2.13 PP, PH, etc., should read and use DFT written to xml file
|
|
|
|
4.2.14 Various defaults for CP (proposed from Princeton):
|
2009-10-02 21:57:51 +08:00
|
|
|
- emass(emass=300), dt (dt=7), for preconditioning cutoff (3)
|
|
|
|
- automatic box grid for USPP from radii of augmented charge
|
|
|
|
- Electronic minimization: damp as default, sd discouraged
|
|
|
|
introduce an automatic default schedule, something as:
|
|
|
|
1st step sd followed by 5 steps with with damp= 0.8,
|
|
|
|
followed by 5 steps with damp=0.5,
|
|
|
|
followed by 10 steps with damp=0.3,
|
|
|
|
followed by 10 steps with damp=0.2,
|
|
|
|
followed by as many steps as necessary
|
|
|
|
to achieve the required convergence with damp=0.1
|
|
|
|
A max number of steps should be included to ensure program termination.
|
|
|
|
The other option allowed should be conjugate gradients:
|
|
|
|
see NM - it could one day become the default
|
|
|
|
- Ionic minimization: again SD should be discouraged
|
|
|
|
A default scheme for simultaneous damped dynamics should be given
|
|
|
|
(to be tested) for example: zero damp on ions and start with damp=0.5
|
|
|
|
on electrons to become then 0.1 or perhaps the values should be set
|
|
|
|
given the forces on the ions
|
|
|
|
When moving ions and electrons simultaneously an important parameter
|
|
|
|
is the ratio between electron and ion masses - For minimization it
|
|
|
|
is better to set up all the ion masses equal - A default value for
|
|
|
|
the ion masses (considering the defaults for emass and dt) is perhaps
|
|
|
|
10 AMU (we should do some test to see if 20 AMU is s a safer value)
|
|
|
|
- Default values for randomization should be given
|
|
|
|
amprp=0.1 is a decent value - amprp=0.01 is too small
|
|
|
|
- Car-Parrinello dynamics: the proper masses for the ions, an optimal
|
|
|
|
value for emass and dt should be set up by the code, based on the
|
|
|
|
smaller atomic mass and the default value used in the minimization
|
|
|
|
e.g. Amass_default=10 AMU. If the minimum physical AMASS is 20 then
|
|
|
|
dt=sqrt(2) dt_default and emass should be increased so to keep
|
|
|
|
emass^2/dt constant
|
|
|
|
- defaults for the Nose thermostat
|
|
|
|
|
|
|
|
4.3 Performance enhancements/Parallelization:
|
|
|
|
4.3.1 make hpsi/spsi/CG faster
|
|
|
|
- remove complex factor i**l from beta fct and q(r)
|
|
|
|
- shift structure factor from beta to psi when computing becp
|
|
|
|
(reduce memory)
|
|
|
|
- use real BLAS routine instead of COMPLEX one in hpsi/spsi
|
|
|
|
(at least 2 times faster).
|
|
|
|
- use only half of the G's when computing real integrals
|
|
|
|
(2 times faster)
|
|
|
|
- seek for CG and DIIS algoritms that only use (H-eS)|psi>
|
|
|
|
and not the two vector separately ... compute it in one single
|
|
|
|
call. In this way S|psi> is inexpensive
|
|
|
|
4.3.2 Try the new "Density-Matrix-Based" diagonalization algorithm
|
|
|
|
4.3.3 grid-ization/parallelization of the phonon code: irreps and
|
|
|
|
q-vectors should be distributed across processors/grid computers
|
|
|
|
4.3.4 PH: use charge mixing instead of potential mixing
|
2009-10-17 19:16:50 +08:00
|
|
|
4.3.5 D3: verify status of parallelization, clean it up if needed
|
2009-10-02 21:57:51 +08:00
|
|
|
|
|
|
|
4.4 Cleanup
|
|
|
|
4.4.1 Increase modularization by
|
|
|
|
- collecting variables and routines acting on those variables
|
|
|
|
into modules (e.g.: symmetry)
|
|
|
|
- classifying modules in a hierarchical way
|
|
|
|
- avoiding as much as possible that modules depend on many
|
|
|
|
other modules
|
|
|
|
4.4.2 Avoid monster routines that do too many things at the same time
|
|
|
|
depending on the value of too many variables. An example:
|
|
|
|
read_file
|
|
|
|
4.4.3 There is some confusion in the various initialization steps:
|
|
|
|
- default values at startup
|
|
|
|
- reading of the input data and copy into internal variables
|
|
|
|
- reading from data file
|
|
|
|
- initialization of general variables (that presumably will
|
|
|
|
be written to or read from file)
|
|
|
|
- initialization of variables used in a specific calculation
|
|
|
|
(that may not be written to or read from the data file)
|
|
|
|
All these steps are intermixed and/or replicated and it is
|
|
|
|
never clear what is initialized where. Same for variable
|
|
|
|
allocation: see recent GIPAW workaround for an example of
|
|
|
|
allocation confusion (qnorm, cell_factor in allocate_nlpot)
|
|
|
|
4.4.4 More PW/CP merge:
|
|
|
|
- "cell_base_init" from CP to PW
|
|
|
|
- "cellmd" module of PW and "cell_base" of CPV
|
|
|
|
- PW "real-space" approach / CP "small boxes"
|
|
|
|
- there should be a single function or routine for periodic boundary
|
|
|
|
conditions (i.e. bringing all atoms inside the unit cell)
|
|
|
|
- spherical harmonics and integration routines
|
2009-12-23 01:01:28 +08:00
|
|
|
- merge of atomic positions! currently CP uses a complex logic
|
|
|
|
that is very hard to follow
|
2009-10-02 21:57:51 +08:00
|
|
|
4.4.5 Use qexml for xml file processing so that a single, easily
|
|
|
|
exportable routine, is used everywhere. Requires some though
|
|
|
|
on how to deal with parallelism without filling qexml with
|
|
|
|
parallel stuff
|
|
|
|
4.4.6 adding/removing/modifying input variables is too complex
|
|
|
|
Why are some checks on input variables performed in read_namelist,
|
|
|
|
while others apparently similar are in */input.f90?
|
|
|
|
4.4.7 Units: all units should be clearly documented and reprinted
|
|
|
|
on output (and also exactly what the printed quantites are)
|
2009-10-02 22:45:39 +08:00
|
|
|
4.4.8 There should be a function calculating dj_l/dx;
|
2009-10-02 21:57:51 +08:00
|
|
|
j_l with l=-1 should not be needed
|
|
|
|
4.4.9 too many confusing error messages are still around
|
|
|
|
4.4.10 Output should be more informative and less confused, better
|
2009-10-11 00:37:17 +08:00
|
|
|
structured, and ready for automatic reading by xcrysden
|
2009-10-02 21:57:51 +08:00
|
|
|
4.4.11 any possibility to merge the various solve_* in PH ?
|
|
|
|
4.4.12 Replace "use pwcom" with more "use" statements
|
|
|
|
4.4.13 The calculation of P_c x|\psi> should be extracted from PH,
|
|
|
|
since it may be used for other calculations as well
|
|
|
|
(TDDFT, photoemission cross sections, etc)
|
2009-11-07 01:28:19 +08:00
|
|
|
4.4.14 All allocated variables should be deallocated at the end:
|
2009-10-16 15:30:14 +08:00
|
|
|
it makes easier to find memory leaks. Currently most variables
|
|
|
|
are deallocated, but a few (mostly in ffts and in pseudopotential
|
|
|
|
reading) aren't
|
2009-10-02 21:57:51 +08:00
|
|
|
|
2009-10-02 22:45:39 +08:00
|
|
|
4.5 Trouble-makers. inconsistencies, etc
|
2009-10-02 21:57:51 +08:00
|
|
|
4.5.1 Negative Charge problems (see qe-forge, H on graphene)
|
2010-01-07 00:54:57 +08:00
|
|
|
4.5.2 Miller indices: a potential memory bottleneck, used only for GWW!!!
|
2009-12-23 01:01:28 +08:00
|
|
|
4.5.3 G-vector shells, especially in the variable-cell case, and the
|
|
|
|
various tricks to reduce cpu by not re-calculating things that
|
|
|
|
depend on |G| only (see e.g. qvan2). Maybe we should move to
|
|
|
|
interpolation of all quantities and get rid of shells and tricks
|
|
|
|
4.5.4 PP: complete postprocessing in Gamma case (only average missing),
|
2009-10-02 22:45:39 +08:00
|
|
|
and with CP data (in the latter case: when the data file does
|
2009-10-02 21:57:51 +08:00
|
|
|
not contain the charge/potential, issue an error message saying
|
|
|
|
what is missing and why instead of just crashing in iotk)
|
|
|
|
4.5.5 default 'atomic+random' for starting wavefunctions (NM),
|
|
|
|
or else add a "hole finder" at the end of the scf run (SB)
|
|
|
|
to prevent nasty unphysical results in some cases
|
2009-10-02 22:45:39 +08:00
|
|
|
4.5.6 CP: add error check if dt^2/emass too large does not allow ortho
|
|
|
|
to converge or cause energy to increase as time step evolve
|
|
|
|
4.5.7 epsilon.x should be extended at least to have the nonlocal
|
|
|
|
contribution included; there should be a pointer in the
|
|
|
|
documentation explaining how to make a better calculation.
|
|
|
|
4.5.8 There should be a check on the FFT grid preventing a bad
|
|
|
|
choice of Nr1,Nr2,Nr3 (e.g. different Nr for axis of the
|
|
|
|
same length or even worse related by symmetry): this is a
|
2009-11-10 02:53:05 +08:00
|
|
|
frequent source of trouble with electron-phonon calculations
|
2009-10-11 00:37:17 +08:00
|
|
|
4.5.9 Still a few quirks with the atomic coordinate parser, if
|
|
|
|
DOS characters or tabulators are present (Lorenzo)
|
2009-12-23 01:01:28 +08:00
|
|
|
4.5.10 Scratch files are a big mess. It should be possible
|
2009-11-10 02:53:05 +08:00
|
|
|
to open files in places other than tmp_dir without resorting
|
2009-11-08 18:11:24 +08:00
|
|
|
to obscure coding. This is especially serious for PH, D3 etc
|
2009-11-24 17:10:27 +08:00
|
|
|
4.5.11 Pseudopotential files are read in parallel by all processors.
|
|
|
|
Maybe this is not a great idea
|