MPPT v0.3.1#
FCI spin penalties can now be configured directly in the YAML input.
Set one default for CASCI/CASSCF and override or disable it separately for
state-average blocks. Previous release: v0.3.0.
At a glance#
PySCF Interface:
casscf.spin_penalty_shiftenables total-spin targeting for a single FCI solver or supplies the default for state averaging.State averaging: each block can inherit the default, set its own positive shift or use explicit
nullto disable the penalty.Reporting and validation: setup reports show the effective settings; unsupported block2 penalty input is rejected explicitly.
Action required#
Existing inputs keep their behavior when all penalty settings are omitted. To enable the correction, add a positive finite shift in Hartree:
casscf:
solver: fci
active_orbitals: 5
n_active_electrons: 4
spin_penalty_shift: 1.0
states_to_average:
- [singlet, 50]
- {spin: triplet, nroots: 45, spin_penalty_shift: 0.5}
- {spin: quintet, nroots: 5, spin_penalty_shift: null}
The singlet block inherits 1.0 Eh, the triplet block uses 0.5 Eh, and the
quintet block keeps the native unpenalized solver. Existing two-item entries
remain supported. Without state averaging, the stage value targets the effective
CASCI/CASSCF multiplicity.
See the active-space solver guide and YAML reference for the complete input contract.
Component versions#
Component |
Version |
|---|---|
MPPT bundle, DIAGPT and HEFFSO |
|
pyscf2mppt |
|
Caspy |
|
libgrpppy |
|
CIPSIXX |
|
Validation evidence#
Input and runtime acceptance covers omitted defaults, inherited and overridden
block values, explicit null, single-solver targeting and block2 rejection.
A synthetic CAS(4,5) test verifies 50 singlets, 45 triplets and 5 quintets with
100 distinct energies when the corresponding penalties are enabled.
The release pipeline verifies source build/tests, canonical release content, strict documentation builds and the exported snapshot before publication.
Known limitations#
The option uses PySCF fix_spin, an approximate level-shift penalty rather than
exact spin projection. Inspect each root’s S² and test sensitivity to the shift;
the input alone does not guarantee spin purity. This option applies to FCI and
is not supported with solver: block2.