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

#include <localVelocity2D.h>

+ Collaboration diagram for olb::boundary::LocalVelocity< 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::LocalVelocity< T, DESCRIPTOR, MixinDynamics >

Definition at line 38 of file localVelocity3D.h.

Member Typedef Documentation

◆ descriptor_t

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

Definition at line 42 of file localVelocity2D.h.

◆ value_t

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

Definition at line 41 of file localVelocity2D.h.

Member Function Documentation

◆ getDynamics() [1/2]

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

Definition at line 48 of file localVelocity2D.h.

49 {
50 switch (type) {
52 return boundaryhelper::PlainMixinDynamicsForDirectionOrientationMomenta<T,DESCRIPTOR,
53 CombinedRLBdynamics,MixinDynamics,momenta::RegularizedVelocityBoundaryTuple
54 >::construct(n);
55
57 return meta::id<typename MixinDynamics::template exchange_momenta<momenta::FixedVelocityBoundaryTuple>>{};
58
60 return boundaryhelper::PlainMixinDynamicsForNormalMomenta<T,DESCRIPTOR,
61 CombinedRLBdynamics,MixinDynamics,momenta::InnerCornerVelocityTuple2D
62 >::construct(n);
63
64 default:
65 return std::nullopt;
66 }
67}
Tuple< InnerCornerDensity2D< Normal... >, FixedVelocityMomentumGeneric, InnerCornerStress2D< Normal... >, DefineSeparately > InnerCornerVelocityTuple2D
Definition aliases.h:196
Tuple< VelocityBoundaryDensity< direction, orientation >, FixedVelocityMomentumGeneric, RegularizedBoundaryStress< direction, orientation >, DefineSeparately > RegularizedVelocityBoundaryTuple
Regularized velocity boundary node.
Definition aliases.h:127
@ ExternalCorner
Normal detected as flat plane.
@ InternalCorner
Normal detected as external corner.

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

◆ getDynamics() [2/2]

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

Definition at line 47 of file localVelocity3D.h.

48 {
49 switch (type) {
51 if (n[0] != 0 && n[0] == -1) {
52 return meta::id<CombinedRLBdynamics<T,DESCRIPTOR, MixinDynamics,
54 >>();
55 }
56 else if (n[0] != 0 && n[0] == 1) {
57 return meta::id<CombinedRLBdynamics<T,DESCRIPTOR, MixinDynamics,
59 >>();
60 }
61 else if (n[1] != 0 && n[1] == -1) {
62 return meta::id<CombinedRLBdynamics<T,DESCRIPTOR, MixinDynamics,
64 >>();
65 }
66 else if (n[1] != 0 && n[1] == 1) {
67 return meta::id<CombinedRLBdynamics<T,DESCRIPTOR, MixinDynamics,
69 >>();
70 }
71 else if (n[2] != 0 && n[2] == -1) {
72 return meta::id<CombinedRLBdynamics<T,DESCRIPTOR, MixinDynamics,
74 >>();
75 }
76 else if (n[2] != 0 && n[2] == 1) {
77 return meta::id<CombinedRLBdynamics<T,DESCRIPTOR, MixinDynamics,
79 >>();
80 }
81 return std::nullopt;
82
84 return meta::id<typename MixinDynamics::template exchange_momenta<
86 >>();
87
89 return boundaryhelper::PlainMixinDynamicsForNormalMomenta<T,DESCRIPTOR,
90 CombinedRLBdynamics,MixinDynamics,momenta::InnerCornerVelocityTuple3D
91 >::construct(n);
92
94 return meta::id<typename MixinDynamics::template exchange_momenta<
96 >>();
97
99 return boundaryhelper::PlainMixinDynamicsForNormalSpecialMomenta<T,DESCRIPTOR,
100 CombinedRLBdynamics,MixinDynamics,momenta::InnerEdgeVelocityTuple3D
101 >::construct(n);
102
103 default:
104 return std::nullopt;
105 }
106}
Tuple< InnerEdgeDensity3D< PlaneAndNormal... >, FixedVelocityMomentumGeneric, InnerEdgeStress3D< PlaneAndNormal... >, DefineSeparately > InnerEdgeVelocityTuple3D
Definition aliases.h:204
Tuple< InnerCornerDensity3D< Normal... >, FixedVelocityMomentumGeneric, InnerCornerStress3D< Normal... >, DefineSeparately > InnerCornerVelocityTuple3D
Definition aliases.h:212
Tuple< BulkDensity, FixedVelocityMomentumGeneric, BulkStress, DefineUSeparatelyTrace > FixedVelocityBoundaryTuple
In this class, the velocity is fixed As opposed to VelocityBM, the pressure is however not computed f...
Definition aliases.h:188
@ ExternalEdge
Normal detected as internal corner.
@ InternalEdge
Normal detected as external edge (only 3D)

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

◆ getNeighborhoodRadius() [1/2]

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

Definition at line 44 of file localVelocity2D.h.

44 {
45 return 2;
46}

◆ getNeighborhoodRadius() [2/2]

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

Definition at line 43 of file localVelocity3D.h.

43 {
44 return 2;
45}

◆ getPostProcessor() [1/2]

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

Definition at line 69 of file localVelocity2D.h.

70 {
71 switch (type) {
74
75 default:
76 return std::nullopt;
77 }
78}
PostProcessorPromise< T, DESCRIPTOR > promisePostProcessorForNormal(Vector< int, 2 > n)

References olb::ExternalCorner, and olb::boundaryhelper::promisePostProcessorForNormal().

+ Here is the call graph for this function:

◆ getPostProcessor() [2/2]

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

Definition at line 108 of file localVelocity3D.h.

109 {
110 switch (type) {
115 default:
116 return std::nullopt;
117 }
118}
PostProcessorPromise< T, DESCRIPTOR > promisePostProcessorForNormalSpecial(Vector< int, 3 > n)

References olb::ExternalCorner, olb::ExternalEdge, olb::boundaryhelper::promisePostProcessorForNormal(), and olb::boundaryhelper::promisePostProcessorForNormalSpecial().

+ Here is the call graph for this function:

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