IBAMR  IBAMR version 0.19.
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
IBTK::Tri6Mapping Class Referenceabstract

#include <ibtk/FEMapping.h>

Inheritance diagram for IBTK::Tri6Mapping:
Inheritance graph
[legend]

Public Types

using key_type = quadrature_key_type
 

Public Member Functions

 Tri6Mapping (const key_type quad_key, const FEUpdateFlags update_flags)
 
virtual void reinit (const libMesh::Elem *elem) override
 
virtual const std::vector< double > & getJxW () const override
 
virtual const std::vector< double > & getJxW () const=0
 
virtual const std::vector< libMesh::Point > & getQuadraturePoints () const override
 
virtual const std::vector< libMesh::Point > & getQuadraturePoints () const=0
 
virtual const std::vector< Eigen::Matrix< double, spacedim, dim > > & getContravariants () const override
 
virtual const std::vector< Eigen::Matrix< double, spacedim, dim > > & getContravariants () const=0
 
virtual const std::vector< Eigen::Matrix< double, spacedim, dim > > & getCovariants () const override
 
virtual const std::vector< Eigen::Matrix< double, spacedim, dim > > & getCovariants () const=0
 
std::unique_ptr< FEMapping< 2, 2 > > build (const key_type key, const FEUpdateFlags update_flags)
 
std::unique_ptr< FEMapping< 3, 3 > > build (const key_type key, const FEUpdateFlags update_flags)
 

Static Public Member Functions

static std::unique_ptr< FEMapping< dim, spacedim > > build (const key_type key, const FEUpdateFlags update_flags)
 

Protected Member Functions

virtual void fillTransforms (const libMesh::Elem *elem) override
 
virtual bool isAffine () const
 
virtual void fillJacobians () override
 
virtual void fillJxW () override
 
virtual void fillQuadraturePoints (const libMesh::Elem *elem) override
 

Static Protected Member Functions

static bool elem_is_affine (const libMesh::Elem *elem)
 

Protected Attributes

Tri3Mapping tri3_mapping
 
const int d_n_nodes
 
boost::multi_array< std::array< double, dim >, 2 > d_dphi
 
const QuadratureData d_quadrature_data
 
FEUpdateFlags d_update_flags
 
std::vector< Eigen::Matrix< double, spacedim, dim > > d_contravariants
 
std::vector< Eigen::Matrix< double, spacedim, dim > > d_covariants
 
std::vector< doubled_Jacobians
 
std::vector< doubled_JxW
 
std::vector< libMesh::Point > d_quadrature_points
 
PointMap< dim, spacedim, n_nodes > d_point_map
 

Detailed Description

Specialization for TRI6 elements with codimension zero.

Member Typedef Documentation

◆ key_type

Key type. Completely describes (excepting p-refinement) a libMesh quadrature rule.

Constructor & Destructor Documentation

◆ Tri6Mapping()

IBTK::Tri6Mapping::Tri6Mapping ( const key_type  quad_key,
const FEUpdateFlags  update_flags 
)

Constructor.

Member Function Documentation

◆ reinit()

virtual void IBTK::Tri6Mapping::reinit ( const libMesh::Elem *  elem)
overridevirtual

Recalculate relevant quantities for the provided element.

Reimplemented from IBTK::FENodalMapping< dim, spacedim, n_nodes >.

◆ elem_is_affine()

static bool IBTK::Tri6Mapping::elem_is_affine ( const libMesh::Elem *  elem)
staticprotected

Utility function that determines if the element is affine (i.e., all nodes at edge midpoints are averages of corners)

◆ fillTransforms()

virtual void IBTK::FELagrangeMapping< dim, spacedim, n_nodes >::fillTransforms ( const libMesh::Elem *  elem)
overrideprotectedvirtualinherited

Compute the contravariants and covariants. In general each mapping will have to overload this function.

Implements IBTK::FEMapping< dim, dim >.

◆ getJxW() [1/2]

template<int dim, int spacedim = dim, int n_nodes = -1>
virtual const std::vector<double>& IBTK::FENodalMapping< dim, spacedim, n_nodes >::getJxW ( ) const
inlineoverridevirtualinherited

◆ getJxW() [2/2]

virtual const std::vector<double>& IBTK::FEMapping< dim, spacedim >::getJxW ( ) const
pure virtualinherited

Get the current jacobian times quadrature weight (JxW) values.

◆ getQuadraturePoints() [1/2]

template<int dim, int spacedim = dim, int n_nodes = -1>
virtual const std::vector<libMesh::Point>& IBTK::FENodalMapping< dim, spacedim, n_nodes >::getQuadraturePoints ( ) const
inlineoverridevirtualinherited

◆ getQuadraturePoints() [2/2]

virtual const std::vector<libMesh::Point>& IBTK::FEMapping< dim, spacedim >::getQuadraturePoints ( ) const
pure virtualinherited

Get the positions of the quadrature points on the current element.

◆ getContravariants() [1/2]

template<int dim, int spacedim = dim, int n_nodes = -1>
virtual const std::vector<Eigen::Matrix<double, spacedim, dim> >& IBTK::FENodalMapping< dim, spacedim, n_nodes >::getContravariants ( ) const
inlineoverridevirtualinherited

◆ getContravariants() [2/2]

virtual const std::vector<Eigen::Matrix<double, spacedim, dim> >& IBTK::FEMapping< dim, spacedim >::getContravariants ( ) const
pure virtualinherited

Get the contravariants.

◆ getCovariants() [1/2]

