Redox Reaction Tutorial
This tutorial demonstrates how to use ChemRefine to study redox processes, including electron transfer reactions, charge-state changes, and energy evaluation with both MLFF and DFT levels of theory.
Overview
Redox chemistry is central to catalysis, batteries, and energy materials.
ChemRefine automates redox workflows by allowing you to:
- Prepare input geometries for different charge states.
- Run optimizations at MLFF or DFT levels of theory.
- Evaluate redox potentials by comparing total energies of oxidized and reduced species.
- Apply solvation corrections if required.
Prerequisites
- Installed ChemRefine (see Installation Guide)
- Access to an ORCA executable
- Example input (
redox_input.yaml
) from this tutorial folder - Initial structure (
step1.xyz
)
Input Files
We start with an initial structure located in the templates folder:
Orca Input Files
You can find the ORCA input files here
Interactive 3D Viewer
YAML Configuration
➡️ Examples/Tutorials/Redox/redox_input.yaml
Example content (excerpt):
template_dir: ./templates
scratch_dir: /scratch/redox_jobs
output_dir: ./outputs/redox
orca_executable: /mfs/io/groups/sterling/software-tools/orca/orca_6_1_0_avx2/orca
charge: 0
multiplicity: 1
initial_xyz: ./templates/step1.xyz
steps:
- step: 1
operation: "GOAT"
engine: "DFT"
sample_type:
method: "boltzmann"
parameters:
weight: 95
- step: 2
operation: "OPT+SP"
engine: "DFT"
sample_type:
method: "energy_window"
parameters:
energy: 10
unit: kcal/mol
- step: 3
operation: "OPT+SP"
engine: "MLFF"
charge: -1
multiplicity: 2
mlff:
model_name: "uma-s-1"
task_name: "omol"
device: "cuda"
sample_type:
method: "integer"
parameters:
num_structures: 0
- step: 4
operation: "OPT+SP"
engine: "MLFF"
charge: 0
multiplicity: 1
mlff:
model_name: "uma-s-1"
task_name: "omol"
device: "cuda"
sample_type:
method: "integer"
parameters:
num_structures: 0
- step: 5
operation: "OPT+SP"
engine: "MLFF"
charge: 1
multiplicity: 2
mlff:
model_name: "uma-s-1"
task_name: "omol"
device: "cuda"
sample_type:
method: "integer"
parameters:
num_structures: 0
- step: 6
operation: "OPT+SP"
engine: "DFT"
charge: -1
multiplicity: 2
sample_type:
method: "integer"
parameters:
num_structures: 0
- step: 7
operation: "OPT+SP"
engine: "DFT"
charge: 0
multiplicity: 1
sample_type:
method: "integer"
parameters:
num_structures: 0
- step: 8
operation: "OPT+SP"
engine: "DFT"
charge: 1
multiplicity: 2
sample_type:
method: "integer"
parameters:
num_structures: 0
This workflow optimizes the neutral, reduced (–1), and oxidized (+1) charge states.
How to Run
Before running ChemRefine, ensure that:
- The ChemRefine environment is activated
- The ORCA executable is in your
PATH
- The template directory (
./templates/
) is set up - The input structure file (e.g.,
step1.xyz
) is prepared
Option 1: Run from the Command Line
chemrefine redox_input.yaml --maxcores <N>
Here <N>
is the maximum number of simultaneous cores.
Option 2: Run with SLURM
On HPC systems with SLURM:
sbatch ./Examples/templates/chemrefine.slurm
➡️ Example ChemRefine SLURM script
Expected Outputs
- Neutral optimization in
outputs/redox/step1/
- Reduced state in
outputs/redox/step2/
- Oxidized state in
outputs/redox/step3/
Each directory contains .out
logs, .xyz
geometries, and total energy values.
These energies can be compared to compute redox potentials.
Notes & Tips
- Modify
charge
andmultiplicity
values to match your redox states. - Use MLFF first for speed, then recheck with DFT.
- Solvation can be included with an additional SOLVATOR step.
- Always verify convergence in
.out
files.