Intermediate class for finite elements whose basis functions return vector values.
More...
|
| VectorFiniteElement (int D, Geometry::Type G, int Do, int O, int M, int F=FunctionSpace::Pk) |
|
| FiniteElement (int D, Geometry::Type G, int Do, int O, int F=FunctionSpace::Pk) |
| Construct FiniteElement with given.
|
|
int | GetDim () const |
| Returns the reference space dimension for the finite element.
|
|
int | GetRangeDim () const |
| Returns the vector dimension for vector-valued finite elements, which is also the dimension of the interpolation operation.
|
|
int | GetCurlDim () const |
| Returns the dimension of the curl for vector-valued finite elements.
|
|
Geometry::Type | GetGeomType () const |
| Returns the Geometry::Type of the reference element.
|
|
int | GetDof () const |
| Returns the number of degrees of freedom in the finite element.
|
|
int | GetOrder () const |
| Returns the order of the finite element. In the case of anisotropic orders, returns the maximum order.
|
|
bool | HasAnisotropicOrders () const |
| Returns true if the FiniteElement basis may be using different orders/degrees in different spatial directions.
|
|
const int * | GetAnisotropicOrders () const |
| Returns an array containing the anisotropic orders/degrees.
|
|
int | Space () const |
| Returns the type of FunctionSpace on the element.
|
|
int | GetRangeType () const |
| Returns the FiniteElement::RangeType of the element, one of {SCALAR, VECTOR}.
|
|
int | GetDerivRangeType () const |
| Returns the FiniteElement::RangeType of the element derivative, either SCALAR or VECTOR.
|
|
int | GetMapType () const |
| Returns the FiniteElement::MapType of the element describing how reference functions are mapped to physical space, one of {VALUE, INTEGRAL H_DIV, H_CURL}.
|
|
int | GetDerivType () const |
| Returns the FiniteElement::DerivType of the element describing the spatial derivative method implemented, one of {NONE, GRAD, DIV, CURL}.
|
|
int | GetDerivMapType () const |
| Returns the FiniteElement::DerivType of the element describing how reference function derivatives are mapped to physical space, one of {VALUE, INTEGRAL, H_DIV, H_CURL}.
|
|
void | CalcPhysShape (ElementTransformation &Trans, Vector &shape) const |
| Evaluate the values of all shape functions of a scalar finite element in physical space at the point described by Trans.
|
|
void | CalcPhysDShape (ElementTransformation &Trans, DenseMatrix &dshape) const |
| Evaluate the gradients of all shape functions of a scalar finite element in physical space at the point described by Trans.
|
|
const IntegrationRule & | GetNodes () const |
| Get a const reference to the nodes of the element.
|
|
virtual void | CalcVShape (const IntegrationPoint &ip, DenseMatrix &shape) const |
| Evaluate the values of all shape functions of a vector finite element in reference space at the given point ip.
|
|
virtual void | CalcVShape (ElementTransformation &Trans, DenseMatrix &shape) const |
| Evaluate the values of all shape functions of a vector finite element in physical space at the point described by Trans.
|
|
void | CalcPhysVShape (ElementTransformation &Trans, DenseMatrix &shape) const |
| Equivalent to the CalcVShape() method with the same arguments.
|
|
virtual void | CalcDivShape (const IntegrationPoint &ip, Vector &divshape) const |
| Evaluate the divergence of all shape functions of a vector finite element in reference space at the given point ip.
|
|
void | CalcPhysDivShape (ElementTransformation &Trans, Vector &divshape) const |
| Evaluate the divergence of all shape functions of a vector finite element in physical space at the point described by Trans.
|
|
virtual void | CalcCurlShape (const IntegrationPoint &ip, DenseMatrix &curl_shape) const |
| Evaluate the curl of all shape functions of a vector finite element in reference space at the given point ip.
|
|
virtual void | CalcPhysCurlShape (ElementTransformation &Trans, DenseMatrix &curl_shape) const |
| Evaluate the curl of all shape functions of a vector finite element in physical space at the point described by Trans.
|
|
virtual void | GetFaceDofs (int face, int **dofs, int *ndofs) const |
| Get the dofs associated with the given face. *dofs is set to an internal array of the local dofc on the face, while *ndofs is set to the number of dofs on that face.
|
|
virtual void | CalcHessian (const IntegrationPoint &ip, DenseMatrix &Hessian) const |
| Evaluate the Hessians of all shape functions of a scalar finite element in reference space at the given point ip.
|
|
virtual void | CalcPhysHessian (ElementTransformation &Trans, DenseMatrix &Hessian) const |
| Evaluate the Hessian of all shape functions of a scalar finite element in reference space at the given point ip.
|
|
virtual void | CalcPhysLaplacian (ElementTransformation &Trans, Vector &Laplacian) const |
| Evaluate the Laplacian of all shape functions of a scalar finite element in reference space at the given point ip.
|
|
virtual void | CalcPhysLinLaplacian (ElementTransformation &Trans, Vector &Laplacian) const |
|
virtual void | GetLocalInterpolation (ElementTransformation &Trans, DenseMatrix &I) const |
| Return the local interpolation matrix I (Dof x Dof) where the fine element is the image of the base geometry under the given transformation.
|
|
virtual void | GetLocalRestriction (ElementTransformation &Trans, DenseMatrix &R) const |
| Return a local restriction matrix R (Dof x Dof) mapping fine dofs to coarse dofs.
|
|
virtual void | GetTransferMatrix (const FiniteElement &fe, ElementTransformation &Trans, DenseMatrix &I) const |
| Return interpolation matrix, I, which maps dofs from a coarse element, fe, to the fine dofs on this finite element.
|
|
virtual void | Project (Coefficient &coeff, ElementTransformation &Trans, Vector &dofs) const |
| Given a coefficient and a transformation, compute its projection (approximation) in the local finite dimensional space in terms of the degrees of freedom.
|
|
virtual void | Project (VectorCoefficient &vc, ElementTransformation &Trans, Vector &dofs) const |
| Given a vector coefficient and a transformation, compute its projection (approximation) in the local finite dimensional space in terms of the degrees of freedom. (VectorFiniteElements)
|
|
virtual void | ProjectFromNodes (Vector &vc, ElementTransformation &Trans, Vector &dofs) const |
| Given a vector of values at the finite element nodes and a transformation, compute its projection (approximation) in the local finite dimensional space in terms of the degrees of freedom. Valid for VectorFiniteElements.
|
|
virtual void | ProjectMatrixCoefficient (MatrixCoefficient &mc, ElementTransformation &T, Vector &dofs) const |
| Given a matrix coefficient and a transformation, compute an approximation ("projection") in the local finite dimensional space in terms of the degrees of freedom. For VectorFiniteElements, the rows of the coefficient are projected in the vector space.
|
|
virtual void | ProjectDelta (int vertex, Vector &dofs) const |
| Project a delta function centered on the given vertex in the local finite dimensional space represented by the dofs.
|
|
virtual void | Project (const FiniteElement &fe, ElementTransformation &Trans, DenseMatrix &I) const |
| Compute the embedding/projection matrix from the given FiniteElement onto 'this' FiniteElement. The ElementTransformation is included to support cases when the projection depends on it.
|
|
virtual void | ProjectGrad (const FiniteElement &fe, ElementTransformation &Trans, DenseMatrix &grad) const |
| Compute the discrete gradient matrix from the given FiniteElement onto 'this' FiniteElement. The ElementTransformation is included to support cases when the matrix depends on it.
|
|
virtual void | ProjectCurl (const FiniteElement &fe, ElementTransformation &Trans, DenseMatrix &curl) const |
| Compute the discrete curl matrix from the given FiniteElement onto 'this' FiniteElement. The ElementTransformation is included to support cases when the matrix depends on it.
|
|
virtual void | ProjectDiv (const FiniteElement &fe, ElementTransformation &Trans, DenseMatrix &div) const |
| Compute the discrete divergence matrix from the given FiniteElement onto 'this' FiniteElement. The ElementTransformation is included to support cases when the matrix depends on it.
|
|
virtual const DofToQuad & | GetDofToQuad (const IntegrationRule &ir, DofToQuad::Mode mode) const |
| Return a DofToQuad structure corresponding to the given IntegrationRule using the given DofToQuad::Mode.
|
|
virtual void | GetFaceMap (const int face_id, Array< int > &face_map) const |
| Return the mapping from lexicographic face DOFs to lexicographic element DOFs for the given local face face_id.
|
|
virtual const StatelessDofTransformation * | GetDofTransformation () const |
| Return a DoF transformation object for this particular type of basis.
|
|
virtual | ~FiniteElement () |
| Deconstruct the FiniteElement.
|
|
|
void | SetDerivMembers () |
|
void | CalcVShape_RT (ElementTransformation &Trans, DenseMatrix &shape) const |
|
void | CalcVShape_ND (ElementTransformation &Trans, DenseMatrix &shape) const |
|
void | Project_RT (const real_t *nk, const Array< int > &d2n, VectorCoefficient &vc, ElementTransformation &Trans, Vector &dofs) const |
| Project a vector coefficient onto the RT basis functions.
|
|
void | Project_RT (const real_t *nk, const Array< int > &d2n, Vector &vc, ElementTransformation &Trans, Vector &dofs) const |
| Projects the vector of values given at FE nodes to RT space.
|
|
void | ProjectMatrixCoefficient_RT (const real_t *nk, const Array< int > &d2n, MatrixCoefficient &mc, ElementTransformation &T, Vector &dofs) const |
| Project the rows of the matrix coefficient in an RT space.
|
|
void | Project_RT (const real_t *nk, const Array< int > &d2n, const FiniteElement &fe, ElementTransformation &Trans, DenseMatrix &I) const |
| Project vector-valued basis functions onto the RT basis functions.
|
|
void | ProjectGrad_RT (const real_t *nk, const Array< int > &d2n, const FiniteElement &fe, ElementTransformation &Trans, DenseMatrix &grad) const |
|
void | ProjectCurl_ND (const real_t *tk, const Array< int > &d2t, const FiniteElement &fe, ElementTransformation &Trans, DenseMatrix &curl) const |
|
void | ProjectCurl_RT (const real_t *nk, const Array< int > &d2n, const FiniteElement &fe, ElementTransformation &Trans, DenseMatrix &curl) const |
|
void | Project_ND (const real_t *tk, const Array< int > &d2t, VectorCoefficient &vc, ElementTransformation &Trans, Vector &dofs) const |
| Project a vector coefficient onto the ND basis functions.
|
|
void | Project_ND (const real_t *tk, const Array< int > &d2t, Vector &vc, ElementTransformation &Trans, Vector &dofs) const |
| Projects the vector of values given at FE nodes to ND space.
|
|
void | ProjectMatrixCoefficient_ND (const real_t *tk, const Array< int > &d2t, MatrixCoefficient &mc, ElementTransformation &T, Vector &dofs) const |
| Project the rows of the matrix coefficient in an ND space.
|
|
void | Project_ND (const real_t *tk, const Array< int > &d2t, const FiniteElement &fe, ElementTransformation &Trans, DenseMatrix &I) const |
| Project vector-valued basis functions onto the ND basis functions.
|
|
void | ProjectGrad_ND (const real_t *tk, const Array< int > &d2t, const FiniteElement &fe, ElementTransformation &Trans, DenseMatrix &grad) const |
|
void | LocalL2Projection_RT (const VectorFiniteElement &cfe, ElementTransformation &Trans, DenseMatrix &I) const |
|
void | LocalInterpolation_RT (const VectorFiniteElement &cfe, const real_t *nk, const Array< int > &d2n, ElementTransformation &Trans, DenseMatrix &I) const |
|
void | LocalL2Projection_ND (const VectorFiniteElement &cfe, ElementTransformation &Trans, DenseMatrix &I) const |
|
void | LocalInterpolation_ND (const VectorFiniteElement &cfe, const real_t *tk, const Array< int > &d2t, ElementTransformation &Trans, DenseMatrix &I) const |
|
void | LocalRestriction_RT (const real_t *nk, const Array< int > &d2n, ElementTransformation &Trans, DenseMatrix &R) const |
|
void | LocalRestriction_ND (const real_t *tk, const Array< int > &d2t, ElementTransformation &Trans, DenseMatrix &R) const |
|
Intermediate class for finite elements whose basis functions return vector values.
Definition at line 800 of file fe_base.hpp.