Version: 9.12.0
SMDS_DownQuadHexa Class Reference

#include <SMDS_Downward.hxx>

Inheritance diagram for SMDS_DownQuadHexa:

Public Member Functions

virtual void getOrderedNodesOfFace (int cellId, std::vector< vtkIdType > &orderedNodes)
 
virtual int getNumberOfUpCells (int cellId)
 
virtual const int * getUpCells (int cellId)
 
virtual const unsigned char * getUpTypes (int cellId)
 
virtual void getNodeIds (int cellId, std::set< int > &nodeSet)
 
virtual int getNumberOfDownCells (int cellId)
 Get the number of downward entities associated to a cell (always the same for a given vtk type of cell) More...
 
virtual const int * getDownCells (int cellId)
 get a pointer on the downward entities id's associated to a cell. More...
 
virtual const unsigned char * getDownTypes (int cellId)
 get a list of vtk cell types associated to downward entities of a given cell, in the same order than the downward entities id's list ( More...
 
virtual int getNodes (int, int *)
 
int getVtkCellId (int cellId)
 
int getMaxId ()
 

Static Public Member Functions

static int getCellDimension (unsigned char cellType)
 get the dimension of a cell (1,2,3 for 1D, 2D 3D) given the vtk cell type More...
 

Protected Member Functions

 SMDS_DownQuadHexa (SMDS_UnstructuredGrid *grid)
 
 ~SMDS_DownQuadHexa ()
 
virtual void addDownCell (int cellId, int lowCellId, unsigned char aType)
 Id's are downward connectivity id's. More...
 
virtual void computeFacesWithNodes (int cellId, ListElemByNodesType &facesWithNodes)
 Create a list of faces described by a vtk Type and an ordered set of Node Id's The ordering of the twenty points defining the quadratic hexahedron cell is point id's (0-7,8-19) where point id's 0-7 are the eight corner vertices of the cube, followed by twelve mid-edge nodes (8-19). More...
 
virtual void allocate (int nbElems)
 
virtual void compactStorage ()
 
int FindFaceByNodes (int cellId, ElemByNodesType &faceByNodes)
 
int addCell (int vtkId=-1)
 Give or create an entry for downward connectivity structure relative to a cell. More...
 
virtual void initCell (int cellId)
 generic method do nothing. More...
 
virtual void addUpCell (int cellId, int upCellId, unsigned char aType)
 Id's are downward connectivity id's. More...
 
virtual int getNodeSet (int cellId, int *nodeSet)
 

Protected Attributes

SMDS_UnstructuredGrid_grid
 
int _maxId
 
int _nbDownCells
 the same number for all cells of a derived class More...
 
std::vector< int > _cellIds
 growing size: all the down cell id's, size = _maxId * _nbDownCells More...
 
std::vector< int > _vtkCellIds
 growing size: size = _maxId, either vtkId or -1 More...
 
std::vector< unsigned char > _cellTypes
 fixed size: the same vector for all cells of a derived class More...
 

Static Protected Attributes

static std::vector< int > _cellDimension
 conversion table: type --> dimension More...
 

Friends

class SMDS_UnstructuredGrid
 

Constructor & Destructor Documentation

◆ SMDS_DownQuadHexa()

SMDS_DownQuadHexa::SMDS_DownQuadHexa ( SMDS_UnstructuredGrid grid)
protected

◆ ~SMDS_DownQuadHexa()

SMDS_DownQuadHexa::~SMDS_DownQuadHexa ( )
protected

Member Function Documentation

◆ addCell()

int SMDS_Downward::addCell ( int  vtkId = -1)
protectedinherited

Give or create an entry for downward connectivity structure relative to a cell.

If the entry already exists, just return its id, otherwise, create it. The internal storage memory is allocated if needed. The SMDS_UnstructuredGrid::_cellIdToDownId vector is completed for vtkUnstructuredGrid cells.

Parameters
vtkIdfor a vtkUnstructuredGrid cell or -1 (default) for a created downward cell.
Returns
the rank in downward[vtkType] structure.

References SMDS_Downward::_grid, SMDS_Downward::_maxId, SMDS_Downward::_vtkCellIds, SMDS_Downward::allocate(), SMDS_UnstructuredGrid::CellIdToDownId(), SMDS_Downward::initCell(), and SMDS_UnstructuredGrid::setCellIdToDownId().

◆ addDownCell()

void SMDS_DownQuadHexa::addDownCell ( int  cellId,
int  lowCellId,
unsigned char  aType 
)
protectedvirtual

Id's are downward connectivity id's.

add a downward entity of dimension n-1 (cell or node) to a given cell.

Actual implementation is done in derived methods.

Parameters
cellIdindex of the parent cell (dimension n) in the downward structure relative to a vtk cell type.
lowCellIdindex of the children cell to add (dimension n-1)
aTypevtk cell type of the cell to add (needed to find the SMDS_Downward structure containing the cell to add).

Reimplemented from SMDS_Downward.

References SMDS_Downward::_cellIds, and SMDS_Downward::_nbDownCells.

◆ addUpCell()

void SMDS_Downward::addUpCell ( int  cellId,
int  upCellId,
unsigned char  aType 
)
protectedvirtualinherited

Id's are downward connectivity id's.

add a downward entity of dimension n+1 to a given cell.

Actual implementation is done in derived methods.

Parameters
cellIdindex of the children cell (dimension n) in the downward structure relative to a vtk cell type.
upCellIdindex of the parent cell to add (dimension n+1)
aTypevtk cell type of the cell to add (needed to find the SMDS_Downward structure containing the cell to add).

