VirtualFluids 0.2.0
Parallel CFD LBM Solver
Loading...
Searching...
No Matches

Namespaces

namespace  ad
 
namespace  communication_directions
 
namespace  edge_node_debug_writer
 
namespace  grid_generator
 
namespace  grid_generator_test
 
namespace  grid_winding
 Helper functions for GPU boundary-link processing and Q computation on triangle surfaces.
 
namespace  index_rearrangement_tests
 
namespace  interface_debug_writer
 
namespace  neighbor_debug_writer
 
namespace  q_debug_vtk_writer
 
namespace  q_debug_writer
 
namespace  tests
 
namespace  unstructured_grid_writer
 

Classes

class  ActuatorFarm
 
class  ActuatorFarmStandalone
 
class  ActuatorFarmStandaloneVAWT
 
class  ADDirichletBoundaryCondition
 
class  ADFluxBoundaryCondition
 
class  ADNeumannBoundaryCondition
 
class  ADNoFluxBoundaryCondition
 
class  ADOutflowBoundaryCondition
 
struct  AdvectionDiffusionDirichletBoundaryConditions
 
struct  AdvectionDiffusionFluxBoundaryConditions
 
class  AdvectionDiffusionKernel
 
struct  AdvectionDiffusionNeumannBoundaryConditions
 
struct  AdvectionDiffusionNoFluxBoundaryConditions
 
class  AnalysisData
 
class  Arrow
 
class  ArrowImp
 
class  ArrowTransformator
 
class  ASCIIRestartObject
 
class  B15CompressibleNavierStokesBGKplus
 
class  B15IncompressibleNavierStokesBGKplus
 
class  B92CompressibleNavierStokes
 
class  B92IncompressibleNavierStokes
 
class  BinaryRestartObject
 
class  BoundaryConditionFactory
 
class  BoundaryConditionKernelManager
 
class  BoundaryQs
 
class  BoundaryValues
 
class  BoundingBox
 
class  BuoyancyProviderConstantValue
 
class  BuoyancyProviderPlanarAverage
 
class  Cell
 
class  CollisionAndExchange_noStreams_indexKernel
 Version of collision: for multi-gpu simulations, without communication hiding ("streams"), for newer kernels that use an array of fluid nodes to determine which nodes to update. More...
 
class  CollisionAndExchange_noStreams_oldKernel
 Version of collision: for multi-gpu simulations, without communication hiding ("streams"), for old kernels. More...
 
class  CollisionAndExchange_streams
 Version of collision: for multi-gpu simulations, with communication hiding ("streams"), for newer kernels that use an array of fluid nodes to determine which nodes to update. More...
 
class  CommunicatorDouble
 
class  Conglomerate
 
class  CoordNeighborGeoV
 
class  CoriolisForce
 Interactor to compute Coriolis force. All parameters in SI units. More...
 
struct  countersForPointerChasing
 
class  Cuboid
 
class  CudaMemoryManager
 
class  CudaStreamManager
 
class  Cylinder
 
class  DampingLayer
 
class  DataWriter
 
struct  Direction
 
struct  Distribution
 
class  DistributionDebugInspector
 Basic debugging class to print out f's in a certain area of the domain. More...
 
class  DistributionDebugWriter
 Functions to write the distributions ("f's") to a VTK-file. More...
 
class  DistributionHelper
 
struct  Distributions27
 
class  EnstrophyAnalyzer
 
class  F16CompressibleAdvectionDiffusion
 
class  F16IncompressibleAdvectionDiffusion
 
class  Field
 
class  FileCollection
 
class  FilePartCalculator
 calculations needed for writing the simulation's output into multiple file parts More...
 
class  FileWriter
 
class  ForceCalculations
 
class  Forest
 
class  Geometry
 
class  GeometryBoundaryCondition
 
class  Grid
 
class  GridBuilder
 
struct  GridDimensions
 
class  GridFactory
 
class  GridGenerator
 mapping the grid of grid generator to data structure for simulation More...
 
class  GridGeneratorTests_initalValuesDomainDecompostion
 
class  GridImp
 
class  GridInterface
 
struct  GridParameter
 
class  GridProvider
 
class  GridReader
 
class  GridScalingFactory
 
class  GridScalingKernelManager
 manage the cuda kernel calls More...
 
class  GridVTKWriter
 
class  GridWindingWriter
 GPU-side wrapper that forwards grid-winding diagnostics collections to the common, platform-agnostic writers and provides helpers to collect diagnostics from GPU grids. More...
 
struct  ICellNeigh
 stores location of neighboring cell (necessary for refinement into the wall) More...
 
struct  ICells
 
struct  IDS
 
class  IndexRearrangementForStreams
 class that is used to rearrange the arrays of node indices for communication between gpus. The rearrangement is needed for communication hiding with cuda streams More...
 
class  IndexRearrangementForStreamsTest_exchangeIndicesForCommAfterFtoC
 
class  IndexRearrangementForStreamsTest_reorderRecvIndices
 
class  IndexRearrangementForStreamsTest_reorderSendIndices
 
class  InitAdvectionDiffusionCompressible
 
class  InitAdvectionDiffusionIncompressible
 
class  InitNavierStokesCompressible
 
class  InitNavierStokesIncompressible
 
struct  IntegerPtr2D
 
class  InterpolationCellGrouper
 Split the interpolation cells into two groups: cells which are at the border between gpus and therefore involved in the communication between gpus, and cells which are not directly related to the communication between gpus. More...
 
class  invalidDelta
 
class  K15CompressibleNavierStokes
 
class  K15IncompressibleNavierStokes
 
class  K17CompressibleNavierStokes
 
class  Kernel
 
class  KernelFactory
 
class  KernelFactoryImp
 
class  KernelImp
 
class  KineticEnergyAnalyzer
 
struct  LBMSimulationParameter
 struct holds and manages the LB-parameter of the simulation More...
 
class  LevelGridBuilder
 
struct  ListIndices
 
class  MeasuredPoints
 
struct  MeasurePoints
 
class  MeasurePointWriter
 
class  MultipleGridBuilder
 
class  MultipleGridBuilderFacade
 Simplifies the creation of the grids for a multi-gpu simulation. More...
 
class  MX
 
class  MY
 
class  MZ
 
class  NoRefinement
 Version of refinement: for uniform simulations (no grid refinement) More...
 
class  Object
 
class  OffsetScale
 
class  OffsetWriter
 
class  Parameter
 Class for LBM-parameter management. More...
 
class  PerformanceMeasurement
 
class  PlanarAverageProbe
 Computes spatial statistics across x, y or z-normal planes defined by planeNormal. The planes include all points of the domain at each respective position along that normal direction. The spatial statistics can additionally be averaged in time. The name phi is used to denote the scalar field. More...
 
struct  Point
 
class  PointInObjectDiscretizationStrategy
 
class  PointUnderTriangleStrategy
 
class  PositionVectorIntegerWriter
 
class  PositionWriter
 
class  PreCollisionInteractor
 
class  PrecursorBoundaryCondition
 
class  PrecursorWriter
 Probe writing planes of data to be used as inflow data in successor simulation using PrecursorBC The probe writes out yz-planes at a specific x position (. More...
 
class  PreProcessor
 
class  PreProcessorFactory
 
class  PreProcessorFactoryImp
 
class  PreProcessorImp
 
class  PreProcessorStrategy
 
class  PressureBoundaryCondition
 
class  Probe
 Computes statistics of pointwise data. Data can be written to vtk-file or timeseries file. All points and planes are written to the same file. Use different probes to write to separate files. Data is sampled in synchronous timestep, unless sampleEveryTimestep is set to true. More...
 
struct  ProcessNeighbor27
 
class  PX
 
class  PY
 
class  PZ
 
struct  QforBoundaryConditions
 
struct  QforDirectionalADBoundaryCondition
 
struct  QforDirectionalBoundaryCondition
 
struct  QforPrecursorBoundaryConditions
 
class  QLineWriter
 
struct  Quantity
 
class  RayCastingDiscretizationStrategy
 
class  ReaderMeasurePoints
 
struct  RecvIndicesForCommAfterFtoC
 
class  Refinement_noExchange
 Version of refinement: for single-gpu simulations. More...
 
class  RefinementAndExchange_noStreams_exchangeAllNodes
 Version of refinement: for multi-gpu simulations, without communication hiding ("streams"), exchange all nodes. More...
 
class  RefinementAndExchange_noStreams_exchangeInterface
 Version of refinement: for multi-gpu simulations, without communication hiding ("streams"), only exchange the interpolated cells. More...
 
class  RefinementAndExchange_streams_exchangeAllNodes
 Version of refinement: for multi-gpu simulations, with communication hiding ("streams"), exchange all nodes. More...
 
class  RefinementAndExchange_streams_exchangeInterface
 Version of refinement: for multi-gpu simulations, with communication hiding ("streams"), only exchange the interpolated cells. More...
 
class  RestartObject
 
class  Sampler
 Base class for all samplers. More...
 
struct  SendIndicesForCommAfterFtoCX
 
class  Side
 
class  SideFactory
 
class  Simulation
 
struct  simulationFileNames
 
class  SimulationFileWriter
 
class  SlipBoundaryCondition
 
class  Sphere
 
class  STLReader
 
class  STLWriter
 
class  StressBoundaryCondition
 
struct  SubgridDistances27
 
class  SurfaceLayerBoundaryCondition
 
struct  SurfaceLayerWallModelParameters
 
struct  TemperatureBoundaryParameters
 
struct  TemperatureParameters
 
struct  TemperatureWallModelParameters
 
class  TimeStepTimer
 
class  Transformator
 
class  TransformatorImp
 
class  TransientBCInputFileReader
 
struct  Triangle
 
class  TriangleNeighborFinder
 
class  TriangleRefinement
 
class  TriangularMesh
 
class  TriangularMeshDiscretizationStrategy
 
struct  TurbinePointIndex
 
class  TurbulenceModelFactory
 
class  TurbulenceModelManager
 
class  UpdateGrid27
 
class  VelocityBoundaryCondition
 
struct  Vertex
 
class  VerticalCylinder
 
class  VTKFile
 
class  VTKFileCollection
 
class  VTKReader
 
struct  WallModelParameters
 
class  WallModelProbe
 Probe computing statistics of all relevant wall model quantities used in the StressBC kernels Computes spatial statistics for all grid points of the StressBC The spatial statistics can additionally be averaged in time. More...
 
class  WriterUtilities
 

Typedefs

using BoundaryConditionKernel = std::function< void(LBMSimulationParameter *, QforBoundaryConditions *)>
 
using DirectionalBoundaryConditionKernel = std::function< void(LBMSimulationParameter *, QforDirectionalBoundaryCondition *)>
 
using BoundaryConditionWithParameterKernel = std::function< void(Parameter *, QforBoundaryConditions *, const int level)>
 
using PrecursorBoundaryConditionKernel = std::function< void(LBMSimulationParameter *, QforPrecursorBoundaryConditions *, real timeRatio, real velocityRatio)>
 
using AdvectionDiffusionNoFluxBoundaryConditionKernel = std::function< void(LBMSimulationParameter *, AdvectionDiffusionNoFluxBoundaryConditions)>
 
using AdvectionDiffusionFluxBoundaryConditionKernel = std::function< void(LBMSimulationParameter *, AdvectionDiffusionFluxBoundaryConditions)>
 
using AdvectionDiffusionDirichletBoundaryConditionKernel = std::function< void(LBMSimulationParameter *, AdvectionDiffusionDirichletBoundaryConditions)>
 
using AdvectionDiffusionNeumannBoundaryConditionKernel = std::function< void(LBMSimulationParameter *, AdvectionDiffusionNeumannBoundaryConditions)>
 
using DirectionalADBoundaryConditionKernel = std::function< void(LBMSimulationParameter *, QforDirectionalADBoundaryCondition *)>
 
using ADNoFluxBoundaryConditionKernel = std::function< void(LBMSimulationParameter *, AdvectionDiffusionNoFluxBoundaryConditions bcParams)>
 
using ADFluxBoundaryConditionKernel = std::function< void(LBMSimulationParameter *, AdvectionDiffusionFluxBoundaryConditions bcParams)>
 
using ADDirichletBoundaryConditionKernel = std::function< void(LBMSimulationParameter *, AdvectionDiffusionDirichletBoundaryConditions bcParams)>
 
using ADNeumannBoundaryConditionKernel = std::function< void(LBMSimulationParameter *, AdvectionDiffusionNeumannBoundaryConditions bcParams)>
 
using InterpolationCells = ICells
 
using InterpolationCellNeighbor = ICellNeigh
 
using DistributionReferences27 = Distributions27
 
using CollisionStrategy = std::function< void(UpdateGrid27 *updateGrid, Parameter *para, int level, unsigned int t)>
 
using RefinementStrategy = std::function< void(UpdateGrid27 *updateGrid, Parameter *para, int level)>
 
using LBMSimulationParameters = std::vector< std::shared_ptr< LBMSimulationParameter > >
 
using gridScaling = std::function< void(LBMSimulationParameter *, LBMSimulationParameter *, ICells *, ICellNeigh &, CUstream_st *stream)>
 
using gridScalingAdvectionDiffusion = std::function< void(LBMSimulationParameter *, LBMSimulationParameter *, ICells *, ICellNeigh &, CUstream_st *stream)>
 

Enumerations

enum class  CollisionTemplate {
  Default , WriteMacroVars , ApplyBodyForce , AllFeatures ,
  SubDomainBorder
}
 An enumeration for selecting a template of the collision kernel (CumulantK17) More...
 
enum class  CudaStreamIndex {
  Legacy , Bulk , SubDomainBorder , Precursor ,
  ActuatorFarm , PrecursorWriter , BuoyancyProvider
}
 
enum class  PlantAreaDensityFunction { Flat , BottomHeavy , TopHeavy }
 
enum  PreProcessorType { InitNavierStokesIncompressible , InitNavierStokesCompressible , InitAdvectionDiffusionIncompressible , InitAdvectionDiffusionCompressible }
 
enum class  DiscretizationMethod { RAYCASTING , POINT_IN_OBJECT , POINT_UNDER_TRIANGLE }
 
enum class  SideType {
  MX , PX , MY , PY ,
  MZ , PZ , GEOMETRY
}
 
enum class  TriangularMeshDiscretizationMethod { RAYCASTING , POINT_IN_OBJECT , POINT_UNDER_TRIANGLE }
 
enum class  WRITING_FORMAT { BINARY , ASCII }
 
enum class  FILEFORMAT { BINARY , ASCII }
 
enum class  TransientBCFileType { VTK }
 

Functions

void AdvectionDiffusionNoFluxBounceBack (LBMSimulationParameter *parameterDevice, AdvectionDiffusionNoFluxBoundaryConditions bcParameters)
 
void AdvectionDiffusionFluxTurbulentViscosityCompressible (LBMSimulationParameter *parameterDevice, AdvectionDiffusionFluxBoundaryConditions bcParameters)
 
void AdvectionDiffusionFluxCompressible (LBMSimulationParameter *parameterDevice, AdvectionDiffusionFluxBoundaryConditions bcParameters)
 
void AdvectionDiffusionFluxBounceBack (LBMSimulationParameter *parameterDevice, AdvectionDiffusionFluxBoundaryConditions bcParameters)
 
void AdvectionDiffusionDirichletAntiBounceBackSlip (LBMSimulationParameter *parameterDevice, AdvectionDiffusionDirichletBoundaryConditions bcParameters)
 
void AdvectionDiffusionDirichletInterpolatedSlip (LBMSimulationParameter *parameterDevice, AdvectionDiffusionDirichletBoundaryConditions bcParameters)
 
void AdvectionDiffusionDirichletAntiBounceBackNoSlip (LBMSimulationParameter *parameterDevice, AdvectionDiffusionDirichletBoundaryConditions bcParameters)
 
void AdvectionDiffusionDirichletInterpolatedNoSlip (LBMSimulationParameter *parameterDevice, AdvectionDiffusionDirichletBoundaryConditions bcParameters)
 
void AdvectionDiffusionNeumannAntiBounceBackSlip (LBMSimulationParameter *parameterDevice, AdvectionDiffusionNeumannBoundaryConditions bcParameters)
 
void AdvectionDiffusionNeumannInterpolatedSlip (LBMSimulationParameter *parameterDevice, AdvectionDiffusionNeumannBoundaryConditions bcParameters)
 
void AdvectionDiffusionNeumannAntiBounceBackNoSlip (LBMSimulationParameter *parameterDevice, AdvectionDiffusionNeumannBoundaryConditions bcParameters)
 
void AdvectionDiffusionNeumannInterpolatedNoSlip (LBMSimulationParameter *parameterDevice, AdvectionDiffusionNeumannBoundaryConditions bcParameters)
 
void AdvectionDiffusionDirectionalOutflowNonReflecting (LBMSimulationParameter *parameterDevice, QforDirectionalADBoundaryCondition *boundaryCondition)
 
void NoSlipBounceBack (LBMSimulationParameter *parameterDevice, QforBoundaryConditions *boundaryCondition)
 
void NoSlipInterpolatedIncompressible (LBMSimulationParameter *parameterDevice, QforBoundaryConditions *boundaryCondition)
 
void NoSlipInterpolatedCompressible (LBMSimulationParameter *parameterDevice, QforBoundaryConditions *boundaryCondition)
 
void OutflowNonReflecting (LBMSimulationParameter *parameterDevice, QforDirectionalBoundaryCondition *boundaryCondition)
 
void OutflowNonReflectingPressureCorrection (LBMSimulationParameter *parameterDevice, QforDirectionalBoundaryCondition *boundaryCondition)
 
void PrecursorNonReflectiveCompressible (LBMSimulationParameter *parameterDevice, QforPrecursorBoundaryConditions *boundaryCondition, real tRatio, real velocityRatio)
 
void PrecursorDistributions (LBMSimulationParameter *parameterDevice, QforPrecursorBoundaryConditions *boundaryCondition, real tRatio, real velocityRatio)
 
void PrecursorTemperatureDistributions (LBMSimulationParameter *parameterDevice, QforPrecursorBoundaryConditions *boundaryCondition, real tRatio, real velocityRatio)
 
void PressureNonEquilibriumIncompressible (LBMSimulationParameter *parameterDevice, QforDirectionalBoundaryCondition *boundaryCondition)
 
void PressureNonEquilibriumCompressible (LBMSimulationParameter *parameterDevice, QforDirectionalBoundaryCondition *boundaryCondition)
 
void SlipBounceBack (LBMSimulationParameter *parameterDevice, QforBoundaryConditions *boundaryCondition)
 
void SlipCompressible (LBMSimulationParameter *parameterDevice, QforBoundaryConditions *boundaryCondition)
 
void SlipTurbulentViscosityCompressible (LBMSimulationParameter *parameterDevice, QforBoundaryConditions *boundaryCondition)
 
GridParameter getStressBCGridParameter (LBMSimulationParameter *parameterDevice)
 
void StressBounceBackCompressible (LBMSimulationParameter *parameterDevice, QforBoundaryConditions *boundaryCondition)
 
void StressBounceBackWithPressureCompressible (LBMSimulationParameter *parameterDevice, QforBoundaryConditions *boundaryCondition)
 
void StressInterpolatedCompressible (LBMSimulationParameter *parameterDevice, QforBoundaryConditions *boundaryCondition)
 
void SurfaceLayerBounceBackCompressibleHeatFlux (LBMSimulationParameter *parameterDevice, QforBoundaryConditions *surfaceLayerBoundaryCondition)
 
void SurfaceLayerBounceBackWithPressureCompressibleHeatFlux (LBMSimulationParameter *parameterDevice, QforBoundaryConditions *surfaceLayerBoundaryCondition)
 
void SurfaceLayerInterpolatedCompressibleHeatFlux (LBMSimulationParameter *parameterDevice, QforBoundaryConditions *surfaceLayerBoundaryCondition)
 
void SurfaceLayerBounceBackCompressibleSurfaceTemperature (LBMSimulationParameter *parameterDevice, QforBoundaryConditions *surfaceLayerBoundaryCondition)
 
void SurfaceLayerBounceBackWithPressureCompressibleSurfaceTemperature (LBMSimulationParameter *parameterDevice, QforBoundaryConditions *surfaceLayerBoundaryCondition)
 
void SurfaceLayerInterpolatedCompressibleSurfaceTemperature (LBMSimulationParameter *parameterDevice, QforBoundaryConditions *surfaceLayerBoundaryCondition)
 
constexpr real smoothAndSaveMean (real instantaneous, real filterFrequency, real &mean)
 
constexpr real3 computeTangentialVector (real3 quantity, real3 normal)
 
__device__ real computeMagnitude (real3 vector)
 
__device__ real computeFrictionVelocity (const real velocity, const real vonKarmanConstant, const real samplingDistance, const real roughnessLength, const real stabilityCorrection)
 
__device__ real computeSurfaceHeatFlux (const real temperatureDifference, const real frictionVelocity, const real vonKarmanConstant, const real samplingDistance, const real roughnessLength, const real stabilityCorrection)
 
constexpr real3 computeWallShearStress (const real frictionVelocity, const real3 velocityTangential, const real velocityTangentialMeanMagnitude, const real density)
 
constexpr real computeStabilityParameter (const real height, const real gravity, const real surfaceHeatFlux, const real frictionVelocity, const real referenceTemperature, const real vonKarmanConstant)
 
__device__ __host__ real computeStabilityCorrectionTemperature (const real stabilityParameter)
 ISBN:9780120593545 ]
 
