VirtualFluids 0.2.0
Parallel CFD LBM Solver
Loading...
Searching...
No Matches
vf::gpu::MultipleGridBuilder Class Reference

#include <MultipleGridBuilder.h>

Inheritance diagram for vf::gpu::MultipleGridBuilder:
vf::gpu::LevelGridBuilder vf::gpu::GridBuilder MockMultipleGridBuilder

Public Member Functions

 MultipleGridBuilder ()
 
virtual void addCoarseGrid (real startX, real startY, real startZ, real endX, real endY, real endZ, real delta)
 
virtual void addCoarseGrid (const GridDimensions &gridDimensions)
 
virtual void addGrid (SPtr< Object > gridShape)
 
virtual void addGrid (SPtr< Object > gridShape, uint levelFine)
 
virtual void addGeometry (SPtr< Object > gridShape)
 
void addGeometry (SPtr< Object > solidObject, uint level)
 
void setTriangularMeshDiscretizationMethod (TriangularMeshDiscretizationMethod method)
 
void setTriangularMeshDiscretizationStrategy (SPtr< TriangularMeshDiscretizationStrategy > strategy)
 
uint getNumberOfLevels () const
 
real getDelta (uint level) const
 
real getStartX (uint level) const
 
real getStartY (uint level) const
 
real getStartZ (uint level) const
 
real getEndX (uint level) const
 
real getEndY (uint level) const
 
real getEndZ (uint level) const
 
std::vector< SPtr< Grid > > getGrids () const
 
virtual void buildGrids (bool enableThinWalls=false)
 
virtual void setNumberOfLayers (uint numberOfLayersFine, uint numberOfLayersBetweenLevels)
 
void writeGridsToVtk (const std::string &path) const
 
virtual void setSubDomainBox (SPtr< BoundingBox > subDomainBox)
 
virtual void findCommunicationIndices (int direction, bool doShift=false)
 
- Public Member Functions inherited from vf::gpu::LevelGridBuilder
SPtr< GridgetGrid (uint level) override
 
 ~LevelGridBuilder () override
 
virtual void setSlipBoundaryCondition (SideType sideType, real normalX, real normalY, real normalZ)
 
virtual void setStressBoundaryCondition (SideType sideType, real normalX, real normalY, real normalZ, uint samplingOffset, real vonKarmanConstant, real roughnessLength, real deltaX, std::shared_ptr< GbSpatialData3D< real > > roughnessMap=nullptr)
 Set stress boundary condition using iMEM.
 
void setSurfaceLayerBoundaryCondition (SideType sideType, real normalX, real normalY, real normalZ, uint samplingOffset, real vonKarmanConstant, real roughnessLength, real roughnessLengthTemperature, real surfaceHeatFlux, real surfaceTemperature, real heatingRate, real deltaX, real deltaT, std::shared_ptr< GbSpatialData3D< real > > roughnessMap=nullptr)
 Set surface layer boundary condition using iMEM.
 
virtual void setVelocityBoundaryCondition (SideType sideType, real vx, real vy, real vz, std::optional< std::function< void(real x, real y, real z, real &vx, real &vy, real &vz)> > velocityProfile=std::nullopt)
 
virtual void setPressureBoundaryCondition (SideType sideType, real rho)
 
virtual void setPeriodicBoundaryCondition (bool periodic_X, bool periodic_Y, bool periodic_Z)
 
void setPeriodicShiftOnXBoundaryInYDirection (real shift)
 
void setPeriodicShiftOnXBoundaryInZDirection (real shift)
 
void setPeriodicShiftOnYBoundaryInXDirection (real shift)
 
void setPeriodicShiftOnYBoundaryInZDirection (real shift)
 
void setPeriodicShiftOnZBoundaryInXDirection (real shift)
 
void setPeriodicShiftOnZBoundaryInYDirection (real shift)
 
virtual void setNoSlipBoundaryCondition (SideType sideType)
 
virtual void setPrecursorBoundaryCondition (SideType sideType, SPtr< FileCollection > fileCollection, int timeStepsBetweenReads, bool cycleFiles, real velocityX=vf::basics::constant::c0o1, real velocityY=vf::basics::constant::c0o1, real velocityZ=vf::basics::constant::c0o1, std::vector< uint > fileLevelToGridLevelMap={})
 
void setADNoFluxBoundaryCondition (SideType sideType)
 
void setADFluxBoundaryCondition (SideType sideType, real normalX, real normalY, real normalZ, real gradient, real deltaX)
 
void setADDirichletBoundaryCondition (SideType sideType, real value, real vx, real vy, real vz)
 
void setADNeumannBoundaryCondition (SideType sideType, real gradient, real vx, real vy, real vz, real dx)
 
