scimba_torch.physical_models.temporal_pde.abstract_temporal_pde

Module for abstract temporal PDEs.

Functions

zeros_bc_rhs(w, t, x, n, mu[, nb_func])

Function returning a zero right-hand side for the boundary conditions.

zeros_init(x, mu[, nb_func])

Function returning a zero initial condition.

zeros_rhs(w, t, x, mu[, nb_func])

Function returning a zero right-hand side.

Classes

FirstOrderTemporalPDE(space[, linear])

Base class for representing elliptic Partial Differential Equations (PDEs).

GenericFirstOrderTemporalPDE(space, ...[, ...])

First order temporal equations extending a spatial equation.

SecondOrderTemporalPDE(space[, linear])

Base class for representing elliptic Partial Differential Equations (PDEs).

TemporalPDE(space[, linear])

Base class for representing elliptic Partial Differential Equations (PDEs).

class TemporalPDE(space, linear=False, **kwargs)[source]

Bases: ABC

Base class for representing elliptic Partial Differential Equations (PDEs).

Parameters:
  • space (AbstractApproxSpace) – Approximation space used for the PDE

  • linear (bool) – Whether the PDE is linear

  • **kwargs – Additional keyword arguments

grad(w, y)[source]

Compute the gradient of the tensor w with respect to the tensor y.

Parameters:
Return type:

Tensor | tuple[Tensor, ...]

Returns:

Gradient tensor

abstract rhs(w, t, x, mu)[source]

Compute the right-hand side (RHS) of the PDE.

Parameters:
Return type:

Tensor | tuple[Tensor, ...]

Returns:

RHS tensor

abstract space_operator(w, t, x, mu)[source]

Apply the PDE operator.

Parameters:
Return type:

Tensor | tuple[Tensor, ...]

Returns:

Operator tensor

abstract time_operator(w, t, x, mu)[source]

Apply the PDE operator.

Parameters:
Return type:

Tensor | tuple[Tensor, ...]

Returns:

Operator tensor

operator(w, t, x, mu)[source]

Apply the PDE operator.

Parameters:
Return type:

Tensor | tuple[Tensor, ...]

Returns:

Operator tensor

abstract bc_rhs(w, t, x, n, mu)[source]

Compute the boundary condition RHS.

Parameters:
Return type:

Tensor

Returns:

Boundary condition RHS tensor

abstract bc_operator(w, t, x, n, mu)[source]

Apply the boundary condition operator.

Parameters:
Return type:

Tensor

Returns:

Boundary condition operator tensor

abstract initial_condition(x, mu)[source]

Compute the initial condition.

Parameters:
Return type:

Tensor | tuple[Tensor, ...]

Returns:

Initial condition tensor

class FirstOrderTemporalPDE(space, linear=False, **kwargs)[source]

Bases: TemporalPDE

Base class for representing elliptic Partial Differential Equations (PDEs).

Parameters:
  • space (AbstractApproxSpace) – Approximation space used for the PDE

  • linear (bool) – Whether the PDE is linear

  • **kwargs – Additional keyword arguments

time_operator(w, t, x, mu)[source]

Apply the PDE operator.

Parameters:
Return type:

Tensor | tuple[Tensor, ...]

Returns:

Operator tensor

functional_time_operator(func, t, x, mu, theta)[source]

Compute the functional time operator.

Parameters:
  • func (VarArgCallable) – Callable representing the function

  • t (Tensor) – Temporal coordinate tensor

  • x (Tensor) – Spatial coordinate tensor

  • mu (Tensor) – Parameter tensor

  • theta (Tensor) – Additional parameters tensor

Return type:

Tensor

Returns:

Functional time operator tensor

functional_operator_ic(func, x, mu, theta)[source]

Compute the functional operator for initial conditions.

Parameters:
  • func (VarArgCallable) – Callable representing the function

  • x (Tensor) – Spatial coordinate tensor

  • mu (Tensor) – Parameter tensor

  • theta (Tensor) – Additional parameters tensor

Return type:

Tensor

Returns:

Functional operator tensor for initial conditions

class SecondOrderTemporalPDE(space, linear=False, **kwargs)[source]

Bases: TemporalPDE

Base class for representing elliptic Partial Differential Equations (PDEs).

Parameters:
  • space (AbstractApproxSpace) – Approximation space used for the PDE

  • linear (bool) – Whether the PDE is linear

  • **kwargs – Additional keyword arguments

time_operator(w, t, x, mu)[source]

Apply the PDE operator.

Parameters:
Return type:

Tensor | tuple[Tensor, ...]

Returns:

Operator tensor

zeros_rhs(w, t, x, mu, nb_func=1)[source]

Function returning a zero right-hand side.

Parameters:
Return type:

Tensor

Returns:

A tensor of zeros with shape (number of points, nb_func).

zeros_bc_rhs(w, t, x, n, mu, nb_func=1)[source]

Function returning a zero right-hand side for the boundary conditions.

Parameters:
Return type:

Tensor

Returns:

A tensor of zeros with shape (number of points, nb_func).

zeros_init(x, mu, nb_func=1)[source]

Function returning a zero initial condition.

Parameters:
  • x (LabelTensor) – Spatial coordinates tensor.

  • mu (LabelTensor) – Parameter tensor.

  • nb_func (int) – Number of functions to return (default is 1).

Return type:

Tensor

Returns:

A tensor of zeros with shape (number of points, nb_func).

class GenericFirstOrderTemporalPDE(space, space_component, init=None, f=None, g=None, **kwargs)[source]

Bases: FirstOrderTemporalPDE

First order temporal equations extending a spatial equation.

Parameters:
  • space (AbstractApproxSpace) – The approximation space for the problem

  • space_component (StrongFormEllipticPDE | LinearOrder2PDE) – The stationary part of the equation as a PDE

  • init (Optional[Callable]) – Callable for the initial condition (default is zero)

  • f (Optional[Callable]) – Source term function (default is zero)

  • g (Optional[Callable]) – Boundary condition function (default is zero)

  • **kwargs – Additional keyword arguments

space_operator(w, t, x, mu)[source]

Apply the spatial operator.

Parameters:
Return type:

Tensor | tuple[Tensor, ...]

Returns:

Spatial operator tensor

bc_operator(w, t, x, n, mu)[source]

Apply the boundary condition operator.

Parameters:
Return type:

Tensor

Returns:

Boundary condition operator tensor

rhs(w, t, x, mu)[source]

Compute the right-hand side (RHS) of the PDE.

Parameters:
Return type:

Tensor

Returns:

RHS tensor

bc_rhs(w, t, x, n, mu)[source]

Compute the boundary condition RHS.

Parameters:
Return type:

Tensor

Returns:

Boundary condition RHS tensor

initial_condition(x, mu)[source]

Compute the initial condition.

Parameters:
Return type:

Tensor

Returns:

Initial condition tensor

functional_operator(func, t, x, mu, theta)[source]

Compute the functional operator.

Parameters:
  • func (VarArgCallable) – Callable representing the function

  • t (Tensor) – Temporal coordinate tensor

  • x (Tensor) – Spatial coordinate tensor

  • mu (Tensor) – Parameter tensor

  • theta (Tensor) – Additional parameters tensor

Return type:

Tensor

Returns:

Functional operator tensor

functional_operator_bc(func, t, x, n, mu, theta)[source]

Compute the functional operator for boundary conditions.

Parameters:
  • func (VarArgCallable) – Callable representing the function

  • t (Tensor) – Temporal coordinate tensor

  • x (Tensor) – Spatial coordinate tensor

  • n (Tensor) – Normal vector tensor

  • mu (Tensor) – Parameter tensor

  • theta (Tensor) – Additional parameters tensor

Return type:

Tensor

Returns:

Functional operator tensor for boundary conditions