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

#include <86789783378d00a3814b44791228f66b5679d9c3d3f55b0edb29a3a5c4b4e3c5.cse.h>

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

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< SpongeLayerDynamics< T, descriptors::D3Q19< FIELDS... >, momenta::Tuple< momenta::BulkDensity, momenta::BulkMomentum, momenta::BulkStress, momenta::DefineToNEq >, equilibria::SecondOrder > >

Definition at line 38 of file 86789783378d00a3814b44791228f66b5679d9c3d3f55b0edb29a3a5c4b4e3c5.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< SpongeLayerDynamics< T, descriptors::D3Q19< FIELDS... >, momenta::Tuple< momenta::BulkDensity, momenta::BulkMomentum, momenta::BulkStress, momenta::DefineToNEq >, equilibria::SecondOrder > >::collide ( CELL & cell,
PARAMETERS & parameters )
inline

Definition at line 40 of file 86789783378d00a3814b44791228f66b5679d9c3d3f55b0edb29a3a5c4b4e3c5.cse.h.

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

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