OpenLB 1.8.1
Loading...
Searching...
No Matches
olb::dynamics::CSE< dynamics::Tuple< T, descriptors::D3Q19< FIELDS... >, momenta::Tuple< momenta::BulkDensity, momenta::BulkMomentum, momenta::BulkStress, momenta::DefineToNEq >, equilibria::SecondOrder, collision::SaveVelocity< collision::BGK >, dynamics::DefaultCombination > > Struct Template Reference

#include <f0a667007b146f33e280912542fc3226d87809c49bff5c28790fd0ae8076816f.cse.h>

+ Collaboration diagram for olb::dynamics::CSE< dynamics::Tuple< T, descriptors::D3Q19< FIELDS... >, momenta::Tuple< momenta::BulkDensity, momenta::BulkMomentum, momenta::BulkStress, momenta::DefineToNEq >, equilibria::SecondOrder, collision::SaveVelocity< collision::BGK >, dynamics::DefaultCombination > >:

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::BulkStress, momenta::DefineToNEq >, equilibria::SecondOrder, collision::SaveVelocity< collision::BGK >, dynamics::DefaultCombination > >

Definition at line 38 of file f0a667007b146f33e280912542fc3226d87809c49bff5c28790fd0ae8076816f.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::BulkStress, momenta::DefineToNEq >, equilibria::SecondOrder, collision::SaveVelocity< collision::BGK >, dynamics::DefaultCombination > >::collide ( CELL & cell,
PARAMETERS & parameters )
inline

Definition at line 40 of file f0a667007b146f33e280912542fc3226d87809c49bff5c28790fd0ae8076816f.cse.h.

