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,
91 >::construct(n);
92
94 return meta::id<typename MixinDynamics::template exchange_momenta<
96 >>();
97
99 return boundaryhelper::PlainMixinDynamicsForNormalSpecialMomenta<T,DESCRIPTOR,
101 >::construct(n);
102
103 default:
104 return std::nullopt;
105 }
106}
Tuple< InnerEdgeDensity3D< PlaneAndNormal... >, FixedVelocityMomentumGeneric, InnerEdgeStress3D< PlaneAndNormal... >, DefineSeparately > InnerEdgeVelocityTuple3D
Tuple< InnerCornerDensity3D< Normal... >, FixedVelocityMomentumGeneric, InnerCornerStress3D< Normal... >, DefineSeparately > InnerCornerVelocityTuple3D
Tuple< BulkDensity, FixedVelocityMomentumGeneric, BulkStress, DefineUSeparatelyTrace > FixedVelocityBoundaryTuple
In this class, the velocity is fixed As opposed to VelocityBM, the pressure is however not computed f...
@ ExternalEdge
Normal detected as internal corner.
@ InternalEdge
Normal detected as external edge (only 3D)