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

#include <PieceWiseLinearPolygonMapping.h>

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

Data Structures

struct  FEside_data2d
 

Public Member Functions

 PieceWiseLinearPolygonMapping (const chi_mesh::Cell &poly_cell, const chi_mesh::MeshContinuum &ref_grid, const QuadratureTriangle &volume_quadrature, const QuadratureLine &surface_quadrature)
 
finite_element::VolumetricQuadraturePointData MakeVolumetricQuadraturePointData () const override
 
finite_element::SurfaceQuadraturePointData MakeSurfaceQuadraturePointData (size_t face_index) const override
 
double SideGradShape_x (uint32_t side, uint32_t i) const
 
double SideGradShape_y (uint32_t side, uint32_t i) const
 
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 SideShape (uint32_t side, uint32_t i, const chi_mesh::Vector3 &qpoint, bool on_surface=false) const
 

Static Private Member Functions

static double TriShape (uint32_t index, const chi_mesh::Vector3 &qpoint, bool on_surface=false)
 

Private Attributes

std::vector< FEside_data2dsides_
 
const QuadratureTrianglevolume_quadrature_
 
const QuadratureLinesurface_quadrature_
 
int num_of_subtris_
 
double beta_
 
chi_mesh::Vertex vc_
 
std::vector< std::vector< int > > node_to_side_map_
 

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 polygon shaped 2D cells.

Definition at line 16 of file PieceWiseLinearPolygonMapping.h.

Constructor & Destructor Documentation

◆ PieceWiseLinearPolygonMapping()

chi_math::cell_mapping::PieceWiseLinearPolygonMapping::PieceWiseLinearPolygonMapping ( const chi_mesh::Cell poly_cell,
const chi_mesh::MeshContinuum ref_grid,
const QuadratureTriangle volume_quadrature,
const QuadratureLine surface_quadrature 
)

Constructor.

Definition at line 11 of file pwl_polygon_00_constrdestr.cc.

Member Function Documentation

◆ GradShapeValue()

chi_mesh::Vector3 chi_math::cell_mapping::PieceWiseLinearPolygonMapping::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 95 of file pwl_polygon_02_xy_shapefunc.cc.

◆ GradShapeValues()

void chi_math::cell_mapping::PieceWiseLinearPolygonMapping::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 142 of file pwl_polygon_02_xy_shapefunc.cc.

◆ MakeSurfaceQuadraturePointData()

finite_element::SurfaceQuadraturePointData chi_math::cell_mapping::PieceWiseLinearPolygonMapping::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 80 of file pwl_polygon_04_initqpdata.cc.

◆ MakeVolumetricQuadraturePointData()

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

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

Implements chi_math::CellMapping.

Definition at line 9 of file pwl_polygon_04_initqpdata.cc.

◆ ShapeValue()

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

Returns the value of the shape function given cartesian coordinates.

Implements chi_math::CellMapping.

Definition at line 12 of file pwl_polygon_02_xy_shapefunc.cc.

◆ ShapeValues()

void chi_math::cell_mapping::PieceWiseLinearPolygonMapping::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 53 of file pwl_polygon_02_xy_shapefunc.cc.

◆ SideGradShape_x()

double chi_math::cell_mapping::PieceWiseLinearPolygonMapping::SideGradShape_x ( uint32_t  side,
uint32_t  i 
) const

Precomputation of the partial derivative along x of the shape function at a quadrature point.

Definition at line 53 of file pwl_polygon_01_reftriangle.cc.

◆ SideGradShape_y()

double chi_math::cell_mapping::PieceWiseLinearPolygonMapping::SideGradShape_y ( uint32_t  side,
uint32_t  i 
) const

Precomputation of the partial derivative along y of the shape function at a quadrature point.

Definition at line 80 of file pwl_polygon_01_reftriangle.cc.

◆ SideShape()

double chi_math::cell_mapping::PieceWiseLinearPolygonMapping::SideShape ( uint32_t  side,
uint32_t  i,
const chi_mesh::Vector3 qpoint,
bool  on_surface = false 
) const
private

Precomputation of the shape function at a quadrature point.

Definition at line 36 of file pwl_polygon_01_reftriangle.cc.

◆ TriShape()

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

Definition at line 6 of file pwl_polygon_01_reftriangle.cc.

Field Documentation

◆ beta_

double chi_math::cell_mapping::PieceWiseLinearPolygonMapping::beta_
private

Definition at line 78 of file PieceWiseLinearPolygonMapping.h.

◆ node_to_side_map_

std::vector<std::vector<int> > chi_math::cell_mapping::PieceWiseLinearPolygonMapping::node_to_side_map_
private

Definition at line 80 of file PieceWiseLinearPolygonMapping.h.

◆ num_of_subtris_

int chi_math::cell_mapping::PieceWiseLinearPolygonMapping::num_of_subtris_
private

Definition at line 77 of file PieceWiseLinearPolygonMapping.h.

◆ sides_

std::vector<FEside_data2d> chi_math::cell_mapping::PieceWiseLinearPolygonMapping::sides_
private

Definition at line 73 of file PieceWiseLinearPolygonMapping.h.

◆ surface_quadrature_

const QuadratureLine& chi_math::cell_mapping::PieceWiseLinearPolygonMapping::surface_quadrature_
private

Definition at line 75 of file PieceWiseLinearPolygonMapping.h.

◆ vc_

chi_mesh::Vertex chi_math::cell_mapping::PieceWiseLinearPolygonMapping::vc_
private

Definition at line 79 of file PieceWiseLinearPolygonMapping.h.

◆ volume_quadrature_

const QuadratureTriangle& chi_math::cell_mapping::PieceWiseLinearPolygonMapping::volume_quadrature_
private

Definition at line 74 of file PieceWiseLinearPolygonMapping.h.


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