Refine and Verify a Transition State
On this page
The Transition state (dimer + vibration check) workflow accepts atom-matched initial and final structures, constructs a linearly interpolated climbing-image band, refines its highest interior image with a dimer search, and performs a fixed numerical vibration check. The visible dialog shares controls with standalone NEB and dimer operations, but the current combined runtime consumes only a subset. This page identifies that boundary exactly.
The saddle-point equations, dimer rotation and translation, Hessian index, verification criteria, and implementation limitations are developed in Transition States and the Dimer Method. JavaScript belongs in Transition-State Search with Tako Script.
Prepare the endpoints
Optimize the initial and final states with the same calculator, charge, unpaired-electron count, cell convention, and constraints. The two structures must have the same number of atoms and the same element at every array index. Tako checks those two conditions, but it does not verify atom IDs, chemical correspondence between equivalent atoms, matching cells, matching periodicity, matching constraints, or a continuous periodic mapping.
The combined workflow clones the initial structure for every band image and interpolates Cartesian positions toward the final coordinates. The initial cell, periodicity, constraints, charge, and spin therefore govern the entire band; the final structure supplies only the target positions and element sequence. Map periodic images consistently and make the two endpoint cells identical before opening the dialog. A structure carrying any cell is currently promoted to three-dimensional periodicity by the calculation input builder, so partially periodic slab or chain semantics are not preserved.
Open Reaction Path Setup
Select the initial structure, then choose Calc → Reaction Path / TS. The dialog title is Reaction Path Setup. In Workflow, select Transition state (dimer + vibration check).

The description below the selector states that the workflow performs CI-NEB, dimer refinement, and a vibration check. The vibration stage is enabled by selecting this workflow rung; there is no separate vibration checkbox or finite-difference control in the dialog.
The adjacent CI-NEB → Dimer refine (true saddle) rung calls the same combined transition-state operation with the vibration check disabled. It is not a direct standalone dimer run. The standalone dimer operation exists internally but has no public tako.dimer call.
Select the images
In Images, set First image and Final image to the prepared endpoint projects. Total images includes both endpoints and is normalized to the range 3–21. The combined operation fixes the endpoints and refines the interior images.
Inspect both structures after selection. The interface does not display an atom-mapping table and cannot detect an exchange between equivalent atoms. A smooth energy profile cannot repair incorrect atom correspondence.
Configure the combined NEB stage
The NEB section is shared with the standalone reaction-path workflow. For the combined transition-state operation, only four numerical values from this section reach the runtime:
| Visible control | Combined transition-state behavior |
|---|---|
| Max NEB steps | Used as the CI-NEB step budget; normalized to 1–1000. |
| Spring constant | Passed directly to the internal NEB spring field. The current bridge omits the normal eV/Ų→Hartree/bohr² conversion, so the default 0.1 is about 97 times stiffer than the standalone reaction-path interpretation. It is a current implementation parameter, not a portable physical unit. |
| Force convergence | Used as the convergence threshold for both combined NEB and dimer stages, in eV/Å. |
| Max step A | Used by the dimer translation only. The combined static NEB optimizer does not apply this limit. |
The following visible choices are ignored by the combined operation:
| Visible control | Effective combined behavior |
|---|---|
| Interpolation | Always linear Cartesian interpolation; IDPP is not used. |
| Optimizer | Always the internal static NEB optimizer. |
| NEB method | Always improved tangent. |
| Advanced NEB controls | IDPP convergence/steps, preclimb steps, dynamic thresholds, ODE parameters, static alpha, and Dynamic relaxation are not passed to the combined operation. |
Climbing is active from the first combined NEB step. There is no ordinary-NEB preclimb phase. This differs from the staged CI-NEB behavior documented for the standalone reaction-path command.
The combined runtime continues to the dimer stage even if the NEB budget ends with converged: false. A completed job therefore does not imply that its band converged; inspect the returned neb.converged and residual explicitly.
Configure Dimer refinement
The Dimer refinement region appears for the dimer and transition-state workflow rungs.