template<int dim, int spacedim = dim, int n_nodes = -1>
virtual const std::vector<Eigen::Matrix<double, spacedim, dim> >& IBTK::FENodalMapping< dim, spacedim, n_nodes >::getCovariants ( ) const
inlineoverridevirtualinherited

◆ getCovariants() [2/2]

virtual const std::vector<Eigen::Matrix<double, spacedim, dim> >& IBTK::FEMapping< dim, spacedim >::getCovariants ( ) const
pure virtualinherited

Get the covariants.

◆ isAffine()

template<int dim, int spacedim = dim, int n_nodes = -1>
virtual bool IBTK::FENodalMapping< dim, spacedim, n_nodes >::isAffine ( ) const
protectedvirtualinherited

Boolean indicating that the mapping is affine - if it is we can skip some computations. The default implementation returns false. Inheriting classes should overload this they represent affine mappings.

◆ fillJacobians()

template<int dim, int spacedim = dim, int n_nodes = -1>
virtual void IBTK::FENodalMapping< dim, spacedim, n_nodes >::fillJacobians ( )
overrideprotectedvirtualinherited

Compute determinants of contravariants (the Jacobians). The default implementation given here is usually the correct one.

Implements IBTK::FEMapping< dim, dim >.

◆ fillJxW()

template<int dim, int spacedim = dim, int n_nodes = -1>
virtual void IBTK::FENodalMapping< dim, spacedim, n_nodes >::fillJxW ( )
overrideprotectedvirtualinherited

Compute JxW values. The default implementation given here is usually the correct one.

Implements IBTK::FEMapping< dim, dim >.

◆ fillQuadraturePoints()

template<int dim, int spacedim = dim, int n_nodes = -1>
virtual void IBTK::FENodalMapping< dim, spacedim, n_nodes >::fillQuadraturePoints ( const libMesh::Elem *  elem)
overrideprotectedvirtualinherited

Compute the positions of quadrature points on the current element.

Implements IBTK::FEMapping< dim, dim >.

◆ build() [1/3]

static std::unique_ptr<FEMapping<dim, spacedim> > IBTK::FEMapping< dim, spacedim >::build ( const key_type  key,
const FEUpdateFlags  update_flags 
)
staticinherited

Return a pointer to the correct mapping for a given quadrature key and update flags object.

◆ build() [2/3]

std::unique_ptr< FEMapping< 2, 2 > > IBTK::FEMapping< 2, 2 >::build ( const key_type  key,
const FEUpdateFlags  update_flags 
)
inherited

◆ build() [3/3]

std::unique_ptr< FEMapping< 3, 3 > > IBTK::FEMapping< 3, 3 >::build ( const key_type  key,
const FEUpdateFlags  update_flags 
)
inherited

Member Data Documentation

◆ tri3_mapping

Tri3Mapping IBTK::Tri6Mapping::tri3_mapping
protected

TRI3 mapping that is used whenever the given elem is affine.

◆ d_n_nodes

const int IBTK::FELagrangeMapping< dim, spacedim, n_nodes >::d_n_nodes
protectedinherited

Number of nodes for the considered element type.

◆ d_dphi

boost::multi_array<std::array<double, dim>, 2> IBTK::FELagrangeMapping< dim, spacedim, n_nodes >::d_dphi
protectedinherited

Values of shape function gradients on the reference element at quadrature points.

◆ d_quadrature_data

template<int dim, int spacedim = dim, int n_nodes = -1>
const QuadratureData IBTK::FENodalMapping< dim, spacedim, n_nodes >::d_quadrature_data
protectedinherited

Information on the relevant quadrature rule.

◆ d_update_flags

template<int dim, int spacedim = dim, int n_nodes = -1>
FEUpdateFlags IBTK::FENodalMapping< dim, spacedim, n_nodes >::d_update_flags
protectedinherited

Computed update flags for the mapping.

◆ d_contravariants

template<int dim, int spacedim = dim, int n_nodes = -1>
std::vector<Eigen::Matrix<double, spacedim, dim> > IBTK::FENodalMapping< dim, spacedim, n_nodes >::d_contravariants
protectedinherited

Array of contravariants.

◆ d_covariants

template<int dim, int spacedim = dim, int n_nodes = -1>
std::vector<Eigen::Matrix<double, spacedim, dim> > IBTK::FENodalMapping< dim, spacedim, n_nodes >::d_covariants
protectedinherited

Array of covariants (i.e., the transpose of the inverse of the covariants when dim == spacedim)

◆ d_Jacobians

template<int dim, int spacedim = dim, int n_nodes = -1>
std::vector<double> IBTK::FENodalMapping< dim, spacedim, n_nodes >::d_Jacobians
protectedinherited

Array of Jacobians.

◆ d_JxW

template<int dim, int spacedim = dim, int n_nodes = -1>
std::vector<double> IBTK::FENodalMapping< dim, spacedim, n_nodes >::d_JxW
protectedinherited

Array of JxW values.

◆ d_quadrature_points

template<int dim, int spacedim = dim, int n_nodes = -1>
std::vector<libMesh::Point> IBTK::FENodalMapping< dim, spacedim, n_nodes >::d_quadrature_points
protectedinherited

Array of mapped quadrature points.

◆ d_point_map

template<int dim, int spacedim = dim, int n_nodes = -1>
PointMap<dim, spacedim, n_nodes> IBTK::FENodalMapping< dim, spacedim, n_nodes >::d_point_map
protectedinherited

Object that computes quadrature point locations. This is sufficiently different from the rest of the mapping code that it is implemented in another class.


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