Caribou
Public Types | Public Member Functions | Static Public Attributes | Friends | List of all members
caribou::geometry::Tetrahedron< Linear > Struct Reference

Detailed Description

Linear Tetrahedron.

*                    v
*                  .
*                ,/
*               /
*            2
*          ,/|`\
*        ,/  |  `\
*      ,/    '.   `\
*    ,/       |     `\
*  ,/         |       `\
* 0-----------'.--------1 --> u
*  `\.         |      ,/
*     `\.      |    ,/
*        `\.   '. ,/
*           `\. |/
*              `3
*                 `\.
*                    ` w
* 

#include <Tetrahedron.h>

Inheritance diagram for caribou::geometry::Tetrahedron< Linear >:
caribou::geometry::BaseTetrahedron< Derived > caribou::geometry::Element< Derived >

Public Types

using Base = BaseTetrahedron< Tetrahedron< Linear > >
 
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 >
 
- Public Types inherited from caribou::geometry::BaseTetrahedron< Derived >
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 >
 
- Public Types inherited from caribou::geometry::Element< Derived >
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 >
 

Public Member Functions

auto edges () const
 Get the list of node indices of the edges. More...
 
- Public Member Functions inherited from caribou::geometry::BaseTetrahedron< Derived >
 BaseTetrahedron ()=default
 Default empty constructor.
 
template<typename EigenType , REQUIRES(EigenType::RowsAtCompileTime==NumberOfNodesAtCompileTime) >
 BaseTetrahedron (Eigen::EigenBase< EigenType > &nodes)
 Constructor from an Eigen matrix containing the positions of the tetra's nodes.
 
template<typename EigenType , REQUIRES(EigenType::RowsAtCompileTime==NumberOfNodesAtCompileTime) >
 BaseTetrahedron (const Eigen::EigenBase< EigenType > &nodes)
 Constructor from an Eigen matrix containing the positions of the tetra's nodes.
 
template<typename ... Nodes>
 BaseTetrahedron (const WorldCoordinates &first_node, Nodes &&...remaining_nodes)
 Constructor from a serie of nodes.
 
auto faces () const
 Get the list of node indices of the faces. More...
 
auto frame () const -> Matrix< 3, 3 >
 Extract the orthogonal frame of the element by computing the cross product of the unit vectors from the position of the first node to its projection on opposite faces. More...
 
- Public Member Functions inherited from caribou::geometry::Element< Derived >
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...
 

Static Public Attributes

static constexpr auto CanonicalDimension = Base::CanonicalDimension
 
static constexpr auto Dimension = Base::Dimension
 
static constexpr auto NumberOfNodesAtCompileTime = Base::NumberOfNodesAtCompileTime
 
static constexpr auto NumberOfGaussNodesAtCompileTime = Base::NumberOfGaussNodesAtCompileTime
 
- Static Public Attributes inherited from caribou::geometry::BaseTetrahedron< Derived >
static constexpr auto CanonicalDimension = Base::CanonicalDimension
 
static constexpr auto Dimension = Base::Dimension
 
static constexpr auto NumberOfNodesAtCompileTime = Base::NumberOfNodesAtCompileTime
 
static constexpr auto NumberOfGaussNodesAtCompileTime = Base::NumberOfGaussNodesAtCompileTime
 
- Static Public Attributes inherited from caribou::geometry::Element< Derived >
static constexpr auto CanonicalDimension
 
static constexpr auto Dimension
 
static constexpr auto NumberOfNodesAtCompileTime
 
static constexpr auto NumberOfGaussNodesAtCompileTime
 

Friends

struct Element< Tetrahedron< Linear > >
 
struct BaseTetrahedron< Tetrahedron< Linear > >
 

Additional Inherited Members

- Protected Attributes inherited from caribou::geometry::BaseTetrahedron< Derived >
Matrix< NumberOfNodesAtCompileTime, Dimension > p_nodes
 

Member Function Documentation

◆ edges()

auto caribou::geometry::Tetrahedron< Linear >::edges ( ) const
inline

Get the list of node indices of the edges.

See also
Element::boundary_elements_node_indices

The documentation for this struct was generated from the following file: