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

#include <PieceWiseLinearPolyhedronMapping.h>

Inheritance diagram for chi_math::cell_mapping::PieceWiseLinearPolyhedronMapping:
chi_math::cell_mapping::PieceWiseLinearBaseMapping chi_math::CellMapping

Data Structures

struct  FEface_data
 
struct  FEnodeFaceMap
 
struct  FEnodeMap
 
struct  FEnodeSideMap
 
struct  FEside_data3d
 

Public Member Functions

 PieceWiseLinearPolyhedronMapping (const chi_mesh::Cell &polyh_cell, const chi_mesh::MeshContinuum &ref_grid, const QuadratureTetrahedron &volume_quadrature, const QuadratureTriangle &surface_quadrature)
 
finite_element::VolumetricQuadraturePointData MakeVolumetricQuadraturePointData () const override
 
finite_element::SurfaceQuadraturePointData MakeSurfaceQuadraturePointData (size_t face_index) const override
 
double ShapeValue (int i, const chi_mesh::Vector3 &xyz) const override
 
chi_mesh::Vector3 GradShapeValue (int i, const chi_mesh::Vector3 &xyz) const override
 
void ShapeValues (const chi_mesh::Vector3 &xyz, std::vector< double > &shape_values) const override
 
void GradShapeValues (const chi_mesh::Vector3 &xyz, std::vector< chi_mesh::Vector3 > &gradshape_values) const override
 
- Public Member Functions inherited from chi_math::cell_mapping::PieceWiseLinearBaseMapping
 PieceWiseLinearBaseMapping (const chi_mesh::MeshContinuum &grid, const chi_mesh::Cell &cell, size_t num_nodes, std::vector< std::vector< int > > face_node_mappings)
 
- 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
 

Private Member Functions

double FaceSideShape (uint32_t face_index, uint32_t side_index, uint32_t i, const chi_mesh::Vector3 &qpoint, bool on_surface=false) const
 
double FaceSideGradShape_x (uint32_t face_index, uint32_t side_index, uint32_t i) const
 
double FaceSideGradShape_y (uint32_t face_index, uint32_t side_index, uint32_t i) const
 
double FaceSideGradShape_z (uint32_t face_index, uint32_t side_index, uint32_t i) const
 

Static Private Member Functions

static double TetShape (uint32_t index, const chi_mesh::Vector3 &qpoint, bool on_surface=false)
 
static double TetGradShape_x (uint32_t index)
 
static double TetGradShape_y (uint32_t index)
 
static double TetGradShape_z (uint32_t index)
 

Private Attributes

std::vector< double > face_betaf_
 Face Beta-factor. More...
 
double alphac_
 Cell alpha-factor. More...
 
std::vector< FEface_dataface_data_
 Holds determinants and data tet-by-tet. More...
 
std::vector< FEnodeMapnode_side_maps_
 Maps nodes to side tets. More...
 
const QuadratureTetrahedronvolume_quadrature_
 
const QuadratureTrianglesurface_quadrature_
 

Additional Inherited Members

- Public Types inherited from chi_math::cell_mapping::PieceWiseLinearBaseMapping
typedef std::vector< double > VecDbl
 
typedef std::vector< chi_mesh::Vector3VecVec3
 
- Protected Types inherited from chi_math::CellMapping
typedef std::function< void(const chi_mesh::MeshContinuum &, const chi_mesh::Cell &, double &, std::vector< double > &)> VandAFunction
 
- 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)
 
- Static Protected Member Functions inherited from chi_math::cell_mapping::PieceWiseLinearBaseMapping
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::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

Object for handling piecewise linear shape functions on polyhedron shaped 3D cells.

Definition at line 15 of file PieceWiseLinearPolyhedronMapping.h.

Constructor & Destructor Documentation

◆ PieceWiseLinearPolyhedronMapping()

chi_math::cell_mapping::PieceWiseLinearPolyhedronMapping::PieceWiseLinearPolyhedronMapping ( const chi_mesh::Cell polyh_cell,
const chi_mesh::MeshContinuum ref_grid,
const QuadratureTetrahedron volume_quadrature,
const QuadratureTriangle surface_quadrature 
)

Constructor for the Piecewise Linear Polyhedron cell finite elment view.

Definition at line 16 of file pwl_polyhedron_00_constrdestr.cc.

Member Function Documentation

◆ FaceSideGradShape_x()

double chi_math::cell_mapping::PieceWiseLinearPolyhedronMapping::FaceSideGradShape_x ( uint32_t  face_index,
uint32_t  side_index,
uint32_t  i 
) const
private

Precomputes the gradx-shape function values of a face-side pair at a quadrature point

Definition at line 31 of file pwl_polyhedron_01b_sidevalues.cc.

◆ FaceSideGradShape_y()

double chi_math::cell_mapping::PieceWiseLinearPolyhedronMapping::FaceSideGradShape_y ( uint32_t  face_index,
uint32_t  side_index,
uint32_t  i 
) const
private

Precomputes the grady-shape function values of a face-side pair at a quadrature point

Definition at line 73 of file pwl_polyhedron_01b_sidevalues.cc.

◆ FaceSideGradShape_z()

double chi_math::cell_mapping::PieceWiseLinearPolyhedronMapping::FaceSideGradShape_z ( uint32_t  face_index,
uint32_t  side_index,
uint32_t  i 
) const
private

Precomputes the gradz-shape function values of a face-side pair at a quadrature point

Definition at line 115 of file pwl_polyhedron_01b_sidevalues.cc.

◆ FaceSideShape()

