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

#include <1581ad118ab8ce09ba521ee58fb20b77e5b14ed4ac2eeea4b8a6c11c0807ad9a.cse.h>

+ Collaboration diagram for olb::dynamics::CSE< dynamics::Tuple< T, descriptors::D3Q27< FIELDS... >, momenta::Tuple< momenta::BulkDensity, momenta::BulkMomentum, momenta::BulkStress, momenta::DefineToNEq >, equilibria::SecondOrder, collision::ParameterFromCell< collision::LES::SMAGORINSKY, collision::SmagorinskyEffectiveOmega< 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::D3Q27< FIELDS... >, momenta::Tuple< momenta::BulkDensity, momenta::BulkMomentum, momenta::BulkStress, momenta::DefineToNEq >, equilibria::SecondOrder, collision::ParameterFromCell< collision::LES::SMAGORINSKY, collision::SmagorinskyEffectiveOmega< collision::BGK > >, dynamics::DefaultCombination > >

Definition at line 38 of file 1581ad118ab8ce09ba521ee58fb20b77e5b14ed4ac2eeea4b8a6c11c0807ad9a.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::D3Q27< FIELDS... >, momenta::Tuple< momenta::BulkDensity, momenta::BulkMomentum, momenta::BulkStress, momenta::DefineToNEq >, equilibria::SecondOrder, collision::ParameterFromCell< collision::LES::SMAGORINSKY, collision::SmagorinskyEffectiveOmega< collision::BGK > >, dynamics::DefaultCombination > >::collide ( CELL & cell,
PARAMETERS & parameters )
inline

Definition at line 40 of file 1581ad118ab8ce09ba521ee58fb20b77e5b14ed4ac2eeea4b8a6c11c0807ad9a.cse.h.

