OpenLB 1.8.1
Loading...
Searching...
No Matches
olb::dynamics::CSE< dynamics::Tuple< T, descriptors::D3Q19< FIELDS... >, momenta::Tuple< momenta::BulkDensity, momenta::BulkMomentum, momenta::NoStress, momenta::DefineToEq >, equilibria::FirstOrder, collision::BGK, AdvectionDiffusionExternalVelocityCollision > > Struct Template Reference

#include <0d432980e2a17155c17e92ef6f1ec16c74803b9ff406e2571ae4b483e2294809.cse.h>

+ Collaboration diagram for olb::dynamics::CSE< dynamics::Tuple< T, descriptors::D3Q19< FIELDS... >, momenta::Tuple< momenta::BulkDensity, momenta::BulkMomentum, momenta::NoStress, momenta::DefineToEq >, equilibria::FirstOrder, collision::BGK, AdvectionDiffusionExternalVelocityCollision > >:

Public Member Functions

template<concepts::Cell CELL, concepts::Parameters PARAMETERS, concepts::BaseType V = typename CELL::value_t>
CellStatistic< V > collide (CELL &cell, PARAMETERS &parameters) any_platform
 

Detailed Description

template<typename T, typename... FIELDS>
struct olb::dynamics::CSE< dynamics::Tuple< T, descriptors::D3Q19< FIELDS... >, momenta::Tuple< momenta::BulkDensity, momenta::BulkMomentum, momenta::NoStress, momenta::DefineToEq >, equilibria::FirstOrder, collision::BGK, AdvectionDiffusionExternalVelocityCollision > >

Definition at line 38 of file 0d432980e2a17155c17e92ef6f1ec16c74803b9ff406e2571ae4b483e2294809.cse.h.

Member Function Documentation

◆ collide()

template<typename T , typename... FIELDS>
template<concepts::Cell CELL, concepts::Parameters PARAMETERS, concepts::BaseType V = typename CELL::value_t>
CellStatistic< V > olb::dynamics::CSE< dynamics::Tuple< T, descriptors::D3Q19< FIELDS... >, momenta::Tuple< momenta::BulkDensity, momenta::BulkMomentum, momenta::NoStress, momenta::DefineToEq >, equilibria::FirstOrder, collision::BGK, AdvectionDiffusionExternalVelocityCollision > >::collide ( CELL & cell,
PARAMETERS & parameters )
inline

Definition at line 40 of file 0d432980e2a17155c17e92ef6f1ec16c74803b9ff406e2571ae4b483e2294809.cse.h.

40 {
41auto x19 = cell.template getFieldComponent<descriptors::VELOCITY>(0);
42auto x21 = cell.template getFieldComponent<descriptors::VELOCITY>(2);
43auto x20 = cell.template getFieldComponent<descriptors::VELOCITY>(1);
44auto x22 = parameters.template get<descriptors::OMEGA>();
45auto x23 = x22 + V{-1};
46auto x24 = cell[0] + cell[10] + cell[11] + cell[12] + cell[13] + cell[14] + cell[15] + cell[16] + cell[17] + cell[18] + cell[1] + cell[2] + cell[3] + cell[4] + cell[5] + cell[6] + cell[7] + cell[8] + cell[9];
47auto x25 = V{3}*x19;
48auto x26 = x25 + V{-1};
49auto x27 = x24 + V{1};
50auto x28 = V{0.0555555555555556}*x22;
51auto x29 = V{3}*x20;
52auto x30 = x29 + V{-1};
53auto x31 = V{3}*x21;
54auto x32 = V{0.0277777777777778}*x22;
55auto x33 = -x25;
56auto x34 = x29 + V{1};
57auto x35 = x31 + V{1};
58auto x36 = -x29;
59auto x37 = x25 + V{1};
60auto x38 = -x31;
61auto x0 = -cell[0]*x23 + V{0.333333333333333}*x22*x24;
62auto x1 = -cell[1]*x23 - x28*(x26*x27 + V{1});
63auto x2 = -cell[2]*x23 - x28*(x27*x30 + V{1});
64auto x3 = -cell[3]*x23 - x28*(x27*(x31 + V{-1}) + V{1});
65auto x4 = -cell[4]*x23 - x32*(x27*(x26 + x29) + V{1});
66auto x5 = -cell[5]*x23 + V{0.0277777777777778}*x22*(x27*(x33 + x34) + V{-1});
67auto x6 = -cell[6]*x23 - x32*(x27*(x26 + x31) + V{1});
68auto x7 = -cell[7]*x23 + V{0.0277777777777778}*x22*(x27*(x33 + x35) + V{-1});
69auto x8 = -cell[8]*x23 - x32*(x27*(x30 + x31) + V{1});
70auto x9 = -cell[9]*x23 + V{0.0277777777777778}*x22*(x27*(x35 + x36) + V{-1});
71auto x10 = -cell[10]*x23 + V{0.0555555555555556}*x22*(x27*x37 + V{-1});
72auto x11 = -cell[11]*x23 + V{0.0555555555555556}*x22*(x27*x34 + V{-1});
73auto x12 = -cell[12]*x23 + V{0.0555555555555556}*x22*(x27*x35 + V{-1});
74auto x13 = -cell[13]*x23 + V{0.0277777777777778}*x22*(x27*(x29 + x37) + V{-1});
75auto x14 = -cell[14]*x23 + V{0.0277777777777778}*x22*(x27*(x36 + x37) + V{-1});
76auto x15 = -cell[15]*x23 + V{0.0277777777777778}*x22*(x27*(x31 + x37) + V{-1});
77auto x16 = -cell[16]*x23 + V{0.0277777777777778}*x22*(x27*(x37 + x38) + V{-1});
78auto x17 = -cell[17]*x23 + V{0.0277777777777778}*x22*(x27*(x31 + x34) + V{-1});
79auto x18 = -cell[18]*x23 + V{0.0277777777777778}*x22*(x27*(x34 + x38) + V{-1});
80cell[0] = x0;
81cell[1] = x1;
82cell[2] = x2;
83cell[3] = x3;
84cell[4] = x4;
85cell[5] = x5;
86cell[6] = x6;
87cell[7] = x7;
88cell[8] = x8;
89cell[9] = x9;
90cell[10] = x10;
91cell[11] = x11;
92cell[12] = x12;
93cell[13] = x13;
94cell[14] = x14;
95cell[15] = x15;
96cell[16] = x16;
97cell[17] = x17;
98cell[18] = x18;
99return { x24 + V{1}, x19*x19 + x20*x20 + x21*x21 };
100}

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