__device__ real computeStabilityCorrectionMomentum (const real stabilityParameter)
 
void VelocityBounceBack (LBMSimulationParameter *parameterDevice, QforBoundaryConditions *boundaryCondition)
 
void VelocityInterpolatedIncompressible (LBMSimulationParameter *parameterDevice, QforBoundaryConditions *boundaryCondition)
 
void VelocityInterpolatedCompressible (LBMSimulationParameter *parameterDevice, QforBoundaryConditions *boundaryCondition)
 
void VelocityWithPressureInterpolatedCompressible (LBMSimulationParameter *parameterDevice, QforBoundaryConditions *boundaryCondition)
 
std::function< void(UpdateGrid27 *updateGrid, Parameter *para, int level, unsigned int t)> getFunctionForCollisionAndExchange (const bool useStreams, const int numberOfMpiProcesses, const bool kernelNeedsFluidNodeIndicesToRun)
 get a function which performs the collision operator and performs the communication between gpus/ processes
 
std::string getFileName (const std::string &fname, int step, int myID)
 
void collectNodesInSendBufferGPU (Parameter *para, int level, CudaStreamIndex streamIndex, const std::vector< ProcessNeighbor27 > &sendProcessNeighborsDevice)
 Routines for data exchange when running simulations on multiple GPUs.
 
void scatterNodesFromRecvBufferGPU (Parameter *para, int level, CudaStreamIndex streamIndex, const std::vector< ProcessNeighbor27 > &recvProcessNeighborsDevice)
 Distribute the receive nodes from the buffer on the gpu.
 
void startNonBlockingMpiSend (vf::parallel::Communicator &comm, const std::vector< ProcessNeighbor27 > &sendProcessNeighborsHost, const bool diffOn)
 
void startNonBlockingMpiReceive (vf::parallel::Communicator &comm, const std::vector< ProcessNeighbor27 > &recvProcessNeighborsHost, const bool diffOn)
 
void copyEdgeNodes (const std::vector< LBMSimulationParameter::EdgeNodePositions > &edgeNodes, const std::vector< ProcessNeighbor27 > &recvProcessNeighborsHost, const std::vector< ProcessNeighbor27 > &sendProcessNeighborsHost, bool diffOn)
 Copy nodes which are part of the communication in multiple directions.
 
void exchangeCollDataGPU27 (Parameter *para, vf::parallel::Communicator &comm, const CudaMemoryManager *cudaMemoryManager, CudaStreamIndex streamIndex, const std::vector< ProcessNeighbor27 > &sendProcessNeighborsDevice, const std::vector< ProcessNeighbor27 > &recvProcessNeighborsDevice, const std::vector< ProcessNeighbor27 > &sendProcessNeighborsHost, const std::vector< ProcessNeighbor27 > &recvProcessNeighborsHost, const std::optional< std::vector< ProcessNeighbor27 > > &recvProcessNeighborsHostX=std::nullopt, const std::optional< std::vector< LBMSimulationParameter::EdgeNodePositions > > &edgeNodesX=std::nullopt, const std::optional< std::vector< ProcessNeighbor27 > > &recvProcessNeighborsHostY=std::nullopt, const std::optional< std::vector< LBMSimulationParameter::EdgeNodePositions > > &edgeNodesY=std::nullopt)
 Exchange routine for simulations on multiple gpus.
 
void prepareExchangeCollDataXGPU27AllNodes (Parameter *para, int level, CudaStreamIndex streamIndex)
 Collect the send nodes for communication in the x direction in a buffer on the gpu.
 
void prepareExchangeCollDataXGPU27AfterFtoC (Parameter *para, int level, CudaStreamIndex streamIndex)
 Collect the send nodes for communication in the x direction in a buffer on the gpu.
 
void exchangeCollDataXGPU27AllNodes (Parameter *para, vf::parallel::Communicator &comm, const CudaMemoryManager *cudaMemoryManager, int level, CudaStreamIndex streamIndex)
 Calls exchangeCollDataXGPU27() for exchanging all nodes.
 
void exchangeCollDataXGPU27AfterFtoC (Parameter *para, vf::parallel::Communicator &comm, const CudaMemoryManager *cudaMemoryManager, int level, CudaStreamIndex streamIndex)
 Calls exchangeCollDataGPU27() for exchanging the nodes, which are part of the communication between the two interpolation processes on refined grids.
 
void scatterNodesFromRecvBufferXGPU27AllNodes (Parameter *para, int level, CudaStreamIndex streamIndex)
 Distribute the receive nodes (x direction) from the buffer on the gpu.
 
void scatterNodesFromRecvBufferXGPU27AfterFtoC (Parameter *para, int level, CudaStreamIndex streamIndex)
 Distribute the receive nodes (x direction) from the buffer on the gpu.
 
void prepareExchangeCollDataYGPU27AllNodes (Parameter *para, int level, CudaStreamIndex streamIndex)
 
void prepareExchangeCollDataYGPU27AfterFtoC (Parameter *para, int level, CudaStreamIndex streamIndex)
 
void exchangeCollDataYGPU27AllNodes (Parameter *para, vf::parallel::Communicator &comm, const CudaMemoryManager *cudaMemoryManager, int level, CudaStreamIndex streamIndex)
 
void exchangeCollDataYGPU27AfterFtoC (Parameter *para, vf::parallel::Communicator &comm, const CudaMemoryManager *cudaMemoryManager, int level, CudaStreamIndex streamIndex)
 
void scatterNodesFromRecvBufferYGPU27AllNodes (Parameter *para, int level, CudaStreamIndex streamIndex)
 
void scatterNodesFromRecvBufferYGPU27AfterFtoC (Parameter *para, int level, CudaStreamIndex streamIndex)
 
void prepareExchangeCollDataZGPU27AllNodes (Parameter *para, int level, CudaStreamIndex streamIndex)
 
void prepareExchangeCollDataZGPU27AfterFtoC (Parameter *para, int level, CudaStreamIndex streamIndex)
 
void exchangeCollDataZGPU27AllNodes (Parameter *para, vf::parallel::Communicator &comm, const CudaMemoryManager *cudaMemoryManager, int level, CudaStreamIndex streamIndex)
 
void exchangeCollDataZGPU27AfterFtoC (Parameter *para, vf::parallel::Communicator &comm, const CudaMemoryManager *cudaMemoryManager, int level, CudaStreamIndex streamIndex)
 
void scatterNodesFromRecvBufferZGPU27AllNodes (Parameter *para, int level, CudaStreamIndex streamIndex)
 
void scatterNodesFromRecvBufferZGPU27AfterFtoC (Parameter *para, int level, CudaStreamIndex streamIndex)
 
bool indexInArray (const uint *array, uint numberOfElements, uint index)
 
bool indexInVector (const std::vector< uint > &vector, uint index)
 
std::function< void(UpdateGrid27 *updateGrid, Parameter *para, int level)> getFunctionForRefinementAndExchange (const bool useStreams, const int numberOfMpiProcesses, const int maxLevel, const bool useReducedCommunicationAfterFtoC) noexcept
 get a function which performs the interpolation between grid levels and performs the communication between gpus/ processes
 
void createFileNames (std::vector< std::string > &fileNames, uint numberOfParts, uint level, uint timestep, const Parameter &para)
 
void createNodeDataNames (std::vector< std::string > &nodeDataNames)
 
std::string makeCollectionFileNameEnding (int ID, int timestep)
 
std::string makePartFileName (const std::string &prefix, uint level, int ID, int part, int timestep)
 
std::string makeMeanPartFileName (const std::string &prefix, uint level, int ID, int part, int timestep)
 
std::string makeCollectionFileName (const std::string &prefix, int ID, int timestep)
 
std::string makeMeanCollectionFileName (const std::string &prefix, int ID, int timestep)
 
std::string makePvdCollectionFileName (const std::string &prefix, int mpiProcessID)
 
vf::basics::MetaData createMetaData (const Parameter &parameter)
 
void findEdgeNodesXY (LBMSimulationParameter &parameterLB)
 Find nodes that are both received in the x-direction and sent in the y-direction.
 
void findEdgeNodesXZ (LBMSimulationParameter &parameterLB)
 Find nodes that are both received in the x-direction and sent in the z-direction.
 
void findEdgeNodesYZ (LBMSimulationParameter &parameterLB)
 Find nodes that are both received in the y-direction and sent in the z-direction.
 
void findEdgeNodes (const std::vector< ProcessNeighbor27 > &recvProcessNeighbor, const std::vector< ProcessNeighbor27 > &sendProcessNeighbor, std::vector< LBMSimulationParameter::EdgeNodePositions > &edgeNodes)
 
std::optional< std::pair< uint, uint > > findIndexInSendNodes (uint nodeIndex, const std::vector< ProcessNeighbor27 > &sendProcessNeighbor)
 
void findEdgeNodesCommMultiGPU (Parameter &parameter)
 Function for finding edge nodes in the multi-gpu implementation.
 
void alloc2ndMoments (Parameter *para, CudaMemoryManager *cudaMemoryManager)
 
void init2ndMoments (Parameter *para)
 
void calc2ndMoments (Parameter *para, CudaMemoryManager *cudaMemoryManager)
 
void alloc3rdMoments (Parameter *para, CudaMemoryManager *cudaMemoryManager)
 
void init3rdMoments (Parameter *para)
 
void calc3rdMoments (Parameter *para, CudaMemoryManager *cudaMemoryManager)
 
void allocHigherOrderMoments (Parameter *para, CudaMemoryManager *cudaMemoryManager)
 
void initHigherOrderMoments (Parameter *para)
 
void calcHigherOrderMoments (Parameter *para, CudaMemoryManager *cudaMemoryManager)
 
