ORCA high-throughput pipeline orchestrator
Project description
orcastrator
chain orca calculations together to build complex quantum chemistry pipelines.
Usage
from pathlib import Path
import logging
from logger import configure_logging
from orcastrator import Calculation
configure_logging(level=logging.DEBUG)
opt = Calculation(
name="opt",
root_dir=Path("test/scratch"),
level_of_theory="! OPT D4 TPSS def2-SVP",
charge=0,
mult=1,
xyz_string=Path("test/h2.xyz").read_text(),
overwrite=True,
)
opt_result = opt.run()
print(opt_result.directory)
sp = Calculation(
name="sp",
root_dir=opt.root_dir,
level_of_theory="! D4 TPSSh def2-TZVP",
charge=opt.charge,
mult=opt.mult,
xyz_string=opt_result.geometry,
overwrite=True,
)
sp.run()
Design
A single executable that runs all calculations itself. This means that the orcastrator run has to be submitted to SLURM by itself.
Calculation objects compose with an instance of a QCEngine class,
which implements a run() method takes consumes a Calculation object and return its results (or smth).
What does a Calculation need? I'll focus on pure ORCA calculations, because I don't really use anything else anyway. The QCEngine is still a good idea because e.g. there are different ORCA versions etc. Alternatively, the Calculation is just a directory, containing at least an input file.
How can i represent the directory tree of the calculations? I think the orcastrator should probably consume its own toml input file.
How might that look?
xyz_file = "guess.xyz"
charge = 0
mult = 1
[opt_freq]
input = """
! OPT FREQ
! D4 TPSS def2/TZVP
* XYZFILE $charge $mult $xyz_file
"""
[tddft]
input = """
! D4 TPSSh def2/TZVP
%TDDFT
NROOTS 16
END
* XYZFILE $charge $mult $opt_freq.xyz_file
"""
hmm.. maybe it's better to create everything programmatically.
opt_freq_template = """
! OPT FREQ ...
* XYZFILE $charge $mult $xyz_file
"""
tddft_template = """
! D4 TPSSh ...
* XYZFILE $charge $mult $xyz_file
"""
settings = dict(
charge=0,
mult=1,
xyz_file="guess.xyz"
engine=OrcaEngine(version="6.0.1", scratch="/scratch")
)
opt_freq = Calculation(input_template=opt_freq_template, settings)
tddft = Calculation(input_template=tddft_template, settings)
opt_freq.run()
tddft.xyz_file = opt_freq.files.optimized_xyz_file
tddft.run()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file orcastrator-0.6.9.tar.gz.
File metadata
- Download URL: orcastrator-0.6.9.tar.gz
- Upload date:
- Size: 60.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7104bf8bff0e9e40df8643e9287b1a843194d0dcc2e1c9ca60f24fde13aab709
|
|
| MD5 |
7b9ed723fa5a73a6288a04e6984b72f6
|
|
| BLAKE2b-256 |
506018358b251493feb99880456e4123855b30d805d038bbceb89f5ed5e067f3
|
File details
Details for the file orcastrator-0.6.9-py3-none-any.whl.
File metadata
- Download URL: orcastrator-0.6.9-py3-none-any.whl
- Upload date:
- Size: 17.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.5.20
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cdc4fb09852809e46c1d76e4d380db7dd21c10e6498449d3b19aa55d3f4195f6
|
|
| MD5 |
88473e01872fe76d5c11aa2d2fb62938
|
|
| BLAKE2b-256 |
795ed853da0cd0ad639bf8b849f1ab2cc588e2464b6a7f1f56756b42580c530c
|