Quadratic Rectangular Hexahedron (20 nodes)
* v
* ^
* |
* 3-----10---2
* |\ | |\
* | 19 | | 18
* 11 \ | 9 \
* | 7----14+---6
* | | +-- |-- | ---> u
* 0---+-8-\--1 |
* \ 15 \ \ 13
* 16 | \ 17|
* \| w \|
* 4----12----5 u
*
|
using | Base = BaseRectangularHexahedron< RectangularHexahedron< Quadratic > > |
|
using | LocalCoordinates = typename Base::LocalCoordinates |
|
using | WorldCoordinates = typename Base::WorldCoordinates |
|
using | GaussNode = typename Base::GaussNode |
|
template<UNSIGNED_INTEGER_TYPE Dim> |
using | Vector = typename Base::template Vector< Dim > |
|
template<UNSIGNED_INTEGER_TYPE Rows, UNSIGNED_INTEGER_TYPE Cols> |
using | Matrix = typename Base::template Matrix< Rows, Cols > |
|
using | Base = Element< Derived > |
|
using | LocalCoordinates = typename Base::LocalCoordinates |
|
using | WorldCoordinates = typename Base::WorldCoordinates |
|
using | GaussNode = typename Base::GaussNode |
|
template<UNSIGNED_INTEGER_TYPE Dim> |
using | Vector = typename Base::template Vector< Dim > |
|
template<UNSIGNED_INTEGER_TYPE Rows, UNSIGNED_INTEGER_TYPE Cols> |
using | Matrix = typename Base::template Matrix< Rows, Cols > |
|
using | Size = Vector< 3 > |
|
using | Rotation = Matrix< 3, 3 > |
|
using | Scalar = FLOATING_POINT_TYPE |
|
using | Vector = Eigen::Matrix< Scalar, Dim, 1 > |
|
using | Matrix = Eigen::Matrix< Scalar, Rows, Cols, Options > |
|
using | MatrixI = Eigen::Matrix< Scalar, Rows, Cols, Options > |
|
using | LocalCoordinates = Vector< CanonicalDimension > |
|
using | WorldCoordinates = Vector< Dimension > |
|
|
template<UNSIGNED_INTEGER_TYPE Order> |
| RectangularHexahedron (const Hexahedron< Order > &hexa) |
|
template<typename EigenType , REQUIRES(EigenType::RowsAtCompileTime==NumberOfNodesAtCompileTime) > |
| RectangularHexahedron (Eigen::EigenBase< EigenType > &nodes) |
| Constructor from an Eigen matrix containing the positions of an quadratic hexa nodes.
|
|
template<typename EigenType , REQUIRES(EigenType::RowsAtCompileTime==NumberOfNodesAtCompileTime) > |
| RectangularHexahedron (const Eigen::EigenBase< EigenType > &nodes) |
| Constructor from an Eigen matrix containing the positions of an quadratic hexa nodes.
|
|
template<typename EigenType , REQUIRES(EigenType::RowsAtCompileTime==8) > |
| RectangularHexahedron (Eigen::EigenBase< EigenType > &nodes) |
| Constructor from an Eigen matrix containing the positions of a linear hexa nodes.
|
|
template<typename EigenType , REQUIRES(EigenType::RowsAtCompileTime==8) > |
| RectangularHexahedron (const Eigen::EigenBase< EigenType > &nodes) |
| Constructor from an Eigen matrix containing the positions of a linear hexa nodes.
|
|
auto | edges () const |
| Get the list of node indices of the edges. More...
|
|
| BaseRectangularHexahedron () |
| Default empty constructor.
|
|
| BaseRectangularHexahedron (WorldCoordinates center) |
| Constructor by specifying the center point.
|
|
| BaseRectangularHexahedron (WorldCoordinates center, Size H) |
| Constructor by specifying the center point and the size (hx, hy, hz)
|
|
| BaseRectangularHexahedron (WorldCoordinates center, Rotation R) |
| Constructor by specifying the center point and the rotation.
|
|
| BaseRectangularHexahedron (WorldCoordinates center, Size H, Rotation R) |
| Constructor by specifying the center point, the size (hx, hy, hz) and the rotation.
|
|
auto | faces () const |
| Get the list of node indices of the faces. More...
|
|
auto | rotation () const -> const Rotation & |
| Get the rotation frame of the quad.
|
|
auto | size () const -> const Size & |
| Get the size (hx, hy) of the quad.
|
|
auto | world_coordinates (const LocalCoordinates &coordinates) const -> WorldCoordinates |
| Get the world coordinates of a point from its local coordinates.
|
|
auto | local_coordinates (const WorldCoordinates &coordinates) const -> LocalCoordinates |
| Get the local coordinates of a point from its world coordinates.
|
|
auto | contains (const WorldCoordinates &coordinates) const -> bool |
| Returns true if the given world coordinates are within the hexahedron's boundaries, false otherwise.
|
|
auto | intersects (const Segment< _3D, Linear > &segment, const FLOATING_POINT_TYPE eps=EPSILON) const -> bool |
| Test if the cube intersects the given 3D segment (in world coordinates) More...
|
|
auto | intersects (const Triangle< _3D, Linear > &t, const FLOATING_POINT_TYPE eps=1e-10) const -> bool |
| Test if the cube intersects the given 3D triangle (in world coordinates) More...
|
|
auto | number_of_nodes () const -> UNSIGNED_INTEGER_TYPE |
| Get the number of nodes in the element.
|
|
auto | number_of_gauss_nodes () const -> UNSIGNED_INTEGER_TYPE |
| Get the number of gauss nodes in the element.
|
|
auto | node (const UNSIGNED_INTEGER_TYPE &index) const |
| Get the Node at given index.
|
|
auto | nodes () const |
| Get the set of nodes.
|
|
auto | gauss_node (const UNSIGNED_INTEGER_TYPE &index) const -> const GaussNode & |
| Get the gauss node at given index.
|
|
auto | gauss_nodes () const -> const std::vector< GaussNode > & |
| Get the set of gauss nodes.
|
|
auto | number_of_boundary_elements () const |
| Get the number of boundary elements (ex. More...
|
|
auto | boundary_elements_node_indices () const -> const auto & |
| Get the list of node indices of the boundary elements. More...
|
|
auto | boundary_element (const UNSIGNED_INTEGER_TYPE &boundary_id) const |
| Construct and return the given boundary element. More...
|
|
auto | L (const LocalCoordinates &xi) const -> Vector< NumberOfNodesAtCompileTime > |
| Get the Lagrange polynomial values evaluated at local coordinates xi w.r.t each element's interpolation nodes. More...
|
|
auto | dL (const LocalCoordinates &xi) const -> Matrix< NumberOfNodesAtCompileTime, CanonicalDimension > |
| Get the Lagrange polynomial derivatives w.r.t the local frame {dL/du} evaluated at local coordinates {u} w.r.t each segment's interpolation nodes. More...
|
|
auto | center () const -> WorldCoordinates |
| Get the position at the center of the element.
|
|
auto | world_coordinates (const LocalCoordinates &coordinates) const -> WorldCoordinates |
| Get the world coordinates of a point from its local coordinates.
|
|
auto | local_coordinates (const WorldCoordinates &coordinates) const -> LocalCoordinates |
| Get the local coordinates of a point from its world coordinates by doing a set of Newton-Raphson iterations. More...
|
|
auto | local_coordinates (const WorldCoordinates &coordinates, const LocalCoordinates &starting_point, const FLOATING_POINT_TYPE &residual_tolerance, const UNSIGNED_INTEGER_TYPE &maximum_number_of_iterations) const -> LocalCoordinates |
| Get the local coordinates of a point from its world coordinates by doing a set of Newton-Raphson iterations. More...
|
|
auto | contains_local (const LocalCoordinates &xi, const FLOATING_POINT_TYPE &eps=1e-10) const -> bool |
| Return true if the element contains the point located at the given local coordinates. More...
|
|
auto | interpolate (const LocalCoordinates &coordinates, const Eigen::MatrixBase< MatrixType > &values) const |
| Interpolate a value at local coordinates from the given interpolation node values. More...
|
|
auto | jacobian (const LocalCoordinates &coordinates) const -> Matrix< Dimension, CanonicalDimension > |
| Compute the Jacobian matrix of the transformation T(xi)-> x evaluated at local coordinates xi. More...
|
|