scimba_torch.numerical_solvers.abstract_preconditioner¶
Preconditioners for projectors.
Classes
|
Abstract class for preconditioner solvers. |
|
Identity preconditioner that returns the input gradients unchanged. |
- class AbstractPreconditioner(space, pde=None, **kwargs)[source]¶
Bases:
ABCAbstract class for preconditioner solvers.
- Parameters:
space (
AbstractApproxSpace) – The approximation space.pde (
EllipticPDE|TemporalPDE|KineticPDE|LinearOrder2PDE|RitzFormEllipticPDE|DivAGradUPDE|None) – The PDE to be solved, None by default for projection.**kwargs –
Additional keyword arguments:
has_bc (
bool): Whether the PDE has boundary conditions. (default: False)bc_weight (
float): Weight for the boundary conditions. (default: 10.0)has_ic (
bool): Whether the PDE has initial conditions. (default: False)ic_weight (
float): Weight for the initial conditions. (default: 10.0)
- update_matrix_regularization(n_steps, loss_has_decreased)[source]¶
Updates the regularization parameter for the preconditioning matrix.
This method can be overridden by subclasses to implement adaptive regularization strategies based on the number of line search steps taken and whether the loss has decreased.
By default, it does nothing. Subclasses that implement adaptive regularization can override this method to update the regularization parameter during training.
- Parameters:
n_steps (
int) – The number of line search steps taken.loss_has_decreased (
bool) – Whether the loss has decreased after the line search.
- class IdPreconditioner(space, pde=None, **kwargs)[source]¶
Bases:
AbstractPreconditionerIdentity preconditioner that returns the input gradients unchanged.
- Parameters:
space (
AbstractApproxSpace) – The approximation space.pde (
EllipticPDE|TemporalPDE|KineticPDE|LinearOrder2PDE|RitzFormEllipticPDE|DivAGradUPDE|None) – The PDE to be solved, None by default for projection.**kwargs – Additional keyword arguments.