DamBreak++ Wave Simulator 0.3
DamBreak++ Simulation Framework
Loading...
Searching...
No Matches
dbpp::cellFace Class Reference

Cell face in the finite volume discretization Usage: caculFF(const cellFace& aFace) compute the numerical flux with Godunov-type scheme for example F(UL,UR) with Approximate Riemann Solver (discontinuity or shock represented by cell face). More...

#include <dbpp_CellFace.h>

Public Types

enum class  eFaceSide { left , right , global }
 Face type (element/global domain) More...

Public Member Functions

constexpr cellFace (eFaceSide aFaceSid=eFaceSide::left, signed short aGblFaceIdx=-1, signed short aLeftNodeIdx=-1, signed short aRightNodeIdx=0, signed short aCellIdx=0)
 Ctor from cell face id and type.
constexpr short getLeftNodeI () const noexcept
 left node neighbour
constexpr signed short getRightNodeI () const noexcept
 right node neighbour
constexpr signed short getGblFaceI () const noexcept
 global face
constexpr signed short getCellIdx () const noexcept
 cell index
constexpr bool hasLeftNeighbour () const noexcept
 check left neighbour
constexpr bool hasRightNeighbour () const noexcept
 check rightt neighbour
constexpr eFaceSide cellFaceSide () const noexcept
 face side
constexpr bool isLeftFace () const noexcept
 check face type
constexpr bool isrightFace () const noexcept
 check face type
constexpr bool isGlobalFace () const noexcept
 check face type
constexpr auto operator<=> (const cellFace &aOther) const
 comparison operator (spaceship)

Private Attributes

eFaceSide m_faceSide
signed short m_gblFaceI
signed short m_leftNodeI
signed short m_rightNodeI
signed short m_cellIdx

Friends

std::ostream & operator<< (std::ostream &os, const cellFace &aCface)
 tream operaator

Detailed Description

Cell face in the finite volume discretization Usage: caculFF(const cellFace& aFace) compute the numerical flux with Godunov-type scheme for example F(UL,UR) with Approximate Riemann Solver (discontinuity or shock represented by cell face).

Also we have a concept of cell or element of our discretization which is an aggregate of cell face (actually a pair). In this implementation we consider 2-components state vector that correspond to (A,Q) state variable (UL1,UL2) and (UR1,UR2).

In our programming environment, first cell face has the following parameters: left index=0, right index=1 (global discretization node) cell face index=0 to 99 (there is 100 cell face) and the last one left index=99 (last node of the mesh), right index=100 (ghost node for BC) with cell face index = 99 (total cell face=100). Then the first cell face x_1/2 and x_3/2 coordinate and the last cell face cellface_0 = pair of cell face (0,1)/(1,2) because the first node is a tied node for now we assume this discretization. Create a cell which is made of a pair of cell face.

Member Enumeration Documentation

◆ eFaceSide

enum class dbpp::cellFace::eFaceSide
strong

Face type (element/global domain)

Enumerator
left 
right 
global 

Constructor & Destructor Documentation

◆ cellFace()

dbpp::cellFace::cellFace ( eFaceSide aFaceSid = eFaceSide::left,
signed short aGblFaceIdx = -1,
signed short aLeftNodeIdx = -1,
signed short aRightNodeIdx = 0,
signed short aCellIdx = 0 )
inlineconstexpr

Ctor from cell face id and type.

Parameters
aFaceSidface side type
aGblFaceIdxglobal index (global discretization)
aCellIdxcell index
aLeftNodeIdxleft local node idx: -1(out of range),0(left),1(right)
aRightNodeIdxright local node idx: -1(out of range),0(left),1(right)

Member Function Documentation

◆ cellFaceSide()

eFaceSide dbpp::cellFace::cellFaceSide ( ) const
inlineconstexprnoexcept

face side

Returns
eface side

◆ getCellIdx()

signed short dbpp::cellFace::getCellIdx ( ) const
inlineconstexprnoexcept

cell index

Returns
cell index to which this cell face belongs

◆ getGblFaceI()

signed short dbpp::cellFace::getGblFaceI ( ) const
inlineconstexprnoexcept

global face

Returns
global face index

◆ getLeftNodeI()

short dbpp::cellFace::getLeftNodeI ( ) const
inlineconstexprnoexcept

left node neighbour

Returns
left neighbour index

◆ getRightNodeI()

signed short dbpp::cellFace::getRightNodeI ( ) const
inlineconstexprnoexcept

right node neighbour

Returns
right neighbour index

◆ hasLeftNeighbour()

bool dbpp::cellFace::hasLeftNeighbour ( ) const
inlineconstexprnoexcept

check left neighbour

Returns
true/false

◆ hasRightNeighbour()

bool dbpp::cellFace::hasRightNeighbour ( ) const
inlineconstexprnoexcept

check rightt neighbour

Returns
true/false

◆ isGlobalFace()

bool dbpp::cellFace::isGlobalFace ( ) const
inlineconstexprnoexcept

check face type

Returns
true/false

◆ isLeftFace()

bool dbpp::cellFace::isLeftFace ( ) const
inlineconstexprnoexcept

check face type

Returns
true/false

◆ isrightFace()

bool dbpp::cellFace::isrightFace ( ) const
inlineconstexprnoexcept

check face type

Returns
true/false

◆ operator<=>()

auto dbpp::cellFace::operator<=> ( const cellFace & aOther) const
inlineconstexpr

comparison operator (spaceship)

Parameters
aOtherto compare with
Returns
comparison category

◆ operator<<

std::ostream & operator<< ( std::ostream & os,
const cellFace & aCface )
friend

tream operaator

Parameters
osstream operator
aCfacecell face
Returns
stream outout

Member Data Documentation

◆ m_cellIdx

signed short dbpp::cellFace::m_cellIdx
private

cell index to which this face belongs

◆ m_faceSide

eFaceSide dbpp::cellFace::m_faceSide
private

cell side fac

◆ m_gblFaceI

signed short dbpp::cellFace::m_gblFaceI
private

face index (i=1,100) in this case

◆ m_leftNodeI

signed short dbpp::cellFace::m_leftNodeI
private

node index on left

◆ m_rightNodeI

signed short dbpp::cellFace::m_rightNodeI
private

node index on right


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