31#ifndef MESHCARTESIAN_H
32#define MESHCARTESIAN_H
52 std::vector<stretchZone> stretchX,
53 std::vector<stretchZone> stretchY,
54 std::vector<stretchZone> stretchZ);
57 void assignLimits(std::vector<BoundCond*>& boundCond)
override;
58 void getIJK(
const int& index,
int& i,
int& j,
int& k)
const;
59 void construitIGlobal(
const int& i,
const int& j,
const int& k,
int& index)
const;
73 std::string
whoAmI()
const override;
98 void getCoord(std::vector<double>& dataset,
Axis axis,
bool global =
false)
const override;
101 size_t getNodes(std::vector<double>& dataset, std::vector<Cell*>* )
const override;
102 size_t getConnectivity(std::vector<int64_t>& dataset, std::vector<Cell*>* )
const override;
103 size_t getConnectivity(std::vector<int32_t>& dataset, std::vector<Cell*>* )
const override;
104 void getOffsets(std::vector<int64_t>& dataset, std::vector<Cell*>* )
const override;
105 void getOffsets(std::vector<int32_t>& dataset, std::vector<Cell*>* )
const override;
106 void getTypeCell(std::vector<unsigned char>& dataset, std::vector<Cell*>* )
const override;
154 meshStretchingAlongAxis(
int& numberCells,
const double& l, std::vector<double>& dl, std::vector<double>& pos, std::vector<stretchZone>& stretch);
Definition BoundCond.h:41
int m_numberCellsZGlobal
Definition MeshCartesian.h:124
std::string whoAmI() const override
Definition MeshCartesian.cpp:2210
int m_numberBoundCondInit
Definition MeshCartesian.h:144
std::vector< double > m_dYj
Definition MeshCartesian.h:126
int m_numberCellsY
Definition MeshCartesian.h:120
int getNumberCpuZ() const override
Definition MeshCartesian.h:89
void construitIGlobal(const int &i, const int &j, const int &k, int &index) const
Definition MeshCartesian.cpp:187
BoundCond * m_limZm
Definition MeshCartesian.h:149
double m_lX
Definition MeshCartesian.h:116
void getIJK(const int &index, int &i, int &j, int &k) const
Definition MeshCartesian.cpp:176
std::vector< double > m_posYj
Definition MeshCartesian.h:129
int m_offsetZ
Definition MeshCartesian.h:142
int m_CpuCoordX
Definition MeshCartesian.h:137
std::vector< stretchZone > m_stretchY
Definition MeshCartesian.h:132
std::vector< stretchZone > m_stretchZ
Definition MeshCartesian.h:133
int getNumberCellsY() const override
Definition MeshCartesian.h:79
int getNumberCellsXGlobal() const override
Definition MeshCartesian.h:81
void assignLimits(std::vector< BoundCond * > &boundCond) override
Definition MeshCartesian.cpp:106
BoundCond * m_limZp
Definition MeshCartesian.h:150
int getNumberCellsYGlobal() const override
Definition MeshCartesian.h:82
BoundCond * m_limYp
Definition MeshCartesian.h:148
int m_numberCellsYGlobal
Definition MeshCartesian.h:123
std::vector< double > m_dZk
Definition MeshCartesian.h:127
int getNumberCpuX() const override
Definition MeshCartesian.h:87
void meshStretching()
Definition MeshCartesian.cpp:241
int getNumberCellsZ() const override
Definition MeshCartesian.h:80
void parallelePartitioning(SimulationOrder schemeOrder, TypeMeshContainer< Cell * > &cells)
Definition MeshCartesian.cpp:1496
TypeMeshContainer< Face * > m_faces
Vector of face objects (between two elements or at boundaries): Contains geometrical attributes.
Definition MeshCartesian.h:114
double m_lZ
Definition MeshCartesian.h:118
int getOffsetY() const override
Definition MeshCartesian.h:85
void getData(TypeMeshContainer< Cell * > *cellsLvl, std::vector< double > &dataset, const int var, int phase) const override
Definition MeshCartesian.cpp:2616
int m_CpuCoordY
Definition MeshCartesian.h:138
void setImmersedBoundaries(TypeMeshContainer< CellInterface * > *cellInterfacesLvl, SimulationOrder schemeOrder) const override
Definition MeshCartesian.cpp:2214
std::vector< stretchZone > m_stretchX
Definition MeshCartesian.h:131
void getData_private(TypeMeshContainer< Cell * > *cellsLvl, std::vector< T > &dataset, const int var, int phase) const
Definition MeshCartesian.cpp:2629
int m_CpuCoordZ
Definition MeshCartesian.h:139
int m_numberCpuX
Definition MeshCartesian.h:134
~MeshCartesian() override
Definition MeshCartesian.cpp:73
size_t getNodes(std::vector< double > &dataset, std::vector< Cell * > *) const override
Store coordinates of mesh nodes in a flat vector.
Definition MeshCartesian.cpp:2453
int initializeGeometrie(TypeMeshContainer< Cell * > &cells, TypeMeshContainer< Cell * > &cellsGhost, TypeMeshContainer< CellInterface * > &cellInterfaces, const int &, bool, SimulationOrder schemeOrder) override
renvoi le number de dimensions (1,2 ou 3)
Definition MeshCartesian.cpp:197
std::string getStringExtent(bool global=false) const override
Definition MeshCartesian.cpp:2363
int getNumberCpuY() const override
Definition MeshCartesian.h:88
void getOffsets_private(std::vector< T > &dataset) const
Definition MeshCartesian.cpp:2583
int getOffsetZ() const override
Definition MeshCartesian.h:86
int getOffsetX() const override
Definition MeshCartesian.h:84
int m_numberCellsX
Definition MeshCartesian.h:119
int m_numberCpuZ
Definition MeshCartesian.h:136
std::vector< double > m_posXi
Definition MeshCartesian.h:128
int m_numberCellsZ
Definition MeshCartesian.h:121
static void meshStretchingAlongAxis(int &numberCells, const double &l, std::vector< double > &dl, std::vector< double > &pos, std::vector< stretchZone > &stretch)
Definition MeshCartesian.cpp:216
std::vector< double > m_posZk
Definition MeshCartesian.h:130
TypeMeshContainer< Element * > m_elements
Vector of element objects: Contains geometrical attributes.
Definition MeshCartesian.h:113
BoundCond * m_limYm
Definition MeshCartesian.h:147
void getCoord(std::vector< double > &dataset, Axis axis, bool global=false) const override
For structured grid, get coordinates along a given axis.
Definition MeshCartesian.cpp:2402
BoundCond * m_limXp
Definition MeshCartesian.h:146
void initializeGeometrieParallele(TypeMeshContainer< Cell * > &cells, TypeMeshContainer< Cell * > &cellsGhost, TypeMeshContainer< CellInterface * > &cellInterfaces, SimulationOrder schemeOrder)
Definition MeshCartesian.cpp:685
int m_offsetY
Definition MeshCartesian.h:141
void setDataSet(std::vector< double > &dataset, TypeMeshContainer< Cell * > *cellsLvl, const int var, int phase) const override
Definition MeshCartesian.cpp:2647
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)
Definition MeshCartesian.cpp:36
int getNumberCellsZGlobal() const override
Definition MeshCartesian.h:83
int getNumberCellsX() const override
Definition MeshCartesian.h:78
void getTypeCell(std::vector< unsigned char > &dataset, std::vector< Cell * > *) const override
Definition MeshCartesian.cpp:2606
double m_lY
Definition MeshCartesian.h:117
int m_numberCpuY
Definition MeshCartesian.h:135
int m_offsetX
Definition MeshCartesian.h:140
std::array< int, 6 > getArrayGlobalExtent() const override
Return whole extent of global cartesian mesh under the form of an array.
Definition MeshCartesian.cpp:2398
int m_numberCellsXGlobal
Definition MeshCartesian.h:122
void initializeGeometrieMonoCpu(TypeMeshContainer< Cell * > &cells, TypeMeshContainer< CellInterface * > &cellInterfaces, SimulationOrder schemeOrder)
Definition MeshCartesian.cpp:261
BoundCond * m_limXm
Definition MeshCartesian.h:145
std::vector< double > m_dXi
Definition MeshCartesian.h:125
void getOffsets(std::vector< int64_t > &dataset, std::vector< Cell * > *) const override
Store offsets in connectivity array of mesh cells.
Definition MeshCartesian.cpp:2599
size_t getConnectivity_private(std::vector< T > &dataset) const
Definition MeshCartesian.cpp:2530
size_t getConnectivity(std::vector< int64_t > &dataset, std::vector< Cell * > *) const override
Store connectivities of mesh cells in a flat vector of 'ECOGEN_VTKHDF_intType' integers.
Definition MeshCartesian.cpp:2571
Mesh()
Definition Mesh.cpp:35