scimba_torch.numerical_solvers.pinn_preconditioners.nystrom_ng¶
Preconditioner for pinns.
Classes
|
Randomized matrix-free natural gradient preconditioner. |
- class NystromNaturalGradientPreconditioner(space, pde, **kwargs)[source]¶
Bases:
MatrixPreconditionerPinnRandomized matrix-free natural gradient preconditioner.
Implements [Bioli and al. 2025]
- Parameters:
space (
AbstractApproxSpace) – The approximation space.pde (
EllipticPDE|TemporalPDE|KineticPDE|LinearOrder2PDE|RitzFormEllipticPDE|DivAGradUPDE) – The PDE to be solved, which can be an instance of EllipticPDE, TemporalPDE, KineticPDE, or LinearOrder2PDE.**kwargs – Additional keyword arguments:
- Keyword Arguments:
matrix_free (
bool) – Use jvp and vjp to compute the matrix vector product function instead of Phi matrix. (default: False).eps (
float) – The eps for adaptive matrix regularization. (default:torch.finfo(torch.get_default_dtype()).eps).debug (
bool) – Debugging mode - check that gram matrices are coherent. (default: False).
- Raises:
NotImplementedError – data loss and matrix free option not implemented
- [Bioli and al. 2025] Accelerating Natural Gradient Descent for PINNs with
Randomized Nyström Preconditioning, I. Bioli, C. Marcati, G. Sangalli https://arxiv.org/abs/2505.11638v3
- compute_preconditioning_matrix(labels, *args, **kwargs)[source]¶
Compute the preconditioning matrix using the main operator.
- Parameters:
labels (
Tensor) – The labels tensor.*args (
Tensor) – Additional arguments.**kwargs – Additional keyword arguments.
- Return type:
Tensor- Returns:
The preconditioning matrix.
- compute_preconditioning_matrix_bc(labels, *args, **kwargs)[source]¶
Compute the boundary condition preconditioning matrix.
- Parameters:
labels (
Tensor) – The labels tensor.*args (
Tensor) – Additional arguments.**kwargs – Additional keyword arguments.
- Return type:
Tensor- Returns:
The boundary condition preconditioning matrix.
- compute_preconditioning_matrix_ic(labels, *args, **kwargs)[source]¶
Compute the initial condition preconditioning matrix.
- Parameters:
labels (
Tensor) – The labels tensor.*args (
Tensor) – Additional arguments.**kwargs – Additional keyword arguments.
- Return type:
Tensor- Returns:
The initial condition preconditioning matrix.