Chi-Tech
chi_math::cell_mapping::LagrangeTetMapping Class Reference

#include <LagrangeTetMapping.h>

Inheritance diagram for chi_math::cell_mapping::LagrangeTetMapping:
chi_math::cell_mapping::LagrangeBaseMapping chi_math::CellMapping

Public Member Functions

 LagrangeTetMapping (const chi_mesh::MeshContinuum &grid, const chi_mesh::Cell &cell, const Quadrature &volume_quadrature, const Quadrature &surface_quadrature)
 
- Public Member Functions inherited from chi_math::cell_mapping::LagrangeBaseMapping
double ShapeValue (int i, const chi_mesh::Vector3 &xyz) const override
 
void ShapeValues (const chi_mesh::Vector3 &xyz, std::vector< double > &shape_values) const override
 
chi_mesh::Vector3 GradShapeValue (int i, const chi_mesh::Vector3 &xyz) const override
 
void GradShapeValues (const chi_mesh::Vector3 &xyz, std::vector< chi_mesh::Vector3 > &gradshape_values) const override
 
finite_element::VolumetricQuadraturePointData MakeVolumetricQuadraturePointData () const override
 
finite_element::SurfaceQuadraturePointData MakeSurfaceQuadraturePointData (size_t face_index) const override
 
- Public Member Functions inherited from chi_math::CellMapping
const chi_mesh::CellReferenceCell () const
 
const chi_mesh::MeshContinuumReferenceGrid () const
 
size_t NumNodes () const
 
size_t NumFaceNodes (size_t face_index) const
 
const std::vector< std::vector< int > > & GetFaceNodeMappings () const
 
double CellVolume () const
 
double FaceArea (size_t face_index) const
 
int MapFaceNode (size_t face_index, size_t face_node_index) const
 
virtual double ShapeValue (int i, const chi_mesh::Vector3 &xyz) const =0
 
virtual void ShapeValues (const chi_mesh::Vector3 &xyz, std::vector< double > &shape_values) const =0
 
virtual chi_mesh::Vector3 GradShapeValue (int i, const chi_mesh::Vector3 &xyz) const =0
 
virtual void GradShapeValues (const chi_mesh::Vector3 &xyz, std::vector< chi_mesh::Vector3 > &gradshape_values) const =0
 
const std::vector< chi_mesh::Vector3 > & GetNodeLocations () const
 
virtual finite_element::VolumetricQuadraturePointData MakeVolumetricQuadraturePointData () const =0
 
virtual finite_element::SurfaceQuadraturePointData MakeSurfaceQuadraturePointData (size_t face_index) const =0
 
virtual ~CellMapping ()=default
 

Protected Member Functions

double RefShape (uint32_t i, const Vec3 &qpoint) const override
 
Vec3 RefGradShape (uint32_t i, const Vec3 &qpoint) const override
 
MatDbl RefJacobian (const Vec3 &qpoint) const override
 
Vec3 FaceToElementQPointConversion (size_t face_index, const Vec3 &qpoint_face) const override
 
std::pair< double, Vec3RefFaceJacobianDeterminantAndNormal (size_t face_index, const Vec3 &qpoint_face) const override
 
- Protected Member Functions inherited from chi_math::cell_mapping::LagrangeBaseMapping
 LagrangeBaseMapping (const chi_mesh::MeshContinuum &grid, const chi_mesh::Cell &cell, size_t num_nodes, std::vector< std::vector< int > > face_node_mappings, const Quadrature &volume_quadrature, const Quadrature &surface_quadrature)
 
Vec3 MapWorldXYZToNaturalXYZ (const Vec3 &world_xyz) const
 
virtual double RefShape (uint32_t i, const Vec3 &qpoint) const =0
 
virtual Vec3 RefGradShape (uint32_t i, const Vec3 &qpoint) const =0
 
virtual MatDbl RefJacobian (const Vec3 &qpoint) const =0
 
virtual std::pair< double, Vec3RefFaceJacobianDeterminantAndNormal (size_t face_index, const Vec3 &qpoint_face) const
 
virtual Vec3 FaceToElementQPointConversion (size_t face_index, const Vec3 &qpoint_face) const =0
 
virtual const QuadratureGetSurfaceQuadrature (size_t face_index) const
 
- Protected Member Functions inherited from chi_math::CellMapping
 CellMapping (const chi_mesh::MeshContinuum &grid, const chi_mesh::Cell &cell, size_t num_nodes, std::vector< chi_mesh::Vector3 > node_locations, std::vector< std::vector< int > > face_node_mappings, const VandAFunction &volume_area_function)
 

