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

#include <BoundaryConditionFactory.h>

Inheritance diagram for vf::gpu::BoundaryConditionFactory:
BoundaryConditionFactoryMock

Public Types

enum class  VelocityBC {
  VelocityBounceBack , VelocityInterpolatedIncompressible , VelocityInterpolatedCompressible , VelocityWithPressureInterpolatedCompressible ,
  NotSpecified
}
 An enumeration for selecting a velocity boundary condition. More...
 
enum class  NoSlipBC { NoSlipDelayBounceBack , NoSlipBounceBack , NoSlipInterpolatedIncompressible , NoSlipInterpolatedCompressible }
 An enumeration for selecting a no-slip boundary condition. More...
 
enum class  SlipBC { SlipBounceBack , SlipCompressible , SlipTurbulentViscosityCompressible , NotSpecified }
 An enumeration for selecting a slip boundary condition. More...
 
enum class  PressureBC {
  PressureNonEquilibriumIncompressible , PressureNonEquilibriumCompressible , OutflowNonReflective , OutflowNonReflectivePressureCorrection ,
  NotSpecified
}
 An enumeration for selecting a pressure boundary condition. More...
 
enum class  StressBC { StressBounceBackCompressible , StressBounceBackWithPressureCompressible , StressInterpolatedCompressible , NotSpecified }
 An enumeration for selecting a stress boundary condition. More...
 
enum class  PrecursorBC { PrecursorNonReflectiveCompressible , PrecursorDistributions , PrecursorVelTemperatureDistributions , NotSpecified }
 
enum class  AdvectionDiffusionNoFluxBC { NoFluxDelayedBounceBack , NoFluxBounceBack }
 Equivalent to an adiabatic boundary condition, best used in combination with NoSlip. More...
 
enum class  AdvectionDiffusionFluxBC { FluxTurbulentViscosityCompressible , FluxCompressible , FluxBounceBack , NotSpecified }
 Can set flux, best used in combination with Slip or velocity. More...
 
enum class  AdvectionDiffusionDirichletBC {
  DirichletInterpolatedSlip , DirichletAntiBounceBackSlip , DirichletInterpolatedNoSlip , DirichletAntiBounceBackNoSlip ,
  NotSpecified
}
 Sets constant value at boundary via Anti bounce back rule. More...
 
enum class  AdvectionDiffusionNeumannBC {
  NeumannInterpolatedSlip , NeumannAntiBounceBackSlip , NeumannInterpolatedNoSlip , NeumannAntiBounceBackNoSlip ,
  NotSpecified
}
 Sets gradient at boundary via anti bounce back rule. Only works well at low velocities. More...
 
enum class  SurfaceLayerBC { SurfaceHeatFlux , SurfaceTemperature , NotSpecified }
 Enum to differentiate between setting heatlfux or surfaceTemperature in SurfaceLayer BC. More...
 
enum class  AdvectionDiffusionDirectionalBC { DirectionalOutflowNonReflecting , NotSpecified }
 Directional non-reflecting outflow for the advection-diffusion (temperature) field. More...
 

Public Member Functions

virtual ~BoundaryConditionFactory ()=default
 
void setVelocityBoundaryCondition (BoundaryConditionFactory::VelocityBC boundaryConditionType)
 
void setNoSlipBoundaryCondition (BoundaryConditionFactory::NoSlipBC boundaryConditionType)
 
void setSlipBoundaryCondition (BoundaryConditionFactory::SlipBC boundaryConditionType)
 
void setPressureBoundaryCondition (BoundaryConditionFactory::PressureBC boundaryConditionType)
 
void setStressBoundaryCondition (BoundaryConditionFactory::StressBC boundaryConditionType)
 
void setPrecursorBoundaryCondition (BoundaryConditionFactory::PrecursorBC boundaryConditionType)
 
void setGeometryBoundaryCondition (std::variant< VelocityBC, NoSlipBC, SlipBC > boundaryConditionType)
 set a boundary condition for the geometry param boundaryConditionType: a velocity, no-slip or slip boundary condition
 
void setAdvectionDiffusionNoFluxBoundaryCondition (AdvectionDiffusionNoFluxBC boundaryConditionType)
 
void setAdvectionDiffusionFluxBoundaryCondition (AdvectionDiffusionFluxBC boundaryConditionType)
 
void setAdvectionDiffusionDirichletBoundaryCondition (AdvectionDiffusionDirichletBC boundaryConditionType)
 
