walberla::free_surface Namespace Reference

Namespaces

 abortIfNullptr
 
 bubble_model
 
 curvature_model
 
 flagIDs
 
 internal
 
 normal_computation
 

Classes

class  AverageRefillingSweep
 
class  BlockStateDetectorSweep
 
class  CellConversionSweep
 
class  ContactAngle
 
class  ConversionFlagsResetSweep
 
class  CurvatureSweepFiniteDifferences
 
class  CurvatureSweepLocalTriangulation
 
class  CurvatureSweepSimpleFiniteDifferences
 
class  DetectWettingSweep
 
class  EquilibriumAndNonEquilibriumRefillingSweep
 
class  EquilibriumRefillingSweep
 
class  ExcessMassDistributionModel
 
class  ExcessMassDistributionSweepBase
 
class  ExcessMassDistributionSweepInterfaceAndLiquid
 
class  ExcessMassDistributionSweepInterfaceEvenly
 
class  ExcessMassDistributionSweepInterfaceWeighted
 
class  ExtrapolateNormalsSweep
 
class  ExtrapolationRefillingSweep
 
class  ExtrapolationRefillingSweepBase
 
class  FlagInfo
 
class  ForceDensityCodegenSweep
 
class  ForceDensitySweep
 
class  FreeSurfaceBoundaryHandling
 
class  GradsMomentsRefillingSweep
 
class  KernelK8
 
class  LoadBalancer
 
class  MaxVelocityComputer
 
class  NormalSweep
 
class  ObstacleFillLevelSweep
 
class  ObstacleNormalSweep
 
class  PdfReconstructionModel
 
class  PdfRefillingModel
 
class  ProcessLoadEvaluator
 
class  RefillingSweepBase
 
class  SimplePressureWithFreeSurface
 
class  SmoothingSweep
 
class  StreamReconstructAdvectSweep
 
class  SurfaceDynamicsHandler
 
class  SurfaceGeometryHandler
 
class  SurfaceMeshWriter
 
class  TotalMassComputer
 

Functions

template<typename LatticeModel_T , typename FlagField_T , typename ConstScalarIt_T , typename ConstPdfIt_T , typename ConstFlagIt_T , typename ConstNeighIt_T , typename FlagInfo_T >
real_t advectMass (const FlagField_T *flagField, const ConstScalarIt_T &fillSrc, const ConstPdfIt_T &pdfFieldIt, const ConstFlagIt_T &flagFieldIt, const ConstNeighIt_T &neighIt, const FlagInfo_T &flagInfo, bool useSimpleMassExchange)
 
template<typename LatticeModel_T , typename BoundaryHandling_T , typename ScalarField_T , typename FlagField_T , typename ScalarIt_T , typename FlagIt_T >
void findInterfaceCellConversion (const BoundaryHandling_T &handling, const ScalarIt_T &fillFieldIt, FlagIt_T &flagFieldIt, const typename FlagField_T::flag_t &neighborFlags, const FlagInfo< FlagField_T > &flagInfo, real_t cellConversionThreshold, real_t cellConversionForceThreshold)
 
template<typename LatticeModel_T , typename BoundaryHandling_T , typename ScalarField_T , typename FlagField_T >
void findInterfaceCellConversions (const BoundaryHandling_T &handling, const ScalarField_T *fillField, FlagField_T *flagField, const FlagInfo< FlagField_T > &flagInfo, real_t cellConversionThreshold, real_t cellConversionForceThreshold)
 
template<typename LatticeModel_T , typename BoundaryHandling_T , typename ScalarField_T , typename FlagField_T , typename NeighField_T >
void findInterfaceCellConversions (const BoundaryHandling_T &handling, const ScalarField_T *fillField, FlagField_T *flagField, const NeighField_T *neighField, const FlagInfo< FlagField_T > &flagInfo, real_t cellConversionThreshold, real_t cellConversionForceThreshold)
 
real_t computeDeltaRhoLaplacePressure (real_t sigma, real_t curvature, real_t maxDeltaRho=real_c(0.1))
 
template<typename Stencil_T , typename FlagField_T >
void getOredNeighborhood (const FlagField_T *flagField, FlagField_T *neighborhoodFlagField)
 
