1#ifndef CHITECH_CELLMAPPING_H
2#define CHITECH_CELLMAPPING_H
49 double FaceArea(
size_t face_index)
const;
53 int MapFaceNode(
size_t face_index,
size_t face_node_index)
const;
62 std::vector<double>& shape_values)
const = 0;
74 std::vector<chi_mesh::Vector3>& gradshape_values)
const = 0;
101 std::vector<double>&)>
107 std::vector<chi_mesh::Vector3> node_locations,
108 std::vector<std::vector<int>> face_node_mappings,
115 std::vector<double>& areas);
virtual ~CellMapping()=default
double CellVolume() const
virtual void GradShapeValues(const chi_mesh::Vector3 &xyz, std::vector< chi_mesh::Vector3 > &gradshape_values) const =0
const std::vector< std::vector< int > > & GetFaceNodeMappings() const
int MapFaceNode(size_t face_index, size_t face_node_index) const
const chi_mesh::MeshContinuum & ReferenceGrid() const
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)
const std::vector< std::vector< int > > face_node_mappings_
virtual void ShapeValues(const chi_mesh::Vector3 &xyz, std::vector< double > &shape_values) const =0
static void ComputeCellVolumeAndAreas(const chi_mesh::MeshContinuum &grid, const chi_mesh::Cell &cell, double &volume, std::vector< double > &areas)
virtual finite_element::VolumetricQuadraturePointData MakeVolumetricQuadraturePointData() const =0
std::function< void(const chi_mesh::MeshContinuum &, const chi_mesh::Cell &, double &, std::vector< double > &)> VandAFunction
const std::vector< chi_mesh::Vector3 > node_locations_
double FaceArea(size_t face_index) const
virtual double ShapeValue(int i, const chi_mesh::Vector3 &xyz) const =0
const chi_mesh::MeshContinuum & ref_grid_
virtual finite_element::SurfaceQuadraturePointData MakeSurfaceQuadraturePointData(size_t face_index) const =0
virtual chi_mesh::Vector3 GradShapeValue(int i, const chi_mesh::Vector3 &xyz) const =0
std::vector< double > areas_
size_t NumFaceNodes(size_t face_index) const
const chi_mesh::Cell & ReferenceCell() const
const std::vector< chi_mesh::Vector3 > & GetNodeLocations() const
const chi_mesh::Cell & cell_