void allocMean (Parameter *para, CudaMemoryManager *cudaMemoryManager)
 
void calcMean (Parameter *para, uint tdiff)
 
void resetMean (Parameter *para)
 
void allocMeanAD (Parameter *para, CudaMemoryManager *cudaMemoryManager)
 
void calcMeanAD (Parameter *para, uint tdiff)
 
void resetMeanAD (Parameter *para)
 
void allocTurbulenceIntensity (Parameter *para, CudaMemoryManager *cudaMemoryManager)
 
void calcVelocityAndFluctuations (Parameter *para, CudaMemoryManager *cudaMemoryManager, uint tdiff)
 
void calcTurbulenceIntensity (Parameter *para, CudaMemoryManager *cudaMemoryManager, uint tdiff)
 
void resetVelocityFluctuationsAndMeans (Parameter *para, CudaMemoryManager *cudaMemoryManager)
 
void cudaFreeTurbulenceIntensityArrays (Parameter *para, CudaMemoryManager *cudaMemoryManager)
 
void writeTurbulenceIntensityToFile (Parameter *para, uint timestep)
 
void writeVeloFluctuationToFile (Parameter *para, uint timestep)
 
void writeVeloMeansToFile (Parameter *para, uint timestep)
 
void writeAllTiDatafToFile (Parameter *para, uint timestep)
 
void writeTiStuffToFile (Parameter *para, uint timestep, unsigned long long sizeOfTiArray, std::vector< real * > &data, std::vector< std::string > &datanames)
 
void calcCp (Parameter *para, CudaMemoryManager *cudaMemoryManager, int lev)
 
void printCpTopIntermediateStep (Parameter *para, unsigned int t, int lev)
 
void printCpTop (Parameter *para, CudaMemoryManager *cudaMemoryManager, int lev)
 
void printCpBottom (Parameter *para, CudaMemoryManager *cudaMemoryManager)
 
void printCpBottom2 (Parameter *para, CudaMemoryManager *cudaMemoryManager)
 
void excludeGridInterfaceNodesForMirror (Parameter *para, int lev)
 
void calcPressForMirror (Parameter *para, CudaMemoryManager *cudaMemoryManager, int lev)
 
void printCaseFile (Parameter *para)
 
void printGeoFile (Parameter *para, bool fileFormat)
 
void printScalars (Parameter *para, bool fileFormat)
 
void writeIntToFile (const int &i, std::ofstream &ofile)
 
void writeFloatToFile (const float &f, std::ofstream &ofile)
 
void writeStringToFile (const std::string &s, std::ofstream &ofile)
 
void calcDragLift (Parameter *para, CudaMemoryManager *cudaMemoryManager, int lev)
 Calculate drag and lift for a geometry.
 
void allocDragLift (Parameter *para, CudaMemoryManager *cudaMemoryManager)
 
void printDragLift (Parameter *para, CudaMemoryManager *cudaMemoryManager, int timestep)
 
void CalcTurbulenceIntensityDevice (real *vxx, real *vyy, real *vzz, real *vxy, real *vxz, real *vyz, real *vx_mean, real *vy_mean, real *vz_mean, real *DD, uint *typeOfGridNode, unsigned int *neighborX, unsigned int *neighborY, unsigned int *neighborZ, unsigned long long numberOfLBnodes, bool isEvenTimestep, uint numberOfThreads)
 
void calculateTurbulentViscosityAMD (Parameter *para, int level)
 
void calculateTurbulentDiffusivityMoeng (Parameter *para, int level)
 
void calculateTurbulentViscosityAndDiffusivityAMDStratified (Parameter *para, int level)
 
constexpr uint calcPointIndexInBladeArrays (uint bladePoint, uint numberOfPointsPerBlade, uint blade, uint numberOfBlades, uint turbine)
 
constexpr uint calcPointIndexInBladeArrays (const TurbinePointIndex &turbineNodeIndex, uint numberOfPointsPerBlade, uint numberOfBlades)
 
constexpr void calcTurbineBladeAndBladePoint (uint node, uint &bladePoint, uint numberOfPointsPerBlade, uint &blade, uint numberOfBlades, uint &turbine)
 
constexpr TurbinePointIndex calcTurbineBladeAndBladePoint (uint node, uint numberOfPointsPerBlade, uint numberOfBlades)
 
__host__ __device__ __inline__ void rotateFromBladeToGlobal (real bladeCoordX_BF, real bladeCoordY_BF, real bladeCoordZ_BF, real &bladeCoordX_GF, real &bladeCoordY_GF, real &bladeCoordZ_GF, real azimuth)
 
__host__ __device__ __inline__ void rotateFromGlobalToBlade (real &bladeCoordX_BF, real &bladeCoordY_BF, real &bladeCoordZ_BF, real bladeCoordX_GF, real bladeCoordY_GF, real bladeCoordZ_GF, real azimuth)
 
constexpr real distSqrd (real distX, real distY, real distZ)
 
constexpr real getRotorBoundingVolumeRadius (real diameter, real smearingWidth, bool useVAWTVolume)
 
constexpr bool inSphereVolume (real distX, real distY, real distZ, real diameter, real smearingWidth)
 
template<Axis CylinderAxis, bool UseDonut>
__host__ __device__ __inline__ bool inCylinderVolume (real gridX, real gridY, real gridZ, real centerX, real centerY, real centerZ, real cylinderLength, real cylinderRadius, real margin)
 
__host__ __device__ __inline__ real gaussianSmearing (real distX, real distY, real distZ, real smearingWidth)
 
constexpr bool isHubPoint (uint pointIndex, uint numberOfBladePoints, uint totalPoints)
 
constexpr uint getHubPointIndex (uint pointIndex, uint numberOfBladePoints)
 
constexpr bool isTowerPoint (uint pointIndex, uint numberOfBladePoints, uint numberOfHubPoints, uint totalPoints)
 
constexpr uint getTowerPointIndex (uint pointIndex, uint numberOfBladePoints, uint numberOfHubPoints)
 
void initLattice (SPtr< Parameter > para, SPtr< PreProcessor > preProcessor, SPtr< PreProcessor > preProcessorAD, SPtr< CudaMemoryManager > cudaMemoryManager)
 
bool isStatisticIn (PlanarAverageProbe::Statistic statistic, std::vector< PlanarAverageProbe::Statistic > statistics)
 
void removeInterpolationCells (std::vector< uint > &indices, Parameter *para, int level)
 
std::string fixOutputPath (const std::string path)
 
template<typename T >
std::string nameComponent (const std::string &name, T value)
 
std::string makeParallelFileName (const std::string &probeName, int id, int t)
 
std::string makeGridFileName (const std::string &probeName, int level, int id, int t, uint part)
 
std::string makeTimeseriesFileName (const std::string &probeName, int level, int id)
 
template<typename T >
constexpr T computeNewTimeAverage (T oldAverage, T newValue, uint numberOfTimesteps)
 
void writeTimeseriesFileHeader (const std::string &fileName, int numberOfPoints, std::vector< std::string > &variableNames, const real *coordsX, const real *coordsY, const real *coordsZ)
 
void appendDataToTimeseriesFile (const std::string &fileName, std::vector< std::vector< real > > &data)
 Write data to timeseries file, that can be read by TimeseriesFileReader. Layout of the file is: TimeseriesOutput Quantities: Quant1 Quant2 Quant3 Positions: point1.x, point1.y, point1.z point2.x, point2.y, point2.z ... t0 point1.quant1 point2.quant1 ... point1.quant2 point2.quant2 ... t1 point1.quant1 point2.quant1 ... point1.quant2 point2.quant2 ...
 
uint getNeighborIndex (LBMSimulationParameter *parH, const uint position, const int direction)
 
constexpr void getNeighborIndicesOfBSW (uint k_MMM, uint &k_PMM, uint &k_MPM, uint &k_MMP, uint &k_PPM, uint &k_PMP, uint &k_MPP, uint &k_PPP, const uint *neighborX, const uint *neighborY, const uint *neighborZ)
 
constexpr uint findNearestCellBSW (const uint index, const real *coordsX, const real *coordsY, const real *coordsZ, const real posX, const real posY, const real posZ, const uint *neighborsX, const uint *neighborsY, const uint *neighborsZ, const uint *neighborsWSB)
 
constexpr real trilinearInterpolation (real dXM, real dYM, real dZM, uint kMMM, uint kPMM, uint kMPM, uint kMMP, uint kPPM, uint kPMP, uint kMPP, uint kPPP, const real *quantity)
 
constexpr void translate2D (real posX, real posY, real &newPosX, real &newPosY, real translationX, real translationY)
 
constexpr void invTranslate2D (real posX, real posY, real &newPosX, real &newPosY, real translationX, real translationY)
 
constexpr void translate3D (real posX, real posY, real posZ, real &newPosX, real &newPosY, real &newPosZ, real translationX, real translationY, real translationZ)
 
constexpr void invTranslate3D (real posX, real posY, real posZ, real &newPosX, real &newPosY, real &newPosZ, real translationX, real translationY, real translationZ)
 
__inline__ __host__ __device__ void rotate2D (real angle, real posX, real posY, real &newPosX, real &newPosY)
 
__inline__ __host__ __device__ void rotate2D (real angle, real posX, real posY, real &newPosX, real &newPosY, real originX, real originY)
 
__inline__ __host__ __device__ void invRotate2D (real angle, real posX, real posY, real &newPosX, real &newPosY)
 
__inline__ __host__ __device__ void invRotate2D (real angle, real posX, real posY, real &newPosX, real &newPosY, real originX, real originY)
 
__inline__ __host__ __device__ void rotateAboutX3D (real angle, real posX, real posY, real posZ, real &newPosX, real &newPosY, real &newPosZ)
 
__inline__ __host__ __device__ void rotateAboutX3D (real angle, real posX, real posY, real posZ, real &newPosX, real &newPosY, real &newPosZ, real originX, real originY, real originZ)
 
__inline__ __host__ __device__ void invRotateAboutX3D (real angle, real posX, real posY, real posZ, real &newPosX, real &newPosY, real &newPosZ)
 
__inline__ __host__ __device__ void invRotateAboutX3D (real angle, real posX, real posY, real posZ, real &newPosX, real &newPosY, real &newPosZ, real originX, real originY, real originZ)
 
__inline__ __host__ __device__ void rotateAboutY3D (real angle, real posX, real posY, real posZ, real &newPosX, real &newPosY, real &newPosZ)
 
__inline__ __host__ __device__ void rotateAboutY3D (real angle, real posX, real posY, real posZ, real &newPosX, real &newPosY, real &newPosZ, real originX, real originY, real originZ)
 
__inline__ __host__ __device__ void invRotateAboutY3D (real angle, real posX, real posY, real posZ, real &newPosX, real &newPosY, real &newPosZ)
 
__inline__ __host__ __device__ void invRotateAboutY3D (real angle, real posX, real posY, real posZ, real &newPosX, real &newPosY, real &newPosZ, real originX, real originY, real originZ)
 
__inline__ __host__ __device__ void rotateAboutZ3D (real angle, real posX, real posY, real posZ, real &newPosX, real &newPosY, real &newPosZ)
 
__inline__ __host__ __device__ void rotateAboutZ3D (real angle, real posX, real posY, real posZ, real &newPosX, real &newPosY, real &newPosZ, real originX, real originY, real originZ)
 
__inline__ __host__ __device__ void invRotateAboutZ3D (real angle, real posX, real posY, real posZ, real &newPosX, real &newPosY, real &newPosZ)
 
__inline__ __host__ __device__ void invRotateAboutZ3D (real angle, real posX, real posY, real posZ, real &newPosX, real &newPosY, real &newPosZ, real originX, real originY, real originZ)
 
real getForceFactor (size_t level)
 
constexpr void getPointersToDistributions (Distributions27 &dist, real *distributionArray, const unsigned long long numberOfLBnodes, const bool isEvenTimestep)
 
constexpr DistributionReferences27 getDistributionReferences27 (real *distributions, const unsigned long long numberOfLBnodes, const bool isEvenTimestep)
 
constexpr void getPointersToSubgridDistances (SubgridDistances27 &subgridD, real *subgridDistances, const unsigned int numberOfSubgridIndices)
 
constexpr real getEquilibriumForBC (const real &drho, const real &velocity, const real &cu_sq, const real weight)
 
constexpr real getInterpolatedDistributionForVeloBC (const real &q, const real &f, const real &fInverse, const real &feq, const real &omega, const real &velocity, const real weight)
 
constexpr real getBounceBackDistributionForVeloBC (const real &f, const real &velocity, const real weight)
 
constexpr real getInterpolatedDistributionForNoSlipBC (const real &q, const real &f, const real &fInverse, const real &feq, const real &omega)
 
constexpr real getInterpolatedDistributionForNoSlipWithPressureBC (const real &q, const real &f, const real &fInverse, const real &feq, const real &omega, const real &drho, const real weight)
 
constexpr real getInterpolatedDistributionForVeloWithPressureBC (const real &q, const real &f, const real &fInverse, const real &feq, const real &omega, const real &drho, const real &velocity, const real weight)
 
constexpr bool isValidFluidNode (uint nodeType)
 
template<>
constexpr uint ListIndices::getIndex< vf::lbm::dir::d000 > () const
 
template<>
constexpr uint ListIndices::getIndex< vf::lbm::dir::dP00 > () const
 
template<>
constexpr uint ListIndices::getIndex< vf::lbm::dir::dM00 > () const
 
template<>
constexpr uint ListIndices::getIndex< vf::lbm::dir::d0P0 > () const
 
template<>
constexpr uint ListIndices::getIndex< vf::lbm::dir::d0M0 > () const
 
template<>
constexpr uint ListIndices::getIndex< vf::lbm::dir::d00P > () const
 
template<>
constexpr uint ListIndices::getIndex< vf::lbm::dir::d00M > () const
 
template<>
constexpr uint ListIndices::getIndex< vf::lbm::dir::dPP0 > () const
 
template<>
constexpr uint ListIndices::getIndex< vf::lbm::dir::dMM0 > () const
 
template<>
constexpr uint ListIndices::getIndex< vf::lbm::dir::dPM0 > () const
 
template<>
constexpr uint ListIndices::getIndex< vf::lbm::dir::dMP0 > () const
 
template<>
constexpr uint ListIndices::getIndex< vf::lbm::dir::dP0P > () const
 
template<>
constexpr uint ListIndices::getIndex< vf::lbm::dir::dM0M > () const
 
template<>
constexpr uint ListIndices::getIndex< vf::lbm::dir::dP0M > () const
 
template<>
constexpr uint ListIndices::getIndex< vf::lbm::dir::dM0P > () const
 
template<>
constexpr uint ListIndices::getIndex< vf::lbm::dir::d0PP > () const
 
template<>
constexpr uint ListIndices::getIndex< vf::lbm::dir::d0MM > () const
 
template<>
constexpr uint ListIndices::getIndex< vf::lbm::dir::d0PM > () const
 
template<>
constexpr uint ListIndices::getIndex< vf::lbm::dir::d0MP > () const
 
template<>
constexpr uint ListIndices::getIndex< vf::lbm::dir::dPPP > () const
 
template<>
constexpr uint ListIndices::getIndex< vf::lbm::dir::dMPP > () const
 
template<>
constexpr uint ListIndices::getIndex< vf::lbm::dir::dPMP > () const
 
template<>
constexpr uint ListIndices::getIndex< vf::lbm::dir::dMMP > () const
 
template<>
constexpr uint ListIndices::getIndex< vf::lbm::dir::dPPM > () const
 