uint_t getIndexOfMaximum (const std::vector< bool > &isInterfaceOrLiquid, const std::vector< bool > &isPdfAvailable, const std::vector< real_t > &n_dot_ci)
 
uint_t getIndexOfMinimum (const std::vector< bool > &isInterfaceOrLiquid, const std::vector< bool > &isPdfAvailable, const std::vector< real_t > &n_dot_ci)
 
template<typename LatticeModel_T , typename ConstPdfIt_T >
real_t reconstructPressureAntiBounceBack (const stencil::Iterator< typename LatticeModel_T::Stencil > &dir, const ConstPdfIt_T &pdfFieldIt, const Vector3< real_t > &u, real_t rhoGas, real_t dir_independent)
 
template<typename LatticeModel_T , typename FlagField_T , typename ConstPdfIt_T , typename ConstFlagIt_T , typename ConstVectorIt_T , typename OutputArray_T >
void reconstructInterfaceCellLegacy (const FlagField_T *flagField, const ConstPdfIt_T &pdfFieldIt, const ConstFlagIt_T &flagFieldIt, const ConstVectorIt_T &normalFieldIt, const FlagInfo< FlagField_T > &flagInfo, const real_t rhoGas, OutputArray_T &f, const PdfReconstructionModel &pdfReconstructionModel)
 
template<typename FlagField_T >
mpi::SendBufferoperator<< (mpi::SendBuffer &buf, const FlagInfo< FlagField_T > &flagInfo)
 
template<typename FlagField_T >
mpi::RecvBufferoperator>> (mpi::RecvBuffer &buf, FlagInfo< FlagField_T > &flagInfo)
 
template<typename BoundaryHandling_T , typename Stencil_T , typename ScalarField_T >
void initFillLevelsInBoundaries (const std::weak_ptr< StructuredBlockForest > &blockForestPtr, const ConstBlockDataID &handlingID, const BlockDataID &fillFieldID, real_t value=real_c(1))
 
template<typename BoundaryHandling_T , typename Stencil_T , typename FlagField_T , typename ScalarField_T >
void initFlagsFromFillLevels (const std::weak_ptr< StructuredBlockForest > &blockForestPtr, const FlagInfo< FlagField_T > &flagInfo, const BlockDataID &handlingID, const ConstBlockDataID &fillFieldID)
 
template<typename PdfField_T >
void initHydrostaticPressure (const std::weak_ptr< StructuredBlockForest > &blockForestPtr, const BlockDataID &pdfFieldID, const Vector3< real_t > &force, real_t fluidHeight)
 
template<typename PdfField_T , typename FlagField_T , typename VectorField_T , typename ScalarField_T >
void initForceDensityField (const std::weak_ptr< StructuredBlockForest > &blockForestPtr, const BlockDataID &forceDensityFieldID, const ConstBlockDataID &fillFieldID, const ConstBlockDataID &pdfFieldID, const ConstBlockDataID &flagFieldID, const FlagInfo< FlagField_T > &flagInfo, const Vector3< real_t > &acceleration)
 
template<typename PdfField_T , typename FlagField_T , typename VectorFieldFlattened_T , typename ScalarField_T >
void initForceDensityFieldCodegen (const std::weak_ptr< StructuredBlockForest > &blockForestPtr, const BlockDataID &forceDensityFieldID, const ConstBlockDataID &fillFieldID, const ConstBlockDataID &pdfFieldID, const ConstBlockDataID &flagFieldID, const FlagInfo< FlagField_T > &flagInfo, const Vector3< real_t > &acceleration)
 
template<typename FlagField_T , typename PdfField_T >
void setDensityInNonFluidCellsToOne (const std::weak_ptr< StructuredBlockForest > &blockForestPtr, const FlagInfo< FlagField_T > &flagInfo, const ConstBlockDataID &flagFieldID, const BlockDataID &pdfFieldID)
 
template<typename Stencil_T , typename ScalarField_T >
bool isInterfaceFromFillLevel (const ScalarField_T &fillField, cell_idx_t x, cell_idx_t y, cell_idx_t z)
 
template<typename Stencil_T , typename ScalarFieldIt_T >
bool isInterfaceFromFillLevel (const ScalarFieldIt_T &fillFieldIt)
 
template<typename Stencil_T , typename ScalarField >
bool isInterfaceFromFillLevel (const ScalarField &fillField, const Cell &cell)
 
