MFEM v2.0
|
Abstract class for Finite Elements. More...
#include <fe.hpp>
Public Types | |
enum | { SCALAR, VECTOR } |
Public Member Functions | |
FiniteElement (int D, int G, int Do, int O, int F=FunctionSpace::Pk) | |
int | GetDim () const |
Returns the space dimension for the finite element. | |
int | GetGeomType () const |
Returns the geometry type: | |
int | GetDof () const |
Returns the degrees of freedom in the FE space. | |
int | GetOrder () const |
Returns the order of the finite element. | |
int | Space () const |
Returns the type of space on each element. | |
int | GetRangeType () const |
virtual void | CalcShape (const IntegrationPoint &ip, Vector &shape) const =0 |
virtual void | CalcDShape (const IntegrationPoint &ip, DenseMatrix &dshape) const =0 |
const IntegrationRule & | GetNodes () const |
virtual void | CalcVShape (const IntegrationPoint &ip, DenseMatrix &shape) const |
virtual void | CalcVShape (ElementTransformation &Trans, DenseMatrix &shape) const |
virtual void | CalcDivShape (const IntegrationPoint &ip, Vector &divshape) const |
virtual void | CalcCurlShape (const IntegrationPoint &ip, DenseMatrix &curl_shape) const |
virtual void | GetFaceDofs (int face, int **dofs, int *ndofs) const |
virtual void | CalcHessian (const IntegrationPoint &ip, DenseMatrix &h) const |
virtual void | GetLocalInterpolation (ElementTransformation &Trans, DenseMatrix &I) const |
virtual void | Project (Coefficient &coeff, ElementTransformation &Trans, Vector &dofs) const |
virtual void | Project (VectorCoefficient &vc, ElementTransformation &Trans, Vector &dofs) const |
virtual void | ProjectDelta (int vertex, Vector &dofs) const |
virtual void | Project (const FiniteElement &fe, ElementTransformation &Trans, DenseMatrix &I) const |
virtual void | ProjectGrad (const FiniteElement &fe, ElementTransformation &Trans, DenseMatrix &grad) const |
virtual void | ProjectCurl (const FiniteElement &fe, ElementTransformation &Trans, DenseMatrix &curl) const |
virtual void | ProjectDiv (const FiniteElement &fe, ElementTransformation &Trans, DenseMatrix &div) const |
virtual | ~FiniteElement () |
Protected Attributes | |
int | Dim |
int | GeomType |
int | Dof |
int | Order |
int | FuncSpace |
int | RangeType |
IntegrationRule | Nodes |
FiniteElement::FiniteElement | ( | int | D, |
int | G, | ||
int | Do, | ||
int | O, | ||
int | F = FunctionSpace::Pk |
||
) |
Construct Finite Element with given (D)im - space dimension, (G)eomType - geometry type (of type Geometry::Type), (Do)f - degrees of freedom in the FE space, and (O)rder - order of the FE space (F)uncSpace- type of space on each element
Definition at line 17 of file fe.cpp.
References Dim, Dof, FuncSpace, GeomType, Order, RangeType, and SCALAR.
void FiniteElement::CalcCurlShape | ( | const IntegrationPoint & | ip, |
DenseMatrix & | curl_shape | ||
) | const [virtual] |
pure virtual function which evaluates the values of the curl all shape functions at a given point ip and stores them in the matrix curl_shape (Dof x Dim) so that each row contains the curl of one shape function
Reimplemented in Nedelec1HexFiniteElement, Nedelec1TetFiniteElement, ND_HexahedronElement, ND_QuadrilateralElement, ND_TetrahedronElement, and ND_TriangleElement.
Definition at line 45 of file fe.cpp.
References mfem_error().
Referenced by CurlCurlIntegrator::AssembleElementMatrix(), VectorFECurlIntegrator::AssembleElementMatrix2(), and VectorFiniteElement::ProjectCurl_RT().
void FiniteElement::CalcDivShape | ( | const IntegrationPoint & | ip, |
Vector & | divshape | ||
) | const [virtual] |
This virtual function evaluates the divergence of all shape functions at the given IntegrationPoint. The result is stored in the Vector divshape (of size Dof).
Reimplemented in RT0TriangleFiniteElement, RT0QuadFiniteElement, RT1TriangleFiniteElement, RT1QuadFiniteElement, RT2TriangleFiniteElement, RT2QuadFiniteElement, RT0HexFiniteElement, RT1HexFiniteElement, RT0TetFiniteElement, RT_QuadrilateralElement, RT_HexahedronElement, RT_TriangleElement, and RT_TetrahedronElement.
Definition at line 38 of file fe.cpp.
References mfem_error().
Referenced by DivDivIntegrator::AssembleElementMatrix(), VectorFEDivergenceIntegrator::AssembleElementMatrix2(), GridFunction::GetDivergence(), and NodalFiniteElement::ProjectDiv().
virtual void FiniteElement::CalcDShape | ( | const IntegrationPoint & | ip, |
DenseMatrix & | dshape | ||
) | const [pure virtual] |
pure virtual function which evaluates the values of all partial derivatives of all shape functions at a given point ip and stores them in the matrix dshape (Dof x Dim) so that each row contains the derivatives of one shape function
Implemented in VectorFiniteElement, PointFiniteElement, Linear1DFiniteElement, Linear2DFiniteElement, BiLinear2DFiniteElement, GaussLinear2DFiniteElement, GaussBiLinear2DFiniteElement, P1OnQuadFiniteElement, Quad1DFiniteElement, QuadPos1DFiniteElement, Quad2DFiniteElement, GaussQuad2DFiniteElement, BiQuad2DFiniteElement, BiQuadPos2DFiniteElement, GaussBiQuad2DFiniteElement, BiCubic2DFiniteElement, Cubic1DFiniteElement, Cubic2DFiniteElement, Cubic3DFiniteElement, P0TriangleFiniteElement, P0QuadFiniteElement, Linear3DFiniteElement, Quadratic3DFiniteElement, TriLinear3DFiniteElement, CrouzeixRaviartFiniteElement, CrouzeixRaviartQuadFiniteElement, P0SegmentFiniteElement, P1SegmentFiniteElement, P2SegmentFiniteElement, Lagrange1DFiniteElement, P1TetNonConfFiniteElement, P0TetFiniteElement, P0HexFiniteElement, LagrangeHexFiniteElement, RefinedLinear1DFiniteElement, RefinedLinear2DFiniteElement, RefinedLinear3DFiniteElement, RefinedBiLinear2DFiniteElement, RefinedTriLinear3DFiniteElement, RotTriLinearHexFiniteElement, H1_SegmentElement, H1_QuadrilateralElement, H1_HexahedronElement, H1_TriangleElement, H1_TetrahedronElement, L2_SegmentElement, L2_QuadrilateralElement, L2_HexahedronElement, L2_TriangleElement, L2_TetrahedronElement, NURBS1DFiniteElement, NURBS2DFiniteElement, and NURBS3DFiniteElement.
Referenced by ElasticityIntegrator::AssembleElementMatrix(), VectorDiffusionIntegrator::AssembleElementMatrix(), ConvectionIntegrator::AssembleElementMatrix(), DiffusionIntegrator::AssembleElementMatrix(), VectorDivergenceIntegrator::AssembleElementMatrix2(), DerivativeIntegrator::AssembleElementMatrix2(), Mesh::CheckDisplacements(), DiffusionIntegrator::ComputeElementFlux(), GridFunction::ComputeH1Error(), GridFunction::ComputeW11Error(), GridFunction::GetDerivative(), GridFunction::GetGradients(), GridFunction::GetVectorGradientHat(), NodalFiniteElement::ProjectGrad(), VectorFiniteElement::ProjectGrad_ND(), and VectorFiniteElement::ProjectGrad_RT().
void FiniteElement::CalcHessian | ( | const IntegrationPoint & | ip, |
DenseMatrix & | h | ||
) | const [virtual] |
each row of h contains the upper triangular part of the hessian of one shape function; the order in 2D is {u_xx, u_xy, u_yy}
Reimplemented in BiLinear2DFiniteElement, Quad2DFiniteElement, BiCubic2DFiniteElement, and Cubic2DFiniteElement.
Definition at line 57 of file fe.cpp.
References mfem_error().
virtual void FiniteElement::CalcShape | ( | const IntegrationPoint & | ip, |
Vector & | shape | ||
) | const [pure virtual] |
pure virtual function which evaluates the values of all shape functions at a given point ip and stores them in the vector shape of dimension Dof
Implemented in VectorFiniteElement, PointFiniteElement, Linear1DFiniteElement, Linear2DFiniteElement, BiLinear2DFiniteElement, GaussLinear2DFiniteElement, GaussBiLinear2DFiniteElement, P1OnQuadFiniteElement, Quad1DFiniteElement, QuadPos1DFiniteElement, Quad2DFiniteElement, GaussQuad2DFiniteElement, BiQuad2DFiniteElement, BiQuadPos2DFiniteElement, GaussBiQuad2DFiniteElement, BiCubic2DFiniteElement, Cubic1DFiniteElement, Cubic2DFiniteElement, Cubic3DFiniteElement, P0TriangleFiniteElement, P0QuadFiniteElement, Linear3DFiniteElement, Quadratic3DFiniteElement, TriLinear3DFiniteElement, CrouzeixRaviartFiniteElement, CrouzeixRaviartQuadFiniteElement, P0SegmentFiniteElement, P1SegmentFiniteElement, P2SegmentFiniteElement, Lagrange1DFiniteElement, P1TetNonConfFiniteElement, P0TetFiniteElement, P0HexFiniteElement, LagrangeHexFiniteElement, RefinedLinear1DFiniteElement, RefinedLinear2DFiniteElement, RefinedLinear3DFiniteElement, RefinedBiLinear2DFiniteElement, RefinedTriLinear3DFiniteElement, RotTriLinearHexFiniteElement, H1_SegmentElement, H1_QuadrilateralElement, H1_HexahedronElement, H1_TriangleElement, H1_TetrahedronElement, L2_SegmentElement, L2_QuadrilateralElement, L2_HexahedronElement, L2_TriangleElement, L2_TetrahedronElement, NURBS1DFiniteElement, NURBS2DFiniteElement, and NURBS3DFiniteElement.
Referenced by VectorMassIntegrator::AssembleElementMatrix(), ConvectionIntegrator::AssembleElementMatrix(), MassIntegrator::AssembleElementMatrix(), VectorDivergenceIntegrator::AssembleElementMatrix2(), VectorFEMassIntegrator::AssembleElementMatrix2(), DerivativeIntegrator::AssembleElementMatrix2(), VectorFEDivergenceIntegrator::AssembleElementMatrix2(), MassIntegrator::AssembleElementMatrix2(), VectorFEBoundaryFluxLFIntegrator::AssembleRHSElementVect(), VectorBoundaryFluxLFIntegrator::AssembleRHSElementVect(), VectorBoundaryLFIntegrator::AssembleRHSElementVect(), VectorDomainLFIntegrator::AssembleRHSElementVect(), BoundaryLFIntegrator::AssembleRHSElementVect(), DomainLFIntegrator::AssembleRHSElementVect(), DiffusionIntegrator::ComputeFluxEnergy(), GridFunction::ComputeH1Error(), GridFunction::ComputeL2Error(), GridFunction::ComputeMaxError(), GridFunction::ComputeW11Error(), GridFunction::GetBdrValuesFrom(), GridFunction::GetNodalValues(), GridFunction::GetValue(), GridFunction::GetValues(), GridFunction::GetValuesFrom(), GridFunction::GetVectorValue(), GridFunction::GetVectorValues(), NodalFiniteElement::NodalLocalInterpolation(), NodalFiniteElement::Project(), VectorFiniteElement::Project_ND(), VectorFiniteElement::Project_RT(), and GridFunction::ProjectBdrCoefficientNormal().
void FiniteElement::CalcVShape | ( | const IntegrationPoint & | ip, |
DenseMatrix & | shape | ||
) | const [virtual] |
This virtual function evaluates the values of all components of all shape functions at the given IntegrationPoint. The result is stored in the DenseMatrix shape (Dof x Dim) so that each row contains the components of one shape function.
Reimplemented in RT0TriangleFiniteElement, RT0QuadFiniteElement, RT1TriangleFiniteElement, RT1QuadFiniteElement, RT2TriangleFiniteElement, RT2QuadFiniteElement, Nedelec1HexFiniteElement, Nedelec1TetFiniteElement, RT0HexFiniteElement, RT1HexFiniteElement, RT0TetFiniteElement, RT_QuadrilateralElement, RT_HexahedronElement, RT_TriangleElement, RT_TetrahedronElement, ND_HexahedronElement, ND_QuadrilateralElement, ND_TetrahedronElement, and ND_TriangleElement.
Definition at line 24 of file fe.cpp.
References mfem_error().
Referenced by VectorFEMassIntegrator::AssembleElementMatrix(), VectorFEMassIntegrator::AssembleElementMatrix2(), VectorFECurlIntegrator::AssembleElementMatrix2(), VectorFEDomainLFIntegrator::AssembleRHSElementVect(), VectorFiniteElement::CalcVShape_ND(), VectorFiniteElement::CalcVShape_RT(), GridFunction::GetNodalValues(), GridFunction::GetVectorFieldValues(), GridFunction::GetVectorValue(), GridFunction::GetVectorValues(), VectorFiniteElement::LocalInterpolation_ND(), VectorFiniteElement::LocalInterpolation_RT(), and NodalFiniteElement::Project().
void FiniteElement::CalcVShape | ( | ElementTransformation & | Trans, |
DenseMatrix & | shape | ||
) | const [virtual] |
Reimplemented in RT0TriangleFiniteElement, RT0QuadFiniteElement, RT1TriangleFiniteElement, RT1QuadFiniteElement, RT2TriangleFiniteElement, RT2QuadFiniteElement, Nedelec1HexFiniteElement, Nedelec1TetFiniteElement, RT0HexFiniteElement, RT1HexFiniteElement, RT0TetFiniteElement, RT_QuadrilateralElement, RT_HexahedronElement, RT_TriangleElement, RT_TetrahedronElement, ND_HexahedronElement, ND_QuadrilateralElement, ND_TetrahedronElement, and ND_TriangleElement.
Definition at line 31 of file fe.cpp.
References mfem_error().
int FiniteElement::GetDim | ( | ) | const [inline] |
Returns the space dimension for the finite element.
Definition at line 51 of file fe.hpp.
References Dim.
Referenced by ElasticityIntegrator::AssembleElementMatrix(), VectorDiffusionIntegrator::AssembleElementMatrix(), VectorFEMassIntegrator::AssembleElementMatrix(), CurlCurlIntegrator::AssembleElementMatrix(), VectorMassIntegrator::AssembleElementMatrix(), ConvectionIntegrator::AssembleElementMatrix(), DiffusionIntegrator::AssembleElementMatrix(), VectorDivergenceIntegrator::AssembleElementMatrix2(), VectorFEMassIntegrator::AssembleElementMatrix2(), DerivativeIntegrator::AssembleElementMatrix2(), VectorFECurlIntegrator::AssembleElementMatrix2(), VectorBoundaryFluxLFIntegrator::AssembleRHSElementVect(), VectorFEDomainLFIntegrator::AssembleRHSElementVect(), DiffusionIntegrator::ComputeElementFlux(), DiffusionIntegrator::ComputeFluxEnergy(), GridFunction::GetDerivative(), GridFunction::GetGradients(), GridFunction::GetNodalValues(), GridFunction::GetVectorFieldValues(), GridFunction::GetVectorGradientHat(), GridFunction::GetVectorValue(), GridFunction::GetVectorValues(), IsoparametricTransformation::Jacobian(), IsoparametricTransformation::OrderGrad(), IsoparametricTransformation::OrderW(), VectorFiniteElement::ProjectGrad_ND(), VectorFiniteElement::ProjectGrad_RT(), GridFunction::ProjectVectorFieldOn(), GridFunction::VectorDim(), and IsoparametricTransformation::Weight().
int FiniteElement::GetDof | ( | ) | const [inline] |
Returns the degrees of freedom in the FE space.
Definition at line 57 of file fe.hpp.
References Dof.
Referenced by ElasticityIntegrator::AssembleElementMatrix(), VectorDiffusionIntegrator::AssembleElementMatrix(), DivDivIntegrator::AssembleElementMatrix(), VectorFEMassIntegrator::AssembleElementMatrix(), CurlCurlIntegrator::AssembleElementMatrix(), VectorMassIntegrator::AssembleElementMatrix(), ConvectionIntegrator::AssembleElementMatrix(), MassIntegrator::AssembleElementMatrix(), DiffusionIntegrator::AssembleElementMatrix(), VectorDivergenceIntegrator::AssembleElementMatrix2(), VectorFEMassIntegrator::AssembleElementMatrix2(), DerivativeIntegrator::AssembleElementMatrix2(), VectorFECurlIntegrator::AssembleElementMatrix2(), VectorFEDivergenceIntegrator::AssembleElementMatrix2(), MassIntegrator::AssembleElementMatrix2(), VectorFEBoundaryFluxLFIntegrator::AssembleRHSElementVect(), VectorBoundaryFluxLFIntegrator::AssembleRHSElementVect(), VectorFEDomainLFIntegrator::AssembleRHSElementVect(), VectorBoundaryLFIntegrator::AssembleRHSElementVect(), VectorDomainLFIntegrator::AssembleRHSElementVect(), BoundaryLFIntegrator::AssembleRHSElementVect(), DomainLFIntegrator::AssembleRHSElementVect(), DiffusionIntegrator::ComputeElementFlux(), BilinearForm::ComputeElementMatrices(), DiffusionIntegrator::ComputeFluxEnergy(), GridFunction::ComputeH1Error(), GridFunction::ComputeL2Error(), GridFunction::ComputeMaxError(), GridFunction::ComputeW11Error(), Local_FECollection::DofForGeometry(), L2_FECollection::DofForGeometry(), GridFunction::GetBdrValuesFrom(), GridFunction::GetDerivative(), GridFunction::GetDivergence(), GridFunction::GetGradients(), GridFunction::GetNodalValues(), GridFunction::GetValues(), GridFunction::GetValuesFrom(), GridFunction::GetVectorFieldValues(), GridFunction::GetVectorGradientHat(), GridFunction::GetVectorValue(), GridFunction::GetVectorValues(), IsoparametricTransformation::Jacobian(), LagrangeHexFiniteElement::LagrangeHexFiniteElement(), NodalFiniteElement::Project(), VectorFiniteElement::Project_ND(), VectorFiniteElement::Project_RT(), GridFunction::ProjectBdrCoefficient(), GridFunction::ProjectBdrCoefficientNormal(), GridFunction::ProjectBdrCoefficientTangent(), GridFunction::ProjectCoefficient(), VectorFiniteElement::ProjectCurl_RT(), NodalFiniteElement::ProjectDiv(), NodalFiniteElement::ProjectGrad(), VectorFiniteElement::ProjectGrad_ND(), VectorFiniteElement::ProjectGrad_RT(), GridFunction::ProjectVectorFieldOn(), and IsoparametricTransformation::Transform().
void FiniteElement::GetFaceDofs | ( | int | face, |
int ** | dofs, | ||
int * | ndofs | ||
) | const [virtual] |
Reimplemented in Linear3DFiniteElement.
Definition at line 52 of file fe.cpp.
References mfem_error().
int FiniteElement::GetGeomType | ( | ) | const [inline] |
Returns the geometry type:
Definition at line 54 of file fe.hpp.
References GeomType.
Referenced by ElasticityIntegrator::AssembleElementMatrix(), VectorDiffusionIntegrator::AssembleElementMatrix(), DivDivIntegrator::AssembleElementMatrix(), VectorFEMassIntegrator::AssembleElementMatrix(), CurlCurlIntegrator::AssembleElementMatrix(), VectorMassIntegrator::AssembleElementMatrix(), ConvectionIntegrator::AssembleElementMatrix(), MassIntegrator::AssembleElementMatrix(), DiffusionIntegrator::AssembleElementMatrix(), VectorDivergenceIntegrator::AssembleElementMatrix2(), VectorFEMassIntegrator::AssembleElementMatrix2(), DerivativeIntegrator::AssembleElementMatrix2(), VectorFECurlIntegrator::AssembleElementMatrix2(), VectorFEDivergenceIntegrator::AssembleElementMatrix2(), MassIntegrator::AssembleElementMatrix2(), VectorFEBoundaryFluxLFIntegrator::AssembleRHSElementVect(), VectorBoundaryFluxLFIntegrator::AssembleRHSElementVect(), VectorFEDomainLFIntegrator::AssembleRHSElementVect(), VectorBoundaryLFIntegrator::AssembleRHSElementVect(), VectorDomainLFIntegrator::AssembleRHSElementVect(), BoundaryLFIntegrator::AssembleRHSElementVect(), DomainLFIntegrator::AssembleRHSElementVect(), Mesh::CheckDisplacements(), DiffusionIntegrator::ComputeFluxEnergy(), GridFunction::ComputeH1Error(), GridFunction::ComputeL1Error(), GridFunction::ComputeL2Error(), GridFunction::ComputeMaxError(), GridFunction::ComputeW11Error(), GridFunction::GetNodalValues(), GridFunction::GetVectorFieldNodalValues(), GridFunction::ProjectBdrCoefficientNormal(), and GridFunction::SaveSTL().
void FiniteElement::GetLocalInterpolation | ( | ElementTransformation & | Trans, |
DenseMatrix & | I | ||
) | const [virtual] |
Return the local interpolation matrix I (Dof x Dof) where the fine element is the image of the base geometry under the given transformation.
Reimplemented in NodalFiniteElement, RT0TriangleFiniteElement, RT0QuadFiniteElement, RT1TriangleFiniteElement, RT1QuadFiniteElement, RT2QuadFiniteElement, Nedelec1HexFiniteElement, Nedelec1TetFiniteElement, RT0HexFiniteElement, RT1HexFiniteElement, RT0TetFiniteElement, RT_QuadrilateralElement, RT_HexahedronElement, RT_TriangleElement, RT_TetrahedronElement, ND_HexahedronElement, ND_QuadrilateralElement, ND_TetrahedronElement, and ND_TriangleElement.
Definition at line 63 of file fe.cpp.
References mfem_error().
const IntegrationRule& FiniteElement::GetNodes | ( | ) | const [inline] |
Definition at line 79 of file fe.hpp.
References Nodes.
Referenced by Mesh::CheckDisplacements(), DiffusionIntegrator::ComputeElementFlux(), GridFunction::GetBdrValuesFrom(), GridFunction::GetDerivative(), GridFunction::GetValuesFrom(), LagrangeHexFiniteElement::LagrangeHexFiniteElement(), GridFunction::ProjectBdrCoefficient(), GridFunction::ProjectBdrCoefficientNormal(), GridFunction::ProjectCoefficient(), and GridFunction::ProjectVectorFieldOn().
int FiniteElement::GetOrder | ( | ) | const [inline] |
Returns the order of the finite element.
Definition at line 60 of file fe.hpp.
References Order.
Referenced by DivDivIntegrator::AssembleElementMatrix(), VectorFEMassIntegrator::AssembleElementMatrix(), CurlCurlIntegrator::AssembleElementMatrix(), VectorMassIntegrator::AssembleElementMatrix(), ConvectionIntegrator::AssembleElementMatrix(), MassIntegrator::AssembleElementMatrix(), DiffusionIntegrator::AssembleElementMatrix(), VectorDivergenceIntegrator::AssembleElementMatrix2(), VectorFEMassIntegrator::AssembleElementMatrix2(), DerivativeIntegrator::AssembleElementMatrix2(), VectorFECurlIntegrator::AssembleElementMatrix2(), VectorFEDivergenceIntegrator::AssembleElementMatrix2(), MassIntegrator::AssembleElementMatrix2(), VectorFEBoundaryFluxLFIntegrator::AssembleRHSElementVect(), VectorBoundaryFluxLFIntegrator::AssembleRHSElementVect(), VectorFEDomainLFIntegrator::AssembleRHSElementVect(), VectorBoundaryLFIntegrator::AssembleRHSElementVect(), VectorDomainLFIntegrator::AssembleRHSElementVect(), BoundaryLFIntegrator::AssembleRHSElementVect(), DomainLFIntegrator::AssembleRHSElementVect(), Lagrange1DFiniteElement::CalcDShape(), Lagrange1DFiniteElement::CalcShape(), DiffusionIntegrator::ComputeFluxEnergy(), GridFunction::ComputeH1Error(), GridFunction::ComputeL1Error(), GridFunction::ComputeL2Error(), GridFunction::ComputeMaxError(), GridFunction::ComputeW11Error(), FiniteElementSpace::GetOrder(), NURBSFECollection::GetOrder(), IsoparametricTransformation::OrderGrad(), IsoparametricTransformation::OrderJ(), IsoparametricTransformation::OrderW(), and GridFunction::ProjectBdrCoefficientNormal().
int FiniteElement::GetRangeType | ( | ) | const [inline] |
Definition at line 65 of file fe.hpp.
References RangeType.
Referenced by GridFunction::GetDivergence(), GridFunction::GetNodalValues(), GridFunction::GetVectorValue(), GridFunction::GetVectorValues(), NodalFiniteElement::Project(), VectorFiniteElement::Project_ND(), VectorFiniteElement::Project_RT(), and GridFunction::VectorDim().
void FiniteElement::Project | ( | Coefficient & | coeff, |
ElementTransformation & | Trans, | ||
Vector & | dofs | ||
) | const [virtual] |
Given a coefficient and a transformation, compute its projection (approximation) in the local finite dimensional space in terms of the degrees of freedom.
Reimplemented in NodalFiniteElement, and BiQuadPos2DFiniteElement.
Definition at line 69 of file fe.cpp.
References mfem_error().
Referenced by IdentityInterpolator::AssembleElementMatrix2(), GridFunction::ProjectBdrCoefficientTangent(), and GridFunction::ProjectCoefficient().
void FiniteElement::Project | ( | const FiniteElement & | fe, |
ElementTransformation & | Trans, | ||
DenseMatrix & | I | ||
) | const [virtual] |
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.
Reimplemented in NodalFiniteElement, RT_QuadrilateralElement, RT_HexahedronElement, RT_TriangleElement, RT_TetrahedronElement, ND_HexahedronElement, ND_QuadrilateralElement, ND_TetrahedronElement, and ND_TriangleElement.
Definition at line 87 of file fe.cpp.
References mfem_error().
void FiniteElement::Project | ( | VectorCoefficient & | vc, |
ElementTransformation & | Trans, | ||
Vector & | dofs | ||
) | const [virtual] |
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)
Reimplemented in NodalFiniteElement, BiQuadPos2DFiniteElement, RT0TriangleFiniteElement, RT0QuadFiniteElement, RT1TriangleFiniteElement, RT1QuadFiniteElement, RT2QuadFiniteElement, Nedelec1HexFiniteElement, Nedelec1TetFiniteElement, RT0HexFiniteElement, RT1HexFiniteElement, RT0TetFiniteElement, RT_QuadrilateralElement, RT_HexahedronElement, RT_TriangleElement, RT_TetrahedronElement, ND_HexahedronElement, ND_QuadrilateralElement, ND_TetrahedronElement, and ND_TriangleElement.
Definition at line 75 of file fe.cpp.
References mfem_error().
void FiniteElement::ProjectCurl | ( | const FiniteElement & | fe, |
ElementTransformation & | Trans, | ||
DenseMatrix & | curl | ||
) | const [virtual] |
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.
Reimplemented in RT_HexahedronElement, and RT_TetrahedronElement.
Definition at line 102 of file fe.cpp.
References mfem_error().
Referenced by CurlInterpolator::AssembleElementMatrix2().
void FiniteElement::ProjectDelta | ( | int | vertex, |
Vector & | dofs | ||
) | const [virtual] |
Compute a representation (up to multiplicative constant) for the delta function at the vertex with the given index.
Reimplemented in Linear2DFiniteElement, BiLinear2DFiniteElement, GaussLinear2DFiniteElement, GaussBiLinear2DFiniteElement, P1OnQuadFiniteElement, Quad2DFiniteElement, BiQuad2DFiniteElement, BiQuadPos2DFiniteElement, P0TriangleFiniteElement, P0QuadFiniteElement, Linear3DFiniteElement, TriLinear3DFiniteElement, CrouzeixRaviartFiniteElement, P0TetFiniteElement, P0HexFiniteElement, L2_SegmentElement, L2_QuadrilateralElement, and L2_HexahedronElement.
Definition at line 81 of file fe.cpp.
References mfem_error().
Referenced by GridFunction::ProjectCoefficient().
void FiniteElement::ProjectDiv | ( | const FiniteElement & | fe, |
ElementTransformation & | Trans, | ||
DenseMatrix & | div | ||
) | const [virtual] |
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.
Reimplemented in NodalFiniteElement.
Definition at line 110 of file fe.cpp.
References mfem_error().
Referenced by DivergenceInterpolator::AssembleElementMatrix2().
void FiniteElement::ProjectGrad | ( | const FiniteElement & | fe, |
ElementTransformation & | Trans, | ||
DenseMatrix & | grad | ||
) | const [virtual] |
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.
Reimplemented in NodalFiniteElement, RT_QuadrilateralElement, RT_TriangleElement, ND_HexahedronElement, ND_QuadrilateralElement, ND_TetrahedronElement, and ND_TriangleElement.
Definition at line 94 of file fe.cpp.
References mfem_error().
Referenced by GradientInterpolator::AssembleElementMatrix2().
int FiniteElement::Space | ( | ) | const [inline] |
Returns the type of space on each element.
Definition at line 63 of file fe.hpp.
References FuncSpace.
Referenced by VectorDiffusionIntegrator::AssembleElementMatrix(), CurlCurlIntegrator::AssembleElementMatrix(), VectorMassIntegrator::AssembleElementMatrix(), MassIntegrator::AssembleElementMatrix(), DiffusionIntegrator::AssembleElementMatrix(), DerivativeIntegrator::AssembleElementMatrix2(), IsoparametricTransformation::OrderGrad(), IsoparametricTransformation::OrderJ(), and IsoparametricTransformation::OrderW().
int FiniteElement::Dim [protected] |
Definition at line 36 of file fe.hpp.
Referenced by ND_TetrahedronElement::CalcCurlShape(), L2_TetrahedronElement::CalcDShape(), L2_TriangleElement::CalcDShape(), H1_TetrahedronElement::CalcDShape(), H1_TriangleElement::CalcDShape(), ND_TriangleElement::CalcVShape(), ND_TetrahedronElement::CalcVShape(), RT_TetrahedronElement::CalcVShape(), RT_TriangleElement::CalcVShape(), VectorFiniteElement::CalcVShape_ND(), VectorFiniteElement::CalcVShape_RT(), FiniteElement(), GetDim(), RT0TetFiniteElement::GetLocalInterpolation(), RT1HexFiniteElement::GetLocalInterpolation(), RT0HexFiniteElement::GetLocalInterpolation(), Nedelec1TetFiniteElement::GetLocalInterpolation(), Nedelec1HexFiniteElement::GetLocalInterpolation(), RT2QuadFiniteElement::GetLocalInterpolation(), RT1QuadFiniteElement::GetLocalInterpolation(), RT1TriangleFiniteElement::GetLocalInterpolation(), RT0QuadFiniteElement::GetLocalInterpolation(), RT0TriangleFiniteElement::GetLocalInterpolation(), H1_TetrahedronElement::H1_TetrahedronElement(), H1_TriangleElement::H1_TriangleElement(), L2_TetrahedronElement::L2_TetrahedronElement(), L2_TriangleElement::L2_TriangleElement(), VectorFiniteElement::LocalInterpolation_ND(), VectorFiniteElement::LocalInterpolation_RT(), ND_TetrahedronElement::ND_TetrahedronElement(), ND_TriangleElement::ND_TriangleElement(), NodalFiniteElement::NodalLocalInterpolation(), NURBSFiniteElement::NURBSFiniteElement(), RT0TetFiniteElement::Project(), RT1HexFiniteElement::Project(), RT0HexFiniteElement::Project(), RT2QuadFiniteElement::Project(), RT1QuadFiniteElement::Project(), RT1TriangleFiniteElement::Project(), RT0QuadFiniteElement::Project(), RT0TriangleFiniteElement::Project(), NodalFiniteElement::Project(), VectorFiniteElement::Project_ND(), VectorFiniteElement::Project_RT(), VectorFiniteElement::ProjectCurl_RT(), NodalFiniteElement::ProjectGrad(), VectorFiniteElement::ProjectGrad_ND(), VectorFiniteElement::ProjectGrad_RT(), RT_TetrahedronElement::RT_TetrahedronElement(), and RT_TriangleElement::RT_TriangleElement().
int FiniteElement::Dof [protected] |
Definition at line 36 of file fe.hpp.
Referenced by ND_TetrahedronElement::CalcCurlShape(), RT_TetrahedronElement::CalcDivShape(), RT_TriangleElement::CalcDivShape(), NURBS3DFiniteElement::CalcDShape(), NURBS2DFiniteElement::CalcDShape(), NURBS1DFiniteElement::CalcDShape(), L2_TetrahedronElement::CalcDShape(), L2_TriangleElement::CalcDShape(), L2_SegmentElement::CalcDShape(), H1_TetrahedronElement::CalcDShape(), H1_TriangleElement::CalcDShape(), LagrangeHexFiniteElement::CalcDShape(), L2_TetrahedronElement::CalcShape(), L2_TriangleElement::CalcShape(), H1_TetrahedronElement::CalcShape(), H1_TriangleElement::CalcShape(), LagrangeHexFiniteElement::CalcShape(), ND_TriangleElement::CalcVShape(), ND_TetrahedronElement::CalcVShape(), RT_TetrahedronElement::CalcVShape(), RT_TriangleElement::CalcVShape(), VectorFiniteElement::CalcVShape_ND(), VectorFiniteElement::CalcVShape_RT(), FiniteElement(), GetDof(), RT0TetFiniteElement::GetLocalInterpolation(), RT1HexFiniteElement::GetLocalInterpolation(), RT0HexFiniteElement::GetLocalInterpolation(), Nedelec1TetFiniteElement::GetLocalInterpolation(), Nedelec1HexFiniteElement::GetLocalInterpolation(), RT2QuadFiniteElement::GetLocalInterpolation(), RT1QuadFiniteElement::GetLocalInterpolation(), RT1TriangleFiniteElement::GetLocalInterpolation(), RT0QuadFiniteElement::GetLocalInterpolation(), RT0TriangleFiniteElement::GetLocalInterpolation(), H1_TetrahedronElement::H1_TetrahedronElement(), H1_TriangleElement::H1_TriangleElement(), L2_TetrahedronElement::L2_TetrahedronElement(), L2_TriangleElement::L2_TriangleElement(), LagrangeHexFiniteElement::LagrangeHexFiniteElement(), VectorFiniteElement::LocalInterpolation_ND(), VectorFiniteElement::LocalInterpolation_RT(), ND_HexahedronElement::ND_HexahedronElement(), ND_QuadrilateralElement::ND_QuadrilateralElement(), ND_TetrahedronElement::ND_TetrahedronElement(), ND_TriangleElement::ND_TriangleElement(), NodalFiniteElement::NodalLocalInterpolation(), NURBSFiniteElement::NURBSFiniteElement(), NodalFiniteElement::Project(), VectorFiniteElement::Project_ND(), VectorFiniteElement::Project_RT(), VectorFiniteElement::ProjectCurl_RT(), NodalFiniteElement::ProjectDiv(), NodalFiniteElement::ProjectGrad(), VectorFiniteElement::ProjectGrad_ND(), VectorFiniteElement::ProjectGrad_RT(), RT_HexahedronElement::RT_HexahedronElement(), RT_QuadrilateralElement::RT_QuadrilateralElement(), RT_TetrahedronElement::RT_TetrahedronElement(), and RT_TriangleElement::RT_TriangleElement().
int FiniteElement::FuncSpace [protected] |
Definition at line 36 of file fe.hpp.
Referenced by FiniteElement(), and Space().
int FiniteElement::GeomType [protected] |
Definition at line 36 of file fe.hpp.
Referenced by FiniteElement(), GetGeomType(), VectorFiniteElement::LocalInterpolation_ND(), and VectorFiniteElement::LocalInterpolation_RT().
IntegrationRule FiniteElement::Nodes [protected] |
Definition at line 37 of file fe.hpp.
Referenced by BiCubic2DFiniteElement::BiCubic2DFiniteElement(), BiLinear2DFiniteElement::BiLinear2DFiniteElement(), BiQuad2DFiniteElement::BiQuad2DFiniteElement(), BiQuadPos2DFiniteElement::BiQuadPos2DFiniteElement(), CrouzeixRaviartFiniteElement::CrouzeixRaviartFiniteElement(), CrouzeixRaviartQuadFiniteElement::CrouzeixRaviartQuadFiniteElement(), Cubic1DFiniteElement::Cubic1DFiniteElement(), Cubic2DFiniteElement::Cubic2DFiniteElement(), Cubic3DFiniteElement::Cubic3DFiniteElement(), GaussBiLinear2DFiniteElement::GaussBiLinear2DFiniteElement(), GaussBiQuad2DFiniteElement::GaussBiQuad2DFiniteElement(), GaussLinear2DFiniteElement::GaussLinear2DFiniteElement(), GaussQuad2DFiniteElement::GaussQuad2DFiniteElement(), RT0TetFiniteElement::GetLocalInterpolation(), RT1HexFiniteElement::GetLocalInterpolation(), RT0HexFiniteElement::GetLocalInterpolation(), Nedelec1TetFiniteElement::GetLocalInterpolation(), Nedelec1HexFiniteElement::GetLocalInterpolation(), RT2QuadFiniteElement::GetLocalInterpolation(), RT1QuadFiniteElement::GetLocalInterpolation(), RT1TriangleFiniteElement::GetLocalInterpolation(), RT0QuadFiniteElement::GetLocalInterpolation(), RT0TriangleFiniteElement::GetLocalInterpolation(), GetNodes(), H1_HexahedronElement::H1_HexahedronElement(), H1_QuadrilateralElement::H1_QuadrilateralElement(), H1_SegmentElement::H1_SegmentElement(), H1_TetrahedronElement::H1_TetrahedronElement(), H1_TriangleElement::H1_TriangleElement(), L2_HexahedronElement::L2_HexahedronElement(), L2_QuadrilateralElement::L2_QuadrilateralElement(), L2_SegmentElement::L2_SegmentElement(), L2_TetrahedronElement::L2_TetrahedronElement(), L2_TriangleElement::L2_TriangleElement(), Lagrange1DFiniteElement::Lagrange1DFiniteElement(), LagrangeHexFiniteElement::LagrangeHexFiniteElement(), Linear1DFiniteElement::Linear1DFiniteElement(), Linear2DFiniteElement::Linear2DFiniteElement(), Linear3DFiniteElement::Linear3DFiniteElement(), VectorFiniteElement::LocalInterpolation_ND(), VectorFiniteElement::LocalInterpolation_RT(), ND_HexahedronElement::ND_HexahedronElement(), ND_QuadrilateralElement::ND_QuadrilateralElement(), ND_TetrahedronElement::ND_TetrahedronElement(), ND_TriangleElement::ND_TriangleElement(), Nedelec1HexFiniteElement::Nedelec1HexFiniteElement(), Nedelec1TetFiniteElement::Nedelec1TetFiniteElement(), NodalFiniteElement::NodalLocalInterpolation(), P0HexFiniteElement::P0HexFiniteElement(), P0QuadFiniteElement::P0QuadFiniteElement(), P0SegmentFiniteElement::P0SegmentFiniteElement(), P0TetFiniteElement::P0TetFiniteElement(), P0TriangleFiniteElement::P0TriangleFiniteElement(), P1OnQuadFiniteElement::P1OnQuadFiniteElement(), P1SegmentFiniteElement::P1SegmentFiniteElement(), P1TetNonConfFiniteElement::P1TetNonConfFiniteElement(), P2SegmentFiniteElement::P2SegmentFiniteElement(), PointFiniteElement::PointFiniteElement(), RT0TetFiniteElement::Project(), RT1HexFiniteElement::Project(), RT0HexFiniteElement::Project(), Nedelec1TetFiniteElement::Project(), Nedelec1HexFiniteElement::Project(), RT2QuadFiniteElement::Project(), RT1QuadFiniteElement::Project(), RT1TriangleFiniteElement::Project(), RT0QuadFiniteElement::Project(), RT0TriangleFiniteElement::Project(), BiQuadPos2DFiniteElement::Project(), NodalFiniteElement::Project(), VectorFiniteElement::Project_ND(), VectorFiniteElement::Project_RT(), VectorFiniteElement::ProjectCurl_RT(), NodalFiniteElement::ProjectDiv(), NodalFiniteElement::ProjectGrad(), VectorFiniteElement::ProjectGrad_ND(), VectorFiniteElement::ProjectGrad_RT(), Quad1DFiniteElement::Quad1DFiniteElement(), Quad2DFiniteElement::Quad2DFiniteElement(), QuadPos1DFiniteElement::QuadPos1DFiniteElement(), Quadratic3DFiniteElement::Quadratic3DFiniteElement(), RefinedBiLinear2DFiniteElement::RefinedBiLinear2DFiniteElement(), RefinedLinear1DFiniteElement::RefinedLinear1DFiniteElement(), RefinedLinear2DFiniteElement::RefinedLinear2DFiniteElement(), RefinedLinear3DFiniteElement::RefinedLinear3DFiniteElement(), RefinedTriLinear3DFiniteElement::RefinedTriLinear3DFiniteElement(), RotTriLinearHexFiniteElement::RotTriLinearHexFiniteElement(), RT0HexFiniteElement::RT0HexFiniteElement(), RT0QuadFiniteElement::RT0QuadFiniteElement(), RT0TetFiniteElement::RT0TetFiniteElement(), RT0TriangleFiniteElement::RT0TriangleFiniteElement(), RT1HexFiniteElement::RT1HexFiniteElement(), RT1QuadFiniteElement::RT1QuadFiniteElement(), RT1TriangleFiniteElement::RT1TriangleFiniteElement(), RT2QuadFiniteElement::RT2QuadFiniteElement(), RT2TriangleFiniteElement::RT2TriangleFiniteElement(), RT_HexahedronElement::RT_HexahedronElement(), RT_QuadrilateralElement::RT_QuadrilateralElement(), RT_TetrahedronElement::RT_TetrahedronElement(), RT_TriangleElement::RT_TriangleElement(), and TriLinear3DFiniteElement::TriLinear3DFiniteElement().
int FiniteElement::Order [protected] |
Definition at line 36 of file fe.hpp.
Referenced by ND_TetrahedronElement::CalcCurlShape(), ND_HexahedronElement::CalcCurlShape(), RT_TetrahedronElement::CalcDivShape(), RT_TriangleElement::CalcDivShape(), RT_HexahedronElement::CalcDivShape(), RT_QuadrilateralElement::CalcDivShape(), NURBS3DFiniteElement::CalcDShape(), NURBS2DFiniteElement::CalcDShape(), NURBS1DFiniteElement::CalcDShape(), L2_TetrahedronElement::CalcDShape(), L2_TriangleElement::CalcDShape(), L2_HexahedronElement::CalcDShape(), L2_QuadrilateralElement::CalcDShape(), H1_TetrahedronElement::CalcDShape(), H1_TriangleElement::CalcDShape(), H1_HexahedronElement::CalcDShape(), H1_QuadrilateralElement::CalcDShape(), H1_SegmentElement::CalcDShape(), NURBS3DFiniteElement::CalcShape(), NURBS2DFiniteElement::CalcShape(), NURBS1DFiniteElement::CalcShape(), L2_TetrahedronElement::CalcShape(), L2_TriangleElement::CalcShape(), L2_HexahedronElement::CalcShape(), L2_QuadrilateralElement::CalcShape(), H1_TetrahedronElement::CalcShape(), H1_TriangleElement::CalcShape(), H1_HexahedronElement::CalcShape(), H1_QuadrilateralElement::CalcShape(), H1_SegmentElement::CalcShape(), ND_TriangleElement::CalcVShape(), ND_TetrahedronElement::CalcVShape(), ND_QuadrilateralElement::CalcVShape(), ND_HexahedronElement::CalcVShape(), RT_TetrahedronElement::CalcVShape(), RT_TriangleElement::CalcVShape(), RT_HexahedronElement::CalcVShape(), RT_QuadrilateralElement::CalcVShape(), FiniteElement(), GetOrder(), L2_HexahedronElement::ProjectDelta(), L2_QuadrilateralElement::ProjectDelta(), and L2_SegmentElement::ProjectDelta().
int FiniteElement::RangeType [protected] |
Definition at line 36 of file fe.hpp.
Referenced by FiniteElement(), GetRangeType(), and VectorFiniteElement::VectorFiniteElement().