Additional Inherited Members

- Protected Types inherited from chi_math::cell_mapping::LagrangeBaseMapping
typedef chi_mesh::Vector3 Vec3
 
typedef std::vector< double > VecDbl
 
typedef std::vector< VecDblMatDbl
 
- Protected Types inherited from chi_math::CellMapping
typedef std::function< void(const chi_mesh::MeshContinuum &, const chi_mesh::Cell &, double &, std::vector< double > &)> VandAFunction
 
- Static Protected Member Functions inherited from chi_math::cell_mapping::LagrangeBaseMapping
static std::vector< chi_mesh::Vector3GetVertexLocations (const chi_mesh::MeshContinuum &grid, const chi_mesh::Cell &cell)
 
static std::vector< std::vector< int > > MakeFaceNodeMapping (const chi_mesh::Cell &cell)
 
- Static Protected Member Functions inherited from chi_math::CellMapping
static void ComputeCellVolumeAndAreas (const chi_mesh::MeshContinuum &grid, const chi_mesh::Cell &cell, double &volume, std::vector< double > &areas)
 
- Protected Attributes inherited from chi_math::cell_mapping::LagrangeBaseMapping
const Quadraturevolume_quadrature_
 
const Quadraturesurface_quadrature_
 
- Protected Attributes inherited from chi_math::CellMapping
const chi_mesh::MeshContinuumref_grid_
 
const chi_mesh::Cellcell_
 
const size_t num_nodes_
 
const std::vector< chi_mesh::Vector3node_locations_
 
double volume_ = 0.0
 
std::vector< double > areas_
 
const std::vector< std::vector< int > > face_node_mappings_
 

Detailed Description

Lagrange element mapping for a tetrahedron.

Definition at line 11 of file LagrangeTetMapping.h.

Constructor & Destructor Documentation

◆ LagrangeTetMapping()

chi_math::cell_mapping::LagrangeTetMapping::LagrangeTetMapping ( const chi_mesh::MeshContinuum grid,
const chi_mesh::Cell cell,
const Quadrature volume_quadrature,
const Quadrature surface_quadrature 
)

Definition at line 10 of file LagrangeTetMapping.cc.

Member Function Documentation

◆ FaceToElementQPointConversion()

LagrangeBaseMapping::Vec3 chi_math::cell_mapping::LagrangeTetMapping::FaceToElementQPointConversion ( size_t  face_index,
const Vec3 qpoint_face 
) const
overrideprotectedvirtual

Converts a face quadrature point to a reference element position allowing the reuse of the reference element shape functions. Meant to be overridden by a specific element mapping.

Implements chi_math::cell_mapping::LagrangeBaseMapping.

Definition at line 112 of file LagrangeTetMapping.cc.

◆ RefFaceJacobianDeterminantAndNormal()

std::pair< double, LagrangeBaseMapping::Vec3 > chi_math::cell_mapping::LagrangeTetMapping::RefFaceJacobianDeterminantAndNormal ( size_t  face_index,
const Vec3 qpoint_face 
) const
overrideprotectedvirtual

Computes the determinant of the surface Jacobian and the surface normal at the face quadrature point.

Reimplemented from chi_math::cell_mapping::LagrangeBaseMapping.

Definition at line 82 of file LagrangeTetMapping.cc.

◆ RefGradShape()

chi_mesh::Vector3 chi_math::cell_mapping::LagrangeTetMapping::RefGradShape ( uint32_t  i,
const Vec3 qpoint 
) const
overrideprotectedvirtual

Reference element shape function gradient evaluation. Meant to be overridden by a specific element mapping.

Implements chi_math::cell_mapping::LagrangeBaseMapping.

Definition at line 39 of file LagrangeTetMapping.cc.

◆ RefJacobian()

LagrangeBaseMapping::MatDbl chi_math::cell_mapping::LagrangeTetMapping::RefJacobian ( const Vec3 qpoint) const
overrideprotectedvirtual

Reference element Jacobian evaluation. Meant to be overridden by a specific element mapping.

Implements chi_math::cell_mapping::LagrangeBaseMapping.

Definition at line 53 of file LagrangeTetMapping.cc.

◆ RefShape()

double chi_math::cell_mapping::LagrangeTetMapping::RefShape ( uint32_t  i,
const Vec3 qpoint 
) const
overrideprotectedvirtual

Reference element shape function evaluation. Meant to be overridden by a specific element mapping.

Implements chi_math::cell_mapping::LagrangeBaseMapping.

Definition at line 23 of file LagrangeTetMapping.cc.


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