double chi_math::cell_mapping::PieceWiseLinearPolyhedronMapping::FaceSideShape ( uint32_t  face_index,
uint32_t  side_index,
uint32_t  i,
const chi_mesh::Vector3 qpoint,
bool  on_surface = false 
) const
private

Precomputes the shape function values of a face-side pair at a quadrature point

Definition at line 8 of file pwl_polyhedron_01b_sidevalues.cc.

◆ GradShapeValue()

chi_mesh::Vector3 chi_math::cell_mapping::PieceWiseLinearPolyhedronMapping::GradShapeValue ( int  i,
const chi_mesh::Vector3 xyz 
) const
overridevirtual

Returns the evaluation of grad-shape function i at the supplied point.

Implements chi_math::CellMapping.

Definition at line 108 of file pwl_polyhedron_02_xyz_shapefuncs.cc.

◆ GradShapeValues()

void chi_math::cell_mapping::PieceWiseLinearPolyhedronMapping::GradShapeValues ( const chi_mesh::Vector3 xyz,
std::vector< chi_mesh::Vector3 > &  gradshape_values 
) const
overridevirtual

Populates gradshape_values with the value of each shape function's gradient evaluated at the supplied point.

Implements chi_math::CellMapping.

Definition at line 171 of file pwl_polyhedron_02_xyz_shapefuncs.cc.

◆ MakeSurfaceQuadraturePointData()

finite_element::SurfaceQuadraturePointData chi_math::cell_mapping::PieceWiseLinearPolyhedronMapping::MakeSurfaceQuadraturePointData ( size_t  face_index) const
overridevirtual

Makes the surface quadrature point data for this element, at the specified face.

Implements chi_math::CellMapping.

Definition at line 89 of file pwl_polyhedron_04_initqpdata.cc.

◆ MakeVolumetricQuadraturePointData()

finite_element::VolumetricQuadraturePointData chi_math::cell_mapping::PieceWiseLinearPolyhedronMapping::MakeVolumetricQuadraturePointData ( ) const
overridevirtual

Makes the volumetric/internal quadrature point data for this element.

Implements chi_math::CellMapping.

Definition at line 9 of file pwl_polyhedron_04_initqpdata.cc.

◆ ShapeValue()

double chi_math::cell_mapping::PieceWiseLinearPolyhedronMapping::ShapeValue ( int  i,
const chi_mesh::Vector3 xyz 
) const
overridevirtual

Returns the evaluation of shape function i at the supplied point.

Implements chi_math::CellMapping.

Definition at line 11 of file pwl_polyhedron_02_xyz_shapefuncs.cc.

◆ ShapeValues()

void chi_math::cell_mapping::PieceWiseLinearPolyhedronMapping::ShapeValues ( const chi_mesh::Vector3 xyz,
std::vector< double > &  shape_values 
) const
overridevirtual

Populates shape_values with the value of each shape function's value evaluate at the supplied point.

Implements chi_math::CellMapping.

Definition at line 60 of file pwl_polyhedron_02_xyz_shapefuncs.cc.

◆ TetGradShape_x()

double chi_math::cell_mapping::PieceWiseLinearPolyhedronMapping::TetGradShape_x ( uint32_t  index)
staticprivate

Definition at line 20 of file pwl_polyhedron_01a_reftet.cc.

◆ TetGradShape_y()

double chi_math::cell_mapping::PieceWiseLinearPolyhedronMapping::TetGradShape_y ( uint32_t  index)
staticprivate

Definition at line 31 of file pwl_polyhedron_01a_reftet.cc.

◆ TetGradShape_z()

double chi_math::cell_mapping::PieceWiseLinearPolyhedronMapping::TetGradShape_z ( uint32_t  index)
staticprivate

Definition at line 42 of file pwl_polyhedron_01a_reftet.cc.

◆ TetShape()

double chi_math::cell_mapping::PieceWiseLinearPolyhedronMapping::TetShape ( uint32_t  index,
const chi_mesh::Vector3 qpoint,
bool  on_surface = false 
)
staticprivate

Definition at line 6 of file pwl_polyhedron_01a_reftet.cc.

Field Documentation

◆ alphac_

double chi_math::cell_mapping::PieceWiseLinearPolyhedronMapping::alphac_
private

Cell alpha-factor.

Definition at line 122 of file PieceWiseLinearPolyhedronMapping.h.

◆ face_betaf_

std::vector<double> chi_math::cell_mapping::PieceWiseLinearPolyhedronMapping::face_betaf_
private

Face Beta-factor.

Definition at line 121 of file PieceWiseLinearPolyhedronMapping.h.

◆ face_data_

std::vector<FEface_data> chi_math::cell_mapping::PieceWiseLinearPolyhedronMapping::face_data_
private

Holds determinants and data tet-by-tet.

Definition at line 125 of file PieceWiseLinearPolyhedronMapping.h.

◆ node_side_maps_

std::vector<FEnodeMap> chi_math::cell_mapping::PieceWiseLinearPolyhedronMapping::node_side_maps_
private

Maps nodes to side tets.

Definition at line 126 of file PieceWiseLinearPolyhedronMapping.h.

◆ surface_quadrature_

const QuadratureTriangle& chi_math::cell_mapping::PieceWiseLinearPolyhedronMapping::surface_quadrature_
private

Definition at line 129 of file PieceWiseLinearPolyhedronMapping.h.

◆ volume_quadrature_

const QuadratureTetrahedron& chi_math::cell_mapping::PieceWiseLinearPolyhedronMapping::volume_quadrature_
private

Definition at line 128 of file PieceWiseLinearPolyhedronMapping.h.


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