Geometry in · angles out

NERDSS angle solver

Give the bound-state coordinates of two reactants and their normal vectors; this returns the five association angles exactly as calculate_phi() and calculate_omega() measure them, plus the assocAngles line to paste into your parameter file.

Forward explorer: angles → geometry src/reactions/calculate_{phi,omega}.cpp

Special cases load an example

Bound-state coordinates lab frame, nm

Sitexyz

Normal vectors

⚑ The parameter file takes the local vector. norm1 and norm2 are read in each molecule’s template frame — the frame of its .mol coordinates. determine_normal() rotates them into the lab frame before any angle is measured, and the lab-frame vector is what the geometry below shows.

Geometry drag to orbit · wheel to zoom

ordinary branch
WebGL · depth tested
reactant 1 · b₁ = I₁ − C₁ reactant 2 · b₂ = I₂ − C₂ σ = I₁ − I₂ n₁ (lab) n₂ (lab)

What NERDSS does at the edges

Solved angles radians · degrees

Parameter file


        

Diagnostics

Every angle on this page is computed by the same arithmetic as the simulator: transform() rotates the axis onto +z, both operands are projected onto the xy-plane, Vec3D::angle_between() returns the unsigned angle, and the sign is flipped when the projected cross product has a positive z component. θ comes straight from acos and is always in [0, π]; φ and ω are dihedrals in (−π, +π] — the endpoint is reported as +π, never −π.