std::shared_ptr< StructuredBlockForestcreateNonUniformBlockForest (const Vector3< uint_t > &domainSize, const Vector3< uint_t > &cellsPerBlock, const Vector3< uint_t > &numBlocks, const Vector3< bool > &periodicity)
 
bool computeArtificalWallPoint (const Vector3< real_t > &globalInterfacePointLocation, const Vector3< real_t > &globalCellCoordinate, const Vector3< real_t > &normal, const Vector3< real_t > &wallNormal, const Vector3< real_t > &obstacleNormal, const ContactAngle &contactAngle, Vector3< real_t > &artificialWallPointCoord, Vector3< real_t > &artificialWallNormal)
 
Vector3< real_tgetInterfacePoint (const Vector3< real_t > &normal, real_t fillLevel)
 
real_t getCellEdgeIntersection (const Vector3< real_t > &edgePoint, const Vector3< real_t > &edgeDirection, const Vector3< real_t > &normal, const Vector3< real_t > &surfacePoint)
 
real_t computeCellFluidVolume (const Vector3< real_t > &normal, real_t offset)
 
template<typename LatticeModel_T , typename FreeSurfaceBoundaryHandling_T , typename PdfField_T , typename FlagField_T , typename ScalarField_T , typename VectorField_T , bool useCodegen = false, typename VectorFieldFlattened_T = GhostLayerField< real_t, 3 >>
void addVTKOutput (const std::weak_ptr< StructuredBlockForest > &blockForestPtr, SweepTimeloop &timeloop, const std::weak_ptr< Config > &configPtr, const typename FreeSurfaceBoundaryHandling_T::FlagInfo_T &flagInfo, const BlockDataID &pdfFieldID, const BlockDataID &flagFieldID, const BlockDataID &fillFieldID, const BlockDataID &forceDensityFieldID, const BlockDataID &curvatureFieldID, const BlockDataID &normalFieldID, const BlockDataID &obstacleNormalFieldID)
 

Function Documentation

◆ addVTKOutput()

template<typename LatticeModel_T , typename FreeSurfaceBoundaryHandling_T , typename PdfField_T , typename FlagField_T , typename ScalarField_T , typename VectorField_T , bool useCodegen = false, typename VectorFieldFlattened_T = GhostLayerField< real_t, 3 >>
void walberla::free_surface::addVTKOutput ( const std::weak_ptr< StructuredBlockForest > &  blockForestPtr,
SweepTimeloop timeloop,
const std::weak_ptr< Config > &  configPtr,
const typename FreeSurfaceBoundaryHandling_T::FlagInfo_T &  flagInfo,
const BlockDataID pdfFieldID,
const BlockDataID flagFieldID,
const BlockDataID fillFieldID,
const BlockDataID forceDensityFieldID,
const BlockDataID curvatureFieldID,
const BlockDataID normalFieldID,
const BlockDataID obstacleNormalFieldID 
)

◆ advectMass()

template<typename LatticeModel_T , typename FlagField_T , typename ConstScalarIt_T , typename ConstPdfIt_T , typename ConstFlagIt_T , typename ConstNeighIt_T , typename FlagInfo_T >
real_t walberla::free_surface::advectMass ( const FlagField_T flagField,
const ConstScalarIt_T &  fillSrc,
const ConstPdfIt_T &  pdfFieldIt,
const ConstFlagIt_T &  flagFieldIt,
const ConstNeighIt_T &  neighIt,
const FlagInfo_T &  flagInfo,
bool  useSimpleMassExchange 
)

◆ computeArtificalWallPoint()

bool walberla::free_surface::computeArtificalWallPoint ( const Vector3< real_t > &  globalInterfacePointLocation,
const Vector3< real_t > &  globalCellCoordinate,
const Vector3< real_t > &  normal,
const Vector3< real_t > &  wallNormal,
const Vector3< real_t > &  obstacleNormal,
const ContactAngle contactAngle,
Vector3< real_t > &  artificialWallPointCoord,
Vector3< real_t > &  artificialWallNormal 
)

◆ computeCellFluidVolume()

real_t walberla::free_surface::computeCellFluidVolume ( const Vector3< real_t > &  normal,
real_t  offset 
)

