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

#include <interpolatedVelocity2D.h>

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

Definition at line 36 of file interpolatedVelocity3D.h.

Member Typedef Documentation

◆ descriptor_t

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

Definition at line 42 of file interpolatedVelocity2D.h.

◆ value_t

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

Definition at line 41 of file interpolatedVelocity2D.h.

Member Function Documentation

◆ getDynamics() [1/2]

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

Definition at line 48 of file interpolatedVelocity2D.h.

49 {
50 switch (type) {
52 return boundaryhelper::MixinDynamicsExchangeDirectionOrientationMomenta<T,DESCRIPTOR,
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, BulkStress, DefineSeparately > BasicDirichletVelocityBoundaryTuple
Velocity boundary node.
Definition aliases.h:146
@ 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::InterpolatedVelocity< T, DESCRIPTOR, MixinDynamics >::getDynamics ( DiscreteNormalType type,
DiscreteNormal< DESCRIPTOR > n )
inline

Definition at line 45 of file interpolatedVelocity3D.h.

46 {
47 switch (type) {
49 return boundaryhelper::MixinDynamicsExchangeDirectionOrientationMomenta<T,DESCRIPTOR,
51 >::construct(n);
52
54 return meta::id<typename MixinDynamics::template exchange_momenta<momenta::FixedVelocityBoundaryTuple>>{};
55
57 return boundaryhelper::PlainMixinDynamicsForNormalMomenta<T,DESCRIPTOR,
58 CombinedRLBdynamics,MixinDynamics,momenta::InnerCornerVelocityTuple3D
59 >::construct(n);
60
62 return meta::id<typename MixinDynamics::template exchange_momenta<momenta::FixedVelocityBoundaryTuple>>{};
63
65 return boundaryhelper::PlainMixinDynamicsForNormalSpecialMomenta<T,DESCRIPTOR,
66 CombinedRLBdynamics,MixinDynamics,momenta::InnerEdgeVelocityTuple3D
67 >::construct(n);
68
69 default:
70 return std::nullopt;
71 }
72}
Tuple< InnerEdgeDensity3D< PlaneAndNormal... >, FixedVelocityMomentumGeneric, InnerEdgeStress3D< PlaneAndNormal... >, DefineSeparately > InnerEdgeVelocityTuple3D
Definition aliases.h:204
Tuple< InnerCornerDensity3D< Normal... >, FixedVelocityMomentumGeneric, InnerCornerStress3D< Normal... >, DefineSeparately > InnerCornerVelocityTuple3D
Definition aliases.h:212
@ 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::InterpolatedVelocity< T, DESCRIPTOR, MixinDynamics >::getNeighborhoodRadius ( )
inline

Definition at line 44 of file interpolatedVelocity2D.h.

44 {
45 return 2;
46}

◆ getNeighborhoodRadius() [2/2]

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

Definition at line 41 of file interpolatedVelocity3D.h.

41 {
42 return 2;
43}

◆ getPostProcessor() [1/2]

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

Definition at line 69 of file interpolatedVelocity2D.h.

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

References olb::ExternalCorner, olb::Flat, olb::boundaryhelper::promisePostProcessorForDirectionOrientation(), 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::InterpolatedVelocity< T, DESCRIPTOR, MixinDynamics >::getPostProcessor ( DiscreteNormalType type,
DiscreteNormal< DESCRIPTOR > n )
inline

Definition at line 74 of file interpolatedVelocity3D.h.

75 {
76 switch (type) {
79 T,DESCRIPTOR,PlaneFdBoundaryProcessor3D>(n);
80
83 OuterVelocityCornerProcessor3D>(n);
84
87 OuterVelocityEdgeProcessor3D>(n);
88
89 default:
90 return std::nullopt;
91 }
92}
PostProcessorPromise< T, DESCRIPTOR > promisePostProcessorForNormalSpecial(Vector< int, 3 > n)

References olb::ExternalCorner, olb::ExternalEdge, olb::Flat, olb::boundaryhelper::promisePostProcessorForDirectionOrientation(), 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: