OpenLB 1.8.1
Loading...
Searching...
No Matches
olb::boundary::AdvectionDiffusionDirichlet< T, DESCRIPTOR, MixinDynamics > Struct Template Reference

#include <advectionDiffusionDirichlet2D.h>

+ Collaboration diagram for olb::boundary::AdvectionDiffusionDirichlet< T, DESCRIPTOR, MixinDynamics >:

Public Types

using value_t = T
 
using descriptor_t = DESCRIPTOR
 

Public Member Functions

CellDistance getNeighborhoodRadius ()
 
std::optional< DynamicsPromise< T, DESCRIPTOR > > getDynamics (DiscreteNormalType type, DiscreteNormal< DESCRIPTOR > n)
 
std::optional< PostProcessorPromise< T, DESCRIPTOR > > getPostProcessor (DiscreteNormalType type, DiscreteNormal< DESCRIPTOR > n)
 
CellDistance getNeighborhoodRadius ()
 
std::optional< DynamicsPromise< T, DESCRIPTOR > > getDynamics (DiscreteNormalType type, DiscreteNormal< DESCRIPTOR > n)
 
std::optional< PostProcessorPromise< T, DESCRIPTOR > > getPostProcessor (DiscreteNormalType type, DiscreteNormal< DESCRIPTOR > n)
 

Detailed Description

template<concepts::BaseType T, concepts::LatticeDescriptor DESCRIPTOR, typename MixinDynamics>
requires (DESCRIPTOR::d == 3)
struct olb::boundary::AdvectionDiffusionDirichlet< T, DESCRIPTOR, MixinDynamics >

Definition at line 37 of file advectionDiffusionDirichlet3D.h.

Member Typedef Documentation

◆ descriptor_t

template<concepts::BaseType T, concepts::LatticeDescriptor DESCRIPTOR, typename MixinDynamics >
typedef DESCRIPTOR olb::boundary::AdvectionDiffusionDirichlet< T, DESCRIPTOR, MixinDynamics >::descriptor_t = DESCRIPTOR

Definition at line 39 of file advectionDiffusionDirichlet2D.h.

◆ value_t

template<concepts::BaseType T, concepts::LatticeDescriptor DESCRIPTOR, typename MixinDynamics >
typedef T olb::boundary::AdvectionDiffusionDirichlet< T, DESCRIPTOR, MixinDynamics >::value_t = T

Definition at line 38 of file advectionDiffusionDirichlet2D.h.

Member Function Documentation

◆ getDynamics() [1/2]

template<concepts::BaseType T, concepts::LatticeDescriptor DESCRIPTOR, typename MixinDynamics >
std::optional< DynamicsPromise< T, DESCRIPTOR > > olb::boundary::AdvectionDiffusionDirichlet< T, DESCRIPTOR, MixinDynamics >::getDynamics ( DiscreteNormalType type,
DiscreteNormal< DESCRIPTOR > n )
inline

Definition at line 45 of file advectionDiffusionDirichlet2D.h.

46 {
47 switch (type) {
49 return boundaryhelper::DirectionOrientationMixinDynamicsForPlainMomenta<T,DESCRIPTOR,
50 AdvectionDiffusionBoundariesDynamics,MixinDynamics,momenta::EquilibriumBoundaryTuple
51 >::construct(n);
52
54 return boundaryhelper::NormalMixinDynamicsForPlainMomenta<T,DESCRIPTOR,
55 AdvectionDiffusionCornerDynamics2D,MixinDynamics,momenta::EquilibriumBoundaryTuple
56 >::construct(n);
57
58 default:
59 throw std::runtime_error("No valid discrete normal found. This BC is not suited for curved walls.");
60 }
61}
Tuple< FixedDensity, FixedVelocityMomentumGeneric, ZeroStress, DefineSeparately > EquilibriumBoundaryTuple
Velocity and density are stored in external fields.
Definition aliases.h:118
@ ExternalCorner
Normal detected as flat plane.

References olb::ExternalCorner, and olb::Flat.

◆ getDynamics() [2/2]

template<concepts::BaseType T, concepts::LatticeDescriptor DESCRIPTOR, typename MixinDynamics >
std::optional< DynamicsPromise< T, DESCRIPTOR > > olb::boundary::AdvectionDiffusionDirichlet< T, DESCRIPTOR, MixinDynamics >::getDynamics ( DiscreteNormalType type,
DiscreteNormal< DESCRIPTOR > n )
inline

Definition at line 46 of file advectionDiffusionDirichlet3D.h.

47 {
48 switch (type) {
50 return boundaryhelper::DirectionOrientationMixinDynamicsForPlainMomenta<T,DESCRIPTOR,
51 AdvectionDiffusionBoundariesDynamics,MixinDynamics,momenta::EquilibriumBoundaryTuple
52 >::construct(n);
53
55 return boundaryhelper::NormalMixinDynamicsForPlainMomenta<T,DESCRIPTOR,
56 AdvectionDiffusionCornerDynamics3D,MixinDynamics,momenta::EquilibriumBoundaryTuple
57 >::construct(n);
58
60 return boundaryhelper::NormalSpecialMixinDynamicsForPlainMomenta<T,DESCRIPTOR,
61 AdvectionDiffusionEdgesDynamics,MixinDynamics,momenta::EquilibriumBoundaryTuple
62 >::construct(n);
63
64 default:
65 throw std::runtime_error("No valid discrete normal found. This BC is not suited for curved walls.");
66 }
67}
@ ExternalEdge
Normal detected as internal corner.

References olb::ExternalCorner, olb::ExternalEdge, and olb::Flat.

◆ getNeighborhoodRadius() [1/2]

template<concepts::BaseType T, concepts::LatticeDescriptor DESCRIPTOR, typename MixinDynamics >
CellDistance olb::boundary::AdvectionDiffusionDirichlet< T, DESCRIPTOR, MixinDynamics >::getNeighborhoodRadius ( )
inline

Definition at line 41 of file advectionDiffusionDirichlet2D.h.

41 {
42 return 1;
43}

◆ getNeighborhoodRadius() [2/2]

template<concepts::BaseType T, concepts::LatticeDescriptor DESCRIPTOR, typename MixinDynamics >
CellDistance olb::boundary::AdvectionDiffusionDirichlet< T, DESCRIPTOR, MixinDynamics >::getNeighborhoodRadius ( )
inline

Definition at line 42 of file advectionDiffusionDirichlet3D.h.

42 {
43 return 1;
44}

◆ getPostProcessor() [1/2]

template<concepts::BaseType T, concepts::LatticeDescriptor DESCRIPTOR, typename MixinDynamics >
std::optional< PostProcessorPromise< T, DESCRIPTOR > > olb::boundary::AdvectionDiffusionDirichlet< T, DESCRIPTOR, MixinDynamics >::getPostProcessor ( DiscreteNormalType type,
DiscreteNormal< DESCRIPTOR > n )
inline

Definition at line 63 of file advectionDiffusionDirichlet2D.h.

64 {
65 return std::nullopt;
66 }

◆ getPostProcessor() [2/2]

template<concepts::BaseType T, concepts::LatticeDescriptor DESCRIPTOR, typename MixinDynamics >
std::optional< PostProcessorPromise< T, DESCRIPTOR > > olb::boundary::AdvectionDiffusionDirichlet< T, DESCRIPTOR, MixinDynamics >::getPostProcessor ( DiscreteNormalType type,
DiscreteNormal< DESCRIPTOR > n )
inline

Definition at line 69 of file advectionDiffusionDirichlet3D.h.

70 {
71 return std::nullopt;
72}

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