Caribou
Public Types | Public Member Functions | Static Public Attributes | Protected Attributes | Friends | List of all members
caribou::geometry::BaseSegment< Derived > Struct Template Reference
Inheritance diagram for caribou::geometry::BaseSegment< Derived >:
caribou::geometry::Element< Derived > caribou::geometry::Segment< _Dimension, Linear > caribou::geometry::Segment< _Dimension, Quadratic >

Public Types

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

 BaseSegment ()=default
 Default empty constructor.
 
template<typename EigenType , REQUIRES(EigenType::RowsAtCompileTime==NumberOfNodesAtCompileTime) >
 BaseSegment (Eigen::EigenBase< EigenType > &nodes)
 Constructor from an Eigen matrix containing the positions of the segment's nodes.
 
template<typename EigenType , REQUIRES(EigenType::RowsAtCompileTime==NumberOfNodesAtCompileTime) >
 BaseSegment (const Eigen::EigenBase< EigenType > &nodes)
 Constructor from an Eigen matrix containing the positions of the segment's nodes.
 
template<typename EigenType , int Options, typename StrideType >
 BaseSegment (const Eigen::Ref< EigenType, Options, StrideType > &nodes)
 Constructor from an Eigen matrix reference containing the positions of the segment's nodes.
 
template<typename ... Nodes>
 BaseSegment (const WorldCoordinates &first_node, Nodes &&...remaining_nodes)
 Constructor from a serie of nodes.
 
- 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::Element< Derived >
static constexpr auto CanonicalDimension
 
static constexpr auto Dimension
 
static constexpr auto NumberOfNodesAtCompileTime
 
static constexpr auto NumberOfGaussNodesAtCompileTime
 

Protected Attributes

Matrix< NumberOfNodesAtCompileTime, Dimension > p_nodes
 

Friends

struct Element< Derived >
 

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