Skip to main content

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)

Metadata

Release files for pyquestaal 0.2.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyquestaal 0.2.3
File Size Uploaded
pyquestaal-0.2.3.tar.gz 6.4 kB Details

Release files / pyquestaal-0.2.3.tar.gz

Download URL pyquestaal-0.2.3.tar.gz
Size 6.4 kB
Tags Source
SHA-256 checksum
How to use checksums
61e2094bf94f31fe4f3a3eedbab29c33a542d0a2ebcb169feec2ceee1bdb1e40
BLAKE2b-256 checksum
How to use checksums
4159b9007d02aa7ab7db0ae979fca0da891ee17ad98861954c0e66fded927d6e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.8.13

Release history Release notifications | RSS feed

This release

0.2.3 This release

1 release file

0.2.2

1 release file

0.2.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page