Sundance::BasisReferenceEvaluationBase Class Reference

Inheritance diagram for Sundance::BasisReferenceEvaluationBase:

Sundance::BasisFamilyBase Sundance::ScalarBasis Sundance::ScalarBasis Sundance::VectorBasis Sundance::VectorBasisComponent Sundance::Bernstein Sundance::Bubble Sundance::CubicHermite Sundance::EdgeLocalizedBasis Sundance::Fourier Sundance::Lagrange Sundance::Legendre Sundance::Bernstein Sundance::Bubble Sundance::CubicHermite Sundance::EdgeLocalizedBasis Sundance::Fourier Sundance::Lagrange Sundance::Legendre Sundance::HCurlVectorBasis Sundance::HDivVectorBasis

List of all members.

Public Member Functions

virtual void refEval (const CellType &cellType, const Array< Point > &pts, const SpatialDerivSpecifier &deriv, Array< Array< Array< double > > > &result, int verbosity=0) const =0
 Evaluate the basis functions (or some mixed spatial derivative of the basis functions) for an array of points on the "reference cell" for a given cell type.
virtual void getConstrainsForHNDoF (const int indexInParent, const int maxCellDim, const int maxNrChild, const int facetDim, const int facetIndex, const int nodeIndex, Array< int > &localDoFs, Array< int > &parentFacetDim, Array< int > &parentFacetIndex, Array< int > &parentFacetNode, Array< double > &coefs)


Detailed Description

Abstract interface for evaluation of basis functions and their spatial derivatives on reference cells.

Definition at line 54 of file SundanceBasisReferenceEvaluationBase.hpp.


Member Function Documentation

virtual void Sundance::BasisReferenceEvaluationBase::getConstrainsForHNDoF ( const int  indexInParent,
const int  maxCellDim,
const int  maxNrChild,
const int  facetDim,
const int  facetIndex,
const int  nodeIndex,
Array< int > &  localDoFs,
Array< int > &  parentFacetDim,
Array< int > &  parentFacetIndex,
Array< int > &  parentFacetNode,
Array< double > &  coefs 
) [inline, virtual]

Computes the constraints for DoFs which are on hanging elements.
The child cell is which constrains the hanging local DoF, and the parent cell is needed to find the global DoFs.

Parameters:
indexInParent [in] each (child)cell which has one hanging node, has a parent cell which has one facet, where there are global DoFs
maxCellDim [in] the dimension of the maximal cell
maxNrChild [in] how many children has one parent cell, this tells us if we have trisection or bisection
facetDim [in] the hanging element dimension which is a facet of the child cell
facetIndex [in] the hanging element facet index in the child cell
nodeIndex [in] one element (e.g edge) might have more than one DoF, specify which DoF on the elemnt do we want to constrain
localDoFs [out] the local DoFs in the parent cell which contribute to the hanging DoF
parentFacetDim [out] the facet dimension where the local DoFs (localDoFs) are
parentFacetIndex[out] the facet index where the local DoFs (localDoFs) are
parentFacetNode[out] the facet node where the local DoFs (localDoFs) is (e.g.: one edge might have 2 DoFs in P3)
coefs [out] the belonging coefficients to the parents local DoF

Reimplemented in Sundance::Lagrange.

Definition at line 124 of file SundanceBasisReferenceEvaluationBase.hpp.

virtual void Sundance::BasisReferenceEvaluationBase::refEval ( const CellType cellType,
const Array< Point > &  pts,
const SpatialDerivSpecifier deriv,
Array< Array< Array< double > > > &  result,
int  verbosity = 0 
) const [pure virtual]

Evaluate the basis functions (or some mixed spatial derivative of the basis functions) for an array of points on the "reference cell" for a given cell type.

Parameters:
cellType [in] The type of cell on which the basis is currently being evaluated.
pts [in] Array of points on the reference cell (or master cell) where the basis functions are to be computed.
deriv [in] Specification of which differential operator is to be applied to the basis functions.
result [out] On output, gives a triply nested array which contain the basis functions (or the requested basis function derivatives) evaluated at the given points pts. The size of the outer array results is either zero or spatialDim, depending on whether this is a scalar or vector basis, respectively. The size of the next array level is equal to the number of evaluation points. Finally, the size of the innermost array level is equal to the number of DOFs visible from the given cell type. x * Specifically,
           results[k][pointIndex][basisIndex] 
gives the value of the spatial derivative of the $k$-th component of

\[\frac{\partial^{d_x+d_y+d_z}}{\partial x^{d_x} \partial y^{d_y} \partial z^{d_z}}\psi_i(x,y,z)\]

, where $d_x$ = deriv[0], $d_y$ = deriv[1] (in 2D or 3D) and $d_Z$ = deriv[2] (in 3D) at the point pointIndex (where 0 <= pointIndex < pts.size()) for the basis function $i$ = basisIndex (where 0 <= basisIndex < mapStructure.numBasisChunks()).

Implemented in Sundance::Bernstein, Sundance::Bubble, Sundance::CubicHermite, Sundance::EdgeLocalizedBasis, Sundance::Fourier, Sundance::Lagrange, Sundance::Legendre, Sundance::Nedelec, and Sundance::RaviartThomas.

Site Contact