Quantum ESPRESSO Calculator for Atomic Simulation Environment (ASE).
Project description
xespresso
Quantum ESPRESSO Calculator for Atomic Simulation Environment (ASE).
For the introduction of ASE , please visit https://wiki.fysik.dtu.dk/ase/index.html
Functions:
- Support all QE packages, including: pw, band, neb, dos, projwfc, pp ...
- Spin-polarized calculation
- LD(S)A+U
- Automatic submit job
- Automatic set up "nscf" calculation
- Read and plot dos, pdos and layer resolved pdos
- Plot NEB
Author
- Xing Wang xingwang1991@gmail.com
Dependencies
- Python
- ASE
Installation
Clone this repo. Add it to your PYTHONPATH and PATH. On windows, you can edit the system environment variables.
export PYTHONPATH="Your-Location":$PYTHONPATH
export ASE_ESPRESSO_COMMAND="/path/to/PACKAGE.x PARALLEL -in PREFIX.PACKAGEi > PREFIX.PACKAGEo"
export ESPRESSO_PSEUDO="/path/to/pseudo"
Examples
Automatic submit job
A example of setting parameters for the queue. See example/queue.py
queue = {'nodes': 1,
'ntasks-per-node': 4,
'account': 'dcb',
'partition': 'all',
'time': '0:10:00'}
calc = Espresso(queue = queue)
Add new species
Some atoms are special:
- atoms with different starting_magnetization
- atoms with different U values
- atoms with special basis set
For example, Fe with spin state AFM. See example/spin.py
atoms.arrays['species'] = atoms.get_chemical_symbols()
atoms.arrays['species'][1] = 'Fe1'
Setting parameters with "(i), i=1,ntyp"
Hubbard, starting_magnetization, starting_charge and so on. See example/dft+u.py
input_ntyp = {
'starting_magnetization': {'Fe1': 1.0, 'Fe2': -1.0},
'Hubbard_U': {'Fe1': 3.0, 'Fe2': 3.0},
}
input_data['input_ntyp'] = input_ntyp,
Control parallelization levels
To control the number of processors in each group: -ni, -nk, -nb, -nt, -nd) are used.
calc = Espresso(pseudopotentials = pseudopotentials,
package = 'pw',
parallel = '-nk 2 -nt 4 -nd 144', # parallel parameters
}
nscf calculation
A example of nscf calculation following the above one.
calc.read_results()
calc.nscf(queue = queue, kpts = (12, 12, 12))
calc.nscf_calculate()
calculate dos and pdos
A example of calculating and plotting the pdos from the nscf calculation.
calc.read_results()
calc.post(queue = queue, package = 'dos', Emin = fe - 30, Emax = fe + 30, DeltaE = 0.1)
calc.post(queue = queue, package = 'projwfc', Emin = fe - 30, Emax = fe + 30, DeltaE = 0.1)
calculate work function
calc.post(queue = queue, package = 'pp', plot_num = 11, fileout = 'potential.cube', iflag = 3, output_format=6)
calc.get_work_function()
restar from previous calculation
calc.read_results()
atoms = calc.results['atoms']
calc.run(atoms = atoms, restart = 1)
NEB calculation
See example/neb.py
from xespresso.neb import NEBEspresso
calc = NEBEspresso(
package = 'neb',
images = images,
climbing_images = [5],
path_data = path_data
)
calc.calculate()
calc.read_results()
calc.plot()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for xespresso-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2937dcef3e9428d7b17b6ef978646fb6f6aa0c1b7d8b3aec26962b64037da509 |
|
MD5 | 0a63c925b8d5eb76389fd20ef571479d |
|
BLAKE2b-256 | 3f753fe5f4a558d727c2646dcda9f03c894c1b79ca47410614525ceff8ece958 |