void setADOutflowBoundaryCondition (SideType sideType)
 
void setEnableFixRefinementIntoTheWall (bool enableFixRefinementIntoTheWall)
 
virtual void setCommunicationProcess (int direction, uint process)
 
uint getCommunicationProcess (int direction) override
 
std::shared_ptr< GridgetGrid (int level, int box)
 
uint getNumberOfNodes (unsigned int level) const override
 
uint getNumberOfFluidNodes (unsigned int level) const override
 
void getFluidNodeIndices (uint *fluidNodeIndices, const int level) const override
 
uint getNumberOfFluidNodesBorder (unsigned int level) const override
 
void getFluidNodeIndicesBorder (uint *fluidNodeIndices, const int level) const override
 
void getNodeValues (real *xCoords, real *yCoords, real *zCoords, uint *neighborX, uint *neighborY, uint *neighborZ, uint *neighborNegative, uint *geo, const int level) const override
 
void getDimensions (int &nx, int &ny, int &nz, const int level) const override
 
uint getSlipSize (int level) const override
 
void getSlipValues (real *normalX, real *normalY, real *normalZ, int *indices, int level) const override
 
void getSlipQs (real *qs[27], int level) const override
 
uint getStressSize (int level) const override
 
void getStressValues (real *normalX, real *normalY, real *normalZ, int *indices, uint *samplingIndices, real *samplingDistances, real *vonKarmanConstants, real *roughnessLengths, int level) const override
 
void getStressQs (real *qs[27], int level) const override
 
uint getSurfaceLayerSize (int level) const override
 
void getSurfaceLayerValues (real *normalX, real *normalY, real *normalZ, int *indices, real *samplingDistances, uint *samplingIndices, real *vonKarmanConstants, real *roughnessLengths, real *roughnessLengthsTemperature, real *surfaceHeatFluxes, real *surfaceTemperatures, real *heatingRates, int level) const override
 
void getSurfaceLayerQs (real *qs[27], int level) const override
 
uint getVelocitySize (int level) const override
 
void getVelocityValues (real *vx, real *vy, real *vz, int *indices, int level) const override
 
void getVelocityQs (real *qs[27], int level) const override
 
uint getPressureSize (int level) const override
 
void getPressureValues (real *rho, int *indices, int *neighborIndices, int level) const override
 
void getPressureQs (real *qs[27], int level) const override
 
size_t getNumberOfPressureBoundaryConditions (uint level) const override
 
size_t getSizeOfPressureBoundaryCondition (uint level, uint indexInBoundaryConditionVector) const override
 
void getPressureValues (real *density, int *indices, int *neighborIndices, uint level, uint indexInBoundaryConditionVector) const override
 
void getPressureQs (real *qs[27], uint level, uint indexInBoundaryConditionVector) const override
 
size_t getPressureBoundaryConditionDirection (uint level, uint indexInBoundaryConditionVector) const override
 
uint getPrecursorSize (int level) const override
 
void getPrecursorValues (uint *neighbor0PP, uint *neighbor0PM, uint *neighbor0MP, uint *neighbor0MM, real *weights0PP, real *weights0PM, real *weights0MP, real *weights0MM, int *indices, std::vector< SPtr< TransientBCInputFileReader > > &reader, int &numberOfPrecursorNodes, size_t &numberOfQuantities, uint &timeStepsBetweenReads, real &velocityX, real &velocityY, real &velocityZ, int level) const override
 
void getPrecursorQs (real *qs[27], int level) const override
 
uint getADNoFluxSize (int level) const override
 
void getADNoFluxValues (int *indices, int level) const override
 
void getADNoFluxQs (real *qs[27], int level) const override
 
uint getADFluxSize (int level) const override
 
void getADFluxValues (real *normalX, real *normalY, real *normalZ, real *gradient, int *indices, int level) const override
 
void getADFluxQs (real *qs[27], int level) const override
 
uint getADDirichletSize (int level) const override
 
void getADDirichletValues (real *values, real *vx, real *vy, real *vz, int *indices, int level) const override
 
void getADDirichletQs (real *qs[27], int level) const override
 
uint getADNeumannSize (int level) const override
 
void getADNeumannValues (real *gradients, real *vx, real *vy, real *vz, int *indices, int level) const override
 
void getADNeumannQs (real *qs[27], int level) const override
 
size_t getNumberOfADOutflowBoundaryConditions (uint level) const override
 
size_t getSizeOfADOutflowBoundaryCondition (uint level, uint indexInBoundaryConditionVector) const override
 
void getADOutflowValues (int *indices, int *neighborIndices, uint level, uint indexInBoundaryConditionVector) const override
 
void getADOutflowQs (real *qs[27], uint level, uint indexInBoundaryConditionVector) const override
 
