ECOGEN 4.0
Evolutive, Compressible, Open, Genuine, Easy, N-phase
Loading...
Searching...
No Matches
MeshCartesian Class Reference

#include <MeshCartesian.h>

Inherits Mesh.

Inherited by MeshCartesianAMR.

Public Member Functions

 MeshCartesian (double lX, int numberCellsX, double lY, int numberCellsY, double lZ, int numberCellsZ, std::vector< stretchZone > stretchX, std::vector< stretchZone > stretchY, std::vector< stretchZone > stretchZ)
 
virtual ~MeshCartesian ()
 
virtual void assignLimits (std::vector< BoundCond * > &boundCond)
 
void getIJK (const int &index, int &i, int &j, int &k) const
 
void construitIGlobal (const int &i, const int &j, const int &k, int &index) const
 
virtual int initializeGeometrie (TypeMeshContainer< Cell * > &cells, TypeMeshContainer< Cell * > &cellsGhost, TypeMeshContainer< CellInterface * > &cellInterfaces, const int &, bool, std::string ordreCalcul)
 renvoi le number de dimensions (1,2 ou 3)
 
void meshStretching ()
 
void initializeGeometrieMonoCpu (TypeMeshContainer< Cell * > &cells, TypeMeshContainer< CellInterface * > &cellInterfaces, std::string ordreCalcul)
 
void initializeGeometrieParallele (TypeMeshContainer< Cell * > &cells, TypeMeshContainer< Cell * > &cellsGhost, TypeMeshContainer< CellInterface * > &cellInterfaces, std::string ordreCalcul)
 
void decoupageParallele (std::string ordreCalcul, TypeMeshContainer< Cell * > &cells)
 
virtual std::string whoAmI () const
 
virtual void setImmersedBoundaries (TypeMeshContainer< CellInterface * > *cellInterfacesLvl, std::string ordreCalcul) const
 
virtual int getNumberCellsY ()
 
virtual int getNumberCellsZ ()
 
virtual std::string getStringExtent (bool global=false) const
 
virtual void getCoord (std::vector< double > &dataset, Axis axis) const
 
virtual void getData (TypeMeshContainer< Cell * > *cellsLvl, std::vector< double > &dataset, const int var, int phase) const
 
virtual void setDataSet (std::vector< double > &dataset, TypeMeshContainer< Cell * > *cellsLvl, const int var, int phase) const
 
- Public Member Functions inherited from Mesh
 Mesh ()
 
virtual ~Mesh ()
 
const int & getProblemDimension () const
 
const int & getNumberCells () const
 
const int & getNumberCellsTotal () const
 
const int & getNumberFaces () const
 
const int & getNumFichier () const
 
virtual double getdX () const
 
virtual double getdY () const
 
virtual double getdZ () const
 
const TypeMgetType () const
 
virtual int getLvlMax () const
 
void writeResultsGnuplot (std::vector< Cell * > *cellsLvl, std::ofstream &fileStream, GeometricObject *objet=0, bool recordPsat=false) const
 
virtual void writeHeaderPiece (std::ofstream &, std::vector< Cell * > *) const
 
virtual void getNodes (std::vector< double > &, std::vector< Cell * > *) const
 
virtual void getConnectivity (std::vector< double > &, std::vector< Cell * > *) const
 
virtual void getOffsets (std::vector< double > &, std::vector< Cell * > *) const
 
virtual void getTypeCell (std::vector< double > &, std::vector< Cell * > *) const
 
virtual void getData (std::vector< Cell * > *, std::vector< double > &, const int, int) const
 Extracting data for printing results.
 
virtual void setDataSet (std::vector< double > &, std::vector< Cell * > *, const int, int) const
 Extracting data for printing results.
 
virtual void refineCellAndCellInterfaces (Cell *, const std::vector< AddPhys * > &, int &)
 
virtual void extractAbsVelocityMRF (std::vector< Cell * > *, std::vector< double > &, Source *) const
 Extracting absolute velocity for specific Moving Reference Frame computations.
 
virtual void extractReferenceLength (std::vector< Cell * > *, std::vector< double > &) const
 
virtual void printDomainDecomposition (std::ofstream &)
 
virtual void readDomainDecomposition (std::ifstream &)
 
virtual void procedureRaffinementInitialization (std::vector< Cell * > *, TypeMeshContainer< Cell * > *, std::vector< CellInterface * > *, const std::vector< AddPhys * > &, int &nbCellsTotalAMR, std::vector< GeometricalDomain * > &, Eos **, const int &, std::string, std::vector< GeometricalDomain * > &)
 
virtual void procedureRaffinement (std::vector< Cell * > *, TypeMeshContainer< Cell * > *, std::vector< CellInterface * > *, const int &, const std::vector< AddPhys * > &, int &, Eos **)
 
virtual void initializePersistentCommunications (const TypeMeshContainer< Cell * > &cells, std::string ordreCalcul)
 
virtual void finalizeParallele (const int &lvlMax)
 
