Skip to main content

Sphinx Parser

Push-Pull codecov

Overview

This hosts the python binder of the DFT code Sphinx.

How to use

Sphinx's input parser is created from the yaml-file located at src/input_data.yml. The input file is generated by src/generator.py. You can use the parser via:

from sphinx_parser.input import sphinx

This instance sphinx is used to create all possible input classes for Sphinx by choosing the class via dot-notation and call it. For example in order to generate the class kPoints, you can run:

kPoints = sphinx.basis.kPoints()

You can find the input in the parent class, i.e.:

basis = sphinx.basis(kPoints=kPoints)

Finally, you can translate it into the Sphinx format via:

from sphinx_parser.toolkit import to_sphinx

sphinx_input = to_sphinx(basis)

You can then write it to a file via:

with open('sphinx.in', 'w') as f:
    f.write(sphinx_input)

Minimum working example

import numpy as np
from ase.build import bulk
import os


cwd = "TEST"
if not os.path.exists(cwd):
    os.mkdir(cwd)

from sphinx_parser.toolkit import to_sphinx
from sphinx_parser.jobs import set_base_parameters
from sphinx_parser.output import collect_energy_dat

structure = bulk("Al", cubic=True)
structure[1].symbol = "Ni"

input_sx = set_base_parameters(structure)

with open(os.path.join(cwd, "input.sx"), "w") as f:
    f.write(to_sphinx(input_sx))

import subprocess

command = ["sphinx"]

process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, cwd=cwd)
stdout, stderr = process.communicate()

collect_energy_dat(os.path.join(cwd, "energy.dat"))

More detailed example:

import numpy as np
from ase.build import bulk
import os


cwd = "TEST"
# cwd.mkdir(exist_ok=True)
if not os.path.exists(cwd):
    os.mkdir(cwd)

from sphinx_parser.input import sphinx
from sphinx_parser.ase import get_structure_group
from sphinx_parser.toolkit import to_sphinx
from sphinx_parser.potential import get_paw_from_structure
from sphinx_parser.output import collect_energy_dat


structure = bulk("Al", cubic=True)
structure[1].symbol = "Ni"

struct_group, spin_lst = get_structure_group(structure)
main_group = sphinx.main(scfDiag=sphinx.main.scfDiag(maxSteps=10, blockCCG={}))
pawPot_group = get_paw_from_structure(structure)
basis_group = sphinx.basis(eCut=25, kPoint=sphinx.basis.kPoint(coords=3 * [0.5]))
paw_group = sphinx.PAWHamiltonian(xc=1, spinPolarized=False, ekt=0.2)
initial_guess_group = sphinx.initialGuess(
    waves=sphinx.initialGuess.waves(lcao=sphinx.initialGuess.waves.lcao()), rho=sphinx.initialGuess.rho(atomicOrbitals=True)
)

input_sx = sphinx(
    pawPot=pawPot_group, structure=struct_group, main=main_group, basis=basis_group, PAWHamiltonian=paw_group, initialGuess=initial_guess_group
)

with open(os.path.join(cwd, "input.sx"), "w") as f:
    f.write(to_sphinx(input_sx))

import subprocess

command = ["sphinx"]

process = subprocess.Popen(command, stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, cwd=cwd)
stdout, stderr = process.communicate()

collect_energy_dat(os.path.join(cwd, "energy.dat"))

Download files

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

Source Distribution

sphinx_parser-0.1.10.tar.gz (61.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sphinx_parser-0.1.10-py3-none-any.whl (36.8 kB view details)

Uploaded Python 3

File details

Details for the file sphinx_parser-0.1.10.tar.gz.

File metadata

  • Download URL: sphinx_parser-0.1.10.tar.gz
  • Upload date:
  • Size: 61.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for sphinx_parser-0.1.10.tar.gz
Algorithm Hash digest
SHA256 c191f648635b9d021de0877ab376818caa84725b3bb5c1ee5115442e65fdb4a7
MD5 1c30ca21b9dd05d7e92fa49684f62b35
BLAKE2b-256 f3547e8614a812ac590e4611b382385cbb1a5969645d893148b6c55aeb29b479

See more details on using hashes here.

File details

Details for the file sphinx_parser-0.1.10-py3-none-any.whl.

File metadata

  • Download URL: sphinx_parser-0.1.10-py3-none-any.whl
  • Upload date:
  • Size: 36.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for sphinx_parser-0.1.10-py3-none-any.whl
Algorithm Hash digest
SHA256 6bf85858a7e6f91b278506c355215a2b67c213496686554cac2be0d978157546
MD5 786fefd6538ec20cab8250a676b2c627
BLAKE2b-256 de4be5ab0f2b4e1772e9900f514b9c63f96cd06b0425d9eca52a3cc38db41510

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.10 This release

2 files

0.1.9

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

0.0.3

2 files

0.0.2

2 files

0.0.1

2 files

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