◆ computeDeltaRhoLaplacePressure()

real_t walberla::free_surface::computeDeltaRhoLaplacePressure ( real_t  sigma,
real_t  curvature,
real_t  maxDeltaRho = real_c(0.1) 
)
inline

◆ createNonUniformBlockForest()

std::shared_ptr< StructuredBlockForest > walberla::free_surface::createNonUniformBlockForest ( const Vector3< uint_t > &  domainSize,
const Vector3< uint_t > &  cellsPerBlock,
const Vector3< uint_t > &  numBlocks,
const Vector3< bool > &  periodicity 
)

◆ findInterfaceCellConversion()

template<typename LatticeModel_T , typename BoundaryHandling_T , typename ScalarField_T , typename FlagField_T , typename ScalarIt_T , typename FlagIt_T >
void walberla::free_surface::findInterfaceCellConversion ( const BoundaryHandling_T handling,
const ScalarIt_T &  fillFieldIt,
FlagIt_T &  flagFieldIt,
const typename FlagField_T::flag_t neighborFlags,
const FlagInfo< FlagField_T > &  flagInfo,
real_t  cellConversionThreshold,
real_t  cellConversionForceThreshold 
)

◆ findInterfaceCellConversions() [1/2]

template<typename LatticeModel_T , typename BoundaryHandling_T , typename ScalarField_T , typename FlagField_T >
void walberla::free_surface::findInterfaceCellConversions ( const BoundaryHandling_T handling,
const ScalarField_T *  fillField,
FlagField_T flagField,
const FlagInfo< FlagField_T > &  flagInfo,
real_t  cellConversionThreshold,
real_t  cellConversionForceThreshold 
)

◆ findInterfaceCellConversions() [2/2]

template<typename LatticeModel_T , typename BoundaryHandling_T , typename ScalarField_T , typename FlagField_T , typename NeighField_T >
void walberla::free_surface::findInterfaceCellConversions ( const BoundaryHandling_T handling,
const ScalarField_T *  fillField,
FlagField_T flagField,
const NeighField_T *  neighField,
const FlagInfo< FlagField_T > &  flagInfo,
real_t  cellConversionThreshold,
real_t  cellConversionForceThreshold 
)

◆ getCellEdgeIntersection()

real_t walberla::free_surface::getCellEdgeIntersection ( const Vector3< real_t > &  edgePoint,
const Vector3< real_t > &  edgeDirection,
const Vector3< real_t > &  normal,
const Vector3< real_t > &  surfacePoint 
)

◆ getIndexOfMaximum()

uint_t walberla::free_surface::getIndexOfMaximum ( const std::vector< bool > &  isInterfaceOrLiquid,
const std::vector< bool > &  isPdfAvailable,
const std::vector< real_t > &  n_dot_ci 
)

◆ getIndexOfMinimum()

uint_t walberla::free_surface::getIndexOfMinimum ( const std::vector< bool > &  isInterfaceOrLiquid,
const std::vector< bool > &  isPdfAvailable,
const std::vector< real_t > &  n_dot_ci 
)

◆ getInterfacePoint()

Vector3< real_t > walberla::free_surface::getInterfacePoint ( const Vector3< real_t > &  normal,
real_t  fillLevel 
)

◆ getOredNeighborhood()

template<typename Stencil_T , typename FlagField_T >
void walberla::free_surface::getOredNeighborhood ( const FlagField_T flagField,
FlagField_T neighborhoodFlagField 
)

◆ initFillLevelsInBoundaries()

template<typename BoundaryHandling_T , typename Stencil_T , typename ScalarField_T >
void walberla::free_surface::initFillLevelsInBoundaries ( const std::weak_ptr< StructuredBlockForest > &  blockForestPtr,
const ConstBlockDataID handlingID,
const BlockDataID fillFieldID,
real_t  value = real_c(1) 
)

◆ initFlagsFromFillLevels()

template<typename BoundaryHandling_T , typename Stencil_T , typename FlagField_T , typename ScalarField_T >
void walberla::free_surface::initFlagsFromFillLevels ( const std::weak_ptr< StructuredBlockForest > &  blockForestPtr,
const FlagInfo< FlagField_T > &  flagInfo,
const BlockDataID handlingID,
const ConstBlockDataID fillFieldID 
)