void setAdvectionDiffusionNeumannBoundaryCondition (AdvectionDiffusionNeumannBC boundaryConditionType)
 
void setSurfaceLayerBoundaryCondition (StressBC momentumBoundaryConditionType, SurfaceLayerBC surfaceLayerBoundaryConditionType)
 
void setAdvectionDiffusionDirectionalBoundaryCondition (AdvectionDiffusionDirectionalBC boundaryConditionType)
 
virtual BoundaryConditionKernel getVelocityBoundaryConditionPost (bool isGeometryBC=false) const
 
BoundaryConditionKernel getNoSlipBoundaryConditionPost (bool isGeometryBC=false) const
 
BoundaryConditionKernel getSlipBoundaryConditionPost (bool isGeometryBC=false) const
 
BoundaryConditionKernel getGeometryBoundaryConditionPost () const
 
virtual std::variant< BoundaryConditionKernel, DirectionalBoundaryConditionKernelgetPressureBoundaryConditionPre () const
 
BoundaryConditionKernel getStressBoundaryConditionPost () const
 
PrecursorBoundaryConditionKernel getPrecursorBoundaryConditionPost () const
 
AdvectionDiffusionNoFluxBoundaryConditionKernel getAdvectionDiffusionNoFluxBoundaryConditionPost () const
 
AdvectionDiffusionFluxBoundaryConditionKernel getAdvectionDiffusionFluxBoundaryConditionPost () const
 
AdvectionDiffusionDirichletBoundaryConditionKernel getAdvectionDiffusionDirichletBoundaryConditionPost () const
 
AdvectionDiffusionNeumannBoundaryConditionKernel getAdvectionDiffusionNeumannBoundaryConditionPost () const
 
DirectionalADBoundaryConditionKernel getAdvectionDiffusionDirectionalBoundaryConditionPost () const
 
BoundaryConditionKernel getSurfaceLayerBoundaryConditionPost () const
 
virtual bool hasDirectionalPressureBoundaryCondition () const
 

Detailed Description

Definition at line 64 of file BoundaryConditionFactory.h.

Member Enumeration Documentation

◆ AdvectionDiffusionDirectionalBC

Directional non-reflecting outflow for the advection-diffusion (temperature) field.

Analogous to OutflowNonReflective for the fluid field, but operates on distributionsAD and is applied in the postCollisionBC stage. The face direction (dM00, dP00, etc.) is stored per boundary and selects which 9 AD populations are updated.

Enumerator
DirectionalOutflowNonReflecting 
  • DirectionalOutflowNonReflecting: advective (non-reflecting) outflow for the AD field
NotSpecified 
  • NotSpecified: the user did not set a boundary condition

Definition at line 199 of file BoundaryConditionFactory.h.

◆ AdvectionDiffusionDirichletBC

Sets constant value at boundary via Anti bounce back rule.

Enumerator
DirichletInterpolatedSlip 
  • Interpolated Dirichlet boundary condition, uses subgrid distances, must be used with Slip
DirichletAntiBounceBackSlip 
  • Bounce Back Dirichlet boundary condition, does not use subgrid distances, must be used with Slip
DirichletInterpolatedNoSlip 
  • Interpolated Dirichlet boundary condition, uses subgrid distances, must be used with NoSlip
DirichletAntiBounceBackNoSlip 
  • BounceBack Dirichlet boundary condition, does not use subgrid distances, must be used with NoSlip
NotSpecified 

Definition at line 164 of file BoundaryConditionFactory.h.

◆ AdvectionDiffusionFluxBC

Can set flux, best used in combination with Slip or velocity.

Enumerator
FluxTurbulentViscosityCompressible 
FluxCompressible 
FluxBounceBack 
NotSpecified 

Definition at line 156 of file BoundaryConditionFactory.h.

◆ AdvectionDiffusionNeumannBC

Sets gradient at boundary via anti bounce back rule. Only works well at low velocities.

Enumerator
NeumannInterpolatedSlip 
  • Interpolated Neumann boundary condition, uses subgrid distances, must be used with Slip
NeumannAntiBounceBackSlip 
  • Interpolated Neumann boundary condition, does not use subgrid distances, must be used with Slip
NeumannInterpolatedNoSlip 
  • Interpolated Neumann boundary condition, uses subgrid distances, must be used with NoSlip
