https://github.com/azadoks/aiida-openmx
AiiDA plugin for the OpenMX DFT code
https://github.com/azadoks/aiida-openmx
aiida aiida-openmx aiida-plugins density-functional-theory openmx
Last synced: 2 months ago
JSON representation
AiiDA plugin for the OpenMX DFT code
- Host: GitHub
- URL: https://github.com/azadoks/aiida-openmx
- Owner: azadoks
- License: mit
- Created: 2021-02-09T13:56:37.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2021-07-29T09:05:43.000Z (almost 4 years ago)
- Last Synced: 2025-01-23T03:37:39.174Z (4 months ago)
- Topics: aiida, aiida-openmx, aiida-plugins, density-functional-theory, openmx
- Language: Python
- Homepage:
- Size: 206 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://github.com/zooks97/aiida-openmx/actions)
[](https://coveralls.io/github/zooks97/aiida-openmx?branch=master)
[](http://aiida-openmx.readthedocs.io/)
[](https://badge.fury.io/py/aiida-openmx)# aiida-openmx
AiiDA plugin for the OpenMX DFT code.
## Installation
### `aiida-openmx`
```shell
pip install aiida-openmx
```### Pseudopotential families and basis sets
To simplify the use of pseudopotentials and orbital bases in `aiida-openmx`, `aiida-pseudo` and `aiida-basis` have support for OpenMX's VPS pseudopotential and PAO pseudoatomic orbital formats respectively.
For high-throughput studies, it is additionally useful to create `PseudoPotentialFamily` and `BasisSet` AiiDA `Group`s, which hold many pseudopotentials and orbital bases as well as various metadata.As an example, lets create a `PseudoPotentialFamily` for OpenMX's soft PBE19 pseudopotentials and a `BasisSet` for OpenMX's soft 'standard' recommendation.
First, we collect the appropriate `.vps` pseudopotentials in a directory:
```shell
export OPENMX_SOURCE=$HOME/openmx3.9/ # Path to the extracted OpenMX source code on your computer
mkdir PBE_19_soft # Directory to hold the .vps files
cp ${OPENMX_SOURCE}/DFT_DATA19/VPS/*PBE19.vps ./PBE_19_soft/ # Copy non-hard/soft .vps files
cp ${OPENMX_SOURCE}/DFT_DATA19/VPS/*PBE19S.vps ./PBE_19_soft/ # Copy soft version of hard/soft .vps files
```Next, we'll create a `PseudoPotentialFamily` which contains all of the pseudopotentials in our directory.
First, run `python`, `ipython`, or `verdi shell`.
Then, run something like the following code:```python
from aiida_pseudo.groups.family import PseudoPotentialFamily
from aiida_pseudo.data.pseudo import VpsDataPBE_19_soft_family = PseudoPotentialFamily(
dirpath='./PBE_19_soft/', # Directory where we copied our .vps files
label='OpenMX/19/PBE/S', # Name of the PseudoPotentialFamily in the AiiDA database
description='OpenMX PBE19 (soft)' # Longer description of what the PseudoPotentialFamily contains
pseudo_type=VpsData # AiiDA data type for VPS pseudopotentials
)
```We can then check that the `PseudoPotentialFamily` is listed in our AiiDA `Groups`:
```shell
verdi group list -a
``````
PK Label Type string User
---- ----------------- ------------- ---------------------
1 OpenMX/19/PBE/S pseudo.family [email protected]
```Great! Now we can set up our pseudoatomic orbitals in a similar manner.
Because it's a bit trickier to collect all the appropriate files in this case, `aiida-openmx` provides some PAO tables based on OpenMX's recommendations.```shell
export OPENMX_SOURCE=$HOME/openmx3.9/
export AIIDA_OPENMX=$(python -c "import pathlib; import aiida_openmx; print(pathlib.Path(aiida_openmx.__file__).parent)")
mkdir standard_19_soft
for paofile in $(cat $AIIDA_OPENMX/data/pao/standard_s.txt); do cp $OPENMX_SOURCE/DFT_DATA19/PAO/$paofile ./standard_19_soft/; done
```Finally, we'll create a `BasisSet` which contains all of the pseudoatomic orbitals in our directory.
First, run `python`, `ipython`, or `verdi shell`.
Then, run something like the following code:```python
from aiida_basis.groups.set import BasisSet
from aiida_basis.data.basis import PaoDatastandard_19_soft_set = BasisSet(
dirpath='./standard_19_soft/', # Directory where we copied our .pao files
label='OpenMX/19/standard/S', # Name of the BasisSet in the AiiDA database
description='OpenMX standard 19 (soft)' # Longer description of what the BasisSet contains
basis_type=PaoData # AiiDA data type for PAO bases
)
```We can then check that the `BasisSet` is listed in our AiiDA `Groups`:
```shell
verdi group list -a
``````
PK Label Type string User
---- -------------------- ------------- ---------------------
1 OpenMX/19/PBE/S pseudo.family [email protected]
2 OpenMX/19/standard/S basis.set [email protected]
```## Development
If you would like to contribute to the development of `aiida-openmx`, please clone this Github repository and install `aiida-openmx` as follows:
```shell
git clone https://github.com/zooks97/aiida-openmx .
cd aiida-openmx
pip install -e .[pre-commit,testing,docs] # Install extra dependencies
pre-commit install # Install pre-commit hooks
pytest -v # Discover and run all tests
```See the [developer guide](http://aiida-openmx.readthedocs.io/en/latest/developer_guide/index.html) for more information.
## License
MIT
## Contact