Source code for poraque.core.solver

# -*- coding: utf-8 -*-
# file: solver.py

# This code is part of Poraquê.
# MIT License
#
# Copyright (c) 2026 Leandro Seixas Rocha <leandro.rocha@ilum.cnpem.br> 

[docs] class SolverSettings: """ Generic solver configuration and utilities. """ def __init__(self, max_iter=100, tolerance=1e-6, mixing=0.5, algorithm='scf', max_line_search=20, cg_restart=20): """ Initialize SolverSettings. Parameters ---------- max_iter : int Maximum number of iterations. tolerance : float Convergence tolerance (energy or density residual). mixing : float Mixing parameter / initial step size (linear mixing, descent step). algorithm : str Optimization algorithm ('scf', 'minimization', etc.). max_line_search : int Maximum number of backtracking halvings per OF-DFT step. cg_restart : int Restart the conjugate-gradient direction to steepest descent every ``cg_restart`` iterations. """ self.max_iter = max_iter self.tolerance = tolerance self.mixing = mixing self.algorithm = algorithm self.max_line_search = max_line_search self.cg_restart = cg_restart def __repr__(self): return f"SolverSettings(max_iter={self.max_iter}, tolerance={self.tolerance})"