40 {
41auto x27 = cell.template getFieldComponent<collision::LES::SMAGORINSKY>(0);
42auto x28 = parameters.template get<descriptors::OMEGA>();
43auto x29 = cell[18] + cell[25] + cell[26];
44auto x30 = cell[10] + cell[4];
45auto x31 = cell[12] + x30;
46auto x32 = cell[22] + cell[6];
47auto x33 = cell[15] + cell[21];
48auto x34 = cell[16] + cell[9];
49auto x35 = cell[19] + cell[7];
50auto x36 = cell[0] + cell[11] + cell[13] + cell[14] + cell[17] + cell[1] + cell[20] + cell[23] + cell[24] + cell[2] + cell[3] + cell[5] + cell[8] + x29 + x31 + x32 + x33 + x34 + x35 + V{1};
51auto x37 = V{1} / (x36);
52auto x38 = V{1}*x37;
53auto x39 = -cell[26];
54auto x40 = -cell[25];
55auto x41 = -cell[18];
56auto x42 = -cell[19];
57auto x43 = cell[7] + x42;
58auto x44 = -cell[23];
59auto x45 = cell[11] + x44;
60auto x46 = x43 + x45;
61auto x47 = -cell[24];
62auto x48 = -cell[17];
63auto x49 = cell[5] + x48;
64auto x50 = cell[13] + x47 + x49;
65auto x51 = -cell[20];
66auto x52 = -cell[14] + cell[1];
67auto x53 = cell[6] + x51 + x52;
68auto x54 = x31 + x39 + x40 + x41 + x46 + x50 + x53;
69auto x55 = x54*x54;
70auto x56 = V{0.666666666666667}*cell[10];
71auto x57 = V{0.666666666666667}*cell[11];
72auto x58 = V{0.666666666666667}*cell[12];
73auto x59 = V{0.666666666666667}*cell[13];
74auto x60 = V{0.666666666666667}*cell[23];
75auto x61 = V{0.666666666666667}*cell[24];
76auto x62 = V{0.666666666666667}*cell[25];
77auto x63 = V{0.666666666666667}*cell[26];
78auto x64 = -V{0.333333333333333}*cell[0];
79auto x65 = -V{0.333333333333333}*cell[16] + V{0.666666666666667}*cell[17] + V{0.666666666666667}*cell[18] - V{0.333333333333333}*cell[3] + V{0.666666666666667}*cell[4] + V{0.666666666666667}*cell[5] + x56 + x57 + x58 + x59 + x60 + x61 + x62 + x63 + x64;
80auto x66 = -V{0.333333333333333}*cell[15] + V{0.666666666666667}*cell[19] + V{0.666666666666667}*cell[20] - V{0.333333333333333}*cell[2] + V{0.666666666666667}*cell[6] + V{0.666666666666667}*cell[7];
81auto x67 = V{0.666666666666667}*cell[14] + V{0.666666666666667}*cell[1] - V{0.333333333333333}*cell[21] - V{0.333333333333333}*cell[22] - V{0.333333333333333}*cell[8] - V{0.333333333333333}*cell[9] - x38*x55 + x65 + x66;
82auto x68 = -cell[12];
83auto x69 = -cell[13];
84auto x70 = cell[8] + x69;
85auto x71 = -cell[15] + cell[2];
86auto x72 = x47 + x71;
87auto x73 = -cell[5] + x48;
88auto x74 = -cell[22];
89auto x75 = -cell[21];
90auto x76 = cell[9] + x75;
91auto x77 = x74 + x76;
92auto x78 = x29 + x30 + x45 + x68 + x70 + x72 + x73 + x77;
93auto x79 = x78*x78;
94auto x80 = -V{0.333333333333333}*cell[14] - V{0.333333333333333}*cell[1] + V{0.666666666666667}*cell[21] + V{0.666666666666667}*cell[22] + V{0.666666666666667}*cell[8] + V{0.666666666666667}*cell[9];
95auto x81 = V{0.666666666666667}*cell[15] - V{0.333333333333333}*cell[19] - V{0.333333333333333}*cell[20] + V{0.666666666666667}*cell[2] - V{0.333333333333333}*cell[6] - V{0.333333333333333}*cell[7] - x38*x79 + x65 + x80;
96auto x82 = cell[26] + x40;
97auto x83 = cell[20] + x82;
98auto x84 = -cell[11];
99auto x85 = cell[12] + x44 + x84;
100auto x86 = -cell[16] + cell[3];
101auto x87 = cell[10] + cell[24] + x86;
102auto x88 = -cell[9];
103auto x89 = x75 + x88;
104auto x90 = -cell[7] + x42;
105auto x91 = x32 + x70 + x83 + x85 + x87 + x89 + x90;
106auto x92 = x91*x91;
107auto x93 = V{0.666666666666667}*cell[16] - V{0.333333333333333}*cell[17] - V{0.333333333333333}*cell[18] + V{0.666666666666667}*cell[3] - V{0.333333333333333}*cell[4] - V{0.333333333333333}*cell[5] - x38*x92 + x56 + x57 + x58 + x59 + x60 + x61 + x62 + x63 + x64 + x66 + x80;
108auto x94 = x37*x91;
109auto x95 = -cell[8];
110auto x96 = cell[22] + x95;
111auto x97 = cell[11] + cell[12] + x69;
112auto x98 = cell[25] + x39 + x44;
113auto x99 = -cell[10];
114auto x100 = cell[24] + x99;
115auto x101 = x100 + x76 + x78*x94 + x96 + x97 + x98;
116auto x102 = -cell[6];
117auto x103 = cell[13] + x68;
118auto x104 = x100 + x102 + x103 + x46 + x54*x94 + x83;
119auto x105 = -cell[4] + x29 + x37*x54*x78 + x50 + x85 + x99;
120auto x106 = V{1} / (V{3.00000046417339}*util::sqrt(x37*(x27*x27)*util::sqrt(x101*x101 + x104*x104 + x105*x105 + V{0.5}*(x67*x67) + V{0.5}*(x81*x81) + V{0.5}*(x93*x93)) + V{0.0277777691819762}/((x28)*(x28))) + V{0.5}/x28);
121auto x107 = V{1} / ((x36)*(x36));
122auto x108 = V{1.5}*x107;
123auto x109 = -x54;
124auto x110 = x109*x109;
125auto x111 = x108*x110;
126auto x112 = -x91;
127auto x113 = x112*x112;
128auto x114 = x108*x113;
129auto x115 = -x78;
130auto x116 = x115*x115;
131auto x117 = x108*x116;
132auto x118 = x114 + x117 + V{-1};
133auto x119 = x111 + x118;
134auto x120 = V{1} - x106;
135auto x121 = V{0.0740740740740741}*cell[0] + V{0.0740740740740741}*cell[10] + V{0.0740740740740741}*cell[11] + V{0.0740740740740741}*cell[12] + V{0.0740740740740741}*cell[13] + V{0.0740740740740741}*cell[14] + V{0.0740740740740741}*cell[15] + V{0.0740740740740741}*cell[16] + V{0.0740740740740741}*cell[17] + V{0.0740740740740741}*cell[18] + V{0.0740740740740741}*cell[19] + V{0.0740740740740741}*cell[1] + V{0.0740740740740741}*cell[20] + V{0.0740740740740741}*cell[21] + V{0.0740740740740741}*cell[22] + V{0.0740740740740741}*cell[23] + V{0.0740740740740741}*cell[24] + V{0.0740740740740741}*cell[25] + V{0.0740740740740741}*cell[26] + V{0.0740740740740741}*cell[2] + V{0.0740740740740741}*cell[3] + V{0.0740740740740741}*cell[4] + V{0.0740740740740741}*cell[5] + V{0.0740740740740741}*cell[6] + V{0.0740740740740741}*cell[7] + V{0.0740740740740741}*cell[8] + V{0.0740740740740741}*cell[9] + V{0.0740740740740741};
136auto x122 = V{3}*cell[13];
137auto x123 = V{3}*cell[5];
138auto x124 = V{3}*cell[7];
139auto x125 = V{3}*cell[18];
140auto x126 = V{3}*cell[20];
141auto x127 = V{3}*cell[26];
142auto x128 = V{3}*cell[10];
143auto x129 = V{3}*cell[11];
144auto x130 = -V{3}*cell[23];
145auto x131 = V{3}*cell[24];
146auto x132 = -V{3}*cell[17] + V{3}*cell[4] + x128 + x129 + x130 - x131;
147auto x133 = V{3}*cell[12];
148auto x134 = V{3}*cell[25];
149auto x135 = -V{3}*cell[19] + V{3}*cell[6] + x133 - x134;
150auto x136 = -V{3}*cell[14] + V{3}*cell[1] + x122 + x123 + x124 - x125 - x126 - x127 + x132 + x135;
151auto x137 = -x136*x37;
152auto x138 = V{3}*x107;
153auto x139 = V{3}*cell[9];
154auto x140 = V{3}*cell[22];
155auto x141 = -V{3}*cell[21] + V{3}*cell[8] - x122 + x127;
156auto x142 = -V{3}*cell[15] + V{3}*cell[2] - x123 + x125 + x132 - x133 + x134 + x139 - x140 + x141;
157auto x143 = -x142*x37;
158auto x144 = x111 + V{-1};
159auto x145 = -V{3}*cell[16] + V{3}*cell[3] - x124 + x126 + x128 - x129 + x130 + x131 + x135 - x139 + x140 + x141;
160auto x146 = -x145*x37;
161auto x147 = V{0.0185185185185185}*cell[0] + V{0.0185185185185185}*cell[10] + V{0.0185185185185185}*cell[11] + V{0.0185185185185185}*cell[12] + V{0.0185185185185185}*cell[13] + V{0.0185185185185185}*cell[14] + V{0.0185185185185185}*cell[15] + V{0.0185185185185185}*cell[16] + V{0.0185185185185185}*cell[17] + V{0.0185185185185185}*cell[18] + V{0.0185185185185185}*cell[19] + V{0.0185185185185185}*cell[1] + V{0.0185185185185185}*cell[20] + V{0.0185185185185185}*cell[21] + V{0.0185185185185185}*cell[22] + V{0.0185185185185185}*cell[23] + V{0.0185185185185185}*cell[24] + V{0.0185185185185185}*cell[25] + V{0.0185185185185185}*cell[26] + V{0.0185185185185185}*cell[2] + V{0.0185185185185185}*cell[3] + V{0.0185185185185185}*cell[4] + V{0.0185185185185185}*cell[5] + V{0.0185185185185185}*cell[6] + V{0.0185185185185185}*cell[7] + V{0.0185185185185185}*cell[8] + V{0.0185185185185185}*cell[9] + V{0.0185185185185185};
162auto x148 = V{4.5}*x107;
163auto x149 = x43 + x53;
164auto x150 = -V{2}*cell[17] + V{2}*cell[4];
165auto x151 = -V{2}*cell[23];
166auto x152 = V{2}*cell[10];
167auto x153 = cell[8] + x151 + x152;
168auto x154 = V{2}*cell[11] - V{2}*cell[24];
169auto x155 = x154 + x71;
170auto x156 = x149 + x150 + x153 + x155 + x77;
171auto x157 = -x156;
172auto x158 = x119 + x137;
173auto x159 = x143 + x158;
174auto x160 = V{2}*cell[25];
175auto x161 = V{2}*cell[12];
176auto x162 = -x160 + x161;
177auto x163 = V{2}*cell[26];
178auto x164 = V{2}*cell[13];
179auto x165 = -x163 + x164;
180auto x166 = V{2}*cell[18];
181auto x167 = V{2}*cell[5];
182auto x168 = -cell[2] - x166 + x167;
183auto x169 = x149 + x162 + x165 + x168 + x33 + x88 + x96;
184auto x170 = -x143;
185auto x171 = x158 + x170;
186auto x172 = cell[4] + x86;
187auto x173 = -V{2}*cell[19] + V{2}*cell[6] + x52;
188auto x174 = x41 + x49;
189auto x175 = cell[22] + x153 + x162 + x172 + x173 + x174 + x89;
190auto x176 = -x175;
191auto x177 = -x146;
192auto x178 = -cell[3];
193auto x179 = cell[4] + x178;
194auto x180 = V{2}*cell[20];
195auto x181 = V{2}*cell[7];
196auto x182 = -x180 + x181 + x52;
197auto x183 = cell[21] + x154 + x165 + x174 + x179 + x182 + x34 + x74 + x95;
198auto x184 = cell[18] + x73;
199auto x185 = -V{2}*cell[21] + V{2}*cell[8];
200auto x186 = x185 + x71;
201auto x187 = cell[20] + cell[6] + x151 + x152 + x163 - x164 + x172 + x184 + x186 + x90;
202auto x188 = -x187;
203auto x189 = x119 + x143;
204auto x190 = x146 + x189;
205auto x191 = V{2}*cell[22];
206auto x192 = V{2}*cell[9];
207auto x193 = cell[16] - x191 + x192;
208auto x194 = x102 + x155 + x160 - x161 + x179 + x184 + x193 + x35 + x51;
209auto x195 = V{0.00462962962962963}*cell[0] + V{0.00462962962962963}*cell[10] + V{0.00462962962962963}*cell[11] + V{0.00462962962962963}*cell[12] + V{0.00462962962962963}*cell[13] + V{0.00462962962962963}*cell[14] + V{0.00462962962962963}*cell[15] + V{0.00462962962962963}*cell[16] + V{0.00462962962962963}*cell[17] + V{0.00462962962962963}*cell[18] + V{0.00462962962962963}*cell[19] + V{0.00462962962962963}*cell[1] + V{0.00462962962962963}*cell[20] + V{0.00462962962962963}*cell[21] + V{0.00462962962962963}*cell[22] + V{0.00462962962962963}*cell[23] + V{0.00462962962962963}*cell[24] + V{0.00462962962962963}*cell[25] + V{0.00462962962962963}*cell[26] + V{0.00462962962962963}*cell[2] + V{0.00462962962962963}*cell[3] + V{0.00462962962962963}*cell[4] + V{0.00462962962962963}*cell[5] + V{0.00462962962962963}*cell[6] + V{0.00462962962962963}*cell[7] + V{0.00462962962962963}*cell[8] + V{0.00462962962962963}*cell[9] + V{0.00462962962962963};
210auto x196 = V{3}*cell[10] - V{3}*cell[23] + x150 + x173 + x185 + x72 + x82 + x86 + x97;
211auto x197 = -x196;
212auto x198 = cell[10] + V{3}*cell[11] - V{3}*cell[24] + x103 + x150 + x178 + x182 + x193 + x71 + x98;
213auto x199 = x44 + x84 + x87;
214auto x200 = V{3}*cell[12] + cell[13] + cell[15] - V{3}*cell[25] + x168 + x173 + x191 - x192 + x199 + x39;
215auto x201 = x136*x37;
216auto x202 = -V{3}*cell[13] + cell[14] - cell[1] + cell[25] + V{3}*cell[26] + x166 - x167 + x180 - x181 + x186 + x199 + x68;
217auto x203 = -x202;
218auto x204 = x145*x37;
219auto x205 = x108*x79;
220auto x206 = x108*x92 + V{-1};
221auto x207 = x205 + x206;
222auto x208 = x142*x37;
223auto x209 = x108*x55;
224auto x210 = x208 + x209;
225auto x211 = x204 + x207 + x210;
226auto x212 = x201 + x207;
227auto x213 = x204 + x209;
228auto x214 = x210 + x212;
229auto x215 = -x137;
230auto x216 = -x169;
231auto x217 = x212 + x213;
232auto x218 = -x183;
233auto x219 = x119 + x146;
234auto x220 = -x194;
235auto x221 = -x198;
236auto x222 = -x200;
237auto x0 = V{1}*cell[0]*x120 - x106*(x119*(V{0.296296296296296}*cell[0] + V{0.296296296296296}*cell[10] + V{0.296296296296296}*cell[11] + V{0.296296296296296}*cell[12] + V{0.296296296296296}*cell[13] + V{0.296296296296296}*cell[14] + V{0.296296296296296}*cell[15] + V{0.296296296296296}*cell[16] + V{0.296296296296296}*cell[17] + V{0.296296296296296}*cell[18] + V{0.296296296296296}*cell[19] + V{0.296296296296296}*cell[1] + V{0.296296296296296}*cell[20] + V{0.296296296296296}*cell[21] + V{0.296296296296296}*cell[22] + V{0.296296296296296}*cell[23] + V{0.296296296296296}*cell[24] + V{0.296296296296296}*cell[25] + V{0.296296296296296}*cell[26] + V{0.296296296296296}*cell[2] + V{0.296296296296296}*cell[3] + V{0.296296296296296}*cell[4] + V{0.296296296296296}*cell[5] + V{0.296296296296296}*cell[6] + V{0.296296296296296}*cell[7] + V{0.296296296296296}*cell[8] + V{0.296296296296296}*cell[9] + V{0.296296296296296}) + V{0.296296296296296});
238auto x1 = V{1}*cell[1]*x120 - x106*(x121*(-x110*x138 + x118 + x137) + V{0.0740740740740741});
239auto x2 = V{1}*cell[2]*x120 - x106*(x121*(x114 - x116*x138 + x143 + x144) + V{0.0740740740740741});
240auto x3 = V{1}*cell[3]*x120 - x106*(x121*(-x113*x138 + x117 + x144 + x146) + V{0.0740740740740741});
241auto x4 = V{1}*cell[4]*x120 - x106*(x147*(-x148*x157*x157 + x159) + V{0.0185185185185185});
242auto x5 = V{1}*cell[5]*x120 - x106*(x147*(-x148*x169*x169 + x171) + V{0.0185185185185185});
243auto x6 = V{1}*cell[6]*x120 - x106*(x147*(x146 - x148*x176*x176 + x158) + V{0.0185185185185185});
244auto x7 = V{1}*cell[7]*x120 - x106*(x147*(-x148*x183*x183 + x158 + x177) + V{0.0185185185185185});
245auto x8 = V{1}*cell[8]*x120 - x106*(x147*(-x148*x188*x188 + x190) + V{0.0185185185185185});
246auto x9 = V{1}*cell[9]*x120 - x106*(x147*(-x148*x194*x194 + x177 + x189) + V{0.0185185185185185});
247auto x10 = V{1}*cell[10]*x120 - x106*(x195*(x146 - x148*x197*x197 + x159) + V{0.00462962962962963});
248auto x11 = V{1}*cell[11]*x120 - x106*(x195*(-x148*x198*x198 + x159 + x177) + V{0.00462962962962963});
249auto x12 = V{1}*cell[12]*x120 - x106*(x195*(x146 - x148*x200*x200 + x171) + V{0.00462962962962963});
250auto x13 = V{1}*cell[13]*x120 - x106*(x195*(-x148*x203*x203 - x201 + x211) + V{0.00462962962962963});
251auto x14 = V{1}*cell[14]*x120 - x106*(x121*(-x138*x55 + x212) + V{0.0740740740740741});
252auto x15 = V{1}*cell[15]*x120 - x106*(x121*(-x138*x79 + x206 + x210) + V{0.0740740740740741});
253auto x16 = V{1}*cell[16]*x120 - x106*(x121*(-x138*x92 + x205 + x213 + V{-1}) + V{0.0740740740740741});
254auto x17 = V{1}*cell[17]*x120 - x106*(x147*(-x148*x156*x156 + x214) + V{0.0185185185185185});
255auto x18 = V{1}*cell[18]*x120 - x106*(x147*(-x148*x216*x216 + x189 + x215) + V{0.0185185185185185});
256auto x19 = V{1}*cell[19]*x120 - x106*(x147*(-x148*x175*x175 + x217) + V{0.0185185185185185});
257auto x20 = V{1}*cell[20]*x120 - x106*(x147*(-x148*x218*x218 + x215 + x219) + V{0.0185185185185185});
258auto x21 = V{1}*cell[21]*x120 - x106*(x147*(-x148*x187*x187 + x211) + V{0.0185185185185185});
259auto x22 = V{1}*cell[22]*x120 - x106*(x147*(-x148*x220*x220 + x170 + x219) + V{0.0185185185185185});
260auto x23 = V{1}*cell[23]*x120 - x106*(x195*(-x148*x196*x196 + x204 + x214) + V{0.00462962962962963});
261auto x24 = V{1}*cell[24]*x120 - x106*(x195*(-x148*x221*x221 - x204 + x214) + V{0.00462962962962963});
262auto x25 = V{1}*cell[25]*x120 - x106*(x195*(-x148*x222*x222 - x208 + x217) + V{0.00462962962962963});
263auto x26 = V{1}*cell[26]*x120 - x106*(x195*(-x148*x202*x202 + x190 + x215) + V{0.00462962962962963});
264cell[0] = x0;
265cell[1] = x1;
266cell[2] = x2;
267cell[3] = x3;
268cell[4] = x4;
269cell[5] = x5;
270cell[6] = x6;
271cell[7] = x7;
272cell[8] = x8;
273cell[9] = x9;
274cell[10] = x10;
275cell[11] = x11;
276cell[12] = x12;
277cell[13] = x13;
278cell[14] = x14;
279cell[15] = x15;
280cell[16] = x16;
281cell[17] = x17;
282cell[18] = x18;
283cell[19] = x19;
284cell[20] = x20;
285cell[21] = x21;
286cell[22] = x22;
287cell[23] = x23;
288cell[24] = x24;
289cell[25] = x25;
290cell[26] = x26;
291return { x36, V{1}*x107*(x55 + x79 + x92) };
292}
Expr sqrt(Expr x)
Definition expr.cpp:225

References olb::util::sqrt().

+ Here is the call graph for this function:

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