Skip to content

azadoks/aiida-basis

Repository files navigation

aiida-basis

AiiDA plugin that simplifies working with basis sets.

Getting started

The easiest way of getting started using aiida-basis is to use the command line interface that ships with it. For example, to install the default OpenMX basis set (v19 standard precision for soft pseudopotentials), just run:

aiida-basis install openmx

The version, elements, and name of the basis set in the AiiDA database can be controlled with various options; use aiida-basis install --help to see their description. Installed basis sets can be listed using:

aiida-basis list

Any basis set installed can be loaded like any other Group using the load_group utility from aiida-core. Once loaded, it is easy to get the basis for a given element or set of elements:

from aiida.orm import load_group
family = load_group('OpenMX/19/standard/soft')
pseudo = family.get_basis(element='Ga')  # Returns a single basis
pseudos = family.get_bases(elements=('Ga', 'As'))  # Returns a dictionary where the keys are the elements

If you have a StructureData node, the get_bases method also accepts that as an argument to automatically retrieve all the bases required for that structure:

structure = load_node()  # Load the structure from database or create one
pseudos = family.get_bases(structure=structure)

If you use aiida-openmx the bases dictionary returned by get_bases can be directly used as an input for OpenmxCalculations.

Design

The plugin is centered around two concepts: bases and basis sets. The two concepts are further explained below, especially focusing on how they are implemented in aiida-basis, what assumptions are made, and what the limitations are.

Bases

Bases for a single element are implemented as data plugins, and the base class is BasisData. As such, each basis node, has to have two attributes: the type of basis that it represents and the symbol of chemical element that the basis describes. The latter follows IUPAC naming conventions as used in the module aiida.common.constants.elements of aiida-core.

The BasisData functions as a base class and does not represent an actual existing basis file format or type of basis. Rather, it serves as a base, holding common functionality used by different types of basis.

About

A plugin that simplifies working with basis sets

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages