12 #define f(x) (pNode->FQ19[x]) 13 #define XVelocityLB_ux (Vector4.x) 14 #define YVelocityLB_uy (Vector4.y) 15 #define ZVelocityLB_uz (Vector4.z) 16 #define DensityLB_rho (Vector4.rho) 17 #define BoundaryDensityLB_rhoB (Thread_Ptr->m_BoundaryValue_RhoLB) 18 #define BoundaryXVelocityLB_uxB (Thread_Ptr->m_BoundaryValue_ULB.x) 19 #define BoundaryYVelocityLB_uyB (Thread_Ptr->m_BoundaryValue_ULB.y) 20 #define BoundaryZVelocityLB_uzB (Thread_Ptr->m_BoundaryValue_ULB.z) 21 #define ReverseDirectionVector_Rc(x) (MF::Solver_CPU::BoundaryFunctions::m_LatticeParameters_Ptr->ReverseDirectionVector_Rc[x]) 24 for (
auto & Thread_Ptr : *ThreadArray_Ptr->m_ThreadsTable_Ptr) {
26 switch (Thread_Ptr->m_NodeType) {
38 Thread_Ptr->m_pBoundaryFunction = MF::Solver_CPU::BoundaryFunctions::BF_BounceBack2_61;
39 Thread_Ptr->m_DoPreCollision =
false;
40 Thread_Ptr->m_pVRLBFunction = MF::Solver_CPU::BoundaryFunctions::VRBFQC_BounceBack2_61;
48 Thread_Ptr->m_pBoundaryFunction = MF::Solver_CPU::BoundaryFunctions::BFQC_VelocityNorth_21;
49 Thread_Ptr->m_pVRLBFunction = MF::Solver_CPU::BoundaryFunctions::VRBFQC_VelocityNorth_21;
50 Thread_Ptr->m_DoPreCollision =
true;
55 Thread_Ptr->m_pBoundaryFunction = MF::Solver_CPU::BoundaryFunctions::BFQC_VelocitySouth_22;
56 Thread_Ptr->m_pVRLBFunction = MF::Solver_CPU::BoundaryFunctions::VRBFQC_VelocitySouth_22;
57 Thread_Ptr->m_DoPreCollision =
true;
62 Thread_Ptr->m_pBoundaryFunction = MF::Solver_CPU::BoundaryFunctions::BFQC_VelocityEast_23;
63 Thread_Ptr->m_pVRLBFunction = MF::Solver_CPU::BoundaryFunctions::VRBFQC_VelocityEast_23;
64 Thread_Ptr->m_DoPreCollision =
true;
69 Thread_Ptr->m_pBoundaryFunction = MF::Solver_CPU::BoundaryFunctions::BFQC_VelocityWest_24;
70 Thread_Ptr->m_pVRLBFunction = MF::Solver_CPU::BoundaryFunctions::VRBFQC_VelocityWest_24;
71 Thread_Ptr->m_DoPreCollision =
true;
76 Thread_Ptr->m_pBoundaryFunction = MF::Solver_CPU::BoundaryFunctions::BFQC_VelocityBottom_25;
77 Thread_Ptr->m_pVRLBFunction = MF::Solver_CPU::BoundaryFunctions::VRBFQC_VelocityBottom_25;
78 Thread_Ptr->m_DoPreCollision =
true;
83 Thread_Ptr->m_pBoundaryFunction = MF::Solver_CPU::BoundaryFunctions::BFQC_VelocityTop_26;
84 Thread_Ptr->m_pVRLBFunction = MF::Solver_CPU::BoundaryFunctions::VRBFQC_VelocityTop_26;
85 Thread_Ptr->m_DoPreCollision =
true;
93 Thread_Ptr->m_pBoundaryFunction = MF::Solver_CPU::BoundaryFunctions::BFQC_PressureNorth_31;
94 Thread_Ptr->m_pVRLBFunction = MF::Solver_CPU::BoundaryFunctions::VRBFQC_PressureNorth_31;
95 Thread_Ptr->m_DoPreCollision =
true;
100 Thread_Ptr->m_pBoundaryFunction = MF::Solver_CPU::BoundaryFunctions::BFQC_PressureSouth_32;
101 Thread_Ptr->m_pVRLBFunction = MF::Solver_CPU::BoundaryFunctions::VRBFQC_PressureSouth_32;
102 Thread_Ptr->m_DoPreCollision =
true;
107 Thread_Ptr->m_pBoundaryFunction = MF::Solver_CPU::BoundaryFunctions::BFQC_PressureEast_33;
108 Thread_Ptr->m_pVRLBFunction = MF::Solver_CPU::BoundaryFunctions::VRBFQC_PressureEast_33;
109 Thread_Ptr->m_DoPreCollision =
true;
114 Thread_Ptr->m_pBoundaryFunction = MF::Solver_CPU::BoundaryFunctions::BFQC_PressureWest_34;
115 Thread_Ptr->m_pVRLBFunction = MF::Solver_CPU::BoundaryFunctions::VRBFQC_PressureWest_34;
116 Thread_Ptr->m_DoPreCollision =
true;
121 Thread_Ptr->m_pBoundaryFunction = MF::Solver_CPU::BoundaryFunctions::BFQC_PressureBottom_35;
122 Thread_Ptr->m_pVRLBFunction = MF::Solver_CPU::BoundaryFunctions::VRBFQC_PressureBottom_35;
123 Thread_Ptr->m_DoPreCollision =
true;
128 Thread_Ptr->m_pBoundaryFunction = MF::Solver_CPU::BoundaryFunctions::BFQC_PressureTop_36;
129 Thread_Ptr->m_pVRLBFunction = MF::Solver_CPU::BoundaryFunctions::VRBFQC_PressureTop_36;
130 Thread_Ptr->m_DoPreCollision =
true;
138 Thread_Ptr->m_pBoundaryFunction = MF::Solver_CPU::BoundaryFunctions::BF_Velocity0North_41;
139 Thread_Ptr->m_pVRLBFunction = MF::Solver_CPU::BoundaryFunctions::VRBF_Velocity0North_41;
140 Thread_Ptr->m_DoPreCollision =
true;
145 Thread_Ptr->m_pBoundaryFunction = MF::Solver_CPU::BoundaryFunctions::BF_Velocity0South_42;
146 Thread_Ptr->m_pVRLBFunction = MF::Solver_CPU::BoundaryFunctions::VRBF_Velocity0South_42;
147 Thread_Ptr->m_DoPreCollision =
true;
152 Thread_Ptr->m_pBoundaryFunction = MF::Solver_CPU::BoundaryFunctions::BF_Velocity0East_43;
153 Thread_Ptr->m_pVRLBFunction = MF::Solver_CPU::BoundaryFunctions::VRBF_Velocity0East_43;
154 Thread_Ptr->m_DoPreCollision =
true;
159 Thread_Ptr->m_pBoundaryFunction = MF::Solver_CPU::BoundaryFunctions::BF_Velocity0West_44;
160 Thread_Ptr->m_pVRLBFunction = MF::Solver_CPU::BoundaryFunctions::VRBF_Velocity0West_44;
161 Thread_Ptr->m_DoPreCollision =
true;
166 Thread_Ptr->m_pBoundaryFunction = MF::Solver_CPU::BoundaryFunctions::BF_Velocity0Bottom_45;
167 Thread_Ptr->m_pVRLBFunction = MF::Solver_CPU::BoundaryFunctions::VRBF_Velocity0Bottom_45;
168 Thread_Ptr->m_DoPreCollision =
true;
173 Thread_Ptr->m_pBoundaryFunction = MF::Solver_CPU::BoundaryFunctions::BF_Velocity0Top_46;
174 Thread_Ptr->m_pVRLBFunction = MF::Solver_CPU::BoundaryFunctions::VRBF_Velocity0Top_46;
175 Thread_Ptr->m_DoPreCollision =
true;
182 switch (Thread_Ptr->m_NodeType) {
195 Thread_Ptr->m_pBoundaryFunction = MF::Solver_CPU::BoundaryFunctions::BF_BounceBack2_61;
196 Thread_Ptr->m_DoPreCollision =
false;
197 Thread_Ptr->m_pVRLBFunction = MF::Solver_CPU::BoundaryFunctions::VRBFIC_BounceBack2_61;
205 Thread_Ptr->m_pBoundaryFunction = MF::Solver_CPU::BoundaryFunctions::BFIC_VelocityNorth_21;
206 Thread_Ptr->m_pVRLBFunction = MF::Solver_CPU::BoundaryFunctions::VRBFIC_VelocityNorth_21;
207 Thread_Ptr->m_DoPreCollision =
true;
212 Thread_Ptr->m_pBoundaryFunction = MF::Solver_CPU::BoundaryFunctions::BFIC_VelocitySouth_22;
213 Thread_Ptr->m_pVRLBFunction = MF::Solver_CPU::BoundaryFunctions::VRBFIC_VelocitySouth_22;
214 Thread_Ptr->m_DoPreCollision =
true;
219 Thread_Ptr->m_pBoundaryFunction = MF::Solver_CPU::BoundaryFunctions::BFIC_VelocityEast_23;
220 Thread_Ptr->m_pVRLBFunction = MF::Solver_CPU::BoundaryFunctions::VRBFIC_VelocityEast_23;
221 Thread_Ptr->m_DoPreCollision =
true;
226 Thread_Ptr->m_pBoundaryFunction = MF::Solver_CPU::BoundaryFunctions::BFIC_VelocityWest_24;
227 Thread_Ptr->m_pVRLBFunction = MF::Solver_CPU::BoundaryFunctions::VRBFIC_VelocityWest_24;
228 Thread_Ptr->m_DoPreCollision =
true;
233 Thread_Ptr->m_pBoundaryFunction = MF::Solver_CPU::BoundaryFunctions::BFIC_VelocityBottom_25;
234 Thread_Ptr->m_pVRLBFunction = MF::Solver_CPU::BoundaryFunctions::VRBFIC_VelocityBottom_25;
235 Thread_Ptr->m_DoPreCollision =
true;
240 Thread_Ptr->m_pBoundaryFunction = MF::Solver_CPU::BoundaryFunctions::BFIC_VelocityTop_26;
241 Thread_Ptr->m_pVRLBFunction = MF::Solver_CPU::BoundaryFunctions::VRBFIC_VelocityTop_26;
242 Thread_Ptr->m_DoPreCollision =
true;
250 Thread_Ptr->m_pBoundaryFunction = MF::Solver_CPU::BoundaryFunctions::BFIC_PressureNorth_31;
251 Thread_Ptr->m_pVRLBFunction = MF::Solver_CPU::BoundaryFunctions::VRBFIC_PressureNorth_31;
252 Thread_Ptr->m_DoPreCollision =
true;
257 Thread_Ptr->m_pBoundaryFunction = MF::Solver_CPU::BoundaryFunctions::BFIC_PressureSouth_32;
258 Thread_Ptr->m_pVRLBFunction = MF::Solver_CPU::BoundaryFunctions::VRBFIC_PressureSouth_32;
259 Thread_Ptr->m_DoPreCollision =
true;
264 Thread_Ptr->m_pBoundaryFunction = MF::Solver_CPU::BoundaryFunctions::BFIC_PressureEast_33;
265 Thread_Ptr->m_pVRLBFunction = MF::Solver_CPU::BoundaryFunctions::VRBFIC_PressureEast_33;
266 Thread_Ptr->m_DoPreCollision =
true;
271 Thread_Ptr->m_pBoundaryFunction = MF::Solver_CPU::BoundaryFunctions::BFIC_PressureWest_34;
272 Thread_Ptr->m_pVRLBFunction = MF::Solver_CPU::BoundaryFunctions::VRBFIC_PressureWest_34;
273 Thread_Ptr->m_DoPreCollision =
true;
278 Thread_Ptr->m_pBoundaryFunction = MF::Solver_CPU::BoundaryFunctions::BFIC_PressureBottom_35;
279 Thread_Ptr->m_pVRLBFunction = MF::Solver_CPU::BoundaryFunctions::VRBFIC_PressureBottom_35;
280 Thread_Ptr->m_DoPreCollision =
true;
285 Thread_Ptr->m_pBoundaryFunction = MF::Solver_CPU::BoundaryFunctions::BFIC_PressureTop_36;
286 Thread_Ptr->m_pVRLBFunction = MF::Solver_CPU::BoundaryFunctions::VRBFIC_PressureTop_36;
287 Thread_Ptr->m_DoPreCollision =
true;
295 Thread_Ptr->m_pBoundaryFunction = MF::Solver_CPU::BoundaryFunctions::BF_Velocity0North_41;
296 Thread_Ptr->m_pVRLBFunction = MF::Solver_CPU::BoundaryFunctions::VRBF_Velocity0North_41;
297 Thread_Ptr->m_DoPreCollision =
true;
302 Thread_Ptr->m_pBoundaryFunction = MF::Solver_CPU::BoundaryFunctions::BF_Velocity0South_42;
303 Thread_Ptr->m_pVRLBFunction = MF::Solver_CPU::BoundaryFunctions::VRBF_Velocity0South_42;
304 Thread_Ptr->m_DoPreCollision =
true;
309 Thread_Ptr->m_pBoundaryFunction = MF::Solver_CPU::BoundaryFunctions::BF_Velocity0East_43;
310 Thread_Ptr->m_pVRLBFunction = MF::Solver_CPU::BoundaryFunctions::VRBF_Velocity0East_43;
311 Thread_Ptr->m_DoPreCollision =
true;
316 Thread_Ptr->m_pBoundaryFunction = MF::Solver_CPU::BoundaryFunctions::BF_Velocity0West_44;
317 Thread_Ptr->m_pVRLBFunction = MF::Solver_CPU::BoundaryFunctions::VRBF_Velocity0West_44;
318 Thread_Ptr->m_DoPreCollision =
true;
323 Thread_Ptr->m_pBoundaryFunction = MF::Solver_CPU::BoundaryFunctions::BF_Velocity0Bottom_45;
324 Thread_Ptr->m_pVRLBFunction = MF::Solver_CPU::BoundaryFunctions::VRBF_Velocity0Bottom_45;
325 Thread_Ptr->m_DoPreCollision =
true;
330 Thread_Ptr->m_pBoundaryFunction = MF::Solver_CPU::BoundaryFunctions::BF_Velocity0Top_46;
331 Thread_Ptr->m_pVRLBFunction = MF::Solver_CPU::BoundaryFunctions::VRBF_Velocity0Top_46;
332 Thread_Ptr->m_DoPreCollision =
true;
340 inline double MF::Solver_CPU::BoundaryFunctions::MeanRHOAdjFluidNodes(
const MF::Database::Node *pNode) {
341 const std::shared_ptr<MF::Database::Thread>& Thread_Ptr = *pNode->
pMyThread_Ptr;
342 auto nodeNr = Thread_Ptr->getNodeNr(pNode);
347 if (Thread_Ptr->getLinkedNodePointer(nodeNr,
f) !=
nullptr) {
348 if (Thread_Ptr->getLinkedNodePointer(nodeNr,
f)-> pMyThread_Ptr->operator*().m_NodeType == 1 ) {
351 const std::shared_ptr<MF::Database::Thread>& Thread_Ptr5 = *Thread_Ptr->getLinkedNodePointer(nodeNr,
f)->
pMyThread_Ptr;
365 DensityLB_rho = MF::Solver_CPU::BoundaryFunctions::MeanRHOAdjFluidNodes(pNode);
368 const std::shared_ptr<MF::Database::Thread>& Thread_Ptr = *pNode->
pMyThread_Ptr;
369 auto nodeNr = Thread_Ptr->getNodeNr(pNode);
373 if (Thread_Ptr->getLinkedNodePointer(nodeNr,
f) !=
nullptr) {
375 if (MF::Solver_CPU::BoundaryFunctions::MeanRHOAdjFluidNodes(neighboringNode) != -1) {
376 rho += MF::Solver_CPU::BoundaryFunctions::MeanRHOAdjFluidNodes(neighboringNode);
390 return MF::Solver_CPU::BoundaryFunctions::VRBFQC_BounceBack2_61(pNode);
400 void MF::Solver_CPU::BoundaryFunctions::BF_Velocity0North_41(
MF::Database::Node * pNode){
401 const double N_x = 0.5 * (
f(1) +
f(11) +
f(12) -
f(13) -
f(14) -
f(3));
402 const double N_z = 0.5 * (
f(11) -
f(12) -
f(13) +
f(14) +
f(5) -
f(6));
417 void MF::Solver_CPU::BoundaryFunctions::BF_Velocity0South_42(
MF::Database::Node * pNode){
418 const double N_x = 0.5 * (
f(1) +
f(11) +
f(12) -
f(13) -
f(14) -
f(3));
419 const double N_z = 0.5 * (
f(11) -
f(12) -
f(13) +
f(14) +
f(5) -
f(6));
434 void MF::Solver_CPU::BoundaryFunctions::BF_Velocity0East_43(
MF::Database::Node * pNode){
435 const double N_y = 0.5 * (
f(15) +
f(16) -
f(17) -
f(18) +
f(2) -
f(4));
436 const double N_z = 0.5 * (
f(15) -
f(16) -
f(17) +
f(18) +
f(5) -
f(6));
451 void MF::Solver_CPU::BoundaryFunctions::BF_Velocity0West_44(
MF::Database::Node * pNode){
452 const double N_y = 0.5 * (
f(15) +
f(16) -
f(17) -
f(18) +
f(2) -
f(4));
453 const double N_z = 0.5 * (
f(15) -
f(16) -
f(17) +
f(18) +
f(5) -
f(6));
468 void MF::Solver_CPU::BoundaryFunctions::BoundaryFunctions::BF_Velocity0Bottom_45(
MF::Database::Node * pNode){
469 const double N_x = 0.5 * (
f(1) +
f(10) -
f(3) +
f(7) -
f(8) -
f(9));
470 const double N_y = 0.5 * (-
f(10) +
f(2) -
f(4) +
f(7) +
f(8) -
f(9));
485 void MF::Solver_CPU::BoundaryFunctions::BF_Velocity0Top_46(
MF::Database::Node * pNode){
486 const double N_x = 0.5 * (
f(1) +
f(10) -
f(3) +
f(7) -
f(8) -
f(9));
487 const double N_y = 0.5 * (-
f(10) +
f(2) -
f(4) +
f(7) +
f(8) -
f(9));
504 const std::shared_ptr<MF::Database::Thread>& Thread_Ptr = *pNode->
pMyThread_Ptr;
510 void MF::Solver_CPU::BoundaryFunctions::BFQC_VelocityNorth_21(
MF::Database::Node * pNode){
511 auto Vector4 = MF::Solver_CPU::BoundaryFunctions::VRBFQC_VelocityNorth_21(pNode);
523 const std::shared_ptr<MF::Database::Thread>& Thread_Ptr = *pNode->
pMyThread_Ptr;
529 void MF::Solver_CPU::BoundaryFunctions::BFQC_VelocitySouth_22(
MF::Database::Node * pNode){
530 auto Vector4 = MF::Solver_CPU::BoundaryFunctions::VRBFQC_VelocitySouth_22(pNode);
542 const std::shared_ptr<MF::Database::Thread>& Thread_Ptr = *pNode->
pMyThread_Ptr;
548 void MF::Solver_CPU::BoundaryFunctions::BFQC_VelocityEast_23(
MF::Database::Node * pNode){
549 auto Vector4 = MF::Solver_CPU::BoundaryFunctions::VRBFQC_VelocityEast_23(pNode);
561 const std::shared_ptr<MF::Database::Thread>& Thread_Ptr = *pNode->
pMyThread_Ptr;
567 void MF::Solver_CPU::BoundaryFunctions::BFQC_VelocityWest_24(
MF::Database::Node * pNode){
568 auto Vector4 = MF::Solver_CPU::BoundaryFunctions::VRBFQC_VelocityWest_24(pNode);
580 const std::shared_ptr<MF::Database::Thread>& Thread_Ptr = *pNode->
pMyThread_Ptr;
586 void MF::Solver_CPU::BoundaryFunctions::BFQC_VelocityBottom_25(
MF::Database::Node * pNode){
587 auto Vector4 = MF::Solver_CPU::BoundaryFunctions::VRBFQC_VelocityBottom_25(pNode);
599 const std::shared_ptr<MF::Database::Thread>& Thread_Ptr = *pNode->
pMyThread_Ptr;
605 void MF::Solver_CPU::BoundaryFunctions::BFQC_VelocityTop_26(
MF::Database::Node * pNode){
606 auto Vector4 = MF::Solver_CPU::BoundaryFunctions::VRBFQC_VelocityTop_26(pNode);
621 const std::shared_ptr<MF::Database::Thread>& Thread_Ptr = *pNode->
pMyThread_Ptr;
627 void MF::Solver_CPU::BoundaryFunctions::BFQC_PressureNorth_31(
MF::Database::Node * pNode){
628 auto Vector4 = MF::Solver_CPU::BoundaryFunctions::VRBFQC_PressureNorth_31(pNode);
640 const std::shared_ptr<MF::Database::Thread>& Thread_Ptr = *pNode->
pMyThread_Ptr;
646 void MF::Solver_CPU::BoundaryFunctions::BFQC_PressureSouth_32(
MF::Database::Node * pNode){
659 const std::shared_ptr<MF::Database::Thread>& Thread_Ptr = *pNode->
pMyThread_Ptr;
665 void MF::Solver_CPU::BoundaryFunctions::BFQC_PressureEast_33(
MF::Database::Node * pNode){
678 const std::shared_ptr<MF::Database::Thread>& Thread_Ptr = *pNode->
pMyThread_Ptr;
684 void MF::Solver_CPU::BoundaryFunctions::BFQC_PressureWest_34(
MF::Database::Node * pNode){
697 const std::shared_ptr<MF::Database::Thread>& Thread_Ptr = *pNode->
pMyThread_Ptr;
703 void MF::Solver_CPU::BoundaryFunctions::BFQC_PressureBottom_35(
MF::Database::Node * pNode){
716 const std::shared_ptr<MF::Database::Thread>& Thread_Ptr = *pNode->
pMyThread_Ptr;
722 void MF::Solver_CPU::BoundaryFunctions::BFQC_PressureTop_36(
MF::Database::Node * pNode){
741 const std::shared_ptr<MF::Database::Thread>& Thread_Ptr = *pNode->
pMyThread_Ptr;
747 void MF::Solver_CPU::BoundaryFunctions::BFIC_VelocityNorth_21(
MF::Database::Node * pNode){
748 const std::shared_ptr<MF::Database::Thread>& Thread_Ptr = *pNode->
pMyThread_Ptr;
760 const std::shared_ptr<MF::Database::Thread>& Thread_Ptr = *pNode->
pMyThread_Ptr;
766 void MF::Solver_CPU::BoundaryFunctions::BFIC_VelocitySouth_22(
MF::Database::Node * pNode){
767 const std::shared_ptr<MF::Database::Thread>& Thread_Ptr = *pNode->
pMyThread_Ptr;
779 const std::shared_ptr<MF::Database::Thread>& Thread_Ptr = *pNode->
pMyThread_Ptr;
785 void MF::Solver_CPU::BoundaryFunctions::BFIC_VelocityEast_23(
MF::Database::Node * pNode){
786 const std::shared_ptr<MF::Database::Thread>& Thread_Ptr = *pNode->
pMyThread_Ptr;
798 const std::shared_ptr<MF::Database::Thread>& Thread_Ptr = *pNode->
pMyThread_Ptr;
804 void MF::Solver_CPU::BoundaryFunctions::BFIC_VelocityWest_24(
MF::Database::Node * pNode){
805 const std::shared_ptr<MF::Database::Thread>& Thread_Ptr = *pNode->
pMyThread_Ptr;
817 const std::shared_ptr<MF::Database::Thread>& Thread_Ptr = *pNode->
pMyThread_Ptr;
823 void MF::Solver_CPU::BoundaryFunctions::BFIC_VelocityBottom_25(
MF::Database::Node * pNode){
824 const std::shared_ptr<MF::Database::Thread>& Thread_Ptr = *pNode->
pMyThread_Ptr;
836 const std::shared_ptr<MF::Database::Thread>& Thread_Ptr = *pNode->
pMyThread_Ptr;
842 void MF::Solver_CPU::BoundaryFunctions::BFIC_VelocityTop_26(
MF::Database::Node * pNode){
843 const std::shared_ptr<MF::Database::Thread>& Thread_Ptr = *pNode->
pMyThread_Ptr;
858 const std::shared_ptr<MF::Database::Thread>& Thread_Ptr = *pNode->
pMyThread_Ptr;
864 void MF::Solver_CPU::BoundaryFunctions::BFIC_PressureNorth_31(
MF::Database::Node * pNode){
866 const double N_x = 0.5 * (
f(1) +
f(11) +
f(12) -
f(13) -
f(14) -
f(3)) - 1.0 / 3.0 *
XVelocityLB_ux;
867 const double N_z = 0.5 * (
f(11) -
f(12) -
f(13) +
f(14) +
f(5) -
f(6)) - 1.0 / 3.0 *
ZVelocityLB_uz;
877 const std::shared_ptr<MF::Database::Thread>& Thread_Ptr = *pNode->
pMyThread_Ptr;
883 void MF::Solver_CPU::BoundaryFunctions::BFIC_PressureSouth_32(
MF::Database::Node * pNode){
885 const double N_x = 0.5 * (
f(1) +
f(11) +
f(12) -
f(13) -
f(14) -
f(3)) - 1.0 / 3.0 *
XVelocityLB_ux;
886 const double N_z = 0.5 * (
f(11) -
f(12) -
f(13) +
f(14) +
f(5) -
f(6)) - 1.0 / 3.0 *
ZVelocityLB_uz;
896 const std::shared_ptr<MF::Database::Thread>& Thread_Ptr = *pNode->
pMyThread_Ptr;
902 void MF::Solver_CPU::BoundaryFunctions::BFIC_PressureEast_33(
MF::Database::Node * pNode){
904 const double N_y = 0.5 * (
f(15) +
f(16) -
f(17) -
f(18) +
f(2) -
f(4)) - 1.0 / 3.0 *
YVelocityLB_uy;
905 const double N_z = 0.5 * (
f(15) -
f(16) -
f(17) +
f(18) +
f(5) -
f(6)) - 1.0 / 3.0 *
ZVelocityLB_uz;
915 const std::shared_ptr<MF::Database::Thread>& Thread_Ptr = *pNode->
pMyThread_Ptr;
921 void MF::Solver_CPU::BoundaryFunctions::BFIC_PressureWest_34(
MF::Database::Node * pNode){
923 const double N_y = 0.5 * (
f(15) +
f(16) -
f(17) -
f(18) +
f(2) -
f(4)) - 1.0 / 3.0 *
YVelocityLB_uy;
924 const double N_z = 0.5 * (
f(15) -
f(16) -
f(17) +
f(18) +
f(5) -
f(6)) - 1.0 / 3.0 *
ZVelocityLB_uz;
934 const std::shared_ptr<MF::Database::Thread>& Thread_Ptr = *pNode->
pMyThread_Ptr;
940 void MF::Solver_CPU::BoundaryFunctions::BFIC_PressureBottom_35(
MF::Database::Node * pNode){
942 const double N_x = 0.5 * (
f(1) +
f(10) -
f(3) +
f(7) -
f(8) -
f(9)) - 1.0 / 3.0 *
XVelocityLB_ux;
943 const double N_y = 0.5 * (-
f(10) +
f(2) -
f(4) +
f(7) +
f(8) -
f(9)) - 1.0 / 3.0 *
YVelocityLB_uy;
953 const std::shared_ptr<MF::Database::Thread>& Thread_Ptr = *pNode->
pMyThread_Ptr;
959 void MF::Solver_CPU::BoundaryFunctions::BFIC_PressureTop_36(
MF::Database::Node * pNode){
961 const double N_x = 0.5 * (
f(1) +
f(10) -
f(3) +
f(7) -
f(8) -
f(9)) - 1.0 / 3.0 *
XVelocityLB_ux;
962 const double N_y = 0.5 * (-
f(10) +
f(2) -
f(4) +
f(7) +
f(8) -
f(9)) - 1.0 / 3.0 *
YVelocityLB_uy;
static std::shared_ptr< MF::Solver_CPU::CaseParameters > m_CaseParameters_Ptr
#define MFQ19
Number of lattice directions D3Q19.
std::shared_ptr< MF::Database::Thread > * pMyThread_Ptr
Pointer to Shared pointer to node MFThread parameters.
Basic data structure for storing f(i) data for each computational grid node.
#define BoundaryDensityLB_rhoB
#define BoundaryZVelocityLB_uzB
static void SetBoundaryNodePointerToFunc(const std::shared_ptr< MF::Database::ThreadArray > &ThreadArray_Ptr)
Sets the pointer to the function that performs calculations for the edge node (Thread.h -> its_pBoundaryFunction).
#define BoundaryYVelocityLB_uyB
#define BoundaryXVelocityLB_uxB