virtual void parallelLoadBalancingAMR (std::vector< Cell * > *, TypeMeshContainer< Cell * > *, std::vector< CellInterface * > *, std::string, const std::vector< AddPhys * > &, Eos **, int &, std::vector< GeometricalDomain * > &, bool=false)
 
virtual std::string getMeshExtension () const
 
virtual void initCpuMeshSequential (TypeMeshContainer< Cell * > &, std::string &)
 Initialize mesh of a single partition for restart with mesh mapping option.
 
virtual void initCpuMeshParallel (TypeMeshContainer< Cell * > &, std::string &, int)
 Initialize mesh of a single partition of a partionned mesh for restart with mesh mapping option.
 

Protected Attributes

TypeMeshContainer< Element * > m_elements
 Vector of element objects: Contains geometrical attributes.
 
TypeMeshContainer< Face * > m_faces
 Vector of face objects (between two elements or at boundaries): Contains geometrical attributes.
 
double m_lX
 
double m_lY
 
double m_lZ
 
int m_numberCellsX
 
int m_numberCellsY
 
int m_numberCellsZ
 
int m_numberCellsXGlobal
 
int m_numberCellsYGlobal
 
int m_numberCellsZGlobal
 
std::vector< double > m_dXi
 
std::vector< double > m_dYj
 
std::vector< double > m_dZk
 
std::vector< double > m_posXi
 
std::vector< double > m_posYj
 
std::vector< double > m_posZk
 
std::vector< stretchZonem_stretchX
 
std::vector< stretchZonem_stretchY
 
std::vector< stretchZonem_stretchZ
 
int m_numberCpuX
 
int m_numberCpuY
 
int m_numberCpuZ
 
int m_CpuCoordX
 
int m_CpuCoordY
 
int m_CpuCoordZ
 
int m_offsetX
 
int m_offsetY
 
int m_offsetZ
 
int m_numberBoundCondInit
 
BoundCondm_limXm
 
BoundCondm_limXp
 
BoundCondm_limYm
 
BoundCondm_limYp
 
BoundCondm_limZm
 
BoundCondm_limZp
 
- Protected Attributes inherited from Mesh
int m_numFichier
 
int m_problemDimension
 
int m_numberElements
 
int m_numberFacesTotal
 
int m_numberCellsCalcul
 
int m_numberCellsTotal
 
TypeM m_type
 

Constructor & Destructor Documentation

◆ MeshCartesian()

MeshCartesian::MeshCartesian ( double  lX,
int  numberCellsX,
double  lY,
int  numberCellsY,
double  lZ,
int  numberCellsZ,
std::vector< stretchZone stretchX,
std::vector< stretchZone stretchY,
std::vector< stretchZone stretchZ 
)

◆ ~MeshCartesian()

MeshCartesian::~MeshCartesian ( )
virtual

Member Function Documentation

◆ assignLimits()

void MeshCartesian::assignLimits ( std::vector< BoundCond * > &  boundCond)
virtual

Implements Mesh.

◆ construitIGlobal()

void MeshCartesian::construitIGlobal ( const int &  i,
const int &  j,
const int &  k,
int &  index 
) const

◆ decoupageParallele()

void MeshCartesian::decoupageParallele ( std::string  ordreCalcul,
TypeMeshContainer< Cell * > &  cells 
)

◆ getCoord()

void MeshCartesian::getCoord ( std::vector< double > &  dataset,
Axis  axis 
) const
virtual

Reimplemented from Mesh.

◆ getData()

void MeshCartesian::getData ( TypeMeshContainer< Cell * > *  cellsLvl,
std::vector< double > &  dataset,
const int  var,
int  phase 
) const
virtual

Reimplemented in MeshCartesianAMR.

◆ getIJK()

void MeshCartesian::getIJK ( const int &  index,
int &  i,
int &  j,
int &  k 
) const

◆ getNumberCellsY()

virtual int MeshCartesian::getNumberCellsY ( )
inlinevirtual

Reimplemented from Mesh.

◆ getNumberCellsZ()

virtual int MeshCartesian::getNumberCellsZ ( )
inlinevirtual

Reimplemented from Mesh.

◆ getStringExtent()

std::string MeshCartesian::getStringExtent ( bool  global = false) const
virtual

Reimplemented from Mesh.

◆ initializeGeometrie()

int MeshCartesian::initializeGeometrie ( TypeMeshContainer< Cell * > &  cells,
TypeMeshContainer< Cell * > &  cellsGhost,
TypeMeshContainer< CellInterface * > &  cellInterfaces,
const int &  restartSimulation,
bool  pretraitementParallele,
std::string  ordreCalcul 
)
virtual

renvoi le number de dimensions (1,2 ou 3)

Implements Mesh.

Reimplemented in MeshCartesianAMR.

◆ initializeGeometrieMonoCpu()

void MeshCartesian::initializeGeometrieMonoCpu ( TypeMeshContainer< Cell * > &  cells,
TypeMeshContainer< CellInterface * > &  cellInterfaces,
std::string  ordreCalcul 
)

◆ initializeGeometrieParallele()

