Class CellMapping

Inheritance Relationships

Derived Types

Class Documentation

class CellMapping

Base class for all cell mappings.

Subclassed by opensn::FiniteVolumeMapping, opensn::PieceWiseLinearBaseMapping

Public Functions

inline const Cell &GetCell() const

Returns the cell this mapping is based on.

inline std::shared_ptr<MeshContinuum> GetGrid() const

Returns the grid on which the cell for this mapping lives.

inline size_t GetNumNodes() const

Returns the number of nodes on this element.

size_t GetNumFaceNodes(size_t face_index) const

Returns the number of nodes on the given face.

inline const std::vector<std::vector<int>> &GetFaceNodeMappings() const
inline const std::vector<Vector3> &GetNodeLocations() const

Returns the node locations associated with this element.

int MapFaceNode(size_t face_index, size_t face_node_index) const

Given the face index and the face node index, returns the index of the cell node the face node corresponds to.

virtual double ShapeValue(int i, const Vector3 &xyz) const = 0

Returns the value of the required shape function at the world xyz point.

virtual void ShapeValues(const Vector3 &xyz, Vector<double> &shape_values) const = 0

Populates all the shape function values at the given world xyz point. This method is optimized to minimize reallocation of shape_values.

virtual Vector3 GradShapeValue(int i, const Vector3 &xyz) const = 0

Returns the value of the required shape function gradient at the world xyz point.

virtual void GradShapeValues(const Vector3 &xyz, std::vector<Vector3> &gradshape_values) const = 0

Populates all the shape function gradient values at the given world xyz point. This method is optimized to minimize reallocation of gradshape_values.

virtual VolumetricFiniteElementData MakeVolumetricFiniteElementData() const = 0

Makes the volumetric/internal finite element data for this element.

virtual SurfaceFiniteElementData MakeSurfaceFiniteElementData(size_t face_index) const = 0

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

virtual ~CellMapping() = default

Protected Functions

CellMapping(std::shared_ptr<MeshContinuum> grid, const Cell &cell, size_t num_nodes, std::vector<Vector3> node_locations, std::vector<std::vector<int>> face_node_mappings)

Protected Attributes

const std::shared_ptr<MeshContinuum> grid_
const Cell &cell_
const size_t num_nodes_
const std::vector<Vector3> node_locations_
const std::vector<std::vector<int>> face_node_mappings_

For each cell face, map from the face node index to the corresponding cell node index. More specifically, face_dof_mappings[f][fi], with fi the face node index of the face identified by face index f, contains the corresponding cell node index.