waLBerla 7.2
Loading...
Searching...
No Matches
walberla::free_surface Namespace Reference

Namespaces

namespace  abortIfNullptr
 
namespace  bubble_model
 
namespace  curvature_model
 
namespace  flagIDs
 
namespace  internal
 
namespace  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 )
inline

◆ 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 )
inline

◆ 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 )
inline

◆ 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 )