void MeshCartesian::initializeGeometrieParallele ( TypeMeshContainer< Cell * > &  cells,
TypeMeshContainer< Cell * > &  cellsGhost,
TypeMeshContainer< CellInterface * > &  cellInterfaces,
std::string  ordreCalcul 
)

◆ meshStretching()

void MeshCartesian::meshStretching ( )

◆ setDataSet()

void MeshCartesian::setDataSet ( std::vector< double > &  dataset,
TypeMeshContainer< Cell * > *  cellsLvl,
const int  var,
int  phase 
) const
virtual

Reimplemented in MeshCartesianAMR.

◆ setImmersedBoundaries()

void MeshCartesian::setImmersedBoundaries ( TypeMeshContainer< CellInterface * > *  cellInterfacesLvl,
std::string  ordreCalcul 
) const
virtual

Reimplemented from Mesh.

◆ whoAmI()

std::string MeshCartesian::whoAmI ( ) const
virtual

Reimplemented from Mesh.

Reimplemented in MeshCartesianAMR.

Member Data Documentation

◆ m_CpuCoordX

int MeshCartesian::m_CpuCoordX
protected

X-coordinate of the current CPU

◆ m_CpuCoordY

int MeshCartesian::m_CpuCoordY
protected

Y-coordinate of the current CPU

◆ m_CpuCoordZ

int MeshCartesian::m_CpuCoordZ
protected

Z-coordinate of the current CPU

◆ m_dXi

std::vector<double> MeshCartesian::m_dXi
protected

Array of the lengths of the cells in the x-direction

◆ m_dYj

std::vector<double> MeshCartesian::m_dYj
protected

Array of the lengths of the cells in the y-direction

◆ m_dZk

std::vector<double> MeshCartesian::m_dZk
protected

Array of the lengths of the cells in the z-direction

◆ m_elements

TypeMeshContainer<Element*> MeshCartesian::m_elements
protected

Vector of element objects: Contains geometrical attributes.

◆ m_faces

TypeMeshContainer<Face*> MeshCartesian::m_faces
protected

Vector of face objects (between two elements or at boundaries): Contains geometrical attributes.

◆ m_limXm

BoundCond* MeshCartesian::m_limXm
protected

◆ m_limXp

BoundCond* MeshCartesian::m_limXp
protected

◆ m_limYm

BoundCond* MeshCartesian::m_limYm
protected

◆ m_limYp

BoundCond* MeshCartesian::m_limYp
protected

◆ m_limZm

BoundCond* MeshCartesian::m_limZm
protected

◆ m_limZp

BoundCond* MeshCartesian::m_limZp
protected

◆ m_lX

double MeshCartesian::m_lX
protected

◆ m_lY

double MeshCartesian::m_lY
protected

◆ m_lZ

double MeshCartesian::m_lZ
protected

◆ m_numberBoundCondInit

int MeshCartesian::m_numberBoundCondInit
protected

◆ m_numberCellsX

int MeshCartesian::m_numberCellsX
protected

◆ m_numberCellsXGlobal

int MeshCartesian::m_numberCellsXGlobal
protected

◆ m_numberCellsY

int MeshCartesian::m_numberCellsY
protected

◆ m_numberCellsYGlobal

int MeshCartesian::m_numberCellsYGlobal
protected

◆ m_numberCellsZ

int MeshCartesian::m_numberCellsZ
protected

◆ m_numberCellsZGlobal

int MeshCartesian::m_numberCellsZGlobal
protected

◆ m_numberCpuX

int MeshCartesian::m_numberCpuX
protected

Optimal number of processors in the x-direction

◆ m_numberCpuY

int MeshCartesian::m_numberCpuY
protected

Optimal number of processors in the y-direction

◆ m_numberCpuZ

int MeshCartesian::m_numberCpuZ
protected

Optimal number of processors in the z-direction

◆ m_offsetX

int MeshCartesian::m_offsetX
protected

Offset in the x-direction of the current CPU for the array of cell lenghts and cell positions

◆ m_offsetY

int MeshCartesian::m_offsetY
protected

Offset in the y-direction of the current CPU for the array of cell lenghts and cell positions

◆ m_offsetZ

int MeshCartesian::m_offsetZ
protected

Offset in the z-direction of the current CPU for the array of cell lenghts and cell positions

◆ m_posXi

std::vector<double> MeshCartesian::m_posXi
protected

Array of the positions of the cells in the x-direction

◆ m_posYj

std::vector<double> MeshCartesian::m_posYj
protected

Array of the positions of the cells in the y-direction

◆ m_posZk

std::vector<double> MeshCartesian::m_posZk
protected

Array of the positions of the cells in the z-direction

◆ m_stretchX

std::vector<stretchZone> MeshCartesian::m_stretchX
protected

Array of stretch zones in the x-direction

◆ m_stretchY

std::vector<stretchZone> MeshCartesian::m_stretchY
protected

Array of stretch zones in the y-direction

◆ m_stretchZ

std::vector<stretchZone> MeshCartesian::m_stretchZ
protected

Array of stretch zones in the z-direction


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