NeumannAntiBounceBackNoSlip 
  • Interpolated Neumann boundary condition, does not use subgrid distances, must be used with NoSlip
NotSpecified 

Definition at line 177 of file BoundaryConditionFactory.h.

◆ AdvectionDiffusionNoFluxBC

Equivalent to an adiabatic boundary condition, best used in combination with NoSlip.

Enumerator
NoFluxDelayedBounceBack 

NoFluxBounceBackDelayed = implicit bounce back.

NoFluxBounceBack 

NoFluxBounceBack = simple bounce back.

Definition at line 147 of file BoundaryConditionFactory.h.

◆ NoSlipBC

An enumeration for selecting a no-slip boundary condition.

Enumerator
NoSlipDelayBounceBack 
  • NoSlipDelayBounceBack = implicit bounce back by Esoteric Twist
NoSlipBounceBack 
  • NoSlipBounceBack = explicit bounce back
NoSlipInterpolatedIncompressible 
  • NoSlipInterpolatedIncompressible = interpolated no-slip boundary condition, based on subgrid distances
NoSlipInterpolatedCompressible 
  • NoSlipInterpolatedCompressible = interpolated no-slip boundary condition, based on subgrid distances

Definition at line 84 of file BoundaryConditionFactory.h.

◆ PrecursorBC

Enumerator
PrecursorNonReflectiveCompressible 
  • VelocityPrecursor
PrecursorDistributions 
  • DistributionsPrecursor
PrecursorVelTemperatureDistributions 
NotSpecified 
  • NotSpecified = the user did not set a boundary condition

Definition at line 136 of file BoundaryConditionFactory.h.

◆ PressureBC

An enumeration for selecting a pressure boundary condition.

Enumerator
PressureNonEquilibriumIncompressible 
  • PressureNonEquilibriumIncompressible = pressure boundary condition based on non-equilibrium
PressureNonEquilibriumCompressible 
  • PressureNonEquilibriumCompressible = pressure boundary condition based on non-equilibrium
OutflowNonReflective 
  • OutflowNonReflective = outflow boundary condition, should be combined with VelocityAndPressureCompressible
OutflowNonReflectivePressureCorrection 
  • OutflowNonreflectivePressureCorrection = like OutflowNonReflective, but also reduces pressure overshoot
NotSpecified 
  • NotSpecified = the user did not set a boundary condition

Definition at line 108 of file BoundaryConditionFactory.h.

◆ SlipBC

An enumeration for selecting a slip boundary condition.

Enumerator
SlipBounceBack 

SlipBounceBack = slip boundary condition based on bounce back.

SlipCompressible 
  • SlipCompressible = interpolated slip boundary condition, based on subgrid distances
SlipTurbulentViscosityCompressible 

With turbulent viscosity -> para->setUseTurbulentViscosity(true) has to be set to true.

NotSpecified 
  • NotSpecified = the user did not set a boundary condition

Definition at line 96 of file BoundaryConditionFactory.h.

◆ StressBC

An enumeration for selecting a stress boundary condition.

Enumerator
StressBounceBackCompressible 
  • StressBounceBackCompressible
StressBounceBackWithPressureCompressible 
  • StressBounceBackWithPressureCompressible
StressInterpolatedCompressible 
  • StressInterpolatedCompressible
NotSpecified 
  • NotSpecified = the user did not set a boundary condition

Definition at line 122 of file BoundaryConditionFactory.h.

◆ SurfaceLayerBC

Enum to differentiate between setting heatlfux or surfaceTemperature in SurfaceLayer BC.

Enumerator
SurfaceHeatFlux 
SurfaceTemperature 
NotSpecified 

Definition at line 190 of file BoundaryConditionFactory.h.

◆ VelocityBC

An enumeration for selecting a velocity boundary condition.

Enumerator
VelocityBounceBack 
  • VelocitySimpleBounceBackCompressible = plain bounce back velocity boundary condition
VelocityInterpolatedIncompressible 
  • VelocityIncompressible = interpolated velocity boundary condition, based on subgrid distances
VelocityInterpolatedCompressible 
  • VelocityCompressible = interpolated velocity boundary condition, based on subgrid distances
VelocityWithPressureInterpolatedCompressible 
  • VelocityAndPressureCompressible = interpolated velocity boundary condition, based on subgrid distances. Also sets the pressure to the bulk pressure. Can be combined with OutflowNonReflective
NotSpecified 
  • NotSpecified = the user did not set a boundary condition

