occ
Loading...
Searching...
No Matches
occ::qm::FockBuildProperties Struct Reference

What a method guarantees about its Fock build, so the SCF driver can decide whether to accumulate F += G(ΔD) instead of rebuilding from H each cycle. More...

#include <scf_method.h>

Public Attributes

bool linear_in_density {true}
 G(D) is linear, so G(Dₙ) == G(Dₙ₋₁) + G(ΔD).
 
bool constant_core_hamiltonian {true}
 H is identical every cycle, so an accumulated F keeps a valid one-electron part.
 
bool density_screened {true}
 The two-electron build screens on the density, so handing it a small ΔD is actually cheaper.
 

Detailed Description

What a method guarantees about its Fock build, so the SCF driver can decide whether to accumulate F += G(ΔD) instead of rebuilding from H each cycle.

These are statements of fact about the method, not policy: declare what is true and let supports_incremental_fock_build combine them. Splitting them out keeps unrelated reasons from being conflated into one opaque bool — implicit solvation, for instance, has a perfectly linear two-electron build and still cannot be accumulated.

Member Data Documentation

◆ constant_core_hamiltonian

bool occ::qm::FockBuildProperties::constant_core_hamiltonian {true}

H is identical every cycle, so an accumulated F keeps a valid one-electron part.

False when H gains a density-dependent term, as with implicit solvation's apparent surface charge.

◆ density_screened

bool occ::qm::FockBuildProperties::density_screened {true}

The two-electron build screens on the density, so handing it a small ΔD is actually cheaper.

Purely about benefit: when false, accumulating is still correct but buys nothing.

◆ linear_in_density

bool occ::qm::FockBuildProperties::linear_in_density {true}

G(D) is linear, so G(Dₙ) == G(Dₙ₋₁) + G(ΔD).

False for anything built on a density-adapted quadrature — the XC functional, COSX exchange.


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