| name | orca-router |
| description | Routes ORCA calculation requests to opt, neb_ts, or freq sub-skills. Enforces ORCA-specific policies for method, basis set, charge, and multiplicity. |
ORCA Router Skill
When to Use
Use this skill when the user requests any ORCA-based calculation. Route to the
appropriate sub-skill based on what the user needs:
| User intent | Route to |
|---|
| Geometry optimization, energy minimization | orca/opt |
| Transition state, NEB, reaction barrier | orca/neb_ts |
| Vibrational frequencies, IR spectrum, thermochemistry | orca/freq |
ORCA-Specific Policies
Method and Basis Set Defaults
Always set software: "orca" in workflow node params. Default method/basis
combinations by use case:
| Use case | Method | Basis | Notes |
|---|
| General organic | B3LYP | def2-SVP | Good balance of cost/accuracy |
| Production organic | B3LYP | def2-TZVP | Publication quality |
| Transition metals | PBE0 | def2-SVP | Better for d-electrons |
| Weak interactions | B3LYP-D3BJ | def2-TZVP | Dispersion-corrected |
| Quick screening | HF-3c | (built-in) | Composite, very fast |
| Accurate energies | DLPNO-CCSD(T) | cc-pVTZ | Gold standard, expensive |
Charge and Multiplicity
ORCA requires explicit charge and multiplicity for every calculation. Always ask
the user or infer from the structure:
- Neutral closed-shell:
charge: 0, multiplicity: 1
- Radical (one unpaired e-):
charge: 0, multiplicity: 2
- Anion:
charge: -1, multiplicity: 1 (or 2 if radical anion)
- Cation:
charge: 1, multiplicity: 1 (or 2 if radical cation)
- Transition metal complexes: determine from d-electron count and ligand field
If unsure, ask the user. Never guess multiplicity for open-shell systems.
Solvent Models
ORCA supports implicit solvation via CPCM:
orca_extra_keywords: "CPCM(Water)"
Common solvents: Water, Acetonitrile, DMSO, THF, Toluene, DCM.
MCP Tool Examples
Check what the user has loaded
catgo_view(action: "get_state")
Always check the viewer state first to confirm a molecular structure is loaded
(not a periodic crystal -- ORCA is for molecular calculations).
Create an ORCA optimization workflow
catgo_workflow_engine(action: "create", params: {
name: "Ethanol B3LYP optimization"
})
Then add an ORCA geo_opt task (see orca/opt skill for full details):
catgo_workflow_engine(action: "add_task", params: {
workflow_id: "<wf_id>",
task_type: "geo_opt",
params: {
software: "orca",
orca_method: "B3LYP",
orca_basis: "def2-SVP",
charge: 0,
multiplicity: 1
}
})
Create an ORCA frequency workflow
catgo_workflow_engine(action: "add_task", params: {
workflow_id: "<wf_id>",
task_type: "freq",
params: {
software: "orca",
orca_method: "B3LYP",
orca_basis: "def2-SVP",
charge: 0,
multiplicity: 1
}
})
Opt + Freq chain (common pattern)
After creating the workflow, add both tasks and connect them:
catgo_workflow_engine(action: "add_task", params: {
workflow_id: "<wf_id>",
task_type: "geo_opt",
task_id: "opt1",
params: { software: "orca", orca_method: "B3LYP", orca_basis: "def2-SVP",
charge: 0, multiplicity: 1 }
})
catgo_workflow_engine(action: "add_task", params: {
workflow_id: "<wf_id>",
task_type: "freq",
depends_on: ["opt1"],
params: { software: "orca", orca_method: "B3LYP", orca_basis: "def2-SVP",
charge: 0, multiplicity: 1 }
})
Routing Decision Tree
- Does the user want to find a transition state or reaction barrier?
- YES -> route to
orca/neb_ts
- Does the user want vibrational frequencies, IR spectrum, or thermochemistry?
- YES -> route to
orca/freq
- Does the user want to optimize a geometry or get an energy?
- Unsure? Ask the user what property they need.
Common Mistakes
- Using ORCA for periodic systems (ORCA is molecular only -- use VASP or CP2K)
- Forgetting charge/multiplicity (ORCA will fail or give wrong results)
- Using too large a basis for initial screening (start with def2-SVP)
- Not including dispersion for systems with non-covalent interactions