size_t getADOutflowBoundaryConditionDirection (uint level, uint indexInBoundaryConditionVector) const override
 
void getGeometryQs (real *qs[27], int level) const override
 
uint getGeometrySize (int level) const override
 
void getGeometryIndices (int *indices, int level) const override
 
bool hasGeometryValues () const override
 
void getGeometryValues (real *vx, real *vy, real *vz, int level) const override
 
void writeArrows (std::string fileName) const override
 
SPtr< grid_generator::BoundaryConditiongetBoundaryCondition (SideType side, uint level) const override
 
SPtr< GeometryBoundaryConditiongetGeometryBoundaryCondition (uint level) const override
 
void getGridInformations (std::vector< int > &gridX, std::vector< int > &gridY, std::vector< int > &gridZ, std::vector< int > &distX, std::vector< int > &distY, std::vector< int > &distZ) override
 
uint getNumberOfGridLevels () const override
 
uint getNumberOfNodesCF (int level) override
 
uint getNumberOfNodesFC (int level) override
 
void getGridInterfaceIndices (uint *iCellCfc, uint *iCellCff, uint *iCellFcc, uint *iCellFcf, int level) const override
 
void getOffsetFC (real *xOffCf, real *yOffCf, real *zOffCf, int level) override
 
void getOffsetCF (real *xOffFc, real *yOffFc, real *zOffFc, int level) override
 
uint getNumberOfSendIndices (int direction, uint level) override
 
uint getNumberOfReceiveIndices (int direction, uint level) override
 
void getSendIndices (uint *sendIndices, int direction, int level) override
 
void getReceiveIndices (uint *sendIndices, int direction, int level) override
 
void findFluidNodes (bool splitDomain) override
 
void addFluidNodeIndicesMacroVars (const std::vector< uint > &fluidNodeIndicesMacroVars, uint level) override
 
void addFluidNodeIndicesApplyBodyForce (const std::vector< uint > &fluidNodeIndicesApplyBodyForce, uint level) override
 
void addFluidNodeIndicesAllFeatures (const std::vector< uint > &fluidNodeIndicesAllFeatures, uint level) override
 
void addAllFluidNodeIndicesToAllFeatures (uint level) override
 
void sortFluidNodeIndicesMacroVars (uint level) override
 
void sortFluidNodeIndicesApplyBodyForce (uint level) override
 
void sortFluidNodeIndicesAllFeatures (uint level) override
 
uint getNumberOfFluidNodesMacroVars (unsigned int level) const override
 
void getFluidNodeIndicesMacroVars (uint *fluidNodeIndicesMacroVars, const int level) const override
 
uint getNumberOfFluidNodesApplyBodyForce (unsigned int level) const override
 
void getFluidNodeIndicesApplyBodyForce (uint *fluidNodeIndicesApplyBodyForce, const int level) const override
 
uint getNumberOfFluidNodesAllFeatures (unsigned int level) const override
 
void getFluidNodeIndicesAllFeatures (uint *fluidNodeIndicesAllFeatures, const int level) const override
 
- Public Member Functions inherited from vf::gpu::GridBuilder
virtual ~GridBuilder ()
 

Additional Inherited Members

- Public Types inherited from vf::gpu::GridBuilder
enum class  GenerationDevice { CPU , GPU }
 
- Static Public Member Functions inherited from vf::gpu::LevelGridBuilder
static std::shared_ptr< LevelGridBuildermakeShared ()
 
- Protected Member Functions inherited from vf::gpu::LevelGridBuilder
 LevelGridBuilder ()
 
void checkLevel (int level)
 
void setVelocityGeometryBoundaryCondition (real vx, real vy, real vz)
 
void setNoSlipGeometryBoundaryCondition ()
 
void setSlipGeometryBoundaryCondition (real normalX, real normalY, real normalZ)
 
void createBCVectors ()
 
void addShortQsToVector (int index)
 
void addQsToVector (int index)
 
void fillRBForNode (int index, int direction, int directionSign, int rb)
 
Vertex getVertex (const int matrixIndex) const
 
- Protected Attributes inherited from vf::gpu::LevelGridBuilder
bool geometryHasValues = false
 
std::vector< std::shared_ptr< Grid > > grids
 
std::vector< SPtr< BoundaryConditions > > boundaryConditions
 
std::array< uint, 6 > communicationProcesses
 

Detailed Description

Definition at line 52 of file MultipleGridBuilder.h.

Constructor & Destructor Documentation

◆ MultipleGridBuilder()

vf::gpu::MultipleGridBuilder::MultipleGridBuilder ( )

Definition at line 57 of file MultipleGridBuilder.cpp.

Member Function Documentation

◆ addCoarseGrid() [1/2]