template<>
constexpr uint ListIndices::getIndex< vf::lbm::dir::dMPM > () const
 
template<>
constexpr uint ListIndices::getIndex< vf::lbm::dir::dPMM > () const
 
template<>
constexpr uint ListIndices::getIndex< vf::lbm::dir::dMMM > () const
 
template<size_t direction>
constexpr void writeInInverseDirection (const real population, const ListIndices &listIndices, const Distributions27 &populationReferences)
 
template<size_t direction>
constexpr real readFromInverseDirection (const ListIndices &listIndices, const Distributions27 &populationReferences)
 
template<size_t direction>
constexpr void writeInSameDirection (const real population, const ListIndices &listIndices, const Distributions27 &populationReferences)
 
template<size_t direction>
constexpr real readFromSameDirection (const ListIndices &listIndices, const Distributions27 &populationReferences)
 
constexpr void getPreCollisionDistribution (real *local, const Distributions27 &global, const ListIndices &indices)
 
constexpr void getPostCollisionDistribution (real *local, const Distributions27 &global, const ListIndices &indices)
 
constexpr void setPreCollisionDistribution (Distributions27 &global, const ListIndices &indices, const real *local)
 
constexpr void setPostCollisionDistribution (Distributions27 &global, const ListIndices &indices, const real *local)
 
template<bool hasTurbulentViscosity>
__device__ void calculateMomentSet (vf::lbm::MomentsOnSourceNodeSet &momentsSet, const unsigned nodeIndex, real *distribution, unsigned int *neighborX, unsigned int *neighborY, unsigned int *neighborZ, unsigned int *indices_MMM, real *turbulentViscosity, unsigned long long numberOfLBnodes, const real omega, bool isEvenTimestep)
 
int compare2DArrayAccordingToXYZ (const void *pa, const void *pb)
 
int compare2DArrayAccordingToIndex (const void *pa, const void *pb)
 
bool intersectPlane (const Vertex &normal, const Vertex &pointOnPlane, const Vertex &originLine, const Vertex &directionLine, Vertex &intersectionPoint)
 
real getMinimum (const real &value1, const real &value2)
 
real getMaximum (const real &value1, const real &value2)
 
real adjustShift (real shift, real delta, real length)
 
real wrapCoord (real coord, real start, real end)
 
void writeLines (std::string filename, std::vector< UbTupleFloat3 > nodes, std::vector< UbTupleInt2 > lines)
 
SPtr< FileCollectioncreateFileCollection (const std::string &path, const std::string &prefix, TransientBCFileType type)
 
SPtr< TransientBCInputFileReadercreateReaderForCollection (SPtr< FileCollection > fileCollection, uint readLevel, bool cycleFiles)
 
template<typename T >
std::vector< TreadStringToVector (std::string s)
 
std::string getTag (std::ifstream &input)
 
std::string readElement (const std::string &line)
 
std::string readAttribute (const std::string &line, const std::string &attributeName)
 
 TEST_F (GridGeneratorTests_initalValuesDomainDecompostion, whenNoCommunication_sendProcessNeighborShouldNotExist)
 
 TEST_F (GridGeneratorTests_initalValuesDomainDecompostion, whenCommunicationInX_sendProcessNeighborShouldExistInX)
 
 TEST_F (IndexRearrangementForStreamsTest_reorderSendIndices, reorderSendIndicesForCommAfterFtoCX)
 
 TEST_F (IndexRearrangementForStreamsTest_exchangeIndicesForCommAfterFtoC, emptyRecvInX)
 
 TEST_F (IndexRearrangementForStreamsTest_exchangeIndicesForCommAfterFtoC, zeroRecvIndexX)
 
 TEST_F (IndexRearrangementForStreamsTest_exchangeIndicesForCommAfterFtoC, oneRecvIndexX)
 
 TEST_F (IndexRearrangementForStreamsTest_exchangeIndicesForCommAfterFtoC, threeRecvIndicesX)
 
 TEST_F (IndexRearrangementForStreamsTest_exchangeIndicesForCommAfterFtoC, sixRecvIndicesX)
 
 TEST_F (IndexRearrangementForStreamsTest_exchangeIndicesForCommAfterFtoC, recvIndicesXContainZero)
 
 TEST_F (IndexRearrangementForStreamsTest_reorderRecvIndices, noSendIndicesForCommunicationAfterScalingFineToCoarse_receiveIndicesAreUnchanged)
 
 TEST_F (IndexRearrangementForStreamsTest_reorderRecvIndices, someSendIndicesForCommunicationAfterScalingFineToCoarse_receiveIndicesAreReorderedCorrectly)
 
 TEST_F (IndexRearrangementForStreamsTest_reorderRecvIndices, allIndicesAreSendIndicesForCommunicationAfterScalingFineToCoarse_receiveIndicesAreReorderedCorrectly)
 

Variables

constexpr std::initializer_list< CollisionTemplateall_CollisionTemplate = { CollisionTemplate::Default, CollisionTemplate::WriteMacroVars, CollisionTemplate::ApplyBodyForce, CollisionTemplate::AllFeatures, CollisionTemplate::SubDomainBorder}
 
constexpr std::initializer_list< CollisionTemplatebulk_CollisionTemplate = { CollisionTemplate::Default, CollisionTemplate::WriteMacroVars, CollisionTemplate::ApplyBodyForce, CollisionTemplate::AllFeatures}
 
const std::map< const size_t, const countersForPointerChasingmapForPointerChasing
 
const std::string fileEnding = ".dat"
 

Detailed Description

Author
Henry Korb

Typedef Documentation

◆ ADDirichletBoundaryConditionKernel

◆ ADFluxBoundaryConditionKernel

◆ ADNeumannBoundaryConditionKernel

◆ ADNoFluxBoundaryConditionKernel

◆ AdvectionDiffusionDirichletBoundaryConditionKernel

◆ AdvectionDiffusionFluxBoundaryConditionKernel

◆ AdvectionDiffusionNeumannBoundaryConditionKernel

◆ AdvectionDiffusionNoFluxBoundaryConditionKernel

◆ BoundaryConditionKernel

◆ BoundaryConditionWithParameterKernel

◆ CollisionStrategy

using vf::gpu::CollisionStrategy = typedef std::function<void (UpdateGrid27* updateGrid, Parameter* para, int level, unsigned int t)>

Definition at line 61 of file UpdateGrid27.h.

◆ DirectionalADBoundaryConditionKernel

◆ DirectionalBoundaryConditionKernel

◆ DistributionReferences27

◆ gridScaling

◆ gridScalingAdvectionDiffusion

◆ InterpolationCellNeighbor

◆ InterpolationCells

◆ LBMSimulationParameters

Definition at line 49 of file InterpolationCellGrouper.h.

◆ PrecursorBoundaryConditionKernel

◆ RefinementStrategy

using vf::gpu::RefinementStrategy = typedef std::function<void (UpdateGrid27* updateGrid, Parameter* para, int level)>

Definition at line 62 of file UpdateGrid27.h.

Enumeration Type Documentation

◆ CollisionTemplate

An enumeration for selecting a template of the collision kernel (CumulantK17)

Enumerator
Default 
  • Default: plain collision without additional read/write
WriteMacroVars 
  • WriteMacroVars: collision \w write out macroscopic variables
ApplyBodyForce 
  • ApplyBodyForce: collision \w read and apply body force in the collision kernel
AllFeatures 
  • AllFeatures: collision \w write out macroscopic variables AND read and apply body force
SubDomainBorder 
  • Border: collision on border nodes

Definition at line 57 of file Calculation.h.

◆ CudaStreamIndex

Enumerator
Legacy 
Bulk 
SubDomainBorder 
Precursor 
ActuatorFarm 
PrecursorWriter 
BuoyancyProvider 

Definition at line 43 of file CudaStreamManager.h.

◆ DiscretizationMethod

Enumerator
RAYCASTING 
POINT_IN_OBJECT 
POINT_UNDER_TRIANGLE 

Definition at line 53 of file TriangularMesh.h.

◆ FILEFORMAT

Enumerator
BINARY 
ASCII 

Definition at line 56 of file SimulationFileWriter.h.

◆ PlantAreaDensityFunction

Enumerator
Flat 
BottomHeavy 
TopHeavy 

Definition at line 44 of file Forest.h.

◆ PreProcessorType

Enumerator
InitNavierStokesIncompressible 
InitNavierStokesCompressible 
InitAdvectionDiffusionIncompressible 
InitAdvectionDiffusionCompressible 

Definition at line 39 of file PreProcessorType.h.

◆ SideType

Enumerator
MX 
PX 
MY 
PY 
MZ 
PZ 
GEOMETRY 

Definition at line 62 of file Side.h.

◆ TransientBCFileType

Enumerator
VTK 

Definition at line 54 of file TransientBCSetter.h.

◆ TriangularMeshDiscretizationMethod

Enumerator
RAYCASTING 
POINT_IN_OBJECT 
POINT_UNDER_TRIANGLE 

Definition at line 46 of file GridFactory.h.

◆ WRITING_FORMAT

Enumerator
BINARY 
ASCII 

Definition at line 43 of file GridVTKWriter.h.

Function Documentation

◆ adjustShift()

real vf::gpu::adjustShift ( real  shift,
real  delta,
real  length 
)

Definition at line 325 of file LevelGridBuilder.cpp.

◆ AdvectionDiffusionDirectionalOutflowNonReflecting()

void vf::gpu::AdvectionDiffusionDirectionalOutflowNonReflecting ( LBMSimulationParameter parameterDevice,
QforDirectionalADBoundaryCondition boundaryCondition 
)

◆ AdvectionDiffusionDirichletAntiBounceBackNoSlip()

void vf::gpu::AdvectionDiffusionDirichletAntiBounceBackNoSlip ( LBMSimulationParameter parameterDevice,
AdvectionDiffusionDirichletBoundaryConditions  bcParameters 
)

◆ AdvectionDiffusionDirichletAntiBounceBackSlip()

void vf::gpu::AdvectionDiffusionDirichletAntiBounceBackSlip ( LBMSimulationParameter parameterDevice,
AdvectionDiffusionDirichletBoundaryConditions  bcParameters 
)

◆ AdvectionDiffusionDirichletInterpolatedNoSlip()

void vf::gpu::AdvectionDiffusionDirichletInterpolatedNoSlip ( LBMSimulationParameter parameterDevice,
AdvectionDiffusionDirichletBoundaryConditions  bcParameters 
)

◆ AdvectionDiffusionDirichletInterpolatedSlip()

void vf::gpu::AdvectionDiffusionDirichletInterpolatedSlip ( LBMSimulationParameter parameterDevice,
AdvectionDiffusionDirichletBoundaryConditions  bcParameters 
)

◆ AdvectionDiffusionFluxBounceBack()

void vf::gpu::AdvectionDiffusionFluxBounceBack ( LBMSimulationParameter parameterDevice,
AdvectionDiffusionFluxBoundaryConditions  bcParameters 
)

◆ AdvectionDiffusionFluxCompressible()

void vf::gpu::AdvectionDiffusionFluxCompressible ( LBMSimulationParameter parameterDevice,
AdvectionDiffusionFluxBoundaryConditions  bcParameters 
)

◆ AdvectionDiffusionFluxTurbulentViscosityCompressible()

void vf::gpu::AdvectionDiffusionFluxTurbulentViscosityCompressible ( LBMSimulationParameter parameterDevice,
AdvectionDiffusionFluxBoundaryConditions  bcParameters 
)

◆ AdvectionDiffusionNeumannAntiBounceBackNoSlip()

void vf::gpu::AdvectionDiffusionNeumannAntiBounceBackNoSlip ( LBMSimulationParameter parameterDevice,
AdvectionDiffusionNeumannBoundaryConditions  bcParameters 
)

◆ AdvectionDiffusionNeumannAntiBounceBackSlip()

void vf::gpu::AdvectionDiffusionNeumannAntiBounceBackSlip ( LBMSimulationParameter parameterDevice,
AdvectionDiffusionNeumannBoundaryConditions  bcParameters 
)

◆ AdvectionDiffusionNeumannInterpolatedNoSlip()

void vf::gpu::AdvectionDiffusionNeumannInterpolatedNoSlip ( LBMSimulationParameter parameterDevice,
AdvectionDiffusionNeumannBoundaryConditions  bcParameters 
)

◆ AdvectionDiffusionNeumannInterpolatedSlip()

void vf::gpu::AdvectionDiffusionNeumannInterpolatedSlip ( LBMSimulationParameter parameterDevice,
AdvectionDiffusionNeumannBoundaryConditions  bcParameters 
)

◆ AdvectionDiffusionNoFluxBounceBack()

void vf::gpu::AdvectionDiffusionNoFluxBounceBack ( LBMSimulationParameter parameterDevice,
AdvectionDiffusionNoFluxBoundaryConditions  bcParameters 
)

◆ alloc2ndMoments()

void vf::gpu::alloc2ndMoments ( Parameter para,
CudaMemoryManager cudaMemoryManager 
)

Definition at line 46 of file Calc2ndMoments.cpp.

◆ alloc3rdMoments()

void vf::gpu::alloc3rdMoments ( Parameter para,
CudaMemoryManager cudaMemoryManager 
)

Definition at line 141 of file Calc2ndMoments.cpp.

◆ allocDragLift()

void vf::gpu::allocDragLift ( Parameter para,
CudaMemoryManager cudaMemoryManager 
)

Definition at line 90 of file DragLift.cpp.

◆ allocHigherOrderMoments()

void vf::gpu::allocHigherOrderMoments ( Parameter para,
CudaMemoryManager cudaMemoryManager 
)

Definition at line 240 of file Calc2ndMoments.cpp.

◆ allocMean()

void vf::gpu::allocMean ( Parameter para,
CudaMemoryManager cudaMemoryManager 
)

Definition at line 45 of file CalcMean.cpp.

◆ allocMeanAD()

void vf::gpu::allocMeanAD ( Parameter para,
CudaMemoryManager cudaMemoryManager 
)

Definition at line 84 of file CalcMean.cpp.

◆ allocTurbulenceIntensity()

void vf::gpu::allocTurbulenceIntensity ( Parameter para,
CudaMemoryManager cudaMemoryManager 
)

Definition at line 45 of file CalcTurbulenceIntensity.cpp.

◆ appendDataToTimeseriesFile()

void vf::gpu::appendDataToTimeseriesFile ( const std::string &  fileName,
std::vector< std::vector< real > > &  data 
)
inline

Write data to timeseries file, that can be read by TimeseriesFileReader. Layout of the file is: TimeseriesOutput Quantities: Quant1 Quant2 Quant3 Positions: point1.x, point1.y, point1.z point2.x, point2.y, point2.z ... t0 point1.quant1 point2.quant1 ... point1.quant2 point2.quant2 ... t1 point1.quant1 point2.quant1 ... point1.quant2 point2.quant2 ...

Definition at line 108 of file Utilities.h.

◆ calc2ndMoments()

void vf::gpu::calc2ndMoments ( Parameter para,
CudaMemoryManager cudaMemoryManager 
)

Definition at line 79 of file Calc2ndMoments.cpp.

◆ calc3rdMoments()

void vf::gpu::calc3rdMoments ( Parameter para,
CudaMemoryManager cudaMemoryManager 
)

Definition at line 176 of file Calc2ndMoments.cpp.

◆ calcCp()

void vf::gpu::calcCp ( Parameter para,
CudaMemoryManager cudaMemoryManager,
int  lev 
)

Definition at line 50 of file Cp.cpp.

◆ calcDragLift()

void vf::gpu::calcDragLift ( Parameter para,
CudaMemoryManager cudaMemoryManager,
int  lev 
)

