A general reader/writer for CASTEP inputs
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.
Filename, size | File type | Python version | Upload date | Hashes |
---|---|---|---|---|
Filename, size castepinput-0.1.6-py3-none-any.whl (12.9 kB) | File type Wheel | Python version py3 | Upload date | Hashes View |
Filename, size castepinput-0.1.6.tar.gz (11.8 kB) | File type Source | Python version None | Upload date | Hashes View |
Hashes for castepinput-0.1.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aca0e8bd6902079e6238b3edd57f66bbaf8af48f5cbd695cb6aaf9d1a4336d2b |
|
MD5 | 6941518c3edb32a3d30245505f7c60dc |
|
BLAKE2-256 | d5b004a9a5c7f28e7f5dbbb39bc2b220f17e26cb7e860694a1db52dc7bde98dc |