scimba_torch.numerical_solvers.preconditioner_projector

Preconditioner projectors and their components.

Classes

AnagramPreconditionerProjector(space, **kwargs)

Anagram preconditioner projector.

EnergyNaturalGradientPreconditionerProjector(...)

Energy natural gradient preconditioner projector.

MatrixPreconditionerProjector(space[, pde])

Abstract base class for matrix-based preconditioner projectors.

class MatrixPreconditionerProjector(space, pde=None, **kwargs)[source]

Bases: AbstractPreconditioner

Abstract base class for matrix-based preconditioner projectors.

This class provides a structure for implementing preconditioners that use a matrix to precondition the gradients in projection problems.

Parameters:
  • space (AbstractApproxSpace) – The approximation space where the projection takes place.

  • **kwargs – Additional keyword arguments for configuring the preconditioner.

abstract compute_preconditioning_matrix(*args, **kwargs)[source]

Computes the preconditioning matrix.

Parameters:
  • *args (LabelTensor) – Input tensors for computing the preconditioning matrix.

  • **kwargs – Additional keyword arguments.

Return type:

Tensor

Returns:

The computed preconditioning matrix.

get_preconditioning_matrix(data, **kwargs)[source]

Retrieves the preconditioning matrix based on the input data.

Parameters:
  • data (tuple[LabelTensor, ...]) – The input data for computing the preconditioning matrix.

  • **kwargs – Additional keyword arguments.

Return type:

Tensor

Returns:

The preconditioning matrix.

get_preconditioning_matrix_bc(data, **kwargs)[source]

Retrieves the BC preconditioning matrix based on the input data.

Parameters:
  • data (tuple) – The input data for computing the boundary condition preconditioning matrix.

  • **kwargs – Additional keyword arguments.

Return type:

Tensor

Returns:

The boundary condition preconditioning matrix.

class EnergyNaturalGradientPreconditionerProjector(space, **kwargs)[source]

Bases: MatrixPreconditionerProjector

Energy natural gradient preconditioner projector.

This class implements a preconditioner using the energy natural gradient method.

Parameters:
  • space (AbstractApproxSpace) – The approximation space where the projection takes place.

  • **kwargs – Additional keyword arguments for configuring the preconditioner.

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

Computes the metric matrix for the given input tensors.

Parameters:
  • *args (LabelTensor) – Input tensors for computing the metric matrix.

  • **kwargs – Additional keyword arguments.

Return type:

Tensor

Returns:

The computed metric matrix.

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

Computes the preconditioning matrix using the metric matrix.

Parameters:
  • *args (LabelTensor) – Input tensors for computing the preconditioning matrix.

  • **kwargs – Additional keyword arguments.

Return type:

Tensor

Returns:

The computed preconditioning matrix.

class AnagramPreconditionerProjector(space, **kwargs)[source]

Bases: MatrixPreconditionerProjector

Anagram preconditioner projector.

This class implements a preconditioner using the Anagram method.

Parameters:
  • space (AbstractApproxSpace) – The approximation space where the projection takes place.

  • **kwargs – Additional keyword arguments for configuring the preconditioner.

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

Computes the preconditioning matrix using the Jacobian of the space.

Parameters:
  • *args (LabelTensor) – Input tensors for computing the preconditioning matrix.

  • **kwargs – Additional keyword arguments.

Return type:

Tensor

Returns:

The computed preconditioning matrix.

assemble_right_member(data, res_l, res_r)[source]

Assembles the right member for the preconditioning.

Parameters:
  • data (tuple) – The input data for assembling the right member.

  • res_l (tuple) – The left residuals.

  • res_r (tuple) – The right residuals.

Return type:

Tensor

Returns:

The assembled right member.