#include <hexahedron.hh>
Public Types | |
typedef F | type |
enum | intFormType { ZERO , ONE , TWO , THREE } |
Public Member Functions | |
Hexahedron (concepts::Hexahedron3d &cell, const ushort *p, concepts::TColumn< Real > *T0, concepts::TColumn< Real > *T1) | |
virtual const concepts::Hexahedron & | support () const |
virtual concepts::Real3d | vertex (uint i) const |
virtual const concepts::Hexahedron3d & | cell () const |
const concepts::Karniadakis< 1, 0 > * | shpfctX () const |
Returns the shape functions in x direction. | |
const concepts::Karniadakis< 1, 0 > * | shpfctY () const |
Returns the shape functions in y direction. | |
const concepts::Karniadakis< 1, 0 > * | shpfctZ () const |
Returns the shape functions in z direction. | |
const concepts::Karniadakis< 1, 1 > * | shpfctDX () const |
Returns the derivatives of the shape functions in x direction. | |
const concepts::Karniadakis< 1, 1 > * | shpfctDY () const |
Returns the shape functions in y direction. | |
const concepts::Karniadakis< 1, 1 > * | shpfctDZ () const |
Returns the shape functions in z direction. | |
const concepts::QuadratureRule1d * | integrationX () const |
Returns the integration rule in x direction. | |
const concepts::QuadratureRule1d * | integrationY () const |
Returns the integration rule in y direction. | |
const concepts::QuadratureRule1d * | integrationZ () const |
Returns the integration rule in z direction. | |
concepts::Real3d | chi (const Real x, const Real y, const Real z) const |
concepts::MapReal3d | jacobian (const Real x, const Real y, const Real z) const |
Computes the Jacobian. | |
concepts::MapReal3d | jacobianInverse (const Real x, const Real y, const Real z) const |
Computes the inverse of the Jacobian. | |
Real | jacobianDeterminant (const Real x, const Real y, const Real z) const |
Computes the determinant of the Jacobian. | |
concepts::MapReal3d | hessian (const uint i, const Real x, const Real y, const Real z) const |
Computes the Hessian. | |
void | setStrategy (const concepts::Hex3dSubdivision *strategy=0) |
const concepts::Hex3dSubdivision * | getStrategy () const |
virtual const concepts::ElementGraphics< Real > * | graphics () const |
virtual bool | operator< (const Element< Real > &elm) const |
bool | hasSameMatrix (const Hexahedron &elm) const |
void | edgeP (const uint i, const concepts::AdaptiveControlP< 1 > &p) |
Set polynomial degree of edge i to p . | |
const concepts::AdaptiveControlP< 1 > & | edgeP (const uint i) const |
Get polynomial degree of edge i . | |
void | faceP (const uint i, const concepts::AdaptiveControlP< 2 > &p) |
Set polynomial degree of face i to p . | |
const concepts::AdaptiveControlP< 2 > & | faceP (const uint i) const |
Get polynomial degree of face i . | |
virtual bool | quadraturePoint (uint i, intPoint &p, intFormType form, bool localCoord) const |
void | recomputeShapefunctions () |
void | recomputeShapefunctions (const uint nq[2]) |
const ushort * | p () const |
virtual const concepts::TMatrix< Real > & | T () const |
Returns the T matrix of the element. | |
void | appendT (concepts::TColumn< Real > *T) |
Appends the T columns to the T matrix. | |
virtual bool | operator< (const Element< F > &elm) const =0 |
Comparison operator for elements. | |
Real3d | elemMap (const Real coord_local) const |
Real3d | elemMap (const Real2d &coord_local) const |
Real3d | elemMap (const Real3d &coord_local) const |
uint & | tag () |
Returns the tag. | |
Static Public Member Functions | |
static concepts::QuadRuleFactory & | rule () |
Protected Member Functions | |
virtual std::ostream & | info (std::ostream &os) const |
Returns information in an output stream. | |
void | computeShapefunctions_ (const concepts::QuadratureRule1d *intX, const concepts::QuadratureRule1d *intY, const concepts::QuadratureRule1d *intZ) |
gets the shapefunctions, used in both constructors | |
Protected Attributes | |
concepts::TMatrix< Real > | T_ |
T matrix of the element. | |
A 3D FEM element: a hexahedron.
Definition at line 37 of file hexahedron.hh.
|
inherited |
Definition at line 81 of file element.hh.
|
inherited |
Integration form, which determines terms coming from integration over reference element
Definition at line 29 of file integral.hh.
hp3D::Hexahedron::Hexahedron | ( | concepts::Hexahedron3d & | cell, |
const ushort * | p, | ||
concepts::TColumn< Real > * | T0, | ||
concepts::TColumn< Real > * | T1 | ||
) |
Constructor
cell | Cell on which the element is defined |
p | Polynomial degree (can be anisotropic), this array must have at least 3 entries. |
T0 | Part of the T matrix |
T1 | Part of the T matrix |
|
inlineinherited |
Appends the T columns to the T matrix.
Definition at line 62 of file element.hh.
|
inlinevirtual |
Returns the cell on which the element is built. Possible are tetrahedrons, hexahedron, prims and pyramids.
Implements hp3D::Element< F >.
Definition at line 56 of file hexahedron.hh.
|
inline |
Computes the element map. The reference element is the unit cube.
Definition at line 101 of file hexahedron.hh.
|
inline |
Get polynomial degree of edge i
.
Definition at line 169 of file hexahedron.hh.
|
inline |
Set polynomial degree of edge i
to p
.
Definition at line 164 of file hexahedron.hh.
|
inlineinherited |
Definition at line 86 of file element.hh.
|
inlineinherited |
Definition at line 90 of file element.hh.
|
inlineinherited |
Definition at line 94 of file element.hh.
|
inline |
Get polynomial degree of face i
.
Definition at line 180 of file hexahedron.hh.
|
inline |
Set polynomial degree of face i
to p
.
Definition at line 175 of file hexahedron.hh.
|
inline |
Returns the subdivision strategy of the underlying cell of this element.
Definition at line 148 of file hexahedron.hh.
|
virtual |
Reimplemented from concepts::Element< F >.
bool hp3D::Hexahedron::hasSameMatrix | ( | const Hexahedron & | elm | ) | const |
Returns true if element matrix is the same. This method returns true if the element matrix of this element and elm
are the same. To find this out, the length of the edges and their angles and the polynomial degrees are compared.
|
inline |
Computes the Hessian.
Definition at line 126 of file hexahedron.hh.
|
protectedvirtual |
Returns information in an output stream.
Reimplemented from hp3D::Element< F >.
|
inline |
Returns the integration rule in x direction.
Definition at line 87 of file hexahedron.hh.
|
inline |
Returns the integration rule in y direction.
Definition at line 91 of file hexahedron.hh.
|
inline |
Returns the integration rule in z direction.
Definition at line 95 of file hexahedron.hh.
|
inline |
Computes the Jacobian.
Definition at line 107 of file hexahedron.hh.
|
inline |
Computes the determinant of the Jacobian.
Definition at line 121 of file hexahedron.hh.
|
inline |
Computes the inverse of the Jacobian.
Definition at line 115 of file hexahedron.hh.
|
inlineinherited |
Returns the polynomial degree. The returned array has 3 elements.
Definition at line 51 of file element.hh.
|
virtual |
Delivers a quadrature point.
Quadrature point consists of coordinates (for evaluation of formulas) and intermediate data, consisting of the weight and term coming from mapping.
Returns false
, if the number of quadrature points is overstepped.
i | number of quadrature point |
intPoint | data given back |
form | Integration form |
localCoord | If true, local coordinates are returned. Else physical coordinates. |
Implements concepts::IntegrationCell.
|
inlinestatic |
Access to the quadrature rule, which is valid for all elements of this type (hp3D::Hexaedron).
Change of the quadrature rule is put into practice for newly created elements and for already created elements by precomputing the integration points and shape functions on them.
Definition at line 193 of file hexahedron.hh.
|
inline |
Sets the subdivision strategy of the underlying cell of this element. It calls Quad2d::setStrategy.
strategy | Pointer to an instance of a subdivision strategy. |
StrategyChange | if the change is not allowed (the change is not allowed if there are children present) |
Definition at line 140 of file hexahedron.hh.
|
inline |
Returns the derivatives of the shape functions in x direction.
Definition at line 74 of file hexahedron.hh.
|
inline |
Returns the shape functions in y direction.
Definition at line 78 of file hexahedron.hh.
|
inline |
Returns the shape functions in z direction.
Definition at line 82 of file hexahedron.hh.
|
inline |
Returns the shape functions in x direction.
Definition at line 61 of file hexahedron.hh.
|
inline |
Returns the shape functions in y direction.
Definition at line 65 of file hexahedron.hh.
|
inline |
Returns the shape functions in z direction.
Definition at line 69 of file hexahedron.hh.
|
inlinevirtual |
Returns the topolgical support of the element. Possible supports for an element are hexahedrons, tetrahedrons, prisms and pyramids.
Implements hp3D::Element< F >.
Definition at line 50 of file hexahedron.hh.
|
inlinevirtualinherited |
Returns the T matrix of the element.
Implements concepts::ElementWithCell< F >.
Definition at line 59 of file element.hh.
|
inlineinherited |
Returns the tag.
Definition at line 66 of file element.hh.
|
inlinevirtual |
Returns the coordinates of the ith vertex of this element.
i | Index of the vertex |
Implements hp3D::Element< F >.
Definition at line 53 of file hexahedron.hh.
|
protectedinherited |
T matrix of the element.
Definition at line 81 of file element.hh.