Calculate drag and lift for a geometry.

note, that the drag/lift calculations are build for being used with geometry boundary nodes and the related area has to be defined here

Definition at line 54 of file DragLift.cpp.

◆ calcHigherOrderMoments()

void vf::gpu::calcHigherOrderMoments ( Parameter para,
CudaMemoryManager cudaMemoryManager 
)

Definition at line 278 of file Calc2ndMoments.cpp.

◆ calcMean()

void vf::gpu::calcMean ( Parameter para,
uint  tdiff 
)

Definition at line 59 of file CalcMean.cpp.

◆ calcMeanAD()

void vf::gpu::calcMeanAD ( Parameter para,
uint  tdiff 
)

Definition at line 99 of file CalcMean.cpp.

◆ calcPointIndexInBladeArrays() [1/2]

constexpr uint vf::gpu::calcPointIndexInBladeArrays ( const TurbinePointIndex turbineNodeIndex,
uint  numberOfPointsPerBlade,
uint  numberOfBlades 
)
constexpr

Definition at line 59 of file ActuatorFarmInlines.h.

◆ calcPointIndexInBladeArrays() [2/2]

constexpr uint vf::gpu::calcPointIndexInBladeArrays ( uint  bladePoint,
uint  numberOfPointsPerBlade,
uint  blade,
uint  numberOfBlades,
uint  turbine 
)
constexpr

Definition at line 53 of file ActuatorFarmInlines.h.

◆ calcPressForMirror()

void vf::gpu::calcPressForMirror ( Parameter para,
CudaMemoryManager cudaMemoryManager,
int  lev 
)

Definition at line 316 of file Cp.cpp.

◆ calcTurbineBladeAndBladePoint() [1/2]

constexpr void vf::gpu::calcTurbineBladeAndBladePoint ( uint  node,
uint bladePoint,
uint  numberOfPointsPerBlade,
uint blade,
uint  numberOfBlades,
uint turbine 
)
constexpr

Definition at line 64 of file ActuatorFarmInlines.h.

◆ calcTurbineBladeAndBladePoint() [2/2]

constexpr TurbinePointIndex vf::gpu::calcTurbineBladeAndBladePoint ( uint  node,
uint  numberOfPointsPerBlade,
uint  numberOfBlades 
)
constexpr

Definition at line 74 of file ActuatorFarmInlines.h.

◆ calcTurbulenceIntensity()

void vf::gpu::calcTurbulenceIntensity ( Parameter para,
CudaMemoryManager cudaMemoryManager,
uint  tdiff 
)

Definition at line 91 of file CalcTurbulenceIntensity.cpp.

◆ CalcTurbulenceIntensityDevice()

void vf::gpu::CalcTurbulenceIntensityDevice ( real vxx,
real vyy,
real vzz,
real vxy,
real vxz,
real vyz,
real vx_mean,
real vy_mean,
real vz_mean,
real DD,
uint typeOfGridNode,
unsigned int neighborX,
unsigned int neighborY,
unsigned int neighborZ,
unsigned long long  numberOfLBnodes,
bool  isEvenTimestep,
uint  numberOfThreads 
)

◆ calculateMomentSet()

template<bool hasTurbulentViscosity>
__device__ void vf::gpu::calculateMomentSet ( vf::lbm::MomentsOnSourceNodeSet momentsSet,
const unsigned  nodeIndex,
real distribution,
unsigned int neighborX,
unsigned int neighborY,
unsigned int neighborZ,
unsigned int indices_MMM,
real turbulentViscosity,
unsigned long long  numberOfLBnodes,
const real  omega,
bool  isEvenTimestep 
)
  • Calculate moments for each source node

Definition at line 49 of file ScalingUtilities.h.

◆ calculateTurbulentDiffusivityMoeng()

void vf::gpu::calculateTurbulentDiffusivityMoeng ( Parameter para,
int  level 
)

◆ calculateTurbulentViscosityAMD()

void vf::gpu::calculateTurbulentViscosityAMD ( Parameter para,
int  level 
)

◆ calculateTurbulentViscosityAndDiffusivityAMDStratified()

void vf::gpu::calculateTurbulentViscosityAndDiffusivityAMDStratified ( Parameter para,
int  level 
)

◆ calcVelocityAndFluctuations()

void vf::gpu::calcVelocityAndFluctuations ( Parameter para,
CudaMemoryManager cudaMemoryManager,
uint  tdiff 
)

Definition at line 55 of file CalcTurbulenceIntensity.cpp.

◆ collectNodesInSendBufferGPU()

void vf::gpu::collectNodesInSendBufferGPU ( Parameter para,
int  level,
CudaStreamIndex  streamIndex,
const std::vector< ProcessNeighbor27 > &  sendProcessNeighborsDevice 
)

Routines for data exchange when running simulations on multiple GPUs.

Author
Martin Schoenherr, Anna Wellmann

Collect the send nodes in a buffer on the gpu

Definition at line 57 of file ExchangeData27.cpp.

◆ compare2DArrayAccordingToIndex()

int vf::gpu::compare2DArrayAccordingToIndex ( const void pa,
const void pb 
)

Definition at line 63 of file TriangleNeighborFinder.cpp.

◆ compare2DArrayAccordingToXYZ()

int vf::gpu::compare2DArrayAccordingToXYZ ( const void pa,
const void pb 
)

Definition at line 42 of file TriangleNeighborFinder.cpp.

◆ computeFrictionVelocity()

__device__ real vf::gpu::computeFrictionVelocity ( const real  velocity,
const real  vonKarmanConstant,
const real  samplingDistance,
const real  roughnessLength,
const real  stabilityCorrection 
)
inline

Definition at line 65 of file wallModelMoninObukhov.h.

◆ computeMagnitude()

__device__ real vf::gpu::computeMagnitude ( real3  vector)
inline

Definition at line 60 of file wallModelMoninObukhov.h.

◆ computeNewTimeAverage()

template<typename T >
constexpr T vf::gpu::computeNewTimeAverage ( T  oldAverage,
T  newValue,
uint  numberOfTimesteps 
)
inlineconstexpr

Definition at line 69 of file Utilities.h.

◆ computeStabilityCorrectionMomentum()

__device__ real vf::gpu::computeStabilityCorrectionMomentum ( const real  stabilityParameter)
inline

Definition at line 111 of file wallModelMoninObukhov.h.

◆ computeStabilityCorrectionTemperature()

__device__ __host__ real vf::gpu::computeStabilityCorrectionTemperature ( const real  stabilityParameter)
inline

ISBN:9780120593545 ]

Definition at line 104 of file wallModelMoninObukhov.h.

◆ computeStabilityParameter()

constexpr real vf::gpu::computeStabilityParameter ( const real  height,
const real  gravity,
const real  surfaceHeatFlux,
const real  frictionVelocity,
const real  referenceTemperature,
const real  vonKarmanConstant 
)
constexpr

Definition at line 88 of file wallModelMoninObukhov.h.

◆ computeSurfaceHeatFlux()

__device__ real vf::gpu::computeSurfaceHeatFlux ( const real  temperatureDifference,
const real  frictionVelocity,
const real  vonKarmanConstant,
const real  samplingDistance,
const real  roughnessLength,
const real  stabilityCorrection 
)
inline

Definition at line 71 of file wallModelMoninObukhov.h.

◆ computeTangentialVector()

constexpr real3 vf::gpu::computeTangentialVector ( real3  quantity,
real3  normal 
)
constexpr

Definition at line 55 of file wallModelMoninObukhov.h.

◆ computeWallShearStress()

constexpr real3 vf::gpu::computeWallShearStress ( const real  frictionVelocity,
const real3  velocityTangential,
const real  velocityTangentialMeanMagnitude,
const real  density 
)
constexpr

Definition at line 79 of file wallModelMoninObukhov.h.

◆ copyEdgeNodes()

void vf::gpu::copyEdgeNodes ( const std::vector< LBMSimulationParameter::EdgeNodePositions > &  edgeNodes,
const std::vector< ProcessNeighbor27 > &  recvProcessNeighborsHost,
const std::vector< ProcessNeighbor27 > &  sendProcessNeighborsHost,
bool  diffOn 
)

Copy nodes which are part of the communication in multiple directions.

The nodes are copied from the receive buffer in one direction to the send buffer in another direction. The copy operation is conducted on the cpu. See [master thesis of Anna Wellmann (p. 56f: "Communication Hiding bei der Verwendung eines uniformen Simulationsgitters")]

Parameters
edgeNodesdetermines from where to where the nodes are copied
recvProcessNeighborHostis a reference to the receive buffer on the host, nodes are copied from here
sendProcessNeighborHostis a reference to the send buffer on the host, nodes are copied to here

Definition at line 122 of file ExchangeData27.cpp.

◆ createFileCollection()

SPtr< FileCollection > vf::gpu::createFileCollection ( const std::string &  path,
const std::string &  prefix,
TransientBCFileType  type 
)

Definition at line 51 of file TransientBCSetter.cpp.

◆ createFileNames()

void vf::gpu::createFileNames ( std::vector< std::string > &  fileNames,
uint  numberOfParts,
uint  level,
uint  timestep,
const Parameter para 
)

Definition at line 59 of file DistributionDebugWriter.cpp.

◆ createMetaData()

vf::basics::MetaData vf::gpu::createMetaData ( const Parameter parameter)

Definition at line 45 of file MetaDataCreator.cpp.

◆ createNodeDataNames()

void vf::gpu::createNodeDataNames ( std::vector< std::string > &  nodeDataNames)

Definition at line 67 of file DistributionDebugWriter.cpp.

◆ createReaderForCollection()

SPtr< TransientBCInputFileReader > vf::gpu::createReaderForCollection ( SPtr< FileCollection fileCollection,
uint  readLevel,
bool  cycleFiles 
)

Definition at line 63 of file TransientBCSetter.cpp.

◆ cudaFreeTurbulenceIntensityArrays()

void vf::gpu::cudaFreeTurbulenceIntensityArrays ( Parameter para,
CudaMemoryManager cudaMemoryManager 
)

Definition at line 131 of file CalcTurbulenceIntensity.cpp.

◆ distSqrd()

constexpr real vf::gpu::distSqrd ( real  distX,
real  distY,
real  distZ 
)
constexpr

Definition at line 97 of file ActuatorFarmInlines.h.

◆ exchangeCollDataGPU27()

void vf::gpu::exchangeCollDataGPU27 ( Parameter para,
vf::parallel::Communicator comm,
const CudaMemoryManager cudaMemoryManager,
CudaStreamIndex  streamIndex,
const std::vector< ProcessNeighbor27 > &  sendProcessNeighborsDevice,
const std::vector< ProcessNeighbor27 > &  recvProcessNeighborsDevice,
const std::vector< ProcessNeighbor27 > &  sendProcessNeighborsHost,
const std::vector< ProcessNeighbor27 > &  recvProcessNeighborsHost,
const std::optional< std::vector< ProcessNeighbor27 > > &  recvProcessNeighborsHostX = std::nullopt,
const std::optional< std::vector< LBMSimulationParameter::EdgeNodePositions > > &  edgeNodesX = std::nullopt,
const std::optional< std::vector< ProcessNeighbor27 > > &  recvProcessNeighborsHostY = std::nullopt,
const std::optional< std::vector< LBMSimulationParameter::EdgeNodePositions > > &  edgeNodesY = std::nullopt 
)

Exchange routine for simulations on multiple gpus.

Send and receive the nodes from the communication buffers on the gpus.

Parameters
Communicatoris needed for the communication between the processes with mpi
CudaMemoryManageris needed for moving the data between host and device
sendProcessNeighborDevice,recvProcessNeighborDevice,sendProcessNeighborHost,recvProcessNeighborHostare send and receive arrays, both on the device and the host
recvProcessNeighborsHostXare process neighbors in x and y direction where edge nodes have to be copied from the recv array of that neighbor to the current sender
edgeNodesX,edgeNodesYare the nodes that are on the respective edges

steps:

  1. copy data from device to host
  1. start non-blocking receive (MPI)
  1. before sending data, wait for memcopy (from device to host) to finish
  1. copy received edge node values from x and y
  1. send data to neighboring process (MPI) and wait
  1. reset the request array, which was used for the mpi communication
  1. copy received data from host to device

Definition at line 153 of file ExchangeData27.cpp.

◆ exchangeCollDataXGPU27AfterFtoC()

void vf::gpu::exchangeCollDataXGPU27AfterFtoC ( Parameter para,
vf::parallel::Communicator comm,
const CudaMemoryManager cudaMemoryManager,
int  level,
CudaStreamIndex  streamIndex 
)

Calls exchangeCollDataGPU27() for exchanging the nodes, which are part of the communication between the two interpolation processes on refined grids.

Only exchange nodes which are part of the interpolation process on refined grids. This function is used in the exchange which takes place after the interpolation fine to coarse and before the interpolation coarse to fine. See [master thesis of Anna Wellmann]

Definition at line 225 of file ExchangeData27.cpp.

◆ exchangeCollDataXGPU27AllNodes()

void vf::gpu::exchangeCollDataXGPU27AllNodes ( Parameter para,
vf::parallel::Communicator comm,
const CudaMemoryManager cudaMemoryManager,
int  level,
CudaStreamIndex  streamIndex 
)

Calls exchangeCollDataXGPU27() for exchanging all nodes.

Used in the communication after collision step

Definition at line 214 of file ExchangeData27.cpp.

◆ exchangeCollDataYGPU27AfterFtoC()

void vf::gpu::exchangeCollDataYGPU27AfterFtoC ( Parameter para,
vf::parallel::Communicator comm,
const CudaMemoryManager cudaMemoryManager,
int  level,
CudaStreamIndex  streamIndex 
)

Definition at line 276 of file ExchangeData27.cpp.

◆ exchangeCollDataYGPU27AllNodes()

void vf::gpu::exchangeCollDataYGPU27AllNodes ( Parameter para,
vf::parallel::Communicator comm,
const CudaMemoryManager cudaMemoryManager,
int  level,
CudaStreamIndex  streamIndex 
)

Definition at line 263 of file ExchangeData27.cpp.

◆ exchangeCollDataZGPU27AfterFtoC()

void vf::gpu::exchangeCollDataZGPU27AfterFtoC ( Parameter para,
vf::parallel::Communicator comm,
const CudaMemoryManager cudaMemoryManager,
int  level,
CudaStreamIndex  streamIndex 
)

Definition at line 327 of file ExchangeData27.cpp.

◆ exchangeCollDataZGPU27AllNodes()

void vf::gpu::exchangeCollDataZGPU27AllNodes ( Parameter para,
vf::parallel::Communicator comm,
const CudaMemoryManager cudaMemoryManager,
int  level,
CudaStreamIndex  streamIndex 
)

Definition at line 315 of file ExchangeData27.cpp.

◆ excludeGridInterfaceNodesForMirror()

void vf::gpu::excludeGridInterfaceNodesForMirror ( Parameter para,
int  lev 
)

Definition at line 254 of file Cp.cpp.

◆ findEdgeNodes()

void vf::gpu::findEdgeNodes ( const std::vector< ProcessNeighbor27 > &  recvProcessNeighbor,
const std::vector< ProcessNeighbor27 > &  sendProcessNeighbor,
std::vector< LBMSimulationParameter::EdgeNodePositions > &  edgeNodes 
)

Definition at line 80 of file EdgeNodeFinder.cpp.

◆ findEdgeNodesCommMultiGPU()

void vf::gpu::findEdgeNodesCommMultiGPU ( Parameter parameter)