void vf::gpu::MultipleGridBuilder::addCoarseGrid ( const GridDimensions gridDimensions)
virtual

Reimplemented in MockMultipleGridBuilder.

Definition at line 90 of file MultipleGridBuilder.cpp.

◆ addCoarseGrid() [2/2]

void vf::gpu::MultipleGridBuilder::addCoarseGrid ( real  startX,
real  startY,
real  startZ,
real  endX,
real  endY,
real  endZ,
real  delta 
)
virtual

Definition at line 75 of file MultipleGridBuilder.cpp.

◆ addGeometry() [1/2]

void vf::gpu::MultipleGridBuilder::addGeometry ( SPtr< Object gridShape)
virtual

Definition at line 96 of file MultipleGridBuilder.cpp.

◆ addGeometry() [2/2]

void vf::gpu::MultipleGridBuilder::addGeometry ( SPtr< Object solidObject,
uint  level 
)

Definition at line 110 of file MultipleGridBuilder.cpp.

◆ addGrid() [1/2]

void vf::gpu::MultipleGridBuilder::addGrid ( SPtr< Object gridShape)
virtual

Definition at line 122 of file MultipleGridBuilder.cpp.

◆ addGrid() [2/2]

void vf::gpu::MultipleGridBuilder::addGrid ( SPtr< Object gridShape,
uint  levelFine 
)
virtual

Definition at line 132 of file MultipleGridBuilder.cpp.

◆ buildGrids()

void vf::gpu::MultipleGridBuilder::buildGrids ( bool  enableThinWalls = false)
virtual

Reimplemented in MockMultipleGridBuilder.

Definition at line 495 of file MultipleGridBuilder.cpp.

◆ findCommunicationIndices()

void vf::gpu::MultipleGridBuilder::findCommunicationIndices ( int  direction,
bool  doShift = false 
)
virtual

Definition at line 659 of file MultipleGridBuilder.cpp.

◆ getDelta()

real vf::gpu::MultipleGridBuilder::getDelta ( uint  level) const

Definition at line 427 of file MultipleGridBuilder.cpp.

◆ getEndX()

real vf::gpu::MultipleGridBuilder::getEndX ( uint  level) const

Definition at line 449 of file MultipleGridBuilder.cpp.

◆ getEndY()

real vf::gpu::MultipleGridBuilder::getEndY ( uint  level) const

Definition at line 454 of file MultipleGridBuilder.cpp.

◆ getEndZ()

real vf::gpu::MultipleGridBuilder::getEndZ ( uint  level) const

Definition at line 459 of file MultipleGridBuilder.cpp.

◆ getGrids()

std::vector< SPtr< Grid > > vf::gpu::MultipleGridBuilder::getGrids ( ) const

Definition at line 469 of file MultipleGridBuilder.cpp.

◆ getNumberOfLevels()

uint vf::gpu::MultipleGridBuilder::getNumberOfLevels ( ) const

Definition at line 422 of file MultipleGridBuilder.cpp.

◆ getStartX()

real vf::gpu::MultipleGridBuilder::getStartX ( uint  level) const

Definition at line 434 of file MultipleGridBuilder.cpp.

◆ getStartY()

real vf::gpu::MultipleGridBuilder::getStartY ( uint  level) const

Definition at line 439 of file MultipleGridBuilder.cpp.

◆ getStartZ()

real vf::gpu::MultipleGridBuilder::getStartZ ( uint  level) const

Definition at line 444 of file MultipleGridBuilder.cpp.

◆ setNumberOfLayers()

void vf::gpu::MultipleGridBuilder::setNumberOfLayers ( uint  numberOfLayersFine,
uint  numberOfLayersBetweenLevels 
)
virtual

Definition at line 642 of file MultipleGridBuilder.cpp.

◆ setSubDomainBox()

void vf::gpu::MultipleGridBuilder::setSubDomainBox ( SPtr< BoundingBox subDomainBox)
virtual

Definition at line 682 of file MultipleGridBuilder.cpp.

◆ setTriangularMeshDiscretizationMethod()

void vf::gpu::MultipleGridBuilder::setTriangularMeshDiscretizationMethod ( TriangularMeshDiscretizationMethod  method)

Definition at line 63 of file MultipleGridBuilder.cpp.

◆ setTriangularMeshDiscretizationStrategy()

void vf::gpu::MultipleGridBuilder::setTriangularMeshDiscretizationStrategy ( SPtr< TriangularMeshDiscretizationStrategy strategy)

Definition at line 69 of file MultipleGridBuilder.cpp.

◆ writeGridsToVtk()

void vf::gpu::MultipleGridBuilder::writeGridsToVtk ( const std::string &  path) const

Definition at line 670 of file MultipleGridBuilder.cpp.


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