Definition at line 69 of file BoundaryConditionFactory.h.

Constructor & Destructor Documentation

◆ ~BoundaryConditionFactory()

virtual vf::gpu::BoundaryConditionFactory::~BoundaryConditionFactory ( )
virtualdefault

Member Function Documentation

◆ getAdvectionDiffusionDirectionalBoundaryConditionPost()

DirectionalADBoundaryConditionKernel vf::gpu::BoundaryConditionFactory::getAdvectionDiffusionDirectionalBoundaryConditionPost ( ) const

Definition at line 306 of file BoundaryConditionFactory.cpp.

◆ getAdvectionDiffusionDirichletBoundaryConditionPost()

AdvectionDiffusionDirichletBoundaryConditionKernel vf::gpu::BoundaryConditionFactory::getAdvectionDiffusionDirichletBoundaryConditionPost ( ) const

Definition at line 272 of file BoundaryConditionFactory.cpp.

◆ getAdvectionDiffusionFluxBoundaryConditionPost()

AdvectionDiffusionFluxBoundaryConditionKernel vf::gpu::BoundaryConditionFactory::getAdvectionDiffusionFluxBoundaryConditionPost ( ) const

Definition at line 261 of file BoundaryConditionFactory.cpp.

◆ getAdvectionDiffusionNeumannBoundaryConditionPost()

AdvectionDiffusionNeumannBoundaryConditionKernel vf::gpu::BoundaryConditionFactory::getAdvectionDiffusionNeumannBoundaryConditionPost ( ) const

Definition at line 289 of file BoundaryConditionFactory.cpp.

◆ getAdvectionDiffusionNoFluxBoundaryConditionPost()

AdvectionDiffusionNoFluxBoundaryConditionKernel vf::gpu::BoundaryConditionFactory::getAdvectionDiffusionNoFluxBoundaryConditionPost ( ) const

Definition at line 252 of file BoundaryConditionFactory.cpp.

◆ getGeometryBoundaryConditionPost()

BoundaryConditionKernel vf::gpu::BoundaryConditionFactory::getGeometryBoundaryConditionPost ( ) const

Definition at line 241 of file BoundaryConditionFactory.cpp.

◆ getNoSlipBoundaryConditionPost()

BoundaryConditionKernel vf::gpu::BoundaryConditionFactory::getNoSlipBoundaryConditionPost ( bool  isGeometryBC = false) const

Definition at line 136 of file BoundaryConditionFactory.cpp.

◆ getPrecursorBoundaryConditionPost()

PrecursorBoundaryConditionKernel vf::gpu::BoundaryConditionFactory::getPrecursorBoundaryConditionPost ( ) const

Definition at line 207 of file BoundaryConditionFactory.cpp.

◆ getPressureBoundaryConditionPre()

std::variant< BoundaryConditionKernel, DirectionalBoundaryConditionKernel > vf::gpu::BoundaryConditionFactory::getPressureBoundaryConditionPre ( ) const
virtual

Reimplemented in BoundaryConditionFactoryMock.

Definition at line 182 of file BoundaryConditionFactory.cpp.

◆ getSlipBoundaryConditionPost()

BoundaryConditionKernel vf::gpu::BoundaryConditionFactory::getSlipBoundaryConditionPost ( bool  isGeometryBC = false) const

Definition at line 160 of file BoundaryConditionFactory.cpp.

◆ getStressBoundaryConditionPost()

BoundaryConditionKernel vf::gpu::BoundaryConditionFactory::getStressBoundaryConditionPost ( ) const

Definition at line 224 of file BoundaryConditionFactory.cpp.

◆ getSurfaceLayerBoundaryConditionPost()

BoundaryConditionKernel vf::gpu::BoundaryConditionFactory::getSurfaceLayerBoundaryConditionPost ( ) const

Definition at line 316 of file BoundaryConditionFactory.cpp.

◆ getVelocityBoundaryConditionPost()

BoundaryConditionKernel vf::gpu::BoundaryConditionFactory::getVelocityBoundaryConditionPost ( bool  isGeometryBC = false) const
virtual

Reimplemented in BoundaryConditionFactoryMock.

Definition at line 112 of file BoundaryConditionFactory.cpp.

◆ hasDirectionalPressureBoundaryCondition()

bool vf::gpu::BoundaryConditionFactory::hasDirectionalPressureBoundaryCondition ( ) const
virtual

Reimplemented in BoundaryConditionFactoryMock.