40 {
41auto x22 = parameters.template get<descriptors::OMEGA>();
42auto x19 = x22 + V{-1};
43auto x20 = cell[10] + cell[14];
44auto x21 = cell[12] + cell[7];
45auto x23 = cell[0] + cell[11] + cell[13] + cell[15] + cell[16] + cell[17] + cell[18] + cell[1] + cell[2] + cell[3] + cell[4] + cell[5] + cell[6] + cell[8] + cell[9] + x20 + x21;
46auto x24 = x23 + V{1};
47auto x25 = x23 + V{1};
48auto x26 = V{1} / ((x25)*(x25));
49auto x27 = V{1.5}*x26;
50auto x28 = cell[13] - cell[4];
51auto x29 = cell[15] - cell[6];
52auto x30 = x28 + x29;
53auto x31 = -cell[1];
54auto x32 = cell[16] - cell[7];
55auto x33 = x31 + x32;
56auto x34 = -cell[5] + x20;
57auto x35 = x30 + x33 + x34;
58auto x36 = x35*x35;
59auto x37 = x27*x36;
60auto x38 = cell[17] - cell[8];
61auto x39 = x28 + x38;
62auto x40 = cell[18] - cell[9];
63auto x41 = -cell[2];
64auto x42 = cell[11] - cell[14] + cell[5] + x41;
65auto x43 = x39 + x40 + x42;
66auto x44 = x43*x43;
67auto x45 = x27*x44;
68auto x46 = x29 + x38;
69auto x47 = -cell[3];
70auto x48 = -cell[18] + cell[9];
71auto x49 = x47 + x48;
72auto x50 = -cell[16] + x21;
73auto x51 = x46 + x49 + x50;
74auto x52 = x51*x51;
75auto x53 = x27*x52;
76auto x54 = x45 + x53 + V{-1};
77auto x55 = x37 + x54;
78auto x56 = cell[0]*x19 + V{0.333333333333333}*x22*(x24*x55 + V{1});
79auto x57 = cell[1]*x19;
80auto x58 = V{0.0555555555555556}*x22;
81auto x59 = V{1} / (x25);
82auto x60 = V{3}*cell[14];
83auto x61 = V{3}*cell[16];
84auto x62 = V{3}*cell[5];
85auto x63 = V{3}*cell[7];
86auto x64 = V{3}*cell[13] - V{3}*cell[4];
87auto x65 = V{3}*cell[15] - V{3}*cell[6];
88auto x66 = x59*(V{3}*cell[10] - V{3}*cell[1] + x60 + x61 - x62 - x63 + x64 + x65);
89auto x67 = V{3}*x26;
90auto x68 = x36*x67;
91auto x69 = x58*(x24*(x54 + x66 - x68) + V{1});
92auto x70 = x57 + x69;
93auto x71 = cell[2]*x19;
94auto x72 = V{3}*cell[18];
95auto x73 = V{3}*cell[9];
96auto x74 = V{3}*cell[17] - V{3}*cell[8];
97auto x75 = x59*(V{3}*cell[11] - V{3}*cell[2] - x60 + x62 + x64 + x72 - x73 + x74);
98auto x76 = x44*x67;
99auto x77 = x37 + V{-1};
100auto x78 = x58*(x24*(x53 + x75 - x76 + x77) + V{1});
101auto x79 = x71 + x78;
102auto x80 = cell[3]*x19;
103auto x81 = x59*(V{3}*cell[12] - V{3}*cell[3] - x61 + x63 + x65 - x72 + x73 + x74);
104auto x82 = x52*x67;
105auto x83 = x58*(x24*(x45 + x77 + x81 - x82) + V{1});
106auto x84 = x80 + x83;
107auto x85 = cell[4]*x19;
108auto x86 = V{0.0277777777777778}*x22;
109auto x87 = V{4.5}*x26;
110auto x88 = cell[10] + x33;
111auto x89 = cell[11] + V{2}*cell[13] - V{2}*cell[4] + x40 + x41 + x46 + x88;
112auto x90 = x87*(x89*x89);
113auto x91 = x55 + x66;
114auto x92 = x86*(x24*(x75 - x90 + x91) + V{1});
115auto x93 = x85 + x92;
116auto x94 = cell[5]*x19;
117auto x95 = -x75;
118auto x96 = -cell[17] + cell[8];
119auto x97 = -cell[11] + V{2}*cell[14] + cell[2] - V{2}*cell[5] + x29 + x48 + x88 + x96;
120auto x98 = -x97;
121auto x99 = x86*(x24*(-x87*x98*x98 + x91 + x95) + V{1});
122auto x100 = x94 + x99;
123auto x101 = cell[6]*x19;
124auto x102 = x31 + x34;
125auto x103 = cell[12] + V{2}*cell[15] - V{2}*cell[6] + x102 + x39 + x49;
126auto x104 = x87*(x103*x103);
127auto x105 = x86*(x24*(-x104 + x81 + x91) + V{1});
128auto x106 = x101 + x105;
129auto x107 = cell[7]*x19;
130auto x108 = -x81;
131auto x109 = -cell[12] + cell[3] + x28;
132auto x110 = V{2}*cell[16] - V{2}*cell[7] + x102 + x109 + x40 + x96;
133auto x111 = -x110;
134auto x112 = x86*(x24*(x108 - x87*x111*x111 + x91) + V{1});
135auto x113 = x107 + x112;
136auto x114 = cell[8]*x19;
137auto x115 = V{2}*cell[17] - V{2}*cell[8] + x30 + x42 + x47 + x50;
138auto x116 = x87*(x115*x115);
139auto x117 = x55 + x75;
140auto x118 = x86*(x24*(-x116 + x117 + x81) + V{1});
141auto x119 = x114 + x118;
142auto x120 = cell[9]*x19;
143auto x121 = -cell[15] + V{2}*cell[18] + cell[6] - V{2}*cell[9] + x109 + x32 + x42;
144auto x122 = -x121;
145auto x123 = x86*(x24*(x108 + x117 - x87*x122*x122) + V{1});
146auto x124 = x120 + x123;
147auto x125 = cell[10]*x19;
148auto x126 = -x45;
149auto x127 = V{1} - x53;
150auto x128 = x126 + x127;
151auto x129 = x128 + x66;
152auto x130 = x58*(x24*(x129 + x68) + V{-1});
153auto x131 = cell[11]*x19;
154auto x132 = -x37;
155auto x133 = x132 + x75;
156auto x134 = x58*(x24*(x127 + x133 + x76) + V{-1});
157auto x135 = cell[12]*x19;
158auto x136 = x132 + x81;
159auto x137 = x58*(x24*(x126 + x136 + x82 + V{1}) + V{-1});
160auto x138 = cell[13]*x19;
161auto x139 = x86*(x24*(x129 + x133 + x90) + V{-1});
162auto x140 = cell[14]*x19;
163auto x141 = -x66;
164auto x142 = x86*(x24*(x117 + x141 - x87*x97*x97) + V{1});
165auto x143 = x140 + x142;
166auto x144 = cell[15]*x19;
167auto x145 = x86*(x24*(x104 + x129 + x136) + V{-1});
168auto x146 = cell[16]*x19;
169auto x147 = x55 + x81;
170auto x148 = x86*(x24*(x141 + x147 - x87*x110*x110) + V{1});
171auto x149 = x146 + x148;
172auto x150 = cell[17]*x19;
173auto x151 = x86*(x24*(x116 + x128 + x133 + x81) + V{-1});
174auto x152 = cell[18]*x19;
175auto x153 = x86*(x24*(x147 - x87*x121*x121 + x95) + V{1});
176auto x154 = x152 + x153;
177auto x155 = V{1} / (-x100 - x106 - x113 - x119 - x124 - x125 + x130 - x131 + x134 - x135 + x137 - x138 + x139 - x143 - x144 + x145 - x149 - x150 + x151 - x154 - x56 - x70 - x79 - x84 - x93 + V{1});
178auto x156 = V{1}*x94;
179auto x157 = V{1}*x107;
180auto x158 = V{1}*x140;
181auto x159 = V{1}*x146;
182auto x160 = -V{1}*cell[13]*x19 + x139 + V{1}*x85 + x92;
183auto x161 = -V{1}*cell[15]*x19 + V{1}*x101 + x105 + x145;
184auto x162 = V{1}*x120;
185auto x163 = V{1}*x152;
186auto x164 = -V{1}*cell[17]*x19 + V{1}*x114 + x118 + x151;
187cell[0] = -x56;
188cell[1] = -x70;
189cell[2] = -x79;
190cell[3] = -x84;
191cell[4] = -x93;
192cell[5] = -x100;
193cell[6] = -x106;
194cell[7] = -x113;
195cell[8] = -x119;
196cell[9] = -x124;
197cell[10] = -x125 + x130;
198cell[11] = -x131 + x134;
199cell[12] = -x135 + x137;
200cell[13] = -x138 + x139;
201cell[14] = -x143;
202cell[15] = -x144 + x145;
203cell[16] = -x149;
204cell[17] = -x150 + x151;
205cell[18] = -x154;
206cell.template getFieldPointer<descriptors::VELOCITY>()[0] = -x155*(V{1}*cell[10]*x19 - x112 - x130 + x142 + x148 - x156 - x157 + x158 + x159 - x160 - x161 - V{1}*x57 - x69 - x99);
207cell.template getFieldPointer<descriptors::VELOCITY>()[1] = -x155*(V{1}*cell[11]*x19 - x123 - x134 - x142 + x153 + x156 - x158 - x160 - x162 + x163 - x164 - V{1}*x71 - x78 + x99);
208cell.template getFieldPointer<descriptors::VELOCITY>()[2] = -x155*(V{1}*cell[12]*x19 + x112 + x123 - x137 - x148 - x153 + x157 - x159 - x161 + x162 - x163 - x164 - V{1}*x80 - x83);
209return { x25, V{1}*x26*(x36 + x44 + x52) };
210}

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