Function for finding edge nodes in the multi-gpu implementation.

Edge nodes are nodes, which are part of the communication in multiple directions master thesis of Anna Wellmann (p. 54-57)

Definition at line 53 of file EdgeNodeFinder.cpp.

◆ findEdgeNodesXY()

void vf::gpu::findEdgeNodesXY ( LBMSimulationParameter parameterLB)

Find nodes that are both received in the x-direction and sent in the y-direction.

Definition at line 62 of file EdgeNodeFinder.cpp.

◆ findEdgeNodesXZ()

void vf::gpu::findEdgeNodesXZ ( LBMSimulationParameter parameterLB)

Find nodes that are both received in the x-direction and sent in the z-direction.

Definition at line 68 of file EdgeNodeFinder.cpp.

◆ findEdgeNodesYZ()

void vf::gpu::findEdgeNodesYZ ( LBMSimulationParameter parameterLB)

Find nodes that are both received in the y-direction and sent in the z-direction.

Definition at line 74 of file EdgeNodeFinder.cpp.

◆ findIndexInSendNodes()

std::optional< std::pair< uint, uint > > vf::gpu::findIndexInSendNodes ( uint  nodeIndex,
const std::vector< ProcessNeighbor27 > &  sendProcessNeighbor 
)

Definition at line 93 of file EdgeNodeFinder.cpp.

◆ findNearestCellBSW()

constexpr uint vf::gpu::findNearestCellBSW ( const uint  index,
const real coordsX,
const real coordsY,
const real coordsZ,
const real  posX,
const real  posY,
const real  posZ,
const uint neighborsX,
const uint neighborsY,
const uint neighborsZ,
const uint neighborsWSB 
)
constexpr

Definition at line 61 of file GeometryUtils.h.

◆ fixOutputPath()

std::string vf::gpu::fixOutputPath ( const std::string  path)
inline

Definition at line 48 of file Sampler.h.

◆ gaussianSmearing()

__host__ __device__ __inline__ real vf::gpu::gaussianSmearing ( real  distX,
real  distY,
real  distZ,
real  smearingWidth 
)

Definition at line 169 of file ActuatorFarmInlines.h.

◆ getBounceBackDistributionForVeloBC()

constexpr real vf::gpu::getBounceBackDistributionForVeloBC ( const real f,
const real velocity,
const real  weight 
)
constexpr

Definition at line 194 of file KernelUtilities.h.

◆ getDistributionReferences27()

constexpr DistributionReferences27 vf::gpu::getDistributionReferences27 ( real distributions,
const unsigned long long  numberOfLBnodes,
const bool  isEvenTimestep 
)
constexpr

Getting references to the 27 directions. @params distributions 1D real* array containing all data (number of elements = 27 * matrix_size) @params matrix_size number of discretizations nodes @params isEvenTimestep: stored data dependent on timestep is based on the esoteric twist algorithm

Returns
a data struct containing the addresses to the 27 directions within the 1D distribution array

Definition at line 136 of file KernelUtilities.h.

◆ getEquilibriumForBC()

constexpr real vf::gpu::getEquilibriumForBC ( const real drho,
const real velocity,
const real cu_sq,
const real  weight 
)
constexpr

Definition at line 178 of file KernelUtilities.h.

◆ getFileName()

std::string vf::gpu::getFileName ( const std::string &  fname,
int  step,
int  myID 
)

Definition at line 95 of file Simulation.cpp.

◆ getForceFactor()

real vf::gpu::getForceFactor ( size_t  level)
inline

Definition at line 53 of file KernelUtilities.h.

◆ getFunctionForCollisionAndExchange()

std::function< void(UpdateGrid27 *updateGrid, Parameter *para, int level, unsigned int t)> vf::gpu::getFunctionForCollisionAndExchange ( const bool  useStreams,
const int  numberOfMpiProcesses,
const bool  kernelNeedsFluidNodeIndicesToRun 
)

get a function which performs the collision operator and performs the communication between gpus/ processes

Returns
a function to perform the collision and for multi-gpu simulations also the communication

Definition at line 42 of file CollisisionStrategy.cpp.

◆ getFunctionForRefinementAndExchange()

std::function< void(UpdateGrid27 *updateGrid, Parameter *para, int level)> vf::gpu::getFunctionForRefinementAndExchange ( const bool  useStreams,
const int  numberOfMpiProcesses,
const int  maxLevel,
const bool  useReducedCommunicationAfterFtoC 
)
noexcept

get a function which performs the interpolation between grid levels and performs the communication between gpus/ processes

Returns
a function to perform the interpolation and for multi-gpu simulations also the communication

Definition at line 45 of file RefinementStrategy.cpp.

◆ getHubPointIndex()

constexpr uint vf::gpu::getHubPointIndex ( uint  pointIndex,
uint  numberOfBladePoints 
)
constexpr

Definition at line 182 of file ActuatorFarmInlines.h.

◆ getInterpolatedDistributionForNoSlipBC()

constexpr real vf::gpu::getInterpolatedDistributionForNoSlipBC ( const real q,
const real f,
const real fInverse,
const real feq,
const real omega 
)
constexpr

Definition at line 201 of file KernelUtilities.h.

◆ getInterpolatedDistributionForNoSlipWithPressureBC()

constexpr real vf::gpu::getInterpolatedDistributionForNoSlipWithPressureBC ( const real q,
const real f,
const real fInverse,
const real feq,
const real omega,
const real drho,
const real  weight 
)
constexpr

Definition at line 210 of file KernelUtilities.h.

◆ getInterpolatedDistributionForVeloBC()

constexpr real vf::gpu::getInterpolatedDistributionForVeloBC ( const real q,
const real f,
const real fInverse,
const real feq,
const real omega,
const real velocity,
const real  weight 
)
constexpr

Definition at line 185 of file KernelUtilities.h.

◆ getInterpolatedDistributionForVeloWithPressureBC()

constexpr real vf::gpu::getInterpolatedDistributionForVeloWithPressureBC ( const real q,
const real f,
const real fInverse,
const real feq,
const real omega,
const real drho,
const real velocity,
const real  weight 
)
constexpr

Definition at line 220 of file KernelUtilities.h.

◆ getMaximum()

real vf::gpu::getMaximum ( const real value1,
const real value2 
)

Definition at line 177 of file Vertex.cpp.

◆ getMinimum()

real vf::gpu::getMinimum ( const real value1,
const real value2 
)

Definition at line 172 of file Vertex.cpp.

◆ getNeighborIndex()

uint vf::gpu::getNeighborIndex ( LBMSimulationParameter parH,
const uint  position,
const int  direction 
)
inline

Definition at line 88 of file FindNeighbors.h.

◆ getNeighborIndicesOfBSW()

constexpr void vf::gpu::getNeighborIndicesOfBSW ( uint  k_MMM,
uint k_PMM,
uint k_MPM,
uint k_MMP,
uint k_PPM,
uint k_PMP,
uint k_MPP,
uint k_PPP,
const uint neighborX,
const uint neighborY,
const uint neighborZ 
)
constexpr

Definition at line 48 of file GeometryUtils.h.

◆ getPointersToDistributions()

constexpr void vf::gpu::getPointersToDistributions ( Distributions27 dist,
real distributionArray,
const unsigned long long  numberOfLBnodes,
const bool  isEvenTimestep 
)
constexpr

Definition at line 65 of file KernelUtilities.h.

◆ getPointersToSubgridDistances()

constexpr void vf::gpu::getPointersToSubgridDistances ( SubgridDistances27 subgridD,
real subgridDistances,
const unsigned int  numberOfSubgridIndices 
)
constexpr

Definition at line 144 of file KernelUtilities.h.

◆ getPostCollisionDistribution()

constexpr void vf::gpu::getPostCollisionDistribution ( real local,
const Distributions27 global,
const ListIndices indices 
)
constexpr

Definition at line 392 of file KernelUtilities.h.

◆ getPreCollisionDistribution()

constexpr void vf::gpu::getPreCollisionDistribution ( real local,
const Distributions27 global,
const ListIndices indices 
)
constexpr

Definition at line 359 of file KernelUtilities.h.

◆ getRotorBoundingVolumeRadius()

constexpr real vf::gpu::getRotorBoundingVolumeRadius ( real  diameter,
real  smearingWidth,
bool  useVAWTVolume 
)
constexpr

Definition at line 101 of file ActuatorFarmInlines.h.

◆ getStressBCGridParameter()

GridParameter vf::gpu::getStressBCGridParameter ( LBMSimulationParameter parameterDevice)

◆ getTag()

std::string vf::gpu::getTag ( std::ifstream &  input)

Definition at line 87 of file TransientBCSetter.cpp.

◆ getTowerPointIndex()

constexpr uint vf::gpu::getTowerPointIndex ( uint  pointIndex,
uint  numberOfBladePoints,
uint  numberOfHubPoints 
)
constexpr

Definition at line 196 of file ActuatorFarmInlines.h.

◆ inCylinderVolume()

template<Axis CylinderAxis, bool UseDonut>
__host__ __device__ __inline__ bool vf::gpu::inCylinderVolume ( real  gridX,
real  gridY,
real  gridZ,
real  centerX,
real  centerY,
real  centerZ,
real  cylinderLength,
real  cylinderRadius,
real  margin 
)

Definition at line 114 of file ActuatorFarmInlines.h.

◆ indexInArray()

bool vf::gpu::indexInArray ( const uint array,
uint  numberOfElements,
uint  index 
)

Definition at line 52 of file IndexRearrangementForStreams.cpp.

◆ indexInVector()

bool vf::gpu::indexInVector ( const std::vector< uint > &  vector,
uint  index 
)

Definition at line 57 of file IndexRearrangementForStreams.cpp.

◆ init2ndMoments()

void vf::gpu::init2ndMoments ( Parameter para)

Definition at line 59 of file Calc2ndMoments.cpp.

◆ init3rdMoments()

void vf::gpu::init3rdMoments ( Parameter para)

Definition at line 154 of file Calc2ndMoments.cpp.

◆ initHigherOrderMoments()

void vf::gpu::initHigherOrderMoments ( Parameter para)

Definition at line 253 of file Calc2ndMoments.cpp.

◆ initLattice()

void vf::gpu::initLattice ( SPtr< Parameter para,
SPtr< PreProcessor preProcessor,
SPtr< PreProcessor preProcessorAD,
SPtr< CudaMemoryManager cudaMemoryManager 
)

Definition at line 44 of file InitLattice.cpp.

◆ inSphereVolume()

constexpr bool vf::gpu::inSphereVolume ( real  distX,
real  distY,
real  distZ,
real  diameter,
real  smearingWidth 
)
constexpr

Definition at line 107 of file ActuatorFarmInlines.h.

◆ intersectPlane()

bool vf::gpu::intersectPlane ( const Vertex normal,
const Vertex pointOnPlane,
const Vertex originLine,
const Vertex directionLine,
Vertex intersectionPoint 
)

Definition at line 182 of file TriangularMesh.cpp.

◆ invRotate2D() [1/2]

__inline__ __host__ __device__ void vf::gpu::invRotate2D ( real  angle,
real  posX,
real  posY,
real newPosX,
real newPosY 
)

Definition at line 133 of file GeometryUtils.h.

◆ invRotate2D() [2/2]

__inline__ __host__ __device__ void vf::gpu::invRotate2D ( real  angle,
real  posX,
real  posY,
real newPosX,
real newPosY,
real  originX,
real  originY 
)

Definition at line 139 of file GeometryUtils.h.

◆ invRotateAboutX3D() [1/2]

__inline__ __host__ __device__ void vf::gpu::invRotateAboutX3D ( real  angle,
real  posX,
real  posY,
real  posZ,
real newPosX,
real newPosY,
real newPosZ 
)

Definition at line 164 of file GeometryUtils.h.

◆ invRotateAboutX3D() [2/2]

__inline__ __host__ __device__ void vf::gpu::invRotateAboutX3D ( real  angle,
real  posX,
real  posY,
real  posZ,
real newPosX,
real newPosY,
real newPosZ,
real  originX,
real  originY,
real  originZ 
)

Definition at line 171 of file GeometryUtils.h.

◆ invRotateAboutY3D() [1/2]

__inline__ __host__ __device__ void vf::gpu::invRotateAboutY3D ( real  angle,
real  posX,
real  posY,
real  posZ,
real newPosX,
real newPosY,
real newPosZ 
)

Definition at line 196 of file GeometryUtils.h.

◆ invRotateAboutY3D() [2/2]

__inline__ __host__ __device__ void vf::gpu::invRotateAboutY3D ( real  angle,
real  posX,
real  posY,
real  posZ,
real newPosX,
real newPosY,
real newPosZ,
real  originX,
real  originY,
real  originZ 
)

Definition at line 203 of file GeometryUtils.h.

◆ invRotateAboutZ3D() [1/2]

__inline__ __host__ __device__ void vf::gpu::invRotateAboutZ3D ( real  angle,
real  posX,
real  posY,
real  posZ,
real newPosX,
real newPosY,
real newPosZ 
)

Definition at line 228 of file GeometryUtils.h.

◆ invRotateAboutZ3D() [2/2]

__inline__ __host__ __device__ void vf::gpu::invRotateAboutZ3D ( real  angle,
real  posX,
real  posY,
real  posZ,
real newPosX,
real newPosY,
real newPosZ,
real  originX,
real  originY,
real  originZ 
)

Definition at line 235 of file GeometryUtils.h.

◆ invTranslate2D()

constexpr void vf::gpu::invTranslate2D ( real  posX,
real  posY,
real newPosX,
real newPosY,
real  translationX,
real  translationY 
)
constexpr

Definition at line 97 of file GeometryUtils.h.

◆ invTranslate3D()

constexpr void vf::gpu::invTranslate3D ( real  posX,
real  posY,
real  posZ,
real newPosX,
real newPosY,
real newPosZ,
real  translationX,
real  translationY,
real  translationZ 
)
constexpr

Definition at line 111 of file GeometryUtils.h.

◆ isHubPoint()

constexpr bool vf::gpu::isHubPoint ( uint  pointIndex,
uint  numberOfBladePoints,
uint  totalPoints 
)
constexpr

Definition at line 177 of file ActuatorFarmInlines.h.

◆ isStatisticIn()

bool vf::gpu::isStatisticIn ( PlanarAverageProbe::Statistic  statistic,
std::vector< PlanarAverageProbe::Statistic statistics 
)

◆ isTowerPoint()

constexpr bool vf::gpu::isTowerPoint ( uint  pointIndex,
uint  numberOfBladePoints,
uint  numberOfHubPoints,
uint  totalPoints 
)
constexpr

Definition at line 189 of file ActuatorFarmInlines.h.

◆ isValidFluidNode()

constexpr bool vf::gpu::isValidFluidNode ( uint  nodeType)
constexpr

Definition at line 230 of file KernelUtilities.h.

◆ ListIndices::getIndex< vf::lbm::dir::d000 >()

template<>
constexpr uint vf::gpu::ListIndices::getIndex< vf::lbm::dir::d000 > ( ) const
constexpr

Definition at line 292 of file KernelUtilities.h.

◆ ListIndices::getIndex< vf::lbm::dir::d00M >()

template<>
constexpr uint vf::gpu::ListIndices::getIndex< vf::lbm::dir::d00M > ( ) const
constexpr

Definition at line 298 of file KernelUtilities.h.

◆ ListIndices::getIndex< vf::lbm::dir::d00P >()

template<>
constexpr uint vf::gpu::ListIndices::getIndex< vf::lbm::dir::d00P > ( ) const
constexpr

Definition at line 297 of file KernelUtilities.h.

