scimba_torch.numerical_solvers.preconditioner_deep_ritz

Deep Ritz preconditioners.

Classes

EnergyNaturalGradientPreconditioner(space, ...)

Energy Natural Gradient preconditioner for Deep Ritz methods.

MatrixPreconditionerDeepRitz(space, pde, ...)

Matrix-based preconditioner for pinns.

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

Bases: MatrixPreconditionerSolver

Matrix-based preconditioner for pinns.

Parameters:
Raises:

AttributeError – If the input PDE does not have the required attributes.

vectorize_along_physical_variables(func)[source]

Vectorizes a function along physical variables based on the type of space.

Parameters:

func (VarArgAnyCallable) – The function to be vectorized.

Return type:

VarArgAnyCallable

Returns:

The vectorized function.

Raises:

NotImplementedError – If the type of space is not supported.

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

Bases: MatrixPreconditionerDeepRitz

Energy Natural Gradient preconditioner for Deep Ritz methods.

Parameters:
Raises:

ValueError – If the number of unknowns in the space is greater than 1.

eval_and_gradx(*args)[source]

Evaluate the function and compute its gradient.

Parameters:

*args (Tensor | dict[str, Parameter]) – Input arguments where the last argument is the parameters of the network.

Returns:

A tensor containing the function evaluation and its gradient.

eval_and_gradx_and_jactheta(*args)[source]

Evaluate the function, compute its gradient, and the Jacobian.

Parameters:

*args (Tensor | dict[str, Parameter]) – Input arguments where the last argument is the parameters of the network.

Returns:

A tensor containing the function evaluation, its gradient, and the Jacobian

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

Compute the preconditioning matrix.

Parameters:
  • labels (Tensor) – Tensor of labels corresponding to the input data.

  • *args (Tensor) – Additional arguments required for computing the matrix.

  • **kwargs – Additional keyword arguments.

Return type:

Tensor

Returns:

The computed preconditioning matrix as a tensor.

compute_preconditioning_matrix_bc(labels, *args, **kwargs)[source]

Compute the boundary condition preconditioning matrix.

Parameters:
  • labels (Tensor) – Tensor of labels corresponding to the boundary condition data.

  • *args (Tensor) – Additional arguments required for computing the matrix.

  • **kwargs – Additional keyword arguments.

Return type:

Tensor

Returns:

The computed boundary condition preconditioning matrix as a tensor.

compute_preconditioning_matrix_ic(labels, *args, **kwargs)[source]

Compute the initial condition preconditioning matrix.

Parameters:
  • labels (Tensor) – Tensor of labels corresponding to the boundary condition data.

  • *args (Tensor) – Additional arguments required for computing the matrix.

  • **kwargs – Additional keyword arguments.

Return type:

Tensor

Returns:

NotImplementedError.