Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Added a trick for python qe scripts

...

The are the commands for ASE/python mode and the "native" (no ASE/python) mode:

Code Block

esp-ver-bsub <version> myscript.py
esp-ver-bsub-native <version> -q suncat-test -o my.log -n 8 pw.x -in pw.inp

...

  • consider reducing the planewave cutoff, IF it won't affect your results too much
  • is your system an isolated system? then use this keyword:

    Code Block
    
    K_POINTS gamma
    

    it will use k=0 only (which is all you need for an isolated system) and exploit various tricks to reduce memory usage

  • setting option "diago_david_ndim" to the minimum (2) and "mixing_ndim" to a smaller value (4) reduces memory usage, but may increase CPU time
  • using diagonalization='cg' will also reduce memory usage, but it will increase CPU time by a sizable amount
  • do not calculate stress if you do not need to: it is expensive

In ASE-mode we are currently unable to set the "K_POINTS gamma" field and "diago_david_ndim". The other two can be specified with the convergence keyword. "mixing_ndim" is "mix", and "diagonalization" is "diag". For example:

Code Block

convergence = {'energy':1e-6,
               'mixing':0.7,
               'maxsteps':100,
               'mix':4,
               'diag':'cg'},

...

Copy this script, and then edit the appropriate lines at the top:

Code Block

/afs/slac/g/suncat/share/scripts/privesp.csh

Avoid syntax error in Python run scripts

There is a simple trick to catch syntax errors even before submitting them to the test queue. Just wrap the ase submit command in the following function (e.g. via your bashrc) and a faulty python script will be exited with an error message without waiting in any queue.

Code Block
    function esp(){    
        python -m py_compile ${1}
    if [ $? -ne 0 ]
    then
        echo "Not compiling"
        return 1
    fi
    chmod -v 755 $1
    esp-ver-bsub 18 $@
    }

  Espresso ASE To-Do List

  • merge branch with espresso trunk
  • become part of ASE svn (need to follow new ASE guidelines)
  • dry-run mode to get memory estimate
  • understand failing espresso tests
  • record uspp and executable directory in output (and/or svn version, somehow?)
  • neb (done)
  • constraints interface to pass ASE constraints to espresso
  • dos (done)
  • bandgaps (done)
  • separation of site-specific code from ASE code (including site-specific "scratch") (done)
  • make beef errors accessible from ASE
  • beef self-tests integrated with espresso self-tests
  • support kpoint parallelization (done)
  • look into other parallelization (openmp, scalapack)
  • documentation/examples (including on ASE website)
  • fix popen warnings on suncat3
  • eliminate difference between batch/non-batch running
  • how to get automatic python recompilation with setup.py build approach?
  • can we eliminate os-dependent stuff, like grep/egrep/sed?
  • eliminate need for calc.stop() with multiple calculations (done)
  • get work function without dumping out the electrostatic cube file? (chuan has tools for this)
  • dipole correction goes in the middle of unit cell by default (in python, chuan makes sure it goes in the biggest gap) (done)