◆ initForceDensityField()

template<typename PdfField_T , typename FlagField_T , typename VectorField_T , typename ScalarField_T >
void walberla::free_surface::initForceDensityField ( const std::weak_ptr< StructuredBlockForest > &  blockForestPtr,
const BlockDataID forceDensityFieldID,
const ConstBlockDataID fillFieldID,
const ConstBlockDataID pdfFieldID,
const ConstBlockDataID flagFieldID,
const FlagInfo< FlagField_T > &  flagInfo,
const Vector3< real_t > &  acceleration 
)

◆ initForceDensityFieldCodegen()

template<typename PdfField_T , typename FlagField_T , typename VectorFieldFlattened_T , typename ScalarField_T >
void walberla::free_surface::initForceDensityFieldCodegen ( const std::weak_ptr< StructuredBlockForest > &  blockForestPtr,
const BlockDataID forceDensityFieldID,
const ConstBlockDataID fillFieldID,
const ConstBlockDataID pdfFieldID,
const ConstBlockDataID flagFieldID,
const FlagInfo< FlagField_T > &  flagInfo,
const Vector3< real_t > &  acceleration 
)

◆ initHydrostaticPressure()

template<typename PdfField_T >
void walberla::free_surface::initHydrostaticPressure ( const std::weak_ptr< StructuredBlockForest > &  blockForestPtr,
const BlockDataID pdfFieldID,
const Vector3< real_t > &  force,
real_t  fluidHeight 
)

◆ isInterfaceFromFillLevel() [1/3]

template<typename Stencil_T , typename ScalarField >
bool walberla::free_surface::isInterfaceFromFillLevel ( const ScalarField fillField,
const Cell cell 
)
inline

◆ isInterfaceFromFillLevel() [2/3]

template<typename Stencil_T , typename ScalarField_T >
bool walberla::free_surface::isInterfaceFromFillLevel ( const ScalarField_T &  fillField,
cell_idx_t  x,
cell_idx_t  y,
cell_idx_t  z 
)
inline

◆ isInterfaceFromFillLevel() [3/3]

template<typename Stencil_T , typename ScalarFieldIt_T >
bool walberla::free_surface::isInterfaceFromFillLevel ( const ScalarFieldIt_T &  fillFieldIt)
inline

◆ operator<<()

template<typename FlagField_T >
mpi::SendBuffer& walberla::free_surface::operator<< ( mpi::SendBuffer buf,
const FlagInfo< FlagField_T > &  flagInfo 
)

◆ operator>>()

template<typename FlagField_T >
mpi::RecvBuffer& walberla::free_surface::operator>> ( mpi::RecvBuffer buf,
FlagInfo< FlagField_T > &  flagInfo 
)

◆ reconstructInterfaceCellLegacy()

template<typename LatticeModel_T , typename FlagField_T , typename ConstPdfIt_T , typename ConstFlagIt_T , typename ConstVectorIt_T , typename OutputArray_T >
void walberla::free_surface::reconstructInterfaceCellLegacy ( const FlagField_T flagField,
const ConstPdfIt_T &  pdfFieldIt,
const ConstFlagIt_T &  flagFieldIt,
const ConstVectorIt_T &  normalFieldIt,
const FlagInfo< FlagField_T > &  flagInfo,
const real_t  rhoGas,
OutputArray_T &  f,
const PdfReconstructionModel pdfReconstructionModel 
)

◆ reconstructPressureAntiBounceBack()

template<typename LatticeModel_T , typename ConstPdfIt_T >
real_t walberla::free_surface::reconstructPressureAntiBounceBack ( const stencil::Iterator< typename LatticeModel_T::Stencil > &  dir,
const ConstPdfIt_T &  pdfFieldIt,
const Vector3< real_t > &  u,
real_t  rhoGas,
real_t  dir_independent 
)
inline

◆ setDensityInNonFluidCellsToOne()

template<typename FlagField_T , typename PdfField_T >
void walberla::free_surface::setDensityInNonFluidCellsToOne ( const std::weak_ptr< StructuredBlockForest > &  blockForestPtr,
const FlagInfo< FlagField_T > &  flagInfo,
const ConstBlockDataID flagFieldID,
const BlockDataID pdfFieldID 
)