◆ ListIndices::getIndex< vf::lbm::dir::d0M0 >()

template<>
constexpr uint vf::gpu::ListIndices::getIndex< vf::lbm::dir::d0M0 > ( ) const
constexpr

Definition at line 296 of file KernelUtilities.h.

◆ ListIndices::getIndex< vf::lbm::dir::d0MM >()

template<>
constexpr uint vf::gpu::ListIndices::getIndex< vf::lbm::dir::d0MM > ( ) const
constexpr

Definition at line 308 of file KernelUtilities.h.

◆ ListIndices::getIndex< vf::lbm::dir::d0MP >()

template<>
constexpr uint vf::gpu::ListIndices::getIndex< vf::lbm::dir::d0MP > ( ) const
constexpr

Definition at line 310 of file KernelUtilities.h.

◆ ListIndices::getIndex< vf::lbm::dir::d0P0 >()

template<>
constexpr uint vf::gpu::ListIndices::getIndex< vf::lbm::dir::d0P0 > ( ) const
constexpr

Definition at line 295 of file KernelUtilities.h.

◆ ListIndices::getIndex< vf::lbm::dir::d0PM >()

template<>
constexpr uint vf::gpu::ListIndices::getIndex< vf::lbm::dir::d0PM > ( ) const
constexpr

Definition at line 309 of file KernelUtilities.h.

◆ ListIndices::getIndex< vf::lbm::dir::d0PP >()

template<>
constexpr uint vf::gpu::ListIndices::getIndex< vf::lbm::dir::d0PP > ( ) const
constexpr

Definition at line 307 of file KernelUtilities.h.

◆ ListIndices::getIndex< vf::lbm::dir::dM00 >()

template<>
constexpr uint vf::gpu::ListIndices::getIndex< vf::lbm::dir::dM00 > ( ) const
constexpr

Definition at line 294 of file KernelUtilities.h.

◆ ListIndices::getIndex< vf::lbm::dir::dM0M >()

template<>
constexpr uint vf::gpu::ListIndices::getIndex< vf::lbm::dir::dM0M > ( ) const
constexpr

Definition at line 304 of file KernelUtilities.h.

◆ ListIndices::getIndex< vf::lbm::dir::dM0P >()

template<>
constexpr uint vf::gpu::ListIndices::getIndex< vf::lbm::dir::dM0P > ( ) const
constexpr

Definition at line 306 of file KernelUtilities.h.

◆ ListIndices::getIndex< vf::lbm::dir::dMM0 >()

template<>
constexpr uint vf::gpu::ListIndices::getIndex< vf::lbm::dir::dMM0 > ( ) const
constexpr

Definition at line 300 of file KernelUtilities.h.

◆ ListIndices::getIndex< vf::lbm::dir::dMMM >()

template<>
constexpr uint vf::gpu::ListIndices::getIndex< vf::lbm::dir::dMMM > ( ) const
constexpr

Definition at line 318 of file KernelUtilities.h.

◆ ListIndices::getIndex< vf::lbm::dir::dMMP >()

template<>
constexpr uint vf::gpu::ListIndices::getIndex< vf::lbm::dir::dMMP > ( ) const
constexpr

Definition at line 314 of file KernelUtilities.h.

◆ ListIndices::getIndex< vf::lbm::dir::dMP0 >()

template<>
constexpr uint vf::gpu::ListIndices::getIndex< vf::lbm::dir::dMP0 > ( ) const
constexpr

Definition at line 302 of file KernelUtilities.h.

◆ ListIndices::getIndex< vf::lbm::dir::dMPM >()

template<>
constexpr uint vf::gpu::ListIndices::getIndex< vf::lbm::dir::dMPM > ( ) const
constexpr

Definition at line 316 of file KernelUtilities.h.

◆ ListIndices::getIndex< vf::lbm::dir::dMPP >()

template<>
constexpr uint vf::gpu::ListIndices::getIndex< vf::lbm::dir::dMPP > ( ) const
constexpr

Definition at line 312 of file KernelUtilities.h.

◆ ListIndices::getIndex< vf::lbm::dir::dP00 >()

template<>
constexpr uint vf::gpu::ListIndices::getIndex< vf::lbm::dir::dP00 > ( ) const
constexpr

Definition at line 293 of file KernelUtilities.h.

◆ ListIndices::getIndex< vf::lbm::dir::dP0M >()

template<>
constexpr uint vf::gpu::ListIndices::getIndex< vf::lbm::dir::dP0M > ( ) const
constexpr

Definition at line 305 of file KernelUtilities.h.

◆ ListIndices::getIndex< vf::lbm::dir::dP0P >()

template<>
constexpr uint vf::gpu::ListIndices::getIndex< vf::lbm::dir::dP0P > ( ) const
constexpr

Definition at line 303 of file KernelUtilities.h.

◆ ListIndices::getIndex< vf::lbm::dir::dPM0 >()

template<>
constexpr uint vf::gpu::ListIndices::getIndex< vf::lbm::dir::dPM0 > ( ) const
constexpr

Definition at line 301 of file KernelUtilities.h.

◆ ListIndices::getIndex< vf::lbm::dir::dPMM >()

template<>
constexpr uint vf::gpu::ListIndices::getIndex< vf::lbm::dir::dPMM > ( ) const
constexpr

Definition at line 317 of file KernelUtilities.h.

◆ ListIndices::getIndex< vf::lbm::dir::dPMP >()

template<>
constexpr uint vf::gpu::ListIndices::getIndex< vf::lbm::dir::dPMP > ( ) const
constexpr

Definition at line 313 of file KernelUtilities.h.

◆ ListIndices::getIndex< vf::lbm::dir::dPP0 >()

template<>
constexpr uint vf::gpu::ListIndices::getIndex< vf::lbm::dir::dPP0 > ( ) const
constexpr

Definition at line 299 of file KernelUtilities.h.

◆ ListIndices::getIndex< vf::lbm::dir::dPPM >()

template<>
constexpr uint vf::gpu::ListIndices::getIndex< vf::lbm::dir::dPPM > ( ) const
constexpr

Definition at line 315 of file KernelUtilities.h.

◆ ListIndices::getIndex< vf::lbm::dir::dPPP >()

template<>
constexpr uint vf::gpu::ListIndices::getIndex< vf::lbm::dir::dPPP > ( ) const
constexpr

Definition at line 311 of file KernelUtilities.h.

◆ makeCollectionFileName()

std::string vf::gpu::makeCollectionFileName ( const std::string &  prefix,
int  ID,
int  timestep 
)

Definition at line 72 of file FileWriter.cpp.

◆ makeCollectionFileNameEnding()

std::string vf::gpu::makeCollectionFileNameEnding ( int  ID,
int  timestep 
)

Definition at line 56 of file FileWriter.cpp.

◆ makeGridFileName()

std::string vf::gpu::makeGridFileName ( const std::string &  probeName,
int  level,
int  id,
int  t,
uint  part 
)
inline

Definition at line 57 of file Utilities.h.

◆ makeMeanCollectionFileName()

std::string vf::gpu::makeMeanCollectionFileName ( const std::string &  prefix,
int  ID,
int  timestep 
)

Definition at line 77 of file FileWriter.cpp.

◆ makeMeanPartFileName()

std::string vf::gpu::makeMeanPartFileName ( const std::string &  prefix,
uint  level,
int  ID,
int  part,
int  timestep 
)

Definition at line 66 of file FileWriter.cpp.

◆ makeParallelFileName()

std::string vf::gpu::makeParallelFileName ( const std::string &  probeName,
int  id,
int  t 
)
inline

Definition at line 52 of file Utilities.h.

◆ makePartFileName()

std::string vf::gpu::makePartFileName ( const std::string &  prefix,
uint  level,
int  ID,
int  part,
int  timestep 
)

Definition at line 61 of file FileWriter.cpp.

◆ makePvdCollectionFileName()

std::string vf::gpu::makePvdCollectionFileName ( const std::string &  prefix,
int  mpiProcessID 
)

Definition at line 82 of file FileWriter.cpp.

◆ makeTimeseriesFileName()

std::string vf::gpu::makeTimeseriesFileName ( const std::string &  probeName,
int  level,
int  id 
)
inline

Definition at line 63 of file Utilities.h.

◆ nameComponent()

template<typename T >
std::string vf::gpu::nameComponent ( const std::string &  name,
T  value 
)
inline

Definition at line 47 of file Utilities.h.

◆ NoSlipBounceBack()

void vf::gpu::NoSlipBounceBack ( LBMSimulationParameter parameterDevice,
QforBoundaryConditions boundaryCondition 
)

◆ NoSlipInterpolatedCompressible()

void vf::gpu::NoSlipInterpolatedCompressible ( LBMSimulationParameter parameterDevice,
QforBoundaryConditions boundaryCondition 
)

◆ NoSlipInterpolatedIncompressible()

void vf::gpu::NoSlipInterpolatedIncompressible ( LBMSimulationParameter parameterDevice,
QforBoundaryConditions boundaryCondition 
)

◆ OutflowNonReflecting()

void vf::gpu::OutflowNonReflecting ( LBMSimulationParameter parameterDevice,
QforDirectionalBoundaryCondition boundaryCondition 
)

◆ OutflowNonReflectingPressureCorrection()

void vf::gpu::OutflowNonReflectingPressureCorrection ( LBMSimulationParameter parameterDevice,
QforDirectionalBoundaryCondition boundaryCondition 
)

◆ PrecursorDistributions()

void vf::gpu::PrecursorDistributions ( LBMSimulationParameter parameterDevice,
QforPrecursorBoundaryConditions boundaryCondition,
real  tRatio,
real  velocityRatio 
)

◆ PrecursorNonReflectiveCompressible()

void vf::gpu::PrecursorNonReflectiveCompressible ( LBMSimulationParameter parameterDevice,
QforPrecursorBoundaryConditions boundaryCondition,
real  tRatio,
real  velocityRatio 
)

◆ PrecursorTemperatureDistributions()

void vf::gpu::PrecursorTemperatureDistributions ( LBMSimulationParameter parameterDevice,
QforPrecursorBoundaryConditions boundaryCondition,
real  tRatio,
real  velocityRatio 
)

◆ prepareExchangeCollDataXGPU27AfterFtoC()

void vf::gpu::prepareExchangeCollDataXGPU27AfterFtoC ( Parameter para,
int  level,
CudaStreamIndex  streamIndex 
)

Collect the send nodes for communication in the x direction in a buffer on the gpu.

Only exchange nodes which are part of the interpolation process on refined grids. This function is used in the exchange which takes place after the interpolation fine to coarse and before the interpolation coarse to fine. See [master thesis of Anna Wellmann]

Definition at line 208 of file ExchangeData27.cpp.

◆ prepareExchangeCollDataXGPU27AllNodes()

void vf::gpu::prepareExchangeCollDataXGPU27AllNodes ( Parameter para,
int  level,
CudaStreamIndex  streamIndex 
)

Collect the send nodes for communication in the x direction in a buffer on the gpu.

Needed to exchange all nodes, used in the communication after collision step

Definition at line 202 of file ExchangeData27.cpp.

◆ prepareExchangeCollDataYGPU27AfterFtoC()

void vf::gpu::prepareExchangeCollDataYGPU27AfterFtoC ( Parameter para,
int  level,
CudaStreamIndex  streamIndex 
)

Definition at line 257 of file ExchangeData27.cpp.

◆ prepareExchangeCollDataYGPU27AllNodes()

void vf::gpu::prepareExchangeCollDataYGPU27AllNodes ( Parameter para,
int  level,
CudaStreamIndex  streamIndex 
)

Definition at line 251 of file ExchangeData27.cpp.

◆ prepareExchangeCollDataZGPU27AfterFtoC()

void vf::gpu::prepareExchangeCollDataZGPU27AfterFtoC ( Parameter para,
int  level,
CudaStreamIndex  streamIndex 
)

Definition at line 309 of file ExchangeData27.cpp.

◆ prepareExchangeCollDataZGPU27AllNodes()

void vf::gpu::prepareExchangeCollDataZGPU27AllNodes ( Parameter para,
int  level,
CudaStreamIndex  streamIndex 
)

Definition at line 303 of file ExchangeData27.cpp.

◆ PressureNonEquilibriumCompressible()

void vf::gpu::PressureNonEquilibriumCompressible ( LBMSimulationParameter parameterDevice,
QforDirectionalBoundaryCondition boundaryCondition 
)

◆ PressureNonEquilibriumIncompressible()

void vf::gpu::PressureNonEquilibriumIncompressible ( LBMSimulationParameter parameterDevice,
QforDirectionalBoundaryCondition boundaryCondition 
)

◆ printCaseFile()

void vf::gpu::printCaseFile ( Parameter para)

Definition at line 341 of file Cp.cpp.

◆ printCpBottom()

void vf::gpu::printCpBottom ( Parameter para,
CudaMemoryManager cudaMemoryManager 
)

Definition at line 163 of file Cp.cpp.

◆ printCpBottom2()

void vf::gpu::printCpBottom2 ( Parameter para,
CudaMemoryManager cudaMemoryManager 
)

Definition at line 199 of file Cp.cpp.

◆ printCpTop()

void vf::gpu::printCpTop ( Parameter para,
CudaMemoryManager cudaMemoryManager,
int  lev 
)

Definition at line 130 of file Cp.cpp.

◆ printCpTopIntermediateStep()

void vf::gpu::printCpTopIntermediateStep ( Parameter para,
unsigned int  t,
int  lev 
)

Definition at line 98 of file Cp.cpp.

◆ printDragLift()

void vf::gpu::printDragLift ( Parameter para,
CudaMemoryManager cudaMemoryManager,
int  timestep 
)

Definition at line 105 of file DragLift.cpp.

◆ printGeoFile()

void vf::gpu::printGeoFile ( Parameter para,
bool  fileFormat 
)

Definition at line 403 of file Cp.cpp.

◆ printScalars()

void vf::gpu::printScalars ( Parameter para,
bool  fileFormat 
)

Definition at line 575 of file Cp.cpp.

◆ readAttribute()

std::string vf::gpu::readAttribute ( const std::string &  line,
const std::string &  attributeName 
)

Definition at line 113 of file TransientBCSetter.cpp.

◆ readElement()

std::string vf::gpu::readElement ( const std::string &  line)

Definition at line 105 of file TransientBCSetter.cpp.

◆ readFromInverseDirection()

template<size_t direction>
constexpr real vf::gpu::readFromInverseDirection ( const ListIndices listIndices,
const Distributions27 populationReferences 
)
constexpr

Definition at line 330 of file KernelUtilities.h.

◆ readFromSameDirection()

template<size_t direction>
constexpr real vf::gpu::readFromSameDirection ( const ListIndices listIndices,
const Distributions27 populationReferences 
)
constexpr

Definition at line 347 of file KernelUtilities.h.

◆ readStringToVector()

template<typename T >
std::vector< T > vf::gpu::readStringToVector ( std::string  s)

Definition at line 76 of file TransientBCSetter.cpp.

◆ removeInterpolationCells()

void vf::gpu::removeInterpolationCells ( std::vector< uint > &  indices,
Parameter para,
int  level 
)

◆ resetMean()

void vf::gpu::resetMean ( Parameter para)

Definition at line 72 of file CalcMean.cpp.

◆ resetMeanAD()

void vf::gpu::resetMeanAD ( Parameter para)

Definition at line 113 of file CalcMean.cpp.

◆ resetVelocityFluctuationsAndMeans()

void vf::gpu::resetVelocityFluctuationsAndMeans ( Parameter para,
CudaMemoryManager cudaMemoryManager 
)