In the current combined workflow, only Max dimer steps reaches transitionStateDimerMaxSteps. The interface default is 120 steps because this region uses the standalone-dimer defaults; the direct Tako Script transition-state default is 50. The input has a minimum of 1, so the interface cannot request the Script-only zero-step branch that skips dimer refinement.
Every other visible value in this region is currently ignored by the combined operation:
| Visible control | Effective combined behavior |
|---|---|
| Optimizer | Hardcoded BFGS. |
| Dimer Force convergence | Ignored; the NEB-section Force convergence is shared by both stages. |
| Dimer Max step A | Ignored; the NEB-section Max step A controls dimer translation. |
| Initial mode | The initial eigenmode is the tangent at the highest-energy interior NEB image. |
| Displacement | Hardcoded vector/displacement mode for the supplied tangent. |
| Dimer separation bohr | Uses the engine default 0.0001 bohr. |
| Gaussian std bohr and Seed | Defaults remain recorded internally but do not initialize the supplied tangent mode. |
| Max rotations | Hardcoded to 3. |
This mismatch is a current product limitation. Record the effective constants above with the result; only Max dimer steps controls the combined calculation.
The dimer begins at the highest-energy interior image selected after the NEB stage. If the dimer budget is positive, the refined geometry replaces that image as the saddle structure. Dimer nonconvergence does not reject the calculation and does not prevent the vibration stage.
Start the workflow
Choose Start. The Console announces one combined “NEB + dimer + vibration check” workflow even for the dimer-only rung where the vibration check is disabled. It does not stream per-step NEB, dimer, or vibration progress. A calculation error in any stage rejects the operation; no structured result from earlier stages is retained.
Cancellation terminates the worker. There is no band checkpoint, dimer orientation, optimizer state, or vibration cache that can resume the job. A retry reconstructs the band from the endpoints.
Interpret the vibration check
For the transition-state rung, Tako runs a two-point central finite-difference vibration calculation with a displacement of 0.01 bohr (approximately 0.00529177 Å). These parameters are fixed and not visible in Reaction Path Setup.
The calculation excludes fully fixed atoms. Partially constrained atoms remain in the active atom list and are displaced along all three Cartesian axes while constrained force components are zeroed; their numerical Hessian can therefore be distorted. Remove partial constraints or validate their effect before using the imaginary-mode count as a saddle classification.
The public result reports only whether any imaginary mode exists, the number of imaginary modes, and the lowest signed frequency. It does not return the full frequency list, normal-mode vectors, Hessian, finite-difference settings, or a trajectory for following the mode. hasImaginaryMode: true means one or more, not exactly one. A first-order saddle requires imaginaryModes === 1, and chemical connectivity still requires an independent mode-following or displacement check outside this combined result.
The vibration calculation runs even when NEB or dimer reports nonconvergence. Its successful completion does not retroactively validate either preceding stage.
Open the outputs
The combined calculation creates the ordinary input snapshot plus these output artifacts:
| Artifact | Current content |
|---|---|
result.json | Complete public transition-state object. |
transition_state.json | Duplicate of the complete result object. |
trajectory.extxyz | One saddle frame only; not the NEB band or a dimer trace. |
log.txt | Combined start/finish messages and calculator logs; no stage optimizer trace. |
The result does not contain the NEB path images, individual path energies, barrier, reaction energy, per-step traces, full vibration spectrum, normal mode, or restart data.
The sole frames[0] object has a serious stage-coherence boundary: its geometry is the final saddle geometry, but its step, energy, and force maximum are copied from the NEB stage. Top-level atoms likewise describe the final saddle, whereas top-level final_energy_ev and final_fmax_ev_per_angstrom are NEB values. Do not pair those scalars with the refined geometry as a dimer single-point result. Run a separate single point on the saddle geometry when a coherent energy/force record is required.
saddle_image is the zero-based index of the highest NEB image selected before dimer refinement. It remains a band index, not a statement that the final dimer geometry occupies an exposed band trajectory.
Apply the acceptance gates
Read each stage separately:
| Check | Required evidence | If absent |
|---|---|---|
| Endpoint definition | same physical atoms, cell convention, charge/spin, constraints, and intended states | rebuild endpoints and mapping |
| NEB | neb.converged === true, acceptable neb.final_fmax_ev_per_angstrom, plausible saddle region | increase resolution/budget or repair path; do not accept dimer handoff automatically |
| Dimer | non-null dimer, dimer.converged === true, acceptable dimer fmax | improve saddle guess or settings in a route that exposes them |
| Hessian index | vibrations.checked === true and vibrations.imaginaryModes === 1 | candidate is unverified, a minimum, or higher-order saddle |
| Connectivity | the unstable mode and downhill paths connect the intended states | perform separate mode displacement/IRC-like validation |
| Coherent saddle energy | separate single point on the returned saddle | do not use hybrid top-level NEB scalar as refined-saddle energy |
The field saddle_quality.nebResidual is currently left in the engine’s internal Hartree/bohr convention even though its name has no unit. Use neb.final_fmax_ev_per_angstrom for the public NEB residual in eV/Å. saddle_quality.dimerFmax is converted to eV/Å. Do not compare the two unlabeled quality fields numerically.
Diagnose failures
| Observation | Interpretation | Response |
|---|---|---|
| NEB converged false but dimer/vibrations exist | later stages run despite NEB budget exhaustion | reject the combined candidate and repair the band |
| Dimer is null | zero-step branch was requested through Script; the interface cannot select it | treat geometry as an NEB estimate only |
| Dimer converged false | dimer budget exhausted, not a rejected operation | improve the handoff; do not report a refined saddle |
imaginaryModes is 0 | minimum or numerically unresolved negative curvature | improve/refine the saddle and vibration calculation |
imaginaryModes is greater than 1 | higher-order saddle, unconverged structure, or constraint/numerical artifact | refine along unwanted modes and reassess constraints |
| one imaginary mode but wrong chemistry | saddle belongs to another local pathway | revisit endpoint mapping and path initialization |
| displayed dimer settings appear ineffective | combined workflow ignores all but Max dimer steps | use the effective mapping in this page; do not infer from visible values |
| output trajectory contains one frame | expected combined-operation boundary | use standalone reaction-path output when the band is required |
Preserve the two endpoint structures, atom mapping, initial cell/PBC/constraints, calculator checkpoint, workflow rung, effective combined values, raw result, separate saddle single point, and independent connectivity evidence. The exhaustive field-level contract is generated in tako.transitionState Settings.