GeomeTRIC Optimizer
The GeomeTRIC backend is a quasi-Newton geometry optimizer that works
natively in translation-rotation internal coordinates (TRIC). It targets
both energy minima and first-order saddle points, drives an adaptive
trust-radius loop, and back-transforms each internal-coordinate step to
Cartesian space iteratively.
Select it from the OPT section:
OPT
Algorithm geometric # aliases: geomet, tric
Coord tric | tric-p # tric-p uses primitives only
...
END
Coordinate System
The optimizer builds a [TricSystem] from molecular topology:
- Topology primitives — bonds, angles, dihedrals, and out-of-plane terms inferred from the connectivity graph. A linear/chain fallback is used when the topology yields no primitives.
- Per-fragment external coordinates — for the
tricmodel, each disconnected fragment contributes six rigid-body coordinates ordered as :- Translation is the fragment centroid.
- Rotation is encoded as an exponential map relative to the geometry captured when the system was built.
The tric-p model uses topology primitives only (no rigid-body coordinates),
matching the Primitive coordinate kind.
Rotation Coordinates
Rotational internal coordinates use a quaternion/exponential-map algebra:
- The optimal rotation quaternion between the current fragment geometry and its reference is obtained from the eigenvector of a correlation matrix.
- The quaternion is mapped to a three-component exponential map that is free of gimbal singularities over the working range.
- Analytic derivatives of the exponential map with respect to Cartesian coordinates supply the rotational rows of the Wilson -matrix.
B-Matrix and Gradient Projection
The Wilson -matrix collects for every internal coordinate. Primitive rows come from the topology set; the centroid translation rows are constant (), and the rotation rows come from the analytic exponential-map derivatives.
Cartesian gradients are projected into internals through the Wilson -matrix:
with formed as an SVD pseudo-inverse to handle the redundancy of the internal set.
Initial Hessian
initial_ic_hessian seeds the internal-coordinate Hessian:
- From a Cartesian Hessian (recommended for TS): transformed into internals via . For minimization it is forced positive-definite; for TS the single negative eigenvalue (the reaction coordinate) is preserved.
- Model guess (fallback): the Lindh diagonal for primitives plus weak positive curvature ( a.u.) on each translation/rotation coordinate. This fallback also covers degenerate B-matrices from near-linear fragments.
Step Engine
Each cycle proposes a step with the trust-radius engine:
- Minimization uses the trust-radius Newton-Raphson (TRM) step with BFGS Hessian updates by default.
- Transition states use restricted-step partitioned RFO (RS-P-RFO), which maximizes along the lowest Hessian eigenmode (transition vector) and minimizes along the rest, with Bofill Hessian updates by default.
The trust_step driver scales the proposed step to the current trust radius via
a damped Hebden iteration. The iteration is bounded (oscillation detection plus
a hard MAX_ITER cap) and returns the best step found. The RS-P-RFO metric uses
a strictly positive scaling parameter; non-finite or non-positive values are
clamped to a small positive floor so the symmetric eigensolver always converges.
Internal-to-Cartesian Back-Transform
ic_to_cartesian recovers Cartesian coordinates that reproduce a target
internal displacement through the iteration
with periodic-aware residuals (dihedral and rotation coordinates wrap into
), per-atom step capping, and adaptive damping. A bork flag is
raised when the residual stays large, which the optimizer treats as a rejected
step.
Trust-Radius Control
The step quality factor drives an adaptive trust radius:
- at the trust boundary → grow trust (up to
TMax). - → shrink trust (down to the floor).
- Bad steps are rejected and retried with a halved trust radius; once the floor is reached the step is accepted to keep making progress.
Minimization rejects energy-raising steps against a confident prediction; TS searches legitimately raise the energy along the reaction coordinate and only reject pathological quality factors or failed back-transforms.
Convergence
Uses the same 5-criterion Gaussian-style test as the other backends (energy change, gradient RMS/max, displacement RMS/max). See Geometry Optimization Algorithms for the shared convergence presets.