scimba_torch.numerical_solvers.pinn_preconditioners.nystrom_ng

Preconditioner for pinns.

Classes

NystromNaturalGradientPreconditioner(space, ...)

Randomized matrix-free natural gradient preconditioner.

class NystromNaturalGradientPreconditioner(space, pde, **kwargs)[source]

Bases: MatrixPreconditionerPinn

Randomized matrix-free natural gradient preconditioner.

Implements [Bioli and al. 2025]

Parameters:
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.

compute_preconditioning_matrix_dl(*args, **kwargs)[source]

Computes the Gram matrix of the network for the given input tensors.

Parameters:
  • *args (Tensor) – Input tensors for computing the Gram matrix.

  • **kwargs – Additional keyword arguments.

Return type:

Tensor

Returns:

The computed Gram matrix.