Skip to main content

Python class to interface with QUESTAAL Quantum codes which is a suite of electronic structure programs.

Project description

PyQUESTAAL

DOI

This is a calculator class that has been written to interface calculations done using QUESTAAL with highthroughput calculators like ASE.

Note: The module can be used as a stand alone python controller for questaal jobs as well.

Features

  • make symmetry line files supported by QUESTAAL on the fly with a given structure
  • plot bands directly (requires plotquestaal.py)
  • relaxations included
  • can read forces from output files
  • Control number of processors

Installation

  1. Copy the files lmf.py to the working directory
  2. Import them and use !
  3. Make sure "lmf" is recognizable in the path and also modify the type of mpi call. default "mpirun"

Examples

Simple example usage shown in simple_examples.ipynb Comprehensive example shown in tutorial_example.ipynb

To use it with ASE, one can do something like

from lmf import lmf #load the lmf calculator
import numpy as np
from ase.io import read
from ase.units import kJ
from ase.eos import EquationOfState
from ase import Atoms
from ase.io.trajectory import Trajectory
def test():
    a = 4.0  # approximate lattice constant
    b = a / 2
    ag = Atoms('Ag',
               cell=[(0, b, b), (b, 0, b), (b, b, 0)],
               pbc=1,
               calculator=lmf()) # Use QUESTAAL's LMF as calculator
    cell = ag.get_cell()
    traj = Trajectory('Ag.traj', 'w')
    for x in np.linspace(0.95, 1.05, 5):
        ag.set_cell(cell * x, scale_atoms=True)
        ag.get_potential_energy()
        traj.write(ag)
    

    configs = read('Ag.traj@0:5')  # read 5 configurations
    # Extract volumes and energies:
    volumes = [ag.get_volume() for ag in configs]
    energies = [ag.get_potential_energy() for ag in configs]
    eos = EquationOfState(volumes, energies)
    v0, e0, B = eos.fit()
    print(B / kJ * 1.0e24, 'GPa')
    eos.plot('Ag-eos.png')
test()

Citation

If you find this work useful, please cite using

@misc{https://doi.org/10.5281/zenodo.4292415,
  doi = {10.5281/ZENODO.4292415},
  url = {https://zenodo.org/record/4292415},
  author = {Radha, Santosh Kumar},
  title = {pyQuestaal: An python interface or Questaal quantum codes.},
  publisher = {Zenodo},
  year = {2020},
  copyright = {Open Access}
}

To Do

  • control over all variables
  • Interface with pyamtgen
  • Add the developed lattice relaxation module which uses Genetic Algorithm
  • Make more standalone
  • More complex parser for questaal output (look for questaal-reader repo)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyquestaal-0.2.3.tar.gz (6.4 kB view details)

Uploaded Source

File details

Details for the file pyquestaal-0.2.3.tar.gz.

File metadata

  • Download URL: pyquestaal-0.2.3.tar.gz
  • Upload date:
  • Size: 6.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.8.13

File hashes

Hashes for pyquestaal-0.2.3.tar.gz
Algorithm Hash digest
SHA256 61e2094bf94f31fe4f3a3eedbab29c33a542d0a2ebcb169feec2ceee1bdb1e40
MD5 daac411c6dc19de945f1c87fcdf068b4
BLAKE2b-256 4159b9007d02aa7ab7db0ae979fca0da891ee17ad98861954c0e66fded927d6e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page