AvogadroLibs 2.1.0-20261111
Loading...
Searching...
No Matches
AtomUtilities Class Reference

Static Public Member Functions

static AtomHybridization perceiveHybridization (const Atom &atom)
static Vector3 generateNewBondVector (const Atom &atom, const std::vector< Vector3 > &currentVectors, AtomHybridization hybridization)
static Real idealBondLength (unsigned char atomicNumber1, unsigned char atomicNumber2, unsigned char bondOrder=1)

Member Function Documentation

◆ perceiveHybridization()

AtomHybridization perceiveHybridization ( const Atom & atom)
static

Perceive the geometry / hybridization bonded to atom. Ideally, the client should cache the hybridization number by calling setHybridization() later

◆ generateNewBondVector()

Vector3 generateNewBondVector ( const Atom & atom,
const std::vector< Vector3 > & currentVectors,
AtomHybridization hybridization )
static

Generate a new bond vector (unit length)

◆ idealBondLength()

Real idealBondLength ( unsigned char atomicNumber1,
unsigned char atomicNumber2,
unsigned char bondOrder = 1 )
static
Returns
the ideal length in Angstroms of a bond of order bondOrder between elements atomicNumber1 and atomicNumber2.

The default is the sum of the Pyykko covalent radii, scaled down for double and triple bonds. That estimate is within a few percent for most element pairs, but it is systematically wrong for strongly polar bonds (Si-F, B-F, P-O) and for bonds between lone-pair rich atoms (O-O, F-F), so a table of measured lengths overrides it for common bonds.

Intended for building and editing geometries, not for structure validation: the returned value is a single representative length and ignores hybridization, formal charge, and neighboring substituents.


The documentation for this class was generated from the following file: