Skip to main content

A simple CASTEP input files parser/writer

Project description

A simple CASTEP input files parser/writer

This package provide a basic framework for read/write input files of CASTEP. There is already a excellent reader/writer implemented in ase but they are ortentated to work with the Atoms and Calculator classes in ase. It also requires a CASTEP binary to exist to work. This package aim to provide a more generic framework with minimum dependency for simple (but important) tasks of writing and reading inputs files of CASTEP.

Usage

The two classes to be used for reading/writing inputs are ParamInput and CellInput. Keyword-value pairs can be set the same as dictionaries. For example:

from castepinput import CellInput, ParamInput, Block
# ParamInput is in fact just a subclass of OrderedDict
param = ParamInput(cut_off_energy=300, task="singlepoint")
param["opt_strategy"] = "speed"

# Use the Block class to signal that it is a BLOCK
# The following line sets the positions_abs
cell = CellInput(positions_abs=Block(["C 0 0 0", "C 1 0 0"])

The two classes use simple string formatting when writing out the content. See the following code as example.

cell = CellInput(snap_to_symmetry=True)

# Should give 'snap_to_symmetry : True'
cell.get_string()

# Should give 'symmetry_genreate : true'
cell['snap_to_symmetry'] = 'true'
cell.get_string()

# Not all CASTEP keyword requires a value
# Use "" as the value will result just a keyword on a line
cell['symmetry_generate'] = ''
# Should give a string with a line 'symmetry_generate'
cell.get_string()

# Set cell and positions use the set methods
cell.set_cell([10 ,10 , 10])
cell.set_positions(["O", "O"], [[0, 0, 0], [1.4, 0, 0]])
# Save to file
cell.save("O2.cell")

To initialize from a existing param/cell file, use the ParamInput.from_file method.

cell = CellInput.from_file("O2.cell")
# This should give [[10, 0, 0], [0, 10, 0], [0, 0, 10]]
cell.get_cell()

# The value returned should be "" to be consistent with setting
cell["symmetry_generate"]

We also try to be smart and convert string into python types where it is possible. Supported types are integer, floats and 1-d arrays made of integer/floats. These coversions can be avoided by using ParamInput.from_file(filename, plain=True) when loading files.

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

castepinput-0.1.11.tar.gz (19.2 kB view details)

Uploaded Source

Built Distribution

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

castepinput-0.1.11-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

File details

Details for the file castepinput-0.1.11.tar.gz.

File metadata

  • Download URL: castepinput-0.1.11.tar.gz
  • Upload date:
  • Size: 19.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for castepinput-0.1.11.tar.gz
Algorithm Hash digest
SHA256 df7542255fc837e60d5286e6f1cd5df09ecac53cf786ca4aaa1f25296ba13ed7
MD5 1709293c85baa2a8a163fe34522209c7
BLAKE2b-256 e54be13c3dba7fbdc8c8883a7f0efacae43ab5f929257c98c7a0d2e904c53552

See more details on using hashes here.

File details

Details for the file castepinput-0.1.11-py3-none-any.whl.

File metadata

  • Download URL: castepinput-0.1.11-py3-none-any.whl
  • Upload date:
  • Size: 10.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for castepinput-0.1.11-py3-none-any.whl
Algorithm Hash digest
SHA256 6a0f522111e5304e89dbd273b0842e9ff2437981b6aa711d3bb5d0c6cb05a01e
MD5 aee95731b50c5d5060c34f8a749d4d1b
BLAKE2b-256 aa1c79a7f42b23446f10c06fc44de07a074b9c4e0ea6356e6722d3d10d4b4ee9

See more details on using hashes here.

Supported by

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