Definition at line 202 of file BoundaryConditionFactory.cpp.

◆ setAdvectionDiffusionDirectionalBoundaryCondition()

void vf::gpu::BoundaryConditionFactory::setAdvectionDiffusionDirectionalBoundaryCondition ( AdvectionDiffusionDirectionalBC  boundaryConditionType)

Definition at line 108 of file BoundaryConditionFactory.cpp.

◆ setAdvectionDiffusionDirichletBoundaryCondition()

void vf::gpu::BoundaryConditionFactory::setAdvectionDiffusionDirichletBoundaryCondition ( AdvectionDiffusionDirichletBC  boundaryConditionType)

Definition at line 100 of file BoundaryConditionFactory.cpp.

◆ setAdvectionDiffusionFluxBoundaryCondition()

void vf::gpu::BoundaryConditionFactory::setAdvectionDiffusionFluxBoundaryCondition ( AdvectionDiffusionFluxBC  boundaryConditionType)

Definition at line 96 of file BoundaryConditionFactory.cpp.

◆ setAdvectionDiffusionNeumannBoundaryCondition()

void vf::gpu::BoundaryConditionFactory::setAdvectionDiffusionNeumannBoundaryCondition ( AdvectionDiffusionNeumannBC  boundaryConditionType)

Definition at line 104 of file BoundaryConditionFactory.cpp.

◆ setAdvectionDiffusionNoFluxBoundaryCondition()

void vf::gpu::BoundaryConditionFactory::setAdvectionDiffusionNoFluxBoundaryCondition ( AdvectionDiffusionNoFluxBC  boundaryConditionType)

Definition at line 92 of file BoundaryConditionFactory.cpp.

◆ setGeometryBoundaryCondition()

void vf::gpu::BoundaryConditionFactory::setGeometryBoundaryCondition ( std::variant< VelocityBC, NoSlipBC, SlipBC boundaryConditionType)

set a boundary condition for the geometry param boundaryConditionType: a velocity, no-slip or slip boundary condition

suggestions for boundaryConditionType:

  • velocity: VelocityIncompressible, VelocityCompressible, VelocityAndPressureCompressible
  • no-slip: NoSlipBounceBack, NoSlipIncompressible, NoSlipCompressible, NoSlip3rdMomentsCompressible
  • slip: only use a slip boundary condition which sets the normals

Definition at line 73 of file BoundaryConditionFactory.cpp.

◆ setNoSlipBoundaryCondition()

void vf::gpu::BoundaryConditionFactory::setNoSlipBoundaryCondition ( BoundaryConditionFactory::NoSlipBC  boundaryConditionType)

Definition at line 58 of file BoundaryConditionFactory.cpp.

◆ setPrecursorBoundaryCondition()

void vf::gpu::BoundaryConditionFactory::setPrecursorBoundaryCondition ( BoundaryConditionFactory::PrecursorBC  boundaryConditionType)

Definition at line 88 of file BoundaryConditionFactory.cpp.

◆ setPressureBoundaryCondition()

void vf::gpu::BoundaryConditionFactory::setPressureBoundaryCondition ( BoundaryConditionFactory::PressureBC  boundaryConditionType)

Definition at line 68 of file BoundaryConditionFactory.cpp.

◆ setSlipBoundaryCondition()

void vf::gpu::BoundaryConditionFactory::setSlipBoundaryCondition ( BoundaryConditionFactory::SlipBC  boundaryConditionType)

Definition at line 63 of file BoundaryConditionFactory.cpp.

◆ setStressBoundaryCondition()

void vf::gpu::BoundaryConditionFactory::setStressBoundaryCondition ( BoundaryConditionFactory::StressBC  boundaryConditionType)

Definition at line 78 of file BoundaryConditionFactory.cpp.

◆ setSurfaceLayerBoundaryCondition()

void vf::gpu::BoundaryConditionFactory::setSurfaceLayerBoundaryCondition ( StressBC  momentumBoundaryConditionType,
SurfaceLayerBC  surfaceLayerBoundaryConditionType 
)

Definition at line 83 of file BoundaryConditionFactory.cpp.

◆ setVelocityBoundaryCondition()

void vf::gpu::BoundaryConditionFactory::setVelocityBoundaryCondition ( BoundaryConditionFactory::VelocityBC  boundaryConditionType)

Definition at line 53 of file BoundaryConditionFactory.cpp.


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