Skip to content
Snippets Groups Projects
Commit f80b0930 authored by Anna Wellmann's avatar Anna Wellmann
Browse files

Remove some duplicate code from GridGenerator in VFGPU

parent 3839ea16
No related branches found
No related tags found
1 merge request!122Merge changes from develop into open source
......@@ -166,33 +166,7 @@ void GridGenerator::allocArrays_BoundaryQs()
real* QQ = para->getParH()->pressureBC.q27[0];
unsigned int sizeQ = para->getParH()->pressureBC.numberOfBCnodes;
QforBoundaryConditions Q;
Q.q27[E] = &QQ[E *sizeQ];
Q.q27[W] = &QQ[W *sizeQ];
Q.q27[N] = &QQ[N *sizeQ];
Q.q27[S] = &QQ[S *sizeQ];
Q.q27[T] = &QQ[T *sizeQ];
Q.q27[B] = &QQ[B *sizeQ];
Q.q27[NE] = &QQ[NE *sizeQ];
Q.q27[SW] = &QQ[SW *sizeQ];
Q.q27[SE] = &QQ[SE *sizeQ];
Q.q27[NW] = &QQ[NW *sizeQ];
Q.q27[TE] = &QQ[TE *sizeQ];
Q.q27[BW] = &QQ[BW *sizeQ];
Q.q27[BE] = &QQ[BE *sizeQ];
Q.q27[TW] = &QQ[TW *sizeQ];
Q.q27[TN] = &QQ[TN *sizeQ];
Q.q27[BS] = &QQ[BS *sizeQ];
Q.q27[BN] = &QQ[BN *sizeQ];
Q.q27[TS] = &QQ[TS *sizeQ];
Q.q27[REST] = &QQ[REST*sizeQ];
Q.q27[TNE] = &QQ[TNE *sizeQ];
Q.q27[TSW] = &QQ[TSW *sizeQ];
Q.q27[TSE] = &QQ[TSE *sizeQ];
Q.q27[TNW] = &QQ[TNW *sizeQ];
Q.q27[BNE] = &QQ[BNE *sizeQ];
Q.q27[BSW] = &QQ[BSW *sizeQ];
Q.q27[BSE] = &QQ[BSE *sizeQ];
Q.q27[BNW] = &QQ[BNW *sizeQ];
getPointersToBoundaryConditions(Q, QQ, sizeQ);
builder->getPressureQs(Q.q27, 0);
......@@ -208,33 +182,7 @@ void GridGenerator::allocArrays_BoundaryQs()
real *QQ = para->getParH()->slipBC.q27[0];
unsigned int sizeQ = para->getParH()->slipBC.numberOfBCnodes;
QforBoundaryConditions Q;
Q.q27[E] = &QQ[E * sizeQ];
Q.q27[W] = &QQ[W * sizeQ];
Q.q27[N] = &QQ[N * sizeQ];
Q.q27[S] = &QQ[S * sizeQ];
Q.q27[T] = &QQ[T * sizeQ];
Q.q27[B] = &QQ[B * sizeQ];
Q.q27[NE] = &QQ[NE * sizeQ];
Q.q27[SW] = &QQ[SW * sizeQ];
Q.q27[SE] = &QQ[SE * sizeQ];
Q.q27[NW] = &QQ[NW * sizeQ];
Q.q27[TE] = &QQ[TE * sizeQ];
Q.q27[BW] = &QQ[BW * sizeQ];
Q.q27[BE] = &QQ[BE * sizeQ];
Q.q27[TW] = &QQ[TW * sizeQ];
Q.q27[TN] = &QQ[TN * sizeQ];
Q.q27[BS] = &QQ[BS * sizeQ];
Q.q27[BN] = &QQ[BN * sizeQ];
Q.q27[TS] = &QQ[TS * sizeQ];
Q.q27[REST] = &QQ[REST * sizeQ];
Q.q27[TNE] = &QQ[TNE * sizeQ];
Q.q27[TSW] = &QQ[TSW * sizeQ];
Q.q27[TSE] = &QQ[TSE * sizeQ];
Q.q27[TNW] = &QQ[TNW * sizeQ];
Q.q27[BNE] = &QQ[BNE * sizeQ];
Q.q27[BSW] = &QQ[BSW * sizeQ];
Q.q27[BSE] = &QQ[BSE * sizeQ];
Q.q27[BNW] = &QQ[BNW * sizeQ];
getPointersToBoundaryConditions(Q, QQ, sizeQ);
builder->getSlipQs(Q.q27, 0);
......@@ -250,33 +198,7 @@ void GridGenerator::allocArrays_BoundaryQs()
real *QQ = para->getParH()->velocityBC.q27[0];
unsigned int sizeQ = para->getParH()->velocityBC.numberOfBCnodes;
QforBoundaryConditions Q;
Q.q27[E] = &QQ[E * sizeQ];
Q.q27[W] = &QQ[W * sizeQ];
Q.q27[N] = &QQ[N * sizeQ];
Q.q27[S] = &QQ[S * sizeQ];
Q.q27[T] = &QQ[T * sizeQ];
Q.q27[B] = &QQ[B * sizeQ];
Q.q27[NE] = &QQ[NE * sizeQ];
Q.q27[SW] = &QQ[SW * sizeQ];
Q.q27[SE] = &QQ[SE * sizeQ];
Q.q27[NW] = &QQ[NW * sizeQ];
Q.q27[TE] = &QQ[TE * sizeQ];
Q.q27[BW] = &QQ[BW * sizeQ];
Q.q27[BE] = &QQ[BE * sizeQ];
Q.q27[TW] = &QQ[TW * sizeQ];
Q.q27[TN] = &QQ[TN * sizeQ];
Q.q27[BS] = &QQ[BS * sizeQ];
Q.q27[BN] = &QQ[BN * sizeQ];
Q.q27[TS] = &QQ[TS * sizeQ];
Q.q27[REST] = &QQ[REST * sizeQ];
Q.q27[TNE] = &QQ[TNE * sizeQ];
Q.q27[TSW] = &QQ[TSW * sizeQ];
Q.q27[TSE] = &QQ[TSE * sizeQ];
Q.q27[TNW] = &QQ[TNW * sizeQ];
Q.q27[BNE] = &QQ[BNE * sizeQ];
Q.q27[BSW] = &QQ[BSW * sizeQ];
Q.q27[BSE] = &QQ[BSE * sizeQ];
Q.q27[BNW] = &QQ[BNW * sizeQ];
getPointersToBoundaryConditions(Q, QQ, sizeQ);
builder->getVelocityQs(Q.q27, 0);
......@@ -301,33 +223,7 @@ void GridGenerator::allocArrays_BoundaryQs()
real* QQ = para->getParH()->geometryBC.q27[0];
unsigned int sizeQ = para->getParH()->geometryBC.numberOfBCnodes;
QforBoundaryConditions Q;
Q.q27[E] = &QQ[E *sizeQ];
Q.q27[W] = &QQ[W *sizeQ];
Q.q27[N] = &QQ[N *sizeQ];
Q.q27[S] = &QQ[S *sizeQ];
Q.q27[T] = &QQ[T *sizeQ];
Q.q27[B] = &QQ[B *sizeQ];
Q.q27[NE] = &QQ[NE *sizeQ];
Q.q27[SW] = &QQ[SW *sizeQ];
Q.q27[SE] = &QQ[SE *sizeQ];
Q.q27[NW] = &QQ[NW *sizeQ];
Q.q27[TE] = &QQ[TE *sizeQ];
Q.q27[BW] = &QQ[BW *sizeQ];
Q.q27[BE] = &QQ[BE *sizeQ];
Q.q27[TW] = &QQ[TW *sizeQ];
Q.q27[TN] = &QQ[TN *sizeQ];
Q.q27[BS] = &QQ[BS *sizeQ];
Q.q27[BN] = &QQ[BN *sizeQ];
Q.q27[TS] = &QQ[TS *sizeQ];
Q.q27[REST] = &QQ[REST*sizeQ];
Q.q27[TNE] = &QQ[TNE *sizeQ];
Q.q27[TSW] = &QQ[TSW *sizeQ];
Q.q27[TSE] = &QQ[TSE *sizeQ];
Q.q27[TNW] = &QQ[TNW *sizeQ];
Q.q27[BNE] = &QQ[BNE *sizeQ];
Q.q27[BSW] = &QQ[BSW *sizeQ];
Q.q27[BSE] = &QQ[BSE *sizeQ];
Q.q27[BNW] = &QQ[BNW *sizeQ];
getPointersToBoundaryConditions(Q, QQ, sizeQ);
builder->getGeometryQs(Q.q27,0);
......@@ -418,3 +314,33 @@ std::string GridGenerator::checkNeighbor(real x, real y, real z, int index, int
}
return oss.str();
}
void GridGenerator::getPointersToBoundaryConditions(QforBoundaryConditions& boundaryConditionStruct, real* subgridDistances, const unsigned int numberOfBCnodes){
boundaryConditionStruct.q27[E] = &subgridDistances[E * numberOfBCnodes];
boundaryConditionStruct.q27[W] = &subgridDistances[W * numberOfBCnodes];
boundaryConditionStruct.q27[N] = &subgridDistances[N * numberOfBCnodes];
boundaryConditionStruct.q27[S] = &subgridDistances[S * numberOfBCnodes];
boundaryConditionStruct.q27[T] = &subgridDistances[T * numberOfBCnodes];
boundaryConditionStruct.q27[B] = &subgridDistances[B * numberOfBCnodes];
boundaryConditionStruct.q27[NE] = &subgridDistances[NE * numberOfBCnodes];
boundaryConditionStruct.q27[SW] = &subgridDistances[SW * numberOfBCnodes];
boundaryConditionStruct.q27[SE] = &subgridDistances[SE * numberOfBCnodes];
boundaryConditionStruct.q27[NW] = &subgridDistances[NW * numberOfBCnodes];
boundaryConditionStruct.q27[TE] = &subgridDistances[TE * numberOfBCnodes];
boundaryConditionStruct.q27[BW] = &subgridDistances[BW * numberOfBCnodes];
boundaryConditionStruct.q27[BE] = &subgridDistances[BE * numberOfBCnodes];
boundaryConditionStruct.q27[TW] = &subgridDistances[TW * numberOfBCnodes];
boundaryConditionStruct.q27[TN] = &subgridDistances[TN * numberOfBCnodes];
boundaryConditionStruct.q27[BS] = &subgridDistances[BS * numberOfBCnodes];
boundaryConditionStruct.q27[BN] = &subgridDistances[BN * numberOfBCnodes];
boundaryConditionStruct.q27[TS] = &subgridDistances[TS * numberOfBCnodes];
boundaryConditionStruct.q27[REST] = &subgridDistances[REST* numberOfBCnodes];
boundaryConditionStruct.q27[TNE] = &subgridDistances[TNE * numberOfBCnodes];
boundaryConditionStruct.q27[TSW] = &subgridDistances[TSW * numberOfBCnodes];
boundaryConditionStruct.q27[TSE] = &subgridDistances[TSE * numberOfBCnodes];
boundaryConditionStruct.q27[TNW] = &subgridDistances[TNW * numberOfBCnodes];
boundaryConditionStruct.q27[BNE] = &subgridDistances[BNE * numberOfBCnodes];
boundaryConditionStruct.q27[BSW] = &subgridDistances[BSW * numberOfBCnodes];
boundaryConditionStruct.q27[BSE] = &subgridDistances[BSE * numberOfBCnodes];
boundaryConditionStruct.q27[BNW] = &subgridDistances[BNW * numberOfBCnodes];
}
\ No newline at end of file
......@@ -83,11 +83,16 @@ private:
std::string verifyNeighborIndex(int index, int &invalidNodes, int &stopperNodes, int &wrongNeighbors) const;
//! \brief check the neighbors
//! \param x,y,z lattice node position
//! \param numberOfWrongNeihgbors reference to the number of wrong neighbors
//! \param numberOfWrongNeighbors reference to the number of wrong neighbors
//! \param neighborIndex index of neighbor node
//! \param neighborX,neighborY,neighborZ neighbor lattice node position
//! \param direction type string
std::string checkNeighbor(real x, real y, real z, int index, int& numberOfWrongNeihgbors, int neighborIndex, real neighborX, real neighborY, real neighborZ, std::string direction) const;
//! \brief create the pointers in the struct for the BoundaryConditions from the boundary condition array
//! \param boundaryConditionStruct is a struct containing information about the boundary condition
//! \param subgridDistances is a pointer to an array containing the subgrid distances
//! \param numberOfBCnodes is the number of lattice nodes in the boundary condition
static void getPointersToBoundaryConditions(QforBoundaryConditions& boundaryConditionStruct, real* subgridDistances, const unsigned int numberOfBCnodes);
};
#endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment