#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub enum BasisType {
Gto,
#[default]
Sto,
}
#[derive(Debug, Clone, Copy, PartialEq)]
pub enum DampingStrategy {
None,
Fixed(f64),
Auto { initial: f64 },
}
#[derive(Debug, Clone, Copy, PartialEq)]
pub struct SolverOptions {
pub tolerance: f64,
pub max_iterations: u32,
pub lambda_scale: f64,
pub hydrogen_scf: bool,
pub basis_type: BasisType,
pub damping: DampingStrategy,
}
impl Default for SolverOptions {
fn default() -> Self {
Self {
tolerance: 1.0e-6,
max_iterations: 2000,
lambda_scale: 0.5,
hydrogen_scf: true,
basis_type: BasisType::default(),
damping: DampingStrategy::Auto { initial: 0.4 },
}
}
}