occ
Loading...
Searching...
No Matches
occ::xtb::SccMixerState Struct Reference

The quantities the SCC Hamiltonian is built from, bundled so they can be mixed as one vector between iterations. More...

#include <scc_state.h>

Collaboration diagram for occ::xtb::SccMixerState:
[legend]

Public Member Functions

Eigen::Index size () const
 
Vec pack () const
 
void unpack (const Vec &packed)
 
void damp_toward (const SccMixerState &fresh, double factor)
 Move each channel a fraction 1 - factor of the way toward fresh.
 
double max_change (const SccMixerState &other) const
 Largest absolute per-element difference across all active channels — the SCC's charge-convergence metric.
 

Static Public Member Functions

static SccMixerState zero (int n_shells, int n_atoms, bool magnetization, bool multipoles)
 Allocate the requested channels, zeroed.
 

Public Attributes

Vec shell_charges
 
Vec magnetization
 
CammMoments multipoles
 

Detailed Description

The quantities the SCC Hamiltonian is built from, bundled so they can be mixed as one vector between iterations.

Anything left out of the mixer is fed back undamped and free to oscillate, so every input to H belongs here: shell charges always, the shell magnetization when spin-unrestricted, and the CAMM atomic multipoles when the anisotropic terms are on. Unused channels stay empty and cost nothing.

Member Function Documentation

◆ damp_toward()

void occ::xtb::SccMixerState::damp_toward ( const SccMixerState fresh,
double  factor 
)

Move each channel a fraction 1 - factor of the way toward fresh.

◆ max_change()

double occ::xtb::SccMixerState::max_change ( const SccMixerState other) const

Largest absolute per-element difference across all active channels — the SCC's charge-convergence metric.

◆ pack()

Vec occ::xtb::SccMixerState::pack ( ) const

◆ size()

Eigen::Index occ::xtb::SccMixerState::size ( ) const

◆ unpack()

void occ::xtb::SccMixerState::unpack ( const Vec packed)

◆ zero()

static SccMixerState occ::xtb::SccMixerState::zero ( int  n_shells,
int  n_atoms,
bool  magnetization,
bool  multipoles 
)
static

Allocate the requested channels, zeroed.

Member Data Documentation

◆ magnetization

Vec occ::xtb::SccMixerState::magnetization

◆ multipoles

CammMoments occ::xtb::SccMixerState::multipoles

◆ shell_charges

Vec occ::xtb::SccMixerState::shell_charges

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