MFEM v2.0
|
#include <fe.hpp>
Public Member Functions | |
RT_TetrahedronElement (const int p) | |
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 | GetLocalInterpolation (ElementTransformation &Trans, DenseMatrix &I) const |
virtual void | Project (VectorCoefficient &vc, ElementTransformation &Trans, Vector &dofs) const |
virtual void | Project (const FiniteElement &fe, ElementTransformation &Trans, DenseMatrix &I) const |
virtual void | ProjectCurl (const FiniteElement &fe, ElementTransformation &Trans, DenseMatrix &curl) const |
Private Attributes | |
static const double | c = 1./4. |
Vector | shape_x |
Vector | shape_y |
Vector | shape_z |
Vector | shape_l |
Vector | dshape_x |
Vector | dshape_y |
Vector | dshape_z |
Vector | dshape_l |
DenseMatrix | u |
Vector | divu |
Array< int > | dof2nk |
DenseMatrix | T |
Static Private Attributes | |
static const double | nk [12] |
RT_TetrahedronElement::RT_TetrahedronElement | ( | const int | p | ) |
Definition at line 7593 of file fe.cpp.
References c, Poly_1D::CalcBasis(), FiniteElement::Dim, divu, FiniteElement::Dof, dof2nk, dshape_l, dshape_x, dshape_y, dshape_z, IntegrationRule::IntPoint(), DenseMatrix::Invert(), nk, FiniteElement::Nodes, Poly_1D::OpenPoints(), IntegrationPoint::Set3(), DenseMatrix::SetSize(), Vector::SetSize(), shape_l, shape_x, shape_y, shape_z, T, u, IntegrationPoint::x, IntegrationPoint::y, and IntegrationPoint::z.
void RT_TetrahedronElement::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 from FiniteElement.
Definition at line 7729 of file fe.cpp.
References c, Poly_1D::CalcBasis(), divu, FiniteElement::Dof, dshape_l, dshape_x, dshape_y, dshape_z, DenseMatrix::Mult, FiniteElement::Order, shape_l, shape_x, shape_y, shape_z, T, IntegrationPoint::x, IntegrationPoint::y, and IntegrationPoint::z.
virtual void RT_TetrahedronElement::CalcVShape | ( | ElementTransformation & | Trans, |
DenseMatrix & | shape | ||
) | const [inline, virtual] |
Reimplemented from FiniteElement.
Definition at line 1530 of file fe.hpp.
References VectorFiniteElement::CalcVShape_RT().
void RT_TetrahedronElement::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 from FiniteElement.
Definition at line 7693 of file fe.cpp.
References c, Poly_1D::CalcBasis(), FiniteElement::Dim, FiniteElement::Dof, Mult(), FiniteElement::Order, shape_l, shape_x, shape_y, shape_z, T, u, IntegrationPoint::x, IntegrationPoint::y, and IntegrationPoint::z.
virtual void RT_TetrahedronElement::GetLocalInterpolation | ( | ElementTransformation & | Trans, |
DenseMatrix & | I | ||
) | const [inline, 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 from FiniteElement.
Definition at line 1535 of file fe.hpp.
References dof2nk, VectorFiniteElement::LocalInterpolation_RT(), and nk.
virtual void RT_TetrahedronElement::Project | ( | VectorCoefficient & | vc, |
ElementTransformation & | Trans, | ||
Vector & | dofs | ||
) | const [inline, 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 from FiniteElement.
Definition at line 1539 of file fe.hpp.
References dof2nk, nk, and VectorFiniteElement::Project_RT().
virtual void RT_TetrahedronElement::Project | ( | const FiniteElement & | fe, |
ElementTransformation & | Trans, | ||
DenseMatrix & | I | ||
) | const [inline, 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 from FiniteElement.
Definition at line 1542 of file fe.hpp.
References dof2nk, nk, and VectorFiniteElement::Project_RT().
virtual void RT_TetrahedronElement::ProjectCurl | ( | const FiniteElement & | fe, |
ElementTransformation & | Trans, | ||
DenseMatrix & | curl | ||
) | const [inline, 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 from FiniteElement.
Definition at line 1545 of file fe.hpp.
References dof2nk, nk, and VectorFiniteElement::ProjectCurl_RT().
const double RT_TetrahedronElement::c = 1./4. [private] |
Definition at line 1515 of file fe.hpp.
Referenced by CalcDivShape(), CalcVShape(), and RT_TetrahedronElement().
Vector RT_TetrahedronElement::divu [mutable, private] |
Definition at line 1521 of file fe.hpp.
Referenced by CalcDivShape(), and RT_TetrahedronElement().
Array<int> RT_TetrahedronElement::dof2nk [private] |
Definition at line 1523 of file fe.hpp.
Referenced by GetLocalInterpolation(), Project(), ProjectCurl(), and RT_TetrahedronElement().
Vector RT_TetrahedronElement::dshape_l [mutable, private] |
Definition at line 1519 of file fe.hpp.
Referenced by CalcDivShape(), and RT_TetrahedronElement().
Vector RT_TetrahedronElement::dshape_x [mutable, private] |
Definition at line 1519 of file fe.hpp.
Referenced by CalcDivShape(), and RT_TetrahedronElement().
Vector RT_TetrahedronElement::dshape_y [mutable, private] |
Definition at line 1519 of file fe.hpp.
Referenced by CalcDivShape(), and RT_TetrahedronElement().
Vector RT_TetrahedronElement::dshape_z [mutable, private] |
Definition at line 1519 of file fe.hpp.
Referenced by CalcDivShape(), and RT_TetrahedronElement().
const double RT_TetrahedronElement::nk [static, private] |
{ 1,1,1, -1,0,0, 0,-1,0, 0,0,-1 }
Definition at line 1515 of file fe.hpp.
Referenced by GetLocalInterpolation(), Project(), ProjectCurl(), and RT_TetrahedronElement().
Vector RT_TetrahedronElement::shape_l [mutable, private] |
Definition at line 1518 of file fe.hpp.
Referenced by CalcDivShape(), CalcVShape(), and RT_TetrahedronElement().
Vector RT_TetrahedronElement::shape_x [mutable, private] |
Definition at line 1518 of file fe.hpp.
Referenced by CalcDivShape(), CalcVShape(), and RT_TetrahedronElement().
Vector RT_TetrahedronElement::shape_y [mutable, private] |
Definition at line 1518 of file fe.hpp.
Referenced by CalcDivShape(), CalcVShape(), and RT_TetrahedronElement().
Vector RT_TetrahedronElement::shape_z [mutable, private] |
Definition at line 1518 of file fe.hpp.
Referenced by CalcDivShape(), CalcVShape(), and RT_TetrahedronElement().
DenseMatrix RT_TetrahedronElement::T [private] |
Definition at line 1524 of file fe.hpp.
Referenced by CalcDivShape(), CalcVShape(), and RT_TetrahedronElement().
DenseMatrix RT_TetrahedronElement::u [mutable, private] |
Definition at line 1520 of file fe.hpp.
Referenced by CalcVShape(), and RT_TetrahedronElement().