Reimplemented in SMDS_Down2D, and SMDS_Down1D.

◆ allocate()

void SMDS_Down3D::allocate ( int  nbElems)
protectedvirtualinherited

◆ compactStorage()

void SMDS_Down3D::compactStorage ( )
protectedvirtualinherited

Implements SMDS_Downward.

◆ computeFacesWithNodes()

void SMDS_DownQuadHexa::computeFacesWithNodes ( int  cellId,
ListElemByNodesType facesWithNodes 
)
protectedvirtual

Create a list of faces described by a vtk Type and an ordered set of Node Id's The ordering of the twenty points defining the quadratic hexahedron cell is point id's (0-7,8-19) where point id's 0-7 are the eight corner vertices of the cube, followed by twelve mid-edge nodes (8-19).

Note that these mid-edge nodes lie on the edges defined by (0,1), (1,2), (2,3), (3,0), (4,5), (5,6), (6,7), (7,4), (0,4), (1,5), (2,6), (3,7).

See also
vtkQuadraticHexahedron.h in Filtering
Parameters
cellIdvolumeId in vtkUnstructuredGrid
facesWithNodesvector of face descriptors to be filled

Implements SMDS_Down3D.

References SMDS_Downward::_grid, ListElemByNodesType::elems, ListElemByNodesType::nbElems, ElemByNodesType::nbNodes, ElemByNodesType::nodeIds, and ElemByNodesType::vtkType.

◆ FindFaceByNodes()

◆ getCellDimension()

int SMDS_Downward::getCellDimension ( unsigned char  cellType)
staticinherited

◆ getDownCells()

const int * SMDS_Downward::getDownCells ( int  cellId)
virtualinherited

get a pointer on the downward entities id's associated to a cell.

See also
SMDS_Downward::getNumberOfDownCells for the number of downward entities.
SMDS_Downward::getDownTypes for the vtk cell types associated to the downward entities.
Parameters
cellIdindex of the cell in the downward structure relative to a given vtk cell type.
Returns
table of downward entities id's.

References SMDS_Downward::_cellIds, and SMDS_Downward::_nbDownCells.

Referenced by SMDS_Down1D::computeFaces(), SMESH_MeshEditor::CreateHoleSkin(), and SMESH_MeshEditor::DoubleNodesOnGroupBoundaries().

◆ getDownTypes()

const unsigned char * SMDS_Downward::getDownTypes ( int  cellId)
virtualinherited

get a list of vtk cell types associated to downward entities of a given cell, in the same order than the downward entities id's list (

See also
SMDS_Downward::getDownCells).
Parameters
cellIdindex of the cell in the downward structure relative to a vtk cell type.
Returns
table of downward entities types.

References SMDS_Downward::_cellTypes.

Referenced by SMDS_Down1D::computeFaces(), SMESH_MeshEditor::CreateHoleSkin(), and SMESH_MeshEditor::DoubleNodesOnGroupBoundaries().

◆ getMaxId()

int SMDS_Downward::getMaxId ( )
inherited

◆ getNodeIds()

void SMDS_Down3D::getNodeIds ( int  cellId,
std::set< int > &  nodeSet 
)
virtualinherited

◆ getNodes()

virtual int SMDS_Downward::getNodes ( int  ,
int *   
)
virtualinherited

◆ getNodeSet()

int SMDS_Downward::getNodeSet ( int  cellId,
int *  nodeSet 
)
protectedvirtualinherited

◆ getNumberOfDownCells()

int SMDS_Downward::getNumberOfDownCells ( int  cellId)
virtualinherited

Get the number of downward entities associated to a cell (always the same for a given vtk type of cell)

Parameters
cellIdnot used here.
Returns

References SMDS_Downward::_nbDownCells.

Referenced by SMDS_Down1D::computeFaces(), SMESH_MeshEditor::CreateHoleSkin(), and SMESH_MeshEditor::DoubleNodesOnGroupBoundaries().

◆ getNumberOfUpCells()

int SMDS_Down3D::getNumberOfUpCells ( int  cellId)
virtualinherited

Implements SMDS_Downward.

◆ getOrderedNodesOfFace()

void SMDS_DownQuadHexa::getOrderedNodesOfFace ( int  cellId,
std::vector< vtkIdType > &  orderedNodes 
)
virtual

◆ getUpCells()

const int * SMDS_Down3D::getUpCells ( int  cellId)
virtualinherited

Implements SMDS_Downward.

◆ getUpTypes()

const unsigned char * SMDS_Down3D::getUpTypes ( int  cellId)
virtualinherited

Implements SMDS_Downward.

◆ getVtkCellId()

int SMDS_Downward::getVtkCellId ( int  cellId)
inherited

◆ initCell()

void SMDS_Downward::initCell ( int  cellId)
protectedvirtualinherited

generic method do nothing.

see derived methods

Parameters
cellId

Reimplemented in SMDS_Down1D.

Referenced by SMDS_Downward::addCell().

Friends And Related Function Documentation

◆ SMDS_UnstructuredGrid

friend class SMDS_UnstructuredGrid
friend

Field Documentation

◆ _cellDimension

vector< int > SMDS_Downward::_cellDimension
staticprotectedinherited

conversion table: type --> dimension

Referenced by SMDS_Downward::SMDS_Downward().

◆ _cellIds

◆ _cellTypes

◆ _grid

◆ _maxId

◆ _nbDownCells

◆ _vtkCellIds