|
votca 2026-dev
|
#include <hirshfeldpartition.h>
Public Attributes | |
| Eigen::MatrixXd | weight_matrix |
| double | target_population |
| double | lambda = 0.0 |
| double | spin_alpha_coefficient = 1.0 |
| double | spin_beta_coefficient = 1.0 |
One active CDFT constraint: the Lagrange-multiplier potential term added to the Fock matrix(es) is lambda * spin_alpha_coefficient * weight_matrix for the alpha channel, and lambda * spin_beta_coefficient * weight_matrix for the beta channel.
For a CHARGE constraint (the only kind implemented so far): spin_alpha_coefficient = spin_beta_coefficient = +1.0, since the constrained quantity is Tr[(P_alpha + P_beta) * W] – the SAME potential added to both spin channels. A SPIN constraint (not yet implemented, but the reason these two coefficients are stored separately rather than hardcoding "add to both channels equally") would instead need +1.0/-1.0, since it constrains Tr[(P_alpha - P_beta) * W] – per the design discussion this struct grew out of, adding spin constraints later should only ever require constructing a Constraint with different coefficients, never touching the Fock-matrix-assembly code that consumes this struct at all.
Definition at line 331 of file hirshfeldpartition.h.
| double votca::xtp::HirshfeldPartition::Constraint::lambda = 0.0 |
Definition at line 334 of file hirshfeldpartition.h.
| double votca::xtp::HirshfeldPartition::Constraint::spin_alpha_coefficient = 1.0 |
Definition at line 335 of file hirshfeldpartition.h.
| double votca::xtp::HirshfeldPartition::Constraint::spin_beta_coefficient = 1.0 |
Definition at line 336 of file hirshfeldpartition.h.
| double votca::xtp::HirshfeldPartition::Constraint::target_population |
Definition at line 333 of file hirshfeldpartition.h.
| Eigen::MatrixXd votca::xtp::HirshfeldPartition::Constraint::weight_matrix |
Definition at line 332 of file hirshfeldpartition.h.