PyramidModal

Modal basis on the reference pyramid.

Defined in Rodin/Variational/H1/H1Element.hpp

template <
  size_t K>
class PyramidModal;

Public types

struct Values
Selects the value column of caller-owned modal rows.
struct Gradients
Selects the three derivative columns of caller-owned modal rows.
using Tabulation = std::array<std::array<Real, 4>, PyramidIndex<K>::Count>
Fixed modal rows containing a value followed by three derivatives.

Public static functions

static auto getBasis(size_t mode, const Math::SpatialPoint& r) -> Real
Gets the basis function of a local degree of freedom.
static auto getDerivative(size_t mode, size_t deriv, const Math::SpatialPoint& r) -> Real
Gets the derivative of the basis function.
static void tabulate(Tabulation& output, const Math::SpatialPoint& rc)
Tabulates all four modal columns with shared point-local work.
static void tabulate(Values values, const Math::SpatialPoint& rc)
Tabulates modal values at one point.
static void tabulate(Gradients gradients, const Math::SpatialPoint& rc)
Tabulates modal reference gradients at one point.

Typedef documentation

using Tabulation = std::array<std::array<Real, 4>, PyramidIndex<K>::Count>

Fixed modal rows containing a value followed by three derivatives.

Row $m$ contains $(\psi_m,\partial_0\psi_m, \partial_1\psi_m,\partial_2\psi_m)$ . Its compile-time layout retains the original point-local modal workspace.

Function documentation

static Real getBasis(size_t mode, const Math::SpatialPoint& r)

Gets the basis function of a local degree of freedom.

Parameters
mode Basis-mode index.
r Point at which the operation is evaluated.
Returns Value of the selected local basis function at the evaluation point.

static Real getDerivative(size_t mode, size_t deriv, const Math::SpatialPoint& r)

Gets the derivative of the basis function.

Parameters
mode Basis-mode index.
deriv Coordinate direction of differentiation.
r Point at which the operation is evaluated.
Returns Derivative evaluated at the supplied point.

static void tabulate(Tabulation& output, const Math::SpatialPoint& rc)

Tabulates all four modal columns with shared point-local work.

Parameters
output Caller-owned fixed-layout modal rows.
rc Three reference coordinates, with optional trailing padding.
Exceptions
Alert::Exception If coordinates are invalid.

static void tabulate(Values values, const Math::SpatialPoint& rc)

Tabulates modal values at one point.

Parameters
values Mode-indexed output.
rc Reference coordinates.
Exceptions
Alert::Exception If coordinates are invalid.

static void tabulate(Gradients gradients, const Math::SpatialPoint& rc)

Tabulates modal reference gradients at one point.

Parameters
gradients Mode-major output.
rc Reference coordinates.
Exceptions
Alert::Exception If coordinates are invalid.