Skip to content

AiiDA plugin for computing electronic charges on atoms using equilibration-type models (QEq, EQEq, ...).

License

Notifications You must be signed in to change notification settings

lsmo-epfl/aiida-qeq

Repository files navigation

Build Status Coverage Status Docs status PyPI version

aiida-qeq

AiiDA plugin for computing electronic charges on atoms using equilibration-type models using the Qeq method and the EQeq method.

Features

QeQ charges

  • Add input structure in CIF format
CifData = DataFactory('cif')
inputs['structure'] = CifData(file='/path/to/file')
  • Add parameters for electronegativity and Idempotential data of the elements.
SinglefileData = DataFactory('singlefile')
inputs['parameters'] = SinglefileData(file='/path/to/file')
  • (optional) Specify configure.input options using a python dictionary and QeqParameters
QeqParameters = DataFactory('qeq.qeq')
inputs['configure'] = QeqParameters(dict={'save_grid': [True, 'grid.cube']})
  • QeqParameters validates the command line options using voluptuous.
QeqParameters = DataFactory('qeq.qeq')
print(QeqParameters.schema)  # shows supported options

EQeQ charges

  • Add input structure in CIF format
CifData = DataFactory('cif')
inputs['structure'] = CifData(file='/path/to/file')
  • Add parameters for ionization data of the elements.
SinglefileData = DataFactory('singlefile')
inputs['ionization_data'] = SinglefileData(file='/path/to/file')
  • Add parameters for common oxidation states of the elements.
SinglefileData = DataFactory('singlefile')
inputs['charge_data'] = SinglefileData(file='/path/to/file')
  • Specify command line options using a python dictionary and EQeqParameters
EQeqParameters = DataFactory('qeq.eqeq')
inputs['parameters'] = EQeqParameters(dict={'method': 'ewald'})
  • EQeqParameters validates the command line options using voluptuous.
QeqParameters = DataFactory('qeq.eqeq')
print(EQeqParameters.schema)  # show supported options

Installation

pip install aiida-qeq
verdi quicksetup  # set up a new profile
verdi calculation plugins  # should now show your calclulation plugins

Usage

Here goes a complete example of how to submit a test calculation using this plugin.

In order to work, the commands egulp (for Qeq) and eqeq (for EQeq) needs to work on the machine and run the code's exectuable. To get these programs you can look into danieleongari/egulp and danieleongari/EQeq or the compiled binaries provided within lsmo-epfl/aiida-lsmo-codes.

A quick demo of how to submit a calculation:

cd examples
verdi run run_qeq.py    # submit qeq test calculation
verdi run run_eqeq.py   # submit eqeq test calculation
verdi process list -a  # check status of calculation

Development

git clone https://github.com/lsmo-epfl/aiida-qeq
cd aiida-qeq
pip install -e .['pre-commit','testing']
pytest

If you are changing the inputs of existing tests or need to regenerate test data, place an .aiida-testing-config.yml file in your repository that points to the required simulation codes:

---
mock_code:
  # code-label: absolute path
  egulp-99d1159: /path/to/egulp
  eqeq-6490320: /path/to/eqeq

Note: egulp-XXXXXXX stands for egulp at commit XXXXXXX (analogous for eqeq). When switching to a newer code version, please consider regenerating the test data.

License

MIT

Contact

[email protected]

About

AiiDA plugin for computing electronic charges on atoms using equilibration-type models (QEq, EQEq, ...).

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages