HeatOperator

This is an introduction to the HeatOperator class. We write a small overarching summary of the class where we define the algorithm/equation/structure reasoning for having this class or where it fits with the rest of the code.

template<int D>
class HeatOperator : public mrcpp::ConvolutionOperator<D>

Convolution with a heat kernel.

The exponential heat operator \( \exp \left( t \partial_x^2 \right) \) can be regarded as a convolution operator in $L^2(\mathbb R)$ of the form [ \exp \left( t \partial_x^2 \right) f(x) = \frac 1{ \sqrt{4 \pi t} } \int_\R \exp \left(

  • \frac{ (x - y)^2 }{4t} \right) f(y) dy , \quad t > 0

]

Public Functions

HeatOperator(const MultiResolutionAnalysis<D> &mra, double t, double prec)

Constructor of the HeatOperator object.

This will project a kernel of a single gaussian with exponent \( 1/(4t) \).

Parameters:
  • mra[in] Which MRA the operator is defined

  • t[in] Time moment

  • prec[in] Build precision

Returns:

New HeatOperator object

HeatOperator(const MultiResolutionAnalysis<D> &mra, double t, double prec, int root, int reach = 1)

Constructor of the HeatOperator object in case of Periodic Boundary Conditions (PBC)

This will project a kernel of a single gaussian with exponent \( 1/(4t) \). This version of the constructor is used for calculations within periodic boundary conditions (PBC). The root parameter is the coarsest negative scale at wich the operator is applied. The reach parameter is the bandwidth of the operator at the root scale. For details see MWOperator

Parameters:
  • mra[in] Which MRA the operator is defined

  • t[in] Time moment

  • prec[in] Build precision

  • root[in] root scale of operator.

  • reach[in] width at root scale (applies to periodic boundary conditions)

Returns:

New IdentityConvolution object