This is an introduction to the HeatKernel 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 HeatKernel : public mrcpp::GaussExp<1>

Heat kernel in \( \mathbb R^D \).

In \( \mathbb R^D \) the heat kernel has the form

\[ K_t(x) = \frac 1{ (4 \pi t)^{D/2} } \exp \left( - \frac{ |x|^2 }{4t} \right) , \quad x \in \mathbb R^D \text{ and } t > 0 . \]

Public Functions

double calcCoulombEnergy() const


Each Gaussian must be normalized to unit charge \( c = (\alpha/\pi)^{D/2} \) for this to be correct!


Coulomb repulsion energy between all pairs in GaussExp, including self-interaction

virtual double evalf(const Coord<D> &r) const override

r[in] Cartesian coordinate


Function value in a point

void append(const Gaussian<D> &g)

Append Gaussian to expansion.

void append(const GaussExp<D> &g)

Append GaussExp to expansion.

Protected Attributes

double *A

Lower bound, NULL if unbounded.

double *B

Upper bound, Null if unbounded.