|
occ
|
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. | |
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.
| 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.
| 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.
| 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.