Skip to content
Snippets Groups Projects
Commit 6331bc52 authored by LEGOLAS\lenz's avatar LEGOLAS\lenz
Browse files

fixes the "findInterfac..." methods, such that they do not overwrite Stoppers

parent e2b723c7
No related branches found
No related tags found
No related merge requests found
......@@ -343,15 +343,15 @@ void MultipleGridBuilder::buildGrids(LbmOrGks lbmOrGks)
for (auto grid : grids)
grid->inital();
// if (solidObject)
// {
// grids[grids.size() - 1]->mesh(solidObject);
// grids[grids.size() - 1]->findQs(solidObject);
// }
if (solidObject)
{
grids[grids.size() - 1]->mesh(solidObject);
grids[grids.size() - 1]->findQs(solidObject);
}
// for (size_t i = 0; i < grids.size() - 1; i++)
// grids[i]->findGridInterface(grids[i + 1], lbmOrGks);
for (size_t i = 0; i < grids.size() - 1; i++)
grids[i]->findGridInterface(grids[i + 1], lbmOrGks);
//if (lbmOrGks == LBM) {
// for (size_t i = 0; i < grids.size() - 1; i++)
......
......@@ -422,6 +422,23 @@ void GridImp::setCellTo(uint index, char type)
}
void GridImp::setNonStopperOutOfGridCellTo(uint index, char type)
{
real x, y, z;
this->transIndexToCoords(index, x, y, z);
Cell cell(x, y, z, this->delta);
for (const auto node : cell)
{
const uint nodeIndex = transCoordToIndex(node.x, node.y, node.z);
if( this->getFieldEntry( nodeIndex ) != STOPPER_OUT_OF_GRID &&
this->getFieldEntry( nodeIndex ) != STOPPER_OUT_OF_GRID_BOUNDARY )
this->field.setFieldEntry(nodeIndex, type);
}
}
HOST void GridImp::setPeriodicity(bool periodicityX, bool periodicityY, bool periodicityZ)
{
this->periodicityX = periodicityX;
......
......@@ -81,6 +81,7 @@ public:
void setPeriodicityZ(bool periodicity) override;
HOSTDEVICE void setCellTo(uint index, char type);
HOSTDEVICE void setNonStopperOutOfGridCellTo(uint index, char type);
HOSTDEVICE int transCoordToIndex(const real &x, const real &y, const real &z) const override;
HOSTDEVICE void transIndexToCoords(int index, real &x, real &y, real &z) const override;
......
......@@ -42,8 +42,8 @@ void GridInterface::findInterfaceCF(const uint& indexOnCoarseGrid, GridImp* coar
cf.numberOfEntries++;
coarseGrid->setCellTo(indexOnCoarseGrid, FLUID_CFC);
fineGrid->setCellTo(indexOnFineGridCF, FLUID_CFF);
coarseGrid->setNonStopperOutOfGridCellTo(indexOnCoarseGrid, FLUID_CFC);
fineGrid->setNonStopperOutOfGridCellTo(indexOnFineGridCF, FLUID_CFF);
break;
}
}
......@@ -101,7 +101,7 @@ void GridInterface::findInterfaceFC(const uint& indexOnCoarseGrid, GridImp* coar
fc.numberOfEntries++;
fineGrid->setCellTo(indexOnFineGridFC, FLUID_FCF);
fineGrid->setNonStopperOutOfGridCellTo(indexOnFineGridFC, FLUID_FCF);
coarseGrid->getField().setFieldEntry(indexOnCoarseGrid, FLUID_FCC);
break;
}
......
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