Introduction¶
FIRECODE is a computational chemistry workflow driver and hub for the generation, optimization and refinement of conformational ensembles, including transition state and thermochemical utilities.
# TS workflow example (input.txt)
calc=uma solvent=toluene T_C=100
saddle> opt> goat> mol.xyz
B 0 1 2.25
The program is written in Python and is designed to be run on both personal computers and HPC clusters via SLURM.
All workflows are implemented in a calculator-agnostic way, so that maximum modularity is mantained. Most calculators
are interfaced via ASE. Most external utilities are interfaced via operators, interacting via dedicated functions
reading a molecular .xyz file and returning the filename of the processed ensemble.
For example:
def center_operator(filename: str, embedder: Embedder) -> str:
"""Example operator centering the molecule."""
# read input file
mol = read_xyz(filename) # Ensemble(filename)
# the Embedder class stores global information
embedder.options.solvent # "ch2cl2"
embedder.options.T # 298.15
# center coordinates
mol.coords[0] -= np.mean(mol.coords[0], axis=0)
# save any data you might need later
embedder.options.centered = True
embedder.options.last_operator = "center"
# write outfile and return its name
outfile = f"{mol.basename}_centered.xyz"
mol.to_xyz(outfile)
return outfile