Definition at line 112 of file CalcTurbulenceIntensity.cpp.

◆ rotate2D() [1/2]

__inline__ __host__ __device__ void vf::gpu::rotate2D ( real  angle,
real  posX,
real  posY,
real newPosX,
real newPosY 
)

Definition at line 119 of file GeometryUtils.h.

◆ rotate2D() [2/2]

__inline__ __host__ __device__ void vf::gpu::rotate2D ( real  angle,
real  posX,
real  posY,
real newPosX,
real newPosY,
real  originX,
real  originY 
)

Definition at line 125 of file GeometryUtils.h.

◆ rotateAboutX3D() [1/2]

__inline__ __host__ __device__ void vf::gpu::rotateAboutX3D ( real  angle,
real  posX,
real  posY,
real  posZ,
real newPosX,
real newPosY,
real newPosZ 
)

Definition at line 148 of file GeometryUtils.h.

◆ rotateAboutX3D() [2/2]

__inline__ __host__ __device__ void vf::gpu::rotateAboutX3D ( real  angle,
real  posX,
real  posY,
real  posZ,
real newPosX,
real newPosY,
real newPosZ,
real  originX,
real  originY,
real  originZ 
)

Definition at line 155 of file GeometryUtils.h.

◆ rotateAboutY3D() [1/2]

__inline__ __host__ __device__ void vf::gpu::rotateAboutY3D ( real  angle,
real  posX,
real  posY,
real  posZ,
real newPosX,
real newPosY,
real newPosZ 
)

Definition at line 180 of file GeometryUtils.h.

◆ rotateAboutY3D() [2/2]

__inline__ __host__ __device__ void vf::gpu::rotateAboutY3D ( real  angle,
real  posX,
real  posY,
real  posZ,
real newPosX,
real newPosY,
real newPosZ,
real  originX,
real  originY,
real  originZ 
)

Definition at line 187 of file GeometryUtils.h.

◆ rotateAboutZ3D() [1/2]

__inline__ __host__ __device__ void vf::gpu::rotateAboutZ3D ( real  angle,
real  posX,
real  posY,
real  posZ,
real newPosX,
real newPosY,
real newPosZ 
)

Definition at line 212 of file GeometryUtils.h.

◆ rotateAboutZ3D() [2/2]

__inline__ __host__ __device__ void vf::gpu::rotateAboutZ3D ( real  angle,
real  posX,
real  posY,
real  posZ,
real newPosX,
real newPosY,
real newPosZ,
real  originX,
real  originY,
real  originZ 
)

Definition at line 219 of file GeometryUtils.h.

◆ rotateFromBladeToGlobal()

__host__ __device__ __inline__ void vf::gpu::rotateFromBladeToGlobal ( real  bladeCoordX_BF,
real  bladeCoordY_BF,
real  bladeCoordZ_BF,
real bladeCoordX_GF,
real bladeCoordY_GF,
real bladeCoordZ_GF,
real  azimuth 
)

Definition at line 83 of file ActuatorFarmInlines.h.

◆ rotateFromGlobalToBlade()

__host__ __device__ __inline__ void vf::gpu::rotateFromGlobalToBlade ( real bladeCoordX_BF,
real bladeCoordY_BF,
real bladeCoordZ_BF,
real  bladeCoordX_GF,
real  bladeCoordY_GF,
real  bladeCoordZ_GF,
real  azimuth 
)

Definition at line 90 of file ActuatorFarmInlines.h.

◆ scatterNodesFromRecvBufferGPU()

void vf::gpu::scatterNodesFromRecvBufferGPU ( Parameter para,
int  level,
CudaStreamIndex  streamIndex,
const std::vector< ProcessNeighbor27 > &  recvProcessNeighborsDevice 
)

Distribute the receive nodes from the buffer on the gpu.

Definition at line 80 of file ExchangeData27.cpp.

◆ scatterNodesFromRecvBufferXGPU27AfterFtoC()

void vf::gpu::scatterNodesFromRecvBufferXGPU27AfterFtoC ( Parameter para,
int  level,
CudaStreamIndex  streamIndex 
)

Distribute the receive nodes (x direction) from the buffer on the gpu.

Only exchange nodes which are part of the interpolation process on refined grids. This function is used in the exchange which takes place after the interpolation fine to coarse and before the interpolation coarse to fine. See [master thesis of Anna Wellmann]

Definition at line 242 of file ExchangeData27.cpp.

◆ scatterNodesFromRecvBufferXGPU27AllNodes()

void vf::gpu::scatterNodesFromRecvBufferXGPU27AllNodes ( Parameter para,
int  level,
CudaStreamIndex  streamIndex 
)

Distribute the receive nodes (x direction) from the buffer on the gpu.

Needed to exchange all nodes, used in the communication after collision step

Definition at line 236 of file ExchangeData27.cpp.

◆ scatterNodesFromRecvBufferYGPU27AfterFtoC()

void vf::gpu::scatterNodesFromRecvBufferYGPU27AfterFtoC ( Parameter para,
int  level,
CudaStreamIndex  streamIndex 
)

Definition at line 294 of file ExchangeData27.cpp.

◆ scatterNodesFromRecvBufferYGPU27AllNodes()

void vf::gpu::scatterNodesFromRecvBufferYGPU27AllNodes ( Parameter para,
int  level,
CudaStreamIndex  streamIndex 
)

Definition at line 288 of file ExchangeData27.cpp.

◆ scatterNodesFromRecvBufferZGPU27AfterFtoC()

void vf::gpu::scatterNodesFromRecvBufferZGPU27AfterFtoC ( Parameter para,
int  level,
CudaStreamIndex  streamIndex 
)

Definition at line 346 of file ExchangeData27.cpp.

◆ scatterNodesFromRecvBufferZGPU27AllNodes()

void vf::gpu::scatterNodesFromRecvBufferZGPU27AllNodes ( Parameter para,
int  level,
CudaStreamIndex  streamIndex 
)

Definition at line 340 of file ExchangeData27.cpp.

◆ setPostCollisionDistribution()

constexpr void vf::gpu::setPostCollisionDistribution ( Distributions27 global,
const ListIndices indices,
const real local 
)
constexpr

Definition at line 463 of file KernelUtilities.h.

◆ setPreCollisionDistribution()

constexpr void vf::gpu::setPreCollisionDistribution ( Distributions27 global,
const ListIndices indices,
const real local 
)
constexpr

Definition at line 430 of file KernelUtilities.h.

◆ SlipBounceBack()

void vf::gpu::SlipBounceBack ( LBMSimulationParameter parameterDevice,
QforBoundaryConditions boundaryCondition 
)

◆ SlipCompressible()

void vf::gpu::SlipCompressible ( LBMSimulationParameter parameterDevice,
QforBoundaryConditions boundaryCondition 
)

◆ SlipTurbulentViscosityCompressible()

void vf::gpu::SlipTurbulentViscosityCompressible ( LBMSimulationParameter parameterDevice,
QforBoundaryConditions boundaryCondition 
)

◆ smoothAndSaveMean()

constexpr real vf::gpu::smoothAndSaveMean ( real  instantaneous,
real  filterFrequency,
real mean 
)
constexpr

Definition at line 48 of file wallModelMoninObukhov.h.

◆ startNonBlockingMpiReceive()

void vf::gpu::startNonBlockingMpiReceive ( vf::parallel::Communicator comm,
const std::vector< ProcessNeighbor27 > &  recvProcessNeighborsHost,
const bool  diffOn 
)

Definition at line 112 of file ExchangeData27.cpp.

◆ startNonBlockingMpiSend()

void vf::gpu::startNonBlockingMpiSend ( vf::parallel::Communicator comm,
const std::vector< ProcessNeighbor27 > &  sendProcessNeighborsHost,
const bool  diffOn 
)

Definition at line 102 of file ExchangeData27.cpp.

◆ StressBounceBackCompressible()

void vf::gpu::StressBounceBackCompressible ( LBMSimulationParameter parameterDevice,
QforBoundaryConditions boundaryCondition 
)

◆ StressBounceBackWithPressureCompressible()

void vf::gpu::StressBounceBackWithPressureCompressible ( LBMSimulationParameter parameterDevice,
QforBoundaryConditions boundaryCondition 
)

◆ StressInterpolatedCompressible()

void vf::gpu::StressInterpolatedCompressible ( LBMSimulationParameter parameterDevice,
QforBoundaryConditions boundaryCondition 
)

◆ SurfaceLayerBounceBackCompressibleHeatFlux()

void vf::gpu::SurfaceLayerBounceBackCompressibleHeatFlux ( LBMSimulationParameter parameterDevice,
QforBoundaryConditions surfaceLayerBoundaryCondition 
)

◆ SurfaceLayerBounceBackCompressibleSurfaceTemperature()

void vf::gpu::SurfaceLayerBounceBackCompressibleSurfaceTemperature ( LBMSimulationParameter parameterDevice,
QforBoundaryConditions surfaceLayerBoundaryCondition 
)

◆ SurfaceLayerBounceBackWithPressureCompressibleHeatFlux()

void vf::gpu::SurfaceLayerBounceBackWithPressureCompressibleHeatFlux ( LBMSimulationParameter parameterDevice,
QforBoundaryConditions surfaceLayerBoundaryCondition 
)

◆ SurfaceLayerBounceBackWithPressureCompressibleSurfaceTemperature()

void vf::gpu::SurfaceLayerBounceBackWithPressureCompressibleSurfaceTemperature ( LBMSimulationParameter parameterDevice,
QforBoundaryConditions surfaceLayerBoundaryCondition 
)

◆ SurfaceLayerInterpolatedCompressibleHeatFlux()

void vf::gpu::SurfaceLayerInterpolatedCompressibleHeatFlux ( LBMSimulationParameter parameterDevice,
QforBoundaryConditions surfaceLayerBoundaryCondition 
)

◆ SurfaceLayerInterpolatedCompressibleSurfaceTemperature()

void vf::gpu::SurfaceLayerInterpolatedCompressibleSurfaceTemperature ( LBMSimulationParameter parameterDevice,
QforBoundaryConditions surfaceLayerBoundaryCondition 
)

◆ TEST_F() [1/12]

◆ TEST_F() [2/12]

◆ TEST_F() [3/12]

◆ TEST_F() [4/12]

◆ TEST_F() [5/12]

◆ TEST_F() [6/12]

◆ TEST_F() [7/12]

◆ TEST_F() [8/12]

◆ TEST_F() [9/12]

◆ TEST_F() [10/12]

◆ TEST_F() [11/12]

◆ TEST_F() [12/12]

◆ translate2D()

constexpr void vf::gpu::translate2D ( real  posX,
real  posY,
real newPosX,
real newPosY,
real  translationX,
real  translationY 
)
constexpr

Definition at line 91 of file GeometryUtils.h.

◆ translate3D()

constexpr void vf::gpu::translate3D ( real  posX,
real  posY,
real  posZ,
real newPosX,
real newPosY,
real newPosZ,
real  translationX,
real  translationY,
real  translationZ 
)
constexpr

Definition at line 103 of file GeometryUtils.h.

◆ trilinearInterpolation()

constexpr real vf::gpu::trilinearInterpolation ( real  dXM,
real  dYM,
real  dZM,
uint  kMMM,
uint  kPMM,
uint  kMPM,
uint  kMMP,
uint  kPPM,
uint  kPMP,
uint  kMPP,
uint  kPPP,
const real quantity 
)
constexpr

Definition at line 85 of file GeometryUtils.h.

◆ VelocityBounceBack()

void vf::gpu::VelocityBounceBack ( LBMSimulationParameter parameterDevice,
QforBoundaryConditions boundaryCondition 
)

◆ VelocityInterpolatedCompressible()

void vf::gpu::VelocityInterpolatedCompressible ( LBMSimulationParameter parameterDevice,
QforBoundaryConditions boundaryCondition 
)

◆ VelocityInterpolatedIncompressible()

void vf::gpu::VelocityInterpolatedIncompressible ( LBMSimulationParameter parameterDevice,
QforBoundaryConditions boundaryCondition 
)

◆ VelocityWithPressureInterpolatedCompressible()

void vf::gpu::VelocityWithPressureInterpolatedCompressible ( LBMSimulationParameter parameterDevice,
QforBoundaryConditions boundaryCondition 
)

◆ wrapCoord()

real vf::gpu::wrapCoord ( real  coord,
real  start,
real  end 
)
inline

Definition at line 1272 of file GridImp.cpp.

◆ writeAllTiDatafToFile()

void vf::gpu::writeAllTiDatafToFile ( Parameter para,
uint  timestep 
)

Definition at line 166 of file CalcTurbulenceIntensity.cpp.

◆ writeFloatToFile()

void vf::gpu::writeFloatToFile ( const float f,
std::ofstream &  ofile 
)

Definition at line 651 of file Cp.cpp.

◆ writeInInverseDirection()

template<size_t direction>
constexpr void vf::gpu::writeInInverseDirection ( const real  population,
const ListIndices listIndices,
const Distributions27 populationReferences 
)
constexpr

Definition at line 321 of file KernelUtilities.h.

◆ writeInSameDirection()

template<size_t direction>
constexpr void vf::gpu::writeInSameDirection ( const real  population,
const ListIndices listIndices,
const Distributions27 populationReferences 
)
constexpr

Definition at line 339 of file KernelUtilities.h.

◆ writeIntToFile()

void vf::gpu::writeIntToFile ( const int i,
std::ofstream &  ofile 
)

Definition at line 646 of file Cp.cpp.

◆ writeLines()

void vf::gpu::writeLines ( std::string  filename,
std::vector< UbTupleFloat3 nodes,
std::vector< UbTupleInt2 lines 
)

Definition at line 130 of file QLineWriter.cpp.

◆ writeStringToFile()

void vf::gpu::writeStringToFile ( const std::string &  s,
std::ofstream &  ofile 
)

Definition at line 656 of file Cp.cpp.

◆ writeTimeseriesFileHeader()

void vf::gpu::writeTimeseriesFileHeader ( const std::string &  fileName,
int  numberOfPoints,
std::vector< std::string > &  variableNames,
const real coordsX,
const real coordsY,
const real coordsZ 
)
inline

Definition at line 74 of file Utilities.h.

◆ writeTiStuffToFile()

void vf::gpu::writeTiStuffToFile ( Parameter para,
uint  timestep,
unsigned long long  sizeOfTiArray,
std::vector< real * > &  data,
std::vector< std::string > &  datanames 
)

Definition at line 181 of file CalcTurbulenceIntensity.cpp.

◆ writeTurbulenceIntensityToFile()

void vf::gpu::writeTurbulenceIntensityToFile ( Parameter para,
uint  timestep 
)

Definition at line 138 of file CalcTurbulenceIntensity.cpp.

◆ writeVeloFluctuationToFile()

void vf::gpu::writeVeloFluctuationToFile ( Parameter para,
uint  timestep 
)

Definition at line 147 of file CalcTurbulenceIntensity.cpp.

◆ writeVeloMeansToFile()

void vf::gpu::writeVeloMeansToFile ( Parameter para,
uint  timestep 
)

Definition at line 156 of file CalcTurbulenceIntensity.cpp.

Variable Documentation

◆ all_CollisionTemplate

◆ bulk_CollisionTemplate

Definition at line 70 of file Calculation.h.

◆ fileEnding

const std::string vf::gpu::fileEnding = ".dat"

Definition at line 38 of file SimulationFileNames.cpp.

◆ mapForPointerChasing

const std::map<const size_t, const countersForPointerChasing> vf::gpu::mapForPointerChasing

Definition at line 53 of file FindNeighbors.h.