OpenLB 1.7
Loading...
Searching...
No Matches
collision.cse.h
Go to the documentation of this file.
1/* This file is part of the OpenLB library
2 *
3 * Copyright (C) 2021 Adrian Kummerlaender
4 * E-mail contact: info@openlb.net
5 * The most recent release of OpenLB can be downloaded at
6 * <http://www.openlb.net/>
7 *
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public License
10 * as published by the Free Software Foundation; either version 2
11 * of the License, or (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
17 *
18 * You should have received a copy of the GNU General Public
19 * License along with this program; if not, write to the Free
20 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21 * Boston, MA 02110-1301, USA.
22*/
23
24#ifndef DYNAMICS_COLLISION_CSE_H
25#define DYNAMICS_COLLISION_CSE_H
26
27
28#ifndef DISABLE_CSE
29
30#include "equilibrium.h"
31#include "latticeDescriptors.h"
32
33namespace olb {
34
35namespace collision {
36
37template <typename... FIELDS>
38struct BGK::type<descriptors::D2Q5<FIELDS...>,momenta::BulkTuple,equilibria::SecondOrder> {
39
40template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
41CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
42{
43auto x7 = parameters.template get<olb::descriptors::OMEGA>();
44auto x5 = x7 + V{-1};
45auto x6 = cell[0] + cell[1] + cell[2] + cell[3] + cell[4];
46auto x8 = x6 + V{1};
47auto x9 = x6 + V{1};
48auto x10 = V{1} / ((x9)*(x9));
49auto x11 = V{1.5}*x10;
50auto x12 = cell[2] - cell[4];
51auto x13 = -x12;
52auto x14 = x13*x13;
53auto x15 = cell[1] - cell[3];
54auto x16 = -x15;
55auto x17 = x11*(x16*x16) + V{-1};
56auto x18 = V{0.166666666666667}*x7;
57auto x19 = V{1} / (x9);
58auto x20 = x19*(V{3}*cell[1] - V{3}*cell[3]);
59auto x21 = V{3}*x10;
60auto x22 = x15*x15;
61auto x23 = x12*x12;
62auto x24 = x11*x23;
63auto x25 = V{3}*cell[2] - V{3}*cell[4];
64cell[0] = -x5*cell[0] - V{0.333333333333333}*x7*(x8*(x11*x14 + x17) + V{1});
65cell[1] = x18*(x8*(x20 + x21*x22 - x24 + V{1}) + V{-1}) - x5*cell[1];
66cell[2] = -x18*(x8*(-x14*x21 + x17 - x19*x25) + V{1}) - x5*cell[2];
67cell[3] = x18*(x8*(V{3}*x10*x22 - x20 - x24 + V{1}) + V{-1}) - x5*cell[3];
68cell[4] = -x18*(x8*(x11*x22 + x19*x25 - x21*x23 + V{-1}) + V{1}) - x5*cell[4];
69return { x9, V{1}*x10*(x22 + x23) };
70}
71
72};
73
74template <typename... FIELDS>
75struct BGK::type<descriptors::D2Q5<FIELDS...>,momenta::BulkTuple,equilibria::Incompressible> {
76
77template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
78CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
79{
80auto x7 = parameters.template get<olb::descriptors::OMEGA>();
81auto x5 = V{0.333333333333333}*cell[1];
82auto x6 = V{0.333333333333333}*cell[2];
83auto x8 = V{0.333333333333333}*cell[3];
84auto x9 = V{0.333333333333333}*cell[4];
85auto x10 = cell[1] - cell[3];
86auto x11 = x10*x10;
87auto x12 = V{0.5}*x11;
88auto x13 = cell[2] - cell[4];
89auto x14 = x13*x13;
90auto x15 = V{0.5}*x14;
91auto x16 = x7 + V{-1};
92auto x17 = V{0.166666666666667}*cell[0];
93auto x18 = x12 - V{0.25}*x14 + x17 + V{0.166666666666667}*cell[2] + V{0.166666666666667}*cell[4];
94auto x19 = -V{0.25}*x11 + x15 + x17 + V{0.166666666666667}*cell[1] + V{0.166666666666667}*cell[3];
95auto x20 = cell[0] + cell[1] + cell[2] + cell[3] + cell[4] + V{1};
96cell[0] = -x16*cell[0] + x7*(-x12 - x15 + x5 + x6 + x8 + x9 + V{0.333333333333333}*cell[0]);
97cell[1] = -x16*cell[1] + x7*(x18 - x8 + V{0.666666666666667}*cell[1]);
98cell[2] = -x16*cell[2] + x7*(x19 - x9 + V{0.666666666666667}*cell[2]);
99cell[3] = -x16*cell[3] + x7*(x18 - x5 + V{0.666666666666667}*cell[3]);
100cell[4] = -x16*cell[4] + x7*(x19 - x6 + V{0.666666666666667}*cell[4]);
101return { x20, V{1}*(x11 + x14)/((x20)*(x20)) };
102}
103
104};
105
106template <typename... FIELDS>
107struct BGK::type<descriptors::D2Q9<FIELDS...>,momenta::BulkTuple,equilibria::SecondOrder> {
108
109template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
110CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
111{
112auto x11 = parameters.template get<olb::descriptors::OMEGA>();
113auto x9 = x11 + V{-1};
114auto x10 = cell[0] + cell[1] + cell[2] + cell[3] + cell[4] + cell[5] + cell[6] + cell[7] + cell[8];
115auto x12 = x10 + V{1};
116auto x13 = x10 + V{1};
117auto x14 = V{1} / ((x13)*(x13));
118auto x15 = V{1.5}*x14;
119auto x16 = cell[1] - cell[5];
120auto x17 = -cell[4] + cell[8];
121auto x18 = x16 + x17 - cell[3] + cell[7];
122auto x19 = x18*x18;
123auto x20 = x15*x19;
124auto x21 = cell[2] - cell[6];
125auto x22 = x16 + x21 + cell[3] - cell[7];
126auto x23 = -x22;
127auto x24 = x15*(x23*x23) + V{-1};
128auto x25 = x20 + x24;
129auto x26 = V{0.0277777777777778}*x11;
130auto x27 = V{4.5}*x14;
131auto x28 = x17 + x21 + V{2}*cell[1] - V{2}*cell[5];
132auto x29 = x27*(x28*x28);
133auto x30 = V{1} / (x13);
134auto x31 = V{3}*cell[3];
135auto x32 = V{3}*cell[7];
136auto x33 = V{3}*cell[1] - V{3}*cell[5];
137auto x34 = x31 - x32 + x33 + V{3}*cell[2] - V{3}*cell[6];
138auto x35 = x30*x34;
139auto x36 = -x20 + x35 + V{1};
140auto x37 = -x31 + x32 + x33 - V{3}*cell[4] + V{3}*cell[8];
141auto x38 = x30*x37;
142auto x39 = x22*x22;
143auto x40 = x15*x39;
144auto x41 = x38 - x40;
145auto x42 = V{0.111111111111111}*x11;
146auto x43 = V{3}*x14;
147auto x44 = x21 + V{2}*cell[3] + cell[4] - V{2}*cell[7] - cell[8];
148auto x45 = -x44;
149auto x46 = x19*x43;
150auto x47 = x20 + x35 + V{-1};
151auto x48 = x40 + x47;
152cell[0] = -V{0.444444444444444}*x11*(x12*x25 + V{1}) - x9*cell[0];
153cell[1] = x26*(x12*(x29 + x36 + x41) + V{-1}) - x9*cell[1];
154cell[2] = x42*(x12*(x36 + x39*x43) + V{-1}) - x9*cell[2];
155cell[3] = -x26*(x12*(x25 - x27*x45*x45 - x30*x34 + x38) + V{1}) - x9*cell[3];
156cell[4] = -x42*(x12*(x24 + x38 - x46) + V{1}) - x9*cell[4];
157cell[5] = -x26*(x12*(-x29 + x38 + x48) + V{1}) - x9*cell[5];
158cell[6] = x42*(x12*(V{3}*x14*x39 - x47) + V{-1}) - x9*cell[6];
159cell[7] = x26*(-x12*(-V{4.5}*x14*x44*x44 - x30*x37 + x48) + V{-1}) - x9*cell[7];
160cell[8] = x42*(x12*(x41 + x46 + V{1}) + V{-1}) - x9*cell[8];
161return { x13, V{1}*x14*(x19 + x39) };
162}
163
164};
165
166template <typename... FIELDS>
167struct BGK::type<descriptors::D2Q9<FIELDS...>,momenta::BulkTuple,equilibria::Incompressible> {
168
169template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
170CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
171{
172auto x11 = parameters.template get<olb::descriptors::OMEGA>();
173auto x9 = V{0.444444444444444}*cell[8];
174auto x10 = cell[1] - cell[5];
175auto x12 = cell[7] + cell[8];
176auto x13 = x10 + x12 - cell[3] - cell[4];
177auto x14 = x13*x13;
178auto x15 = cell[2] + cell[3];
179auto x16 = x10 + x15 - cell[6] - cell[7];
180auto x17 = x16*x16;
181auto x18 = V{0.444444444444444}*cell[1];
182auto x19 = V{0.444444444444444}*cell[3];
183auto x20 = x18 + x19 + V{0.444444444444444}*cell[2];
184auto x21 = V{0.444444444444444}*cell[5];
185auto x22 = x21 + V{0.444444444444444}*cell[4];
186auto x23 = V{0.444444444444444}*cell[7];
187auto x24 = x23 + V{0.444444444444444}*cell[6];
188auto x25 = x11 + V{-1};
189auto x26 = V{0.111111111111111}*cell[2];
190auto x27 = V{0.0277777777777778}*cell[0];
191auto x28 = -V{0.0416666666666667}*x14;
192auto x29 = -V{0.0416666666666667}*x17;
193auto x30 = x26 + x27 + x28 + x29 - V{0.0555555555555556}*cell[6];
194auto x31 = V{0.111111111111111}*cell[8];
195auto x32 = x31 - V{0.0555555555555556}*cell[4];
196auto x33 = V{1}*cell[8];
197auto x34 = V{1}*cell[4];
198auto x35 = V{1}*cell[2] - V{1}*cell[6];
199auto x36 = V{4.5}*cell[8];
200auto x37 = V{4.5}*cell[4];
201auto x38 = V{4.5}*cell[2] - V{4.5}*cell[6];
202auto x39 = V{0.0277777777777778}*(x33 - x34 + x35 + V{2}*cell[1] - V{2}*cell[5])*(x36 - x37 + x38 + V{9}*cell[1] - V{9}*cell[5]) + V{0.0277777777777778}*cell[3] + V{0.0277777777777778}*cell[7];
203auto x40 = -V{0.222222222222222}*cell[5];
204auto x41 = V{0.111111111111111}*cell[0];
205auto x42 = x41 - V{0.222222222222222}*cell[7];
206auto x43 = V{0.111111111111111}*cell[4];
207auto x44 = -V{0.166666666666667}*x14 + V{0.333333333333333}*x17 + x31 + x43;
208auto x45 = x43 - V{0.0555555555555556}*cell[8];
209auto x46 = V{0.0277777777777778}*(-x33 + x34 + x35 + V{2}*cell[3] - V{2}*cell[7])*(-x36 + x37 + x38 + V{9}*cell[3] - V{9}*cell[7]) + V{0.0277777777777778}*cell[1] + V{0.0277777777777778}*cell[5];
210auto x47 = -V{0.222222222222222}*cell[1];
211auto x48 = V{0.111111111111111}*cell[6];
212auto x49 = V{0.333333333333333}*x14 - V{0.166666666666667}*x17 + x26 + x48;
213auto x50 = x27 + x28 + x29 + x48 - V{0.0555555555555556}*cell[2];
214auto x51 = x41 - V{0.222222222222222}*cell[3];
215auto x52 = x12 + x15 + cell[0] + cell[1] + cell[4] + cell[5] + cell[6] + V{1};
216auto x0 = x11*(-V{0.666666666666667}*x14 - V{0.666666666666667}*x17 + x20 + x22 + x24 + x9 + V{0.444444444444444}*cell[0]) - x25*cell[0];
217auto x1 = x11*(x30 + x32 + x39 + V{0.194444444444444}*cell[1] - V{0.138888888888889}*cell[5]) - x25*cell[1];
218auto x2 = x11*(x20 + x40 + x42 + x44 - V{0.222222222222222}*cell[6]) - x25*cell[2];
219auto x3 = x11*(x30 + x45 + x46 + V{0.194444444444444}*cell[3] - V{0.138888888888889}*cell[7]) - x25*cell[3];
220auto x4 = x11*(x19 + x22 + x42 + x47 + x49 - V{0.222222222222222}*cell[8]) - x25*cell[4];
221auto x5 = x11*(x39 + x45 + x50 - V{0.138888888888889}*cell[1] + V{0.194444444444444}*cell[5]) - x25*cell[5];
222auto x6 = x11*(x21 + x24 + x44 + x47 + x51 - V{0.222222222222222}*cell[2]) - x25*cell[6];
223auto x7 = x11*(x32 + x46 + x50 - V{0.138888888888889}*cell[3] + V{0.194444444444444}*cell[7]) - x25*cell[7];
224auto x8 = x11*(x18 + x23 + x40 + x49 + x51 + x9 - V{0.222222222222222}*cell[4]) - x25*cell[8];
225cell[0] = x0;
226cell[1] = x1;
227cell[2] = x2;
228cell[3] = x3;
229cell[4] = x4;
230cell[5] = x5;
231cell[6] = x6;
232cell[7] = x7;
233cell[8] = x8;
234return { x52, V{1}*(x14 + x17)/((x52)*(x52)) };
235}
236
237};
238
239template <typename... FIELDS>
240struct BGK::type<descriptors::D3Q7<FIELDS...>,momenta::BulkTuple,equilibria::SecondOrder> {
241
242template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
243CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
244{
245auto x10 = parameters.template get<olb::descriptors::OMEGA>();
246auto x7 = x10 + V{-1};
247auto x8 = cell[0] + cell[1] + cell[2] + cell[3] + cell[4] + cell[5] + cell[6];
248auto x9 = x8 + V{1};
249auto x11 = x8 + V{1};
250auto x12 = V{1} / ((x11)*(x11));
251auto x13 = V{2}*x12;
252auto x14 = cell[1] - cell[4];
253auto x15 = -x14;
254auto x16 = x15*x15;
255auto x17 = x13*x16;
256auto x18 = cell[2] - cell[5];
257auto x19 = -x18;
258auto x20 = x19*x19;
259auto x21 = x13*x20;
260auto x22 = cell[3] - cell[6];
261auto x23 = -x22;
262auto x24 = x23*x23;
263auto x25 = x13*x24;
264auto x26 = x21 + x25 + V{-1};
265auto x27 = V{0.125}*x10;
266auto x28 = V{1} / (x11);
267auto x29 = V{4}*cell[1] - V{4}*cell[4];
268auto x30 = V{6}*x12;
269auto x31 = V{4}*cell[2] - V{4}*cell[5];
270auto x32 = x17 + V{-1};
271auto x33 = V{4}*cell[3] - V{4}*cell[6];
272auto x34 = x18*x18;
273auto x35 = x13*x34;
274auto x36 = x14*x14;
275auto x37 = x22*x22;
276auto x38 = x13*x37 + V{-1};
277auto x39 = x13*x36;
278cell[0] = -V{0.25}*x10*(x9*(x17 + x26) + V{1}) - x7*cell[0];
279cell[1] = -x27*(x9*(-x16*x30 + x26 - x28*x29) + V{1}) - x7*cell[1];
280cell[2] = -x27*(x9*(-x20*x30 + x25 - x28*x31 + x32) + V{1}) - x7*cell[2];
281cell[3] = -x27*(x9*(x21 - x24*x30 - x28*x33 + x32) + V{1}) - x7*cell[3];
282cell[4] = -x27*(x9*(x28*x29 - x30*x36 + x35 + x38) + V{1}) - x7*cell[4];
283cell[5] = -x27*(x9*(x28*x31 - x30*x34 + x38 + x39) + V{1}) - x7*cell[5];
284cell[6] = -x27*(x9*(x28*x33 - x30*x37 + x35 + x39 + V{-1}) + V{1}) - x7*cell[6];
285return { x11, V{1}*x12*(x34 + x36 + x37) };
286}
287
288};
289
290template <typename... FIELDS>
291struct BGK::type<descriptors::D3Q7<FIELDS...>,momenta::BulkTuple,equilibria::Incompressible> {
292
293template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
294CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
295{
296auto x10 = parameters.template get<olb::descriptors::OMEGA>();
297auto x7 = cell[1] - cell[4];
298auto x8 = x7*x7;
299auto x9 = cell[2] - cell[5];
300auto x11 = x9*x9;
301auto x12 = cell[3] - cell[6];
302auto x13 = x12*x12;
303auto x14 = x10 + V{-1};
304auto x15 = V{0.125}*cell[0];
305auto x16 = -V{0.25}*x13 + x15 + V{0.125}*cell[3] + V{0.125}*cell[6];
306auto x17 = -V{0.25}*x11 + V{0.125}*cell[2] + V{0.125}*cell[5];
307auto x18 = x16 + x17 + V{0.75}*x8;
308auto x19 = -V{0.25}*x8 + V{0.125}*cell[1] + V{0.125}*cell[4];
309auto x20 = V{0.75}*x11 + x16 + x19;
310auto x21 = V{0.75}*x13 + x15 + x17 + x19;
311auto x22 = cell[0] + cell[1] + cell[2] + cell[3] + cell[4] + cell[5] + cell[6] + V{1};
312auto x0 = x10*(-V{0.5}*x11 - V{0.5}*x13 - V{0.5}*x8 + V{0.25}*cell[0] + V{0.25}*cell[1] + V{0.25}*cell[2] + V{0.25}*cell[3] + V{0.25}*cell[4] + V{0.25}*cell[5] + V{0.25}*cell[6]) - x14*cell[0];
313auto x1 = x10*(x18 + V{0.625}*cell[1] - V{0.375}*cell[4]) - x14*cell[1];
314auto x2 = x10*(x20 + V{0.625}*cell[2] - V{0.375}*cell[5]) - x14*cell[2];
315auto x3 = x10*(x21 + V{0.625}*cell[3] - V{0.375}*cell[6]) - x14*cell[3];
316auto x4 = x10*(x18 - V{0.375}*cell[1] + V{0.625}*cell[4]) - x14*cell[4];
317auto x5 = x10*(x20 - V{0.375}*cell[2] + V{0.625}*cell[5]) - x14*cell[5];
318auto x6 = x10*(x21 - V{0.375}*cell[3] + V{0.625}*cell[6]) - x14*cell[6];
319cell[0] = x0;
320cell[1] = x1;
321cell[2] = x2;
322cell[3] = x3;
323cell[4] = x4;
324cell[5] = x5;
325cell[6] = x6;
326return { x22, V{1}*(x11 + x13 + x8)/((x22)*(x22)) };
327}
328
329};
330
331template <typename... FIELDS>
332struct BGK::type<descriptors::D3Q19<FIELDS...>,momenta::BulkTuple,equilibria::SecondOrder> {
333
334template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
335CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
336{
337auto x22 = parameters.template get<olb::descriptors::OMEGA>();
338auto x19 = x22 + V{-1};
339auto x20 = cell[10] + cell[14];
340auto x21 = cell[12] + cell[7];
341auto x23 = x20 + x21 + 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];
342auto x24 = x23 + V{1};
343auto x25 = x23 + V{1};
344auto x26 = V{1} / ((x25)*(x25));
345auto x27 = V{1.5}*x26;
346auto x28 = cell[13] - cell[4];
347auto x29 = cell[15] - cell[6];
348auto x30 = x28 + x29;
349auto x31 = -cell[1];
350auto x32 = cell[16] - cell[7];
351auto x33 = x31 + x32;
352auto x34 = x20 - cell[5];
353auto x35 = x30 + x33 + x34;
354auto x36 = x35*x35;
355auto x37 = x27*x36;
356auto x38 = cell[17] - cell[8];
357auto x39 = x28 + x38;
358auto x40 = cell[18] - cell[9];
359auto x41 = -cell[2];
360auto x42 = x41 + cell[11] - cell[14] + cell[5];
361auto x43 = x39 + x40 + x42;
362auto x44 = x43*x43;
363auto x45 = x27*x44;
364auto x46 = x29 + x38;
365auto x47 = -cell[3];
366auto x48 = -cell[18] + cell[9];
367auto x49 = x47 + x48;
368auto x50 = x21 - cell[16];
369auto x51 = x46 + x49 + x50;
370auto x52 = x51*x51;
371auto x53 = x27*x52;
372auto x54 = x45 + x53 + V{-1};
373auto x55 = x37 + x54;
374auto x56 = V{0.0555555555555556}*x22;
375auto x57 = V{1} / (x25);
376auto x58 = V{3}*cell[14];
377auto x59 = V{3}*cell[16];
378auto x60 = V{3}*cell[5];
379auto x61 = V{3}*cell[7];
380auto x62 = V{3}*cell[13] - V{3}*cell[4];
381auto x63 = V{3}*cell[15] - V{3}*cell[6];
382auto x64 = x57*(x58 + x59 - x60 - x61 + x62 + x63 + V{3}*cell[10] - V{3}*cell[1]);
383auto x65 = V{3}*x26;
384auto x66 = x36*x65;
385auto x67 = V{3}*cell[18];
386auto x68 = V{3}*cell[9];
387auto x69 = V{3}*cell[17] - V{3}*cell[8];
388auto x70 = x57*(-x58 + x60 + x62 + x67 - x68 + x69 + V{3}*cell[11] - V{3}*cell[2]);
389auto x71 = x44*x65;
390auto x72 = x37 + V{-1};
391auto x73 = x57*(-x59 + x61 + x63 - x67 + x68 + x69 + V{3}*cell[12] - V{3}*cell[3]);
392auto x74 = x52*x65;
393auto x75 = V{0.0277777777777778}*x22;
394auto x76 = V{4.5}*x26;
395auto x77 = x33 + cell[10];
396auto x78 = x40 + x41 + x46 + x77 + cell[11] + V{2}*cell[13] - V{2}*cell[4];
397auto x79 = x76*(x78*x78);
398auto x80 = x55 + x64;
399auto x81 = -x70;
400auto x82 = -cell[17] + cell[8];
401auto x83 = x29 + x48 + x77 + x82 - cell[11] + V{2}*cell[14] + cell[2] - V{2}*cell[5];
402auto x84 = -x83;
403auto x85 = x31 + x34;
404auto x86 = x39 + x49 + x85 + cell[12] + V{2}*cell[15] - V{2}*cell[6];
405auto x87 = x76*(x86*x86);
406auto x88 = -x73;
407auto x89 = x28 - cell[12] + cell[3];
408auto x90 = x40 + x82 + x85 + x89 + V{2}*cell[16] - V{2}*cell[7];
409auto x91 = -x90;
410auto x92 = x30 + x42 + x47 + x50 + V{2}*cell[17] - V{2}*cell[8];
411auto x93 = x76*(x92*x92);
412auto x94 = x55 + x70;
413auto x95 = x32 + x42 + x89 - cell[15] + V{2}*cell[18] + cell[6] - V{2}*cell[9];
414auto x96 = -x95;
415auto x97 = -x45;
416auto x98 = V{1} - x53;
417auto x99 = x97 + x98;
418auto x100 = x64 + x99;
419auto x101 = -x37;
420auto x102 = x101 + x70;
421auto x103 = x101 + x73;
422auto x104 = -x64;
423auto x105 = x55 + x73;
424cell[0] = -x19*cell[0] - V{0.333333333333333}*x22*(x24*x55 + V{1});
425cell[1] = -x19*cell[1] - x56*(x24*(x54 + x64 - x66) + V{1});
426cell[2] = -x19*cell[2] - x56*(x24*(x53 + x70 - x71 + x72) + V{1});
427cell[3] = -x19*cell[3] - x56*(x24*(x45 + x72 + x73 - x74) + V{1});
428cell[4] = -x19*cell[4] - x75*(x24*(x70 - x79 + x80) + V{1});
429cell[5] = -x19*cell[5] - x75*(x24*(-x76*x84*x84 + x80 + x81) + V{1});
430cell[6] = -x19*cell[6] - x75*(x24*(x73 + x80 - x87) + V{1});
431cell[7] = -x19*cell[7] - x75*(x24*(-x76*x91*x91 + x80 + x88) + V{1});
432cell[8] = -x19*cell[8] - x75*(x24*(x73 - x93 + x94) + V{1});
433cell[9] = -x19*cell[9] - x75*(x24*(-x76*x96*x96 + x88 + x94) + V{1});
434cell[10] = -x19*cell[10] + x56*(x24*(x100 + x66) + V{-1});
435cell[11] = -x19*cell[11] + x56*(x24*(x102 + x71 + x98) + V{-1});
436cell[12] = -x19*cell[12] + x56*(x24*(x103 + x74 + x97 + V{1}) + V{-1});
437cell[13] = -x19*cell[13] + x75*(x24*(x100 + x102 + x79) + V{-1});
438cell[14] = -x19*cell[14] - x75*(x24*(x104 - x76*x83*x83 + x94) + V{1});
439cell[15] = -x19*cell[15] + x75*(x24*(x100 + x103 + x87) + V{-1});
440cell[16] = -x19*cell[16] - x75*(x24*(x104 + x105 - x76*x90*x90) + V{1});
441cell[17] = -x19*cell[17] + x75*(x24*(x102 + x73 + x93 + x99) + V{-1});
442cell[18] = -x19*cell[18] - x75*(x24*(x105 - x76*x95*x95 + x81) + V{1});
443return { x25, V{1}*x26*(x36 + x44 + x52) };
444}
445
446};
447
448template <typename... FIELDS>
449struct BGK::type<descriptors::D3Q19<FIELDS...>,momenta::BulkTuple,equilibria::Incompressible> {
450
451template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
452CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
453{
454auto x22 = parameters.template get<olb::descriptors::OMEGA>();
455auto x19 = cell[13] - cell[4];
456auto x20 = cell[15] - cell[6];
457auto x21 = cell[10] + cell[14] + cell[16];
458auto x23 = x19 + x20 + x21 - cell[1] - cell[5] - cell[7];
459auto x24 = x23*x23;
460auto x25 = cell[17] - cell[8];
461auto x26 = cell[11] + cell[18] + cell[5];
462auto x27 = x19 + x25 + x26 - cell[14] - cell[2] - cell[9];
463auto x28 = x27*x27;
464auto x29 = cell[12] + cell[7] + cell[9];
465auto x30 = x20 + x25 + x29 - cell[16] - cell[18] - cell[3];
466auto x31 = x30*x30;
467auto x32 = x22 + V{-1};
468auto x33 = V{0.111111111111111}*cell[10];
469auto x34 = V{0.0555555555555556}*cell[0];
470auto x35 = V{0.0555555555555556}*cell[3];
471auto x36 = V{0.0555555555555556}*cell[12];
472auto x37 = V{0.111111111111111}*cell[13];
473auto x38 = -V{0.0833333333333333}*x31;
474auto x39 = x34 + x35 + x36 - x37 + x38 + V{0.222222222222222}*cell[4];
475auto x40 = V{0.0555555555555556}*cell[2];
476auto x41 = V{0.0555555555555556}*cell[11];
477auto x42 = V{0.111111111111111}*cell[15];
478auto x43 = -V{0.0833333333333333}*x28;
479auto x44 = x40 + x41 - x42 + x43 + V{0.222222222222222}*cell[6];
480auto x45 = V{0.111111111111111}*cell[14];
481auto x46 = -x45 + V{0.222222222222222}*cell[5];
482auto x47 = V{0.111111111111111}*cell[16];
483auto x48 = -x47 + V{0.222222222222222}*cell[7];
484auto x49 = V{0.0555555555555556}*cell[8];
485auto x50 = V{0.0555555555555556}*cell[9];
486auto x51 = V{0.0555555555555556}*cell[17];
487auto x52 = V{0.0555555555555556}*cell[18];
488auto x53 = V{0.166666666666667}*x24 + x49 + x50 + x51 + x52;
489auto x54 = V{0.111111111111111}*cell[11];
490auto x55 = V{0.111111111111111}*cell[5];
491auto x56 = -x55 + V{0.222222222222222}*cell[14];
492auto x57 = V{0.0555555555555556}*cell[1];
493auto x58 = V{0.0555555555555556}*cell[10];
494auto x59 = V{0.111111111111111}*cell[17];
495auto x60 = -V{0.0833333333333333}*x24;
496auto x61 = x57 + x58 - x59 + x60 + V{0.222222222222222}*cell[8];
497auto x62 = V{0.111111111111111}*cell[18];
498auto x63 = -x62 + V{0.222222222222222}*cell[9];
499auto x64 = V{0.0555555555555556}*cell[6];
500auto x65 = V{0.0555555555555556}*cell[7];
501auto x66 = V{0.0555555555555556}*cell[15];
502auto x67 = V{0.0555555555555556}*cell[16];
503auto x68 = V{0.166666666666667}*x28 + x64 + x65 + x66 + x67;
504auto x69 = V{0.111111111111111}*cell[12];
505auto x70 = V{0.111111111111111}*cell[7];
506auto x71 = x34 - x70 + V{0.222222222222222}*cell[16];
507auto x72 = V{0.111111111111111}*cell[9];
508auto x73 = -x72 + V{0.222222222222222}*cell[18];
509auto x74 = V{0.0555555555555556}*cell[4];
510auto x75 = V{0.0555555555555556}*cell[5];
511auto x76 = V{0.0555555555555556}*cell[13];
512auto x77 = V{0.0555555555555556}*cell[14];
513auto x78 = V{0.166666666666667}*x31 + x74 + x75 + x76 + x77;
514auto x79 = V{0.0277777777777778}*cell[0];
515auto x80 = -V{0.0416666666666667}*x24;
516auto x81 = -V{0.0416666666666667}*x28;
517auto x82 = -V{0.0416666666666667}*x31;
518auto x83 = -x52 + x72 + x79 + x80 + x81 + x82;
519auto x84 = -x67 + x70;
520auto x85 = V{0.111111111111111}*cell[1];
521auto x86 = -x58;
522auto x87 = V{0.111111111111111}*cell[8];
523auto x88 = -x51 + x87;
524auto x89 = x85 + x86 + x88;
525auto x90 = V{0.111111111111111}*cell[2];
526auto x91 = -x41;
527auto x92 = V{0.111111111111111}*cell[6];
528auto x93 = -x66 + x92;
529auto x94 = x90 + x91 + x93;
530auto x95 = V{0.0277777777777778}*cell[3];
531auto x96 = V{0.0277777777777778}*cell[12];
532auto x97 = V{1}*cell[10];
533auto x98 = V{1}*cell[17];
534auto x99 = -V{1}*cell[1];
535auto x100 = V{1}*cell[8];
536auto x101 = -x100 + x97 + x98 + x99;
537auto x102 = V{1}*cell[18];
538auto x103 = V{1}*cell[9];
539auto x104 = x102 - x103;
540auto x105 = V{1}*cell[11];
541auto x106 = V{1}*cell[15];
542auto x107 = V{1}*cell[2];
543auto x108 = -x107;
544auto x109 = V{1}*cell[6];
545auto x110 = -x109;
546auto x111 = x105 + x106 + x108 + x110;
547auto x112 = V{1}*cell[16];
548auto x113 = V{1}*cell[7];
549auto x114 = x112 - x113;
550auto x115 = V{4.5}*cell[10];
551auto x116 = V{4.5}*cell[17];
552auto x117 = -V{4.5}*cell[1];
553auto x118 = V{4.5}*cell[8];
554auto x119 = x115 + x116 + x117 - x118;
555auto x120 = V{4.5}*cell[18];
556auto x121 = V{4.5}*cell[9];
557auto x122 = x120 - x121;
558auto x123 = V{4.5}*cell[11];
559auto x124 = V{4.5}*cell[15];
560auto x125 = V{4.5}*cell[2];
561auto x126 = -x125;
562auto x127 = V{4.5}*cell[6];
563auto x128 = -x127;
564auto x129 = x123 + x124 + x126 + x128;
565auto x130 = V{4.5}*cell[16];
566auto x131 = V{4.5}*cell[7];
567auto x132 = x130 - x131;
568auto x133 = x95 + x96 + V{0.0277777777777778}*(x101 + x104 + x111 + x114 + V{2}*cell[13] - V{2}*cell[4])*(x119 + x122 + x129 + x132 + V{9}*cell[13] - V{9}*cell[4]) + V{0.0277777777777778}*cell[14] + V{0.0277777777777778}*cell[5];
569auto x134 = -x49 + x59;
570auto x135 = x134 + x85 + x86;
571auto x136 = -x102 + x103;
572auto x137 = x100 + x97 - x98 + x99;
573auto x138 = -x120 + x121;
574auto x139 = x115 - x116 + x117 + x118;
575auto x140 = x95 + x96 + V{0.0277777777777778}*(-x105 + x106 + x107 + x110 + x114 + x136 + x137 + V{2}*cell[14] - V{2}*cell[5])*(-x123 + x124 + x125 + x128 + x132 + x138 + x139 + V{9}*cell[14] - V{9}*cell[5]) + V{0.0277777777777778}*cell[13] + V{0.0277777777777778}*cell[4];
576auto x141 = -x50 + x62;
577auto x142 = -x40;
578auto x143 = x79 + x80 + x81 + x82;
579auto x144 = x143 + x84;
580auto x145 = x142 + x144 + x54;
581auto x146 = x141 + x143;
582auto x147 = x55 - x77;
583auto x148 = V{0.111111111111111}*cell[3];
584auto x149 = -x36;
585auto x150 = V{0.111111111111111}*cell[4];
586auto x151 = x150 - x76;
587auto x152 = x148 + x149 + x151;
588auto x153 = V{0.0277777777777778}*cell[2];
589auto x154 = V{0.0277777777777778}*cell[11];
590auto x155 = V{1}*cell[14];
591auto x156 = V{1}*cell[5];
592auto x157 = V{1}*cell[13] - V{1}*cell[4];
593auto x158 = x155 - x156 + x157;
594auto x159 = V{1}*cell[12];
595auto x160 = V{1}*cell[3];
596auto x161 = x159 - x160;
597auto x162 = V{4.5}*cell[14];
598auto x163 = V{4.5}*cell[5];
599auto x164 = V{4.5}*cell[13] - V{4.5}*cell[4];
600auto x165 = x162 - x163 + x164;
601auto x166 = V{4.5}*cell[12];
602auto x167 = V{4.5}*cell[3];
603auto x168 = x166 - x167;
604auto x169 = x153 + x154 + V{0.0277777777777778}*(x101 + x136 + x158 + x161 + V{2}*cell[15] - V{2}*cell[6])*(x119 + x138 + x165 + x168 + V{9}*cell[15] - V{9}*cell[6]) + V{0.0277777777777778}*cell[16] + V{0.0277777777777778}*cell[7];
605auto x170 = -x35;
606auto x171 = x151 + x170 + x69;
607auto x172 = -x159 + x160;
608auto x173 = -x166 + x167;
609auto x174 = x153 + x154 + V{0.0277777777777778}*(x104 + x137 + x158 + x172 + V{2}*cell[16] - V{2}*cell[7])*(x122 + x139 + x165 + x173 + V{9}*cell[16] - V{9}*cell[7]) + V{0.0277777777777778}*cell[15] + V{0.0277777777777778}*cell[6];
610auto x175 = V{0.0277777777777778}*cell[1];
611auto x176 = V{0.0277777777777778}*cell[10];
612auto x177 = x45 - x75;
613auto x178 = x175 + x176 + x177;
614auto x179 = -x155 + x156 + x157;
615auto x180 = -x162 + x163 + x164;
616auto x181 = V{0.0277777777777778}*(x111 - x112 + x113 + x161 + x179 + V{2}*cell[17] - V{2}*cell[8])*(x129 - x130 + x131 + x168 + x180 + V{9}*cell[17] - V{9}*cell[8]) + V{0.0277777777777778}*cell[18] + V{0.0277777777777778}*cell[9];
617auto x182 = x47 - x65;
618auto x183 = x143 + x182;
619auto x184 = V{0.0277777777777778}*(x105 - x106 + x108 + x109 + x114 + x172 + x179 + V{2}*cell[18] - V{2}*cell[9])*(x123 - x124 + x126 + x127 + x132 + x173 + x180 + V{9}*cell[18] - V{9}*cell[9]) + V{0.0277777777777778}*cell[17] + V{0.0277777777777778}*cell[8];
620auto x185 = x42 - x64;
621auto x186 = x185 + x90 + x91;
622auto x187 = -x150 + x35 + x36 + x38 + V{0.222222222222222}*cell[13];
623auto x188 = x40 + x41 + x43 - x92 + V{0.222222222222222}*cell[15];
624auto x189 = x34 + x57 + x58 + x60 - x87 + V{0.222222222222222}*cell[17];
625auto x190 = x142 + x54;
626auto x191 = -x57;
627auto x192 = x182 + x191 + x33;
628auto x193 = x37 - x74;
629auto x194 = x170 + x193 + x69;
630auto x195 = x177 + x191 + x33;
631auto x196 = x148 + x149 + x193;
632auto x197 = x147 + x175 + x176;
633auto x198 = x21 + x26 + x29 + cell[0] + cell[13] + cell[15] + cell[17] + cell[1] + cell[2] + cell[3] + cell[4] + cell[6] + cell[8] + V{1};
634auto x0 = x22*(-V{0.5}*x24 - V{0.5}*x28 - V{0.5}*x31 + 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]) - x32*cell[0];
635auto x1 = x22*(-x33 + x39 + x44 + x46 + x48 + x53 + V{0.222222222222222}*cell[1]) - x32*cell[1];
636auto x2 = x22*(x39 - x54 + x56 + x61 + x63 + x68 + V{0.222222222222222}*cell[2]) - x32*cell[2];
637auto x3 = x22*(x44 + x61 - x69 + x71 + x73 + x78 + V{0.222222222222222}*cell[3]) - x32*cell[3];
638auto x4 = x22*(x133 + x83 + x84 + x89 + x94 - V{0.138888888888889}*cell[13] + V{0.194444444444444}*cell[4]) - x32*cell[4];
639auto x5 = x22*(x135 + x140 + x141 + x145 + x93 - V{0.138888888888889}*cell[14] + V{0.194444444444444}*cell[5]) - x32*cell[5];
640auto x6 = x22*(x146 + x147 + x152 + x169 + x89 - V{0.138888888888889}*cell[15] + V{0.194444444444444}*cell[6]) - x32*cell[6];
641auto x7 = x22*(x135 + x147 + x171 + x174 + x83 - V{0.138888888888889}*cell[16] + V{0.194444444444444}*cell[7]) - x32*cell[7];
642auto x8 = x22*(x152 + x178 + x181 + x183 + x94 - V{0.138888888888889}*cell[17] + V{0.194444444444444}*cell[8]) - x32*cell[8];
643auto x9 = x22*(x144 + x171 + x178 + x184 + x186 - V{0.138888888888889}*cell[18] + V{0.194444444444444}*cell[9]) - x32*cell[9];
644auto x10 = x22*(x187 + x188 + x53 + x56 + x71 - x85 + V{0.222222222222222}*cell[10]) - x32*cell[10];
645auto x11 = x22*(x187 + x189 + x46 + x68 + x73 - x90 + V{0.222222222222222}*cell[11]) - x32*cell[11];
646auto x12 = x22*(-x148 + x188 + x189 + x48 + x63 + x78 + V{0.222222222222222}*cell[12]) - x32*cell[12];
647auto x13 = x22*(x133 + x134 + x146 + x185 + x190 + x192 + V{0.194444444444444}*cell[13] - V{0.138888888888889}*cell[4]) - x32*cell[13];
648auto x14 = x22*(x140 + x186 + x192 + x83 + x88 + V{0.194444444444444}*cell[14] - V{0.138888888888889}*cell[5]) - x32*cell[14];
649auto x15 = x22*(x134 + x169 + x194 + x195 + x83 + V{0.194444444444444}*cell[15] - V{0.138888888888889}*cell[6]) - x32*cell[15];
650auto x16 = x22*(x146 + x174 + x195 + x196 + x88 + V{0.194444444444444}*cell[16] - V{0.138888888888889}*cell[7]) - x32*cell[16];
651auto x17 = x22*(x145 + x181 + x185 + x194 + x197 + V{0.194444444444444}*cell[17] - V{0.138888888888889}*cell[8]) - x32*cell[17];
652auto x18 = x22*(x183 + x184 + x190 + x196 + x197 + x93 + V{0.194444444444444}*cell[18] - V{0.138888888888889}*cell[9]) - x32*cell[18];
653cell[0] = x0;
654cell[1] = x1;
655cell[2] = x2;
656cell[3] = x3;
657cell[4] = x4;
658cell[5] = x5;
659cell[6] = x6;
660cell[7] = x7;
661cell[8] = x8;
662cell[9] = x9;
663cell[10] = x10;
664cell[11] = x11;
665cell[12] = x12;
666cell[13] = x13;
667cell[14] = x14;
668cell[15] = x15;
669cell[16] = x16;
670cell[17] = x17;
671cell[18] = x18;
672return { x198, V{1}*(x24 + x28 + x31)/((x198)*(x198)) };
673}
674
675};
676
677template <typename... FIELDS>
678struct BGK::type<descriptors::D3Q27<FIELDS...>,momenta::BulkTuple,equilibria::SecondOrder> {
679
680template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
681CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
682{
683auto x30 = parameters.template get<olb::descriptors::OMEGA>();
684auto x27 = x30 + V{-1};
685auto x28 = cell[8] + cell[9];
686auto x29 = cell[15] + cell[21];
687auto x31 = cell[11] + cell[26];
688auto x32 = x28 + x29 + x31 + cell[0] + cell[10] + cell[12] + cell[13] + cell[14] + cell[16] + cell[17] + cell[18] + cell[19] + cell[1] + cell[20] + cell[22] + cell[23] + cell[24] + cell[25] + cell[2] + cell[3] + cell[4] + cell[5] + cell[6] + cell[7];
689auto x33 = x32 + V{1};
690auto x34 = x32 + V{1};
691auto x35 = V{1} / ((x34)*(x34));
692auto x36 = V{1.5}*x35;
693auto x37 = -cell[17];
694auto x38 = -cell[19];
695auto x39 = x37 + x38 + cell[4] + cell[6];
696auto x40 = -cell[24];
697auto x41 = cell[10] - cell[23];
698auto x42 = x40 + x41 + cell[11];
699auto x43 = cell[12] - cell[25];
700auto x44 = -cell[14];
701auto x45 = -cell[20] + cell[7];
702auto x46 = x44 + x45 + cell[1];
703auto x47 = -cell[18] + cell[5];
704auto x48 = cell[13] - cell[26];
705auto x49 = x39 + x42 + x43 + x46 + x47 + x48;
706auto x50 = -x49;
707auto x51 = x50*x50;
708auto x52 = x36*x51;
709auto x53 = -cell[13];
710auto x54 = -cell[21];
711auto x55 = x53 + x54 + cell[26] + cell[8];
712auto x56 = -cell[22];
713auto x57 = x37 + cell[4];
714auto x58 = x56 + x57 + cell[9];
715auto x59 = -cell[15];
716auto x60 = x59 + cell[18] + cell[2] - cell[5];
717auto x61 = -cell[12] + cell[25];
718auto x62 = x42 + x55 + x58 + x60 + x61;
719auto x63 = -x62;
720auto x64 = x63*x63;
721auto x65 = x36*x64;
722auto x66 = -cell[16];
723auto x67 = x43 + x66 + cell[3];
724auto x68 = -cell[9];
725auto x69 = x38 + cell[6];
726auto x70 = x68 + x69 + cell[22];
727auto x71 = cell[20] - cell[7];
728auto x72 = x41 - cell[11] + cell[24];
729auto x73 = x55 + x67 + x70 + x71 + x72;
730auto x74 = -x73;
731auto x75 = x74*x74;
732auto x76 = x36*x75;
733auto x77 = x65 + x76 + V{-1};
734auto x78 = x52 + x77;
735auto x79 = V{0.0740740740740741}*x30;
736auto x80 = V{1} / (x34);
737auto x81 = V{3}*cell[5];
738auto x82 = V{3}*cell[7];
739auto x83 = V{3}*cell[13];
740auto x84 = V{3}*cell[18];
741auto x85 = V{3}*cell[20];
742auto x86 = V{3}*cell[26];
743auto x87 = V{3}*cell[10];
744auto x88 = V{3}*cell[11];
745auto x89 = -V{3}*cell[23];
746auto x90 = V{3}*cell[24];
747auto x91 = x87 + x88 + x89 - x90 - V{3}*cell[17] + V{3}*cell[4];
748auto x92 = V{3}*cell[12];
749auto x93 = V{3}*cell[25];
750auto x94 = x92 - x93 - V{3}*cell[19] + V{3}*cell[6];
751auto x95 = x81 + x82 + x83 - x84 - x85 - x86 + x91 + x94 - V{3}*cell[14] + V{3}*cell[1];
752auto x96 = -x80*x95;
753auto x97 = V{3}*x35;
754auto x98 = V{3}*cell[9];
755auto x99 = V{3}*cell[22];
756auto x100 = -x83 + x86 - V{3}*cell[21] + V{3}*cell[8];
757auto x101 = x100 - x81 + x84 + x91 - x92 + x93 + x98 - x99 - V{3}*cell[15] + V{3}*cell[2];
758auto x102 = -x101*x80;
759auto x103 = x52 + V{-1};
760auto x104 = x100 - x82 + x85 + x87 - x88 + x89 + x90 + x94 - x98 + x99 - V{3}*cell[16] + V{3}*cell[3];
761auto x105 = -x104*x80;
762auto x106 = V{0.0185185185185185}*x30;
763auto x107 = V{4.5}*x35;
764auto x108 = V{2}*cell[11] - V{2}*cell[24];
765auto x109 = V{2}*cell[10] - V{2}*cell[23];
766auto x110 = x109 + x54;
767auto x111 = x59 + cell[2];
768auto x112 = x111 - V{2}*cell[17] + V{2}*cell[4];
769auto x113 = x108 + x110 + x112 + x28 + x46 + x56 + x69;
770auto x114 = -x113;
771auto x115 = x78 + x96;
772auto x116 = x102 + x115;
773auto x117 = V{2}*cell[25];
774auto x118 = V{2}*cell[12];
775auto x119 = -x117 + x118;
776auto x120 = V{2}*cell[26];
777auto x121 = V{2}*cell[13];
778auto x122 = -x120 + x121 - cell[8];
779auto x123 = V{2}*cell[18];
780auto x124 = V{2}*cell[5];
781auto x125 = -x123 + x124 - cell[2];
782auto x126 = x119 + x122 + x125 + x29 + x46 + x70;
783auto x127 = -x102;
784auto x128 = x115 + x127;
785auto x129 = x44 + cell[1];
786auto x130 = x129 + x47;
787auto x131 = x66 + cell[3];
788auto x132 = -V{2}*cell[19] + V{2}*cell[6];
789auto x133 = x131 + x132;
790auto x134 = x110 + x119 + x130 + x133 + x57 + x68 + cell[22] + cell[8];
791auto x135 = -x134;
792auto x136 = -x105;
793auto x137 = -cell[3];
794auto x138 = x108 + x137 + cell[16];
795auto x139 = V{2}*cell[20];
796auto x140 = V{2}*cell[7];
797auto x141 = -x139 + x140;
798auto x142 = x122 + x130 + x138 + x141 + x58 + cell[21];
799auto x143 = -V{2}*cell[21] + V{2}*cell[8];
800auto x144 = x131 + x143;
801auto x145 = x109 + x120 - x121 + x144 + x39 + x60 + x71;
802auto x146 = -x145;
803auto x147 = x102 + x78;
804auto x148 = x105 + x147;
805auto x149 = V{2}*cell[22];
806auto x150 = V{2}*cell[9];
807auto x151 = -x149 + x150;
808auto x152 = x117 - x118 + x138 + x151 + x45 + x57 + x60 + cell[19] - cell[6];
809auto x153 = V{0.00462962962962963}*x30;
810auto x154 = x112 + x129;
811auto x155 = x132 + x143 + x154 + x31 + x40 + x53 + x67 + V{3}*cell[10] - V{3}*cell[23];
812auto x156 = -x155;
813auto x157 = x137 + x141 + x151 + x154 + x41 + x48 + x61 + V{3}*cell[11] + cell[16] - V{3}*cell[24];
814auto x158 = x125 + x129 + x133 + x149 - x150 + x48 + x72 + V{3}*cell[12] + cell[15] - V{3}*cell[25];
815auto x159 = x80*x95;
816auto x160 = x111 + x123 - x124 + x139 - x140 + x144 + x61 + x72 - V{3}*cell[13] + cell[14] - cell[1] + V{3}*cell[26];
817auto x161 = -x160;
818auto x162 = x104*x80;
819auto x163 = x62*x62;
820auto x164 = x163*x36;
821auto x165 = x73*x73;
822auto x166 = x165*x36 + V{-1};
823auto x167 = x164 + x166;
824auto x168 = x101*x80;
825auto x169 = x49*x49;
826auto x170 = x169*x36;
827auto x171 = x168 + x170;
828auto x172 = x162 + x167 + x171;
829auto x173 = x159 + x167;
830auto x174 = x162 + x170;
831auto x175 = x171 + x173;
832auto x176 = -x96;
833auto x177 = -x126;
834auto x178 = x173 + x174;
835auto x179 = -x142;
836auto x180 = x105 + x78;
837auto x181 = -x152;
838auto x182 = -x157;
839auto x183 = -x158;
840cell[0] = -x27*cell[0] - V{0.296296296296296}*x30*(x33*x78 + V{1});
841cell[1] = -x27*cell[1] - x79*(x33*(-x51*x97 + x77 + x96) + V{1});
842cell[2] = -x27*cell[2] - x79*(x33*(x102 + x103 - x64*x97 + x76) + V{1});
843cell[3] = -x27*cell[3] - x79*(x33*(x103 + x105 + x65 - x75*x97) + V{1});
844cell[4] = -x106*(x33*(-x107*x114*x114 + x116) + V{1}) - x27*cell[4];
845cell[5] = -x106*(x33*(-x107*x126*x126 + x128) + V{1}) - x27*cell[5];
846cell[6] = -x106*(x33*(x105 - x107*x135*x135 + x115) + V{1}) - x27*cell[6];
847cell[7] = -x106*(x33*(-x107*x142*x142 + x115 + x136) + V{1}) - x27*cell[7];
848cell[8] = -x106*(x33*(-x107*x146*x146 + x148) + V{1}) - x27*cell[8];
849cell[9] = -x106*(x33*(-x107*x152*x152 + x136 + x147) + V{1}) - x27*cell[9];
850cell[10] = -x153*(x33*(x105 - x107*x156*x156 + x116) + V{1}) - x27*cell[10];
851cell[11] = -x153*(x33*(-x107*x157*x157 + x116 + x136) + V{1}) - x27*cell[11];
852cell[12] = -x153*(x33*(x105 - x107*x158*x158 + x128) + V{1}) - x27*cell[12];
853cell[13] = -x153*(x33*(-x107*x161*x161 - x159 + x172) + V{1}) - x27*cell[13];
854cell[14] = -x27*cell[14] - x79*(x33*(-x169*x97 + x173) + V{1});
855cell[15] = -x27*cell[15] - x79*(x33*(-x163*x97 + x166 + x171) + V{1});
856cell[16] = -x27*cell[16] - x79*(x33*(x164 - x165*x97 + x174 + V{-1}) + V{1});
857cell[17] = -x106*(x33*(-x107*x113*x113 + x175) + V{1}) - x27*cell[17];
858cell[18] = -x106*(x33*(-x107*x177*x177 + x147 + x176) + V{1}) - x27*cell[18];
859cell[19] = -x106*(x33*(-x107*x134*x134 + x178) + V{1}) - x27*cell[19];
860cell[20] = -x106*(x33*(-x107*x179*x179 + x176 + x180) + V{1}) - x27*cell[20];
861cell[21] = -x106*(x33*(-x107*x145*x145 + x172) + V{1}) - x27*cell[21];
862cell[22] = -x106*(x33*(-x107*x181*x181 + x127 + x180) + V{1}) - x27*cell[22];
863cell[23] = -x153*(x33*(-x107*x155*x155 + x162 + x175) + V{1}) - x27*cell[23];
864cell[24] = -x153*(x33*(-x107*x182*x182 - x162 + x175) + V{1}) - x27*cell[24];
865cell[25] = -x153*(x33*(-x107*x183*x183 - x168 + x178) + V{1}) - x27*cell[25];
866cell[26] = -x153*(x33*(-x107*x160*x160 + x148 + x176) + V{1}) - x27*cell[26];
867return { x34, V{1}*x35*(x163 + x165 + x169) };
868}
869
870};
871
872template <typename... FIELDS>
873struct BGK::type<descriptors::D3Q27<FIELDS...>,momenta::BulkTuple,equilibria::Incompressible> {
874
875template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
876CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
877{
878auto x30 = parameters.template get<olb::descriptors::OMEGA>();
879auto x27 = V{0.296296296296296}*cell[16];
880auto x28 = -cell[23];
881auto x29 = x28 + cell[10] - cell[13] - cell[21] + cell[26] + cell[8];
882auto x31 = cell[11] - cell[17] - cell[24] + cell[4];
883auto x32 = cell[18] + cell[25] + cell[2] + cell[9];
884auto x33 = x29 + x31 + x32 - cell[12] - cell[15] - cell[22] - cell[5];
885auto x34 = x33*x33;
886auto x35 = cell[12] - cell[19] - cell[25] + cell[6];
887auto x36 = cell[20] + cell[22] + cell[24] + cell[3];
888auto x37 = x29 + x35 + x36 - cell[11] - cell[16] - cell[7] - cell[9];
889auto x38 = x37*x37;
890auto x39 = cell[10] + cell[13] + cell[1] + cell[5] + cell[7];
891auto x40 = x28 + x31 + x35 + x39 - cell[14] - cell[18] - cell[20] - cell[26];
892auto x41 = x40*x40;
893auto x42 = V{0.296296296296296}*cell[4];
894auto x43 = V{0.296296296296296}*cell[5];
895auto x44 = V{0.296296296296296}*cell[6];
896auto x45 = V{0.296296296296296}*cell[7];
897auto x46 = V{0.296296296296296}*cell[10];
898auto x47 = V{0.296296296296296}*cell[11];
899auto x48 = V{0.296296296296296}*cell[12];
900auto x49 = V{0.296296296296296}*cell[13];
901auto x50 = x42 + x43 + x44 + x45 + x46 + x47 + x48 + x49 + V{0.296296296296296}*cell[1];
902auto x51 = V{0.296296296296296}*cell[8];
903auto x52 = V{0.296296296296296}*cell[9];
904auto x53 = V{0.296296296296296}*cell[18];
905auto x54 = V{0.296296296296296}*cell[25];
906auto x55 = V{0.296296296296296}*cell[26];
907auto x56 = x51 + x52 + x53 + x54 + x55 + V{0.296296296296296}*cell[2];
908auto x57 = V{0.296296296296296}*cell[20];
909auto x58 = V{0.296296296296296}*cell[22];
910auto x59 = V{0.296296296296296}*cell[24];
911auto x60 = x57 + x58 + x59 + V{0.296296296296296}*cell[3];
912auto x61 = V{0.296296296296296}*cell[17];
913auto x62 = V{0.296296296296296}*cell[19];
914auto x63 = V{0.296296296296296}*cell[23];
915auto x64 = x61 + x62 + x63 + V{0.296296296296296}*cell[14];
916auto x65 = V{0.296296296296296}*cell[21];
917auto x66 = x65 + V{0.296296296296296}*cell[15];
918auto x67 = x30 + V{-1};
919auto x68 = -V{0.148148148148148}*cell[20];
920auto x69 = V{0.0740740740740741}*cell[0];
921auto x70 = -V{0.148148148148148}*cell[23];
922auto x71 = -V{0.148148148148148}*cell[24];
923auto x72 = -V{0.111111111111111}*x38;
924auto x73 = x69 + x70 + x71 + x72 - V{0.148148148148148}*cell[17];
925auto x74 = -V{0.148148148148148}*cell[25];
926auto x75 = -V{0.111111111111111}*x34;
927auto x76 = x74 + x75 - V{0.148148148148148}*cell[19];
928auto x77 = -V{0.148148148148148}*cell[26];
929auto x78 = x77 - V{0.148148148148148}*cell[18];
930auto x79 = V{0.0740740740740741}*cell[2];
931auto x80 = V{0.0740740740740741}*cell[3];
932auto x81 = x79 + x80;
933auto x82 = V{0.0740740740740741}*cell[15];
934auto x83 = V{0.0740740740740741}*cell[16];
935auto x84 = x82 + x83;
936auto x85 = V{0.0740740740740741}*cell[8];
937auto x86 = V{0.0740740740740741}*cell[9];
938auto x87 = x85 + x86;
939auto x88 = V{0.0740740740740741}*cell[21];
940auto x89 = V{0.0740740740740741}*cell[22];
941auto x90 = x88 + x89;
942auto x91 = V{0.222222222222222}*x41 + x81 + x84 + x87 + x90;
943auto x92 = -V{0.148148148148148}*cell[12];
944auto x93 = -V{0.148148148148148}*cell[13];
945auto x94 = x92 + x93 - V{0.148148148148148}*cell[5];
946auto x95 = -V{0.111111111111111}*x41;
947auto x96 = x46 + x95 - V{0.148148148148148}*cell[21];
948auto x97 = x47 - V{0.148148148148148}*cell[22];
949auto x98 = V{0.0740740740740741}*cell[1];
950auto x99 = x80 + x98;
951auto x100 = V{0.0740740740740741}*cell[6];
952auto x101 = V{0.0740740740740741}*cell[20];
953auto x102 = x100 + x101;
954auto x103 = V{0.0740740740740741}*cell[14];
955auto x104 = x103 + x83;
956auto x105 = V{0.0740740740740741}*cell[7];
957auto x106 = V{0.0740740740740741}*cell[19];
958auto x107 = x105 + x106;
959auto x108 = x102 + x104 + x107 + V{0.222222222222222}*x34 + x99;
960auto x109 = -V{0.148148148148148}*cell[11];
961auto x110 = x109 + x55 + x69 - V{0.148148148148148}*cell[7];
962auto x111 = x48 - V{0.148148148148148}*cell[9];
963auto x112 = x79 + x98;
964auto x113 = V{0.0740740740740741}*cell[4];
965auto x114 = V{0.0740740740740741}*cell[5];
966auto x115 = x113 + x114;
967auto x116 = x103 + x82;
968auto x117 = V{0.0740740740740741}*cell[17];
969auto x118 = V{0.0740740740740741}*cell[18];
970auto x119 = x117 + x118;
971auto x120 = x112 + x115 + x116 + x119 + V{0.222222222222222}*x38;
972auto x121 = V{0.0185185185185185}*cell[0];
973auto x122 = V{0.0185185185185185}*cell[26];
974auto x123 = -V{0.037037037037037}*cell[22];
975auto x124 = -V{0.0277777777777778}*x34;
976auto x125 = -V{0.0277777777777778}*x38;
977auto x126 = -V{0.0277777777777778}*x41;
978auto x127 = x121 + x122 + x123 + x124 + x125 + x126;
979auto x128 = V{0.0185185185185185}*cell[25];
980auto x129 = -V{0.037037037037037}*cell[21];
981auto x130 = x128 + x129;
982auto x131 = V{0.12962962962963}*cell[10];
983auto x132 = -V{0.037037037037037}*cell[14];
984auto x133 = -V{0.0925925925925926}*cell[23];
985auto x134 = x131 + x132 + x133;
986auto x135 = -V{0.037037037037037}*cell[15];
987auto x136 = -V{0.037037037037037}*cell[19];
988auto x137 = x135 + x136;
989auto x138 = -V{0.037037037037037}*cell[20];
990auto x139 = V{0.12962962962963}*cell[11] - V{0.0925925925925926}*cell[24];
991auto x140 = x138 + x139;
992auto x141 = x100 + x105;
993auto x142 = V{1}*cell[6];
994auto x143 = V{1}*cell[7];
995auto x144 = V{1}*cell[19];
996auto x145 = -x144;
997auto x146 = V{1}*cell[20];
998auto x147 = -x146;
999auto x148 = V{1}*cell[1];
1000auto x149 = V{1}*cell[14];
1001auto x150 = x148 - x149;
1002auto x151 = x142 + x143 + x145 + x147 + x150;
1003auto x152 = V{1}*cell[8];
1004auto x153 = V{2}*cell[10];
1005auto x154 = V{1}*cell[21];
1006auto x155 = -V{2}*cell[23];
1007auto x156 = x152 + x153 - x154 + x155;
1008auto x157 = V{1}*cell[9];
1009auto x158 = V{2}*cell[11];
1010auto x159 = V{1}*cell[22];
1011auto x160 = -V{2}*cell[24];
1012auto x161 = x157 + x158 - x159 + x160;
1013auto x162 = V{1}*cell[2];
1014auto x163 = V{1}*cell[15];
1015auto x164 = x162 - x163;
1016auto x165 = x164 - V{2}*cell[17] + V{2}*cell[4];
1017auto x166 = V{4.5}*cell[6];
1018auto x167 = V{4.5}*cell[7];
1019auto x168 = V{4.5}*cell[19];
1020auto x169 = -x168;
1021auto x170 = V{4.5}*cell[20];
1022auto x171 = -x170;
1023auto x172 = V{4.5}*cell[1];
1024auto x173 = V{4.5}*cell[14];
1025auto x174 = x172 - x173;
1026auto x175 = x166 + x167 + x169 + x171 + x174;
1027auto x176 = V{4.5}*cell[8];
1028auto x177 = V{9}*cell[10];
1029auto x178 = V{4.5}*cell[21];
1030auto x179 = -V{9}*cell[23];
1031auto x180 = x176 + x177 - x178 + x179;
1032auto x181 = V{4.5}*cell[9];
1033auto x182 = V{9}*cell[11];
1034auto x183 = V{4.5}*cell[22];
1035auto x184 = -V{9}*cell[24];
1036auto x185 = x181 + x182 - x183 + x184;
1037auto x186 = V{4.5}*cell[2];
1038auto x187 = V{4.5}*cell[15];
1039auto x188 = x186 - x187;
1040auto x189 = x188 - V{9}*cell[17] + V{9}*cell[4];
1041auto x190 = V{0.0185185185185185}*cell[3];
1042auto x191 = V{0.0185185185185185}*cell[13];
1043auto x192 = x190 + x191;
1044auto x193 = V{0.0185185185185185}*cell[12];
1045auto x194 = V{0.0185185185185185}*cell[16];
1046auto x195 = x193 + x194;
1047auto x196 = x192 + x195 + V{0.0185185185185185}*(x151 + x156 + x161 + x165)*(x175 + x180 + x185 + x189) + V{0.0185185185185185}*cell[18] + V{0.0185185185185185}*cell[5];
1048auto x197 = V{0.0185185185185185}*cell[24];
1049auto x198 = -V{0.037037037037037}*cell[8];
1050auto x199 = x197 + x198;
1051auto x200 = -V{0.037037037037037}*cell[9];
1052auto x201 = V{0.0185185185185185}*cell[23];
1053auto x202 = x121 + x124 + x125 + x126;
1054auto x203 = x201 + x202;
1055auto x204 = x200 + x203;
1056auto x205 = -V{0.037037037037037}*cell[2];
1057auto x206 = x205 + x90;
1058auto x207 = V{0.12962962962963}*cell[13];
1059auto x208 = -V{0.0925925925925926}*cell[26];
1060auto x209 = x138 + x207 + x208;
1061auto x210 = x132 + x98;
1062auto x211 = V{0.12962962962963}*cell[12] - V{0.0925925925925926}*cell[25];
1063auto x212 = x136 + x211 + x82;
1064auto x213 = V{2}*cell[12];
1065auto x214 = V{2}*cell[25];
1066auto x215 = -x157 + x159 + x213 - x214;
1067auto x216 = V{2}*cell[13];
1068auto x217 = V{2}*cell[26];
1069auto x218 = -x152 + x154 + x216 - x217;
1070auto x219 = V{2}*cell[5];
1071auto x220 = V{2}*cell[18];
1072auto x221 = -x162 + x163 + x219 - x220;
1073auto x222 = V{9}*cell[12];
1074auto x223 = V{9}*cell[25];
1075auto x224 = -x181 + x183 + x222 - x223;
1076auto x225 = V{9}*cell[13];
1077auto x226 = V{9}*cell[26];
1078auto x227 = -x176 + x178 + x225 - x226;
1079auto x228 = V{9}*cell[5];
1080auto x229 = V{9}*cell[18];
1081auto x230 = -x186 + x187 + x228 - x229;
1082auto x231 = V{0.0185185185185185}*cell[11];
1083auto x232 = x190 + x231;
1084auto x233 = V{0.0185185185185185}*cell[10];
1085auto x234 = x194 + x233;
1086auto x235 = x232 + x234 + V{0.0185185185185185}*(x151 + x215 + x218 + x221)*(x175 + x224 + x227 + x230) + V{0.0185185185185185}*cell[17] + V{0.0185185185185185}*cell[4];
1087auto x236 = V{0.0185185185185185}*cell[15];
1088auto x237 = x197 + x236;
1089auto x238 = -V{0.037037037037037}*cell[17];
1090auto x239 = x191 + x238;
1091auto x240 = x200 + x202;
1092auto x241 = V{0.0185185185185185}*cell[2];
1093auto x242 = x122 + x241;
1094auto x243 = x231 + x242;
1095auto x244 = -V{0.037037037037037}*cell[16];
1096auto x245 = -V{0.037037037037037}*cell[18];
1097auto x246 = x244 + x245;
1098auto x247 = x85 + x89;
1099auto x248 = -V{1}*cell[17] + V{1}*cell[4];
1100auto x249 = V{1}*cell[3];
1101auto x250 = V{1}*cell[16];
1102auto x251 = x249 - x250;
1103auto x252 = x248 + x251;
1104auto x253 = V{1}*cell[5];
1105auto x254 = V{1}*cell[18];
1106auto x255 = x150 + x253 - x254;
1107auto x256 = -V{2}*cell[19] + V{2}*cell[6];
1108auto x257 = -V{4.5}*cell[17] + V{4.5}*cell[4];
1109auto x258 = V{4.5}*cell[3];
1110auto x259 = V{4.5}*cell[16];
1111auto x260 = x258 - x259;
1112auto x261 = x257 + x260;
1113auto x262 = V{4.5}*cell[5];
1114auto x263 = V{4.5}*cell[18];
1115auto x264 = x174 + x262 - x263;
1116auto x265 = -V{9}*cell[19] + V{9}*cell[6];
1117auto x266 = V{0.0185185185185185}*(x156 + x215 + x252 + x255 + x256)*(x180 + x224 + x261 + x264 + x265) + V{0.0185185185185185}*cell[20] + V{0.0185185185185185}*cell[7];
1118auto x267 = x123 + x203;
1119auto x268 = x128 + x241;
1120auto x269 = x233 + x268;
1121auto x270 = -V{0.037037037037037}*cell[3];
1122auto x271 = x270 + x83;
1123auto x272 = x86 + x88;
1124auto x273 = -x249;
1125auto x274 = x248 + x250 + x273;
1126auto x275 = V{2}*cell[7];
1127auto x276 = V{2}*cell[20];
1128auto x277 = x275 - x276;
1129auto x278 = -x258;
1130auto x279 = x257 + x259 + x278;
1131auto x280 = V{9}*cell[7];
1132auto x281 = V{9}*cell[20];
1133auto x282 = x280 - x281;
1134auto x283 = x193 + x236;
1135auto x284 = x283 + V{0.0185185185185185}*(x161 + x218 + x255 + x274 + x277)*(x185 + x227 + x264 + x279 + x282) + V{0.0185185185185185}*cell[19] + V{0.0185185185185185}*cell[6];
1136auto x285 = -V{0.037037037037037}*cell[7];
1137auto x286 = x128 + x285;
1138auto x287 = -V{0.037037037037037}*cell[5];
1139auto x288 = x231 + x287;
1140auto x289 = -V{0.0925925925925926}*cell[13] + V{0.12962962962963}*cell[26];
1141auto x290 = x244 + x289;
1142auto x291 = x113 + x118;
1143auto x292 = -V{2}*cell[21] + V{2}*cell[8];
1144auto x293 = x164 - x253 + x254;
1145auto x294 = -V{9}*cell[21] + V{9}*cell[8];
1146auto x295 = x188 - x262 + x263;
1147auto x296 = V{0.0185185185185185}*cell[1];
1148auto x297 = x193 + x296;
1149auto x298 = V{0.0185185185185185}*cell[14];
1150auto x299 = x197 + x298;
1151auto x300 = x202 + x297 + x299 + V{0.0185185185185185}*(x142 - x143 + x145 + x146 + x153 + x155 - x216 + x217 + x252 + x292 + x293)*(x166 - x167 + x169 + x170 + x177 + x179 - x225 + x226 + x261 + x294 + x295) + V{0.0185185185185185}*cell[22] + V{0.0185185185185185}*cell[9];
1152auto x301 = -V{0.037037037037037}*cell[6];
1153auto x302 = x122 + x301;
1154auto x303 = -V{0.0925925925925926}*cell[12] + V{0.12962962962963}*cell[25];
1155auto x304 = x135 + x303 + x79;
1156auto x305 = V{2}*cell[9];
1157auto x306 = V{2}*cell[22];
1158auto x307 = x305 - x306;
1159auto x308 = V{9}*cell[9];
1160auto x309 = V{9}*cell[22];
1161auto x310 = x308 - x309;
1162auto x311 = x233 + x296;
1163auto x312 = x203 + x298 + x311 + V{0.0185185185185185}*(-x142 + x143 + x144 + x147 + x158 + x160 - x213 + x214 + x274 + x293 + x307)*(-x166 + x167 + x168 + x171 + x182 + x184 - x222 + x223 + x279 + x295 + x310) + V{0.0185185185185185}*cell[21] + V{0.0185185185185185}*cell[8];
1164auto x313 = V{1}*cell[11];
1165auto x314 = V{1}*cell[12];
1166auto x315 = V{1}*cell[26];
1167auto x316 = V{1}*cell[13];
1168auto x317 = V{1}*cell[24];
1169auto x318 = V{1}*cell[25];
1170auto x319 = x150 + x165;
1171auto x320 = x251 + x292;
1172auto x321 = V{4.5}*cell[11];
1173auto x322 = V{4.5}*cell[12];
1174auto x323 = V{4.5}*cell[26];
1175auto x324 = V{4.5}*cell[13];
1176auto x325 = V{4.5}*cell[24];
1177auto x326 = V{4.5}*cell[25];
1178auto x327 = x174 + x189;
1179auto x328 = x260 + x294;
1180auto x329 = V{0.00462962962962963}*(x256 + x313 + x314 + x315 - x316 - x317 - x318 + x319 + x320 + V{3}*cell[10] - V{3}*cell[23])*(x265 + x321 + x322 + x323 - x324 - x325 - x326 + x327 + x328 + V{13.5}*cell[10] - V{13.5}*cell[23]);
1181auto x330 = V{0.00462962962962963}*cell[0];
1182auto x331 = V{0.00462962962962963}*cell[9];
1183auto x332 = V{0.00462962962962963}*cell[22];
1184auto x333 = -V{0.00925925925925926}*cell[14];
1185auto x334 = -V{0.00925925925925926}*cell[24];
1186auto x335 = -V{0.00925925925925926}*cell[25];
1187auto x336 = -V{0.00694444444444444}*x34;
1188auto x337 = -V{0.00694444444444444}*x38;
1189auto x338 = -V{0.00694444444444444}*x41;
1190auto x339 = x330 + x331 + x332 + x333 + x334 + x335 + x336 + x337 + x338;
1191auto x340 = V{0.00462962962962963}*cell[5];
1192auto x341 = V{0.00462962962962963}*cell[18];
1193auto x342 = -V{0.00925925925925926}*cell[13];
1194auto x343 = -V{0.00925925925925926}*cell[16];
1195auto x344 = x340 + x341 + x342 + x343;
1196auto x345 = V{0.00462962962962963}*cell[7];
1197auto x346 = V{0.00462962962962963}*cell[20];
1198auto x347 = -V{0.00925925925925926}*cell[15];
1199auto x348 = x345 + x346 + x347;
1200auto x349 = -V{0.0231481481481481}*cell[17] + V{0.0324074074074074}*cell[4];
1201auto x350 = -V{0.0231481481481481}*cell[19] + V{0.0324074074074074}*cell[6];
1202auto x351 = -V{0.0231481481481481}*cell[21] + V{0.0324074074074074}*cell[8];
1203auto x352 = V{1}*cell[10];
1204auto x353 = -V{1}*cell[23];
1205auto x354 = -x315 + x316 + x352 + x353;
1206auto x355 = -x314 + x318;
1207auto x356 = V{4.5}*cell[10];
1208auto x357 = -V{4.5}*cell[23];
1209auto x358 = -x323 + x324 + x356 + x357;
1210auto x359 = -x322 + x326;
1211auto x360 = V{0.00462962962962963}*(x250 + x273 + x277 + x307 + x319 + x354 + x355 + V{3}*cell[11] - V{3}*cell[24])*(x259 + x278 + x282 + x310 + x327 + x358 + x359 + V{13.5}*cell[11] - V{13.5}*cell[24]);
1212auto x361 = V{0.00462962962962963}*cell[6];
1213auto x362 = V{0.00462962962962963}*cell[19];
1214auto x363 = -V{0.00925925925925926}*cell[3];
1215auto x364 = x296 + x361 + x362 + x363 - V{0.0231481481481481}*cell[20] + V{0.0324074074074074}*cell[7];
1216auto x365 = V{0.00462962962962963}*cell[8];
1217auto x366 = V{0.00462962962962963}*cell[21];
1218auto x367 = -V{0.00925925925925926}*cell[23];
1219auto x368 = -V{0.00925925925925926}*cell[26];
1220auto x369 = x330 + x333 + x336 + x337 + x338 + x365 + x366 + x367 + x368;
1221auto x370 = -V{0.0231481481481481}*cell[22] + V{0.0324074074074074}*cell[9];
1222auto x371 = -V{0.00925925925925926}*cell[12];
1223auto x372 = x347 + x371;
1224auto x373 = x191 + x340 + x341;
1225auto x374 = -V{0.00925925925925926}*cell[2];
1226auto x375 = x374 + V{0.0324074074074074}*cell[22] - V{0.0231481481481481}*cell[9];
1227auto x376 = V{0.00462962962962963}*cell[4];
1228auto x377 = V{0.00462962962962963}*cell[17];
1229auto x378 = -x313 + x317;
1230auto x379 = -x321 + x325;
1231auto x380 = x376 + x377 + V{0.00462962962962963}*(x150 + x221 + x251 + x256 - x305 + x306 + x354 + x378 + V{3}*cell[12] - V{3}*cell[25])*(x174 + x230 + x260 + x265 - x308 + x309 + x358 + x379 + V{13.5}*cell[12] - V{13.5}*cell[25]);
1232auto x381 = -V{0.00925925925925926}*cell[11];
1233auto x382 = x343 + x381;
1234auto x383 = -V{0.0231481481481481}*cell[18] + V{0.0324074074074074}*cell[5];
1235auto x384 = x237 + x345 + x346;
1236auto x385 = x201 - V{0.00925925925925926}*cell[10];
1237auto x386 = x374 + V{0.0324074074074074}*cell[21] - V{0.0231481481481481}*cell[8];
1238auto x387 = x376 + x377 + V{0.00462962962962963}*(-x148 + x149 + x164 - x219 + x220 - x275 + x276 + x320 + x352 + x353 + x355 + x378 - V{3}*cell[13] + V{3}*cell[26])*(-x172 + x173 + x188 - x228 + x229 - x280 + x281 + x328 + x356 + x357 + x359 + x379 - V{13.5}*cell[13] + V{13.5}*cell[26]);
1239auto x388 = -V{0.148148148148148}*cell[10];
1240auto x389 = x388 + x59 + x72 - V{0.148148148148148}*cell[4];
1241auto x390 = x54 + x75 - V{0.148148148148148}*cell[6];
1242auto x391 = x49 + x63 + x69 + x95 - V{0.148148148148148}*cell[8];
1243auto x392 = -V{0.0925925925925926}*cell[10] + V{0.12962962962963}*cell[23];
1244auto x393 = -V{0.0925925925925926}*cell[11] + V{0.12962962962963}*cell[24];
1245auto x394 = -V{0.037037037037037}*cell[1];
1246auto x395 = x101 + x106 + x394;
1247auto x396 = -V{0.037037037037037}*cell[4];
1248auto x397 = x191 + x396;
1249auto x398 = x270 + x392;
1250auto x399 = x119 + x241 + x394;
1251auto x400 = x393 + x80;
1252auto x401 = x114 + x117 + x205;
1253auto x402 = -V{0.00925925925925926}*cell[1];
1254auto x403 = x330 + x331 + x332 + x336 + x337 + x338 + x402;
1255auto x404 = x298 + V{0.0324074074074074}*cell[17] - V{0.0231481481481481}*cell[4];
1256auto x405 = x194 + x363 + V{0.0324074074074074}*cell[19] - V{0.0231481481481481}*cell[6];
1257auto x406 = x190 + x361 + x362 + V{0.0324074074074074}*cell[20] - V{0.0231481481481481}*cell[7];
1258auto x407 = x330 + x336 + x337 + x338 + x365 + x366 + x385 + x402;
1259auto x408 = V{0.0324074074074074}*cell[18] - V{0.0231481481481481}*cell[5];
1260auto x409 = x32 + x36 + x39 + cell[0] + cell[11] + cell[12] + cell[14] + cell[15] + cell[16] + cell[17] + cell[19] + cell[21] + cell[23] + cell[26] + cell[4] + cell[6] + cell[8] + V{1};
1261auto x0 = x30*(x27 - V{0.444444444444444}*x34 - V{0.444444444444444}*x38 - V{0.444444444444444}*x41 + x50 + x56 + x60 + x64 + x66 + V{0.296296296296296}*cell[0]) - x67*cell[0];
1262auto x1 = x30*(x50 + x68 + x73 + x76 + x78 + x91 - V{0.148148148148148}*cell[14]) - x67*cell[1];
1263auto x2 = x30*(x108 + x42 + x56 + x73 + x94 + x96 + x97 - V{0.148148148148148}*cell[15]) - x67*cell[2];
1264auto x3 = x30*(x110 + x111 + x120 + x44 + x51 + x60 + x70 + x76 + x93 + x96 - V{0.148148148148148}*cell[16]) - x67*cell[3];
1265auto x4 = x30*(x112 + x127 + x130 + x134 + x137 + x140 + x141 + x196 + x87 - V{0.0925925925925926}*cell[17] + V{0.12962962962963}*cell[4]) - x67*cell[4];
1266auto x5 = x30*(x141 + x199 + x204 + x206 + x209 + x210 + x212 + x235 - V{0.0925925925925926}*cell[18] + V{0.12962962962963}*cell[5]) - x67*cell[5];
1267auto x6 = x30*(x115 + x129 + x134 + x211 + x237 + x239 + x240 + x243 + x246 + x247 + x266 + x99 - V{0.0925925925925926}*cell[19] + V{0.12962962962963}*cell[6]) - x67*cell[6];
1268auto x7 = x30*(x115 + x139 + x198 + x207 + x208 + x210 + x238 + x245 + x267 + x269 + x271 + x272 + x284 - V{0.0925925925925926}*cell[20] + V{0.12962962962963}*cell[7]) - x67*cell[7];
1269auto x8 = x30*(x102 + x131 + x133 + x137 + x238 + x286 + x288 + x290 + x291 + x300 + x81 - V{0.0925925925925926}*cell[21] + V{0.12962962962963}*cell[8]) - x67*cell[8];
1270auto x9 = x30*(x107 + x140 + x239 + x271 + x287 + x291 + x302 + x304 + x312 - V{0.0925925925925926}*cell[22] + V{0.12962962962963}*cell[9]) - x67*cell[9];
1271auto x10 = x30*(x232 + x242 + x297 + x329 + x339 + x344 + x348 + x349 + x350 + x351 + V{0.0462962962962963}*cell[10] - V{0.037037037037037}*cell[23]) - x67*cell[10];
1272auto x11 = x30*(x234 + x268 + x349 + x360 + x364 + x369 + x370 + x372 + x373 + V{0.0462962962962963}*cell[11] - V{0.037037037037037}*cell[24]) - x67*cell[11];
1273auto x12 = x30*(x192 + x311 + x350 + x369 + x375 + x380 + x382 + x383 + x384 + V{0.0462962962962963}*cell[12] - V{0.037037037037037}*cell[25]) - x67*cell[12];
1274auto x13 = x30*(x195 + x231 + x236 + x339 + x364 + x383 + x385 + x386 + x387 + V{0.0462962962962963}*cell[13] - V{0.037037037037037}*cell[26]) - x67*cell[13];
1275auto x14 = x30*(x110 + x389 + x390 + x53 + x57 + x64 + x91 + x94 - V{0.148148148148148}*cell[1]) - x67*cell[14];
1276auto x15 = x30*(x108 + x109 + x111 + x389 + x391 + x43 + x58 + x61 + x66 + x74 + x78 - V{0.148148148148148}*cell[2]) - x67*cell[15];
1277auto x16 = x30*(x120 + x27 + x388 + x390 + x391 + x45 + x52 + x62 + x65 + x68 + x71 + x77 + x92 + x97 - V{0.148148148148148}*cell[3]) - x67*cell[16];
1278auto x17 = x30*(x116 + x196 + x198 + x206 + x240 + x286 + x302 + x392 + x393 + x395 + V{0.12962962962963}*cell[17] - V{0.0925925925925926}*cell[4]) - x67*cell[17];
1279auto x18 = x30*(x103 + x129 + x197 + x235 + x267 + x285 + x289 + x301 + x304 + x395 + x87 + V{0.12962962962963}*cell[18] - V{0.0925925925925926}*cell[5]) - x67*cell[18];
1280auto x19 = x30*(x104 + x127 + x199 + x236 + x266 + x272 + x288 + x303 + x397 + x398 + x399 + V{0.12962962962963}*cell[19] - V{0.0925925925925926}*cell[6]) - x67*cell[19];
1281auto x20 = x30*(x103 + x130 + x204 + x233 + x247 + x284 + x287 + x290 + x396 + x399 + x400 + V{0.12962962962963}*cell[20] - V{0.0925925925925926}*cell[7]) - x67*cell[20];
1282auto x21 = x30*(x107 + x128 + x209 + x231 + x245 + x300 + x301 + x396 + x398 + x401 + x84 + V{0.12962962962963}*cell[21] - V{0.0925925925925926}*cell[8]) - x67*cell[21];
1283auto x22 = x30*(x102 + x122 + x212 + x246 + x285 + x312 + x397 + x400 + x401 + V{0.12962962962963}*cell[22] - V{0.0925925925925926}*cell[9]) - x67*cell[22];
1284auto x23 = x30*(x128 + x329 + x368 + x371 + x373 + x381 + x384 + x386 + x403 + x404 + x405 - V{0.037037037037037}*cell[10] + V{0.0462962962962963}*cell[23]) - x67*cell[23];
1285auto x24 = x30*(x122 + x283 + x335 + x344 + x360 + x375 + x404 + x406 + x407 - V{0.037037037037037}*cell[11] + V{0.0462962962962963}*cell[24]) - x67*cell[24];
1286auto x25 = x30*(x243 + x298 + x334 + x342 + x348 + x370 + x380 + x405 + x407 + x408 - V{0.037037037037037}*cell[12] + V{0.0462962962962963}*cell[25]) - x67*cell[25];
1287auto x26 = x30*(x269 + x299 + x351 + x367 + x372 + x382 + x387 + x403 + x406 + x408 - V{0.037037037037037}*cell[13] + V{0.0462962962962963}*cell[26]) - x67*cell[26];
1288cell[0] = x0;
1289cell[1] = x1;
1290cell[2] = x2;
1291cell[3] = x3;
1292cell[4] = x4;
1293cell[5] = x5;
1294cell[6] = x6;
1295cell[7] = x7;
1296cell[8] = x8;
1297cell[9] = x9;
1298cell[10] = x10;
1299cell[11] = x11;
1300cell[12] = x12;
1301cell[13] = x13;
1302cell[14] = x14;
1303cell[15] = x15;
1304cell[16] = x16;
1305cell[17] = x17;
1306cell[18] = x18;
1307cell[19] = x19;
1308cell[20] = x20;
1309cell[21] = x21;
1310cell[22] = x22;
1311cell[23] = x23;
1312cell[24] = x24;
1313cell[25] = x25;
1314cell[26] = x26;
1315return { x409, V{1}*(x34 + x38 + x41)/((x409)*(x409)) };
1316}
1317
1318};
1319
1320
1321template <typename... FIELDS>
1322struct ConstRhoBGK::type<descriptors::D2Q5<FIELDS...>,momenta::BulkTuple,equilibria::SecondOrder> {
1323
1324template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
1325CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
1326{
1327auto x8 = parameters.template get<olb::statistics::AVERAGE_RHO>();
1328auto x7 = parameters.template get<olb::descriptors::OMEGA>();
1329auto x5 = x7 + V{-1};
1330auto x6 = cell[0] + cell[1] + cell[2] + cell[3] + cell[4];
1331auto x9 = x6 + V{1};
1332auto x10 = V{1} / ((x9)*(x9));
1333auto x11 = V{1.5}*x10;
1334auto x12 = cell[2] - cell[4];
1335auto x13 = -x12;
1336auto x14 = x13*x13;
1337auto x15 = cell[1] - cell[3];
1338auto x16 = -x15;
1339auto x17 = x11*(x16*x16) + V{-1};
1340auto x18 = x11*x14 + x17;
1341auto x19 = V{1} / (x9);
1342auto x20 = -x19*(x8 + V{-1}) + V{1};
1343auto x21 = x6 + V{1};
1344auto x22 = x20*x21;
1345auto x23 = V{0.166666666666667}*cell[0] + V{0.166666666666667}*cell[1] + V{0.166666666666667}*cell[2] + V{0.166666666666667}*cell[3] + V{0.166666666666667}*cell[4] + V{0.166666666666667};
1346auto x24 = x19*(V{3}*cell[1] - V{3}*cell[3]);
1347auto x25 = V{3}*x10;
1348auto x26 = x15*x15;
1349auto x27 = x12*x12;
1350auto x28 = x11*x27;
1351auto x29 = x24 + x25*x26 - x28 + V{1};
1352auto x30 = V{3}*cell[2] - V{3}*cell[4];
1353auto x31 = -x14*x25 + x17 - x19*x30;
1354auto x32 = V{3}*x10*x26 - x24 - x28 + V{1};
1355auto x33 = V{3}*x10*x27 - x11*x26 - x19*x30 + V{1};
1356auto x0 = -V{0.333333333333333}*x18*x22 - x5*(x18*(V{0.333333333333333}*cell[0] + V{0.333333333333333}*cell[1] + V{0.333333333333333}*cell[2] + V{0.333333333333333}*cell[3] + V{0.333333333333333}*cell[4] + V{0.333333333333333}) + cell[0] + V{0.333333333333333}) + V{-0.333333333333333};
1357auto x1 = V{0.166666666666667}*x20*x21*x29 - x5*(-x23*x29 + cell[1] + V{0.166666666666667}) + V{-0.166666666666667};
1358auto x2 = -V{0.166666666666667}*x22*x31 - x5*(x23*x31 + cell[2] + V{0.166666666666667}) + V{-0.166666666666667};
1359auto x3 = V{0.166666666666667}*x20*x21*x32 - x5*(-x23*x32 + cell[3] + V{0.166666666666667}) + V{-0.166666666666667};
1360auto x4 = V{0.166666666666667}*x20*x21*x33 - x5*(-x23*x33 + cell[4] + V{0.166666666666667}) + V{-0.166666666666667};
1361cell[0] = x0;
1362cell[1] = x1;
1363cell[2] = x2;
1364cell[3] = x3;
1365cell[4] = x4;
1366return { x6 - x8 + V{2}, V{1}*x10*(x26 + x27) };
1367}
1368
1369};
1370
1371template <typename... FIELDS>
1372struct ConstRhoBGK::type<descriptors::D2Q9<FIELDS...>,momenta::BulkTuple,equilibria::SecondOrder> {
1373
1374template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
1375CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
1376{
1377auto x11 = parameters.template get<olb::descriptors::OMEGA>();
1378auto x12 = parameters.template get<olb::statistics::AVERAGE_RHO>();
1379auto x9 = x11 + V{-1};
1380auto x10 = cell[0] + cell[1] + cell[2] + cell[3] + cell[4] + cell[5] + cell[6] + cell[7] + cell[8];
1381auto x13 = x10 + V{1};
1382auto x14 = V{1} / ((x13)*(x13));
1383auto x15 = V{1.5}*x14;
1384auto x16 = cell[1] - cell[5];
1385auto x17 = -cell[4] + cell[8];
1386auto x18 = x16 + x17 - cell[3] + cell[7];
1387auto x19 = x18*x18;
1388auto x20 = x15*x19;
1389auto x21 = cell[2] - cell[6];
1390auto x22 = x16 + x21 + cell[3] - cell[7];
1391auto x23 = -x22;
1392auto x24 = x15*(x23*x23) + V{-1};
1393auto x25 = x20 + x24;
1394auto x26 = V{1} / (x13);
1395auto x27 = -x26*(x12 + V{-1}) + V{1};
1396auto x28 = x10 + V{1};
1397auto x29 = x27*x28;
1398auto x30 = V{0.0277777777777778}*cell[0] + 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};
1399auto x31 = V{4.5}*x14;
1400auto x32 = x17 + x21 + V{2}*cell[1] - V{2}*cell[5];
1401auto x33 = -x32;
1402auto x34 = V{3}*cell[3];
1403auto x35 = V{3}*cell[7];
1404auto x36 = V{3}*cell[1] - V{3}*cell[5];
1405auto x37 = x34 - x35 + x36 + V{3}*cell[2] - V{3}*cell[6];
1406auto x38 = x26*x37;
1407auto x39 = -x20 + x38 + V{1};
1408auto x40 = x26*(-x34 + x35 + x36 - V{3}*cell[4] + V{3}*cell[8]);
1409auto x41 = x22*x22;
1410auto x42 = x15*x41;
1411auto x43 = x40 - x42;
1412auto x44 = x31*(x33*x33) + x39 + x43;
1413auto x45 = V{0.111111111111111}*cell[0] + V{0.111111111111111}*cell[1] + V{0.111111111111111}*cell[2] + V{0.111111111111111}*cell[3] + V{0.111111111111111}*cell[4] + V{0.111111111111111}*cell[5] + V{0.111111111111111}*cell[6] + V{0.111111111111111}*cell[7] + V{0.111111111111111}*cell[8] + V{0.111111111111111};
1414auto x46 = V{3}*x14;
1415auto x47 = x39 + x41*x46;
1416auto x48 = -x21 - V{2}*cell[3] - cell[4] + V{2}*cell[7] + cell[8];
1417auto x49 = -x31*x48*x48;
1418auto x50 = x25 - x26*x37 + x40 + x49;
1419auto x51 = x19*x46;
1420auto x52 = x24 + x40 - x51;
1421auto x53 = x20 + x38 + V{-1};
1422auto x54 = x42 + x53;
1423auto x55 = V{4.5}*x14*(x32*x32) - x40 - x54;
1424auto x56 = V{3}*x14*x41 - x53;
1425auto x57 = x40 - x49 - x54;
1426auto x58 = x43 + x51 + V{1};
1427auto x0 = -V{0.444444444444444}*x25*x29 - x9*(x25*(V{0.444444444444444}*cell[0] + V{0.444444444444444}*cell[1] + V{0.444444444444444}*cell[2] + V{0.444444444444444}*cell[3] + V{0.444444444444444}*cell[4] + V{0.444444444444444}*cell[5] + V{0.444444444444444}*cell[6] + V{0.444444444444444}*cell[7] + V{0.444444444444444}*cell[8] + V{0.444444444444444}) + cell[0] + V{0.444444444444444}) + V{-0.444444444444444};
1428auto x1 = V{0.0277777777777778}*x27*x28*x44 - x9*(-x30*x44 + cell[1] + V{0.0277777777777778}) + V{-0.0277777777777778};
1429auto x2 = V{0.111111111111111}*x27*x28*x47 - x9*(-x45*x47 + cell[2] + V{0.111111111111111}) + V{-0.111111111111111};
1430auto x3 = -V{0.0277777777777778}*x29*x50 - x9*(x30*x50 + cell[3] + V{0.0277777777777778}) + V{-0.0277777777777778};
1431auto x4 = -V{0.111111111111111}*x29*x52 - x9*(x45*x52 + cell[4] + V{0.111111111111111}) + V{-0.111111111111111};
1432auto x5 = V{0.0277777777777778}*x27*x28*x55 - x9*(-x30*x55 + cell[5] + V{0.0277777777777778}) + V{-0.0277777777777778};
1433auto x6 = V{0.111111111111111}*x27*x28*x56 - x9*(-x45*x56 + cell[6] + V{0.111111111111111}) + V{-0.111111111111111};
1434auto x7 = V{0.0277777777777778}*x27*x28*x57 - x9*(-x30*x57 + cell[7] + V{0.0277777777777778}) + V{-0.0277777777777778};
1435auto x8 = V{0.111111111111111}*x27*x28*x58 - x9*(-x45*x58 + cell[8] + V{0.111111111111111}) + V{-0.111111111111111};
1436cell[0] = x0;
1437cell[1] = x1;
1438cell[2] = x2;
1439cell[3] = x3;
1440cell[4] = x4;
1441cell[5] = x5;
1442cell[6] = x6;
1443cell[7] = x7;
1444cell[8] = x8;
1445return { x10 - x12 + V{2}, V{1}*x14*(x19 + x41) };
1446}
1447
1448};
1449
1450template <typename... FIELDS>
1451struct ConstRhoBGK::type<descriptors::D3Q7<FIELDS...>,momenta::BulkTuple,equilibria::SecondOrder> {
1452
1453template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
1454CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
1455{
1456auto x11 = parameters.template get<olb::statistics::AVERAGE_RHO>();
1457auto x10 = parameters.template get<olb::descriptors::OMEGA>();
1458auto x7 = x10 + V{-1};
1459auto x8 = cell[0] + cell[1] + cell[2] + cell[3] + cell[4] + cell[5] + cell[6];
1460auto x9 = x8 + V{1};
1461auto x12 = V{1} / ((x9)*(x9));
1462auto x13 = V{2}*x12;
1463auto x14 = cell[1] - cell[4];
1464auto x15 = -x14;
1465auto x16 = x15*x15;
1466auto x17 = x13*x16;
1467auto x18 = cell[2] - cell[5];
1468auto x19 = -x18;
1469auto x20 = x19*x19;
1470auto x21 = x13*x20;
1471auto x22 = cell[3] - cell[6];
1472auto x23 = -x22;
1473auto x24 = x23*x23;
1474auto x25 = x13*x24;
1475auto x26 = x21 + x25 + V{-1};
1476auto x27 = x17 + x26;
1477auto x28 = V{1} / (x9);
1478auto x29 = -x28*(x11 + V{-1}) + V{1};
1479auto x30 = x8 + V{1};
1480auto x31 = x29*x30;
1481auto x32 = V{0.125}*cell[0] + V{0.125}*cell[1] + V{0.125}*cell[2] + V{0.125}*cell[3] + V{0.125}*cell[4] + V{0.125}*cell[5] + V{0.125}*cell[6] + V{0.125};
1482auto x33 = V{4}*cell[1] - V{4}*cell[4];
1483auto x34 = V{6}*x12;
1484auto x35 = -x16*x34 + x26 - x28*x33;
1485auto x36 = V{0.125}*x31;
1486auto x37 = V{4}*cell[2] - V{4}*cell[5];
1487auto x38 = x17 + V{-1};
1488auto x39 = -x20*x34 + x25 - x28*x37 + x38;
1489auto x40 = V{4}*cell[3] - V{4}*cell[6];
1490auto x41 = x21 - x24*x34 - x28*x40 + x38;
1491auto x42 = x18*x18;
1492auto x43 = x13*x42;
1493auto x44 = x14*x14;
1494auto x45 = x22*x22;
1495auto x46 = x13*x45 + V{-1};
1496auto x47 = V{6}*x12*x44 - x28*x33 - x43 - x46;
1497auto x48 = x13*x44;
1498auto x49 = V{6}*x12*x42 - x28*x37 - x46 - x48;
1499auto x50 = V{6}*x12*x45 - x28*x40 - x43 - x48 + V{1};
1500auto x0 = -V{0.25}*x27*x31 - x7*(x27*(V{0.25}*cell[0] + V{0.25}*cell[1] + V{0.25}*cell[2] + V{0.25}*cell[3] + V{0.25}*cell[4] + V{0.25}*cell[5] + V{0.25}*cell[6] + V{0.25}) + cell[0] + V{0.25}) + V{-0.25};
1501auto x1 = -x35*x36 - x7*(x32*x35 + cell[1] + V{0.125}) + V{-0.125};
1502auto x2 = -x36*x39 - x7*(x32*x39 + cell[2] + V{0.125}) + V{-0.125};
1503auto x3 = -x36*x41 - x7*(x32*x41 + cell[3] + V{0.125}) + V{-0.125};
1504auto x4 = V{0.125}*x29*x30*x47 - x7*(-x32*x47 + cell[4] + V{0.125}) + V{-0.125};
1505auto x5 = V{0.125}*x29*x30*x49 - x7*(-x32*x49 + cell[5] + V{0.125}) + V{-0.125};
1506auto x6 = V{0.125}*x29*x30*x50 - x7*(-x32*x50 + cell[6] + V{0.125}) + V{-0.125};
1507cell[0] = x0;
1508cell[1] = x1;
1509cell[2] = x2;
1510cell[3] = x3;
1511cell[4] = x4;
1512cell[5] = x5;
1513cell[6] = x6;
1514return { -x11 + x8 + V{2}, V{1}*x12*(x42 + x44 + x45) };
1515}
1516
1517};
1518
1519template <typename... FIELDS>
1520struct ConstRhoBGK::type<descriptors::D3Q19<FIELDS...>,momenta::BulkTuple,equilibria::SecondOrder> {
1521
1522template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
1523CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
1524{
1525auto x22 = parameters.template get<olb::descriptors::OMEGA>();
1526auto x23 = parameters.template get<olb::statistics::AVERAGE_RHO>();
1527auto x19 = x22 + V{-1};
1528auto x20 = cell[10] + cell[14];
1529auto x21 = cell[12] + cell[7];
1530auto x24 = x20 + x21 + 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];
1531auto x25 = x24 + V{1};
1532auto x26 = V{1} / ((x25)*(x25));
1533auto x27 = V{1.5}*x26;
1534auto x28 = cell[13] - cell[4];
1535auto x29 = cell[15] - cell[6];
1536auto x30 = x28 + x29;
1537auto x31 = -cell[1];
1538auto x32 = cell[16] - cell[7];
1539auto x33 = x31 + x32;
1540auto x34 = x20 - cell[5];
1541auto x35 = x30 + x33 + x34;
1542auto x36 = x35*x35;
1543auto x37 = x27*x36;
1544auto x38 = cell[17] - cell[8];
1545auto x39 = x28 + x38;
1546auto x40 = cell[18] - cell[9];
1547auto x41 = -cell[2];
1548auto x42 = x41 + cell[11] - cell[14] + cell[5];
1549auto x43 = x39 + x40 + x42;
1550auto x44 = x43*x43;
1551auto x45 = x27*x44;
1552auto x46 = x29 + x38;
1553auto x47 = -cell[3];
1554auto x48 = -cell[18] + cell[9];
1555auto x49 = x47 + x48;
1556auto x50 = x21 - cell[16];
1557auto x51 = x46 + x49 + x50;
1558auto x52 = x51*x51;
1559auto x53 = x27*x52;
1560auto x54 = x45 + x53 + V{-1};
1561auto x55 = x37 + x54;
1562auto x56 = V{1} / (x25);
1563auto x57 = -x56*(x23 + V{-1}) + V{1};
1564auto x58 = x24 + V{1};
1565auto x59 = x57*x58;
1566auto x60 = 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};
1567auto x61 = V{3}*cell[14];
1568auto x62 = V{3}*cell[16];
1569auto x63 = V{3}*cell[5];
1570auto x64 = V{3}*cell[7];
1571auto x65 = V{3}*cell[13] - V{3}*cell[4];
1572auto x66 = V{3}*cell[15] - V{3}*cell[6];
1573auto x67 = x56*(x61 + x62 - x63 - x64 + x65 + x66 + V{3}*cell[10] - V{3}*cell[1]);
1574auto x68 = V{3}*x26;
1575auto x69 = x36*x68;
1576auto x70 = x54 + x67 - x69;
1577auto x71 = V{0.0555555555555556}*x59;
1578auto x72 = V{3}*cell[18];
1579auto x73 = V{3}*cell[9];
1580auto x74 = V{3}*cell[17] - V{3}*cell[8];
1581auto x75 = x56*(-x61 + x63 + x65 + x72 - x73 + x74 + V{3}*cell[11] - V{3}*cell[2]);
1582auto x76 = x44*x68;
1583auto x77 = x37 + V{-1};
1584auto x78 = x53 + x75 - x76 + x77;
1585auto x79 = x56*(-x62 + x64 + x66 - x72 + x73 + x74 + V{3}*cell[12] - V{3}*cell[3]);
1586auto x80 = x52*x68;
1587auto x81 = x45 + x77 + x79 - x80;
1588auto x82 = 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};
1589auto x83 = V{4.5}*x26;
1590auto x84 = x33 + cell[10];
1591auto x85 = x40 + x41 + x46 + x84 + cell[11] + V{2}*cell[13] - V{2}*cell[4];
1592auto x86 = x83*(x85*x85);
1593auto x87 = x55 + x67;
1594auto x88 = x75 - x86 + x87;
1595auto x89 = V{0.0277777777777778}*x59;
1596auto x90 = -x75;
1597auto x91 = -cell[17] + cell[8];
1598auto x92 = x29 + x48 + x84 + x91 - cell[11] + V{2}*cell[14] + cell[2] - V{2}*cell[5];
1599auto x93 = -x92;
1600auto x94 = -x83*x93*x93 + x87 + x90;
1601auto x95 = x31 + x34;
1602auto x96 = x39 + x49 + x95 + cell[12] + V{2}*cell[15] - V{2}*cell[6];
1603auto x97 = x83*(x96*x96);
1604auto x98 = x79 + x87 - x97;
1605auto x99 = -x79;
1606auto x100 = x28 - cell[12] + cell[3];
1607auto x101 = x100 + x40 + x91 + x95 + V{2}*cell[16] - V{2}*cell[7];
1608auto x102 = -x101;
1609auto x103 = -x83*x102*x102 + x87 + x99;
1610auto x104 = x30 + x42 + x47 + x50 + V{2}*cell[17] - V{2}*cell[8];
1611auto x105 = x83*(x104*x104);
1612auto x106 = x55 + x75;
1613auto x107 = -x105 + x106 + x79;
1614auto x108 = x100 + x32 + x42 - cell[15] + V{2}*cell[18] + cell[6] - V{2}*cell[9];
1615auto x109 = -x108;
1616auto x110 = x106 - x83*x109*x109 + x99;
1617auto x111 = -x45;
1618auto x112 = V{1} - x53;
1619auto x113 = x111 + x112;
1620auto x114 = x113 + x67;
1621auto x115 = x114 + x69;
1622auto x116 = -x37;
1623auto x117 = x116 + x75;
1624auto x118 = x112 + x117 + x76;
1625auto x119 = x116 + x79;
1626auto x120 = x111 + x119 + x80 + V{1};
1627auto x121 = x114 + x117 + x86;
1628auto x122 = -x67;
1629auto x123 = x106 + x122 - x83*x92*x92;
1630auto x124 = x114 + x119 + x97;
1631auto x125 = x55 + x79;
1632auto x126 = x122 + x125 - x83*x101*x101;
1633auto x127 = x105 + x113 + x117 + x79;
1634auto x128 = x125 - x83*x108*x108 + x90;
1635auto x0 = -x19*(x55*(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}) + cell[0] + V{0.333333333333333}) - V{0.333333333333333}*x55*x59 + V{-0.333333333333333};
1636auto x1 = -x19*(x60*x70 + cell[1] + V{0.0555555555555556}) - x70*x71 + V{-0.0555555555555556};
1637auto x2 = -x19*(x60*x78 + cell[2] + V{0.0555555555555556}) - x71*x78 + V{-0.0555555555555556};
1638auto x3 = -x19*(x60*x81 + cell[3] + V{0.0555555555555556}) - x71*x81 + V{-0.0555555555555556};
1639auto x4 = -x19*(x82*x88 + cell[4] + V{0.0277777777777778}) - x88*x89 + V{-0.0277777777777778};
1640auto x5 = -x19*(x82*x94 + cell[5] + V{0.0277777777777778}) - x89*x94 + V{-0.0277777777777778};
1641auto x6 = -x19*(x82*x98 + cell[6] + V{0.0277777777777778}) - x89*x98 + V{-0.0277777777777778};
1642auto x7 = -x103*x89 - x19*(x103*x82 + cell[7] + V{0.0277777777777778}) + V{-0.0277777777777778};
1643auto x8 = -x107*x89 - x19*(x107*x82 + cell[8] + V{0.0277777777777778}) + V{-0.0277777777777778};
1644auto x9 = -x110*x89 - x19*(x110*x82 + cell[9] + V{0.0277777777777778}) + V{-0.0277777777777778};
1645auto x10 = V{0.0555555555555556}*x115*x57*x58 - x19*(-x115*x60 + cell[10] + V{0.0555555555555556}) + V{-0.0555555555555556};
1646auto x11 = V{0.0555555555555556}*x118*x57*x58 - x19*(-x118*x60 + cell[11] + V{0.0555555555555556}) + V{-0.0555555555555556};
1647auto x12 = V{0.0555555555555556}*x120*x57*x58 - x19*(-x120*x60 + cell[12] + V{0.0555555555555556}) + V{-0.0555555555555556};
1648auto x13 = V{0.0277777777777778}*x121*x57*x58 - x19*(-x121*x82 + cell[13] + V{0.0277777777777778}) + V{-0.0277777777777778};
1649auto x14 = -x123*x89 - x19*(x123*x82 + cell[14] + V{0.0277777777777778}) + V{-0.0277777777777778};
1650auto x15 = V{0.0277777777777778}*x124*x57*x58 - x19*(-x124*x82 + cell[15] + V{0.0277777777777778}) + V{-0.0277777777777778};
1651auto x16 = -x126*x89 - x19*(x126*x82 + cell[16] + V{0.0277777777777778}) + V{-0.0277777777777778};
1652auto x17 = V{0.0277777777777778}*x127*x57*x58 - x19*(-x127*x82 + cell[17] + V{0.0277777777777778}) + V{-0.0277777777777778};
1653auto x18 = -x128*x89 - x19*(x128*x82 + cell[18] + V{0.0277777777777778}) + V{-0.0277777777777778};
1654cell[0] = x0;
1655cell[1] = x1;
1656cell[2] = x2;
1657cell[3] = x3;
1658cell[4] = x4;
1659cell[5] = x5;
1660cell[6] = x6;
1661cell[7] = x7;
1662cell[8] = x8;
1663cell[9] = x9;
1664cell[10] = x10;
1665cell[11] = x11;
1666cell[12] = x12;
1667cell[13] = x13;
1668cell[14] = x14;
1669cell[15] = x15;
1670cell[16] = x16;
1671cell[17] = x17;
1672cell[18] = x18;
1673return { -x23 + x24 + V{2}, V{1}*x26*(x36 + x44 + x52) };
1674}
1675
1676};
1677
1678template <typename... FIELDS>
1679struct ConstRhoBGK::type<descriptors::D3Q27<FIELDS...>,momenta::BulkTuple,equilibria::SecondOrder> {
1680
1681template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
1682CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
1683{
1684auto x31 = parameters.template get<olb::statistics::AVERAGE_RHO>();
1685auto x30 = parameters.template get<olb::descriptors::OMEGA>();
1686auto x27 = x30 + V{-1};
1687auto x28 = cell[8] + cell[9];
1688auto x29 = cell[15] + cell[21];
1689auto x32 = cell[11] + cell[26];
1690auto x33 = x28 + x29 + x32 + cell[0] + cell[10] + cell[12] + cell[13] + cell[14] + cell[16] + cell[17] + cell[18] + cell[19] + cell[1] + cell[20] + cell[22] + cell[23] + cell[24] + cell[25] + cell[2] + cell[3] + cell[4] + cell[5] + cell[6] + cell[7];
1691auto x34 = x33 + V{1};
1692auto x35 = V{1} / ((x34)*(x34));
1693auto x36 = V{1.5}*x35;
1694auto x37 = -cell[17];
1695auto x38 = -cell[19];
1696auto x39 = x37 + x38 + cell[4] + cell[6];
1697auto x40 = -cell[24];
1698auto x41 = cell[10] - cell[23];
1699auto x42 = x40 + x41 + cell[11];
1700auto x43 = cell[12] - cell[25];
1701auto x44 = -cell[14];
1702auto x45 = -cell[20] + cell[7];
1703auto x46 = x44 + x45 + cell[1];
1704auto x47 = -cell[18] + cell[5];
1705auto x48 = cell[13] - cell[26];
1706auto x49 = x39 + x42 + x43 + x46 + x47 + x48;
1707auto x50 = -x49;
1708auto x51 = x50*x50;
1709auto x52 = x36*x51;
1710auto x53 = -cell[13];
1711auto x54 = -cell[21];
1712auto x55 = x53 + x54 + cell[26] + cell[8];
1713auto x56 = -cell[22];
1714auto x57 = x37 + cell[4];
1715auto x58 = x56 + x57 + cell[9];
1716auto x59 = -cell[15];
1717auto x60 = x59 + cell[18] + cell[2] - cell[5];
1718auto x61 = -cell[12] + cell[25];
1719auto x62 = x42 + x55 + x58 + x60 + x61;
1720auto x63 = -x62;
1721auto x64 = x63*x63;
1722auto x65 = x36*x64;
1723auto x66 = -cell[16];
1724auto x67 = x43 + x66 + cell[3];
1725auto x68 = -cell[9];
1726auto x69 = x38 + cell[6];
1727auto x70 = x68 + x69 + cell[22];
1728auto x71 = cell[20] - cell[7];
1729auto x72 = x41 - cell[11] + cell[24];
1730auto x73 = x55 + x67 + x70 + x71 + x72;
1731auto x74 = -x73;
1732auto x75 = x74*x74;
1733auto x76 = x36*x75;
1734auto x77 = x65 + x76 + V{-1};
1735auto x78 = x52 + x77;
1736auto x79 = V{1} / (x34);
1737auto x80 = -x79*(x31 + V{-1}) + V{1};
1738auto x81 = x33 + V{1};
1739auto x82 = x80*x81;
1740auto x83 = 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};
1741auto x84 = V{3}*cell[5];
1742auto x85 = V{3}*cell[7];
1743auto x86 = V{3}*cell[13];
1744auto x87 = V{3}*cell[18];
1745auto x88 = V{3}*cell[20];
1746auto x89 = V{3}*cell[26];
1747auto x90 = V{3}*cell[10];
1748auto x91 = V{3}*cell[11];
1749auto x92 = -V{3}*cell[23];
1750auto x93 = V{3}*cell[24];
1751auto x94 = x90 + x91 + x92 - x93 - V{3}*cell[17] + V{3}*cell[4];
1752auto x95 = V{3}*cell[12];
1753auto x96 = V{3}*cell[25];
1754auto x97 = x95 - x96 - V{3}*cell[19] + V{3}*cell[6];
1755auto x98 = x84 + x85 + x86 - x87 - x88 - x89 + x94 + x97 - V{3}*cell[14] + V{3}*cell[1];
1756auto x99 = -x79*x98;
1757auto x100 = V{3}*x35;
1758auto x101 = -x100*x51 + x77 + x99;
1759auto x102 = V{0.0740740740740741}*x82;
1760auto x103 = V{3}*cell[9];
1761auto x104 = V{3}*cell[22];
1762auto x105 = -x86 + x89 - V{3}*cell[21] + V{3}*cell[8];
1763auto x106 = x103 - x104 + x105 - x84 + x87 + x94 - x95 + x96 - V{3}*cell[15] + V{3}*cell[2];
1764auto x107 = -x106*x79;
1765auto x108 = x52 + V{-1};
1766auto x109 = -x100*x64 + x107 + x108 + x76;
1767auto x110 = -x103 + x104 + x105 - x85 + x88 + x90 - x91 + x92 + x93 + x97 - V{3}*cell[16] + V{3}*cell[3];
1768auto x111 = -x110*x79;
1769auto x112 = -x100*x75 + x108 + x111 + x65;
1770auto x113 = 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};
1771auto x114 = V{4.5}*x35;
1772auto x115 = V{2}*cell[11] - V{2}*cell[24];
1773auto x116 = V{2}*cell[10] - V{2}*cell[23];
1774auto x117 = x116 + x54;
1775auto x118 = x59 + cell[2];
1776auto x119 = x118 - V{2}*cell[17] + V{2}*cell[4];
1777auto x120 = x115 + x117 + x119 + x28 + x46 + x56 + x69;
1778auto x121 = -x120;
1779auto x122 = x78 + x99;
1780auto x123 = x107 + x122;
1781auto x124 = -x114*x121*x121 + x123;
1782auto x125 = V{0.0185185185185185}*x82;
1783auto x126 = V{2}*cell[25];
1784auto x127 = V{2}*cell[12];
1785auto x128 = -x126 + x127;
1786auto x129 = V{2}*cell[26];
1787auto x130 = V{2}*cell[13];
1788auto x131 = -x129 + x130 - cell[8];
1789auto x132 = V{2}*cell[18];
1790auto x133 = V{2}*cell[5];
1791auto x134 = -x132 + x133 - cell[2];
1792auto x135 = x128 + x131 + x134 + x29 + x46 + x70;
1793auto x136 = -x107;
1794auto x137 = x122 + x136;
1795auto x138 = -x114*x135*x135 + x137;
1796auto x139 = x44 + cell[1];
1797auto x140 = x139 + x47;
1798auto x141 = x66 + cell[3];
1799auto x142 = -V{2}*cell[19] + V{2}*cell[6];
1800auto x143 = x141 + x142;
1801auto x144 = x117 + x128 + x140 + x143 + x57 + x68 + cell[22] + cell[8];
1802auto x145 = -x144;
1803auto x146 = x111 - x114*x145*x145 + x122;
1804auto x147 = -x111;
1805auto x148 = -cell[3];
1806auto x149 = x115 + x148 + cell[16];
1807auto x150 = V{2}*cell[20];
1808auto x151 = V{2}*cell[7];
1809auto x152 = -x150 + x151;
1810auto x153 = x131 + x140 + x149 + x152 + x58 + cell[21];
1811auto x154 = -x114*x153*x153 + x122 + x147;
1812auto x155 = -V{2}*cell[21] + V{2}*cell[8];
1813auto x156 = x141 + x155;
1814auto x157 = x116 + x129 - x130 + x156 + x39 + x60 + x71;
1815auto x158 = -x157;
1816auto x159 = x107 + x78;
1817auto x160 = x111 + x159;
1818auto x161 = -x114*x158*x158 + x160;
1819auto x162 = V{2}*cell[22];
1820auto x163 = V{2}*cell[9];
1821auto x164 = -x162 + x163;
1822auto x165 = x126 - x127 + x149 + x164 + x45 + x57 + x60 + cell[19] - cell[6];
1823auto x166 = -x114*x165*x165 + x147 + x159;
1824auto x167 = 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};
1825auto x168 = x119 + x139;
1826auto x169 = x142 + x155 + x168 + x32 + x40 + x53 + x67 + V{3}*cell[10] - V{3}*cell[23];
1827auto x170 = -x169;
1828auto x171 = x111 - x114*x170*x170 + x123;
1829auto x172 = V{0.00462962962962963}*x82;
1830auto x173 = x148 + x152 + x164 + x168 + x41 + x48 + x61 + V{3}*cell[11] + cell[16] - V{3}*cell[24];
1831auto x174 = -x114*x173*x173 + x123 + x147;
1832auto x175 = x134 + x139 + x143 + x162 - x163 + x48 + x72 + V{3}*cell[12] + cell[15] - V{3}*cell[25];
1833auto x176 = x111 - x114*x175*x175 + x137;
1834auto x177 = x79*x98;
1835auto x178 = x118 + x132 - x133 + x150 - x151 + x156 + x61 + x72 - V{3}*cell[13] + cell[14] - cell[1] + V{3}*cell[26];
1836auto x179 = -x178;
1837auto x180 = x110*x79;
1838auto x181 = x62*x62;
1839auto x182 = x181*x36;
1840auto x183 = x73*x73;
1841auto x184 = x183*x36 + V{-1};
1842auto x185 = x182 + x184;
1843auto x186 = x106*x79;
1844auto x187 = x49*x49;
1845auto x188 = x187*x36;
1846auto x189 = x186 + x188;
1847auto x190 = x180 + x185 + x189;
1848auto x191 = x177 - x190 + V{4.5}*x35*(x179*x179);
1849auto x192 = x177 + x185;
1850auto x193 = V{3}*x187*x35 - x192;
1851auto x194 = V{3}*x181*x35 - x184 - x189;
1852auto x195 = x180 + x188;
1853auto x196 = -x182 + V{3}*x183*x35 - x195 + V{1};
1854auto x197 = x189 + x192;
1855auto x198 = -x197 + V{4.5}*x35*(x120*x120);
1856auto x199 = -x99;
1857auto x200 = -x135;
1858auto x201 = -x114*x200*x200 + x159 + x199;
1859auto x202 = x192 + x195;
1860auto x203 = -x202 + V{4.5}*x35*(x144*x144);
1861auto x204 = -x153;
1862auto x205 = x111 + x78;
1863auto x206 = -x114*x204*x204 + x199 + x205;
1864auto x207 = -x190 + V{4.5}*x35*(x157*x157);
1865auto x208 = -x165;
1866auto x209 = -x114*x208*x208 + x136 + x205;
1867auto x210 = -x180 - x197 + V{4.5}*x35*(x169*x169);
1868auto x211 = -x173;
1869auto x212 = x180 - x197 + V{4.5}*x35*(x211*x211);
1870auto x213 = -x175;
1871auto x214 = x186 - x202 + V{4.5}*x35*(x213*x213);
1872auto x215 = -x114*x178*x178 + x160 + x199;
1873auto x0 = -x27*(x78*(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}) + cell[0] + V{0.296296296296296}) - V{0.296296296296296}*x78*x82 + V{-0.296296296296296};
1874auto x1 = -x101*x102 - x27*(x101*x83 + cell[1] + V{0.0740740740740741}) + V{-0.0740740740740741};
1875auto x2 = -x102*x109 - x27*(x109*x83 + cell[2] + V{0.0740740740740741}) + V{-0.0740740740740741};
1876auto x3 = -x102*x112 - x27*(x112*x83 + cell[3] + V{0.0740740740740741}) + V{-0.0740740740740741};
1877auto x4 = -x124*x125 - x27*(x113*x124 + cell[4] + V{0.0185185185185185}) + V{-0.0185185185185185};
1878auto x5 = -x125*x138 - x27*(x113*x138 + cell[5] + V{0.0185185185185185}) + V{-0.0185185185185185};
1879auto x6 = -x125*x146 - x27*(x113*x146 + cell[6] + V{0.0185185185185185}) + V{-0.0185185185185185};
1880auto x7 = -x125*x154 - x27*(x113*x154 + cell[7] + V{0.0185185185185185}) + V{-0.0185185185185185};
1881auto x8 = -x125*x161 - x27*(x113*x161 + cell[8] + V{0.0185185185185185}) + V{-0.0185185185185185};
1882auto x9 = -x125*x166 - x27*(x113*x166 + cell[9] + V{0.0185185185185185}) + V{-0.0185185185185185};
1883auto x10 = -x171*x172 - x27*(x167*x171 + cell[10] + V{0.00462962962962963}) + V{-0.00462962962962963};
1884auto x11 = -x172*x174 - x27*(x167*x174 + cell[11] + V{0.00462962962962963}) + V{-0.00462962962962963};
1885auto x12 = -x172*x176 - x27*(x167*x176 + cell[12] + V{0.00462962962962963}) + V{-0.00462962962962963};
1886auto x13 = V{0.00462962962962963}*x191*x80*x81 - x27*(-x167*x191 + cell[13] + V{0.00462962962962963}) + V{-0.00462962962962963};
1887auto x14 = V{0.0740740740740741}*x193*x80*x81 - x27*(-x193*x83 + cell[14] + V{0.0740740740740741}) + V{-0.0740740740740741};
1888auto x15 = V{0.0740740740740741}*x194*x80*x81 - x27*(-x194*x83 + cell[15] + V{0.0740740740740741}) + V{-0.0740740740740741};
1889auto x16 = V{0.0740740740740741}*x196*x80*x81 - x27*(-x196*x83 + cell[16] + V{0.0740740740740741}) + V{-0.0740740740740741};
1890auto x17 = V{0.0185185185185185}*x198*x80*x81 - x27*(-x113*x198 + cell[17] + V{0.0185185185185185}) + V{-0.0185185185185185};
1891auto x18 = -x125*x201 - x27*(x113*x201 + cell[18] + V{0.0185185185185185}) + V{-0.0185185185185185};
1892auto x19 = V{0.0185185185185185}*x203*x80*x81 - x27*(-x113*x203 + cell[19] + V{0.0185185185185185}) + V{-0.0185185185185185};
1893auto x20 = -x125*x206 - x27*(x113*x206 + cell[20] + V{0.0185185185185185}) + V{-0.0185185185185185};
1894auto x21 = V{0.0185185185185185}*x207*x80*x81 - x27*(-x113*x207 + cell[21] + V{0.0185185185185185}) + V{-0.0185185185185185};
1895auto x22 = -x125*x209 - x27*(x113*x209 + cell[22] + V{0.0185185185185185}) + V{-0.0185185185185185};
1896auto x23 = V{0.00462962962962963}*x210*x80*x81 - x27*(-x167*x210 + cell[23] + V{0.00462962962962963}) + V{-0.00462962962962963};
1897auto x24 = V{0.00462962962962963}*x212*x80*x81 - x27*(-x167*x212 + cell[24] + V{0.00462962962962963}) + V{-0.00462962962962963};
1898auto x25 = V{0.00462962962962963}*x214*x80*x81 - x27*(-x167*x214 + cell[25] + V{0.00462962962962963}) + V{-0.00462962962962963};
1899auto x26 = -x172*x215 - x27*(x167*x215 + cell[26] + V{0.00462962962962963}) + V{-0.00462962962962963};
1900cell[0] = x0;
1901cell[1] = x1;
1902cell[2] = x2;
1903cell[3] = x3;
1904cell[4] = x4;
1905cell[5] = x5;
1906cell[6] = x6;
1907cell[7] = x7;
1908cell[8] = x8;
1909cell[9] = x9;
1910cell[10] = x10;
1911cell[11] = x11;
1912cell[12] = x12;
1913cell[13] = x13;
1914cell[14] = x14;
1915cell[15] = x15;
1916cell[16] = x16;
1917cell[17] = x17;
1918cell[18] = x18;
1919cell[19] = x19;
1920cell[20] = x20;
1921cell[21] = x21;
1922cell[22] = x22;
1923cell[23] = x23;
1924cell[24] = x24;
1925cell[25] = x25;
1926cell[26] = x26;
1927return { -x31 + x33 + V{2}, V{1}*x35*(x181 + x183 + x187) };
1928}
1929
1930};
1931
1932
1933template <typename... FIELDS>
1934struct RLB::type<descriptors::D2Q5<FIELDS...>,momenta::BulkTuple,equilibria::SecondOrder> {
1935
1936template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
1937CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
1938{
1939auto x7 = parameters.template get<olb::descriptors::OMEGA>();
1940auto x5 = x7 + V{-1};
1941auto x6 = V{0.333333333333333}*cell[0];
1942auto x8 = cell[0] + cell[1] + cell[2] + cell[3] + cell[4] + V{1};
1943auto x9 = V{1} / (x8);
1944auto x10 = V{0.5}*x9;
1945auto x11 = cell[1] - cell[3];
1946auto x12 = -x11;
1947auto x13 = x12*x12;
1948auto x14 = cell[2] - cell[4];
1949auto x15 = -x14;
1950auto x16 = x15*x15;
1951auto x17 = x10*x16;
1952auto x18 = V{1} / ((x8)*(x8));
1953auto x19 = V{1.5}*x18;
1954auto x20 = x13*x19 + V{-1};
1955auto x21 = V{0.166666666666667}*cell[0] + V{0.166666666666667}*cell[1] + V{0.166666666666667}*cell[2] + V{0.166666666666667}*cell[3] + V{0.166666666666667}*cell[4] + V{0.166666666666667};
1956auto x22 = x9*(V{3}*cell[1] - V{3}*cell[3]);
1957auto x23 = V{3}*x18;
1958auto x24 = x11*x11;
1959auto x25 = x14*x14;
1960auto x26 = x19*x25;
1961auto x27 = V{0.0833333333333333}*cell[0];
1962auto x28 = V{0.25}*x9;
1963auto x29 = x5*(x10*x24 - x25*x28 + x27 - V{0.416666666666667}*cell[1] + V{0.333333333333333}*cell[2] - V{0.416666666666667}*cell[3] + V{0.333333333333333}*cell[4]) + V{-0.166666666666667};
1964auto x30 = x27 + V{0.333333333333333}*cell[1] - V{0.416666666666667}*cell[2] + V{0.333333333333333}*cell[3] - V{0.416666666666667}*cell[4];
1965auto x31 = V{3}*cell[2] - V{3}*cell[4];
1966auto x0 = x5*(-x10*x13 - x17 - x6 + V{0.166666666666667}*cell[1] + V{0.166666666666667}*cell[2] + V{0.166666666666667}*cell[3] + V{0.166666666666667}*cell[4]) - (x16*x19 + x20)*(x6 + V{0.333333333333333}*cell[1] + V{0.333333333333333}*cell[2] + V{0.333333333333333}*cell[3] + V{0.333333333333333}*cell[4] + V{0.333333333333333}) + V{-0.333333333333333};
1967auto x1 = x21*(x22 + x23*x24 - x26 + V{1}) + x29;
1968auto x2 = -x21*(-x16*x23 + x20 - x31*x9) + x5*(-x13*x28 + x17 + x30) + V{-0.166666666666667};
1969auto x3 = x21*(V{3}*x18*x24 - x22 - x26 + V{1}) + x29;
1970auto x4 = -x21*(x19*x24 - x23*x25 + x31*x9 + V{-1}) + x5*(x10*x25 - x24*x28 + x30) + V{-0.166666666666667};
1971cell[0] = x0;
1972cell[1] = x1;
1973cell[2] = x2;
1974cell[3] = x3;
1975cell[4] = x4;
1976return { x8, V{1}*x18*(x24 + x25) };
1977}
1978
1979};
1980
1981template <typename... FIELDS>
1982struct RLB::type<descriptors::D2Q9<FIELDS...>,momenta::BulkTuple,equilibria::SecondOrder> {
1983
1984template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
1985CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
1986{
1987auto x11 = parameters.template get<olb::descriptors::OMEGA>();
1988auto x9 = x11 + V{-1};
1989auto x10 = V{0.444444444444444}*cell[0];
1990auto x12 = cell[0] + cell[1] + cell[2] + cell[3] + cell[4] + cell[5] + cell[6] + cell[7] + cell[8];
1991auto x13 = x12 + V{1};
1992auto x14 = V{1} / (x13);
1993auto x15 = V{0.666666666666667}*x14;
1994auto x16 = cell[1] - cell[5];
1995auto x17 = cell[2] - cell[6];
1996auto x18 = x16 + x17 + cell[3] - cell[7];
1997auto x19 = -x18;
1998auto x20 = x19*x19;
1999auto x21 = -cell[4] + cell[8];
2000auto x22 = x16 + x21 - cell[3] + cell[7];
2001auto x23 = x22*x22;
2002auto x24 = V{1} / ((x13)*(x13));
2003auto x25 = V{1.5}*x24;
2004auto x26 = x23*x25;
2005auto x27 = x20*x25 + V{-1};
2006auto x28 = x26 + x27;
2007auto x29 = x12 + V{1};
2008auto x30 = V{4.5}*x24;
2009auto x31 = x17 + x21 + V{2}*cell[1] - V{2}*cell[5];
2010auto x32 = -x31;
2011auto x33 = V{3}*cell[3];
2012auto x34 = V{3}*cell[7];
2013auto x35 = V{3}*cell[1] - V{3}*cell[5];
2014auto x36 = x33 - x34 + x35 + V{3}*cell[2] - V{3}*cell[6];
2015auto x37 = x14*x36;
2016auto x38 = -x26 + x37 + V{1};
2017auto x39 = x14*(-x33 + x34 + x35 - V{3}*cell[4] + V{3}*cell[8]);
2018auto x40 = x18*x18;
2019auto x41 = x25*x40;
2020auto x42 = x39 - x41;
2021auto x43 = V{0.0833333333333333}*x14;
2022auto x44 = x40*x43;
2023auto x45 = V{0.25}*x14*x22;
2024auto x46 = x18*x45;
2025auto x47 = V{0.0555555555555556}*cell[0];
2026auto x48 = V{0.0277777777777778}*cell[2];
2027auto x49 = V{0.0277777777777778}*cell[4];
2028auto x50 = V{0.0277777777777778}*cell[6];
2029auto x51 = V{0.0277777777777778}*cell[8];
2030auto x52 = x23*x43;
2031auto x53 = x47 - x48 - x49 - x50 - x51 + x52;
2032auto x54 = x9*(-x44 - x46 - x53 + V{0.361111111111111}*cell[1] - V{0.138888888888889}*cell[3] + V{0.361111111111111}*cell[5] - V{0.138888888888889}*cell[7]) + V{0.0277777777777778};
2033auto x55 = V{3}*x24;
2034auto x56 = V{0.166666666666667}*x14;
2035auto x57 = V{0.333333333333333}*x14;
2036auto x58 = -V{0.0555555555555556}*cell[0] + V{0.111111111111111}*cell[1] + V{0.111111111111111}*cell[3] + V{0.111111111111111}*cell[5] + V{0.111111111111111}*cell[7];
2037auto x59 = x9*(x23*x56 - x40*x57 + x58 + V{0.277777777777778}*cell[2] - V{0.222222222222222}*cell[4] + V{0.277777777777778}*cell[6] - V{0.222222222222222}*cell[8]) + V{0.111111111111111};
2038auto x60 = V{0.361111111111111}*cell[3];
2039auto x61 = V{0.361111111111111}*cell[7];
2040auto x62 = V{0.0277777777777778}*cell[0] + 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};
2041auto x63 = x17 + V{2}*cell[3] + cell[4] - V{2}*cell[7] - cell[8];
2042auto x64 = -x63;
2043auto x65 = x23*x55;
2044auto x66 = x9*(-x23*x57 + x40*x56 + x58 - V{0.222222222222222}*cell[2] + V{0.277777777777778}*cell[4] - V{0.222222222222222}*cell[6] + V{0.277777777777778}*cell[8]) + V{0.111111111111111};
2045auto x67 = x26 + x37 + V{-1};
2046auto x68 = x41 + x67;
2047auto x0 = -x28*(x10 + V{0.444444444444444}*cell[1] + V{0.444444444444444}*cell[2] + V{0.444444444444444}*cell[3] + V{0.444444444444444}*cell[4] + V{0.444444444444444}*cell[5] + V{0.444444444444444}*cell[6] + V{0.444444444444444}*cell[7] + V{0.444444444444444}*cell[8] + V{0.444444444444444}) + x9*(-x10 - x15*x20 - x15*x23 + V{0.888888888888889}*cell[1] + V{0.222222222222222}*cell[2] + V{0.888888888888889}*cell[3] + V{0.222222222222222}*cell[4] + V{0.888888888888889}*cell[5] + V{0.222222222222222}*cell[6] + V{0.888888888888889}*cell[7] + V{0.222222222222222}*cell[8]) + V{-0.444444444444444};
2048auto x1 = V{0.0277777777777778}*x29*(x30*(x32*x32) + x38 + x42) - x54;
2049auto x2 = V{0.111111111111111}*x29*(x38 + x40*x55) - x59;
2050auto x3 = -x62*(-x14*x36 + x28 - x30*x64*x64 + x39) + x9*(x19*x45 + x20*x43 + x53 - x60 - x61 + V{0.138888888888889}*cell[1] + V{0.138888888888889}*cell[5]) + V{-0.0277777777777778};
2051auto x4 = -x66 - (x27 + x39 - x65)*(V{0.111111111111111}*cell[0] + V{0.111111111111111}*cell[1] + V{0.111111111111111}*cell[2] + V{0.111111111111111}*cell[3] + V{0.111111111111111}*cell[4] + V{0.111111111111111}*cell[5] + V{0.111111111111111}*cell[6] + V{0.111111111111111}*cell[7] + V{0.111111111111111}*cell[8] + V{0.111111111111111});
2052auto x5 = -V{0.0277777777777778}*x29*(-V{4.5}*x24*x31*x31 + x39 + x68) - x54;
2053auto x6 = V{0.111111111111111}*x29*(V{3}*x24*x40 - x67) - x59;
2054auto x7 = -x62*(-V{4.5}*x24*x63*x63 - x39 + x68) + x9*(x44 - x46 + x47 - x48 - x49 - x50 - x51 + x52 - x60 - x61 + V{0.138888888888889}*cell[1] + V{0.138888888888889}*cell[5]) + V{-0.0277777777777778};
2055auto x8 = V{0.111111111111111}*x29*(x42 + x65 + V{1}) - x66;
2056cell[0] = x0;
2057cell[1] = x1;
2058cell[2] = x2;
2059cell[3] = x3;
2060cell[4] = x4;
2061cell[5] = x5;
2062cell[6] = x6;
2063cell[7] = x7;
2064cell[8] = x8;
2065return { x13, V{1}*x24*(x23 + x40) };
2066}
2067
2068};
2069
2070template <typename... FIELDS>
2071struct RLB::type<descriptors::D3Q7<FIELDS...>,momenta::BulkTuple,equilibria::SecondOrder> {
2072
2073template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
2074CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
2075{
2076auto x10 = parameters.template get<olb::descriptors::OMEGA>();
2077auto x7 = x10 + V{-1};
2078auto x8 = V{0.125}*cell[1];
2079auto x9 = V{0.125}*cell[2];
2080auto x11 = V{0.125}*cell[3];
2081auto x12 = V{0.125}*cell[4];
2082auto x13 = V{0.125}*cell[5];
2083auto x14 = V{0.125}*cell[6];
2084auto x15 = cell[0] + cell[1] + cell[2] + cell[3] + cell[4] + cell[5] + cell[6] + V{1};
2085auto x16 = V{1} / (x15);
2086auto x17 = V{0.5}*x16;
2087auto x18 = cell[1] - cell[4];
2088auto x19 = -x18;
2089auto x20 = x19*x19;
2090auto x21 = cell[2] - cell[5];
2091auto x22 = -x21;
2092auto x23 = x22*x22;
2093auto x24 = cell[3] - cell[6];
2094auto x25 = -x24;
2095auto x26 = x25*x25;
2096auto x27 = V{1} / ((x15)*(x15));
2097auto x28 = V{2}*x27;
2098auto x29 = x20*x28;
2099auto x30 = x23*x28;
2100auto x31 = x26*x28;
2101auto x32 = x30 + x31 + V{-1};
2102auto x33 = V{0.75}*x16;
2103auto x34 = V{0.25}*x16;
2104auto x35 = V{0.0625}*cell[0];
2105auto x36 = x35 + V{0.3125}*cell[3] + V{0.3125}*cell[6];
2106auto x37 = -x26*x34 + x36;
2107auto x38 = V{0.3125}*cell[2] + V{0.3125}*cell[5];
2108auto x39 = -x23*x34 + x38;
2109auto x40 = -V{0.6875}*cell[1] - V{0.6875}*cell[4];
2110auto x41 = x11 + x12 + x13 + x14 + x8 + x9 + V{0.125}*cell[0] + V{0.125};
2111auto x42 = V{4}*cell[1] - V{4}*cell[4];
2112auto x43 = V{6}*x27;
2113auto x44 = V{0.3125}*cell[1] + V{0.3125}*cell[4];
2114auto x45 = -x20*x34 + x44;
2115auto x46 = -V{0.6875}*cell[2] - V{0.6875}*cell[5];
2116auto x47 = V{4}*cell[2] - V{4}*cell[5];
2117auto x48 = x29 + V{-1};
2118auto x49 = x35 - V{0.6875}*cell[3] - V{0.6875}*cell[6];
2119auto x50 = V{4}*cell[3] - V{4}*cell[6];
2120auto x51 = x18*x18;
2121auto x52 = x24*x24;
2122auto x53 = -x34*x52 + x36;
2123auto x54 = x21*x21;
2124auto x55 = -x34*x54 + x38;
2125auto x56 = x28*x54;
2126auto x57 = x28*x52 + V{-1};
2127auto x58 = -x34*x51 + x44;
2128auto x59 = x28*x51;
2129auto x0 = x7*(x11 + x12 + x13 + x14 - x17*x20 - x17*x23 - x17*x26 + x8 + x9 - V{0.375}*cell[0]) - (x29 + x32)*(V{0.25}*cell[0] + V{0.25}*cell[1] + V{0.25}*cell[2] + V{0.25}*cell[3] + V{0.25}*cell[4] + V{0.25}*cell[5] + V{0.25}*cell[6] + V{0.25}) + V{-0.25};
2130auto x1 = -x41*(-x16*x42 - x20*x43 + x32) + x7*(x20*x33 + x37 + x39 + x40) + V{-0.125};
2131auto x2 = -x41*(-x16*x47 - x23*x43 + x31 + x48) + x7*(x23*x33 + x37 + x45 + x46) + V{-0.125};
2132auto x3 = -x41*(-x16*x50 - x26*x43 + x30 + x48) + x7*(x26*x33 + x39 + x45 + x49) + V{-0.125};
2133auto x4 = -x41*(x16*x42 - x43*x51 + x56 + x57) + x7*(x33*x51 + x40 + x53 + x55) + V{-0.125};
2134auto x5 = -x41*(x16*x47 - x43*x54 + x57 + x59) + x7*(x33*x54 + x46 + x53 + x58) + V{-0.125};
2135auto x6 = -x41*(x16*x50 - x43*x52 + x56 + x59 + V{-1}) + x7*(x33*x52 + x49 + x55 + x58) + V{-0.125};
2136cell[0] = x0;
2137cell[1] = x1;
2138cell[2] = x2;
2139cell[3] = x3;
2140cell[4] = x4;
2141cell[5] = x5;
2142cell[6] = x6;
2143return { x15, V{1}*x27*(x51 + x52 + x54) };
2144}
2145
2146};
2147
2148template <typename... FIELDS>
2149struct RLB::type<descriptors::D3Q19<FIELDS...>,momenta::BulkTuple,equilibria::SecondOrder> {
2150
2151template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
2152CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
2153{
2154auto x22 = parameters.template get<olb::descriptors::OMEGA>();
2155auto x19 = x22 + V{-1};
2156auto x20 = cell[10] + cell[14];
2157auto x21 = cell[12] + cell[7];
2158auto x23 = x20 + x21 + 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];
2159auto x24 = x23 + V{1};
2160auto x25 = V{1} / (x24);
2161auto x26 = V{0.5}*x25;
2162auto x27 = cell[13] - cell[4];
2163auto x28 = cell[15] - cell[6];
2164auto x29 = x27 + x28;
2165auto x30 = -cell[1];
2166auto x31 = cell[16] - cell[7];
2167auto x32 = x30 + x31;
2168auto x33 = x20 - cell[5];
2169auto x34 = x29 + x32 + x33;
2170auto x35 = x34*x34;
2171auto x36 = cell[17] - cell[8];
2172auto x37 = x27 + x36;
2173auto x38 = cell[18] - cell[9];
2174auto x39 = -cell[2];
2175auto x40 = x39 + cell[11] - cell[14] + cell[5];
2176auto x41 = x37 + x38 + x40;
2177auto x42 = x41*x41;
2178auto x43 = x28 + x36;
2179auto x44 = -cell[3];
2180auto x45 = -cell[18] + cell[9];
2181auto x46 = x44 + x45;
2182auto x47 = x21 - cell[16];
2183auto x48 = x43 + x46 + x47;
2184auto x49 = x48*x48;
2185auto x50 = V{1} / ((x24)*(x24));
2186auto x51 = V{1.5}*x50;
2187auto x52 = x35*x51;
2188auto x53 = x42*x51;
2189auto x54 = x49*x51;
2190auto x55 = x53 + x54 + V{-1};
2191auto x56 = x52 + x55;
2192auto x57 = 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};
2193auto x58 = V{3}*cell[14];
2194auto x59 = V{3}*cell[16];
2195auto x60 = V{3}*cell[5];
2196auto x61 = V{3}*cell[7];
2197auto x62 = V{3}*cell[13] - V{3}*cell[4];
2198auto x63 = V{3}*cell[15] - V{3}*cell[6];
2199auto x64 = x25*(x58 + x59 - x60 - x61 + x62 + x63 + V{3}*cell[10] - V{3}*cell[1]);
2200auto x65 = V{3}*x50;
2201auto x66 = x35*x65;
2202auto x67 = V{0.166666666666667}*x25;
2203auto x68 = -V{6.93889390390723e-18}*cell[0];
2204auto x69 = V{0.0833333333333333}*x25;
2205auto x70 = -V{0.0833333333333333}*cell[12] - V{0.0833333333333333}*cell[3];
2206auto x71 = x49*x69 + x68 + x70 + V{0.0833333333333333}*cell[13] + V{0.0833333333333333}*cell[14] + V{0.0833333333333333}*cell[4] + V{0.0833333333333333}*cell[5];
2207auto x72 = -V{0.0833333333333333}*cell[11] - V{0.0833333333333333}*cell[2];
2208auto x73 = x42*x69 + x72 + V{0.0833333333333333}*cell[15] + V{0.0833333333333333}*cell[16] + V{0.0833333333333333}*cell[6] + V{0.0833333333333333}*cell[7];
2209auto x74 = x19*(-x35*x67 + x71 + x73 + V{0.166666666666667}*cell[10] - V{0.166666666666667}*cell[17] - V{0.166666666666667}*cell[18] + V{0.166666666666667}*cell[1] - V{0.166666666666667}*cell[8] - V{0.166666666666667}*cell[9]) + V{0.0555555555555556};
2210auto x75 = V{3}*cell[18];
2211auto x76 = V{3}*cell[9];
2212auto x77 = V{3}*cell[17] - V{3}*cell[8];
2213auto x78 = x25*(-x58 + x60 + x62 + x75 - x76 + x77 + V{3}*cell[11] - V{3}*cell[2]);
2214auto x79 = x42*x65;
2215auto x80 = x52 + V{-1};
2216auto x81 = -V{0.0833333333333333}*cell[10] - V{0.0833333333333333}*cell[1];
2217auto x82 = x35*x69 + x81 + V{0.0833333333333333}*cell[17] + V{0.0833333333333333}*cell[18] + V{0.0833333333333333}*cell[8] + V{0.0833333333333333}*cell[9];
2218auto x83 = x19*(-x42*x67 + x71 + x82 + V{0.166666666666667}*cell[11] - V{0.166666666666667}*cell[15] - V{0.166666666666667}*cell[16] + V{0.166666666666667}*cell[2] - V{0.166666666666667}*cell[6] - V{0.166666666666667}*cell[7]) + V{0.0555555555555556};
2219auto x84 = x25*(-x59 + x61 + x63 - x75 + x76 + x77 + V{3}*cell[12] - V{3}*cell[3]);
2220auto x85 = x49*x65;
2221auto x86 = x19*(-x49*x67 + x68 + x73 + x82 + V{0.166666666666667}*cell[12] - V{0.166666666666667}*cell[13] - V{0.166666666666667}*cell[14] + V{0.166666666666667}*cell[3] - V{0.166666666666667}*cell[4] - V{0.166666666666667}*cell[5]) + V{0.0555555555555556};
2222auto x87 = 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};
2223auto x88 = V{4.5}*x50;
2224auto x89 = x32 + cell[10];
2225auto x90 = x38 + x39 + x43 + x89 + cell[11] + V{2}*cell[13] - V{2}*cell[4];
2226auto x91 = x88*(x90*x90);
2227auto x92 = x56 + x64;
2228auto x93 = V{0.25}*x25*x34;
2229auto x94 = x41*x93;
2230auto x95 = V{0.0416666666666667}*x25;
2231auto x96 = -V{0.0416666666666667}*cell[0];
2232auto x97 = V{0.0833333333333333}*x25;
2233auto x98 = -x35*x97 + x96 + V{0.0416666666666667}*cell[10] + V{6.93889390390723e-18}*cell[17] + V{6.93889390390723e-18}*cell[18] + V{0.0416666666666667}*cell[1] + V{6.93889390390723e-18}*cell[8] + V{6.93889390390723e-18}*cell[9];
2234auto x99 = -x42*x97 + V{0.0416666666666667}*cell[11] + V{6.93889390390723e-18}*cell[15] + V{6.93889390390723e-18}*cell[16] + V{0.0416666666666667}*cell[2] + V{6.93889390390723e-18}*cell[6] + V{6.93889390390723e-18}*cell[7];
2235auto x100 = x49*x95 + x70 + x98 + x99;
2236auto x101 = x19*(x100 - x94 + V{0.375}*cell[13] - V{0.125}*cell[14] + V{0.375}*cell[4] - V{0.125}*cell[5]) + V{0.0277777777777778};
2237auto x102 = -x78;
2238auto x103 = -cell[17] + cell[8];
2239auto x104 = x103 + x28 + x45 + x89 - cell[11] + V{2}*cell[14] + cell[2] - V{2}*cell[5];
2240auto x105 = -x104;
2241auto x106 = x19*(x100 + x94 - V{0.125}*cell[13] + V{0.375}*cell[14] - V{0.125}*cell[4] + V{0.375}*cell[5]) + V{0.0277777777777778};
2242auto x107 = x30 + x33;
2243auto x108 = x107 + x37 + x46 + cell[12] + V{2}*cell[15] - V{2}*cell[6];
2244auto x109 = x88*(x108*x108);
2245auto x110 = x48*x93;
2246auto x111 = -x49*x97 + V{0.0416666666666667}*cell[12] + V{6.93889390390723e-18}*cell[13] + V{6.93889390390723e-18}*cell[14] + V{0.0416666666666667}*cell[3] + V{6.93889390390723e-18}*cell[4] + V{6.93889390390723e-18}*cell[5];
2247auto x112 = x111 + x42*x95 + x72 + x98;
2248auto x113 = x19*(-x110 + x112 + V{0.375}*cell[15] - V{0.125}*cell[16] + V{0.375}*cell[6] - V{0.125}*cell[7]) + V{0.0277777777777778};
2249auto x114 = -x84;
2250auto x115 = x27 - cell[12] + cell[3];
2251auto x116 = x103 + x107 + x115 + x38 + V{2}*cell[16] - V{2}*cell[7];
2252auto x117 = -x116;
2253auto x118 = x19*(x110 + x112 - V{0.125}*cell[15] + V{0.375}*cell[16] - V{0.125}*cell[6] + V{0.375}*cell[7]) + V{0.0277777777777778};
2254auto x119 = x29 + x40 + x44 + x47 + V{2}*cell[17] - V{2}*cell[8];
2255auto x120 = x88*(x119*x119);
2256auto x121 = x56 + x78;
2257auto x122 = V{0.25}*x25*x41*x48;
2258auto x123 = x111 + x35*x95 + x81 + x96 + x99;
2259auto x124 = x19*(-x122 + x123 + V{0.375}*cell[17] - V{0.125}*cell[18] + V{0.375}*cell[8] - V{0.125}*cell[9]) + V{0.0277777777777778};
2260auto x125 = x115 + x31 + x40 - cell[15] + V{2}*cell[18] + cell[6] - V{2}*cell[9];
2261auto x126 = -x125;
2262auto x127 = x19*(x122 + x123 - V{0.125}*cell[17] + V{0.375}*cell[18] - V{0.125}*cell[8] + V{0.375}*cell[9]) + V{0.0277777777777778};
2263auto x128 = x23 + V{1};
2264auto x129 = -x53;
2265auto x130 = V{1} - x54;
2266auto x131 = x129 + x130;
2267auto x132 = x131 + x64;
2268auto x133 = -x52;
2269auto x134 = x133 + x78;
2270auto x135 = x133 + x84;
2271auto x136 = -x64;
2272auto x137 = x56 + x84;
2273auto x0 = x19*(-x26*x35 - x26*x42 - x26*x49 - V{0.5}*cell[0] + V{4.16333634234434e-17}*cell[10] + V{4.16333634234434e-17}*cell[11] + V{4.16333634234434e-17}*cell[12] + V{0.5}*cell[13] + V{0.5}*cell[14] + V{0.5}*cell[15] + V{0.5}*cell[16] + V{0.5}*cell[17] + V{0.5}*cell[18] + V{4.16333634234434e-17}*cell[1] + V{4.16333634234434e-17}*cell[2] + V{4.16333634234434e-17}*cell[3] + V{0.5}*cell[4] + V{0.5}*cell[5] + V{0.5}*cell[6] + V{0.5}*cell[7] + V{0.5}*cell[8] + V{0.5}*cell[9]) - x56*(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};
2274auto x1 = -x57*(x55 + x64 - x66) - x74;
2275auto x2 = -x57*(x54 + x78 - x79 + x80) - x83;
2276auto x3 = -x57*(x53 + x80 + x84 - x85) - x86;
2277auto x4 = -x101 - x87*(x78 - x91 + x92);
2278auto x5 = -x106 - x87*(x102 - x88*x105*x105 + x92);
2279auto x6 = -x113 - x87*(-x109 + x84 + x92);
2280auto x7 = -x118 - x87*(x114 - x88*x117*x117 + x92);
2281auto x8 = -x124 - x87*(-x120 + x121 + x84);
2282auto x9 = -x127 - x87*(x114 + x121 - x88*x126*x126);
2283auto x10 = V{0.0555555555555556}*x128*(x132 + x66) - x74;
2284auto x11 = V{0.0555555555555556}*x128*(x130 + x134 + x79) - x83;
2285auto x12 = V{0.0555555555555556}*x128*(x129 + x135 + x85 + V{1}) - x86;
2286auto x13 = -x101 + V{0.0277777777777778}*x128*(x132 + x134 + x91);
2287auto x14 = -x106 - x87*(x121 + x136 - x88*x104*x104);
2288auto x15 = -x113 + V{0.0277777777777778}*x128*(x109 + x132 + x135);
2289auto x16 = -x118 - x87*(x136 + x137 - x88*x116*x116);
2290auto x17 = -x124 + V{0.0277777777777778}*x128*(x120 + x131 + x134 + x84);
2291auto x18 = -x127 - x87*(x102 + x137 - x88*x125*x125);
2292cell[0] = x0;
2293cell[1] = x1;
2294cell[2] = x2;
2295cell[3] = x3;
2296cell[4] = x4;
2297cell[5] = x5;
2298cell[6] = x6;
2299cell[7] = x7;
2300cell[8] = x8;
2301cell[9] = x9;
2302cell[10] = x10;
2303cell[11] = x11;
2304cell[12] = x12;
2305cell[13] = x13;
2306cell[14] = x14;
2307cell[15] = x15;
2308cell[16] = x16;
2309cell[17] = x17;
2310cell[18] = x18;
2311return { x24, V{1}*x50*(x35 + x42 + x49) };
2312}
2313
2314};
2315
2316template <typename... FIELDS>
2317struct RLB::type<descriptors::D3Q27<FIELDS...>,momenta::BulkTuple,equilibria::SecondOrder> {
2318
2319template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
2320CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
2321{
2322auto x30 = parameters.template get<olb::descriptors::OMEGA>();
2323auto x27 = x30 + V{-1};
2324auto x28 = cell[8] + cell[9];
2325auto x29 = cell[15] + cell[21];
2326auto x31 = cell[11] + cell[26];
2327auto x32 = x28 + x29 + x31 + cell[0] + cell[10] + cell[12] + cell[13] + cell[14] + cell[16] + cell[17] + cell[18] + cell[19] + cell[1] + cell[20] + cell[22] + cell[23] + cell[24] + cell[25] + cell[2] + cell[3] + cell[4] + cell[5] + cell[6] + cell[7];
2328auto x33 = x32 + V{1};
2329auto x34 = V{1} / (x33);
2330auto x35 = V{0.444444444444444}*x34;
2331auto x36 = -cell[17];
2332auto x37 = -cell[19];
2333auto x38 = x36 + x37 + cell[4] + cell[6];
2334auto x39 = -cell[24];
2335auto x40 = cell[10] - cell[23];
2336auto x41 = x39 + x40 + cell[11];
2337auto x42 = cell[12] - cell[25];
2338auto x43 = -cell[14];
2339auto x44 = -cell[20] + cell[7];
2340auto x45 = x43 + x44 + cell[1];
2341auto x46 = -cell[18] + cell[5];
2342auto x47 = cell[13] - cell[26];
2343auto x48 = x38 + x41 + x42 + x45 + x46 + x47;
2344auto x49 = -x48;
2345auto x50 = x49*x49;
2346auto x51 = -cell[13];
2347auto x52 = -cell[21];
2348auto x53 = x51 + x52 + cell[26] + cell[8];
2349auto x54 = -cell[22];
2350auto x55 = x36 + cell[4];
2351auto x56 = x54 + x55 + cell[9];
2352auto x57 = -cell[15];
2353auto x58 = x57 + cell[18] + cell[2] - cell[5];
2354auto x59 = -cell[12] + cell[25];
2355auto x60 = x41 + x53 + x56 + x58 + x59;
2356auto x61 = -x60;
2357auto x62 = x61*x61;
2358auto x63 = -cell[16];
2359auto x64 = x42 + x63 + cell[3];
2360auto x65 = -cell[9];
2361auto x66 = x37 + cell[6];
2362auto x67 = x65 + x66 + cell[22];
2363auto x68 = cell[20] - cell[7];
2364auto x69 = x40 - cell[11] + cell[24];
2365auto x70 = x53 + x64 + x67 + x68 + x69;
2366auto x71 = -x70;
2367auto x72 = x71*x71;
2368auto x73 = V{1} / ((x33)*(x33));
2369auto x74 = V{1.5}*x73;
2370auto x75 = x50*x74;
2371auto x76 = x62*x74;
2372auto x77 = x72*x74;
2373auto x78 = x76 + x77 + V{-1};
2374auto x79 = x75 + x78;
2375auto x80 = 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};
2376auto x81 = V{3}*cell[5];
2377auto x82 = V{3}*cell[7];
2378auto x83 = V{3}*cell[13];
2379auto x84 = V{3}*cell[18];
2380auto x85 = V{3}*cell[20];
2381auto x86 = V{3}*cell[26];
2382auto x87 = V{3}*cell[10];
2383auto x88 = V{3}*cell[11];
2384auto x89 = -V{3}*cell[23];
2385auto x90 = V{3}*cell[24];
2386auto x91 = x87 + x88 + x89 - x90 - V{3}*cell[17] + V{3}*cell[4];
2387auto x92 = V{3}*cell[12];
2388auto x93 = V{3}*cell[25];
2389auto x94 = x92 - x93 - V{3}*cell[19] + V{3}*cell[6];
2390auto x95 = x81 + x82 + x83 - x84 - x85 - x86 + x91 + x94 - V{3}*cell[14] + V{3}*cell[1];
2391auto x96 = -x34*x95;
2392auto x97 = V{3}*x73;
2393auto x98 = V{0.222222222222222}*x34;
2394auto x99 = x48*x48;
2395auto x100 = V{1.85037170770859e-17}*cell[10];
2396auto x101 = V{1.85037170770859e-17}*cell[11];
2397auto x102 = V{1.85037170770859e-17}*cell[12];
2398auto x103 = V{1.85037170770859e-17}*cell[13];
2399auto x104 = V{1.85037170770859e-17}*cell[23];
2400auto x105 = V{1.85037170770859e-17}*cell[24];
2401auto x106 = V{1.85037170770859e-17}*cell[25];
2402auto x107 = V{1.85037170770859e-17}*cell[26];
2403auto x108 = -V{9.25185853854297e-18}*cell[0];
2404auto x109 = V{0.111111111111111}*x34;
2405auto x110 = x70*x70;
2406auto x111 = x100 + x101 + x102 + x103 + x104 + x105 + x106 + x107 + x108 + x109*x110 - V{0.111111111111111}*cell[16] + V{0.111111111111111}*cell[17] + V{0.111111111111111}*cell[18] - V{0.111111111111111}*cell[3] + V{0.111111111111111}*cell[4] + V{0.111111111111111}*cell[5];
2407auto x112 = x60*x60;
2408auto x113 = x109*x112 - V{0.111111111111111}*cell[15] + V{0.111111111111111}*cell[19] + V{0.111111111111111}*cell[20] - V{0.111111111111111}*cell[2] + V{0.111111111111111}*cell[6] + V{0.111111111111111}*cell[7];
2409auto x114 = x27*(x111 + x113 - x98*x99 + V{0.222222222222222}*cell[14] + V{0.222222222222222}*cell[1] - V{0.222222222222222}*cell[21] - V{0.222222222222222}*cell[22] - V{0.222222222222222}*cell[8] - V{0.222222222222222}*cell[9]) + V{0.0740740740740741};
2410auto x115 = V{3}*cell[9];
2411auto x116 = V{3}*cell[22];
2412auto x117 = -x83 + x86 - V{3}*cell[21] + V{3}*cell[8];
2413auto x118 = x115 - x116 + x117 - x81 + x84 + x91 - x92 + x93 - V{3}*cell[15] + V{3}*cell[2];
2414auto x119 = -x118*x34;
2415auto x120 = x75 + V{-1};
2416auto x121 = x109*x99 - V{0.111111111111111}*cell[14] - V{0.111111111111111}*cell[1] + V{0.111111111111111}*cell[21] + V{0.111111111111111}*cell[22] + V{0.111111111111111}*cell[8] + V{0.111111111111111}*cell[9];
2417auto x122 = x27*(x111 - x112*x98 + x121 + V{0.222222222222222}*cell[15] - V{0.222222222222222}*cell[19] - V{0.222222222222222}*cell[20] + V{0.222222222222222}*cell[2] - V{0.222222222222222}*cell[6] - V{0.222222222222222}*cell[7]) + V{0.0740740740740741};
2418auto x123 = -x115 + x116 + x117 - x82 + x85 + x87 - x88 + x89 + x90 + x94 - V{3}*cell[16] + V{3}*cell[3];
2419auto x124 = -x123*x34;
2420auto x125 = x27*(x100 + x101 + x102 + x103 + x104 + x105 + x106 + x107 + x108 - x110*x98 + x113 + x121 + V{0.222222222222222}*cell[16] - V{0.222222222222222}*cell[17] - V{0.222222222222222}*cell[18] + V{0.222222222222222}*cell[3] - V{0.222222222222222}*cell[4] - V{0.222222222222222}*cell[5]) + V{0.0740740740740741};
2421auto x126 = 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};
2422auto x127 = V{4.5}*x73;
2423auto x128 = V{2}*cell[11] - V{2}*cell[24];
2424auto x129 = V{2}*cell[10] - V{2}*cell[23];
2425auto x130 = x129 + x52;
2426auto x131 = x57 + cell[2];
2427auto x132 = x131 - V{2}*cell[17] + V{2}*cell[4];
2428auto x133 = x128 + x130 + x132 + x28 + x45 + x54 + x66;
2429auto x134 = -x133;
2430auto x135 = x79 + x96;
2431auto x136 = x119 + x135;
2432auto x137 = x34*x60;
2433auto x138 = V{0.166666666666667}*x48;
2434auto x139 = x137*x138;
2435auto x140 = V{4.62592926927149e-18}*cell[8];
2436auto x141 = V{4.62592926927149e-18}*cell[9];
2437auto x142 = V{4.62592926927149e-18}*cell[21];
2438auto x143 = V{4.62592926927149e-18}*cell[22];
2439auto x144 = V{0.0277777777777778}*cell[1];
2440auto x145 = V{0.0277777777777778}*cell[14];
2441auto x146 = V{0.222222222222222}*cell[10];
2442auto x147 = V{0.222222222222222}*cell[23];
2443auto x148 = -V{0.111111111111111}*cell[13];
2444auto x149 = -V{0.111111111111111}*cell[26];
2445auto x150 = -V{0.0277777777777778}*cell[0];
2446auto x151 = V{0.0555555555555556}*x34;
2447auto x152 = -x151*x99;
2448auto x153 = x140 + x141 + x142 + x143 + x144 + x145 + x146 + x147 + x148 + x149 + x150 + x152;
2449auto x154 = V{0.222222222222222}*cell[11];
2450auto x155 = V{0.222222222222222}*cell[24];
2451auto x156 = -V{0.111111111111111}*cell[12];
2452auto x157 = -V{0.111111111111111}*cell[25];
2453auto x158 = x154 + x155 + x156 + x157;
2454auto x159 = V{0.0277777777777778}*x34;
2455auto x160 = -x112*x151 + V{0.0277777777777778}*cell[15] + V{4.62592926927149e-18}*cell[19] + V{4.62592926927149e-18}*cell[20] + V{0.0277777777777778}*cell[2] + V{4.62592926927149e-18}*cell[6] + V{4.62592926927149e-18}*cell[7];
2456auto x161 = x110*x159 + x160 - V{0.0555555555555556}*cell[16] - V{0.0555555555555556}*cell[3];
2457auto x162 = x27*(-x139 + x153 + x158 + x161 + V{0.25}*cell[17] - V{0.0833333333333333}*cell[18] + V{0.25}*cell[4] - V{0.0833333333333333}*cell[5]) + V{0.0185185185185185};
2458auto x163 = V{2}*cell[25];
2459auto x164 = V{2}*cell[12];
2460auto x165 = -x163 + x164;
2461auto x166 = V{2}*cell[26];
2462auto x167 = V{2}*cell[13];
2463auto x168 = -x166 + x167 - cell[8];
2464auto x169 = V{2}*cell[18];
2465auto x170 = V{2}*cell[5];
2466auto x171 = -x169 + x170 - cell[2];
2467auto x172 = x165 + x168 + x171 + x29 + x45 + x67;
2468auto x173 = -x119;
2469auto x174 = x135 + x173;
2470auto x175 = V{0.222222222222222}*cell[12];
2471auto x176 = V{0.222222222222222}*cell[25];
2472auto x177 = -V{0.111111111111111}*cell[11];
2473auto x178 = -V{0.111111111111111}*cell[24];
2474auto x179 = x175 + x176 + x177 + x178;
2475auto x180 = x150 + V{0.222222222222222}*cell[13] + V{0.222222222222222}*cell[26];
2476auto x181 = -V{0.111111111111111}*cell[10] - V{0.111111111111111}*cell[23];
2477auto x182 = x140 + x141 + x142 + x143 + x144 + x145 + x152 + x180 + x181;
2478auto x183 = x27*(x139 + x161 + x179 + x182 - V{0.0833333333333333}*cell[17] + V{0.25}*cell[18] - V{0.0833333333333333}*cell[4] + V{0.25}*cell[5]) + V{0.0185185185185185};
2479auto x184 = x43 + cell[1];
2480auto x185 = x184 + x46;
2481auto x186 = x63 + cell[3];
2482auto x187 = -V{2}*cell[19] + V{2}*cell[6];
2483auto x188 = x186 + x187;
2484auto x189 = x130 + x165 + x185 + x188 + x55 + x65 + cell[22] + cell[8];
2485auto x190 = -x189;
2486auto x191 = x34*x70;
2487auto x192 = x138*x191;
2488auto x193 = -x110*x151 + V{0.0277777777777778}*cell[16] + V{4.62592926927149e-18}*cell[17] + V{4.62592926927149e-18}*cell[18] + V{0.0277777777777778}*cell[3] + V{4.62592926927149e-18}*cell[4] + V{4.62592926927149e-18}*cell[5];
2489auto x194 = x112*x159 + x193 - V{0.0555555555555556}*cell[15] - V{0.0555555555555556}*cell[2];
2490auto x195 = x27*(x153 + x179 - x192 + x194 + V{0.25}*cell[19] - V{0.0833333333333333}*cell[20] + V{0.25}*cell[6] - V{0.0833333333333333}*cell[7]) + V{0.0185185185185185};
2491auto x196 = -x124;
2492auto x197 = -cell[3];
2493auto x198 = x128 + x197 + cell[16];
2494auto x199 = V{2}*cell[20];
2495auto x200 = V{2}*cell[7];
2496auto x201 = -x199 + x200;
2497auto x202 = x168 + x185 + x198 + x201 + x56 + cell[21];
2498auto x203 = x27*(x158 + x182 + x192 + x194 - V{0.0833333333333333}*cell[19] + V{0.25}*cell[20] - V{0.0833333333333333}*cell[6] + V{0.25}*cell[7]) + V{0.0185185185185185};
2499auto x204 = -V{2}*cell[21] + V{2}*cell[8];
2500auto x205 = x186 + x204;
2501auto x206 = x129 + x166 - x167 + x205 + x38 + x58 + x68;
2502auto x207 = -x206;
2503auto x208 = x119 + x79;
2504auto x209 = x124 + x208;
2505auto x210 = x137*x70;
2506auto x211 = V{0.166666666666667}*x210;
2507auto x212 = x159*x99 + x160 + x193 - V{0.0555555555555556}*cell[14] - V{0.0555555555555556}*cell[1];
2508auto x213 = x27*(x146 + x147 + x156 + x157 + x177 + x178 + x180 - x211 + x212 + V{0.25}*cell[21] - V{0.0833333333333333}*cell[22] + V{0.25}*cell[8] - V{0.0833333333333333}*cell[9]) + V{0.0185185185185185};
2509auto x214 = V{2}*cell[22];
2510auto x215 = V{2}*cell[9];
2511auto x216 = -x214 + x215;
2512auto x217 = x163 - x164 + x198 + x216 + x44 + x55 + x58 + cell[19] - cell[6];
2513auto x218 = x27*(x148 + x149 + x150 + x154 + x155 + x175 + x176 + x181 + x211 + x212 - V{0.0833333333333333}*cell[21] + V{0.25}*cell[22] - V{0.0833333333333333}*cell[8] + V{0.25}*cell[9]) + V{0.0185185185185185};
2514auto x219 = V{0.0138888888888889}*x34;
2515auto x220 = x219*x50;
2516auto x221 = x219*x62;
2517auto x222 = x219*x72;
2518auto x223 = V{0.0416666666666667}*x34*x49;
2519auto x224 = x223*x61;
2520auto x225 = V{0.0138888888888889}*cell[13];
2521auto x226 = V{0.0138888888888889}*cell[26];
2522auto x227 = x225 + x226 - V{0.0555555555555556}*cell[17] + V{0.0277777777777778}*cell[18] - V{0.0555555555555556}*cell[4] + V{0.0277777777777778}*cell[5];
2523auto x228 = x220 + x221 + x222 + x224 + x227;
2524auto x229 = x223*x71;
2525auto x230 = -V{0.0555555555555556}*cell[19] + V{0.0277777777777778}*cell[20] - V{0.0555555555555556}*cell[6] + V{0.0277777777777778}*cell[7];
2526auto x231 = x229 + x230;
2527auto x232 = V{0.0416666666666667}*x34*x61*x71;
2528auto x233 = V{0.0138888888888889}*cell[11];
2529auto x234 = V{0.0138888888888889}*cell[12];
2530auto x235 = V{0.0138888888888889}*cell[24];
2531auto x236 = V{0.0138888888888889}*cell[25];
2532auto x237 = V{0.0138888888888889}*cell[0];
2533auto x238 = -V{1.15648231731787e-18}*cell[1];
2534auto x239 = -V{1.15648231731787e-18}*cell[2];
2535auto x240 = -V{1.15648231731787e-18}*cell[3];
2536auto x241 = -V{1.15648231731787e-18}*cell[14];
2537auto x242 = -V{1.15648231731787e-18}*cell[15];
2538auto x243 = -V{1.15648231731787e-18}*cell[16];
2539auto x244 = x233 + x234 + x235 + x236 + x237 + x238 + x239 + x240 + x241 + x242 + x243 - V{0.0555555555555556}*cell[21] + V{0.0277777777777778}*cell[22] - V{0.0555555555555556}*cell[8] + V{0.0277777777777778}*cell[9];
2540auto x245 = x232 + x244;
2541auto x246 = -V{0.152777777777778}*cell[10] - V{0.152777777777778}*cell[23];
2542auto x247 = 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};
2543auto x248 = x132 + x184;
2544auto x249 = x187 + x204 + x248 + x31 + x39 + x51 + x64 + V{3}*cell[10] - V{3}*cell[23];
2545auto x250 = -x249;
2546auto x251 = V{0.0138888888888889}*cell[10];
2547auto x252 = V{0.0138888888888889}*cell[23];
2548auto x253 = x251 + x252 + V{0.0277777777777778}*cell[19] - V{0.0555555555555556}*cell[20] + V{0.0277777777777778}*cell[6] - V{0.0555555555555556}*cell[7];
2549auto x254 = -x229 + x253;
2550auto x255 = x237 + x238 + x239 + x240 + x241 + x242 + x243 + V{0.0277777777777778}*cell[21] - V{0.0555555555555556}*cell[22] + V{0.0277777777777778}*cell[8] - V{0.0555555555555556}*cell[9];
2551auto x256 = -x232 + x255;
2552auto x257 = x234 + x236 - V{0.152777777777778}*cell[11] - V{0.152777777777778}*cell[24];
2553auto x258 = x197 + x201 + x216 + x248 + x40 + x47 + x59 + V{3}*cell[11] + cell[16] - V{3}*cell[24];
2554auto x259 = V{0.0277777777777778}*cell[17] - V{0.0555555555555556}*cell[18] + V{0.0277777777777778}*cell[4] - V{0.0555555555555556}*cell[5];
2555auto x260 = x220 + x221 + x222 - x224 + x259;
2556auto x261 = x225 + x226 + x233 + x235 + x251 + x252 - V{0.152777777777778}*cell[12] - V{0.152777777777778}*cell[25];
2557auto x262 = x171 + x184 + x188 + x214 - x215 + x47 + x69 + V{3}*cell[12] + cell[15] - V{3}*cell[25];
2558auto x263 = -V{0.152777777777778}*cell[13] - V{0.152777777777778}*cell[26];
2559auto x264 = x112*x219;
2560auto x265 = x110*x219;
2561auto x266 = x219*x99;
2562auto x267 = V{0.0416666666666667}*x210;
2563auto x268 = x244 + x264 + x265 + x266 + x267;
2564auto x269 = V{0.0416666666666667}*x48;
2565auto x270 = x191*x269;
2566auto x271 = x253 - x270;
2567auto x272 = x137*x269;
2568auto x273 = x259 - x272;
2569auto x274 = x34*x95;
2570auto x275 = x131 + x169 - x170 + x199 - x200 + x205 + x59 + x69 - V{3}*cell[13] + cell[14] - cell[1] + V{3}*cell[26];
2571auto x276 = -x275;
2572auto x277 = x123*x34;
2573auto x278 = x112*x74;
2574auto x279 = x110*x74 + V{-1};
2575auto x280 = x278 + x279;
2576auto x281 = x118*x34;
2577auto x282 = x74*x99;
2578auto x283 = x281 + x282;
2579auto x284 = x277 + x280 + x283;
2580auto x285 = x32 + V{1};
2581auto x286 = x274 + x280;
2582auto x287 = x277 + x282;
2583auto x288 = x283 + x286;
2584auto x289 = -x96;
2585auto x290 = -x172;
2586auto x291 = x286 + x287;
2587auto x292 = -x202;
2588auto x293 = x124 + x79;
2589auto x294 = -x217;
2590auto x295 = x227 + x272;
2591auto x296 = x230 + x270;
2592auto x297 = x255 + x264 + x265 + x266 - x267;
2593auto x298 = -x258;
2594auto x299 = -x262;
2595auto x0 = x27*(-x35*x50 - x35*x62 - x35*x72 - V{0.444444444444444}*cell[0] + V{0.888888888888889}*cell[10] + V{0.888888888888889}*cell[11] + V{0.888888888888889}*cell[12] + V{0.888888888888889}*cell[13] + V{3.70074341541719e-17}*cell[14] + V{3.70074341541719e-17}*cell[15] + V{3.70074341541719e-17}*cell[16] + V{0.444444444444444}*cell[17] + V{0.444444444444444}*cell[18] + V{0.444444444444444}*cell[19] + V{3.70074341541719e-17}*cell[1] + V{0.444444444444444}*cell[20] + V{0.444444444444444}*cell[21] + V{0.444444444444444}*cell[22] + V{0.888888888888889}*cell[23] + V{0.888888888888889}*cell[24] + V{0.888888888888889}*cell[25] + V{0.888888888888889}*cell[26] + V{3.70074341541719e-17}*cell[2] + V{3.70074341541719e-17}*cell[3] + V{0.444444444444444}*cell[4] + V{0.444444444444444}*cell[5] + V{0.444444444444444}*cell[6] + V{0.444444444444444}*cell[7] + V{0.444444444444444}*cell[8] + V{0.444444444444444}*cell[9]) - x79*(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};
2596auto x1 = -x114 - x80*(-x50*x97 + x78 + x96);
2597auto x2 = -x122 - x80*(x119 + x120 - x62*x97 + x77);
2598auto x3 = -x125 - x80*(x120 + x124 - x72*x97 + x76);
2599auto x4 = -x126*(-x127*x134*x134 + x136) - x162;
2600auto x5 = -x126*(-x127*x172*x172 + x174) - x183;
2601auto x6 = -x126*(x124 - x127*x190*x190 + x135) - x195;
2602auto x7 = -x126*(-x127*x202*x202 + x135 + x196) - x203;
2603auto x8 = -x126*(-x127*x207*x207 + x209) - x213;
2604auto x9 = -x126*(-x127*x217*x217 + x196 + x208) - x218;
2605auto x10 = -x247*(x124 - x127*x250*x250 + x136) + x27*(x228 + x231 + x245 + x246) + V{-0.00462962962962963};
2606auto x11 = -x247*(-x127*x258*x258 + x136 + x196) + x27*(x228 + x254 + x256 + x257) + V{-0.00462962962962963};
2607auto x12 = -x247*(x124 - x127*x262*x262 + x174) + x27*(x231 + x256 + x260 + x261) + V{-0.00462962962962963};
2608auto x13 = -x247*(-x127*x276*x276 - x274 + x284) + x27*(x263 + x268 + x271 + x273) + V{-0.00462962962962963};
2609auto x14 = -x114 + V{0.0740740740740741}*x285*(-x286 + V{3}*x73*x99);
2610auto x15 = -x122 + V{0.0740740740740741}*x285*(V{3}*x112*x73 - x279 - x283);
2611auto x16 = -x125 + V{0.0740740740740741}*x285*(V{3}*x110*x73 - x278 - x287 + V{1});
2612auto x17 = -x162 - V{0.0185185185185185}*x285*(x288 - V{4.5}*x73*x133*x133);
2613auto x18 = -x126*(-x127*x290*x290 + x208 + x289) - x183;
2614auto x19 = -x195 - V{0.0185185185185185}*x285*(x291 - V{4.5}*x73*x189*x189);
2615auto x20 = -x126*(-x127*x292*x292 + x289 + x293) - x203;
2616auto x21 = -x213 - V{0.0185185185185185}*x285*(x284 - V{4.5}*x73*x206*x206);
2617auto x22 = -x126*(-x127*x294*x294 + x173 + x293) - x218;
2618auto x23 = -x247*(-x127*x249*x249 + x277 + x288) + x27*(x246 + x268 + x295 + x296) + V{-0.00462962962962963};
2619auto x24 = -x247*(-x127*x298*x298 - x277 + x288) + x27*(x257 + x271 + x295 + x297) + V{-0.00462962962962963};
2620auto x25 = -x247*(-x127*x299*x299 - x281 + x291) + x27*(x261 + x273 + x296 + x297) + V{-0.00462962962962963};
2621auto x26 = -x247*(-x127*x275*x275 + x209 + x289) + x27*(x245 + x254 + x260 + x263) + V{-0.00462962962962963};
2622cell[0] = x0;
2623cell[1] = x1;
2624cell[2] = x2;
2625cell[3] = x3;
2626cell[4] = x4;
2627cell[5] = x5;
2628cell[6] = x6;
2629cell[7] = x7;
2630cell[8] = x8;
2631cell[9] = x9;
2632cell[10] = x10;
2633cell[11] = x11;
2634cell[12] = x12;
2635cell[13] = x13;
2636cell[14] = x14;
2637cell[15] = x15;
2638cell[16] = x16;
2639cell[17] = x17;
2640cell[18] = x18;
2641cell[19] = x19;
2642cell[20] = x20;
2643cell[21] = x21;
2644cell[22] = x22;
2645cell[23] = x23;
2646cell[24] = x24;
2647cell[25] = x25;
2648cell[26] = x26;
2649return { x33, V{1}*x73*(x110 + x112 + x99) };
2650}
2651
2652};
2653
2654
2655template <typename... FIELDS>
2656struct PerPopulationBGK::type<descriptors::D2Q5<FIELDS...>,momenta::BulkTuple,equilibria::SecondOrder> {
2657
2658template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
2659CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
2660{
2661auto x11 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[4];
2662auto x10 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[3];
2663auto x8 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[1];
2664auto x9 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[2];
2665auto x7 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[0];
2666auto x5 = cell[0] + cell[1] + cell[2] + cell[3] + cell[4];
2667auto x6 = x5 + V{1};
2668auto x12 = x5 + V{1};
2669auto x13 = V{1} / ((x12)*(x12));
2670auto x14 = V{1.5}*x13;
2671auto x15 = cell[2] - cell[4];
2672auto x16 = -x15;
2673auto x17 = x16*x16;
2674auto x18 = cell[1] - cell[3];
2675auto x19 = -x18;
2676auto x20 = x14*(x19*x19) + V{-1};
2677auto x21 = V{1} / (x12);
2678auto x22 = x21*(V{3}*cell[1] - V{3}*cell[3]);
2679auto x23 = V{3}*x13;
2680auto x24 = x18*x18;
2681auto x25 = x15*x15;
2682auto x26 = x14*x25;
2683auto x27 = V{3}*cell[2] - V{3}*cell[4];
2684cell[0] = -V{0.333333333333333}*x7*(x6*(x14*x17 + x20) + V{1}) - (x7 + V{-1})*cell[0];
2685cell[1] = V{0.166666666666667}*x8*(x6*(x22 + x23*x24 - x26 + V{1}) + V{-1}) - (x8 + V{-1})*cell[1];
2686cell[2] = -V{0.166666666666667}*x9*(x6*(-x17*x23 + x20 - x21*x27) + V{1}) - (x9 + V{-1})*cell[2];
2687cell[3] = V{0.166666666666667}*x10*(x6*(V{3}*x13*x24 - x22 - x26 + V{1}) + V{-1}) - (x10 + V{-1})*cell[3];
2688cell[4] = -V{0.166666666666667}*x11*(x6*(x14*x24 + x21*x27 - x23*x25 + V{-1}) + V{1}) - (x11 + V{-1})*cell[4];
2689return { x12, V{1}*x13*(x24 + x25) };
2690}
2691
2692};
2693
2694template <typename... FIELDS>
2695struct PerPopulationBGK::type<descriptors::D2Q9<FIELDS...>,momenta::BulkTuple,equilibria::SecondOrder> {
2696
2697template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
2698CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
2699{
2700auto x15 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[4];
2701auto x11 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[0];
2702auto x17 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[6];
2703auto x14 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[3];
2704auto x18 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[7];
2705auto x13 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[2];
2706auto x12 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[1];
2707auto x19 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[8];
2708auto x16 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[5];
2709auto x9 = cell[0] + cell[1] + cell[2] + cell[3] + cell[4] + cell[5] + cell[6] + cell[7] + cell[8];
2710auto x10 = x9 + V{1};
2711auto x20 = x9 + V{1};
2712auto x21 = V{1} / ((x20)*(x20));
2713auto x22 = V{1.5}*x21;
2714auto x23 = cell[1] - cell[5];
2715auto x24 = -cell[4] + cell[8];
2716auto x25 = x23 + x24 - cell[3] + cell[7];
2717auto x26 = x25*x25;
2718auto x27 = x22*x26;
2719auto x28 = cell[2] - cell[6];
2720auto x29 = x23 + x28 + cell[3] - cell[7];
2721auto x30 = -x29;
2722auto x31 = x22*(x30*x30) + V{-1};
2723auto x32 = x27 + x31;
2724auto x33 = V{4.5}*x21;
2725auto x34 = x24 + x28 + V{2}*cell[1] - V{2}*cell[5];
2726auto x35 = x33*(x34*x34);
2727auto x36 = V{1} / (x20);
2728auto x37 = V{3}*cell[3];
2729auto x38 = V{3}*cell[7];
2730auto x39 = V{3}*cell[1] - V{3}*cell[5];
2731auto x40 = x37 - x38 + x39 + V{3}*cell[2] - V{3}*cell[6];
2732auto x41 = x36*x40;
2733auto x42 = -x27 + x41 + V{1};
2734auto x43 = -x37 + x38 + x39 - V{3}*cell[4] + V{3}*cell[8];
2735auto x44 = x36*x43;
2736auto x45 = x29*x29;
2737auto x46 = x22*x45;
2738auto x47 = x44 - x46;
2739auto x48 = V{3}*x21;
2740auto x49 = x28 + V{2}*cell[3] + cell[4] - V{2}*cell[7] - cell[8];
2741auto x50 = -x49;
2742auto x51 = x26*x48;
2743auto x52 = x27 + x41 + V{-1};
2744auto x53 = x46 + x52;
2745cell[0] = -V{0.444444444444444}*x11*(x10*x32 + V{1}) - (x11 + V{-1})*cell[0];
2746cell[1] = V{0.0277777777777778}*x12*(x10*(x35 + x42 + x47) + V{-1}) - (x12 + V{-1})*cell[1];
2747cell[2] = V{0.111111111111111}*x13*(x10*(x42 + x45*x48) + V{-1}) - (x13 + V{-1})*cell[2];
2748cell[3] = -V{0.0277777777777778}*x14*(x10*(x32 - x33*x50*x50 - x36*x40 + x44) + V{1}) - (x14 + V{-1})*cell[3];
2749cell[4] = -V{0.111111111111111}*x15*(x10*(x31 + x44 - x51) + V{1}) - (x15 + V{-1})*cell[4];
2750cell[5] = -V{0.0277777777777778}*x16*(x10*(-x35 + x44 + x53) + V{1}) - (x16 + V{-1})*cell[5];
2751cell[6] = V{0.111111111111111}*x17*(x10*(V{3}*x21*x45 - x52) + V{-1}) - (x17 + V{-1})*cell[6];
2752cell[7] = V{0.0277777777777778}*x18*(-x10*(-V{4.5}*x21*x49*x49 - x36*x43 + x53) + V{-1}) - (x18 + V{-1})*cell[7];
2753cell[8] = V{0.111111111111111}*x19*(x10*(x47 + x51 + V{1}) + V{-1}) - (x19 + V{-1})*cell[8];
2754return { x20, V{1}*x21*(x26 + x45) };
2755}
2756
2757};
2758
2759template <typename... FIELDS>
2760struct PerPopulationBGK::type<descriptors::D3Q7<FIELDS...>,momenta::BulkTuple,equilibria::SecondOrder> {
2761
2762template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
2763CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
2764{
2765auto x15 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[5];
2766auto x11 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[1];
2767auto x10 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[0];
2768auto x14 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[4];
2769auto x13 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[3];
2770auto x12 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[2];
2771auto x16 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[6];
2772auto x7 = cell[0] + cell[1] + cell[2] + cell[3] + cell[4] + cell[5] + cell[6];
2773auto x8 = x7 + V{1};
2774auto x9 = x7 + V{1};
2775auto x17 = V{1} / ((x9)*(x9));
2776auto x18 = V{2}*x17;
2777auto x19 = cell[1] - cell[4];
2778auto x20 = -x19;
2779auto x21 = x20*x20;
2780auto x22 = x18*x21;
2781auto x23 = cell[2] - cell[5];
2782auto x24 = -x23;
2783auto x25 = x24*x24;
2784auto x26 = x18*x25;
2785auto x27 = cell[3] - cell[6];
2786auto x28 = -x27;
2787auto x29 = x28*x28;
2788auto x30 = x18*x29;
2789auto x31 = x26 + x30 + V{-1};
2790auto x32 = V{1} / (x9);
2791auto x33 = V{4}*cell[1] - V{4}*cell[4];
2792auto x34 = V{6}*x17;
2793auto x35 = V{4}*cell[2] - V{4}*cell[5];
2794auto x36 = x22 + V{-1};
2795auto x37 = V{4}*cell[3] - V{4}*cell[6];
2796auto x38 = x23*x23;
2797auto x39 = x18*x38;
2798auto x40 = x19*x19;
2799auto x41 = x27*x27;
2800auto x42 = x18*x41 + V{-1};
2801auto x43 = x18*x40;
2802cell[0] = -V{0.25}*x10*(x8*(x22 + x31) + V{1}) - (x10 + V{-1})*cell[0];
2803cell[1] = -V{0.125}*x11*(x8*(-x21*x34 + x31 - x32*x33) + V{1}) - (x11 + V{-1})*cell[1];
2804cell[2] = -V{0.125}*x12*(x8*(-x25*x34 + x30 - x32*x35 + x36) + V{1}) - (x12 + V{-1})*cell[2];
2805cell[3] = -V{0.125}*x13*(x8*(x26 - x29*x34 - x32*x37 + x36) + V{1}) - (x13 + V{-1})*cell[3];
2806cell[4] = -V{0.125}*x14*(x8*(x32*x33 - x34*x40 + x39 + x42) + V{1}) - (x14 + V{-1})*cell[4];
2807cell[5] = -V{0.125}*x15*(x8*(x32*x35 - x34*x38 + x42 + x43) + V{1}) - (x15 + V{-1})*cell[5];
2808cell[6] = -V{0.125}*x16*(x8*(x32*x37 - x34*x41 + x39 + x43 + V{-1}) + V{1}) - (x16 + V{-1})*cell[6];
2809return { x9, V{1}*x17*(x38 + x40 + x41) };
2810}
2811
2812};
2813
2814template <typename... FIELDS>
2815struct PerPopulationBGK::type<descriptors::D3Q19<FIELDS...>,momenta::BulkTuple,equilibria::SecondOrder> {
2816
2817template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
2818CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
2819{
2820auto x27 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[5];
2821auto x33 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[11];
2822auto x32 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[10];
2823auto x40 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[18];
2824auto x35 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[13];
2825auto x31 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[9];
2826auto x37 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[15];
2827auto x30 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[8];
2828auto x29 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[7];
2829auto x34 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[12];
2830auto x25 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[3];
2831auto x38 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[16];
2832auto x24 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[2];
2833auto x36 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[14];
2834auto x28 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[6];
2835auto x22 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[0];
2836auto x26 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[4];
2837auto x23 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[1];
2838auto x39 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[17];
2839auto x19 = cell[10] + cell[14];
2840auto x20 = cell[12] + cell[7];
2841auto x21 = x19 + x20 + 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];
2842auto x41 = x21 + V{1};
2843auto x42 = x21 + V{1};
2844auto x43 = V{1} / ((x42)*(x42));
2845auto x44 = V{1.5}*x43;
2846auto x45 = cell[13] - cell[4];
2847auto x46 = cell[15] - cell[6];
2848auto x47 = x45 + x46;
2849auto x48 = -cell[1];
2850auto x49 = cell[16] - cell[7];
2851auto x50 = x48 + x49;
2852auto x51 = x19 - cell[5];
2853auto x52 = x47 + x50 + x51;
2854auto x53 = x52*x52;
2855auto x54 = x44*x53;
2856auto x55 = cell[17] - cell[8];
2857auto x56 = x45 + x55;
2858auto x57 = cell[18] - cell[9];
2859auto x58 = -cell[2];
2860auto x59 = x58 + cell[11] - cell[14] + cell[5];
2861auto x60 = x56 + x57 + x59;
2862auto x61 = x60*x60;
2863auto x62 = x44*x61;
2864auto x63 = x46 + x55;
2865auto x64 = -cell[3];
2866auto x65 = -cell[18] + cell[9];
2867auto x66 = x64 + x65;
2868auto x67 = x20 - cell[16];
2869auto x68 = x63 + x66 + x67;
2870auto x69 = x68*x68;
2871auto x70 = x44*x69;
2872auto x71 = x62 + x70 + V{-1};
2873auto x72 = x54 + x71;
2874auto x73 = V{1} / (x42);
2875auto x74 = V{3}*cell[14];
2876auto x75 = V{3}*cell[16];
2877auto x76 = V{3}*cell[5];
2878auto x77 = V{3}*cell[7];
2879auto x78 = V{3}*cell[13] - V{3}*cell[4];
2880auto x79 = V{3}*cell[15] - V{3}*cell[6];
2881auto x80 = x73*(x74 + x75 - x76 - x77 + x78 + x79 + V{3}*cell[10] - V{3}*cell[1]);
2882auto x81 = V{3}*x43;
2883auto x82 = x53*x81;
2884auto x83 = V{3}*cell[18];
2885auto x84 = V{3}*cell[9];
2886auto x85 = V{3}*cell[17] - V{3}*cell[8];
2887auto x86 = x73*(-x74 + x76 + x78 + x83 - x84 + x85 + V{3}*cell[11] - V{3}*cell[2]);
2888auto x87 = x61*x81;
2889auto x88 = x54 + V{-1};
2890auto x89 = x73*(-x75 + x77 + x79 - x83 + x84 + x85 + V{3}*cell[12] - V{3}*cell[3]);
2891auto x90 = x69*x81;
2892auto x91 = V{4.5}*x43;
2893auto x92 = x50 + cell[10];
2894auto x93 = x57 + x58 + x63 + x92 + cell[11] + V{2}*cell[13] - V{2}*cell[4];
2895auto x94 = x91*(x93*x93);
2896auto x95 = x72 + x80;
2897auto x96 = -x86;
2898auto x97 = -cell[17] + cell[8];
2899auto x98 = x46 + x65 + x92 + x97 - cell[11] + V{2}*cell[14] + cell[2] - V{2}*cell[5];
2900auto x99 = -x98;
2901auto x100 = x48 + x51;
2902auto x101 = x100 + x56 + x66 + cell[12] + V{2}*cell[15] - V{2}*cell[6];
2903auto x102 = x91*(x101*x101);
2904auto x103 = -x89;
2905auto x104 = x45 - cell[12] + cell[3];
2906auto x105 = x100 + x104 + x57 + x97 + V{2}*cell[16] - V{2}*cell[7];
2907auto x106 = -x105;
2908auto x107 = x47 + x59 + x64 + x67 + V{2}*cell[17] - V{2}*cell[8];
2909auto x108 = x91*(x107*x107);
2910auto x109 = x72 + x86;
2911auto x110 = x104 + x49 + x59 - cell[15] + V{2}*cell[18] + cell[6] - V{2}*cell[9];
2912auto x111 = -x110;
2913auto x112 = -x62;
2914auto x113 = V{1} - x70;
2915auto x114 = x112 + x113;
2916auto x115 = x114 + x80;
2917auto x116 = -x54;
2918auto x117 = x116 + x86;
2919auto x118 = x116 + x89;
2920auto x119 = -x80;
2921auto x120 = x72 + x89;
2922cell[0] = -V{0.333333333333333}*x22*(x41*x72 + V{1}) - (x22 + V{-1})*cell[0];
2923cell[1] = -V{0.0555555555555556}*x23*(x41*(x71 + x80 - x82) + V{1}) - (x23 + V{-1})*cell[1];
2924cell[2] = -V{0.0555555555555556}*x24*(x41*(x70 + x86 - x87 + x88) + V{1}) - (x24 + V{-1})*cell[2];
2925cell[3] = -V{0.0555555555555556}*x25*(x41*(x62 + x88 + x89 - x90) + V{1}) - (x25 + V{-1})*cell[3];
2926cell[4] = -V{0.0277777777777778}*x26*(x41*(x86 - x94 + x95) + V{1}) - (x26 + V{-1})*cell[4];
2927cell[5] = -V{0.0277777777777778}*x27*(x41*(-x91*x99*x99 + x95 + x96) + V{1}) - (x27 + V{-1})*cell[5];
2928cell[6] = -V{0.0277777777777778}*x28*(x41*(-x102 + x89 + x95) + V{1}) - (x28 + V{-1})*cell[6];
2929cell[7] = -V{0.0277777777777778}*x29*(x41*(x103 - x91*x106*x106 + x95) + V{1}) - (x29 + V{-1})*cell[7];
2930cell[8] = -V{0.0277777777777778}*x30*(x41*(-x108 + x109 + x89) + V{1}) - (x30 + V{-1})*cell[8];
2931cell[9] = -V{0.0277777777777778}*x31*(x41*(x103 + x109 - x91*x111*x111) + V{1}) - (x31 + V{-1})*cell[9];
2932cell[10] = V{0.0555555555555556}*x32*(x41*(x115 + x82) + V{-1}) - (x32 + V{-1})*cell[10];
2933cell[11] = V{0.0555555555555556}*x33*(x41*(x113 + x117 + x87) + V{-1}) - (x33 + V{-1})*cell[11];
2934cell[12] = V{0.0555555555555556}*x34*(x41*(x112 + x118 + x90 + V{1}) + V{-1}) - (x34 + V{-1})*cell[12];
2935cell[13] = V{0.0277777777777778}*x35*(x41*(x115 + x117 + x94) + V{-1}) - (x35 + V{-1})*cell[13];
2936cell[14] = -V{0.0277777777777778}*x36*(x41*(x109 + x119 - x91*x98*x98) + V{1}) - (x36 + V{-1})*cell[14];
2937cell[15] = V{0.0277777777777778}*x37*(x41*(x102 + x115 + x118) + V{-1}) - (x37 + V{-1})*cell[15];
2938cell[16] = -V{0.0277777777777778}*x38*(x41*(x119 + x120 - x91*x105*x105) + V{1}) - (x38 + V{-1})*cell[16];
2939cell[17] = V{0.0277777777777778}*x39*(x41*(x108 + x114 + x117 + x89) + V{-1}) - (x39 + V{-1})*cell[17];
2940cell[18] = -V{0.0277777777777778}*x40*(x41*(x120 - x91*x110*x110 + x96) + V{1}) - (x40 + V{-1})*cell[18];
2941return { x42, V{1}*x43*(x53 + x61 + x69) };
2942}
2943
2944};
2945
2946template <typename... FIELDS>
2947struct PerPopulationBGK::type<descriptors::D3Q27<FIELDS...>,momenta::BulkTuple,equilibria::SecondOrder> {
2948
2949template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
2950CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
2951{
2952auto x56 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[26];
2953auto x49 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[19];
2954auto x48 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[18];
2955auto x54 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[24];
2956auto x33 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[3];
2957auto x32 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[2];
2958auto x45 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[15];
2959auto x40 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[10];
2960auto x35 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[5];
2961auto x31 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[1];
2962auto x37 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[7];
2963auto x50 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[20];
2964auto x30 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[0];
2965auto x53 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[23];
2966auto x55 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[25];
2967auto x51 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[21];
2968auto x43 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[13];
2969auto x46 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[16];
2970auto x34 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[4];
2971auto x38 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[8];
2972auto x44 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[14];
2973auto x36 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[6];
2974auto x52 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[22];
2975auto x42 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[12];
2976auto x41 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[11];
2977auto x39 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[9];
2978auto x47 = parameters.template get<olb::collision::PerPopulationBGK::OMEGA>()[17];
2979auto x27 = cell[8] + cell[9];
2980auto x28 = cell[15] + cell[21];
2981auto x29 = cell[11] + cell[26];
2982auto x57 = x27 + x28 + x29 + cell[0] + cell[10] + cell[12] + cell[13] + cell[14] + cell[16] + cell[17] + cell[18] + cell[19] + cell[1] + cell[20] + cell[22] + cell[23] + cell[24] + cell[25] + cell[2] + cell[3] + cell[4] + cell[5] + cell[6] + cell[7];
2983auto x58 = x57 + V{1};
2984auto x59 = x57 + V{1};
2985auto x60 = V{1} / ((x59)*(x59));
2986auto x61 = V{1.5}*x60;
2987auto x62 = -cell[17];
2988auto x63 = -cell[19];
2989auto x64 = x62 + x63 + cell[4] + cell[6];
2990auto x65 = -cell[24];
2991auto x66 = cell[10] - cell[23];
2992auto x67 = x65 + x66 + cell[11];
2993auto x68 = cell[12] - cell[25];
2994auto x69 = -cell[14];
2995auto x70 = -cell[20] + cell[7];
2996auto x71 = x69 + x70 + cell[1];
2997auto x72 = -cell[18] + cell[5];
2998auto x73 = cell[13] - cell[26];
2999auto x74 = x64 + x67 + x68 + x71 + x72 + x73;
3000auto x75 = -x74;
3001auto x76 = x75*x75;
3002auto x77 = x61*x76;
3003auto x78 = -cell[13];
3004auto x79 = -cell[21];
3005auto x80 = x78 + x79 + cell[26] + cell[8];
3006auto x81 = -cell[22];
3007auto x82 = x62 + cell[4];
3008auto x83 = x81 + x82 + cell[9];
3009auto x84 = -cell[15];
3010auto x85 = x84 + cell[18] + cell[2] - cell[5];
3011auto x86 = -cell[12] + cell[25];
3012auto x87 = x67 + x80 + x83 + x85 + x86;
3013auto x88 = -x87;
3014auto x89 = x88*x88;
3015auto x90 = x61*x89;
3016auto x91 = -cell[16];
3017auto x92 = x68 + x91 + cell[3];
3018auto x93 = -cell[9];
3019auto x94 = x63 + cell[6];
3020auto x95 = x93 + x94 + cell[22];
3021auto x96 = cell[20] - cell[7];
3022auto x97 = x66 - cell[11] + cell[24];
3023auto x98 = x80 + x92 + x95 + x96 + x97;
3024auto x99 = -x98;
3025auto x100 = x99*x99;
3026auto x101 = x100*x61;
3027auto x102 = x101 + x90 + V{-1};
3028auto x103 = x102 + x77;
3029auto x104 = V{1} / (x59);
3030auto x105 = V{3}*cell[5];
3031auto x106 = V{3}*cell[7];
3032auto x107 = V{3}*cell[13];
3033auto x108 = V{3}*cell[18];
3034auto x109 = V{3}*cell[20];
3035auto x110 = V{3}*cell[26];
3036auto x111 = V{3}*cell[10];
3037auto x112 = V{3}*cell[11];
3038auto x113 = -V{3}*cell[23];
3039auto x114 = V{3}*cell[24];
3040auto x115 = x111 + x112 + x113 - x114 - V{3}*cell[17] + V{3}*cell[4];
3041auto x116 = V{3}*cell[12];
3042auto x117 = V{3}*cell[25];
3043auto x118 = x116 - x117 - V{3}*cell[19] + V{3}*cell[6];
3044auto x119 = x105 + x106 + x107 - x108 - x109 - x110 + x115 + x118 - V{3}*cell[14] + V{3}*cell[1];
3045auto x120 = -x104*x119;
3046auto x121 = V{3}*x60;
3047auto x122 = V{3}*cell[9];
3048auto x123 = V{3}*cell[22];
3049auto x124 = -x107 + x110 - V{3}*cell[21] + V{3}*cell[8];
3050auto x125 = -x105 + x108 + x115 - x116 + x117 + x122 - x123 + x124 - V{3}*cell[15] + V{3}*cell[2];
3051auto x126 = -x104*x125;
3052auto x127 = x77 + V{-1};
3053auto x128 = -x106 + x109 + x111 - x112 + x113 + x114 + x118 - x122 + x123 + x124 - V{3}*cell[16] + V{3}*cell[3];
3054auto x129 = -x104*x128;
3055auto x130 = V{4.5}*x60;
3056auto x131 = V{2}*cell[11] - V{2}*cell[24];
3057auto x132 = V{2}*cell[10] - V{2}*cell[23];
3058auto x133 = x132 + x79;
3059auto x134 = x84 + cell[2];
3060auto x135 = x134 - V{2}*cell[17] + V{2}*cell[4];
3061auto x136 = x131 + x133 + x135 + x27 + x71 + x81 + x94;
3062auto x137 = -x136;
3063auto x138 = x103 + x120;
3064auto x139 = x126 + x138;
3065auto x140 = V{2}*cell[25];
3066auto x141 = V{2}*cell[12];
3067auto x142 = -x140 + x141;
3068auto x143 = V{2}*cell[26];
3069auto x144 = V{2}*cell[13];
3070auto x145 = -x143 + x144 - cell[8];
3071auto x146 = V{2}*cell[18];
3072auto x147 = V{2}*cell[5];
3073auto x148 = -x146 + x147 - cell[2];
3074auto x149 = x142 + x145 + x148 + x28 + x71 + x95;
3075auto x150 = -x126;
3076auto x151 = x138 + x150;
3077auto x152 = x69 + cell[1];
3078auto x153 = x152 + x72;
3079auto x154 = x91 + cell[3];
3080auto x155 = -V{2}*cell[19] + V{2}*cell[6];
3081auto x156 = x154 + x155;
3082auto x157 = x133 + x142 + x153 + x156 + x82 + x93 + cell[22] + cell[8];
3083auto x158 = -x157;
3084auto x159 = -x129;
3085auto x160 = -cell[3];
3086auto x161 = x131 + x160 + cell[16];
3087auto x162 = V{2}*cell[20];
3088auto x163 = V{2}*cell[7];
3089auto x164 = -x162 + x163;
3090auto x165 = x145 + x153 + x161 + x164 + x83 + cell[21];
3091auto x166 = -V{2}*cell[21] + V{2}*cell[8];
3092auto x167 = x154 + x166;
3093auto x168 = x132 + x143 - x144 + x167 + x64 + x85 + x96;
3094auto x169 = -x168;
3095auto x170 = x103 + x126;
3096auto x171 = x129 + x170;
3097auto x172 = V{2}*cell[22];
3098auto x173 = V{2}*cell[9];
3099auto x174 = -x172 + x173;
3100auto x175 = x140 - x141 + x161 + x174 + x70 + x82 + x85 + cell[19] - cell[6];
3101auto x176 = x135 + x152;
3102auto x177 = x155 + x166 + x176 + x29 + x65 + x78 + x92 + V{3}*cell[10] - V{3}*cell[23];
3103auto x178 = -x177;
3104auto x179 = x160 + x164 + x174 + x176 + x66 + x73 + x86 + V{3}*cell[11] + cell[16] - V{3}*cell[24];
3105auto x180 = x148 + x152 + x156 + x172 - x173 + x73 + x97 + V{3}*cell[12] + cell[15] - V{3}*cell[25];
3106auto x181 = x104*x119;
3107auto x182 = x134 + x146 - x147 + x162 - x163 + x167 + x86 + x97 - V{3}*cell[13] + cell[14] - cell[1] + V{3}*cell[26];
3108auto x183 = -x182;
3109auto x184 = x104*x128;
3110auto x185 = x87*x87;
3111auto x186 = x185*x61;
3112auto x187 = x98*x98;
3113auto x188 = x187*x61 + V{-1};
3114auto x189 = x186 + x188;
3115auto x190 = x104*x125;
3116auto x191 = x74*x74;
3117auto x192 = x191*x61;
3118auto x193 = x190 + x192;
3119auto x194 = x184 + x189 + x193;
3120auto x195 = x181 + x189;
3121auto x196 = x184 + x192;
3122auto x197 = x193 + x195;
3123auto x198 = -x120;
3124auto x199 = -x149;
3125auto x200 = x195 + x196;
3126auto x201 = -x165;
3127auto x202 = x103 + x129;
3128auto x203 = -x175;
3129auto x204 = -x179;
3130auto x205 = -x180;
3131cell[0] = -V{0.296296296296296}*x30*(x103*x58 + V{1}) - (x30 + V{-1})*cell[0];
3132cell[1] = -V{0.0740740740740741}*x31*(x58*(x102 + x120 - x121*x76) + V{1}) - (x31 + V{-1})*cell[1];
3133cell[2] = -V{0.0740740740740741}*x32*(x58*(x101 - x121*x89 + x126 + x127) + V{1}) - (x32 + V{-1})*cell[2];
3134cell[3] = -V{0.0740740740740741}*x33*(x58*(-x100*x121 + x127 + x129 + x90) + V{1}) - (x33 + V{-1})*cell[3];
3135cell[4] = -V{0.0185185185185185}*x34*(x58*(-x130*x137*x137 + x139) + V{1}) - (x34 + V{-1})*cell[4];
3136cell[5] = -V{0.0185185185185185}*x35*(x58*(-x130*x149*x149 + x151) + V{1}) - (x35 + V{-1})*cell[5];
3137cell[6] = -V{0.0185185185185185}*x36*(x58*(x129 - x130*x158*x158 + x138) + V{1}) - (x36 + V{-1})*cell[6];
3138cell[7] = -V{0.0185185185185185}*x37*(x58*(-x130*x165*x165 + x138 + x159) + V{1}) - (x37 + V{-1})*cell[7];
3139cell[8] = -V{0.0185185185185185}*x38*(x58*(-x130*x169*x169 + x171) + V{1}) - (x38 + V{-1})*cell[8];
3140cell[9] = -V{0.0185185185185185}*x39*(x58*(-x130*x175*x175 + x159 + x170) + V{1}) - (x39 + V{-1})*cell[9];
3141cell[10] = -V{0.00462962962962963}*x40*(x58*(x129 - x130*x178*x178 + x139) + V{1}) - (x40 + V{-1})*cell[10];
3142cell[11] = -V{0.00462962962962963}*x41*(x58*(-x130*x179*x179 + x139 + x159) + V{1}) - (x41 + V{-1})*cell[11];
3143cell[12] = -V{0.00462962962962963}*x42*(x58*(x129 - x130*x180*x180 + x151) + V{1}) - (x42 + V{-1})*cell[12];
3144cell[13] = -V{0.00462962962962963}*x43*(x58*(-x130*x183*x183 - x181 + x194) + V{1}) - (x43 + V{-1})*cell[13];
3145cell[14] = -V{0.0740740740740741}*x44*(x58*(-x121*x191 + x195) + V{1}) - (x44 + V{-1})*cell[14];
3146cell[15] = -V{0.0740740740740741}*x45*(x58*(-x121*x185 + x188 + x193) + V{1}) - (x45 + V{-1})*cell[15];
3147cell[16] = -V{0.0740740740740741}*x46*(x58*(-x121*x187 + x186 + x196 + V{-1}) + V{1}) - (x46 + V{-1})*cell[16];
3148cell[17] = -V{0.0185185185185185}*x47*(x58*(-x130*x136*x136 + x197) + V{1}) - (x47 + V{-1})*cell[17];
3149cell[18] = -V{0.0185185185185185}*x48*(x58*(-x130*x199*x199 + x170 + x198) + V{1}) - (x48 + V{-1})*cell[18];
3150cell[19] = -V{0.0185185185185185}*x49*(x58*(-x130*x157*x157 + x200) + V{1}) - (x49 + V{-1})*cell[19];
3151cell[20] = -V{0.0185185185185185}*x50*(x58*(-x130*x201*x201 + x198 + x202) + V{1}) - (x50 + V{-1})*cell[20];
3152cell[21] = -V{0.0185185185185185}*x51*(x58*(-x130*x168*x168 + x194) + V{1}) - (x51 + V{-1})*cell[21];
3153cell[22] = -V{0.0185185185185185}*x52*(x58*(-x130*x203*x203 + x150 + x202) + V{1}) - (x52 + V{-1})*cell[22];
3154cell[23] = -V{0.00462962962962963}*x53*(x58*(-x130*x177*x177 + x184 + x197) + V{1}) - (x53 + V{-1})*cell[23];
3155cell[24] = -V{0.00462962962962963}*x54*(x58*(-x130*x204*x204 - x184 + x197) + V{1}) - (x54 + V{-1})*cell[24];
3156cell[25] = -V{0.00462962962962963}*x55*(x58*(-x130*x205*x205 - x190 + x200) + V{1}) - (x55 + V{-1})*cell[25];
3157cell[26] = -V{0.00462962962962963}*x56*(x58*(-x130*x182*x182 + x171 + x198) + V{1}) - (x56 + V{-1})*cell[26];
3158return { x59, V{1}*x60*(x185 + x187 + x191) };
3159}
3160
3161};
3162
3163
3164template <typename... FIELDS>
3165struct TRT::type<descriptors::D2Q5<FIELDS...>,momenta::BulkTuple,equilibria::SecondOrder> {
3166
3167template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
3168CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
3169{
3170auto x8 = parameters.template get<olb::collision::TRT::MAGIC>();
3171auto x7 = parameters.template get<olb::descriptors::OMEGA>();
3172auto x5 = cell[0] + cell[1] + cell[2] + cell[3] + cell[4] + V{1};
3173auto x6 = V{1} / ((x5)*(x5));
3174auto x9 = V{1.5}*x6;
3175auto x10 = -cell[3];
3176auto x11 = x10 + cell[1];
3177auto x12 = -x11;
3178auto x13 = x12*x12;
3179auto x14 = x13*x9;
3180auto x15 = -cell[4];
3181auto x16 = x15 + cell[2];
3182auto x17 = -x16;
3183auto x18 = x17*x17;
3184auto x19 = x18*x9;
3185auto x20 = x19 + V{-1};
3186auto x21 = V{1} / (-x8/(V{0.5} - V{1}/x7) + V{0.5});
3187auto x22 = V{0.5}*cell[3];
3188auto x23 = V{0.5}*cell[1];
3189auto x24 = V{0.0833333333333333}*cell[0] + V{0.0833333333333333}*cell[1] + V{0.0833333333333333}*cell[2] + V{0.0833333333333333}*cell[3] + V{0.0833333333333333}*cell[4] + V{0.0833333333333333};
3190auto x25 = V{1} / (x5);
3191auto x26 = V{3}*cell[1] - V{3}*cell[3];
3192auto x27 = -x25*x26;
3193auto x28 = V{3}*x6;
3194auto x29 = x25*x26;
3195auto x30 = x16*x16;
3196auto x31 = x30*x9;
3197auto x32 = x11*x11;
3198auto x33 = x24*(-x29 - x31 + V{3}*x32*x6 + V{1});
3199auto x34 = x23 - x24*(x28*x32 + x29 - x31 + V{1});
3200auto x35 = x7*(x22 - x33 + x34 + V{0.166666666666667});
3201auto x36 = V{0.5}*cell[4];
3202auto x37 = V{0.5}*cell[2];
3203auto x38 = V{3}*cell[2] - V{3}*cell[4];
3204auto x39 = -x25*x38;
3205auto x40 = x14 - V{3}*x18*x6 + x39 + V{-1};
3206auto x41 = x24*(-x25*x38 + V{3}*x30*x6 - x32*x9 + V{1});
3207auto x42 = x24*x40 + x37;
3208auto x43 = x7*(x36 - x41 + x42 + V{0.166666666666667});
3209auto x0 = -x7*((x14 + x20)*(V{0.333333333333333}*cell[0] + V{0.333333333333333}*cell[1] + V{0.333333333333333}*cell[2] + V{0.333333333333333}*cell[3] + V{0.333333333333333}*cell[4] + V{0.333333333333333}) + V{1}*cell[0] + V{0.333333333333333}) + cell[0];
3210auto x1 = x21*(x22 - x23 + x24*(V{3}*x13*x6 - x20 - x27) - x24*(x13*x28 - x19 + x27 + V{1})) - x35 + cell[1];
3211auto x2 = x21*(-x24*x40 - x24*(-x14 + x18*x28 + x39 + V{1}) + x36 - x37) - x43 + cell[2];
3212auto x3 = -x10 - x21*(-x33 - x34 + V{0.5}*cell[3]) - x35;
3213auto x4 = -x15 - x21*(-x41 - x42 + V{0.5}*cell[4]) - x43;
3214cell[0] = x0;
3215cell[1] = x1;
3216cell[2] = x2;
3217cell[3] = x3;
3218cell[4] = x4;
3219return { x5, V{1}*x6*(x30 + x32) };
3220}
3221
3222};
3223
3224template <typename... FIELDS>
3225struct TRT::type<descriptors::D2Q9<FIELDS...>,momenta::BulkTuple,equilibria::SecondOrder> {
3226
3227template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
3228CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
3229{
3230auto x11 = parameters.template get<olb::descriptors::OMEGA>();
3231auto x12 = parameters.template get<olb::collision::TRT::MAGIC>();
3232auto x9 = cell[0] + cell[1] + cell[2] + cell[3] + cell[4] + cell[5] + cell[6] + cell[7] + cell[8] + V{1};
3233auto x10 = V{1} / ((x9)*(x9));
3234auto x13 = V{1.5}*x10;
3235auto x14 = -cell[7];
3236auto x15 = -cell[5];
3237auto x16 = x15 + cell[1];
3238auto x17 = -cell[6];
3239auto x18 = x17 + cell[2];
3240auto x19 = x14 + x16 + x18 + cell[3];
3241auto x20 = -x19;
3242auto x21 = x20*x20;
3243auto x22 = x13*x21;
3244auto x23 = -cell[4] + cell[8];
3245auto x24 = x16 + x23 - cell[3] + cell[7];
3246auto x25 = x24*x24;
3247auto x26 = x13*x25;
3248auto x27 = x26 + V{-1};
3249auto x28 = x22 + x27;
3250auto x29 = V{1} / (-x12/(V{0.5} - V{1}/x11) + V{0.5});
3251auto x30 = V{0.5}*cell[5];
3252auto x31 = V{0.5}*cell[1];
3253auto x32 = V{0.0138888888888889}*cell[0] + V{0.0138888888888889}*cell[1] + V{0.0138888888888889}*cell[2] + V{0.0138888888888889}*cell[3] + V{0.0138888888888889}*cell[4] + V{0.0138888888888889}*cell[5] + V{0.0138888888888889}*cell[6] + V{0.0138888888888889}*cell[7] + V{0.0138888888888889}*cell[8] + V{0.0138888888888889};
3254auto x33 = V{1} / (x9);
3255auto x34 = V{3}*cell[3];
3256auto x35 = V{3}*cell[1] - V{3}*cell[5];
3257auto x36 = x33*(-x34 + x35 - V{3}*cell[4] + V{3}*cell[7] + V{3}*cell[8]);
3258auto x37 = -x36;
3259auto x38 = x18 + x23 + V{2}*cell[1] - V{2}*cell[5];
3260auto x39 = -V{4.5}*x10*x38*x38;
3261auto x40 = x34 + x35 + V{3}*cell[2] - V{3}*cell[6] - V{3}*cell[7];
3262auto x41 = -x33*x40;
3263auto x42 = x28 + x41;
3264auto x43 = -x22;
3265auto x44 = V{4.5}*x10;
3266auto x45 = -x38;
3267auto x46 = x44*(x45*x45);
3268auto x47 = V{1} - x26;
3269auto x48 = x41 + x47;
3270auto x49 = x19*x19;
3271auto x50 = x13*x49;
3272auto x51 = x33*x40;
3273auto x52 = x27 + x51;
3274auto x53 = x50 + x52;
3275auto x54 = x32*(-x36 - x39 - x53);
3276auto x55 = x47 + x51;
3277auto x56 = x36 - x50;
3278auto x57 = x31 - x32*(x46 + x55 + x56);
3279auto x58 = x11*(x30 - x54 + x57 + V{0.0277777777777778});
3280auto x59 = V{0.5}*cell[6];
3281auto x60 = V{0.5}*cell[2];
3282auto x61 = V{0.0555555555555556}*cell[0] + 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};
3283auto x62 = V{3}*x10;
3284auto x63 = x61*(V{3}*x10*x49 - x52);
3285auto x64 = x60 - x61*(x49*x62 + x55);
3286auto x65 = x11*(x59 - x63 + x64 + V{0.111111111111111});
3287auto x66 = V{0.5}*cell[7];
3288auto x67 = V{0.5}*cell[3];
3289auto x68 = -cell[8];
3290auto x69 = -x18 - x68 - V{2}*cell[3] - cell[4] + V{2}*cell[7];
3291auto x70 = x69*x69;
3292auto x71 = -V{4.5}*x10*x70;
3293auto x72 = x36 + x42 + x71;
3294auto x73 = x36 + x43;
3295auto x74 = x32*(-x37 - x53 - x71);
3296auto x75 = x32*x72 + x67;
3297auto x76 = x11*(x66 - x74 + x75 + V{0.0277777777777778});
3298auto x77 = V{0.5}*cell[8];
3299auto x78 = V{0.5}*cell[4];
3300auto x79 = -V{3}*x10*x25 + x22 + x36 + V{-1};
3301auto x80 = x25*x62 + V{1};
3302auto x81 = x61*(x56 + x80);
3303auto x82 = x61*x79 + x78;
3304auto x83 = x11*(x77 - x81 + x82 + V{0.111111111111111});
3305auto x0 = -x11*(x28*(V{0.444444444444444}*cell[0] + V{0.444444444444444}*cell[1] + V{0.444444444444444}*cell[2] + V{0.444444444444444}*cell[3] + V{0.444444444444444}*cell[4] + V{0.444444444444444}*cell[5] + V{0.444444444444444}*cell[6] + V{0.444444444444444}*cell[7] + V{0.444444444444444}*cell[8] + V{0.444444444444444}) + V{1}*cell[0] + V{0.444444444444444}) + cell[0];
3306auto x1 = x29*(x30 - x31 + x32*(-x37 - x39 - x42) - x32*(x37 + x43 + x46 + x48)) - x58 + cell[1];
3307auto x2 = x29*(x59 - x60 - x61*(x21*x62 + x48) + x61*(V{3}*x10*x21 - x27 - x41)) - x65 + cell[2];
3308auto x3 = x29*(-x32*x72 - x32*(x44*x70 + x48 + x73) + x66 - x67) - x76 + cell[3];
3309auto x4 = x29*(-x61*x79 - x61*(x73 + x80) + x77 - x78) - x83 + cell[4];
3310auto x5 = -x15 - x29*(-x54 - x57 + V{0.5}*cell[5]) - x58;
3311auto x6 = -x17 - x29*(-x63 - x64 + V{0.5}*cell[6]) - x65;
3312auto x7 = -x14 - x29*(-x74 - x75 + V{0.5}*cell[7]) - x76;
3313auto x8 = -x29*(-x81 - x82 + V{0.5}*cell[8]) - x68 - x83;
3314cell[0] = x0;
3315cell[1] = x1;
3316cell[2] = x2;
3317cell[3] = x3;
3318cell[4] = x4;
3319cell[5] = x5;
3320cell[6] = x6;
3321cell[7] = x7;
3322cell[8] = x8;
3323return { x9, V{1}*x10*(x25 + x49) };
3324}
3325
3326};
3327
3328template <typename... FIELDS>
3329struct TRT::type<descriptors::D3Q7<FIELDS...>,momenta::BulkTuple,equilibria::SecondOrder> {
3330
3331template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
3332CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
3333{
3334auto x11 = parameters.template get<olb::collision::TRT::MAGIC>();
3335auto x10 = parameters.template get<olb::descriptors::OMEGA>();
3336auto x7 = cell[0] + cell[1] + cell[2] + cell[3] + cell[4] + cell[5] + cell[6] + V{1};
3337auto x8 = V{1} / ((x7)*(x7));
3338auto x9 = V{2}*x8;
3339auto x12 = -cell[4];
3340auto x13 = x12 + cell[1];
3341auto x14 = -x13;
3342auto x15 = x14*x14;
3343auto x16 = x15*x9;
3344auto x17 = -cell[5];
3345auto x18 = x17 + cell[2];
3346auto x19 = -x18;
3347auto x20 = x19*x19;
3348auto x21 = x20*x9;
3349auto x22 = -cell[6];
3350auto x23 = x22 + cell[3];
3351auto x24 = -x23;
3352auto x25 = x24*x24;
3353auto x26 = x25*x9;
3354auto x27 = x21 + x26 + V{-1};
3355auto x28 = V{1} / (-x11/(V{0.5} - V{1}/x10) + V{0.5});
3356auto x29 = V{0.5}*cell[4];
3357auto x30 = V{0.5}*cell[1];
3358auto x31 = V{0.0625}*cell[0] + V{0.0625}*cell[1] + V{0.0625}*cell[2] + V{0.0625}*cell[3] + V{0.0625}*cell[4] + V{0.0625}*cell[5] + V{0.0625}*cell[6] + V{0.0625};
3359auto x32 = V{1} / (x7);
3360auto x33 = V{4}*cell[1] - V{4}*cell[4];
3361auto x34 = -x32*x33;
3362auto x35 = -V{6}*x15*x8 + x27 + x34;
3363auto x36 = V{6}*x8;
3364auto x37 = -x21;
3365auto x38 = V{1} - x26;
3366auto x39 = x18*x18;
3367auto x40 = x39*x9;
3368auto x41 = x13*x13;
3369auto x42 = x23*x23;
3370auto x43 = x42*x9 + V{-1};
3371auto x44 = x31*(-x32*x33 - x40 + V{6}*x41*x8 - x43);
3372auto x45 = x30 + x31*x35;
3373auto x46 = x10*(x29 - x44 + x45 + V{0.125});
3374auto x47 = V{0.5}*cell[5];
3375auto x48 = V{0.5}*cell[2];
3376auto x49 = V{4}*cell[2] - V{4}*cell[5];
3377auto x50 = -x32*x49;
3378auto x51 = x16 + V{-1};
3379auto x52 = -V{6}*x20*x8 + x26 + x50 + x51;
3380auto x53 = -x16;
3381auto x54 = x41*x9;
3382auto x55 = x31*(-x32*x49 + V{6}*x39*x8 - x43 - x54);
3383auto x56 = x31*x52 + x48;
3384auto x57 = x10*(x47 - x55 + x56 + V{0.125});
3385auto x58 = V{0.5}*cell[6];
3386auto x59 = V{0.5}*cell[3];
3387auto x60 = V{4}*cell[3] - V{4}*cell[6];
3388auto x61 = -x32*x60;
3389auto x62 = x21 - V{6}*x25*x8 + x51 + x61;
3390auto x63 = x31*(-x32*x60 - x40 + V{6}*x42*x8 - x54 + V{1});
3391auto x64 = x31*x62 + x59;
3392auto x65 = x10*(x58 - x63 + x64 + V{0.125});
3393auto x0 = -x10*((x16 + x27)*(V{0.25}*cell[0] + V{0.25}*cell[1] + V{0.25}*cell[2] + V{0.25}*cell[3] + V{0.25}*cell[4] + V{0.25}*cell[5] + V{0.25}*cell[6] + V{0.25}) + V{1}*cell[0] + V{0.25}) + cell[0];
3394auto x1 = x28*(x29 - x30 - x31*x35 - x31*(x15*x36 + x34 + x37 + x38)) - x46 + cell[1];
3395auto x2 = x28*(-x31*x52 - x31*(x20*x36 + x38 + x50 + x53) + x47 - x48) - x57 + cell[2];
3396auto x3 = x28*(-x31*x62 - x31*(x25*x36 + x37 + x53 + x61 + V{1}) + x58 - x59) - x65 + cell[3];
3397auto x4 = -x12 - x28*(-x44 - x45 + V{0.5}*cell[4]) - x46;
3398auto x5 = -x17 - x28*(-x55 - x56 + V{0.5}*cell[5]) - x57;
3399auto x6 = -x22 - x28*(-x63 - x64 + V{0.5}*cell[6]) - x65;
3400cell[0] = x0;
3401cell[1] = x1;
3402cell[2] = x2;
3403cell[3] = x3;
3404cell[4] = x4;
3405cell[5] = x5;
3406cell[6] = x6;
3407return { x7, V{1}*x8*(x39 + x41 + x42) };
3408}
3409
3410};
3411
3412template <typename... FIELDS>
3413struct TRT::type<descriptors::D3Q19<FIELDS...>,momenta::BulkTuple,equilibria::SecondOrder> {
3414
3415template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
3416CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
3417{
3418auto x22 = parameters.template get<olb::descriptors::OMEGA>();
3419auto x23 = parameters.template get<olb::collision::TRT::MAGIC>();
3420auto x19 = cell[10] + cell[14];
3421auto x20 = cell[12] + cell[7];
3422auto x21 = x19 + x20 + 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] + V{1};
3423auto x24 = V{1} / ((x21)*(x21));
3424auto x25 = V{1.5}*x24;
3425auto x26 = cell[13] - cell[4];
3426auto x27 = cell[15] - cell[6];
3427auto x28 = x26 + x27;
3428auto x29 = -cell[1];
3429auto x30 = cell[16] - cell[7];
3430auto x31 = x29 + x30;
3431auto x32 = x19 - cell[5];
3432auto x33 = x28 + x31 + x32;
3433auto x34 = x33*x33;
3434auto x35 = x25*x34;
3435auto x36 = cell[17] - cell[8];
3436auto x37 = x26 + x36;
3437auto x38 = cell[18] - cell[9];
3438auto x39 = -cell[14];
3439auto x40 = -cell[2];
3440auto x41 = x39 + x40 + cell[11] + cell[5];
3441auto x42 = x37 + x38 + x41;
3442auto x43 = x42*x42;
3443auto x44 = x25*x43;
3444auto x45 = x27 + x36;
3445auto x46 = -cell[3];
3446auto x47 = -cell[18];
3447auto x48 = x47 + cell[9];
3448auto x49 = x46 + x48;
3449auto x50 = -cell[16];
3450auto x51 = x20 + x50;
3451auto x52 = x45 + x49 + x51;
3452auto x53 = x52*x52;
3453auto x54 = x25*x53;
3454auto x55 = x44 + x54 + V{-1};
3455auto x56 = x35 + x55;
3456auto x57 = V{1} / (-x23/(V{0.5} - V{1}/x22) + V{0.5});
3457auto x58 = V{0.5}*cell[1];
3458auto x59 = 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};
3459auto x60 = V{1} / (x21);
3460auto x61 = V{3}*cell[14];
3461auto x62 = V{3}*cell[16];
3462auto x63 = V{3}*cell[5];
3463auto x64 = V{3}*cell[7];
3464auto x65 = V{3}*cell[13] - V{3}*cell[4];
3465auto x66 = V{3}*cell[15] - V{3}*cell[6];
3466auto x67 = x60*(x61 + x62 - x63 - x64 + x65 + x66 + V{3}*cell[10] - V{3}*cell[1]);
3467auto x68 = -V{3}*x24*x34 + x55 + x67;
3468auto x69 = V{3}*x24;
3469auto x70 = -x44;
3470auto x71 = V{1} - x54;
3471auto x72 = x70 + x71;
3472auto x73 = x67 + x72;
3473auto x74 = x59*(x34*x69 + x73);
3474auto x75 = -x74 + V{0.5}*cell[10];
3475auto x76 = x58 + x59*x68;
3476auto x77 = x22*(x75 + x76 + V{0.0555555555555556});
3477auto x78 = V{0.5}*cell[2];
3478auto x79 = V{3}*cell[18];
3479auto x80 = V{3}*cell[9];
3480auto x81 = V{3}*cell[17] - V{3}*cell[8];
3481auto x82 = x60*(-x61 + x63 + x65 + x79 - x80 + x81 + V{3}*cell[11] - V{3}*cell[2]);
3482auto x83 = x35 + V{-1};
3483auto x84 = -V{3}*x24*x43 + x54 + x82 + x83;
3484auto x85 = -x35;
3485auto x86 = x82 + x85;
3486auto x87 = x59*(x43*x69 + x71 + x86);
3487auto x88 = -x87 + V{0.5}*cell[11];
3488auto x89 = x59*x84 + x78;
3489auto x90 = x22*(x88 + x89 + V{0.0555555555555556});
3490auto x91 = V{0.5}*cell[3];
3491auto x92 = x60*(-x62 + x64 + x66 - x79 + x80 + x81 + V{3}*cell[12] - V{3}*cell[3]);
3492auto x93 = -V{3}*x24*x53 + x44 + x83 + x92;
3493auto x94 = x85 + x92;
3494auto x95 = x59*(x53*x69 + x70 + x94 + V{1});
3495auto x96 = -x95 + V{0.5}*cell[12];
3496auto x97 = x59*x93 + x91;
3497auto x98 = x22*(x96 + x97 + V{0.0555555555555556});
3498auto x99 = V{0.5}*cell[4];
3499auto x100 = V{0.0138888888888889}*cell[0] + V{0.0138888888888889}*cell[10] + V{0.0138888888888889}*cell[11] + V{0.0138888888888889}*cell[12] + V{0.0138888888888889}*cell[13] + V{0.0138888888888889}*cell[14] + V{0.0138888888888889}*cell[15] + V{0.0138888888888889}*cell[16] + V{0.0138888888888889}*cell[17] + V{0.0138888888888889}*cell[18] + V{0.0138888888888889}*cell[1] + V{0.0138888888888889}*cell[2] + V{0.0138888888888889}*cell[3] + V{0.0138888888888889}*cell[4] + V{0.0138888888888889}*cell[5] + V{0.0138888888888889}*cell[6] + V{0.0138888888888889}*cell[7] + V{0.0138888888888889}*cell[8] + V{0.0138888888888889}*cell[9] + V{0.0138888888888889};
3500auto x101 = x31 + cell[10];
3501auto x102 = x101 + x38 + x40 + x45 + cell[11] + V{2}*cell[13] - V{2}*cell[4];
3502auto x103 = x102*x102;
3503auto x104 = x56 + x67;
3504auto x105 = -V{4.5}*x103*x24 + x104 + x82;
3505auto x106 = V{4.5}*x24;
3506auto x107 = x100*(x103*x106 + x73 + x86);
3507auto x108 = -x107 + V{0.5}*cell[13];
3508auto x109 = x100*x105 + x99;
3509auto x110 = x22*(x108 + x109 + V{0.0277777777777778});
3510auto x111 = -x82;
3511auto x112 = -cell[11];
3512auto x113 = -cell[17];
3513auto x114 = x113 + cell[8];
3514auto x115 = x101 + x112 + x114 + x27 + x48 + V{2}*cell[14] + cell[2] - V{2}*cell[5];
3515auto x116 = -x115;
3516auto x117 = x104 + x111 - V{4.5}*x24*x116*x116;
3517auto x118 = x56 - x67;
3518auto x119 = x118 - V{4.5}*x24*x115*x115 + x82;
3519auto x120 = V{0.5}*cell[14];
3520auto x121 = V{0.5}*cell[5];
3521auto x122 = x120 - x121;
3522auto x123 = x100*x119;
3523auto x124 = x100*x117;
3524auto x125 = x22*(x120 + x121 + x123 + x124 + V{0.0277777777777778});
3525auto x126 = V{0.5}*cell[6];
3526auto x127 = x29 + x32;
3527auto x128 = x127 + x37 + x49 + cell[12] + V{2}*cell[15] - V{2}*cell[6];
3528auto x129 = x128*x128;
3529auto x130 = x104 - V{4.5}*x129*x24 + x92;
3530auto x131 = x100*(x106*x129 + x73 + x94);
3531auto x132 = -x131 + V{0.5}*cell[15];
3532auto x133 = x100*x130 + x126;
3533auto x134 = x22*(x132 + x133 + V{0.0277777777777778});
3534auto x135 = -x92;
3535auto x136 = -cell[12];
3536auto x137 = x136 + x26 + cell[3];
3537auto x138 = x114 + x127 + x137 + x38 + V{2}*cell[16] - V{2}*cell[7];
3538auto x139 = -x138;
3539auto x140 = x104 + x135 - V{4.5}*x24*x139*x139;
3540auto x141 = x118 - V{4.5}*x24*x138*x138 + x92;
3541auto x142 = V{0.5}*cell[16];
3542auto x143 = V{0.5}*cell[7];
3543auto x144 = x142 - x143;
3544auto x145 = x100*x141;
3545auto x146 = x100*x140;
3546auto x147 = x22*(x142 + x143 + x145 + x146 + V{0.0277777777777778});
3547auto x148 = V{0.5}*cell[8];
3548auto x149 = x28 + x41 + x46 + x51 + V{2}*cell[17] - V{2}*cell[8];
3549auto x150 = x149*x149;
3550auto x151 = x56 + x82;
3551auto x152 = -V{4.5}*x150*x24 + x151 + x92;
3552auto x153 = x100*(x106*x150 + x72 + x86 + x92);
3553auto x154 = -x153 + V{0.5}*cell[17];
3554auto x155 = x100*x152 + x148;
3555auto x156 = x22*(x154 + x155 + V{0.0277777777777778});
3556auto x157 = -cell[15];
3557auto x158 = x137 + x157 + x30 + x41 + V{2}*cell[18] + cell[6] - V{2}*cell[9];
3558auto x159 = -x158;
3559auto x160 = x135 + x151 - V{4.5}*x24*x159*x159;
3560auto x161 = x111 - V{4.5}*x24*x158*x158 + x56 + x92;
3561auto x162 = V{0.5}*cell[18];
3562auto x163 = V{0.5}*cell[9];
3563auto x164 = x162 - x163;
3564auto x165 = x100*x160;
3565auto x166 = x100*x161;
3566auto x167 = x22*(x162 + x163 + x165 + x166 + V{0.0277777777777778});
3567auto x0 = -x22*(x56*(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{1}*cell[0] + V{0.333333333333333}) + cell[0];
3568auto x1 = x57*(-x58 - x59*x68 + x75) - x77 + cell[1];
3569auto x2 = x57*(-x59*x84 - x78 + x88) - x90 + cell[2];
3570auto x3 = x57*(-x59*x93 - x91 + x96) - x98 + cell[3];
3571auto x4 = -x110 + x57*(-x100*x105 + x108 - x99) + cell[4];
3572auto x5 = -x125 + x57*(-x100*x117 + x100*x119 + x122) + cell[5];
3573auto x6 = -x134 + x57*(-x100*x130 - x126 + x132) + cell[6];
3574auto x7 = -x147 + x57*(-x100*x140 + x100*x141 + x144) + cell[7];
3575auto x8 = -x156 + x57*(-x100*x152 - x148 + x154) + cell[8];
3576auto x9 = -x167 + x57*(-x100*x160 + x100*x161 + x164) + cell[9];
3577auto x10 = -x57*(-x74 - x76 + V{0.5}*cell[10]) - x77 + cell[10];
3578auto x11 = -x112 - x57*(-x87 - x89 + V{0.5}*cell[11]) - x90;
3579auto x12 = -x136 - x57*(-x95 - x97 + V{0.5}*cell[12]) - x98;
3580auto x13 = -x110 - x57*(-x107 - x109 + V{0.5}*cell[13]) + cell[13];
3581auto x14 = -x125 - x39 - x57*(x122 + x123 - x124);
3582auto x15 = -x134 - x157 - x57*(-x131 - x133 + V{0.5}*cell[15]);
3583auto x16 = -x147 - x50 - x57*(x144 + x145 - x146);
3584auto x17 = -x113 - x156 - x57*(-x153 - x155 + V{0.5}*cell[17]);
3585auto x18 = -x167 - x47 - x57*(x164 - x165 + x166);
3586cell[0] = x0;
3587cell[1] = x1;
3588cell[2] = x2;
3589cell[3] = x3;
3590cell[4] = x4;
3591cell[5] = x5;
3592cell[6] = x6;
3593cell[7] = x7;
3594cell[8] = x8;
3595cell[9] = x9;
3596cell[10] = x10;
3597cell[11] = x11;
3598cell[12] = x12;
3599cell[13] = x13;
3600cell[14] = x14;
3601cell[15] = x15;
3602cell[16] = x16;
3603cell[17] = x17;
3604cell[18] = x18;
3605return { x21, V{1}*x24*(x34 + x43 + x53) };
3606}
3607
3608};
3609
3610template <typename... FIELDS>
3611struct TRT::type<descriptors::D3Q27<FIELDS...>,momenta::BulkTuple,equilibria::SecondOrder> {
3612
3613template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
3614CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
3615{
3616auto x31 = parameters.template get<olb::collision::TRT::MAGIC>();
3617auto x30 = parameters.template get<olb::descriptors::OMEGA>();
3618auto x27 = cell[8] + cell[9];
3619auto x28 = cell[15] + cell[21];
3620auto x29 = cell[11] + cell[26];
3621auto x32 = x27 + x28 + x29 + cell[0] + cell[10] + cell[12] + cell[13] + cell[14] + cell[16] + cell[17] + cell[18] + cell[19] + cell[1] + cell[20] + cell[22] + cell[23] + cell[24] + cell[25] + cell[2] + cell[3] + cell[4] + cell[5] + cell[6] + cell[7] + V{1};
3622auto x33 = V{1} / ((x32)*(x32));
3623auto x34 = V{1.5}*x33;
3624auto x35 = -cell[17];
3625auto x36 = -cell[19];
3626auto x37 = x35 + x36 + cell[4] + cell[6];
3627auto x38 = -cell[24];
3628auto x39 = -cell[23];
3629auto x40 = x39 + cell[10];
3630auto x41 = x38 + x40 + cell[11];
3631auto x42 = -cell[25];
3632auto x43 = x42 + cell[12];
3633auto x44 = -cell[14];
3634auto x45 = -cell[20];
3635auto x46 = x45 + cell[7];
3636auto x47 = x44 + x46 + cell[1];
3637auto x48 = -cell[18];
3638auto x49 = x48 + cell[5];
3639auto x50 = -cell[26];
3640auto x51 = x50 + cell[13];
3641auto x52 = x37 + x41 + x43 + x47 + x49 + x51;
3642auto x53 = -x52;
3643auto x54 = x53*x53;
3644auto x55 = x34*x54;
3645auto x56 = -cell[21];
3646auto x57 = -cell[13];
3647auto x58 = x56 + x57 + cell[26] + cell[8];
3648auto x59 = -cell[22];
3649auto x60 = x35 + cell[4];
3650auto x61 = x59 + x60 + cell[9];
3651auto x62 = -cell[15];
3652auto x63 = x62 + cell[18] + cell[2] - cell[5];
3653auto x64 = -cell[12] + cell[25];
3654auto x65 = x41 + x58 + x61 + x63 + x64;
3655auto x66 = -x65;
3656auto x67 = x66*x66;
3657auto x68 = x34*x67;
3658auto x69 = -cell[16];
3659auto x70 = x43 + x69 + cell[3];
3660auto x71 = -cell[9];
3661auto x72 = x36 + cell[6];
3662auto x73 = x71 + x72 + cell[22];
3663auto x74 = cell[20] - cell[7];
3664auto x75 = x40 - cell[11] + cell[24];
3665auto x76 = x58 + x70 + x73 + x74 + x75;
3666auto x77 = -x76;
3667auto x78 = x77*x77;
3668auto x79 = x34*x78;
3669auto x80 = x68 + x79 + V{-1};
3670auto x81 = x55 + x80;
3671auto x82 = V{1} / (-x31/(V{0.5} - V{1}/x30) + V{0.5});
3672auto x83 = V{0.5}*cell[14];
3673auto x84 = V{0.5}*cell[1];
3674auto x85 = V{0.037037037037037}*cell[0] + V{0.037037037037037}*cell[10] + V{0.037037037037037}*cell[11] + V{0.037037037037037}*cell[12] + V{0.037037037037037}*cell[13] + V{0.037037037037037}*cell[14] + V{0.037037037037037}*cell[15] + V{0.037037037037037}*cell[16] + V{0.037037037037037}*cell[17] + V{0.037037037037037}*cell[18] + V{0.037037037037037}*cell[19] + V{0.037037037037037}*cell[1] + V{0.037037037037037}*cell[20] + V{0.037037037037037}*cell[21] + V{0.037037037037037}*cell[22] + V{0.037037037037037}*cell[23] + V{0.037037037037037}*cell[24] + V{0.037037037037037}*cell[25] + V{0.037037037037037}*cell[26] + V{0.037037037037037}*cell[2] + V{0.037037037037037}*cell[3] + V{0.037037037037037}*cell[4] + V{0.037037037037037}*cell[5] + V{0.037037037037037}*cell[6] + V{0.037037037037037}*cell[7] + V{0.037037037037037}*cell[8] + V{0.037037037037037}*cell[9] + V{0.037037037037037};
3675auto x86 = V{1} / (x32);
3676auto x87 = V{3}*cell[5];
3677auto x88 = V{3}*cell[7];
3678auto x89 = V{3}*cell[13];
3679auto x90 = V{3}*cell[18];
3680auto x91 = V{3}*cell[20];
3681auto x92 = V{3}*cell[26];
3682auto x93 = V{3}*cell[10];
3683auto x94 = V{3}*cell[11];
3684auto x95 = -V{3}*cell[23];
3685auto x96 = V{3}*cell[24];
3686auto x97 = x93 + x94 + x95 - x96 - V{3}*cell[17] + V{3}*cell[4];
3687auto x98 = V{3}*cell[12];
3688auto x99 = V{3}*cell[25];
3689auto x100 = x98 - x99 - V{3}*cell[19] + V{3}*cell[6];
3690auto x101 = x100 + x87 + x88 + x89 - x90 - x91 - x92 + x97 - V{3}*cell[14] + V{3}*cell[1];
3691auto x102 = -x101*x86;
3692auto x103 = x102 - V{3}*x33*x54 + x80;
3693auto x104 = V{3}*x33;
3694auto x105 = -x68;
3695auto x106 = V{1} - x79;
3696auto x107 = x105 + x106;
3697auto x108 = x102 + x107;
3698auto x109 = x52*x52;
3699auto x110 = x101*x86;
3700auto x111 = x65*x65;
3701auto x112 = x111*x34;
3702auto x113 = x76*x76;
3703auto x114 = x113*x34 + V{-1};
3704auto x115 = x112 + x114;
3705auto x116 = x110 + x115;
3706auto x117 = x85*(V{3}*x109*x33 - x116);
3707auto x118 = x103*x85 + x84;
3708auto x119 = x30*(-x117 + x118 + x83 + V{0.0740740740740741});
3709auto x120 = V{0.5}*cell[15];
3710auto x121 = V{0.5}*cell[2];
3711auto x122 = V{3}*cell[9];
3712auto x123 = V{3}*cell[22];
3713auto x124 = -x89 + x92 - V{3}*cell[21] + V{3}*cell[8];
3714auto x125 = x122 - x123 + x124 - x87 + x90 + x97 - x98 + x99 - V{3}*cell[15] + V{3}*cell[2];
3715auto x126 = -x125*x86;
3716auto x127 = x55 + V{-1};
3717auto x128 = x126 + x127 - V{3}*x33*x67 + x79;
3718auto x129 = -x55;
3719auto x130 = x126 + x129;
3720auto x131 = x125*x86;
3721auto x132 = x109*x34;
3722auto x133 = x131 + x132;
3723auto x134 = x85*(V{3}*x111*x33 - x114 - x133);
3724auto x135 = x121 + x128*x85;
3725auto x136 = x30*(x120 - x134 + x135 + V{0.0740740740740741});
3726auto x137 = V{0.5}*cell[16];
3727auto x138 = V{0.5}*cell[3];
3728auto x139 = x100 - x122 + x123 + x124 - x88 + x91 + x93 - x94 + x95 + x96 - V{3}*cell[16] + V{3}*cell[3];
3729auto x140 = -x139*x86;
3730auto x141 = x127 + x140 - V{3}*x33*x78 + x68;
3731auto x142 = x129 + x140;
3732auto x143 = x139*x86;
3733auto x144 = x132 + x143;
3734auto x145 = x85*(-x112 + V{3}*x113*x33 - x144 + V{1});
3735auto x146 = x138 + x141*x85;
3736auto x147 = x30*(x137 - x145 + x146 + V{0.0740740740740741});
3737auto x148 = V{0.5}*cell[17];
3738auto x149 = V{0.5}*cell[4];
3739auto x150 = V{0.00925925925925926}*cell[0] + V{0.00925925925925926}*cell[10] + V{0.00925925925925926}*cell[11] + V{0.00925925925925926}*cell[12] + V{0.00925925925925926}*cell[13] + V{0.00925925925925926}*cell[14] + V{0.00925925925925926}*cell[15] + V{0.00925925925925926}*cell[16] + V{0.00925925925925926}*cell[17] + V{0.00925925925925926}*cell[18] + V{0.00925925925925926}*cell[19] + V{0.00925925925925926}*cell[1] + V{0.00925925925925926}*cell[20] + V{0.00925925925925926}*cell[21] + V{0.00925925925925926}*cell[22] + V{0.00925925925925926}*cell[23] + V{0.00925925925925926}*cell[24] + V{0.00925925925925926}*cell[25] + V{0.00925925925925926}*cell[26] + V{0.00925925925925926}*cell[2] + V{0.00925925925925926}*cell[3] + V{0.00925925925925926}*cell[4] + V{0.00925925925925926}*cell[5] + V{0.00925925925925926}*cell[6] + V{0.00925925925925926}*cell[7] + V{0.00925925925925926}*cell[8] + V{0.00925925925925926}*cell[9] + V{0.00925925925925926};
3740auto x151 = V{2}*cell[11] - V{2}*cell[24];
3741auto x152 = V{2}*cell[10] - V{2}*cell[23];
3742auto x153 = x152 + x56;
3743auto x154 = x62 + cell[2];
3744auto x155 = x154 - V{2}*cell[17] + V{2}*cell[4];
3745auto x156 = x151 + x153 + x155 + x27 + x47 + x59 + x72;
3746auto x157 = -x156;
3747auto x158 = x157*x157;
3748auto x159 = x102 + x81;
3749auto x160 = x126 + x159;
3750auto x161 = -V{4.5}*x158*x33 + x160;
3751auto x162 = V{4.5}*x33;
3752auto x163 = x108 + x130;
3753auto x164 = x116 + x133;
3754auto x165 = -x150*(x164 - V{4.5}*x33*x156*x156);
3755auto x166 = x149 + x150*x161;
3756auto x167 = x30*(x148 - x165 + x166 + V{0.0185185185185185});
3757auto x168 = V{2}*cell[25];
3758auto x169 = V{2}*cell[12];
3759auto x170 = -x168 + x169;
3760auto x171 = V{2}*cell[26];
3761auto x172 = V{2}*cell[13];
3762auto x173 = -x171 + x172 - cell[8];
3763auto x174 = V{2}*cell[18];
3764auto x175 = V{2}*cell[5];
3765auto x176 = -x174 + x175 - cell[2];
3766auto x177 = x170 + x173 + x176 + x28 + x47 + x73;
3767auto x178 = -x126;
3768auto x179 = x159 + x178;
3769auto x180 = x179 - V{4.5}*x33*x177*x177;
3770auto x181 = -x177;
3771auto x182 = -x102 + x81;
3772auto x183 = x126 + x182;
3773auto x184 = x183 - V{4.5}*x33*x181*x181;
3774auto x185 = V{0.5}*cell[18];
3775auto x186 = V{0.5}*cell[5];
3776auto x187 = x185 - x186;
3777auto x188 = x150*x184;
3778auto x189 = x150*x180;
3779auto x190 = x30*(x185 + x186 + x188 + x189 + V{0.0185185185185185});
3780auto x191 = V{0.5}*cell[19];
3781auto x192 = V{0.5}*cell[6];
3782auto x193 = x44 + cell[1];
3783auto x194 = x193 + x49;
3784auto x195 = x69 + cell[3];
3785auto x196 = -V{2}*cell[19] + V{2}*cell[6];
3786auto x197 = x195 + x196;
3787auto x198 = x153 + x170 + x194 + x197 + x60 + x71 + cell[22] + cell[8];
3788auto x199 = -x198;
3789auto x200 = x199*x199;
3790auto x201 = x140 + x159 - V{4.5}*x200*x33;
3791auto x202 = x108 + x142;
3792auto x203 = x116 + x144;
3793auto x204 = -x150*(x203 - V{4.5}*x33*x198*x198);
3794auto x205 = x150*x201 + x192;
3795auto x206 = x30*(x191 - x204 + x205 + V{0.0185185185185185});
3796auto x207 = -x140;
3797auto x208 = -cell[3];
3798auto x209 = x151 + x208 + cell[16];
3799auto x210 = V{2}*cell[20];
3800auto x211 = V{2}*cell[7];
3801auto x212 = -x210 + x211;
3802auto x213 = x173 + x194 + x209 + x212 + x61 + cell[21];
3803auto x214 = x159 + x207 - V{4.5}*x33*x213*x213;
3804auto x215 = -x213;
3805auto x216 = x140 + x182 - V{4.5}*x33*x215*x215;
3806auto x217 = V{0.5}*cell[20];
3807auto x218 = V{0.5}*cell[7];
3808auto x219 = x217 - x218;
3809auto x220 = x150*x216;
3810auto x221 = x150*x214;
3811auto x222 = x30*(x217 + x218 + x220 + x221 + V{0.0185185185185185});
3812auto x223 = V{0.5}*cell[21];
3813auto x224 = V{0.5}*cell[8];
3814auto x225 = -V{2}*cell[21] + V{2}*cell[8];
3815auto x226 = x195 + x225;
3816auto x227 = x152 + x171 - x172 + x226 + x37 + x63 + x74;
3817auto x228 = -x227;
3818auto x229 = x228*x228;
3819auto x230 = x126 + x81;
3820auto x231 = x140 - V{4.5}*x229*x33 + x230;
3821auto x232 = x115 + x133 + x143;
3822auto x233 = -x150*(x232 - V{4.5}*x33*x227*x227);
3823auto x234 = x150*x231 + x224;
3824auto x235 = x30*(x223 - x233 + x234 + V{0.0185185185185185});
3825auto x236 = V{2}*cell[22];
3826auto x237 = V{2}*cell[9];
3827auto x238 = -x236 + x237;
3828auto x239 = x168 - x169 + x209 + x238 + x46 + x60 + x63 + cell[19] - cell[6];
3829auto x240 = x207 + x230 - V{4.5}*x33*x239*x239;
3830auto x241 = -x239;
3831auto x242 = x140 + x178 - V{4.5}*x33*x241*x241 + x81;
3832auto x243 = V{0.5}*cell[22];
3833auto x244 = V{0.5}*cell[9];
3834auto x245 = x243 - x244;
3835auto x246 = x150*x240;
3836auto x247 = x150*x242;
3837auto x248 = x30*(x243 + x244 + x246 + x247 + V{0.0185185185185185});
3838auto x249 = V{0.5}*cell[23];
3839auto x250 = V{0.5}*cell[10];
3840auto x251 = V{0.00231481481481481}*cell[0] + V{0.00231481481481481}*cell[10] + V{0.00231481481481481}*cell[11] + V{0.00231481481481481}*cell[12] + V{0.00231481481481481}*cell[13] + V{0.00231481481481481}*cell[14] + V{0.00231481481481481}*cell[15] + V{0.00231481481481481}*cell[16] + V{0.00231481481481481}*cell[17] + V{0.00231481481481481}*cell[18] + V{0.00231481481481481}*cell[19] + V{0.00231481481481481}*cell[1] + V{0.00231481481481481}*cell[20] + V{0.00231481481481481}*cell[21] + V{0.00231481481481481}*cell[22] + V{0.00231481481481481}*cell[23] + V{0.00231481481481481}*cell[24] + V{0.00231481481481481}*cell[25] + V{0.00231481481481481}*cell[26] + V{0.00231481481481481}*cell[2] + V{0.00231481481481481}*cell[3] + V{0.00231481481481481}*cell[4] + V{0.00231481481481481}*cell[5] + V{0.00231481481481481}*cell[6] + V{0.00231481481481481}*cell[7] + V{0.00231481481481481}*cell[8] + V{0.00231481481481481}*cell[9] + V{0.00231481481481481};
3841auto x252 = x155 + x193;
3842auto x253 = x196 + x225 + x252 + x29 + x38 + x57 + x70 + V{3}*cell[10] - V{3}*cell[23];
3843auto x254 = -x253;
3844auto x255 = x254*x254;
3845auto x256 = x140 + x160 - V{4.5}*x255*x33;
3846auto x257 = -x251*(x143 + x164 - V{4.5}*x33*x253*x253);
3847auto x258 = x250 + x251*x256;
3848auto x259 = x30*(x249 - x257 + x258 + V{0.00462962962962963});
3849auto x260 = V{0.5}*cell[24];
3850auto x261 = V{0.5}*cell[11];
3851auto x262 = x208 + x212 + x238 + x252 + x40 + x51 + x64 + V{3}*cell[11] + cell[16] - V{3}*cell[24];
3852auto x263 = x160 + x207 - V{4.5}*x33*x262*x262;
3853auto x264 = -x262;
3854auto x265 = x264*x264;
3855auto x266 = x251*(x143 - x164 + V{4.5}*x265*x33);
3856auto x267 = x251*x263 + x261;
3857auto x268 = x30*(x260 - x266 + x267 + V{0.00462962962962963});
3858auto x269 = V{0.5}*cell[25];
3859auto x270 = V{0.5}*cell[12];
3860auto x271 = x176 + x193 + x197 + x236 - x237 + x51 + x75 + V{3}*cell[12] + cell[15] - V{3}*cell[25];
3861auto x272 = x140 + x179 - V{4.5}*x33*x271*x271;
3862auto x273 = -x271;
3863auto x274 = x273*x273;
3864auto x275 = x251*(x131 - x203 + V{4.5}*x274*x33);
3865auto x276 = x251*x272 + x270;
3866auto x277 = x30*(x269 - x275 + x276 + V{0.00462962962962963});
3867auto x278 = x154 + x174 - x175 + x210 - x211 + x226 + x64 + x75 - V{3}*cell[13] + cell[14] - cell[1] + V{3}*cell[26];
3868auto x279 = -x278;
3869auto x280 = -V{4.5}*x33*x279*x279;
3870auto x281 = x140 + x183 - V{4.5}*x33*x278*x278;
3871auto x282 = V{0.5}*cell[26];
3872auto x283 = V{0.5}*cell[13];
3873auto x284 = x282 - x283;
3874auto x285 = x251*x281;
3875auto x286 = x251*(x110 - x232 - x280);
3876auto x287 = x30*(x282 + x283 + x285 - x286 + V{0.00462962962962963});
3877auto x0 = -x30*(x81*(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{1}*cell[0] + V{0.296296296296296}) + cell[0];
3878auto x1 = -x119 + x82*(-x103*x85 + x83 - x84 - x85*(x104*x54 + x108)) + cell[1];
3879auto x2 = -x136 + x82*(x120 - x121 - x128*x85 - x85*(x104*x67 + x106 + x130)) + cell[2];
3880auto x3 = -x147 + x82*(x137 - x138 - x141*x85 - x85*(x104*x78 + x105 + x142 + V{1})) + cell[3];
3881auto x4 = -x167 + x82*(x148 - x149 - x150*x161 - x150*(x158*x162 + x163)) + cell[4];
3882auto x5 = -x190 + x82*(-x150*x180 + x150*x184 + x187) + cell[5];
3883auto x6 = -x206 + x82*(-x150*x201 - x150*(x162*x200 + x202) + x191 - x192) + cell[6];
3884auto x7 = -x222 + x82*(-x150*x214 + x150*x216 + x219) + cell[7];
3885auto x8 = -x235 + x82*(-x150*x231 - x150*(x107 + x130 + x140 + x162*x229) + x223 - x224) + cell[8];
3886auto x9 = -x248 + x82*(-x150*x240 + x150*x242 + x245) + cell[9];
3887auto x10 = -x259 + x82*(x249 - x250 - x251*x256 - x251*(x140 + x162*x255 + x163)) + cell[10];
3888auto x11 = -x268 + x82*(-x251*x263 - x251*(x162*x265 + x163 + x207) + x260 - x261) + cell[11];
3889auto x12 = -x277 + x82*(-x251*x272 - x251*(x162*x274 + x178 + x202) + x269 - x270) + cell[12];
3890auto x13 = -x287 + x82*(x251*x281 + x251*(-x179 - x207 - x280) + x284) + cell[13];
3891auto x14 = -x119 - x44 - x82*(-x117 - x118 + V{0.5}*cell[14]);
3892auto x15 = -x136 - x62 - x82*(-x134 - x135 + V{0.5}*cell[15]);
3893auto x16 = -x147 - x69 - x82*(-x145 - x146 + V{0.5}*cell[16]);
3894auto x17 = -x167 - x35 - x82*(-x165 - x166 + V{0.5}*cell[17]);
3895auto x18 = -x190 - x48 - x82*(x187 + x188 - x189);
3896auto x19 = -x206 - x36 - x82*(-x204 - x205 + V{0.5}*cell[19]);
3897auto x20 = -x222 - x45 - x82*(x219 + x220 - x221);
3898auto x21 = -x235 - x56 - x82*(-x233 - x234 + V{0.5}*cell[21]);
3899auto x22 = -x248 - x59 - x82*(x245 - x246 + x247);
3900auto x23 = -x259 - x39 - x82*(-x257 - x258 + V{0.5}*cell[23]);
3901auto x24 = -x268 - x38 - x82*(-x266 - x267 + V{0.5}*cell[24]);
3902auto x25 = -x277 - x42 - x82*(-x275 - x276 + V{0.5}*cell[25]);
3903auto x26 = -x287 - x50 - x82*(x284 + x285 + x286);
3904cell[0] = x0;
3905cell[1] = x1;
3906cell[2] = x2;
3907cell[3] = x3;
3908cell[4] = x4;
3909cell[5] = x5;
3910cell[6] = x6;
3911cell[7] = x7;
3912cell[8] = x8;
3913cell[9] = x9;
3914cell[10] = x10;
3915cell[11] = x11;
3916cell[12] = x12;
3917cell[13] = x13;
3918cell[14] = x14;
3919cell[15] = x15;
3920cell[16] = x16;
3921cell[17] = x17;
3922cell[18] = x18;
3923cell[19] = x19;
3924cell[20] = x20;
3925cell[21] = x21;
3926cell[22] = x22;
3927cell[23] = x23;
3928cell[24] = x24;
3929cell[25] = x25;
3930cell[26] = x26;
3931return { x32, V{1}*x33*(x109 + x111 + x113) };
3932}
3933
3934};
3935
3936
3937template <typename... FIELDS>
3938struct Poisson::type<descriptors::D2Q5<FIELDS...>,momenta::PoissonTuple,equilibria::ZerothOrder> {
3939
3940template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
3941CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
3942{
3943auto x8 = parameters.template get<olb::collision::Poisson::SINK>();
3944auto x7 = parameters.template get<olb::descriptors::OMEGA>();
3945auto x5 = V{0.166666666666667}*cell[2];
3946auto x6 = V{0.166666666666667}*cell[0];
3947auto x9 = V{0.166666666666667}*cell[3];
3948auto x10 = V{0.166666666666667}*cell[4];
3949auto x11 = x10 + x6 + x9;
3950auto x12 = V{0.166666666666667}*cell[1];
3951auto x13 = x12 + x5 + x6;
3952auto x0 = x7*(-V{0.666666666666667}*cell[0] + V{0.333333333333333}*cell[1] + V{0.333333333333333}*cell[2] + V{0.333333333333333}*cell[3] + V{0.333333333333333}*cell[4]) - x8*(cell[0] + V{0.333333333333333}) + cell[0];
3953auto x1 = x7*(x11 + x5 - V{0.833333333333333}*cell[1]) - x8*(cell[1] + V{0.166666666666667}) + cell[1];
3954auto x2 = x7*(x11 + x12 - V{0.833333333333333}*cell[2]) - x8*(cell[2] + V{0.166666666666667}) + cell[2];
3955auto x3 = x7*(x10 + x13 - V{0.833333333333333}*cell[3]) - x8*(cell[3] + V{0.166666666666667}) + cell[3];
3956auto x4 = x7*(x13 + x9 - V{0.833333333333333}*cell[4]) - x8*(cell[4] + V{0.166666666666667}) + cell[4];
3957cell[0] = x0;
3958cell[1] = x1;
3959cell[2] = x2;
3960cell[3] = x3;
3961cell[4] = x4;
3962return { cell[0] + cell[1] + cell[2] + cell[3] + cell[4] + V{1}, V{0} };
3963}
3964
3965};
3966
3967template <typename... FIELDS>
3968struct Poisson::type<descriptors::D2Q9<FIELDS...>,momenta::PoissonTuple,equilibria::ZerothOrder> {
3969
3970template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
3971CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
3972{
3973auto x11 = parameters.template get<olb::descriptors::OMEGA>();
3974auto x12 = parameters.template get<olb::collision::Poisson::SINK>();
3975auto x9 = V{0.0277777777777778}*cell[3];
3976auto x10 = V{0.0277777777777778}*cell[0];
3977auto x13 = V{0.0277777777777778}*cell[2];
3978auto x14 = V{0.0277777777777778}*cell[4];
3979auto x15 = V{0.0277777777777778}*cell[5];
3980auto x16 = V{0.0277777777777778}*cell[6];
3981auto x17 = V{0.0277777777777778}*cell[7];
3982auto x18 = V{0.0277777777777778}*cell[8];
3983auto x19 = x10 + x13 + x14 + x15 + x16 + x17 + x18;
3984auto x20 = V{0.111111111111111}*cell[4];
3985auto x21 = V{0.111111111111111}*cell[0];
3986auto x22 = V{0.111111111111111}*cell[1];
3987auto x23 = V{0.111111111111111}*cell[3];
3988auto x24 = V{0.111111111111111}*cell[5];
3989auto x25 = V{0.111111111111111}*cell[6];
3990auto x26 = V{0.111111111111111}*cell[7];
3991auto x27 = V{0.111111111111111}*cell[8];
3992auto x28 = x21 + x22 + x23 + x24 + x25 + x26 + x27;
3993auto x29 = V{0.0277777777777778}*cell[1];
3994auto x30 = V{0.111111111111111}*cell[2];
3995auto x31 = x10 + x13 + x14 + x16 + x18 + x29 + x9;
3996auto x32 = x20 + x21 + x22 + x23 + x24 + x26 + x30;
3997auto x0 = x11*(-V{0.555555555555556}*cell[0] + V{0.444444444444444}*cell[1] + V{0.444444444444444}*cell[2] + V{0.444444444444444}*cell[3] + V{0.444444444444444}*cell[4] + V{0.444444444444444}*cell[5] + V{0.444444444444444}*cell[6] + V{0.444444444444444}*cell[7] + V{0.444444444444444}*cell[8]) - x12*(cell[0] + V{0.444444444444444}) + cell[0];
3998auto x1 = x11*(x19 + x9 - V{0.972222222222222}*cell[1]) - x12*(cell[1] + V{0.0277777777777778}) + cell[1];
3999auto x2 = x11*(x20 + x28 - V{0.888888888888889}*cell[2]) - x12*(cell[2] + V{0.111111111111111}) + cell[2];
4000auto x3 = x11*(x19 + x29 - V{0.972222222222222}*cell[3]) - x12*(cell[3] + V{0.0277777777777778}) + cell[3];
4001auto x4 = x11*(x28 + x30 - V{0.888888888888889}*cell[4]) - x12*(cell[4] + V{0.111111111111111}) + cell[4];
4002auto x5 = x11*(x17 + x31 - V{0.972222222222222}*cell[5]) - x12*(cell[5] + V{0.0277777777777778}) + cell[5];
4003auto x6 = x11*(x27 + x32 - V{0.888888888888889}*cell[6]) - x12*(cell[6] + V{0.111111111111111}) + cell[6];
4004auto x7 = x11*(x15 + x31 - V{0.972222222222222}*cell[7]) - x12*(cell[7] + V{0.0277777777777778}) + cell[7];
4005auto x8 = x11*(x25 + x32 - V{0.888888888888889}*cell[8]) - x12*(cell[8] + V{0.111111111111111}) + cell[8];
4006cell[0] = x0;
4007cell[1] = x1;
4008cell[2] = x2;
4009cell[3] = x3;
4010cell[4] = x4;
4011cell[5] = x5;
4012cell[6] = x6;
4013cell[7] = x7;
4014cell[8] = x8;
4015return { cell[0] + cell[1] + cell[2] + cell[3] + cell[4] + cell[5] + cell[6] + cell[7] + cell[8] + V{1}, V{0} };
4016}
4017
4018};
4019
4020template <typename... FIELDS>
4021struct Poisson::type<descriptors::D3Q7<FIELDS...>,momenta::PoissonTuple,equilibria::ZerothOrder> {
4022
4023template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
4024CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
4025{
4026auto x11 = parameters.template get<olb::collision::Poisson::SINK>();
4027auto x10 = parameters.template get<olb::descriptors::OMEGA>();
4028auto x7 = V{0.125}*cell[2];
4029auto x8 = V{0.125}*cell[0];
4030auto x9 = V{0.125}*cell[3];
4031auto x12 = V{0.125}*cell[4];
4032auto x13 = V{0.125}*cell[5];
4033auto x14 = V{0.125}*cell[6];
4034auto x15 = x12 + x13 + x14 + x8 + x9;
4035auto x16 = V{0.125}*cell[1];
4036auto x17 = x13 + x14 + x16 + x7 + x8;
4037auto x18 = x12 + x16 + x7 + x8 + x9;
4038auto x0 = x10*(-V{0.75}*cell[0] + V{0.25}*cell[1] + V{0.25}*cell[2] + V{0.25}*cell[3] + V{0.25}*cell[4] + V{0.25}*cell[5] + V{0.25}*cell[6]) - x11*(cell[0] + V{0.25}) + cell[0];
4039auto x1 = x10*(x15 + x7 - V{0.875}*cell[1]) - x11*(cell[1] + V{0.125}) + cell[1];
4040auto x2 = x10*(x15 + x16 - V{0.875}*cell[2]) - x11*(cell[2] + V{0.125}) + cell[2];
4041auto x3 = x10*(x12 + x17 - V{0.875}*cell[3]) - x11*(cell[3] + V{0.125}) + cell[3];
4042auto x4 = x10*(x17 + x9 - V{0.875}*cell[4]) - x11*(cell[4] + V{0.125}) + cell[4];
4043auto x5 = x10*(x14 + x18 - V{0.875}*cell[5]) - x11*(cell[5] + V{0.125}) + cell[5];
4044auto x6 = x10*(x13 + x18 - V{0.875}*cell[6]) - x11*(cell[6] + V{0.125}) + cell[6];
4045cell[0] = x0;
4046cell[1] = x1;
4047cell[2] = x2;
4048cell[3] = x3;
4049cell[4] = x4;
4050cell[5] = x5;
4051cell[6] = x6;
4052return { cell[0] + cell[1] + cell[2] + cell[3] + cell[4] + cell[5] + cell[6] + V{1}, V{0} };
4053}
4054
4055};
4056
4057template <typename... FIELDS>
4058struct Poisson::type<descriptors::D3Q19<FIELDS...>,momenta::PoissonTuple,equilibria::ZerothOrder> {
4059
4060template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
4061CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
4062{
4063auto x22 = parameters.template get<olb::descriptors::OMEGA>();
4064auto x23 = parameters.template get<olb::collision::Poisson::SINK>();
4065auto x19 = V{0.0555555555555556}*cell[2];
4066auto x20 = V{0.0555555555555556}*cell[0];
4067auto x21 = V{0.0555555555555556}*cell[3];
4068auto x24 = V{0.0555555555555556}*cell[4];
4069auto x25 = V{0.0555555555555556}*cell[5];
4070auto x26 = V{0.0555555555555556}*cell[6];
4071auto x27 = V{0.0555555555555556}*cell[7];
4072auto x28 = V{0.0555555555555556}*cell[8];
4073auto x29 = V{0.0555555555555556}*cell[9];
4074auto x30 = V{0.0555555555555556}*cell[10];
4075auto x31 = V{0.0555555555555556}*cell[11];
4076auto x32 = V{0.0555555555555556}*cell[12];
4077auto x33 = V{0.0555555555555556}*cell[13];
4078auto x34 = V{0.0555555555555556}*cell[14];
4079auto x35 = V{0.0555555555555556}*cell[15];
4080auto x36 = V{0.0555555555555556}*cell[16];
4081auto x37 = V{0.0555555555555556}*cell[17];
4082auto x38 = V{0.0555555555555556}*cell[18];
4083auto x39 = x20 + x21 + x24 + x25 + x26 + x27 + x28 + x29 + x30 + x31 + x32 + x33 + x34 + x35 + x36 + x37 + x38;
4084auto x40 = V{0.0555555555555556}*cell[1];
4085auto x41 = x19 + x20 + x24 + x25 + x26 + x27 + x28 + x29 + x31 + x32 + x33 + x34 + x35 + x36 + x37 + x38 + x40;
4086auto x42 = V{0.0277777777777778}*cell[5];
4087auto x43 = V{0.0277777777777778}*cell[0];
4088auto x44 = V{0.0277777777777778}*cell[1];
4089auto x45 = V{0.0277777777777778}*cell[2];
4090auto x46 = V{0.0277777777777778}*cell[3];
4091auto x47 = V{0.0277777777777778}*cell[6];
4092auto x48 = V{0.0277777777777778}*cell[7];
4093auto x49 = V{0.0277777777777778}*cell[8];
4094auto x50 = V{0.0277777777777778}*cell[9];
4095auto x51 = V{0.0277777777777778}*cell[10];
4096auto x52 = V{0.0277777777777778}*cell[11];
4097auto x53 = V{0.0277777777777778}*cell[12];
4098auto x54 = V{0.0277777777777778}*cell[13];
4099auto x55 = V{0.0277777777777778}*cell[14];
4100auto x56 = V{0.0277777777777778}*cell[15];
4101auto x57 = V{0.0277777777777778}*cell[16];
4102auto x58 = V{0.0277777777777778}*cell[17];
4103auto x59 = V{0.0277777777777778}*cell[18];
4104auto x60 = x43 + x44 + x45 + x46 + x47 + x48 + x49 + x50 + x51 + x52 + x53 + x54 + x55 + x56 + x57 + x58 + x59;
4105auto x61 = V{0.0277777777777778}*cell[4];
4106auto x62 = x42 + x43 + x44 + x45 + x46 + x49 + x50 + x51 + x52 + x53 + x54 + x55 + x56 + x57 + x58 + x59 + x61;
4107auto x63 = x42 + x43 + x44 + x45 + x46 + x47 + x48 + x51 + x52 + x53 + x54 + x55 + x56 + x57 + x58 + x59 + x61;
4108auto x64 = x19 + x20 + x21 + x24 + x25 + x26 + x27 + x28 + x29 + x30 + x33 + x34 + x35 + x36 + x37 + x38 + x40;
4109auto x65 = x42 + x43 + x44 + x45 + x46 + x47 + x48 + x49 + x50 + x51 + x52 + x53 + x56 + x57 + x58 + x59 + x61;
4110auto x66 = x42 + x43 + x44 + x45 + x46 + x47 + x48 + x49 + x50 + x51 + x52 + x53 + x54 + x55 + x58 + x59 + x61;
4111auto x67 = x42 + x43 + x44 + x45 + x46 + x47 + x48 + x49 + x50 + x51 + x52 + x53 + x54 + x55 + x56 + x57 + x61;
4112auto x0 = x22*(-V{0.666666666666667}*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]) - x23*(cell[0] + V{0.333333333333333}) + cell[0];
4113auto x1 = x22*(x19 + x39 - V{0.944444444444444}*cell[1]) - x23*(cell[1] + V{0.0555555555555556}) + cell[1];
4114auto x2 = x22*(x39 + x40 - V{0.944444444444444}*cell[2]) - x23*(cell[2] + V{0.0555555555555556}) + cell[2];
4115auto x3 = x22*(x30 + x41 - V{0.944444444444444}*cell[3]) - x23*(cell[3] + V{0.0555555555555556}) + cell[3];
4116auto x4 = x22*(x42 + x60 - V{0.972222222222222}*cell[4]) - x23*(cell[4] + V{0.0277777777777778}) + cell[4];
4117auto x5 = x22*(x60 + x61 - V{0.972222222222222}*cell[5]) - x23*(cell[5] + V{0.0277777777777778}) + cell[5];
4118auto x6 = x22*(x48 + x62 - V{0.972222222222222}*cell[6]) - x23*(cell[6] + V{0.0277777777777778}) + cell[6];
4119auto x7 = x22*(x47 + x62 - V{0.972222222222222}*cell[7]) - x23*(cell[7] + V{0.0277777777777778}) + cell[7];
4120auto x8 = x22*(x50 + x63 - V{0.972222222222222}*cell[8]) - x23*(cell[8] + V{0.0277777777777778}) + cell[8];
4121auto x9 = x22*(x49 + x63 - V{0.972222222222222}*cell[9]) - x23*(cell[9] + V{0.0277777777777778}) + cell[9];
4122auto x10 = x22*(x21 + x41 - V{0.944444444444444}*cell[10]) - x23*(cell[10] + V{0.0555555555555556}) + cell[10];
4123auto x11 = x22*(x32 + x64 - V{0.944444444444444}*cell[11]) - x23*(cell[11] + V{0.0555555555555556}) + cell[11];
4124auto x12 = x22*(x31 + x64 - V{0.944444444444444}*cell[12]) - x23*(cell[12] + V{0.0555555555555556}) + cell[12];
4125auto x13 = x22*(x55 + x65 - V{0.972222222222222}*cell[13]) - x23*(cell[13] + V{0.0277777777777778}) + cell[13];
4126auto x14 = x22*(x54 + x65 - V{0.972222222222222}*cell[14]) - x23*(cell[14] + V{0.0277777777777778}) + cell[14];
4127auto x15 = x22*(x57 + x66 - V{0.972222222222222}*cell[15]) - x23*(cell[15] + V{0.0277777777777778}) + cell[15];
4128auto x16 = x22*(x56 + x66 - V{0.972222222222222}*cell[16]) - x23*(cell[16] + V{0.0277777777777778}) + cell[16];
4129auto x17 = x22*(x59 + x67 - V{0.972222222222222}*cell[17]) - x23*(cell[17] + V{0.0277777777777778}) + cell[17];
4130auto x18 = x22*(x58 + x67 - V{0.972222222222222}*cell[18]) - x23*(cell[18] + V{0.0277777777777778}) + cell[18];
4131cell[0] = x0;
4132cell[1] = x1;
4133cell[2] = x2;
4134cell[3] = x3;
4135cell[4] = x4;
4136cell[5] = x5;
4137cell[6] = x6;
4138cell[7] = x7;
4139cell[8] = x8;
4140cell[9] = x9;
4141cell[10] = x10;
4142cell[11] = x11;
4143cell[12] = x12;
4144cell[13] = x13;
4145cell[14] = x14;
4146cell[15] = x15;
4147cell[16] = x16;
4148cell[17] = x17;
4149cell[18] = x18;
4150return { 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] + V{1}, V{0} };
4151}
4152
4153};
4154
4155template <typename... FIELDS>
4156struct Poisson::type<descriptors::D3Q27<FIELDS...>,momenta::PoissonTuple,equilibria::ZerothOrder> {
4157
4158template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
4159CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
4160{
4161auto x31 = parameters.template get<olb::collision::Poisson::SINK>();
4162auto x30 = parameters.template get<olb::descriptors::OMEGA>();
4163auto x27 = V{0.0740740740740741}*cell[2];
4164auto x28 = V{0.0740740740740741}*cell[0];
4165auto x29 = V{0.0740740740740741}*cell[3];
4166auto x32 = V{0.0740740740740741}*cell[4];
4167auto x33 = V{0.0740740740740741}*cell[5];
4168auto x34 = V{0.0740740740740741}*cell[6];
4169auto x35 = V{0.0740740740740741}*cell[7];
4170auto x36 = V{0.0740740740740741}*cell[8];
4171auto x37 = V{0.0740740740740741}*cell[9];
4172auto x38 = V{0.0740740740740741}*cell[10];
4173auto x39 = V{0.0740740740740741}*cell[11];
4174auto x40 = V{0.0740740740740741}*cell[12];
4175auto x41 = V{0.0740740740740741}*cell[13];
4176auto x42 = V{0.0740740740740741}*cell[14];
4177auto x43 = V{0.0740740740740741}*cell[15];
4178auto x44 = V{0.0740740740740741}*cell[16];
4179auto x45 = V{0.0740740740740741}*cell[17];
4180auto x46 = V{0.0740740740740741}*cell[18];
4181auto x47 = V{0.0740740740740741}*cell[19];
4182auto x48 = V{0.0740740740740741}*cell[20];
4183auto x49 = V{0.0740740740740741}*cell[21];
4184auto x50 = V{0.0740740740740741}*cell[22];
4185auto x51 = V{0.0740740740740741}*cell[23];
4186auto x52 = V{0.0740740740740741}*cell[24];
4187auto x53 = V{0.0740740740740741}*cell[25];
4188auto x54 = V{0.0740740740740741}*cell[26];
4189auto x55 = x28 + x29 + x32 + x33 + x34 + x35 + x36 + x37 + x38 + x39 + x40 + x41 + x42 + x43 + x44 + x45 + x46 + x47 + x48 + x49 + x50 + x51 + x52 + x53 + x54;
4190auto x56 = V{0.0740740740740741}*cell[1];
4191auto x57 = x27 + x28 + x32 + x33 + x34 + x35 + x36 + x37 + x38 + x39 + x40 + x41 + x43 + x44 + x45 + x46 + x47 + x48 + x49 + x50 + x51 + x52 + x53 + x54 + x56;
4192auto x58 = V{0.0185185185185185}*cell[5];
4193auto x59 = V{0.0185185185185185}*cell[0];
4194auto x60 = V{0.0185185185185185}*cell[1];
4195auto x61 = V{0.0185185185185185}*cell[2];
4196auto x62 = V{0.0185185185185185}*cell[3];
4197auto x63 = V{0.0185185185185185}*cell[6];
4198auto x64 = V{0.0185185185185185}*cell[7];
4199auto x65 = V{0.0185185185185185}*cell[8];
4200auto x66 = V{0.0185185185185185}*cell[9];
4201auto x67 = V{0.0185185185185185}*cell[10];
4202auto x68 = V{0.0185185185185185}*cell[11];
4203auto x69 = V{0.0185185185185185}*cell[12];
4204auto x70 = V{0.0185185185185185}*cell[13];
4205auto x71 = V{0.0185185185185185}*cell[14];
4206auto x72 = V{0.0185185185185185}*cell[15];
4207auto x73 = V{0.0185185185185185}*cell[16];
4208auto x74 = V{0.0185185185185185}*cell[17];
4209auto x75 = V{0.0185185185185185}*cell[18];
4210auto x76 = V{0.0185185185185185}*cell[19];
4211auto x77 = V{0.0185185185185185}*cell[20];
4212auto x78 = V{0.0185185185185185}*cell[21];
4213auto x79 = V{0.0185185185185185}*cell[22];
4214auto x80 = V{0.0185185185185185}*cell[23];
4215auto x81 = V{0.0185185185185185}*cell[24];
4216auto x82 = V{0.0185185185185185}*cell[25];
4217auto x83 = V{0.0185185185185185}*cell[26];
4218auto x84 = x59 + x60 + x61 + x62 + x63 + x64 + x65 + x66 + x67 + x68 + x69 + x70 + x71 + x72 + x73 + x74 + x75 + x76 + x77 + x78 + x79 + x80 + x81 + x82 + x83;
4219auto x85 = V{0.0185185185185185}*cell[4];
4220auto x86 = x58 + x59 + x60 + x61 + x62 + x65 + x66 + x67 + x68 + x69 + x70 + x71 + x72 + x73 + x74 + x75 + x76 + x77 + x78 + x79 + x80 + x81 + x82 + x83 + x85;
4221auto x87 = x58 + x59 + x60 + x61 + x62 + x63 + x64 + x67 + x68 + x69 + x70 + x71 + x72 + x73 + x74 + x75 + x76 + x77 + x78 + x79 + x80 + x81 + x82 + x83 + x85;
4222auto x88 = V{0.00462962962962963}*cell[11];
4223auto x89 = V{0.00462962962962963}*cell[0];
4224auto x90 = V{0.00462962962962963}*cell[1];
4225auto x91 = V{0.00462962962962963}*cell[2];
4226auto x92 = V{0.00462962962962963}*cell[3];
4227auto x93 = V{0.00462962962962963}*cell[4];
4228auto x94 = V{0.00462962962962963}*cell[5];
4229auto x95 = V{0.00462962962962963}*cell[6];
4230auto x96 = V{0.00462962962962963}*cell[7];
4231auto x97 = V{0.00462962962962963}*cell[8];
4232auto x98 = V{0.00462962962962963}*cell[9];
4233auto x99 = V{0.00462962962962963}*cell[12];
4234auto x100 = V{0.00462962962962963}*cell[13];
4235auto x101 = V{0.00462962962962963}*cell[14];
4236auto x102 = V{0.00462962962962963}*cell[15];
4237auto x103 = V{0.00462962962962963}*cell[16];
4238auto x104 = V{0.00462962962962963}*cell[17];
4239auto x105 = V{0.00462962962962963}*cell[18];
4240auto x106 = V{0.00462962962962963}*cell[19];
4241auto x107 = V{0.00462962962962963}*cell[20];
4242auto x108 = V{0.00462962962962963}*cell[21];
4243auto x109 = V{0.00462962962962963}*cell[22];
4244auto x110 = V{0.00462962962962963}*cell[23];
4245auto x111 = V{0.00462962962962963}*cell[24];
4246auto x112 = V{0.00462962962962963}*cell[25];
4247auto x113 = V{0.00462962962962963}*cell[26];
4248auto x114 = x100 + x101 + x102 + x103 + x104 + x105 + x106 + x107 + x108 + x109 + x110 + x111 + x112 + x113 + x89 + x90 + x91 + x92 + x93 + x94 + x95 + x96 + x97 + x98 + x99;
4249auto x115 = V{0.00462962962962963}*cell[10];
4250auto x116 = x101 + x102 + x103 + x104 + x105 + x106 + x107 + x108 + x109 + x110 + x111 + x112 + x113 + x115 + x88 + x89 + x90 + x91 + x92 + x93 + x94 + x95 + x96 + x97 + x98;
4251auto x117 = x27 + x28 + x29 + x32 + x33 + x34 + x35 + x36 + x37 + x38 + x39 + x40 + x41 + x42 + x45 + x46 + x47 + x48 + x49 + x50 + x51 + x52 + x53 + x54 + x56;
4252auto x118 = x58 + x59 + x60 + x61 + x62 + x63 + x64 + x65 + x66 + x67 + x68 + x69 + x70 + x71 + x72 + x73 + x76 + x77 + x78 + x79 + x80 + x81 + x82 + x83 + x85;
4253auto x119 = x58 + x59 + x60 + x61 + x62 + x63 + x64 + x65 + x66 + x67 + x68 + x69 + x70 + x71 + x72 + x73 + x74 + x75 + x78 + x79 + x80 + x81 + x82 + x83 + x85;
4254auto x120 = x58 + x59 + x60 + x61 + x62 + x63 + x64 + x65 + x66 + x67 + x68 + x69 + x70 + x71 + x72 + x73 + x74 + x75 + x76 + x77 + x80 + x81 + x82 + x83 + x85;
4255auto x121 = x100 + x101 + x102 + x103 + x104 + x105 + x106 + x107 + x108 + x109 + x112 + x113 + x115 + x88 + x89 + x90 + x91 + x92 + x93 + x94 + x95 + x96 + x97 + x98 + x99;
4256auto x122 = x100 + x101 + x102 + x103 + x104 + x105 + x106 + x107 + x108 + x109 + x110 + x111 + x115 + x88 + x89 + x90 + x91 + x92 + x93 + x94 + x95 + x96 + x97 + x98 + x99;
4257auto x0 = x30*(-V{0.703703703703704}*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]) - x31*(cell[0] + V{0.296296296296296}) + cell[0];
4258auto x1 = x30*(x27 + x55 - V{0.925925925925926}*cell[1]) - x31*(cell[1] + V{0.0740740740740741}) + cell[1];
4259auto x2 = x30*(x55 + x56 - V{0.925925925925926}*cell[2]) - x31*(cell[2] + V{0.0740740740740741}) + cell[2];
4260auto x3 = x30*(x42 + x57 - V{0.925925925925926}*cell[3]) - x31*(cell[3] + V{0.0740740740740741}) + cell[3];
4261auto x4 = x30*(x58 + x84 - V{0.981481481481482}*cell[4]) - x31*(cell[4] + V{0.0185185185185185}) + cell[4];
4262auto x5 = x30*(x84 + x85 - V{0.981481481481482}*cell[5]) - x31*(cell[5] + V{0.0185185185185185}) + cell[5];
4263auto x6 = x30*(x64 + x86 - V{0.981481481481482}*cell[6]) - x31*(cell[6] + V{0.0185185185185185}) + cell[6];
4264auto x7 = x30*(x63 + x86 - V{0.981481481481482}*cell[7]) - x31*(cell[7] + V{0.0185185185185185}) + cell[7];
4265auto x8 = x30*(x66 + x87 - V{0.981481481481482}*cell[8]) - x31*(cell[8] + V{0.0185185185185185}) + cell[8];
4266auto x9 = x30*(x65 + x87 - V{0.981481481481482}*cell[9]) - x31*(cell[9] + V{0.0185185185185185}) + cell[9];
4267auto x10 = x30*(x114 + x88 - V{0.99537037037037}*cell[10]) - x31*(cell[10] + V{0.00462962962962963}) + cell[10];
4268auto x11 = x30*(x114 + x115 - V{0.99537037037037}*cell[11]) - x31*(cell[11] + V{0.00462962962962963}) + cell[11];
4269auto x12 = x30*(x100 + x116 - V{0.99537037037037}*cell[12]) - x31*(cell[12] + V{0.00462962962962963}) + cell[12];
4270auto x13 = x30*(x116 + x99 - V{0.99537037037037}*cell[13]) - x31*(cell[13] + V{0.00462962962962963}) + cell[13];
4271auto x14 = x30*(x29 + x57 - V{0.925925925925926}*cell[14]) - x31*(cell[14] + V{0.0740740740740741}) + cell[14];
4272auto x15 = x30*(x117 + x44 - V{0.925925925925926}*cell[15]) - x31*(cell[15] + V{0.0740740740740741}) + cell[15];
4273auto x16 = x30*(x117 + x43 - V{0.925925925925926}*cell[16]) - x31*(cell[16] + V{0.0740740740740741}) + cell[16];
4274auto x17 = x30*(x118 + x75 - V{0.981481481481482}*cell[17]) - x31*(cell[17] + V{0.0185185185185185}) + cell[17];
4275auto x18 = x30*(x118 + x74 - V{0.981481481481482}*cell[18]) - x31*(cell[18] + V{0.0185185185185185}) + cell[18];
4276auto x19 = x30*(x119 + x77 - V{0.981481481481482}*cell[19]) - x31*(cell[19] + V{0.0185185185185185}) + cell[19];
4277auto x20 = x30*(x119 + x76 - V{0.981481481481482}*cell[20]) - x31*(cell[20] + V{0.0185185185185185}) + cell[20];
4278auto x21 = x30*(x120 + x79 - V{0.981481481481482}*cell[21]) - x31*(cell[21] + V{0.0185185185185185}) + cell[21];
4279auto x22 = x30*(x120 + x78 - V{0.981481481481482}*cell[22]) - x31*(cell[22] + V{0.0185185185185185}) + cell[22];
4280auto x23 = x30*(x111 + x121 - V{0.99537037037037}*cell[23]) - x31*(cell[23] + V{0.00462962962962963}) + cell[23];
4281auto x24 = x30*(x110 + x121 - V{0.99537037037037}*cell[24]) - x31*(cell[24] + V{0.00462962962962963}) + cell[24];
4282auto x25 = x30*(x113 + x122 - V{0.99537037037037}*cell[25]) - x31*(cell[25] + V{0.00462962962962963}) + cell[25];
4283auto x26 = x30*(x112 + x122 - V{0.99537037037037}*cell[26]) - x31*(cell[26] + V{0.00462962962962963}) + cell[26];
4284cell[0] = x0;
4285cell[1] = x1;
4286cell[2] = x2;
4287cell[3] = x3;
4288cell[4] = x4;
4289cell[5] = x5;
4290cell[6] = x6;
4291cell[7] = x7;
4292cell[8] = x8;
4293cell[9] = x9;
4294cell[10] = x10;
4295cell[11] = x11;
4296cell[12] = x12;
4297cell[13] = x13;
4298cell[14] = x14;
4299cell[15] = x15;
4300cell[16] = x16;
4301cell[17] = x17;
4302cell[18] = x18;
4303cell[19] = x19;
4304cell[20] = x20;
4305cell[21] = x21;
4306cell[22] = x22;
4307cell[23] = x23;
4308cell[24] = x24;
4309cell[25] = x25;
4310cell[26] = x26;
4311return { cell[0] + cell[10] + cell[11] + cell[12] + cell[13] + cell[14] + cell[15] + cell[16] + cell[17] + cell[18] + cell[19] + cell[1] + cell[20] + cell[21] + cell[22] + cell[23] + cell[24] + cell[25] + cell[26] + cell[2] + cell[3] + cell[4] + cell[5] + cell[6] + cell[7] + cell[8] + cell[9] + V{1}, V{0} };
4312}
4313
4314};
4315
4316
4317template <typename... FIELDS>
4318struct P1::type<descriptors::D3Q7<FIELDS...>,momenta::P1Tuple,equilibria::P1> {
4319
4320template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
4321CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
4322{
4323auto x7 = parameters.template get<olb::collision::P1::SCATTERING>();
4324auto x8 = parameters.template get<olb::collision::P1::ABSORPTION>();
4325auto x9 = V{0.166666666666667}*cell[0];
4326auto x10 = x9 + V{0.166666666666667}*cell[3] + V{0.166666666666667}*cell[6];
4327auto x11 = V{0.166666666666667}*cell[2] + V{0.166666666666667}*cell[5];
4328auto x12 = x10 + x11;
4329auto x13 = V{1}*x7;
4330auto x14 = V{1}*x8;
4331auto x15 = V{0.166666666666667}*cell[1] + V{0.166666666666667}*cell[4];
4332auto x16 = x10 + x15;
4333auto x17 = x11 + x15 + x9;
4334cell[0] = cell[0];
4335cell[1] = x13*(x12 - V{0.666666666666667}*cell[1]) - x14*(cell[1] + V{0.166666666666667}) + cell[1];
4336cell[2] = x13*(x16 - V{0.666666666666667}*cell[2]) - x14*(cell[2] + V{0.166666666666667}) + cell[2];
4337cell[3] = x13*(x17 - V{0.666666666666667}*cell[3]) - x14*(cell[3] + V{0.166666666666667}) + cell[3];
4338cell[4] = x13*(x12 - V{0.666666666666667}*cell[4]) - x14*(cell[4] + V{0.166666666666667}) + cell[4];
4339cell[5] = x13*(x16 - V{0.666666666666667}*cell[5]) - x14*(cell[5] + V{0.166666666666667}) + cell[5];
4340cell[6] = x13*(x17 - V{0.666666666666667}*cell[6]) - x14*(cell[6] + V{0.166666666666667}) + cell[6];
4341return { cell[0] + cell[1] + cell[2] + cell[3] + cell[4] + cell[5] + cell[6] + V{1}, V{0} };
4342}
4343
4344};
4345
4346template <typename... FIELDS>
4347struct P1::type<descriptors::D3Q15<FIELDS...>,momenta::P1Tuple,equilibria::P1> {
4348
4349template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
4350CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
4351{
4352auto x15 = parameters.template get<olb::collision::P1::SCATTERING>();
4353auto x16 = parameters.template get<olb::collision::P1::ABSORPTION>();
4354auto x17 = V{0.133333333333333}*cell[7];
4355auto x18 = V{0.0666666666666667}*cell[0];
4356auto x19 = V{0.0666666666666667}*cell[3];
4357auto x20 = V{0.0666666666666667}*cell[10];
4358auto x21 = V{0.133333333333333}*cell[4];
4359auto x22 = V{0.133333333333333}*cell[5];
4360auto x23 = x18 + x19 + x20 + x21 + x22;
4361auto x24 = V{0.0666666666666667}*cell[2];
4362auto x25 = V{0.0666666666666667}*cell[9];
4363auto x26 = V{0.133333333333333}*cell[6];
4364auto x27 = x24 + x25 + x26;
4365auto x28 = V{1}*x15;
4366auto x29 = V{1}*x16;
4367auto x30 = V{0.133333333333333}*cell[13];
4368auto x31 = V{0.133333333333333}*cell[14];
4369auto x32 = x30 + x31;
4370auto x33 = V{0.0666666666666667}*cell[1] + V{0.0666666666666667}*cell[8];
4371auto x34 = x18 + V{0.133333333333333}*cell[12];
4372auto x35 = x33 + x34;
4373auto x36 = V{0.15}*cell[11];
4374auto x37 = V{0.075}*cell[0];
4375auto x38 = V{0.15}*cell[1];
4376auto x39 = V{0.15}*cell[2];
4377auto x40 = x37 + x38 + x39;
4378auto x41 = V{0.15}*cell[5];
4379auto x42 = V{0.15}*cell[6];
4380auto x43 = x41 + x42;
4381auto x44 = V{0.15}*cell[3];
4382auto x45 = V{0.15}*cell[14];
4383auto x46 = x44 + x45;
4384auto x47 = V{1.732051}*x15;
4385auto x48 = V{1.732051}*x16;
4386auto x49 = V{0.15}*cell[12];
4387auto x50 = V{0.15}*cell[4];
4388auto x51 = V{0.15}*cell[7];
4389auto x52 = x50 + x51;
4390auto x53 = V{0.15}*cell[10];
4391auto x54 = V{0.15}*cell[13];
4392auto x55 = x53 + x54;
4393auto x56 = x37 + V{0.15}*cell[9];
4394auto x57 = x38 + x56;
4395auto x58 = x44 + x49;
4396auto x59 = x36 + x53;
4397auto x60 = V{0.133333333333333}*cell[11];
4398auto x61 = x19 + x20 + x60;
4399auto x62 = x24 + x25;
4400auto x63 = V{0.15}*cell[8];
4401auto x64 = x56 + x63;
4402auto x65 = x37 + x39 + x63;
4403cell[0] = cell[0];
4404cell[1] = x28*(x17 + x23 + x27 - V{0.866666666666667}*cell[1]) - x29*(cell[1] + V{0.0666666666666667}) + cell[1];
4405cell[2] = x28*(x23 + x32 + x33 - V{0.866666666666667}*cell[2]) - x29*(cell[2] + V{0.0666666666666667}) + cell[2];
4406cell[3] = x28*(x21 + x27 + x31 + x35 - V{0.866666666666667}*cell[3]) - x29*(cell[3] + V{0.0666666666666667}) + cell[3];
4407cell[4] = x47*(-x36 + x40 + x43 + x46 - V{0.7}*cell[4]) - x48*(cell[4] + V{0.075}) + cell[4];
4408cell[5] = x47*(x40 - x49 + x52 + x55 - V{0.7}*cell[5]) - x48*(cell[5] + V{0.075}) + cell[5];
4409cell[6] = x47*(x52 - x54 + x57 + x58 - V{0.7}*cell[6]) - x48*(cell[6] + V{0.075}) + cell[6];
4410cell[7] = x47*(x43 - x45 + x57 + x59 - V{0.7}*cell[7]) - x48*(cell[7] + V{0.075}) + cell[7];
4411cell[8] = x28*(x32 + x34 + x61 + x62 - V{0.866666666666667}*cell[8]) - x29*(cell[8] + V{0.0666666666666667}) + cell[8];
4412cell[9] = x28*(x17 + x26 + x35 + x61 - V{0.866666666666667}*cell[9]) - x29*(cell[9] + V{0.0666666666666667}) + cell[9];
4413cell[10] = x28*(x17 + x18 + x22 + x30 + x33 + x60 + x62 - V{0.866666666666667}*cell[10]) - x29*(cell[10] + V{0.0666666666666667}) + cell[10];
4414cell[11] = x47*(x49 - x50 + x51 + x55 + x64 - V{0.7}*cell[11]) - x48*(cell[11] + V{0.075}) + cell[11];
4415cell[12] = x47*(x36 - x41 + x42 + x46 + x64 - V{0.7}*cell[12]) - x48*(cell[12] + V{0.075}) + cell[12];
4416cell[13] = x47*(x41 - x42 + x45 + x59 + x65 - V{0.7}*cell[13]) - x48*(cell[13] + V{0.075}) + cell[13];
4417cell[14] = x47*(x50 - x51 + x54 + x58 + x65 - V{0.7}*cell[14]) - x48*(cell[14] + V{0.075}) + cell[14];
4418return { cell[0] + cell[10] + cell[11] + cell[12] + cell[13] + cell[14] + cell[1] + cell[2] + cell[3] + cell[4] + cell[5] + cell[6] + cell[7] + cell[8] + cell[9] + V{1}, V{0} };
4419}
4420
4421};
4422
4423template <typename... FIELDS>
4424struct P1::type<descriptors::D3Q27<FIELDS...>,momenta::P1Tuple,equilibria::P1> {
4425
4426template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
4427CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
4428{
4429auto x28 = parameters.template get<olb::collision::P1::ABSORPTION>();
4430auto x27 = parameters.template get<olb::collision::P1::SCATTERING>();
4431auto x29 = V{0.0952380952380952}*cell[7];
4432auto x30 = V{0.0476190476190476}*cell[0];
4433auto x31 = V{0.0476190476190476}*cell[3];
4434auto x32 = V{0.0476190476190476}*cell[16];
4435auto x33 = V{0.0952380952380952}*cell[10];
4436auto x34 = V{0.0952380952380952}*cell[11];
4437auto x35 = x30 + x31 + x32 + x33 + x34 + V{0.0952380952380952}*cell[4];
4438auto x36 = V{0.0476190476190476}*cell[2];
4439auto x37 = V{0.0476190476190476}*cell[15];
4440auto x38 = V{0.0952380952380952}*cell[12];
4441auto x39 = x36 + x37 + x38 + V{0.0952380952380952}*cell[6];
4442auto x40 = V{0.0952380952380952}*cell[13];
4443auto x41 = x40 + V{0.0952380952380952}*cell[5];
4444auto x42 = V{0.0476190476190476}*cell[21] + V{0.0476190476190476}*cell[22] + V{0.0476190476190476}*cell[8] + V{0.0476190476190476}*cell[9];
4445auto x43 = V{1}*x27;
4446auto x44 = V{1}*x28;
4447auto x45 = V{0.0952380952380952}*cell[9];
4448auto x46 = V{0.0952380952380952}*cell[25];
4449auto x47 = V{0.0952380952380952}*cell[26];
4450auto x48 = x46 + x47 + V{0.0952380952380952}*cell[18];
4451auto x49 = V{0.0476190476190476}*cell[1];
4452auto x50 = V{0.0476190476190476}*cell[14];
4453auto x51 = x49 + x50 + V{0.0952380952380952}*cell[8];
4454auto x52 = V{0.0476190476190476}*cell[19] + V{0.0476190476190476}*cell[20] + V{0.0476190476190476}*cell[6] + V{0.0476190476190476}*cell[7];
4455auto x53 = V{0.0952380952380952}*cell[22];
4456auto x54 = V{0.0952380952380952}*cell[24];
4457auto x55 = x30 + x54 + V{0.0952380952380952}*cell[20];
4458auto x56 = V{0.0476190476190476}*cell[17] + V{0.0476190476190476}*cell[18] + V{0.0476190476190476}*cell[4] + V{0.0476190476190476}*cell[5];
4459auto x57 = V{0.0380952380952381}*cell[17];
4460auto x58 = V{0.0380952380952381}*cell[0];
4461auto x59 = V{0.0380952380952381}*cell[13];
4462auto x60 = V{0.0380952380952381}*cell[26];
4463auto x61 = V{0.0761904761904762}*cell[9];
4464auto x62 = x58 + x59 + x60 + x61;
4465auto x63 = V{0.0380952380952381}*cell[12];
4466auto x64 = V{0.0380952380952381}*cell[25];
4467auto x65 = V{0.0761904761904762}*cell[8];
4468auto x66 = x63 + x64 + x65;
4469auto x67 = V{0.0380952380952381}*cell[3];
4470auto x68 = V{0.0380952380952381}*cell[16];
4471auto x69 = V{0.0761904761904762}*cell[1];
4472auto x70 = V{0.0761904761904762}*cell[6];
4473auto x71 = V{0.0761904761904762}*cell[7];
4474auto x72 = x67 + x68 + x69 + x70 + x71;
4475auto x73 = V{0.0380952380952381}*cell[24];
4476auto x74 = -x73 + V{0.114285714285714}*cell[11];
4477auto x75 = V{0.0761904761904762}*cell[2];
4478auto x76 = V{0.0380952380952381}*cell[23];
4479auto x77 = -x76 + V{0.114285714285714}*cell[10];
4480auto x78 = x75 + x77;
4481auto x79 = V{0.0380952380952381}*cell[5];
4482auto x80 = V{0.0380952380952381}*cell[18];
4483auto x81 = x79 + x80;
4484auto x82 = V{1.414214}*x27;
4485auto x83 = V{1.414214}*x28;
4486auto x84 = V{0.0761904761904762}*cell[15];
4487auto x85 = V{0.0761904761904762}*cell[21];
4488auto x86 = V{0.0761904761904762}*cell[22];
4489auto x87 = x84 + x85 + x86;
4490auto x88 = V{0.114285714285714}*cell[12];
4491auto x89 = -x64;
4492auto x90 = V{0.0380952380952381}*cell[11];
4493auto x91 = x58 + x73 + x90;
4494auto x92 = x88 + x89 + x91;
4495auto x93 = V{0.114285714285714}*cell[13];
4496auto x94 = -x60;
4497auto x95 = V{0.0380952380952381}*cell[10];
4498auto x96 = x76 + x95;
4499auto x97 = x93 + x94 + x96;
4500auto x98 = V{0.0380952380952381}*cell[4];
4501auto x99 = x57 + x98;
4502auto x100 = V{0.0380952380952381}*cell[19];
4503auto x101 = V{0.0761904761904762}*cell[3];
4504auto x102 = V{0.0761904761904762}*cell[4];
4505auto x103 = x101 + x102;
4506auto x104 = V{0.0380952380952381}*cell[2];
4507auto x105 = V{0.0380952380952381}*cell[7];
4508auto x106 = V{0.0380952380952381}*cell[15];
4509auto x107 = V{0.0380952380952381}*cell[20];
4510auto x108 = x104 + x105 + x106 + x107;
4511auto x109 = V{0.0761904761904762}*cell[5];
4512auto x110 = x59 + x60;
4513auto x111 = x109 + x110;
4514auto x112 = V{0.0761904761904762}*cell[16];
4515auto x113 = x112 + x85;
4516auto x114 = x63 + x64;
4517auto x115 = x114 + x58;
4518auto x116 = x102 + x74;
4519auto x117 = V{0.0380952380952381}*cell[6];
4520auto x118 = x100 + x104 + x106 + x117;
4521auto x119 = V{0.0380952380952381}*cell[21];
4522auto x120 = V{0.0380952380952381}*cell[1];
4523auto x121 = V{0.0380952380952381}*cell[14];
4524auto x122 = V{0.0761904761904762}*cell[18];
4525auto x123 = x120 + x121 + x122;
4526auto x124 = V{0.0761904761904762}*cell[20];
4527auto x125 = -x59 + V{0.114285714285714}*cell[26];
4528auto x126 = x124 + x125 + x91;
4529auto x127 = V{0.0380952380952381}*cell[9];
4530auto x128 = V{0.0380952380952381}*cell[22];
4531auto x129 = x114 + x127 + x128;
4532auto x130 = V{0.0761904761904762}*cell[19];
4533auto x131 = x110 + x130;
4534auto x132 = x112 + x71;
4535auto x133 = V{0.0380952380952381}*cell[8];
4536auto x134 = x58 + x96;
4537auto x135 = x119 + x133 + x134;
4538auto x136 = -x63 + V{0.114285714285714}*cell[25];
4539auto x137 = x136 + x75;
4540auto x138 = V{0.0642857142857143}*cell[23];
4541auto x139 = V{0.0321428571428571}*cell[0];
4542auto x140 = V{0.0321428571428571}*cell[9];
4543auto x141 = V{0.0321428571428571}*cell[22];
4544auto x142 = V{0.0642857142857143}*cell[1];
4545auto x143 = V{0.0642857142857143}*cell[11];
4546auto x144 = V{0.0642857142857143}*cell[12];
4547auto x145 = x139 + x140 + x141 + x142 + x143 + x144;
4548auto x146 = V{0.0321428571428571}*cell[5];
4549auto x147 = V{0.0321428571428571}*cell[18];
4550auto x148 = V{0.0642857142857143}*cell[3];
4551auto x149 = V{0.0642857142857143}*cell[26];
4552auto x150 = x146 + x147 + x148 + x149;
4553auto x151 = V{0.0321428571428571}*cell[7];
4554auto x152 = V{0.0321428571428571}*cell[20];
4555auto x153 = V{0.0642857142857143}*cell[2];
4556auto x154 = x151 + x152 + x153;
4557auto x155 = V{0.0321428571428571}*cell[17];
4558auto x156 = -x155 + V{0.0964285714285714}*cell[4];
4559auto x157 = V{0.0321428571428571}*cell[19];
4560auto x158 = -x157 + V{0.0964285714285714}*cell[6];
4561auto x159 = V{0.0321428571428571}*cell[21];
4562auto x160 = -x159 + V{0.0964285714285714}*cell[8];
4563auto x161 = V{1.732051}*x27;
4564auto x162 = V{1.732051}*x28;
4565auto x163 = V{0.0642857142857143}*cell[24];
4566auto x164 = V{0.0321428571428571}*cell[6];
4567auto x165 = V{0.0642857142857143}*cell[16];
4568auto x166 = -x152 + x157 + x164 + x165 + V{0.0964285714285714}*cell[7];
4569auto x167 = V{0.0642857142857143}*cell[10];
4570auto x168 = V{0.0642857142857143}*cell[13];
4571auto x169 = V{0.0321428571428571}*cell[8];
4572auto x170 = x139 + x159 + x169;
4573auto x171 = x142 + x167 + x168 + x170;
4574auto x172 = V{0.0642857142857143}*cell[25];
4575auto x173 = x146 + x147 + x172;
4576auto x174 = -x141 + V{0.0964285714285714}*cell[9];
4577auto x175 = V{0.0642857142857143}*cell[15];
4578auto x176 = -x140 + x175 + V{0.0964285714285714}*cell[22];
4579auto x177 = x151 + x152 + x163;
4580auto x178 = V{0.0321428571428571}*cell[4];
4581auto x179 = x155 + x178;
4582auto x180 = x148 + x179;
4583auto x181 = -x147 + V{0.0964285714285714}*cell[5];
4584auto x182 = x138 + x179;
4585auto x183 = -x169 + x175 + V{0.0964285714285714}*cell[21];
4586auto x184 = V{0.0952380952380952}*cell[23];
4587auto x185 = x184 + x31 + x32 + V{0.0952380952380952}*cell[17];
4588auto x186 = x36 + x37 + V{0.0952380952380952}*cell[19];
4589auto x187 = x30 + x49 + x50 + V{0.0952380952380952}*cell[21];
4590auto x188 = -x95 + V{0.114285714285714}*cell[23];
4591auto x189 = V{0.0761904761904762}*cell[14];
4592auto x190 = x189 + x67 + x68;
4593auto x191 = -x90 + V{0.114285714285714}*cell[24];
4594auto x192 = x124 + x191;
4595auto x193 = V{0.0761904761904762}*cell[17];
4596auto x194 = x188 + x193;
4597auto x195 = x122 + x189;
4598auto x196 = x101 + x193;
4599auto x197 = x120 + x121 + x84;
4600auto x198 = V{0.0642857142857143}*cell[14];
4601auto x199 = -x178 + x198 + V{0.0964285714285714}*cell[17];
4602auto x200 = -x164 + x165 + V{0.0964285714285714}*cell[19];
4603auto x201 = x139 + x140 + x141;
4604auto x202 = -x151 + x157 + x164 + V{0.0964285714285714}*cell[20];
4605auto x203 = -x146 + x198 + V{0.0964285714285714}*cell[18];
4606cell[0] = cell[0];
4607cell[1] = x43*(x29 + x35 + x39 + x41 + x42 - V{0.904761904761905}*cell[1]) - x44*(cell[1] + V{0.0476190476190476}) + cell[1];
4608cell[2] = x43*(x35 + x45 + x48 + x51 + x52 - V{0.904761904761905}*cell[2]) - x44*(cell[2] + V{0.0476190476190476}) + cell[2];
4609cell[3] = x43*(x33 + x39 + x47 + x51 + x53 + x55 + x56 - V{0.904761904761905}*cell[3]) - x44*(cell[3] + V{0.0476190476190476}) + cell[3];
4610cell[4] = x82*(-x57 + x62 + x66 + x72 + x74 + x78 + x81 - V{0.885714285714286}*cell[4]) - x83*(cell[4] + V{0.0380952380952381}) + cell[4];
4611cell[5] = x82*(x72 - x80 + x87 + x92 + x97 + x99 - V{0.885714285714286}*cell[5]) - x83*(cell[5] + V{0.0380952380952381}) + cell[5];
4612cell[6] = x82*(-x100 + x103 + x108 + x111 + x65 + x69 + x77 + x86 + x92 - V{0.885714285714286}*cell[6]) - x83*(cell[6] + V{0.0380952380952381}) + cell[6];
4613cell[7] = x82*(-x107 + x109 + x113 + x115 + x116 + x118 + x61 + x69 + x97 - V{0.885714285714286}*cell[7]) - x83*(cell[7] + V{0.0380952380952381}) + cell[7];
4614cell[8] = x82*(x103 - x119 + x123 + x126 + x129 + x70 + x78 - V{0.885714285714286}*cell[8]) - x83*(cell[8] + V{0.0380952380952381}) + cell[8];
4615cell[9] = x82*(x116 + x123 - x128 + x131 + x132 + x135 + x137 - V{0.885714285714286}*cell[9]) - x83*(cell[9] + V{0.0380952380952381}) + cell[9];
4616cell[10] = x161*(-x138 + x145 + x150 + x154 + x156 + x158 + x160 - V{0.871428571428571}*cell[10]) - x162*(cell[10] + V{0.0321428571428571}) + cell[10];
4617cell[11] = x161*(x153 + x156 - x163 + x166 + x171 + x173 + x174 - V{0.871428571428571}*cell[11]) - x162*(cell[11] + V{0.0321428571428571}) + cell[11];
4618cell[12] = x161*(x158 + x171 - x172 + x176 + x177 + x180 + x181 - V{0.871428571428571}*cell[12]) - x162*(cell[12] + V{0.0321428571428571}) + cell[12];
4619cell[13] = x161*(x145 - x149 + x166 + x181 + x182 + x183 - V{0.871428571428571}*cell[13]) - x162*(cell[13] + V{0.0321428571428571}) + cell[13];
4620cell[14] = x43*(x185 + x186 + x42 + x48 + x55 - V{0.904761904761905}*cell[14]) - x44*(cell[14] + V{0.0476190476190476}) + cell[14];
4621cell[15] = x43*(x185 + x187 + x38 + x41 + x52 + x53 + x54 - V{0.904761904761905}*cell[15]) - x44*(cell[15] + V{0.0476190476190476}) + cell[15];
4622cell[16] = x43*(x184 + x186 + x187 + x29 + x34 + x40 + x45 + x46 + x56 - V{0.904761904761905}*cell[16]) - x44*(cell[16] + V{0.0476190476190476}) + cell[16];
4623cell[17] = x82*(x115 + x131 + x188 + x190 + x192 + x81 + x87 - x98 - V{0.885714285714286}*cell[17]) - x83*(cell[17] + V{0.0380952380952381}) + cell[17];
4624cell[18] = x82*(x126 + x130 + x137 + x190 + x61 + x65 - x79 + x96 + x99 - V{0.885714285714286}*cell[18]) - x83*(cell[18] + V{0.0380952380952381}) + cell[18];
4625cell[19] = x82*(x108 + x113 - x117 + x136 + x194 + x195 + x62 + x73 + x90 - V{0.885714285714286}*cell[19]) - x83*(cell[19] + V{0.0380952380952381}) + cell[19];
4626cell[20] = x82*(-x105 + x118 + x125 + x134 + x191 + x195 + x196 + x66 + x86 - V{0.885714285714286}*cell[20]) - x83*(cell[20] + V{0.0380952380952381}) + cell[20];
4627cell[21] = x82*(x109 + x129 + x130 + x132 - x133 + x194 + x197 + x91 + x93 + x94 - V{0.885714285714286}*cell[21]) - x83*(cell[21] + V{0.0380952380952381}) + cell[21];
4628cell[22] = x82*(x111 - x127 + x135 + x192 + x196 + x197 + x70 + x88 + x89 - V{0.885714285714286}*cell[22]) - x83*(cell[22] + V{0.0380952380952381}) + cell[22];
4629cell[23] = x161*(-x167 + x168 + x173 + x177 + x183 + x199 + x200 + x201 - V{0.871428571428571}*cell[23]) - x162*(cell[23] + V{0.0321428571428571}) + cell[23];
4630cell[24] = x161*(x138 - x143 + x144 + x150 + x170 + x176 + x199 + x202 - V{0.871428571428571}*cell[24]) - x162*(cell[24] + V{0.0321428571428571}) + cell[24];
4631cell[25] = x161*(x143 - x144 + x149 + x154 + x170 + x174 + x182 + x200 + x203 - V{0.871428571428571}*cell[25]) - x162*(cell[25] + V{0.0321428571428571}) + cell[25];
4632cell[26] = x161*(x153 + x160 + x163 + x167 - x168 + x172 + x180 + x201 + x202 + x203 - V{0.871428571428571}*cell[26]) - x162*(cell[26] + V{0.0321428571428571}) + cell[26];
4633return { cell[0] + cell[10] + cell[11] + cell[12] + cell[13] + cell[14] + cell[15] + cell[16] + cell[17] + cell[18] + cell[19] + cell[1] + cell[20] + cell[21] + cell[22] + cell[23] + cell[24] + cell[25] + cell[26] + cell[2] + cell[3] + cell[4] + cell[5] + cell[6] + cell[7] + cell[8] + cell[9] + V{1}, V{0} };
4634}
4635
4636};
4637
4638
4639template <typename... FIELDS>
4640struct BGK::type<descriptors::D3Q19<FIELDS...>,momenta::RegularizedVelocityBoundaryTuple<0,-1>,equilibria::SecondOrder> {
4641
4642template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
4643CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
4644{
4645auto x22 = parameters.template get<olb::descriptors::OMEGA>();
4646auto x20 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(1);
4647auto x21 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(2);
4648auto x19 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(0);
4649auto x23 = x22 + V{-1};
4650auto x24 = x19 + V{-1};
4651auto x25 = cell[0] + cell[11] + cell[12] + cell[17] + cell[18] + V{2}*cell[1] + cell[2] + cell[3] + V{2}*cell[4] + V{2}*cell[5] + V{2}*cell[6] + V{2}*cell[7] + cell[8] + cell[9] + V{1};
4652auto x26 = -x25/x24;
4653auto x27 = x19*x19;
4654auto x28 = V{1.5}*x27;
4655auto x29 = x20*x20;
4656auto x30 = V{1.5}*x29;
4657auto x31 = x21*x21;
4658auto x32 = V{1.5}*x31;
4659auto x33 = x30 + x32 + V{-1};
4660auto x34 = x28 + x33;
4661auto x35 = V{0.0555555555555556}*x22;
4662auto x36 = V{3}*x19;
4663auto x37 = V{3}*x20;
4664auto x38 = x28 + V{-1};
4665auto x39 = V{3}*x21;
4666auto x40 = V{0.0277777777777778}*x22;
4667auto x41 = x19 + x20;
4668auto x42 = x41*x41;
4669auto x43 = x34 + x36;
4670auto x44 = -x37;
4671auto x45 = x19 - x20;
4672auto x46 = -x45;
4673auto x47 = x19 + x21;
4674auto x48 = x47*x47;
4675auto x49 = -x39;
4676auto x50 = -x21;
4677auto x51 = x19 + x50;
4678auto x52 = -x51;
4679auto x53 = x20 + x21;
4680auto x54 = x53*x53;
4681auto x55 = x34 + x37;
4682auto x56 = x20 + x50;
4683auto x57 = -x56;
4684auto x58 = -x30;
4685auto x59 = V{1} - x32;
4686auto x60 = x58 + x59;
4687auto x61 = x36 + x60;
4688auto x62 = -x28;
4689auto x63 = x37 + x62;
4690auto x64 = x39 + x62;
4691auto x65 = -x36;
4692auto x66 = x34 + x39;
4693cell[0] = -V{0.333333333333333}*x22*(x26*x34 + V{1}) - x23*cell[0];
4694cell[1] = -x23*cell[1] - x35*(-x26*(V{3}*x27 - x33 - x36) + V{1});
4695cell[2] = -x23*cell[2] - x35*(-x26*(V{3}*x29 - x32 - x37 - x38) + V{1});
4696cell[3] = -x23*cell[3] - x35*(-x26*(-x30 + V{3}*x31 - x38 - x39) + V{1});
4697cell[4] = -x23*cell[4] - x40*(-x26*(-x37 + V{4.5}*x42 - x43) + V{1});
4698cell[5] = -x23*cell[5] - x40*(x26*(x43 + x44 - V{4.5}*x46*x46) + V{1});
4699cell[6] = -x23*cell[6] - x40*(-x26*(-x39 - x43 + V{4.5}*x48) + V{1});
4700cell[7] = -x23*cell[7] - x40*(x26*(x43 + x49 - V{4.5}*x52*x52) + V{1});
4701cell[8] = -x23*cell[8] - x40*(-x26*(-x39 + V{4.5}*x54 - x55) + V{1});
4702cell[9] = -x23*cell[9] - x40*(x26*(x49 + x55 - V{4.5}*x57*x57) + V{1});
4703cell[10] = -x23*cell[10] - x35*(-x26*(V{3}*x27 + x61) + V{1});
4704cell[11] = -x23*cell[11] - x35*(-x26*(V{3}*x29 + x59 + x63) + V{1});
4705cell[12] = -x23*cell[12] - x35*(-x26*(V{3}*x31 + x58 + x64 + V{1}) + V{1});
4706cell[13] = -x23*cell[13] - x40*(-x26*(V{4.5}*x42 + x61 + x63) + V{1});
4707cell[14] = -x23*cell[14] - x40*(x26*(x55 + x65 - V{4.5}*x45*x45) + V{1});
4708cell[15] = -x23*cell[15] - x40*(-x26*(V{4.5}*x48 + x61 + x64) + V{1});
4709cell[16] = -x23*cell[16] - x40*(x26*(x65 + x66 - V{4.5}*x51*x51) + V{1});
4710cell[17] = -x23*cell[17] - x40*(-x26*(x39 + V{4.5}*x54 + x60 + x63) + V{1});
4711cell[18] = -x23*cell[18] - x40*(x26*(x44 + x66 - V{4.5}*x56*x56) + V{1});
4712return { -V{1}*x25/x24, x27 + x29 + x31 };
4713}
4714
4715};
4716
4717template <typename... FIELDS>
4718struct BGK::type<descriptors::D3Q19<FIELDS...>,momenta::RegularizedVelocityBoundaryTuple<0,1>,equilibria::SecondOrder> {
4719
4720template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
4721CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
4722{
4723auto x22 = parameters.template get<olb::descriptors::OMEGA>();
4724auto x20 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(1);
4725auto x21 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(2);
4726auto x19 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(0);
4727auto x23 = x22 + V{-1};
4728auto x24 = (cell[0] + V{2}*cell[10] + cell[11] + cell[12] + V{2}*cell[13] + V{2}*cell[14] + V{2}*cell[15] + V{2}*cell[16] + cell[17] + cell[18] + cell[2] + cell[3] + cell[8] + cell[9] + V{1})/(x19 + V{1});
4729auto x25 = x19*x19;
4730auto x26 = V{1.5}*x25;
4731auto x27 = x20*x20;
4732auto x28 = V{1.5}*x27;
4733auto x29 = x21*x21;
4734auto x30 = V{1.5}*x29;
4735auto x31 = x28 + x30 + V{-1};
4736auto x32 = x26 + x31;
4737auto x33 = V{0.0555555555555556}*x22;
4738auto x34 = V{3}*x19;
4739auto x35 = V{3}*x20;
4740auto x36 = x26 + V{-1};
4741auto x37 = V{3}*x21;
4742auto x38 = V{0.0277777777777778}*x22;
4743auto x39 = x19 + x20;
4744auto x40 = x39*x39;
4745auto x41 = x32 + x34;
4746auto x42 = -x35;
4747auto x43 = x19 - x20;
4748auto x44 = -x43;
4749auto x45 = x19 + x21;
4750auto x46 = x45*x45;
4751auto x47 = -x37;
4752auto x48 = -x21;
4753auto x49 = x19 + x48;
4754auto x50 = -x49;
4755auto x51 = x20 + x21;
4756auto x52 = x51*x51;
4757auto x53 = x32 + x35;
4758auto x54 = x20 + x48;
4759auto x55 = -x54;
4760auto x56 = -x28;
4761auto x57 = V{1} - x30;
4762auto x58 = x56 + x57;
4763auto x59 = x34 + x58;
4764auto x60 = -x26;
4765auto x61 = x35 + x60;
4766auto x62 = x37 + x60;
4767auto x63 = -x34;
4768auto x64 = x32 + x37;
4769cell[0] = -V{0.333333333333333}*x22*(x24*x32 + V{1}) - x23*cell[0];
4770cell[1] = -x23*cell[1] - x33*(-x24*(V{3}*x25 - x31 - x34) + V{1});
4771cell[2] = -x23*cell[2] - x33*(-x24*(V{3}*x27 - x30 - x35 - x36) + V{1});
4772cell[3] = -x23*cell[3] - x33*(-x24*(-x28 + V{3}*x29 - x36 - x37) + V{1});
4773cell[4] = -x23*cell[4] - x38*(-x24*(-x35 + V{4.5}*x40 - x41) + V{1});
4774cell[5] = -x23*cell[5] - x38*(x24*(x41 + x42 - V{4.5}*x44*x44) + V{1});
4775cell[6] = -x23*cell[6] - x38*(-x24*(-x37 - x41 + V{4.5}*x46) + V{1});
4776cell[7] = -x23*cell[7] - x38*(x24*(x41 + x47 - V{4.5}*x50*x50) + V{1});
4777cell[8] = -x23*cell[8] - x38*(-x24*(-x37 + V{4.5}*x52 - x53) + V{1});
4778cell[9] = -x23*cell[9] - x38*(x24*(x47 + x53 - V{4.5}*x55*x55) + V{1});
4779cell[10] = -x23*cell[10] - x33*(-x24*(V{3}*x25 + x59) + V{1});
4780cell[11] = -x23*cell[11] - x33*(-x24*(V{3}*x27 + x57 + x61) + V{1});
4781cell[12] = -x23*cell[12] - x33*(-x24*(V{3}*x29 + x56 + x62 + V{1}) + V{1});
4782cell[13] = -x23*cell[13] - x38*(-x24*(V{4.5}*x40 + x59 + x61) + V{1});
4783cell[14] = -x23*cell[14] - x38*(x24*(x53 + x63 - V{4.5}*x43*x43) + V{1});
4784cell[15] = -x23*cell[15] - x38*(-x24*(V{4.5}*x46 + x59 + x62) + V{1});
4785cell[16] = -x23*cell[16] - x38*(x24*(x63 + x64 - V{4.5}*x49*x49) + V{1});
4786cell[17] = -x23*cell[17] - x38*(-x24*(x37 + V{4.5}*x52 + x58 + x61) + V{1});
4787cell[18] = -x23*cell[18] - x38*(x24*(x42 + x64 - V{4.5}*x54*x54) + V{1});
4788return { V{1}*x24, x25 + x27 + x29 };
4789}
4790
4791};
4792
4793template <typename... FIELDS>
4794struct BGK::type<descriptors::D3Q19<FIELDS...>,momenta::RegularizedVelocityBoundaryTuple<1,-1>,equilibria::SecondOrder> {
4795
4796template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
4797CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
4798{
4799auto x22 = parameters.template get<olb::descriptors::OMEGA>();
4800auto x20 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(1);
4801auto x21 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(2);
4802auto x19 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(0);
4803auto x23 = x22 + V{-1};
4804auto x24 = x20 + V{-1};
4805auto x25 = cell[0] + cell[10] + cell[12] + V{2}*cell[14] + cell[15] + cell[16] + cell[1] + V{2}*cell[2] + cell[3] + V{2}*cell[4] + cell[6] + cell[7] + V{2}*cell[8] + V{2}*cell[9] + V{1};
4806auto x26 = -x25/x24;
4807auto x27 = x19*x19;
4808auto x28 = V{1.5}*x27;
4809auto x29 = x20*x20;
4810auto x30 = V{1.5}*x29;
4811auto x31 = x21*x21;
4812auto x32 = V{1.5}*x31;
4813auto x33 = x30 + x32 + V{-1};
4814auto x34 = x28 + x33;
4815auto x35 = V{0.0555555555555556}*x22;
4816auto x36 = V{3}*x19;
4817auto x37 = V{3}*x20;
4818auto x38 = x28 + V{-1};
4819auto x39 = V{3}*x21;
4820auto x40 = V{0.0277777777777778}*x22;
4821auto x41 = x19 + x20;
4822auto x42 = x41*x41;
4823auto x43 = x34 + x36;
4824auto x44 = -x37;
4825auto x45 = x19 - x20;
4826auto x46 = -x45;
4827auto x47 = x19 + x21;
4828auto x48 = x47*x47;
4829auto x49 = -x39;
4830auto x50 = -x21;
4831auto x51 = x19 + x50;
4832auto x52 = -x51;
4833auto x53 = x20 + x21;
4834auto x54 = x53*x53;
4835auto x55 = x34 + x37;
4836auto x56 = x20 + x50;
4837auto x57 = -x56;
4838auto x58 = -x30;
4839auto x59 = V{1} - x32;
4840auto x60 = x58 + x59;
4841auto x61 = x36 + x60;
4842auto x62 = -x28;
4843auto x63 = x37 + x62;
4844auto x64 = x39 + x62;
4845auto x65 = -x36;
4846auto x66 = x34 + x39;
4847cell[0] = -V{0.333333333333333}*x22*(x26*x34 + V{1}) - x23*cell[0];
4848cell[1] = -x23*cell[1] - x35*(-x26*(V{3}*x27 - x33 - x36) + V{1});
4849cell[2] = -x23*cell[2] - x35*(-x26*(V{3}*x29 - x32 - x37 - x38) + V{1});
4850cell[3] = -x23*cell[3] - x35*(-x26*(-x30 + V{3}*x31 - x38 - x39) + V{1});
4851cell[4] = -x23*cell[4] - x40*(-x26*(-x37 + V{4.5}*x42 - x43) + V{1});
4852cell[5] = -x23*cell[5] - x40*(x26*(x43 + x44 - V{4.5}*x46*x46) + V{1});
4853cell[6] = -x23*cell[6] - x40*(-x26*(-x39 - x43 + V{4.5}*x48) + V{1});
4854cell[7] = -x23*cell[7] - x40*(x26*(x43 + x49 - V{4.5}*x52*x52) + V{1});
4855cell[8] = -x23*cell[8] - x40*(-x26*(-x39 + V{4.5}*x54 - x55) + V{1});
4856cell[9] = -x23*cell[9] - x40*(x26*(x49 + x55 - V{4.5}*x57*x57) + V{1});
4857cell[10] = -x23*cell[10] - x35*(-x26*(V{3}*x27 + x61) + V{1});
4858cell[11] = -x23*cell[11] - x35*(-x26*(V{3}*x29 + x59 + x63) + V{1});
4859cell[12] = -x23*cell[12] - x35*(-x26*(V{3}*x31 + x58 + x64 + V{1}) + V{1});
4860cell[13] = -x23*cell[13] - x40*(-x26*(V{4.5}*x42 + x61 + x63) + V{1});
4861cell[14] = -x23*cell[14] - x40*(x26*(x55 + x65 - V{4.5}*x45*x45) + V{1});
4862cell[15] = -x23*cell[15] - x40*(-x26*(V{4.5}*x48 + x61 + x64) + V{1});
4863cell[16] = -x23*cell[16] - x40*(x26*(x65 + x66 - V{4.5}*x51*x51) + V{1});
4864cell[17] = -x23*cell[17] - x40*(-x26*(x39 + V{4.5}*x54 + x60 + x63) + V{1});
4865cell[18] = -x23*cell[18] - x40*(x26*(x44 + x66 - V{4.5}*x56*x56) + V{1});
4866return { -V{1}*x25/x24, x27 + x29 + x31 };
4867}
4868
4869};
4870
4871template <typename... FIELDS>
4872struct BGK::type<descriptors::D3Q19<FIELDS...>,momenta::RegularizedVelocityBoundaryTuple<1,1>,equilibria::SecondOrder> {
4873
4874template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
4875CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
4876{
4877auto x22 = parameters.template get<olb::descriptors::OMEGA>();
4878auto x20 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(1);
4879auto x21 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(2);
4880auto x19 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(0);
4881auto x23 = x22 + V{-1};
4882auto x24 = (cell[0] + cell[10] + V{2}*cell[11] + cell[12] + V{2}*cell[13] + cell[15] + cell[16] + V{2}*cell[17] + V{2}*cell[18] + cell[1] + cell[3] + V{2}*cell[5] + cell[6] + cell[7] + V{1})/(x20 + V{1});
4883auto x25 = x19*x19;
4884auto x26 = V{1.5}*x25;
4885auto x27 = x20*x20;
4886auto x28 = V{1.5}*x27;
4887auto x29 = x21*x21;
4888auto x30 = V{1.5}*x29;
4889auto x31 = x28 + x30 + V{-1};
4890auto x32 = x26 + x31;
4891auto x33 = V{0.0555555555555556}*x22;
4892auto x34 = V{3}*x19;
4893auto x35 = V{3}*x20;
4894auto x36 = x26 + V{-1};
4895auto x37 = V{3}*x21;
4896auto x38 = V{0.0277777777777778}*x22;
4897auto x39 = x19 + x20;
4898auto x40 = x39*x39;
4899auto x41 = x32 + x34;
4900auto x42 = -x35;
4901auto x43 = x19 - x20;
4902auto x44 = -x43;
4903auto x45 = x19 + x21;
4904auto x46 = x45*x45;
4905auto x47 = -x37;
4906auto x48 = -x21;
4907auto x49 = x19 + x48;
4908auto x50 = -x49;
4909auto x51 = x20 + x21;
4910auto x52 = x51*x51;
4911auto x53 = x32 + x35;
4912auto x54 = x20 + x48;
4913auto x55 = -x54;
4914auto x56 = -x28;
4915auto x57 = V{1} - x30;
4916auto x58 = x56 + x57;
4917auto x59 = x34 + x58;
4918auto x60 = -x26;
4919auto x61 = x35 + x60;
4920auto x62 = x37 + x60;
4921auto x63 = -x34;
4922auto x64 = x32 + x37;
4923cell[0] = -V{0.333333333333333}*x22*(x24*x32 + V{1}) - x23*cell[0];
4924cell[1] = -x23*cell[1] - x33*(-x24*(V{3}*x25 - x31 - x34) + V{1});
4925cell[2] = -x23*cell[2] - x33*(-x24*(V{3}*x27 - x30 - x35 - x36) + V{1});
4926cell[3] = -x23*cell[3] - x33*(-x24*(-x28 + V{3}*x29 - x36 - x37) + V{1});
4927cell[4] = -x23*cell[4] - x38*(-x24*(-x35 + V{4.5}*x40 - x41) + V{1});
4928cell[5] = -x23*cell[5] - x38*(x24*(x41 + x42 - V{4.5}*x44*x44) + V{1});
4929cell[6] = -x23*cell[6] - x38*(-x24*(-x37 - x41 + V{4.5}*x46) + V{1});
4930cell[7] = -x23*cell[7] - x38*(x24*(x41 + x47 - V{4.5}*x50*x50) + V{1});
4931cell[8] = -x23*cell[8] - x38*(-x24*(-x37 + V{4.5}*x52 - x53) + V{1});
4932cell[9] = -x23*cell[9] - x38*(x24*(x47 + x53 - V{4.5}*x55*x55) + V{1});
4933cell[10] = -x23*cell[10] - x33*(-x24*(V{3}*x25 + x59) + V{1});
4934cell[11] = -x23*cell[11] - x33*(-x24*(V{3}*x27 + x57 + x61) + V{1});
4935cell[12] = -x23*cell[12] - x33*(-x24*(V{3}*x29 + x56 + x62 + V{1}) + V{1});
4936cell[13] = -x23*cell[13] - x38*(-x24*(V{4.5}*x40 + x59 + x61) + V{1});
4937cell[14] = -x23*cell[14] - x38*(x24*(x53 + x63 - V{4.5}*x43*x43) + V{1});
4938cell[15] = -x23*cell[15] - x38*(-x24*(V{4.5}*x46 + x59 + x62) + V{1});
4939cell[16] = -x23*cell[16] - x38*(x24*(x63 + x64 - V{4.5}*x49*x49) + V{1});
4940cell[17] = -x23*cell[17] - x38*(-x24*(x37 + V{4.5}*x52 + x58 + x61) + V{1});
4941cell[18] = -x23*cell[18] - x38*(x24*(x42 + x64 - V{4.5}*x54*x54) + V{1});
4942return { V{1}*x24, x25 + x27 + x29 };
4943}
4944
4945};
4946
4947template <typename... FIELDS>
4948struct BGK::type<descriptors::D3Q19<FIELDS...>,momenta::RegularizedVelocityBoundaryTuple<2,-1>,equilibria::SecondOrder> {
4949
4950template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
4951CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
4952{
4953auto x22 = parameters.template get<olb::descriptors::OMEGA>();
4954auto x20 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(1);
4955auto x21 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(2);
4956auto x19 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(0);
4957auto x23 = x22 + V{-1};
4958auto x24 = x21 + V{-1};
4959auto x25 = cell[0] + cell[10] + cell[11] + cell[13] + cell[14] + V{2}*cell[16] + V{2}*cell[18] + cell[1] + cell[2] + V{2}*cell[3] + cell[4] + cell[5] + V{2}*cell[6] + V{2}*cell[8] + V{1};
4960auto x26 = -x25/x24;
4961auto x27 = x19*x19;
4962auto x28 = V{1.5}*x27;
4963auto x29 = x20*x20;
4964auto x30 = V{1.5}*x29;
4965auto x31 = x21*x21;
4966auto x32 = V{1.5}*x31;
4967auto x33 = x30 + x32 + V{-1};
4968auto x34 = x28 + x33;
4969auto x35 = V{0.0555555555555556}*x22;
4970auto x36 = V{3}*x19;
4971auto x37 = V{3}*x20;
4972auto x38 = x28 + V{-1};
4973auto x39 = V{3}*x21;
4974auto x40 = V{0.0277777777777778}*x22;
4975auto x41 = x19 + x20;
4976auto x42 = x41*x41;
4977auto x43 = x34 + x36;
4978auto x44 = -x37;
4979auto x45 = x19 - x20;
4980auto x46 = -x45;
4981auto x47 = x19 + x21;
4982auto x48 = x47*x47;
4983auto x49 = -x39;
4984auto x50 = -x21;
4985auto x51 = x19 + x50;
4986auto x52 = -x51;
4987auto x53 = x20 + x21;
4988auto x54 = x53*x53;
4989auto x55 = x34 + x37;
4990auto x56 = x20 + x50;
4991auto x57 = -x56;
4992auto x58 = -x30;
4993auto x59 = V{1} - x32;
4994auto x60 = x58 + x59;
4995auto x61 = x36 + x60;
4996auto x62 = -x28;
4997auto x63 = x37 + x62;
4998auto x64 = x39 + x62;
4999auto x65 = -x36;
5000auto x66 = x34 + x39;
5001cell[0] = -V{0.333333333333333}*x22*(x26*x34 + V{1}) - x23*cell[0];
5002cell[1] = -x23*cell[1] - x35*(-x26*(V{3}*x27 - x33 - x36) + V{1});
5003cell[2] = -x23*cell[2] - x35*(-x26*(V{3}*x29 - x32 - x37 - x38) + V{1});
5004cell[3] = -x23*cell[3] - x35*(-x26*(-x30 + V{3}*x31 - x38 - x39) + V{1});
5005cell[4] = -x23*cell[4] - x40*(-x26*(-x37 + V{4.5}*x42 - x43) + V{1});
5006cell[5] = -x23*cell[5] - x40*(x26*(x43 + x44 - V{4.5}*x46*x46) + V{1});
5007cell[6] = -x23*cell[6] - x40*(-x26*(-x39 - x43 + V{4.5}*x48) + V{1});
5008cell[7] = -x23*cell[7] - x40*(x26*(x43 + x49 - V{4.5}*x52*x52) + V{1});
5009cell[8] = -x23*cell[8] - x40*(-x26*(-x39 + V{4.5}*x54 - x55) + V{1});
5010cell[9] = -x23*cell[9] - x40*(x26*(x49 + x55 - V{4.5}*x57*x57) + V{1});
5011cell[10] = -x23*cell[10] - x35*(-x26*(V{3}*x27 + x61) + V{1});
5012cell[11] = -x23*cell[11] - x35*(-x26*(V{3}*x29 + x59 + x63) + V{1});
5013cell[12] = -x23*cell[12] - x35*(-x26*(V{3}*x31 + x58 + x64 + V{1}) + V{1});
5014cell[13] = -x23*cell[13] - x40*(-x26*(V{4.5}*x42 + x61 + x63) + V{1});
5015cell[14] = -x23*cell[14] - x40*(x26*(x55 + x65 - V{4.5}*x45*x45) + V{1});
5016cell[15] = -x23*cell[15] - x40*(-x26*(V{4.5}*x48 + x61 + x64) + V{1});
5017cell[16] = -x23*cell[16] - x40*(x26*(x65 + x66 - V{4.5}*x51*x51) + V{1});
5018cell[17] = -x23*cell[17] - x40*(-x26*(x39 + V{4.5}*x54 + x60 + x63) + V{1});
5019cell[18] = -x23*cell[18] - x40*(x26*(x44 + x66 - V{4.5}*x56*x56) + V{1});
5020return { -V{1}*x25/x24, x27 + x29 + x31 };
5021}
5022
5023};
5024
5025template <typename... FIELDS>
5026struct BGK::type<descriptors::D3Q19<FIELDS...>,momenta::RegularizedVelocityBoundaryTuple<2,1>,equilibria::SecondOrder> {
5027
5028template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
5029CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
5030{
5031auto x22 = parameters.template get<olb::descriptors::OMEGA>();
5032auto x20 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(1);
5033auto x21 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(2);
5034auto x19 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(0);
5035auto x23 = x22 + V{-1};
5036auto x24 = (cell[0] + cell[10] + cell[11] + V{2}*cell[12] + cell[13] + cell[14] + V{2}*cell[15] + V{2}*cell[17] + cell[1] + cell[2] + cell[4] + cell[5] + V{2}*cell[7] + V{2}*cell[9] + V{1})/(x21 + V{1});
5037auto x25 = x19*x19;
5038auto x26 = V{1.5}*x25;
5039auto x27 = x20*x20;
5040auto x28 = V{1.5}*x27;
5041auto x29 = x21*x21;
5042auto x30 = V{1.5}*x29;
5043auto x31 = x28 + x30 + V{-1};
5044auto x32 = x26 + x31;
5045auto x33 = V{0.0555555555555556}*x22;
5046auto x34 = V{3}*x19;
5047auto x35 = V{3}*x20;
5048auto x36 = x26 + V{-1};
5049auto x37 = V{3}*x21;
5050auto x38 = V{0.0277777777777778}*x22;
5051auto x39 = x19 + x20;
5052auto x40 = x39*x39;
5053auto x41 = x32 + x34;
5054auto x42 = -x35;
5055auto x43 = x19 - x20;
5056auto x44 = -x43;
5057auto x45 = x19 + x21;
5058auto x46 = x45*x45;
5059auto x47 = -x37;
5060auto x48 = -x21;
5061auto x49 = x19 + x48;
5062auto x50 = -x49;
5063auto x51 = x20 + x21;
5064auto x52 = x51*x51;
5065auto x53 = x32 + x35;
5066auto x54 = x20 + x48;
5067auto x55 = -x54;
5068auto x56 = -x28;
5069auto x57 = V{1} - x30;
5070auto x58 = x56 + x57;
5071auto x59 = x34 + x58;
5072auto x60 = -x26;
5073auto x61 = x35 + x60;
5074auto x62 = x37 + x60;
5075auto x63 = -x34;
5076auto x64 = x32 + x37;
5077cell[0] = -V{0.333333333333333}*x22*(x24*x32 + V{1}) - x23*cell[0];
5078cell[1] = -x23*cell[1] - x33*(-x24*(V{3}*x25 - x31 - x34) + V{1});
5079cell[2] = -x23*cell[2] - x33*(-x24*(V{3}*x27 - x30 - x35 - x36) + V{1});
5080cell[3] = -x23*cell[3] - x33*(-x24*(-x28 + V{3}*x29 - x36 - x37) + V{1});
5081cell[4] = -x23*cell[4] - x38*(-x24*(-x35 + V{4.5}*x40 - x41) + V{1});
5082cell[5] = -x23*cell[5] - x38*(x24*(x41 + x42 - V{4.5}*x44*x44) + V{1});
5083cell[6] = -x23*cell[6] - x38*(-x24*(-x37 - x41 + V{4.5}*x46) + V{1});
5084cell[7] = -x23*cell[7] - x38*(x24*(x41 + x47 - V{4.5}*x50*x50) + V{1});
5085cell[8] = -x23*cell[8] - x38*(-x24*(-x37 + V{4.5}*x52 - x53) + V{1});
5086cell[9] = -x23*cell[9] - x38*(x24*(x47 + x53 - V{4.5}*x55*x55) + V{1});
5087cell[10] = -x23*cell[10] - x33*(-x24*(V{3}*x25 + x59) + V{1});
5088cell[11] = -x23*cell[11] - x33*(-x24*(V{3}*x27 + x57 + x61) + V{1});
5089cell[12] = -x23*cell[12] - x33*(-x24*(V{3}*x29 + x56 + x62 + V{1}) + V{1});
5090cell[13] = -x23*cell[13] - x38*(-x24*(V{4.5}*x40 + x59 + x61) + V{1});
5091cell[14] = -x23*cell[14] - x38*(x24*(x53 + x63 - V{4.5}*x43*x43) + V{1});
5092cell[15] = -x23*cell[15] - x38*(-x24*(V{4.5}*x46 + x59 + x62) + V{1});
5093cell[16] = -x23*cell[16] - x38*(x24*(x63 + x64 - V{4.5}*x49*x49) + V{1});
5094cell[17] = -x23*cell[17] - x38*(-x24*(x37 + V{4.5}*x52 + x58 + x61) + V{1});
5095cell[18] = -x23*cell[18] - x38*(x24*(x42 + x64 - V{4.5}*x54*x54) + V{1});
5096return { V{1}*x24, x25 + x27 + x29 };
5097}
5098
5099};
5100
5101
5102template <typename... FIELDS>
5103struct RLB::type<descriptors::D3Q19<FIELDS...>,momenta::RegularizedVelocityBoundaryTuple<0,-1>,equilibria::SecondOrder> {
5104
5105template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
5106CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
5107{
5108auto x20 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(1);
5109auto x19 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(0);
5110auto x21 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(2);
5111auto x22 = parameters.template get<olb::descriptors::OMEGA>();
5112auto x23 = x22 + V{-1};
5113auto x24 = V{1} / (x19 + V{-1});
5114auto x25 = V{2}*cell[4] + V{2}*cell[5] + V{2}*cell[6] + V{2}*cell[7];
5115auto x26 = x25 + cell[0] + cell[11] + cell[12] + cell[17] + cell[18] + V{2}*cell[1] + cell[2] + cell[3] + cell[8] + cell[9] + V{1};
5116auto x27 = x24*x26;
5117auto x28 = V{0.0555555555555556}*x27;
5118auto x29 = x20*x20;
5119auto x30 = V{1.5}*x29;
5120auto x31 = V{3}*x19;
5121auto x32 = x19*x19;
5122auto x33 = V{3}*x32;
5123auto x34 = x21*x21;
5124auto x35 = V{1.5}*x34;
5125auto x36 = x35 + V{-1};
5126auto x37 = x30 + x31 - x33 + x36;
5127auto x38 = -x28*x37;
5128auto x39 = V{0.0277777777777778}*x27;
5129auto x40 = V{3}*x21;
5130auto x41 = x20 + x21;
5131auto x42 = V{4.5}*(x41*x41);
5132auto x43 = V{3}*x20;
5133auto x44 = V{1.5}*x32;
5134auto x45 = x30 + x44 + V{-1};
5135auto x46 = x35 + x45;
5136auto x47 = x43 + x46;
5137auto x48 = x40 - x42 + x47;
5138auto x49 = -x39*x48;
5139auto x50 = -x40;
5140auto x51 = -x21;
5141auto x52 = x20 + x51;
5142auto x53 = -x52;
5143auto x54 = x47 + x50 - V{4.5}*x53*x53;
5144auto x55 = -x39*x54;
5145auto x56 = -x35;
5146auto x57 = V{1} - x44;
5147auto x58 = x56 + x57;
5148auto x59 = x43 + x58;
5149auto x60 = -x30;
5150auto x61 = x40 + x60;
5151auto x62 = x42 + x59 + x61;
5152auto x63 = x39*x62;
5153auto x64 = -x43;
5154auto x65 = x40 + x46;
5155auto x66 = x64 + x65 - V{4.5}*x52*x52;
5156auto x67 = -x39*x66;
5157auto x68 = V{3}*x29;
5158auto x69 = x59 + x68;
5159auto x70 = V{3}*x34;
5160auto x71 = x57 + x61 + x70;
5161auto x72 = x40 + x45 - x70;
5162auto x73 = x36 + x43 + x44 - x68;
5163auto x74 = x19 + x20;
5164auto x75 = V{4.5}*(x74*x74);
5165auto x76 = x31 + x47 - x75;
5166auto x77 = x19 + x21;
5167auto x78 = V{4.5}*(x77*x77);
5168auto x79 = x31 + x65 - x78;
5169auto x80 = x19 - x20;
5170auto x81 = -x80;
5171auto x82 = x31 + x46;
5172auto x83 = x64 + x82 - V{4.5}*x81*x81;
5173auto x84 = x19 + x51;
5174auto x85 = -x84;
5175auto x86 = x50 + x82 - V{4.5}*x85*x85;
5176auto x87 = V{0.0833333333333333}*cell[2];
5177auto x88 = V{0.0833333333333333}*cell[3];
5178auto x89 = V{0.0833333333333333}*cell[11];
5179auto x90 = V{0.0833333333333333}*cell[12];
5180auto x91 = V{0.00462962962962963}*x27;
5181auto x92 = x69*x91;
5182auto x93 = x71*x91;
5183auto x94 = V{0.00462962962962963}*x27;
5184auto x95 = x76*x94;
5185auto x96 = x79*x94;
5186auto x97 = x83*x94;
5187auto x98 = x86*x94;
5188auto x99 = x23*(V{0.00462962962962963}*x24*x26*x48 + V{0.00462962962962963}*x24*x26*x54 + V{0.00462962962962963}*x24*x26*x66 + V{0.00462962962962963}*x24*x26*x72 + V{0.00462962962962963}*x24*x26*x73 - V{0.0185185185185185}*x27*x37 - x62*x91 - x87 - x88 - x89 - x90 - x92 - x93 - x95 - x96 - x97 - x98 - V{0.166666666666667}*cell[17] - V{0.166666666666667}*cell[18] + V{0.333333333333333}*cell[1] + V{0.166666666666667}*cell[4] + V{0.166666666666667}*cell[5] + V{0.166666666666667}*cell[6] + V{0.166666666666667}*cell[7] - V{0.166666666666667}*cell[8] - V{0.166666666666667}*cell[9] + V{6.93889390390723e-18}) + V{0.0555555555555556};
5189auto x100 = V{0.00925925925925926}*x27;
5190auto x101 = V{0.00925925925925926}*x27;
5191auto x102 = V{0.00231481481481482}*x27;
5192auto x103 = x100*x37 - x102*x48 - x102*x54 + x102*x62 - x102*x66 + V{0.0833333333333334}*cell[17] + V{0.0833333333333334}*cell[18] - V{0.166666666666667}*cell[1] + V{0.0833333333333334}*cell[8] + V{0.0833333333333334}*cell[9] + V{6.93889390390723e-18};
5193auto x104 = x23*(x100*x79 + x100*x86 + x101*x69 - x101*x73 + x103 + x72*x91 - x88 - x90 - x93 - x95 - x97 + V{0.166666666666667}*cell[11] + V{0.166666666666667}*cell[2] + V{0.166666666666667}*cell[4] + V{0.166666666666667}*cell[5] - V{0.333333333333333}*cell[6] - V{0.333333333333333}*cell[7]) + V{0.0555555555555556};
5194auto x105 = x23*(x100*x76 + x100*x83 + x101*x71 - x101*x72 + x103 + x73*x91 - x87 - x89 - x92 - x96 - x98 + V{0.166666666666667}*cell[12] + V{0.166666666666667}*cell[3] - V{0.333333333333333}*cell[4] - V{0.333333333333333}*cell[5] + V{0.166666666666667}*cell[6] + V{0.166666666666667}*cell[7]) + V{0.0555555555555556};
5195auto x106 = V{0.00462962962962963}*x27;
5196auto x107 = V{0.0231481481481481}*x27;
5197auto x108 = V{0.00231481481481481}*x27;
5198auto x109 = V{0.00462962962962963}*x27;
5199auto x110 = -x102*x79 - x102*x86 + x109*x69 - x109*x73 + V{0.0833333333333333}*cell[11] + V{0.0833333333333333}*cell[2] + V{0.0833333333333334}*cell[6] + V{0.0833333333333334}*cell[7] + V{0.0416666666666667};
5200auto x111 = V{0.00115740740740741}*x27;
5201auto x112 = -x101*x37 - x111*x48 - x111*x54 + x111*x62 - x111*x66 + V{0.0416666666666667}*cell[17] + V{0.0416666666666667}*cell[18] + V{0.166666666666667}*cell[1] + V{0.0416666666666667}*cell[8] + V{0.0416666666666667}*cell[9];
5202auto x113 = -x108*x71 + x108*x72 + x110 + x112 - V{0.0416666666666667}*cell[12] - V{0.0416666666666667}*cell[3];
5203auto x114 = x23*(x106*x83 - x107*x76 + x113 + V{0.833333333333333}*cell[4] - V{0.166666666666667}*cell[5]) + V{0.0277777777777778};
5204auto x115 = x23*(x106*x76 - x107*x83 + x113 - V{0.166666666666667}*cell[4] + V{0.833333333333333}*cell[5]) + V{0.0277777777777778};
5205auto x116 = -x102*x76 - x102*x83 + x109*x71 - x109*x72 + V{0.0833333333333333}*cell[12] + V{0.0833333333333333}*cell[3] + V{0.0833333333333334}*cell[4] + V{0.0833333333333334}*cell[5];
5206auto x117 = -x108*x69 + x108*x73 + x112 + x116 - V{0.0416666666666667}*cell[11] - V{0.0416666666666667}*cell[2] + V{0.0416666666666667};
5207auto x118 = x23*(x106*x86 - x107*x79 + x117 + V{0.833333333333333}*cell[6] - V{0.166666666666667}*cell[7]) + V{0.0277777777777778};
5208auto x119 = x23*(x106*x79 - x107*x86 + x117 - V{0.166666666666667}*cell[6] + V{0.833333333333333}*cell[7]) + V{0.0277777777777778};
5209auto x120 = V{0.0115740740740741}*x27;
5210auto x121 = V{0.00231481481481481}*x27;
5211auto x122 = x110 + x116 + x37*x91 - V{0.0833333333333333}*cell[1];
5212auto x123 = x23*(-x120*x48 + x120*x62 + x121*x54 + x121*x66 + x122 + V{0.416666666666667}*cell[17] - V{0.0833333333333333}*cell[18] + V{0.416666666666667}*cell[8] - V{0.0833333333333333}*cell[9]) + V{0.0277777777777778};
5213auto x124 = x23*(-x120*x54 - x120*x66 + x121*x48 - x121*x62 + x122 - V{0.0833333333333333}*cell[17] + V{0.416666666666667}*cell[18] - V{0.0833333333333333}*cell[8] + V{0.416666666666667}*cell[9]) + V{0.0277777777777778};
5214auto x125 = x31 + x60;
5215auto x126 = -x31;
5216auto x0 = x23*(x25 - x28*x76 - x28*x79 - x28*x83 - x28*x86 + x38 + x39*x69 + x39*x71 - x39*x72 - x39*x73 + x49 + x55 + x63 + x67 + V{0.5}*cell[11] + V{0.5}*cell[12] + V{1}*cell[17] + V{1}*cell[18] + V{1}*cell[1] + V{0.5}*cell[2] + V{0.5}*cell[3] + V{1}*cell[8] + V{1}*cell[9] + V{0.5}) + V{0.333333333333333}*x27*x46 + V{-0.333333333333333};
5217auto x1 = -x38 - x99;
5218auto x2 = -x104 + V{0.0555555555555556}*x24*x26*x73;
5219auto x3 = -x105 + V{0.0555555555555556}*x24*x26*x72;
5220auto x4 = -x114 + V{0.0277777777777778}*x24*x26*x76;
5221auto x5 = -x115 + V{0.0277777777777778}*x24*x26*x83;
5222auto x6 = -x118 + V{0.0277777777777778}*x24*x26*x79;
5223auto x7 = -x119 + V{0.0277777777777778}*x24*x26*x86;
5224auto x8 = -x123 - x49;
5225auto x9 = -x124 - x55;
5226auto x10 = -x28*(x125 + x33 + x56 + V{1}) - x99;
5227auto x11 = -x104 - x28*x69;
5228auto x12 = -x105 - x28*x71;
5229auto x13 = -x114 - x39*(x125 + x59 + x75);
5230auto x14 = -x115 + V{0.0277777777777778}*x24*x26*(x126 + x47 - V{4.5}*x80*x80);
5231auto x15 = -x118 - x39*(x31 + x58 + x61 + x78);
5232auto x16 = -x119 + V{0.0277777777777778}*x24*x26*(x126 + x65 - V{4.5}*x84*x84);
5233auto x17 = -x123 - x63;
5234auto x18 = -x124 - x67;
5235cell[0] = x0;
5236cell[1] = x1;
5237cell[2] = x2;
5238cell[3] = x3;
5239cell[4] = x4;
5240cell[5] = x5;
5241cell[6] = x6;
5242cell[7] = x7;
5243cell[8] = x8;
5244cell[9] = x9;
5245cell[10] = x10;
5246cell[11] = x11;
5247cell[12] = x12;
5248cell[13] = x13;
5249cell[14] = x14;
5250cell[15] = x15;
5251cell[16] = x16;
5252cell[17] = x17;
5253cell[18] = x18;
5254return { -V{1}*x27, x29 + x32 + x34 };
5255}
5256
5257};
5258
5259template <typename... FIELDS>
5260struct RLB::type<descriptors::D3Q19<FIELDS...>,momenta::RegularizedVelocityBoundaryTuple<0,1>,equilibria::SecondOrder> {
5261
5262template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
5263CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
5264{
5265auto x20 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(1);
5266auto x19 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(0);
5267auto x21 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(2);
5268auto x22 = parameters.template get<olb::descriptors::OMEGA>();
5269auto x23 = x22 + V{-1};
5270auto x24 = V{1} / (x19 + V{1});
5271auto x25 = V{2}*cell[13] + V{2}*cell[14] + V{2}*cell[15] + V{2}*cell[16];
5272auto x26 = x25 + cell[0] + V{2}*cell[10] + cell[11] + cell[12] + cell[17] + cell[18] + cell[2] + cell[3] + cell[8] + cell[9] + V{1};
5273auto x27 = x24*x26;
5274auto x28 = V{0.0555555555555556}*x27;
5275auto x29 = x21*x21;
5276auto x30 = V{1.5}*x29;
5277auto x31 = -x30;
5278auto x32 = x19*x19;
5279auto x33 = V{3}*x32;
5280auto x34 = x20*x20;
5281auto x35 = V{1.5}*x34;
5282auto x36 = -x35;
5283auto x37 = V{3}*x19;
5284auto x38 = x36 + x37;
5285auto x39 = x31 + x33 + x38 + V{1};
5286auto x40 = -x28*x39;
5287auto x41 = V{0.0277777777777778}*x27;
5288auto x42 = x20 + x21;
5289auto x43 = x42*x42;
5290auto x44 = V{3}*x20;
5291auto x45 = V{1.5}*x32;
5292auto x46 = V{1} - x45;
5293auto x47 = x31 + x46;
5294auto x48 = x44 + x47;
5295auto x49 = V{3}*x21;
5296auto x50 = x36 + x49;
5297auto x51 = V{4.5}*x43 + x48 + x50;
5298auto x52 = -x41*x51;
5299auto x53 = V{3}*x34 + x48;
5300auto x54 = V{3}*x29 + x46 + x50;
5301auto x55 = x30 + x45 + V{-1};
5302auto x56 = -V{3}*x34 + x44 + x55;
5303auto x57 = x35 + V{-1};
5304auto x58 = -V{3}*x29 + x45 + x49 + x57;
5305auto x59 = -x44;
5306auto x60 = -x21;
5307auto x61 = x20 + x60;
5308auto x62 = x35 + x55;
5309auto x63 = x49 + x62;
5310auto x64 = x59 + x63 - V{4.5}*x61*x61;
5311auto x65 = -x49;
5312auto x66 = -x61;
5313auto x67 = x44 + x62;
5314auto x68 = x65 + x67 - V{4.5}*x66*x66;
5315auto x69 = -V{4.5}*x43 + x44 + x63;
5316auto x70 = x19 + x20;
5317auto x71 = V{4.5}*(x70*x70);
5318auto x72 = x38 + x48 + x71;
5319auto x73 = x19 + x21;
5320auto x74 = V{4.5}*(x73*x73);
5321auto x75 = x37 + x47 + x50 + x74;
5322auto x76 = -V{3}*x19;
5323auto x77 = x19 - x20;
5324auto x78 = x67 + x76 - V{4.5}*x77*x77;
5325auto x79 = x19 + x60;
5326auto x80 = x63 + x76 - V{4.5}*x79*x79;
5327auto x81 = V{0.0833333333333333}*cell[2];
5328auto x82 = V{0.0833333333333333}*cell[3];
5329auto x83 = V{0.0833333333333333}*cell[11];
5330auto x84 = V{0.0833333333333333}*cell[12];
5331auto x85 = V{0.00462962962962963}*x27;
5332auto x86 = x58*x85;
5333auto x87 = x56*x85;
5334auto x88 = V{0.00462962962962963}*x27;
5335auto x89 = x72*x88;
5336auto x90 = x75*x88;
5337auto x91 = x23*(V{0.00462962962962963}*x24*x26*x51 + V{0.00462962962962963}*x24*x26*x53 + V{0.00462962962962963}*x24*x26*x54 + V{0.00462962962962963}*x24*x26*x78 + V{0.00462962962962963}*x24*x26*x80 - V{0.0185185185185185}*x27*x39 - x64*x85 - x68*x85 - x69*x85 - x81 - x82 - x83 - x84 - x86 - x87 - x89 - x90 + V{0.333333333333333}*cell[10] + V{0.166666666666667}*cell[13] + V{0.166666666666667}*cell[14] + V{0.166666666666667}*cell[15] + V{0.166666666666667}*cell[16] - V{0.166666666666667}*cell[17] - V{0.166666666666667}*cell[18] - V{0.166666666666667}*cell[8] - V{0.166666666666667}*cell[9] + V{6.93889390390723e-18}) + V{0.0555555555555556};
5338auto x92 = V{0.00925925925925926}*x27;
5339auto x93 = V{0.00925925925925926}*x27;
5340auto x94 = V{0.00231481481481482}*x27;
5341auto x95 = x39*x92 - x51*x94 + x64*x94 + x68*x94 + x69*x94 - V{0.166666666666667}*cell[10] + V{0.0833333333333334}*cell[17] + V{0.0833333333333334}*cell[18] + V{0.0833333333333334}*cell[8] + V{0.0833333333333334}*cell[9] + V{6.93889390390723e-18};
5342auto x96 = x23*(-x53*x93 + x54*x85 + x56*x93 + x75*x92 + x78*x88 - x80*x92 - x82 - x84 - x86 - x89 + x95 + V{0.166666666666667}*cell[11] + V{0.166666666666667}*cell[13] + V{0.166666666666667}*cell[14] - V{0.333333333333333}*cell[15] - V{0.333333333333333}*cell[16] + V{0.166666666666667}*cell[2]) + V{0.0555555555555556};
5343auto x97 = x23*(x53*x85 - x54*x93 + x58*x93 + x72*x92 - x78*x92 + x80*x88 - x81 - x83 - x87 - x90 + x95 + V{0.166666666666667}*cell[12] - V{0.333333333333333}*cell[13] - V{0.333333333333333}*cell[14] + V{0.166666666666667}*cell[15] + V{0.166666666666667}*cell[16] + V{0.166666666666667}*cell[3]) + V{0.0555555555555556};
5344auto x98 = V{0.0231481481481481}*x27;
5345auto x99 = V{0.00462962962962963}*x27;
5346auto x100 = V{0.00231481481481481}*x27;
5347auto x101 = V{0.00462962962962963}*x27;
5348auto x102 = -x101*x53 + x101*x56 - x75*x94 + x80*x94 + V{0.0833333333333333}*cell[11] + V{0.0833333333333334}*cell[15] + V{0.0833333333333334}*cell[16] + V{0.0833333333333333}*cell[2] + V{0.0416666666666667};
5349auto x103 = V{0.00115740740740741}*x27;
5350auto x104 = -x103*x51 + x103*x64 + x103*x68 + x103*x69 - x39*x93 + V{0.166666666666667}*cell[10] + V{0.0416666666666667}*cell[17] + V{0.0416666666666667}*cell[18] + V{0.0416666666666667}*cell[8] + V{0.0416666666666667}*cell[9];
5351auto x105 = x100*x54 - x100*x58 + x102 + x104 - V{0.0416666666666667}*cell[12] - V{0.0416666666666667}*cell[3];
5352auto x106 = x23*(x105 - x72*x98 - x78*x99 + V{0.833333333333333}*cell[13] - V{0.166666666666667}*cell[14]) + V{0.0277777777777778};
5353auto x107 = -x77;
5354auto x108 = x37 + x62;
5355auto x109 = x23*(x105 + x72*x99 + x78*x98 - V{0.166666666666667}*cell[13] + V{0.833333333333333}*cell[14]) + V{0.0277777777777778};
5356auto x110 = -x101*x54 + x101*x58 - x72*x94 + x78*x94 + V{0.0833333333333333}*cell[12] + V{0.0833333333333334}*cell[13] + V{0.0833333333333334}*cell[14] + V{0.0833333333333333}*cell[3];
5357auto x111 = x100*x53 - x100*x56 + x104 + x110 - V{0.0416666666666667}*cell[11] - V{0.0416666666666667}*cell[2] + V{0.0416666666666667};
5358auto x112 = x23*(x111 - x75*x98 - x80*x99 + V{0.833333333333333}*cell[15] - V{0.166666666666667}*cell[16]) + V{0.0277777777777778};
5359auto x113 = -x79;
5360auto x114 = x23*(x111 + x75*x99 + x80*x98 - V{0.166666666666667}*cell[15] + V{0.833333333333333}*cell[16]) + V{0.0277777777777778};
5361auto x115 = V{0.0115740740740741}*x27;
5362auto x116 = V{0.00231481481481481}*x27;
5363auto x117 = x102 + x110 + x39*x85 - V{0.0833333333333333}*cell[10];
5364auto x118 = x23*(-x115*x51 + x115*x69 - x116*x64 - x116*x68 + x117 + V{0.416666666666667}*cell[17] - V{0.0833333333333333}*cell[18] + V{0.416666666666667}*cell[8] - V{0.0833333333333333}*cell[9]) + V{0.0277777777777778};
5365auto x119 = x23*(x115*x64 + x115*x68 + x116*x51 - x116*x69 + x117 - V{0.0833333333333333}*cell[17] + V{0.416666666666667}*cell[18] - V{0.0833333333333333}*cell[8] + V{0.416666666666667}*cell[9]) + V{0.0277777777777778};
5366auto x0 = x23*(x25 - x28*x72 - x28*x75 + x28*x78 + x28*x80 + x40 - x41*x53 - x41*x54 + x41*x56 + x41*x58 + x41*x64 + x41*x68 + x41*x69 + x52 + V{1}*cell[10] + V{0.5}*cell[11] + V{0.5}*cell[12] + V{1}*cell[17] + V{1}*cell[18] + V{0.5}*cell[2] + V{0.5}*cell[3] + V{1}*cell[8] + V{1}*cell[9] + V{0.5}) - V{0.333333333333333}*x27*x62 + V{-0.333333333333333};
5367auto x1 = -x28*(x30 - x33 + x37 + x57) - x91;
5368auto x2 = -x28*x56 - x96;
5369auto x3 = -x28*x58 - x97;
5370auto x4 = -x106 - x41*(x37 + x67 - x71);
5371auto x5 = -x109 - x41*(x108 + x59 - V{4.5}*x107*x107);
5372auto x6 = -x112 - x41*(x37 + x63 - x74);
5373auto x7 = -x114 - x41*(x108 + x65 - V{4.5}*x113*x113);
5374auto x8 = -x118 - x41*x69;
5375auto x9 = -x119 - x41*x68;
5376auto x10 = -x40 - x91;
5377auto x11 = V{0.0555555555555556}*x24*x26*x53 - x96;
5378auto x12 = V{0.0555555555555556}*x24*x26*x54 - x97;
5379auto x13 = -x106 + V{0.0277777777777778}*x24*x26*x72;
5380auto x14 = -x109 - x41*x78;
5381auto x15 = -x112 + V{0.0277777777777778}*x24*x26*x75;
5382auto x16 = -x114 - x41*x80;
5383auto x17 = -x118 - x52;
5384auto x18 = -x119 - x41*x64;
5385cell[0] = x0;
5386cell[1] = x1;
5387cell[2] = x2;
5388cell[3] = x3;
5389cell[4] = x4;
5390cell[5] = x5;
5391cell[6] = x6;
5392cell[7] = x7;
5393cell[8] = x8;
5394cell[9] = x9;
5395cell[10] = x10;
5396cell[11] = x11;
5397cell[12] = x12;
5398cell[13] = x13;
5399cell[14] = x14;
5400cell[15] = x15;
5401cell[16] = x16;
5402cell[17] = x17;
5403cell[18] = x18;
5404return { V{1}*x27, x29 + x32 + x34 };
5405}
5406
5407};
5408
5409template <typename... FIELDS>
5410struct RLB::type<descriptors::D3Q19<FIELDS...>,momenta::RegularizedVelocityBoundaryTuple<1,-1>,equilibria::SecondOrder> {
5411
5412template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
5413CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
5414{
5415auto x20 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(1);
5416auto x19 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(0);
5417auto x21 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(2);
5418auto x22 = parameters.template get<olb::descriptors::OMEGA>();
5419auto x23 = x22 + V{-1};
5420auto x24 = V{1} / (x20 + V{-1});
5421auto x25 = V{2}*cell[14] + V{2}*cell[4] + V{2}*cell[8] + V{2}*cell[9];
5422auto x26 = x25 + cell[0] + cell[10] + cell[12] + cell[15] + cell[16] + cell[1] + V{2}*cell[2] + cell[3] + cell[6] + cell[7] + V{1};
5423auto x27 = x24*x26;
5424auto x28 = V{0.0555555555555556}*x27;
5425auto x29 = x19*x19;
5426auto x30 = V{1.5}*x29;
5427auto x31 = V{3}*x20;
5428auto x32 = x20*x20;
5429auto x33 = V{3}*x32;
5430auto x34 = x21*x21;
5431auto x35 = V{1.5}*x34;
5432auto x36 = x35 + V{-1};
5433auto x37 = x30 + x31 - x33 + x36;
5434auto x38 = -x28*x37;
5435auto x39 = V{0.0277777777777778}*x27;
5436auto x40 = V{3}*x21;
5437auto x41 = x19 + x21;
5438auto x42 = V{4.5}*(x41*x41);
5439auto x43 = V{3}*x19;
5440auto x44 = V{1.5}*x32;
5441auto x45 = x30 + x44 + V{-1};
5442auto x46 = x35 + x45;
5443auto x47 = x43 + x46;
5444auto x48 = x40 - x42 + x47;
5445auto x49 = -x39*x48;
5446auto x50 = -x40;
5447auto x51 = -x21;
5448auto x52 = x19 + x51;
5449auto x53 = -x52;
5450auto x54 = x47 + x50 - V{4.5}*x53*x53;
5451auto x55 = -x39*x54;
5452auto x56 = -x35;
5453auto x57 = V{1} - x44;
5454auto x58 = x56 + x57;
5455auto x59 = x43 + x58;
5456auto x60 = -x30;
5457auto x61 = x40 + x60;
5458auto x62 = x42 + x59 + x61;
5459auto x63 = x39*x62;
5460auto x64 = -x43;
5461auto x65 = x40 + x46;
5462auto x66 = x64 + x65 - V{4.5}*x52*x52;
5463auto x67 = -x39*x66;
5464auto x68 = V{3}*x29;
5465auto x69 = x59 + x68;
5466auto x70 = V{3}*x34;
5467auto x71 = x57 + x61 + x70;
5468auto x72 = x40 + x45 - x70;
5469auto x73 = x36 + x43 + x44 - x68;
5470auto x74 = x19 + x20;
5471auto x75 = V{4.5}*(x74*x74);
5472auto x76 = x31 + x47 - x75;
5473auto x77 = x20 + x21;
5474auto x78 = V{4.5}*(x77*x77);
5475auto x79 = x31 + x65 - x78;
5476auto x80 = x19 - x20;
5477auto x81 = x31 + x46;
5478auto x82 = x64 + x81 - V{4.5}*x80*x80;
5479auto x83 = x20 + x51;
5480auto x84 = -x83;
5481auto x85 = x50 + x81 - V{4.5}*x84*x84;
5482auto x86 = V{0.0833333333333333}*cell[3];
5483auto x87 = V{0.0833333333333333}*cell[12];
5484auto x88 = V{0.00462962962962963}*x27;
5485auto x89 = V{0.00925925925925926}*x27;
5486auto x90 = V{0.00925925925925926}*x27;
5487auto x91 = x71*x88;
5488auto x92 = V{0.00462962962962963}*x27;
5489auto x93 = x76*x92;
5490auto x94 = x82*x92;
5491auto x95 = V{0.00231481481481482}*x27;
5492auto x96 = x37*x89 - x48*x95 - x54*x95 + x62*x95 - x66*x95 + V{0.0833333333333334}*cell[15] + V{0.0833333333333334}*cell[16] - V{0.166666666666667}*cell[2] + V{0.0833333333333334}*cell[6] + V{0.0833333333333334}*cell[7] + V{6.93889390390723e-18};
5493auto x97 = x23*(x69*x90 + x72*x88 - x73*x90 + x79*x89 + x85*x89 - x86 - x87 - x91 - x93 - x94 + x96 + V{0.166666666666667}*cell[10] + V{0.166666666666667}*cell[14] + V{0.166666666666667}*cell[1] + V{0.166666666666667}*cell[4] - V{0.333333333333333}*cell[8] - V{0.333333333333333}*cell[9]) + V{0.0555555555555556};
5494auto x98 = V{0.0833333333333333}*cell[1];
5495auto x99 = V{0.0833333333333333}*cell[10];
5496auto x100 = x69*x88;
5497auto x101 = x79*x92;
5498auto x102 = x85*x92;
5499auto x103 = x23*(-x100 - x101 - x102 + V{0.00462962962962963}*x24*x26*x48 + V{0.00462962962962963}*x24*x26*x54 + V{0.00462962962962963}*x24*x26*x66 + V{0.00462962962962963}*x24*x26*x72 + V{0.00462962962962963}*x24*x26*x73 - V{0.0185185185185185}*x27*x37 - x62*x88 - x86 - x87 - x91 - x93 - x94 - x98 - x99 + V{0.166666666666667}*cell[14] - V{0.166666666666667}*cell[15] - V{0.166666666666667}*cell[16] + V{0.333333333333333}*cell[2] + V{0.166666666666667}*cell[4] - V{0.166666666666667}*cell[6] - V{0.166666666666667}*cell[7] + V{0.166666666666667}*cell[8] + V{0.166666666666667}*cell[9] + V{6.93889390390723e-18}) + V{0.0555555555555556};
5500auto x104 = x23*(-x100 - x101 - x102 + x71*x90 - x72*x90 + x73*x88 + x76*x89 + x82*x89 + x96 - x98 - x99 + V{0.166666666666667}*cell[12] - V{0.333333333333333}*cell[14] + V{0.166666666666667}*cell[3] - V{0.333333333333333}*cell[4] + V{0.166666666666667}*cell[8] + V{0.166666666666667}*cell[9]) + V{0.0555555555555556};
5501auto x105 = V{0.00462962962962963}*x27;
5502auto x106 = V{0.0231481481481481}*x27;
5503auto x107 = V{0.00231481481481481}*x27;
5504auto x108 = V{0.00462962962962963}*x27;
5505auto x109 = x108*x69 - x108*x73 - x79*x95 - x85*x95 + V{0.0833333333333333}*cell[10] + V{0.0833333333333333}*cell[1] + V{0.0833333333333334}*cell[8] + V{0.0833333333333334}*cell[9] + V{0.0416666666666667};
5506auto x110 = V{0.00115740740740741}*x27;
5507auto x111 = -x110*x48 - x110*x54 + x110*x62 - x110*x66 - x37*x90 + V{0.0416666666666667}*cell[15] + V{0.0416666666666667}*cell[16] + V{0.166666666666667}*cell[2] + V{0.0416666666666667}*cell[6] + V{0.0416666666666667}*cell[7];
5508auto x112 = -x107*x71 + x107*x72 + x109 + x111 - V{0.0416666666666667}*cell[12] - V{0.0416666666666667}*cell[3];
5509auto x113 = x23*(x105*x82 - x106*x76 + x112 - V{0.166666666666667}*cell[14] + V{0.833333333333333}*cell[4]) + V{0.0277777777777778};
5510auto x114 = -x31;
5511auto x115 = -x80;
5512auto x116 = x23*(x105*x76 - x106*x82 + x112 + V{0.833333333333333}*cell[14] - V{0.166666666666667}*cell[4]) + V{0.0277777777777778};
5513auto x117 = V{0.0115740740740741}*x27;
5514auto x118 = V{0.00231481481481481}*x27;
5515auto x119 = x108*x71 - x108*x72 - x76*x95 - x82*x95 + V{0.0833333333333333}*cell[12] + V{0.0833333333333334}*cell[14] + V{0.0833333333333333}*cell[3] + V{0.0833333333333334}*cell[4];
5516auto x120 = x109 + x119 + x37*x88 - V{0.0833333333333333}*cell[2];
5517auto x121 = x23*(-x117*x48 + x117*x62 + x118*x54 + x118*x66 + x120 + V{0.416666666666667}*cell[15] - V{0.0833333333333333}*cell[16] + V{0.416666666666667}*cell[6] - V{0.0833333333333333}*cell[7]) + V{0.0277777777777778};
5518auto x122 = x23*(-x117*x54 - x117*x66 + x118*x48 - x118*x62 + x120 - V{0.0833333333333333}*cell[15] + V{0.416666666666667}*cell[16] - V{0.0833333333333333}*cell[6] + V{0.416666666666667}*cell[7]) + V{0.0277777777777778};
5519auto x123 = -x107*x69 + x107*x73 + x111 + x119 - V{0.0416666666666667}*cell[10] - V{0.0416666666666667}*cell[1] + V{0.0416666666666667};
5520auto x124 = x23*(x105*x85 - x106*x79 + x123 + V{0.833333333333333}*cell[8] - V{0.166666666666667}*cell[9]) + V{0.0277777777777778};
5521auto x125 = x23*(x105*x79 - x106*x85 + x123 - V{0.166666666666667}*cell[8] + V{0.833333333333333}*cell[9]) + V{0.0277777777777778};
5522auto x126 = x31 + x60;
5523auto x0 = x23*(x25 - x28*x76 - x28*x79 - x28*x82 - x28*x85 + x38 + x39*x69 + x39*x71 - x39*x72 - x39*x73 + x49 + x55 + x63 + x67 + V{0.5}*cell[10] + V{0.5}*cell[12] + V{1}*cell[15] + V{1}*cell[16] + V{0.5}*cell[1] + V{1}*cell[2] + V{0.5}*cell[3] + V{1}*cell[6] + V{1}*cell[7] + V{0.5}) + V{0.333333333333333}*x27*x46 + V{-0.333333333333333};
5524auto x1 = V{0.0555555555555556}*x24*x26*x73 - x97;
5525auto x2 = -x103 - x38;
5526auto x3 = -x104 + V{0.0555555555555556}*x24*x26*x72;
5527auto x4 = -x113 + V{0.0277777777777778}*x24*x26*x76;
5528auto x5 = -x116 + V{0.0277777777777778}*x24*x26*(x114 + x47 - V{4.5}*x115*x115);
5529auto x6 = -x121 - x49;
5530auto x7 = -x122 - x55;
5531auto x8 = -x124 + V{0.0277777777777778}*x24*x26*x79;
5532auto x9 = -x125 + V{0.0277777777777778}*x24*x26*x85;
5533auto x10 = -x28*x69 - x97;
5534auto x11 = -x103 - x28*(x126 + x33 + x56 + V{1});
5535auto x12 = -x104 - x28*x71;
5536auto x13 = -x113 - x39*(x126 + x59 + x75);
5537auto x14 = -x116 + V{0.0277777777777778}*x24*x26*x82;
5538auto x15 = -x121 - x63;
5539auto x16 = -x122 - x67;
5540auto x17 = -x124 - x39*(x31 + x58 + x61 + x78);
5541auto x18 = -x125 + V{0.0277777777777778}*x24*x26*(x114 + x65 - V{4.5}*x83*x83);
5542cell[0] = x0;
5543cell[1] = x1;
5544cell[2] = x2;
5545cell[3] = x3;
5546cell[4] = x4;
5547cell[5] = x5;
5548cell[6] = x6;
5549cell[7] = x7;
5550cell[8] = x8;
5551cell[9] = x9;
5552cell[10] = x10;
5553cell[11] = x11;
5554cell[12] = x12;
5555cell[13] = x13;
5556cell[14] = x14;
5557cell[15] = x15;
5558cell[16] = x16;
5559cell[17] = x17;
5560cell[18] = x18;
5561return { -V{1}*x27, x29 + x32 + x34 };
5562}
5563
5564};
5565
5566template <typename... FIELDS>
5567struct RLB::type<descriptors::D3Q19<FIELDS...>,momenta::RegularizedVelocityBoundaryTuple<1,1>,equilibria::SecondOrder> {
5568
5569template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
5570CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
5571{
5572auto x20 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(1);
5573auto x19 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(0);
5574auto x21 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(2);
5575auto x22 = parameters.template get<olb::descriptors::OMEGA>();
5576auto x23 = x22 + V{-1};
5577auto x24 = V{1} / (x20 + V{1});
5578auto x25 = V{2}*cell[13] + V{2}*cell[17] + V{2}*cell[18] + V{2}*cell[5];
5579auto x26 = x25 + cell[0] + cell[10] + V{2}*cell[11] + cell[12] + cell[15] + cell[16] + cell[1] + cell[3] + cell[6] + cell[7] + V{1};
5580auto x27 = x24*x26;
5581auto x28 = V{0.0555555555555556}*x27;
5582auto x29 = x21*x21;
5583auto x30 = V{1.5}*x29;
5584auto x31 = -x30;
5585auto x32 = x20*x20;
5586auto x33 = V{3}*x32;
5587auto x34 = x19*x19;
5588auto x35 = V{1.5}*x34;
5589auto x36 = -x35;
5590auto x37 = V{3}*x20;
5591auto x38 = x36 + x37;
5592auto x39 = x31 + x33 + x38 + V{1};
5593auto x40 = -x28*x39;
5594auto x41 = V{0.0277777777777778}*x27;
5595auto x42 = x19 + x21;
5596auto x43 = x42*x42;
5597auto x44 = V{3}*x19;
5598auto x45 = V{1.5}*x32;
5599auto x46 = V{1} - x45;
5600auto x47 = x31 + x46;
5601auto x48 = x44 + x47;
5602auto x49 = V{3}*x21;
5603auto x50 = x36 + x49;
5604auto x51 = V{4.5}*x43 + x48 + x50;
5605auto x52 = -x41*x51;
5606auto x53 = V{3}*x34 + x48;
5607auto x54 = V{3}*x29 + x46 + x50;
5608auto x55 = x30 + x45 + V{-1};
5609auto x56 = -V{3}*x34 + x44 + x55;
5610auto x57 = x35 + V{-1};
5611auto x58 = -V{3}*x29 + x45 + x49 + x57;
5612auto x59 = -x44;
5613auto x60 = -x21;
5614auto x61 = x19 + x60;
5615auto x62 = x35 + x55;
5616auto x63 = x49 + x62;
5617auto x64 = x59 + x63 - V{4.5}*x61*x61;
5618auto x65 = -x49;
5619auto x66 = -x61;
5620auto x67 = x44 + x62;
5621auto x68 = x65 + x67 - V{4.5}*x66*x66;
5622auto x69 = -V{4.5}*x43 + x44 + x63;
5623auto x70 = x19 + x20;
5624auto x71 = V{4.5}*(x70*x70);
5625auto x72 = x38 + x48 + x71;
5626auto x73 = x20 + x21;
5627auto x74 = V{4.5}*(x73*x73);
5628auto x75 = x37 + x47 + x50 + x74;
5629auto x76 = -V{3}*x20;
5630auto x77 = x19 - x20;
5631auto x78 = -x77;
5632auto x79 = x67 + x76 - V{4.5}*x78*x78;
5633auto x80 = x20 + x60;
5634auto x81 = x63 + x76 - V{4.5}*x80*x80;
5635auto x82 = V{0.0833333333333333}*cell[3];
5636auto x83 = V{0.0833333333333333}*cell[12];
5637auto x84 = V{0.00462962962962963}*x27;
5638auto x85 = V{0.00925925925925926}*x27;
5639auto x86 = V{0.00462962962962963}*x27;
5640auto x87 = V{0.00925925925925926}*x27;
5641auto x88 = x58*x84;
5642auto x89 = x72*x86;
5643auto x90 = V{0.00231481481481482}*x27;
5644auto x91 = x39*x85 - x51*x90 + x64*x90 + x68*x90 + x69*x90 - V{0.166666666666667}*cell[11] + V{0.0833333333333334}*cell[15] + V{0.0833333333333334}*cell[16] + V{0.0833333333333334}*cell[6] + V{0.0833333333333334}*cell[7] + V{6.93889390390723e-18};
5645auto x92 = x23*(-x53*x87 + x54*x84 + x56*x87 + x75*x85 + x79*x86 - x81*x85 - x82 - x83 - x88 - x89 + x91 + V{0.166666666666667}*cell[10] + V{0.166666666666667}*cell[13] - V{0.333333333333333}*cell[17] - V{0.333333333333333}*cell[18] + V{0.166666666666667}*cell[1] + V{0.166666666666667}*cell[5]) + V{0.0555555555555556};
5646auto x93 = V{0.0833333333333333}*cell[1];
5647auto x94 = V{0.0833333333333333}*cell[10];
5648auto x95 = x56*x84;
5649auto x96 = x75*x86;
5650auto x97 = x23*(V{0.00462962962962963}*x24*x26*x51 + V{0.00462962962962963}*x24*x26*x53 + V{0.00462962962962963}*x24*x26*x54 + V{0.00462962962962963}*x24*x26*x79 + V{0.00462962962962963}*x24*x26*x81 - V{0.0185185185185185}*x27*x39 - x64*x84 - x68*x84 - x69*x84 - x82 - x83 - x88 - x89 - x93 - x94 - x95 - x96 + V{0.333333333333333}*cell[11] + V{0.166666666666667}*cell[13] - V{0.166666666666667}*cell[15] - V{0.166666666666667}*cell[16] + V{0.166666666666667}*cell[17] + V{0.166666666666667}*cell[18] + V{0.166666666666667}*cell[5] - V{0.166666666666667}*cell[6] - V{0.166666666666667}*cell[7] + V{6.93889390390723e-18}) + V{0.0555555555555556};
5651auto x98 = x23*(x53*x84 - x54*x87 + x58*x87 + x72*x85 - x79*x85 + x81*x86 + x91 - x93 - x94 - x95 - x96 + V{0.166666666666667}*cell[12] - V{0.333333333333333}*cell[13] + V{0.166666666666667}*cell[17] + V{0.166666666666667}*cell[18] + V{0.166666666666667}*cell[3] - V{0.333333333333333}*cell[5]) + V{0.0555555555555556};
5652auto x99 = V{0.0231481481481481}*x27;
5653auto x100 = V{0.00462962962962963}*x27;
5654auto x101 = V{0.00231481481481481}*x27;
5655auto x102 = V{0.00462962962962963}*x27;
5656auto x103 = -x102*x53 + x102*x56 - x75*x90 + x81*x90 + V{0.0833333333333333}*cell[10] + V{0.0833333333333334}*cell[17] + V{0.0833333333333334}*cell[18] + V{0.0833333333333333}*cell[1] + V{0.0416666666666667};
5657auto x104 = V{0.00115740740740741}*x27;
5658auto x105 = -x104*x51 + x104*x64 + x104*x68 + x104*x69 - x39*x87 + V{0.166666666666667}*cell[11] + V{0.0416666666666667}*cell[15] + V{0.0416666666666667}*cell[16] + V{0.0416666666666667}*cell[6] + V{0.0416666666666667}*cell[7];
5659auto x106 = x101*x54 - x101*x58 + x103 + x105 - V{0.0416666666666667}*cell[12] - V{0.0416666666666667}*cell[3];
5660auto x107 = x23*(-x100*x79 + x106 - x72*x99 + V{0.833333333333333}*cell[13] - V{0.166666666666667}*cell[5]) + V{0.0277777777777778};
5661auto x108 = x23*(x100*x72 + x106 + x79*x99 - V{0.166666666666667}*cell[13] + V{0.833333333333333}*cell[5]) + V{0.0277777777777778};
5662auto x109 = V{0.0115740740740741}*x27;
5663auto x110 = V{0.00231481481481481}*x27;
5664auto x111 = -x102*x54 + x102*x58 - x72*x90 + x79*x90 + V{0.0833333333333333}*cell[12] + V{0.0833333333333334}*cell[13] + V{0.0833333333333333}*cell[3] + V{0.0833333333333334}*cell[5];
5665auto x112 = x103 + x111 + x39*x84 - V{0.0833333333333333}*cell[11];
5666auto x113 = x23*(-x109*x51 + x109*x69 - x110*x64 - x110*x68 + x112 + V{0.416666666666667}*cell[15] - V{0.0833333333333333}*cell[16] + V{0.416666666666667}*cell[6] - V{0.0833333333333333}*cell[7]) + V{0.0277777777777778};
5667auto x114 = x23*(x109*x64 + x109*x68 + x110*x51 - x110*x69 + x112 - V{0.0833333333333333}*cell[15] + V{0.416666666666667}*cell[16] - V{0.0833333333333333}*cell[6] + V{0.416666666666667}*cell[7]) + V{0.0277777777777778};
5668auto x115 = x101*x53 - x101*x56 + x105 + x111 - V{0.0416666666666667}*cell[10] - V{0.0416666666666667}*cell[1] + V{0.0416666666666667};
5669auto x116 = x23*(-x100*x81 + x115 - x75*x99 + V{0.833333333333333}*cell[17] - V{0.166666666666667}*cell[18]) + V{0.0277777777777778};
5670auto x117 = -x80;
5671auto x118 = x37 + x62;
5672auto x119 = x23*(x100*x75 + x115 + x81*x99 - V{0.166666666666667}*cell[17] + V{0.833333333333333}*cell[18]) + V{0.0277777777777778};
5673auto x0 = x23*(x25 - x28*x72 - x28*x75 + x28*x79 + x28*x81 + x40 - x41*x53 - x41*x54 + x41*x56 + x41*x58 + x41*x64 + x41*x68 + x41*x69 + x52 + V{0.5}*cell[10] + V{1}*cell[11] + V{0.5}*cell[12] + V{1}*cell[15] + V{1}*cell[16] + V{0.5}*cell[1] + V{0.5}*cell[3] + V{1}*cell[6] + V{1}*cell[7] + V{0.5}) - V{0.333333333333333}*x27*x62 + V{-0.333333333333333};
5674auto x1 = -x28*x56 - x92;
5675auto x2 = -x28*(x30 - x33 + x37 + x57) - x97;
5676auto x3 = -x28*x58 - x98;
5677auto x4 = -x107 - x41*(x37 + x67 - x71);
5678auto x5 = -x108 - x41*x79;
5679auto x6 = -x113 - x41*x69;
5680auto x7 = -x114 - x41*x68;
5681auto x8 = -x116 - x41*(x37 + x63 - x74);
5682auto x9 = -x119 - x41*(x118 + x65 - V{4.5}*x117*x117);
5683auto x10 = V{0.0555555555555556}*x24*x26*x53 - x92;
5684auto x11 = -x40 - x97;
5685auto x12 = V{0.0555555555555556}*x24*x26*x54 - x98;
5686auto x13 = -x107 + V{0.0277777777777778}*x24*x26*x72;
5687auto x14 = -x108 - x41*(x118 + x59 - V{4.5}*x77*x77);
5688auto x15 = -x113 - x52;
5689auto x16 = -x114 - x41*x64;
5690auto x17 = -x116 + V{0.0277777777777778}*x24*x26*x75;
5691auto x18 = -x119 - x41*x81;
5692cell[0] = x0;
5693cell[1] = x1;
5694cell[2] = x2;
5695cell[3] = x3;
5696cell[4] = x4;
5697cell[5] = x5;
5698cell[6] = x6;
5699cell[7] = x7;
5700cell[8] = x8;
5701cell[9] = x9;
5702cell[10] = x10;
5703cell[11] = x11;
5704cell[12] = x12;
5705cell[13] = x13;
5706cell[14] = x14;
5707cell[15] = x15;
5708cell[16] = x16;
5709cell[17] = x17;
5710cell[18] = x18;
5711return { V{1}*x27, x29 + x32 + x34 };
5712}
5713
5714};
5715
5716template <typename... FIELDS>
5717struct RLB::type<descriptors::D3Q19<FIELDS...>,momenta::RegularizedVelocityBoundaryTuple<2,-1>,equilibria::SecondOrder> {
5718
5719template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
5720CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
5721{
5722auto x20 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(1);
5723auto x19 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(0);
5724auto x21 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(2);
5725auto x22 = parameters.template get<olb::descriptors::OMEGA>();
5726auto x23 = x22 + V{-1};
5727auto x24 = V{1} / (x21 + V{-1});
5728auto x25 = V{2}*cell[16] + V{2}*cell[18] + V{2}*cell[6] + V{2}*cell[8];
5729auto x26 = x25 + cell[0] + cell[10] + cell[11] + cell[13] + cell[14] + cell[1] + cell[2] + V{2}*cell[3] + cell[4] + cell[5] + V{1};
5730auto x27 = x24*x26;
5731auto x28 = V{0.0555555555555556}*x27;
5732auto x29 = x19*x19;
5733auto x30 = V{1.5}*x29;
5734auto x31 = V{3}*x21;
5735auto x32 = x21*x21;
5736auto x33 = V{3}*x32;
5737auto x34 = x20*x20;
5738auto x35 = V{1.5}*x34;
5739auto x36 = x35 + V{-1};
5740auto x37 = x30 + x31 - x33 + x36;
5741auto x38 = -x28*x37;
5742auto x39 = V{0.0277777777777778}*x27;
5743auto x40 = V{3}*x20;
5744auto x41 = x19 + x20;
5745auto x42 = V{4.5}*(x41*x41);
5746auto x43 = V{3}*x19;
5747auto x44 = V{1.5}*x32;
5748auto x45 = x30 + x44 + V{-1};
5749auto x46 = x35 + x45;
5750auto x47 = x43 + x46;
5751auto x48 = x40 - x42 + x47;
5752auto x49 = -x39*x48;
5753auto x50 = -x40;
5754auto x51 = x19 - x20;
5755auto x52 = -x51;
5756auto x53 = x47 + x50 - V{4.5}*x52*x52;
5757auto x54 = -x39*x53;
5758auto x55 = -x35;
5759auto x56 = V{1} - x44;
5760auto x57 = x55 + x56;
5761auto x58 = x43 + x57;
5762auto x59 = -x30;
5763auto x60 = x40 + x59;
5764auto x61 = x42 + x58 + x60;
5765auto x62 = x39*x61;
5766auto x63 = -x43;
5767auto x64 = x40 + x46;
5768auto x65 = x63 + x64 - V{4.5}*x51*x51;
5769auto x66 = -x39*x65;
5770auto x67 = V{3}*x29;
5771auto x68 = x58 + x67;
5772auto x69 = V{3}*x34;
5773auto x70 = x56 + x60 + x69;
5774auto x71 = x40 + x45 - x69;
5775auto x72 = x36 + x43 + x44 - x67;
5776auto x73 = x19 + x21;
5777auto x74 = V{4.5}*(x73*x73);
5778auto x75 = x31 + x47 - x74;
5779auto x76 = x20 + x21;
5780auto x77 = V{4.5}*(x76*x76);
5781auto x78 = x31 + x64 - x77;
5782auto x79 = -x21;
5783auto x80 = x19 + x79;
5784auto x81 = x31 + x46;
5785auto x82 = x63 + x81 - V{4.5}*x80*x80;
5786auto x83 = x20 + x79;
5787auto x84 = x50 + x81 - V{4.5}*x83*x83;
5788auto x85 = V{0.0833333333333333}*cell[2];
5789auto x86 = V{0.0833333333333333}*cell[11];
5790auto x87 = V{0.00462962962962963}*x27;
5791auto x88 = V{0.00925925925925926}*x27;
5792auto x89 = V{0.00925925925925926}*x27;
5793auto x90 = x70*x87;
5794auto x91 = V{0.00462962962962963}*x27;
5795auto x92 = x75*x91;
5796auto x93 = x82*x91;
5797auto x94 = V{0.00231481481481482}*x27;
5798auto x95 = x37*x88 - x48*x94 - x53*x94 + x61*x94 - x65*x94 + V{0.0833333333333334}*cell[13] + V{0.0833333333333334}*cell[14] - V{0.166666666666667}*cell[3] + V{0.0833333333333334}*cell[4] + V{0.0833333333333334}*cell[5] + V{6.93889390390723e-18};
5799auto x96 = x23*(x68*x89 + x71*x87 - x72*x89 + x78*x88 + x84*x88 - x85 - x86 - x90 - x92 - x93 + x95 + V{0.166666666666667}*cell[10] + V{0.166666666666667}*cell[16] - V{0.333333333333333}*cell[18] + V{0.166666666666667}*cell[1] + V{0.166666666666667}*cell[6] - V{0.333333333333333}*cell[8]) + V{0.0555555555555556};
5800auto x97 = V{0.0833333333333333}*cell[1];
5801auto x98 = V{0.0833333333333333}*cell[10];
5802auto x99 = x68*x87;
5803auto x100 = x78*x91;
5804auto x101 = x84*x91;
5805auto x102 = x23*(-x100 - x101 + x70*x89 - x71*x89 + x72*x87 + x75*x88 + x82*x88 + x95 - x97 - x98 - x99 + V{0.166666666666667}*cell[11] - V{0.333333333333333}*cell[16] + V{0.166666666666667}*cell[18] + V{0.166666666666667}*cell[2] - V{0.333333333333333}*cell[6] + V{0.166666666666667}*cell[8]) + V{0.0555555555555556};
5806auto x103 = x23*(-x100 - x101 + V{0.00462962962962963}*x24*x26*x48 + V{0.00462962962962963}*x24*x26*x53 + V{0.00462962962962963}*x24*x26*x65 + V{0.00462962962962963}*x24*x26*x71 + V{0.00462962962962963}*x24*x26*x72 - V{0.0185185185185185}*x27*x37 - x61*x87 - x85 - x86 - x90 - x92 - x93 - x97 - x98 - x99 - V{0.166666666666667}*cell[13] - V{0.166666666666667}*cell[14] + V{0.166666666666667}*cell[16] + V{0.166666666666667}*cell[18] + V{0.333333333333333}*cell[3] - V{0.166666666666667}*cell[4] - V{0.166666666666667}*cell[5] + V{0.166666666666667}*cell[6] + V{0.166666666666667}*cell[8] + V{6.93889390390723e-18}) + V{0.0555555555555556};
5807auto x104 = V{0.0115740740740741}*x27;
5808auto x105 = V{0.00231481481481481}*x27;
5809auto x106 = V{0.00462962962962963}*x27;
5810auto x107 = x106*x68 - x106*x72 - x78*x94 - x84*x94 + V{0.0833333333333333}*cell[10] + V{0.0833333333333334}*cell[18] + V{0.0833333333333333}*cell[1] + V{0.0833333333333334}*cell[8] + V{0.0416666666666667};
5811auto x108 = x106*x70 - x106*x71 - x75*x94 - x82*x94 + V{0.0833333333333333}*cell[11] + V{0.0833333333333334}*cell[16] + V{0.0833333333333333}*cell[2] + V{0.0833333333333334}*cell[6];
5812auto x109 = x107 + x108 + x37*x87 - V{0.0833333333333333}*cell[3];
5813auto x110 = x23*(-x104*x48 + x104*x61 + x105*x53 + x105*x65 + x109 + V{0.416666666666667}*cell[13] - V{0.0833333333333333}*cell[14] + V{0.416666666666667}*cell[4] - V{0.0833333333333333}*cell[5]) + V{0.0277777777777778};
5814auto x111 = x23*(-x104*x53 - x104*x65 + x105*x48 - x105*x61 + x109 - V{0.0833333333333333}*cell[13] + V{0.416666666666667}*cell[14] - V{0.0833333333333333}*cell[4] + V{0.416666666666667}*cell[5]) + V{0.0277777777777778};
5815auto x112 = V{0.00462962962962963}*x27;
5816auto x113 = V{0.0231481481481481}*x27;
5817auto x114 = V{0.00231481481481481}*x27;
5818auto x115 = V{0.00115740740740741}*x27;
5819auto x116 = -x115*x48 - x115*x53 + x115*x61 - x115*x65 - x37*x89 + V{0.0416666666666667}*cell[13] + V{0.0416666666666667}*cell[14] + V{0.166666666666667}*cell[3] + V{0.0416666666666667}*cell[4] + V{0.0416666666666667}*cell[5];
5820auto x117 = x107 - x114*x70 + x114*x71 + x116 - V{0.0416666666666667}*cell[11] - V{0.0416666666666667}*cell[2];
5821auto x118 = x23*(x112*x82 - x113*x75 + x117 - V{0.166666666666667}*cell[16] + V{0.833333333333333}*cell[6]) + V{0.0277777777777778};
5822auto x119 = -x31;
5823auto x120 = -x80;
5824auto x121 = x23*(x112*x75 - x113*x82 + x117 + V{0.833333333333333}*cell[16] - V{0.166666666666667}*cell[6]) + V{0.0277777777777778};
5825auto x122 = x108 - x114*x68 + x114*x72 + x116 - V{0.0416666666666667}*cell[10] - V{0.0416666666666667}*cell[1] + V{0.0416666666666667};
5826auto x123 = x23*(x112*x84 - x113*x78 + x122 - V{0.166666666666667}*cell[18] + V{0.833333333333333}*cell[8]) + V{0.0277777777777778};
5827auto x124 = -x83;
5828auto x125 = x23*(x112*x78 - x113*x84 + x122 + V{0.833333333333333}*cell[18] - V{0.166666666666667}*cell[8]) + V{0.0277777777777778};
5829auto x126 = x31 + x59;
5830auto x0 = x23*(x25 - x28*x75 - x28*x78 - x28*x82 - x28*x84 + x38 + x39*x68 + x39*x70 - x39*x71 - x39*x72 + x49 + x54 + x62 + x66 + V{0.5}*cell[10] + V{0.5}*cell[11] + V{1}*cell[13] + V{1}*cell[14] + V{0.5}*cell[1] + V{0.5}*cell[2] + V{1}*cell[3] + V{1}*cell[4] + V{1}*cell[5] + V{0.5}) + V{0.333333333333333}*x27*x46 + V{-0.333333333333333};
5831auto x1 = V{0.0555555555555556}*x24*x26*x72 - x96;
5832auto x2 = -x102 + V{0.0555555555555556}*x24*x26*x71;
5833auto x3 = -x103 - x38;
5834auto x4 = -x110 - x49;
5835auto x5 = -x111 - x54;
5836auto x6 = -x118 + V{0.0277777777777778}*x24*x26*x75;
5837auto x7 = -x121 + V{0.0277777777777778}*x24*x26*(x119 + x47 - V{4.5}*x120*x120);
5838auto x8 = -x123 + V{0.0277777777777778}*x24*x26*x78;
5839auto x9 = -x125 + V{0.0277777777777778}*x24*x26*(x119 + x64 - V{4.5}*x124*x124);
5840auto x10 = -x28*x68 - x96;
5841auto x11 = -x102 - x28*x70;
5842auto x12 = -x103 - x28*(x126 + x33 + x55 + V{1});
5843auto x13 = -x110 - x62;
5844auto x14 = -x111 - x66;
5845auto x15 = -x118 - x39*(x126 + x58 + x74);
5846auto x16 = -x121 + V{0.0277777777777778}*x24*x26*x82;
5847auto x17 = -x123 - x39*(x31 + x57 + x60 + x77);
5848auto x18 = -x125 + V{0.0277777777777778}*x24*x26*x84;
5849cell[0] = x0;
5850cell[1] = x1;
5851cell[2] = x2;
5852cell[3] = x3;
5853cell[4] = x4;
5854cell[5] = x5;
5855cell[6] = x6;
5856cell[7] = x7;
5857cell[8] = x8;
5858cell[9] = x9;
5859cell[10] = x10;
5860cell[11] = x11;
5861cell[12] = x12;
5862cell[13] = x13;
5863cell[14] = x14;
5864cell[15] = x15;
5865cell[16] = x16;
5866cell[17] = x17;
5867cell[18] = x18;
5868return { -V{1}*x27, x29 + x32 + x34 };
5869}
5870
5871};
5872
5873template <typename... FIELDS>
5874struct RLB::type<descriptors::D3Q19<FIELDS...>,momenta::RegularizedVelocityBoundaryTuple<2,1>,equilibria::SecondOrder> {
5875
5876template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
5877CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
5878{
5879auto x20 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(1);
5880auto x19 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(0);
5881auto x21 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(2);
5882auto x22 = parameters.template get<olb::descriptors::OMEGA>();
5883auto x23 = x22 + V{-1};
5884auto x24 = V{1} / (x21 + V{1});
5885auto x25 = V{2}*cell[15] + V{2}*cell[17] + V{2}*cell[7] + V{2}*cell[9];
5886auto x26 = x25 + cell[0] + cell[10] + cell[11] + V{2}*cell[12] + cell[13] + cell[14] + cell[1] + cell[2] + cell[4] + cell[5] + V{1};
5887auto x27 = x24*x26;
5888auto x28 = V{0.0555555555555556}*x27;
5889auto x29 = x20*x20;
5890auto x30 = V{1.5}*x29;
5891auto x31 = -x30;
5892auto x32 = x21*x21;
5893auto x33 = V{3}*x32;
5894auto x34 = x19*x19;
5895auto x35 = V{1.5}*x34;
5896auto x36 = -x35;
5897auto x37 = V{3}*x21;
5898auto x38 = x36 + x37;
5899auto x39 = x31 + x33 + x38 + V{1};
5900auto x40 = -x28*x39;
5901auto x41 = V{0.0277777777777778}*x27;
5902auto x42 = x19 + x20;
5903auto x43 = x42*x42;
5904auto x44 = V{3}*x19;
5905auto x45 = V{1.5}*x32;
5906auto x46 = V{1} - x45;
5907auto x47 = x31 + x46;
5908auto x48 = x44 + x47;
5909auto x49 = V{3}*x20;
5910auto x50 = x36 + x49;
5911auto x51 = V{4.5}*x43 + x48 + x50;
5912auto x52 = -x41*x51;
5913auto x53 = V{3}*x34 + x48;
5914auto x54 = V{3}*x29 + x46 + x50;
5915auto x55 = x30 + x45 + V{-1};
5916auto x56 = -V{3}*x34 + x44 + x55;
5917auto x57 = x35 + V{-1};
5918auto x58 = -V{3}*x29 + x45 + x49 + x57;
5919auto x59 = -x44;
5920auto x60 = x19 - x20;
5921auto x61 = x35 + x55;
5922auto x62 = x49 + x61;
5923auto x63 = x59 + x62 - V{4.5}*x60*x60;
5924auto x64 = -x49;
5925auto x65 = -x60;
5926auto x66 = x44 + x61;
5927auto x67 = x64 + x66 - V{4.5}*x65*x65;
5928auto x68 = -V{4.5}*x43 + x44 + x62;
5929auto x69 = x19 + x21;
5930auto x70 = V{4.5}*(x69*x69);
5931auto x71 = x38 + x48 + x70;
5932auto x72 = x20 + x21;
5933auto x73 = V{4.5}*(x72*x72);
5934auto x74 = x37 + x47 + x50 + x73;
5935auto x75 = -V{3}*x21;
5936auto x76 = -x21;
5937auto x77 = x19 + x76;
5938auto x78 = -x77;
5939auto x79 = x66 + x75 - V{4.5}*x78*x78;
5940auto x80 = x20 + x76;
5941auto x81 = -x80;
5942auto x82 = x62 + x75 - V{4.5}*x81*x81;
5943auto x83 = V{0.0833333333333333}*cell[2];
5944auto x84 = V{0.0833333333333333}*cell[11];
5945auto x85 = V{0.00462962962962963}*x27;
5946auto x86 = V{0.00925925925925926}*x27;
5947auto x87 = V{0.00462962962962963}*x27;
5948auto x88 = V{0.00925925925925926}*x27;
5949auto x89 = x58*x85;
5950auto x90 = x71*x87;
5951auto x91 = V{0.00231481481481482}*x27;
5952auto x92 = x39*x86 - x51*x91 + x63*x91 + x67*x91 + x68*x91 - V{0.166666666666667}*cell[12] + V{0.0833333333333334}*cell[13] + V{0.0833333333333334}*cell[14] + V{0.0833333333333334}*cell[4] + V{0.0833333333333334}*cell[5] + V{6.93889390390723e-18};
5953auto x93 = x23*(-x53*x88 + x54*x85 + x56*x88 + x74*x86 + x79*x87 - x82*x86 - x83 - x84 - x89 - x90 + x92 + V{0.166666666666667}*cell[10] + V{0.166666666666667}*cell[15] - V{0.333333333333333}*cell[17] + V{0.166666666666667}*cell[1] + V{0.166666666666667}*cell[7] - V{0.333333333333333}*cell[9]) + V{0.0555555555555556};
5954auto x94 = V{0.0833333333333333}*cell[1];
5955auto x95 = V{0.0833333333333333}*cell[10];
5956auto x96 = x56*x85;
5957auto x97 = x74*x87;
5958auto x98 = x23*(x53*x85 - x54*x88 + x58*x88 + x71*x86 - x79*x86 + x82*x87 + x92 - x94 - x95 - x96 - x97 + V{0.166666666666667}*cell[11] - V{0.333333333333333}*cell[15] + V{0.166666666666667}*cell[17] + V{0.166666666666667}*cell[2] - V{0.333333333333333}*cell[7] + V{0.166666666666667}*cell[9]) + V{0.0555555555555556};
5959auto x99 = x23*(V{0.00462962962962963}*x24*x26*x51 + V{0.00462962962962963}*x24*x26*x53 + V{0.00462962962962963}*x24*x26*x54 + V{0.00462962962962963}*x24*x26*x79 + V{0.00462962962962963}*x24*x26*x82 - V{0.0185185185185185}*x27*x39 - x63*x85 - x67*x85 - x68*x85 - x83 - x84 - x89 - x90 - x94 - x95 - x96 - x97 + V{0.333333333333333}*cell[12] - V{0.166666666666667}*cell[13] - V{0.166666666666667}*cell[14] + V{0.166666666666667}*cell[15] + V{0.166666666666667}*cell[17] - V{0.166666666666667}*cell[4] - V{0.166666666666667}*cell[5] + V{0.166666666666667}*cell[7] + V{0.166666666666667}*cell[9] + V{6.93889390390723e-18}) + V{0.0555555555555556};
5960auto x100 = V{0.0115740740740741}*x27;
5961auto x101 = V{0.00231481481481481}*x27;
5962auto x102 = V{0.00462962962962963}*x27;
5963auto x103 = -x102*x53 + x102*x56 - x74*x91 + x82*x91 + V{0.0833333333333333}*cell[10] + V{0.0833333333333334}*cell[17] + V{0.0833333333333333}*cell[1] + V{0.0833333333333334}*cell[9] + V{0.0416666666666667};
5964auto x104 = -x102*x54 + x102*x58 - x71*x91 + x79*x91 + V{0.0833333333333333}*cell[11] + V{0.0833333333333334}*cell[15] + V{0.0833333333333333}*cell[2] + V{0.0833333333333334}*cell[7];
5965auto x105 = x103 + x104 + x39*x85 - V{0.0833333333333333}*cell[12];
5966auto x106 = x23*(-x100*x51 + x100*x68 - x101*x63 - x101*x67 + x105 + V{0.416666666666667}*cell[13] - V{0.0833333333333333}*cell[14] + V{0.416666666666667}*cell[4] - V{0.0833333333333333}*cell[5]) + V{0.0277777777777778};
5967auto x107 = x23*(x100*x63 + x100*x67 + x101*x51 - x101*x68 + x105 - V{0.0833333333333333}*cell[13] + V{0.416666666666667}*cell[14] - V{0.0833333333333333}*cell[4] + V{0.416666666666667}*cell[5]) + V{0.0277777777777778};
5968auto x108 = V{0.0231481481481481}*x27;
5969auto x109 = V{0.00462962962962963}*x27;
5970auto x110 = V{0.00231481481481481}*x27;
5971auto x111 = V{0.00115740740740741}*x27;
5972auto x112 = -x111*x51 + x111*x63 + x111*x67 + x111*x68 - x39*x88 + V{0.166666666666667}*cell[12] + V{0.0416666666666667}*cell[13] + V{0.0416666666666667}*cell[14] + V{0.0416666666666667}*cell[4] + V{0.0416666666666667}*cell[5];
5973auto x113 = x103 + x110*x54 - x110*x58 + x112 - V{0.0416666666666667}*cell[11] - V{0.0416666666666667}*cell[2];
5974auto x114 = x23*(-x108*x71 - x109*x79 + x113 + V{0.833333333333333}*cell[15] - V{0.166666666666667}*cell[7]) + V{0.0277777777777778};
5975auto x115 = x23*(x108*x79 + x109*x71 + x113 - V{0.166666666666667}*cell[15] + V{0.833333333333333}*cell[7]) + V{0.0277777777777778};
5976auto x116 = x104 + x110*x53 - x110*x56 + x112 - V{0.0416666666666667}*cell[10] - V{0.0416666666666667}*cell[1] + V{0.0416666666666667};
5977auto x117 = x23*(-x108*x74 - x109*x82 + x116 + V{0.833333333333333}*cell[17] - V{0.166666666666667}*cell[9]) + V{0.0277777777777778};
5978auto x118 = x23*(x108*x82 + x109*x74 + x116 - V{0.166666666666667}*cell[17] + V{0.833333333333333}*cell[9]) + V{0.0277777777777778};
5979auto x119 = x37 + x61;
5980auto x0 = x23*(x25 - x28*x71 - x28*x74 + x28*x79 + x28*x82 + x40 - x41*x53 - x41*x54 + x41*x56 + x41*x58 + x41*x63 + x41*x67 + x41*x68 + x52 + V{0.5}*cell[10] + V{0.5}*cell[11] + V{1}*cell[12] + V{1}*cell[13] + V{1}*cell[14] + V{0.5}*cell[1] + V{0.5}*cell[2] + V{1}*cell[4] + V{1}*cell[5] + V{0.5}) - V{0.333333333333333}*x27*x61 + V{-0.333333333333333};
5981auto x1 = -x28*x56 - x93;
5982auto x2 = -x28*x58 - x98;
5983auto x3 = -x28*(x30 - x33 + x37 + x57) - x99;
5984auto x4 = -x106 - x41*x68;
5985auto x5 = -x107 - x41*x67;
5986auto x6 = -x114 - x41*(x37 + x66 - x70);
5987auto x7 = -x115 - x41*x79;
5988auto x8 = -x117 - x41*(x37 + x62 - x73);
5989auto x9 = -x118 - x41*x82;
5990auto x10 = V{0.0555555555555556}*x24*x26*x53 - x93;
5991auto x11 = V{0.0555555555555556}*x24*x26*x54 - x98;
5992auto x12 = -x40 - x99;
5993auto x13 = -x106 - x52;
5994auto x14 = -x107 - x41*x63;
5995auto x15 = -x114 + V{0.0277777777777778}*x24*x26*x71;
5996auto x16 = -x115 - x41*(x119 + x59 - V{4.5}*x77*x77);
5997auto x17 = -x117 + V{0.0277777777777778}*x24*x26*x74;
5998auto x18 = -x118 - x41*(x119 + x64 - V{4.5}*x80*x80);
5999cell[0] = x0;
6000cell[1] = x1;
6001cell[2] = x2;
6002cell[3] = x3;
6003cell[4] = x4;
6004cell[5] = x5;
6005cell[6] = x6;
6006cell[7] = x7;
6007cell[8] = x8;
6008cell[9] = x9;
6009cell[10] = x10;
6010cell[11] = x11;
6011cell[12] = x12;
6012cell[13] = x13;
6013cell[14] = x14;
6014cell[15] = x15;
6015cell[16] = x16;
6016cell[17] = x17;
6017cell[18] = x18;
6018return { V{1}*x27, x29 + x32 + x34 };
6019}
6020
6021};
6022
6023
6024template <typename... FIELDS>
6025struct ConstRhoBGK::type<descriptors::D3Q19<FIELDS...>,momenta::BasicDirichletVelocityBoundaryTuple<0,-1>,equilibria::SecondOrder> {
6026
6027template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
6028CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
6029{
6030auto x22 = parameters.template get<olb::descriptors::OMEGA>();
6031auto x20 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(1);
6032auto x21 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(2);
6033auto x23 = parameters.template get<olb::statistics::AVERAGE_RHO>();
6034auto x19 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(0);
6035auto x24 = x22 + V{-1};
6036auto x25 = x19 + V{-1};
6037auto x26 = V{1} / (x25);
6038auto x27 = V{2}*cell[1] + V{2}*cell[4] + V{2}*cell[5] + V{2}*cell[6] + V{2}*cell[7] + V{1};
6039auto x28 = x27 + cell[0] + cell[11] + cell[12] + cell[17] + cell[18] + cell[2] + cell[3] + cell[8] + cell[9];
6040auto x29 = x26*x28;
6041auto x30 = x19*x19;
6042auto x31 = V{1.5}*x30;
6043auto x32 = x20*x20;
6044auto x33 = V{1.5}*x32;
6045auto x34 = x21*x21;
6046auto x35 = V{1.5}*x34;
6047auto x36 = x33 + x35 + V{-1};
6048auto x37 = x31 + x36;
6049auto x38 = x23 + V{-1};
6050auto x39 = x25*x38/x28 + V{1};
6051auto x40 = V{0.0555555555555556}*x29;
6052auto x41 = V{3}*x19;
6053auto x42 = V{3}*x30;
6054auto x43 = x36 + x41 - x42;
6055auto x44 = V{3}*x20;
6056auto x45 = V{3}*x32;
6057auto x46 = x31 + V{-1};
6058auto x47 = x35 + x44 - x45 + x46;
6059auto x48 = V{3}*x21;
6060auto x49 = V{3}*x34;
6061auto x50 = x33 + x46 + x48 - x49;
6062auto x51 = V{0.0277777777777778}*x29;
6063auto x52 = x19 + x20;
6064auto x53 = V{4.5}*(x52*x52);
6065auto x54 = x37 + x41;
6066auto x55 = x44 - x53 + x54;
6067auto x56 = -x44;
6068auto x57 = x19 - x20;
6069auto x58 = -x57;
6070auto x59 = x54 + x56 - V{4.5}*x58*x58;
6071auto x60 = x19 + x21;
6072auto x61 = V{4.5}*(x60*x60);
6073auto x62 = x48 + x54 - x61;
6074auto x63 = -x48;
6075auto x64 = -x21;
6076auto x65 = x19 + x64;
6077auto x66 = -x65;
6078auto x67 = x54 + x63 - V{4.5}*x66*x66;
6079auto x68 = x20 + x21;
6080auto x69 = V{4.5}*(x68*x68);
6081auto x70 = x37 + x44;
6082auto x71 = x48 - x69 + x70;
6083auto x72 = x20 + x64;
6084auto x73 = -x72;
6085auto x74 = x63 + x70 - V{4.5}*x73*x73;
6086auto x75 = -x33;
6087auto x76 = V{1} - x35;
6088auto x77 = x75 + x76;
6089auto x78 = x41 + x77;
6090auto x79 = x42 + x78;
6091auto x80 = x39*x40;
6092auto x81 = -x31;
6093auto x82 = x44 + x81;
6094auto x83 = x45 + x76 + x82;
6095auto x84 = x48 + x81;
6096auto x85 = x49 + x75 + x84 + V{1};
6097auto x86 = x53 + x78 + x82;
6098auto x87 = x39*x51;
6099auto x88 = -x41;
6100auto x89 = x70 + x88 - V{4.5}*x57*x57;
6101auto x90 = x61 + x78 + x84;
6102auto x91 = x37 + x48;
6103auto x92 = x88 + x91 - V{4.5}*x65*x65;
6104auto x93 = x48 + x69 + x77 + x82;
6105auto x94 = x56 + x91 - V{4.5}*x72*x72;
6106cell[0] = -x24*(-V{0.333333333333333}*x29*x37 + cell[0] + V{0.333333333333333}) + V{0.333333333333333}*x26*x28*x37*x39 + V{-0.333333333333333};
6107cell[1] = -x24*(-x40*x43 + cell[1] + V{0.0555555555555556}) + V{0.0555555555555556}*x26*x28*x39*x43 + V{-0.0555555555555556};
6108cell[2] = -x24*(-x40*x47 + cell[2] + V{0.0555555555555556}) + V{0.0555555555555556}*x26*x28*x39*x47 + V{-0.0555555555555556};
6109cell[3] = -x24*(-x40*x50 + cell[3] + V{0.0555555555555556}) + V{0.0555555555555556}*x26*x28*x39*x50 + V{-0.0555555555555556};
6110cell[4] = -x24*(-x51*x55 + cell[4] + V{0.0277777777777778}) + V{0.0277777777777778}*x26*x28*x39*x55 + V{-0.0277777777777778};
6111cell[5] = -x24*(-x51*x59 + cell[5] + V{0.0277777777777778}) + V{0.0277777777777778}*x26*x28*x39*x59 + V{-0.0277777777777778};
6112cell[6] = -x24*(-x51*x62 + cell[6] + V{0.0277777777777778}) + V{0.0277777777777778}*x26*x28*x39*x62 + V{-0.0277777777777778};
6113cell[7] = -x24*(-x51*x67 + cell[7] + V{0.0277777777777778}) + V{0.0277777777777778}*x26*x28*x39*x67 + V{-0.0277777777777778};
6114cell[8] = -x24*(-x51*x71 + cell[8] + V{0.0277777777777778}) + V{0.0277777777777778}*x26*x28*x39*x71 + V{-0.0277777777777778};
6115cell[9] = -x24*(-x51*x74 + cell[9] + V{0.0277777777777778}) + V{0.0277777777777778}*x26*x28*x39*x74 + V{-0.0277777777777778};
6116cell[10] = -x24*(x40*x79 + cell[10] + V{0.0555555555555556}) - x79*x80 + V{-0.0555555555555556};
6117cell[11] = -x24*(x40*x83 + cell[11] + V{0.0555555555555556}) - x80*x83 + V{-0.0555555555555556};
6118cell[12] = -x24*(x40*x85 + cell[12] + V{0.0555555555555556}) - x80*x85 + V{-0.0555555555555556};
6119cell[13] = -x24*(x51*x86 + cell[13] + V{0.0277777777777778}) - x86*x87 + V{-0.0277777777777778};
6120cell[14] = -x24*(-x51*x89 + cell[14] + V{0.0277777777777778}) + V{0.0277777777777778}*x26*x28*x39*x89 + V{-0.0277777777777778};
6121cell[15] = -x24*(x51*x90 + cell[15] + V{0.0277777777777778}) - x87*x90 + V{-0.0277777777777778};
6122cell[16] = -x24*(-x51*x92 + cell[16] + V{0.0277777777777778}) + V{0.0277777777777778}*x26*x28*x39*x92 + V{-0.0277777777777778};
6123cell[17] = -x24*(x51*x93 + cell[17] + V{0.0277777777777778}) - x87*x93 + V{-0.0277777777777778};
6124cell[18] = -x24*(-x51*x94 + cell[18] + V{0.0277777777777778}) + V{0.0277777777777778}*x26*x28*x39*x94 + V{-0.0277777777777778};
6125return { -x26*(x27 + V{1}*cell[0] + V{1}*cell[11] + V{1}*cell[12] + V{1}*cell[17] + V{1}*cell[18] + V{1}*cell[2] + V{1}*cell[3] + V{1}*cell[8] + V{1}*cell[9]) - x38, x30 + x32 + x34 };
6126}
6127
6128};
6129
6130template <typename... FIELDS>
6131struct ConstRhoBGK::type<descriptors::D3Q19<FIELDS...>,momenta::BasicDirichletVelocityBoundaryTuple<0,1>,equilibria::SecondOrder> {
6132
6133template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
6134CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
6135{
6136auto x22 = parameters.template get<olb::descriptors::OMEGA>();
6137auto x20 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(1);
6138auto x21 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(2);
6139auto x23 = parameters.template get<olb::statistics::AVERAGE_RHO>();
6140auto x19 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(0);
6141auto x24 = x22 + V{-1};
6142auto x25 = x19 + V{1};
6143auto x26 = V{1} / (x25);
6144auto x27 = V{2}*cell[10] + V{2}*cell[13] + V{2}*cell[14] + V{2}*cell[15] + V{2}*cell[16] + V{1};
6145auto x28 = x27 + cell[0] + cell[11] + cell[12] + cell[17] + cell[18] + cell[2] + cell[3] + cell[8] + cell[9];
6146auto x29 = x26*x28;
6147auto x30 = V{0.333333333333333}*x29;
6148auto x31 = x19*x19;
6149auto x32 = V{1.5}*x31;
6150auto x33 = x20*x20;
6151auto x34 = V{1.5}*x33;
6152auto x35 = x21*x21;
6153auto x36 = V{1.5}*x35;
6154auto x37 = x34 + x36 + V{-1};
6155auto x38 = x32 + x37;
6156auto x39 = -x25*(x23 + V{-1})/x28 + V{1};
6157auto x40 = V{0.0555555555555556}*x29;
6158auto x41 = V{3}*x19;
6159auto x42 = V{3}*x31;
6160auto x43 = x37 + x41 - x42;
6161auto x44 = x39*x40;
6162auto x45 = V{3}*x20;
6163auto x46 = V{3}*x33;
6164auto x47 = x32 + V{-1};
6165auto x48 = x36 + x45 - x46 + x47;
6166auto x49 = V{3}*x21;
6167auto x50 = V{3}*x35;
6168auto x51 = x34 + x47 + x49 - x50;
6169auto x52 = V{0.0277777777777778}*x29;
6170auto x53 = x19 + x20;
6171auto x54 = V{4.5}*(x53*x53);
6172auto x55 = x38 + x41;
6173auto x56 = x45 - x54 + x55;
6174auto x57 = x39*x52;
6175auto x58 = -x45;
6176auto x59 = x19 - x20;
6177auto x60 = -x59;
6178auto x61 = x55 + x58 - V{4.5}*x60*x60;
6179auto x62 = x19 + x21;
6180auto x63 = V{4.5}*(x62*x62);
6181auto x64 = x49 + x55 - x63;
6182auto x65 = -x49;
6183auto x66 = -x21;
6184auto x67 = x19 + x66;
6185auto x68 = -x67;
6186auto x69 = x55 + x65 - V{4.5}*x68*x68;
6187auto x70 = x20 + x21;
6188auto x71 = V{4.5}*(x70*x70);
6189auto x72 = x38 + x45;
6190auto x73 = x49 - x71 + x72;
6191auto x74 = x20 + x66;
6192auto x75 = -x74;
6193auto x76 = x65 + x72 - V{4.5}*x75*x75;
6194auto x77 = -x34;
6195auto x78 = V{1} - x36;
6196auto x79 = x77 + x78;
6197auto x80 = x41 + x79;
6198auto x81 = x42 + x80;
6199auto x82 = -x32;
6200auto x83 = x45 + x82;
6201auto x84 = x46 + x78 + x83;
6202auto x85 = x49 + x82;
6203auto x86 = x50 + x77 + x85 + V{1};
6204auto x87 = x54 + x80 + x83;
6205auto x88 = -x41;
6206auto x89 = x72 + x88 - V{4.5}*x59*x59;
6207auto x90 = x63 + x80 + x85;
6208auto x91 = x38 + x49;
6209auto x92 = x88 + x91 - V{4.5}*x67*x67;
6210auto x93 = x49 + x71 + x79 + x83;
6211auto x94 = x58 + x91 - V{4.5}*x74*x74;
6212cell[0] = -x24*(x30*x38 + cell[0] + V{0.333333333333333}) - x30*x38*x39 + V{-0.333333333333333};
6213cell[1] = -x24*(x40*x43 + cell[1] + V{0.0555555555555556}) - x43*x44 + V{-0.0555555555555556};
6214cell[2] = -x24*(x40*x48 + cell[2] + V{0.0555555555555556}) - x44*x48 + V{-0.0555555555555556};
6215cell[3] = -x24*(x40*x51 + cell[3] + V{0.0555555555555556}) - x44*x51 + V{-0.0555555555555556};
6216cell[4] = -x24*(x52*x56 + cell[4] + V{0.0277777777777778}) - x56*x57 + V{-0.0277777777777778};
6217cell[5] = -x24*(x52*x61 + cell[5] + V{0.0277777777777778}) - x57*x61 + V{-0.0277777777777778};
6218cell[6] = -x24*(x52*x64 + cell[6] + V{0.0277777777777778}) - x57*x64 + V{-0.0277777777777778};
6219cell[7] = -x24*(x52*x69 + cell[7] + V{0.0277777777777778}) - x57*x69 + V{-0.0277777777777778};
6220cell[8] = -x24*(x52*x73 + cell[8] + V{0.0277777777777778}) - x57*x73 + V{-0.0277777777777778};
6221cell[9] = -x24*(x52*x76 + cell[9] + V{0.0277777777777778}) - x57*x76 + V{-0.0277777777777778};
6222cell[10] = -x24*(-x40*x81 + cell[10] + V{0.0555555555555556}) + V{0.0555555555555556}*x26*x28*x39*x81 + V{-0.0555555555555556};
6223cell[11] = -x24*(-x40*x84 + cell[11] + V{0.0555555555555556}) + V{0.0555555555555556}*x26*x28*x39*x84 + V{-0.0555555555555556};
6224cell[12] = -x24*(-x40*x86 + cell[12] + V{0.0555555555555556}) + V{0.0555555555555556}*x26*x28*x39*x86 + V{-0.0555555555555556};
6225cell[13] = -x24*(-x52*x87 + cell[13] + V{0.0277777777777778}) + V{0.0277777777777778}*x26*x28*x39*x87 + V{-0.0277777777777778};
6226cell[14] = -x24*(x52*x89 + cell[14] + V{0.0277777777777778}) - x57*x89 + V{-0.0277777777777778};
6227cell[15] = -x24*(-x52*x90 + cell[15] + V{0.0277777777777778}) + V{0.0277777777777778}*x26*x28*x39*x90 + V{-0.0277777777777778};
6228cell[16] = -x24*(x52*x92 + cell[16] + V{0.0277777777777778}) - x57*x92 + V{-0.0277777777777778};
6229cell[17] = -x24*(-x52*x93 + cell[17] + V{0.0277777777777778}) + V{0.0277777777777778}*x26*x28*x39*x93 + V{-0.0277777777777778};
6230cell[18] = -x24*(x52*x94 + cell[18] + V{0.0277777777777778}) - x57*x94 + V{-0.0277777777777778};
6231return { -x23 + x26*(x27 + V{1}*cell[0] + V{1}*cell[11] + V{1}*cell[12] + V{1}*cell[17] + V{1}*cell[18] + V{1}*cell[2] + V{1}*cell[3] + V{1}*cell[8] + V{1}*cell[9]) + V{1}, x31 + x33 + x35 };
6232}
6233
6234};
6235
6236template <typename... FIELDS>
6237struct ConstRhoBGK::type<descriptors::D3Q19<FIELDS...>,momenta::BasicDirichletVelocityBoundaryTuple<1,-1>,equilibria::SecondOrder> {
6238
6239template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
6240CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
6241{
6242auto x22 = parameters.template get<olb::descriptors::OMEGA>();
6243auto x20 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(1);
6244auto x21 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(2);
6245auto x23 = parameters.template get<olb::statistics::AVERAGE_RHO>();
6246auto x19 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(0);
6247auto x24 = x22 + V{-1};
6248auto x25 = x20 + V{-1};
6249auto x26 = V{1} / (x25);
6250auto x27 = V{2}*cell[14] + V{2}*cell[2] + V{2}*cell[4] + V{2}*cell[8] + V{2}*cell[9] + V{1};
6251auto x28 = x27 + cell[0] + cell[10] + cell[12] + cell[15] + cell[16] + cell[1] + cell[3] + cell[6] + cell[7];
6252auto x29 = x26*x28;
6253auto x30 = x19*x19;
6254auto x31 = V{1.5}*x30;
6255auto x32 = x20*x20;
6256auto x33 = V{1.5}*x32;
6257auto x34 = x21*x21;
6258auto x35 = V{1.5}*x34;
6259auto x36 = x33 + x35 + V{-1};
6260auto x37 = x31 + x36;
6261auto x38 = x23 + V{-1};
6262auto x39 = x25*x38/x28 + V{1};
6263auto x40 = V{0.0555555555555556}*x29;
6264auto x41 = V{3}*x19;
6265auto x42 = V{3}*x30;
6266auto x43 = x36 + x41 - x42;
6267auto x44 = V{3}*x20;
6268auto x45 = V{3}*x32;
6269auto x46 = x31 + V{-1};
6270auto x47 = x35 + x44 - x45 + x46;
6271auto x48 = V{3}*x21;
6272auto x49 = V{3}*x34;
6273auto x50 = x33 + x46 + x48 - x49;
6274auto x51 = V{0.0277777777777778}*x29;
6275auto x52 = x19 + x20;
6276auto x53 = V{4.5}*(x52*x52);
6277auto x54 = x37 + x41;
6278auto x55 = x44 - x53 + x54;
6279auto x56 = -x44;
6280auto x57 = x19 - x20;
6281auto x58 = -x57;
6282auto x59 = x54 + x56 - V{4.5}*x58*x58;
6283auto x60 = x19 + x21;
6284auto x61 = V{4.5}*(x60*x60);
6285auto x62 = x48 + x54 - x61;
6286auto x63 = -x48;
6287auto x64 = -x21;
6288auto x65 = x19 + x64;
6289auto x66 = -x65;
6290auto x67 = x54 + x63 - V{4.5}*x66*x66;
6291auto x68 = x20 + x21;
6292auto x69 = V{4.5}*(x68*x68);
6293auto x70 = x37 + x44;
6294auto x71 = x48 - x69 + x70;
6295auto x72 = x20 + x64;
6296auto x73 = -x72;
6297auto x74 = x63 + x70 - V{4.5}*x73*x73;
6298auto x75 = -x33;
6299auto x76 = V{1} - x35;
6300auto x77 = x75 + x76;
6301auto x78 = x41 + x77;
6302auto x79 = x42 + x78;
6303auto x80 = x39*x40;
6304auto x81 = -x31;
6305auto x82 = x44 + x81;
6306auto x83 = x45 + x76 + x82;
6307auto x84 = x48 + x81;
6308auto x85 = x49 + x75 + x84 + V{1};
6309auto x86 = x53 + x78 + x82;
6310auto x87 = x39*x51;
6311auto x88 = -x41;
6312auto x89 = x70 + x88 - V{4.5}*x57*x57;
6313auto x90 = x61 + x78 + x84;
6314auto x91 = x37 + x48;
6315auto x92 = x88 + x91 - V{4.5}*x65*x65;
6316auto x93 = x48 + x69 + x77 + x82;
6317auto x94 = x56 + x91 - V{4.5}*x72*x72;
6318cell[0] = -x24*(-V{0.333333333333333}*x29*x37 + cell[0] + V{0.333333333333333}) + V{0.333333333333333}*x26*x28*x37*x39 + V{-0.333333333333333};
6319cell[1] = -x24*(-x40*x43 + cell[1] + V{0.0555555555555556}) + V{0.0555555555555556}*x26*x28*x39*x43 + V{-0.0555555555555556};
6320cell[2] = -x24*(-x40*x47 + cell[2] + V{0.0555555555555556}) + V{0.0555555555555556}*x26*x28*x39*x47 + V{-0.0555555555555556};
6321cell[3] = -x24*(-x40*x50 + cell[3] + V{0.0555555555555556}) + V{0.0555555555555556}*x26*x28*x39*x50 + V{-0.0555555555555556};
6322cell[4] = -x24*(-x51*x55 + cell[4] + V{0.0277777777777778}) + V{0.0277777777777778}*x26*x28*x39*x55 + V{-0.0277777777777778};
6323cell[5] = -x24*(-x51*x59 + cell[5] + V{0.0277777777777778}) + V{0.0277777777777778}*x26*x28*x39*x59 + V{-0.0277777777777778};
6324cell[6] = -x24*(-x51*x62 + cell[6] + V{0.0277777777777778}) + V{0.0277777777777778}*x26*x28*x39*x62 + V{-0.0277777777777778};
6325cell[7] = -x24*(-x51*x67 + cell[7] + V{0.0277777777777778}) + V{0.0277777777777778}*x26*x28*x39*x67 + V{-0.0277777777777778};
6326cell[8] = -x24*(-x51*x71 + cell[8] + V{0.0277777777777778}) + V{0.0277777777777778}*x26*x28*x39*x71 + V{-0.0277777777777778};
6327cell[9] = -x24*(-x51*x74 + cell[9] + V{0.0277777777777778}) + V{0.0277777777777778}*x26*x28*x39*x74 + V{-0.0277777777777778};
6328cell[10] = -x24*(x40*x79 + cell[10] + V{0.0555555555555556}) - x79*x80 + V{-0.0555555555555556};
6329cell[11] = -x24*(x40*x83 + cell[11] + V{0.0555555555555556}) - x80*x83 + V{-0.0555555555555556};
6330cell[12] = -x24*(x40*x85 + cell[12] + V{0.0555555555555556}) - x80*x85 + V{-0.0555555555555556};
6331cell[13] = -x24*(x51*x86 + cell[13] + V{0.0277777777777778}) - x86*x87 + V{-0.0277777777777778};
6332cell[14] = -x24*(-x51*x89 + cell[14] + V{0.0277777777777778}) + V{0.0277777777777778}*x26*x28*x39*x89 + V{-0.0277777777777778};
6333cell[15] = -x24*(x51*x90 + cell[15] + V{0.0277777777777778}) - x87*x90 + V{-0.0277777777777778};
6334cell[16] = -x24*(-x51*x92 + cell[16] + V{0.0277777777777778}) + V{0.0277777777777778}*x26*x28*x39*x92 + V{-0.0277777777777778};
6335cell[17] = -x24*(x51*x93 + cell[17] + V{0.0277777777777778}) - x87*x93 + V{-0.0277777777777778};
6336cell[18] = -x24*(-x51*x94 + cell[18] + V{0.0277777777777778}) + V{0.0277777777777778}*x26*x28*x39*x94 + V{-0.0277777777777778};
6337return { -x26*(x27 + V{1}*cell[0] + V{1}*cell[10] + V{1}*cell[12] + V{1}*cell[15] + V{1}*cell[16] + V{1}*cell[1] + V{1}*cell[3] + V{1}*cell[6] + V{1}*cell[7]) - x38, x30 + x32 + x34 };
6338}
6339
6340};
6341
6342template <typename... FIELDS>
6343struct ConstRhoBGK::type<descriptors::D3Q19<FIELDS...>,momenta::BasicDirichletVelocityBoundaryTuple<1,1>,equilibria::SecondOrder> {
6344
6345template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
6346CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
6347{
6348auto x22 = parameters.template get<olb::descriptors::OMEGA>();
6349auto x20 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(1);
6350auto x21 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(2);
6351auto x23 = parameters.template get<olb::statistics::AVERAGE_RHO>();
6352auto x19 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(0);
6353auto x24 = x22 + V{-1};
6354auto x25 = x20 + V{1};
6355auto x26 = V{1} / (x25);
6356auto x27 = V{2}*cell[11] + V{2}*cell[13] + V{2}*cell[17] + V{2}*cell[18] + V{2}*cell[5] + V{1};
6357auto x28 = x27 + cell[0] + cell[10] + cell[12] + cell[15] + cell[16] + cell[1] + cell[3] + cell[6] + cell[7];
6358auto x29 = x26*x28;
6359auto x30 = V{0.333333333333333}*x29;
6360auto x31 = x19*x19;
6361auto x32 = V{1.5}*x31;
6362auto x33 = x20*x20;
6363auto x34 = V{1.5}*x33;
6364auto x35 = x21*x21;
6365auto x36 = V{1.5}*x35;
6366auto x37 = x34 + x36 + V{-1};
6367auto x38 = x32 + x37;
6368auto x39 = -x25*(x23 + V{-1})/x28 + V{1};
6369auto x40 = V{0.0555555555555556}*x29;
6370auto x41 = V{3}*x19;
6371auto x42 = V{3}*x31;
6372auto x43 = x37 + x41 - x42;
6373auto x44 = x39*x40;
6374auto x45 = V{3}*x20;
6375auto x46 = V{3}*x33;
6376auto x47 = x32 + V{-1};
6377auto x48 = x36 + x45 - x46 + x47;
6378auto x49 = V{3}*x21;
6379auto x50 = V{3}*x35;
6380auto x51 = x34 + x47 + x49 - x50;
6381auto x52 = V{0.0277777777777778}*x29;
6382auto x53 = x19 + x20;
6383auto x54 = V{4.5}*(x53*x53);
6384auto x55 = x38 + x41;
6385auto x56 = x45 - x54 + x55;
6386auto x57 = x39*x52;
6387auto x58 = -x45;
6388auto x59 = x19 - x20;
6389auto x60 = -x59;
6390auto x61 = x55 + x58 - V{4.5}*x60*x60;
6391auto x62 = x19 + x21;
6392auto x63 = V{4.5}*(x62*x62);
6393auto x64 = x49 + x55 - x63;
6394auto x65 = -x49;
6395auto x66 = -x21;
6396auto x67 = x19 + x66;
6397auto x68 = -x67;
6398auto x69 = x55 + x65 - V{4.5}*x68*x68;
6399auto x70 = x20 + x21;
6400auto x71 = V{4.5}*(x70*x70);
6401auto x72 = x38 + x45;
6402auto x73 = x49 - x71 + x72;
6403auto x74 = x20 + x66;
6404auto x75 = -x74;
6405auto x76 = x65 + x72 - V{4.5}*x75*x75;
6406auto x77 = -x34;
6407auto x78 = V{1} - x36;
6408auto x79 = x77 + x78;
6409auto x80 = x41 + x79;
6410auto x81 = x42 + x80;
6411auto x82 = -x32;
6412auto x83 = x45 + x82;
6413auto x84 = x46 + x78 + x83;
6414auto x85 = x49 + x82;
6415auto x86 = x50 + x77 + x85 + V{1};
6416auto x87 = x54 + x80 + x83;
6417auto x88 = -x41;
6418auto x89 = x72 + x88 - V{4.5}*x59*x59;
6419auto x90 = x63 + x80 + x85;
6420auto x91 = x38 + x49;
6421auto x92 = x88 + x91 - V{4.5}*x67*x67;
6422auto x93 = x49 + x71 + x79 + x83;
6423auto x94 = x58 + x91 - V{4.5}*x74*x74;
6424cell[0] = -x24*(x30*x38 + cell[0] + V{0.333333333333333}) - x30*x38*x39 + V{-0.333333333333333};
6425cell[1] = -x24*(x40*x43 + cell[1] + V{0.0555555555555556}) - x43*x44 + V{-0.0555555555555556};
6426cell[2] = -x24*(x40*x48 + cell[2] + V{0.0555555555555556}) - x44*x48 + V{-0.0555555555555556};
6427cell[3] = -x24*(x40*x51 + cell[3] + V{0.0555555555555556}) - x44*x51 + V{-0.0555555555555556};
6428cell[4] = -x24*(x52*x56 + cell[4] + V{0.0277777777777778}) - x56*x57 + V{-0.0277777777777778};
6429cell[5] = -x24*(x52*x61 + cell[5] + V{0.0277777777777778}) - x57*x61 + V{-0.0277777777777778};
6430cell[6] = -x24*(x52*x64 + cell[6] + V{0.0277777777777778}) - x57*x64 + V{-0.0277777777777778};
6431cell[7] = -x24*(x52*x69 + cell[7] + V{0.0277777777777778}) - x57*x69 + V{-0.0277777777777778};
6432cell[8] = -x24*(x52*x73 + cell[8] + V{0.0277777777777778}) - x57*x73 + V{-0.0277777777777778};
6433cell[9] = -x24*(x52*x76 + cell[9] + V{0.0277777777777778}) - x57*x76 + V{-0.0277777777777778};
6434cell[10] = -x24*(-x40*x81 + cell[10] + V{0.0555555555555556}) + V{0.0555555555555556}*x26*x28*x39*x81 + V{-0.0555555555555556};
6435cell[11] = -x24*(-x40*x84 + cell[11] + V{0.0555555555555556}) + V{0.0555555555555556}*x26*x28*x39*x84 + V{-0.0555555555555556};
6436cell[12] = -x24*(-x40*x86 + cell[12] + V{0.0555555555555556}) + V{0.0555555555555556}*x26*x28*x39*x86 + V{-0.0555555555555556};
6437cell[13] = -x24*(-x52*x87 + cell[13] + V{0.0277777777777778}) + V{0.0277777777777778}*x26*x28*x39*x87 + V{-0.0277777777777778};
6438cell[14] = -x24*(x52*x89 + cell[14] + V{0.0277777777777778}) - x57*x89 + V{-0.0277777777777778};
6439cell[15] = -x24*(-x52*x90 + cell[15] + V{0.0277777777777778}) + V{0.0277777777777778}*x26*x28*x39*x90 + V{-0.0277777777777778};
6440cell[16] = -x24*(x52*x92 + cell[16] + V{0.0277777777777778}) - x57*x92 + V{-0.0277777777777778};
6441cell[17] = -x24*(-x52*x93 + cell[17] + V{0.0277777777777778}) + V{0.0277777777777778}*x26*x28*x39*x93 + V{-0.0277777777777778};
6442cell[18] = -x24*(x52*x94 + cell[18] + V{0.0277777777777778}) - x57*x94 + V{-0.0277777777777778};
6443return { -x23 + x26*(x27 + V{1}*cell[0] + V{1}*cell[10] + V{1}*cell[12] + V{1}*cell[15] + V{1}*cell[16] + V{1}*cell[1] + V{1}*cell[3] + V{1}*cell[6] + V{1}*cell[7]) + V{1}, x31 + x33 + x35 };
6444}
6445
6446};
6447
6448template <typename... FIELDS>
6449struct ConstRhoBGK::type<descriptors::D3Q19<FIELDS...>,momenta::BasicDirichletVelocityBoundaryTuple<2,-1>,equilibria::SecondOrder> {
6450
6451template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
6452CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
6453{
6454auto x22 = parameters.template get<olb::descriptors::OMEGA>();
6455auto x20 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(1);
6456auto x21 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(2);
6457auto x23 = parameters.template get<olb::statistics::AVERAGE_RHO>();
6458auto x19 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(0);
6459auto x24 = x22 + V{-1};
6460auto x25 = x21 + V{-1};
6461auto x26 = V{1} / (x25);
6462auto x27 = V{2}*cell[16] + V{2}*cell[18] + V{2}*cell[3] + V{2}*cell[6] + V{2}*cell[8] + V{1};
6463auto x28 = x27 + cell[0] + cell[10] + cell[11] + cell[13] + cell[14] + cell[1] + cell[2] + cell[4] + cell[5];
6464auto x29 = x26*x28;
6465auto x30 = x19*x19;
6466auto x31 = V{1.5}*x30;
6467auto x32 = x20*x20;
6468auto x33 = V{1.5}*x32;
6469auto x34 = x21*x21;
6470auto x35 = V{1.5}*x34;
6471auto x36 = x33 + x35 + V{-1};
6472auto x37 = x31 + x36;
6473auto x38 = x23 + V{-1};
6474auto x39 = x25*x38/x28 + V{1};
6475auto x40 = V{0.0555555555555556}*x29;
6476auto x41 = V{3}*x19;
6477auto x42 = V{3}*x30;
6478auto x43 = x36 + x41 - x42;
6479auto x44 = V{3}*x20;
6480auto x45 = V{3}*x32;
6481auto x46 = x31 + V{-1};
6482auto x47 = x35 + x44 - x45 + x46;
6483auto x48 = V{3}*x21;
6484auto x49 = V{3}*x34;
6485auto x50 = x33 + x46 + x48 - x49;
6486auto x51 = V{0.0277777777777778}*x29;
6487auto x52 = x19 + x20;
6488auto x53 = V{4.5}*(x52*x52);
6489auto x54 = x37 + x41;
6490auto x55 = x44 - x53 + x54;
6491auto x56 = -x44;
6492auto x57 = x19 - x20;
6493auto x58 = -x57;
6494auto x59 = x54 + x56 - V{4.5}*x58*x58;
6495auto x60 = x19 + x21;
6496auto x61 = V{4.5}*(x60*x60);
6497auto x62 = x48 + x54 - x61;
6498auto x63 = -x48;
6499auto x64 = -x21;
6500auto x65 = x19 + x64;
6501auto x66 = -x65;
6502auto x67 = x54 + x63 - V{4.5}*x66*x66;
6503auto x68 = x20 + x21;
6504auto x69 = V{4.5}*(x68*x68);
6505auto x70 = x37 + x44;
6506auto x71 = x48 - x69 + x70;
6507auto x72 = x20 + x64;
6508auto x73 = -x72;
6509auto x74 = x63 + x70 - V{4.5}*x73*x73;
6510auto x75 = -x33;
6511auto x76 = V{1} - x35;
6512auto x77 = x75 + x76;
6513auto x78 = x41 + x77;
6514auto x79 = x42 + x78;
6515auto x80 = x39*x40;
6516auto x81 = -x31;
6517auto x82 = x44 + x81;
6518auto x83 = x45 + x76 + x82;
6519auto x84 = x48 + x81;
6520auto x85 = x49 + x75 + x84 + V{1};
6521auto x86 = x53 + x78 + x82;
6522auto x87 = x39*x51;
6523auto x88 = -x41;
6524auto x89 = x70 + x88 - V{4.5}*x57*x57;
6525auto x90 = x61 + x78 + x84;
6526auto x91 = x37 + x48;
6527auto x92 = x88 + x91 - V{4.5}*x65*x65;
6528auto x93 = x48 + x69 + x77 + x82;
6529auto x94 = x56 + x91 - V{4.5}*x72*x72;
6530cell[0] = -x24*(-V{0.333333333333333}*x29*x37 + cell[0] + V{0.333333333333333}) + V{0.333333333333333}*x26*x28*x37*x39 + V{-0.333333333333333};
6531cell[1] = -x24*(-x40*x43 + cell[1] + V{0.0555555555555556}) + V{0.0555555555555556}*x26*x28*x39*x43 + V{-0.0555555555555556};
6532cell[2] = -x24*(-x40*x47 + cell[2] + V{0.0555555555555556}) + V{0.0555555555555556}*x26*x28*x39*x47 + V{-0.0555555555555556};
6533cell[3] = -x24*(-x40*x50 + cell[3] + V{0.0555555555555556}) + V{0.0555555555555556}*x26*x28*x39*x50 + V{-0.0555555555555556};
6534cell[4] = -x24*(-x51*x55 + cell[4] + V{0.0277777777777778}) + V{0.0277777777777778}*x26*x28*x39*x55 + V{-0.0277777777777778};
6535cell[5] = -x24*(-x51*x59 + cell[5] + V{0.0277777777777778}) + V{0.0277777777777778}*x26*x28*x39*x59 + V{-0.0277777777777778};
6536cell[6] = -x24*(-x51*x62 + cell[6] + V{0.0277777777777778}) + V{0.0277777777777778}*x26*x28*x39*x62 + V{-0.0277777777777778};
6537cell[7] = -x24*(-x51*x67 + cell[7] + V{0.0277777777777778}) + V{0.0277777777777778}*x26*x28*x39*x67 + V{-0.0277777777777778};
6538cell[8] = -x24*(-x51*x71 + cell[8] + V{0.0277777777777778}) + V{0.0277777777777778}*x26*x28*x39*x71 + V{-0.0277777777777778};
6539cell[9] = -x24*(-x51*x74 + cell[9] + V{0.0277777777777778}) + V{0.0277777777777778}*x26*x28*x39*x74 + V{-0.0277777777777778};
6540cell[10] = -x24*(x40*x79 + cell[10] + V{0.0555555555555556}) - x79*x80 + V{-0.0555555555555556};
6541cell[11] = -x24*(x40*x83 + cell[11] + V{0.0555555555555556}) - x80*x83 + V{-0.0555555555555556};
6542cell[12] = -x24*(x40*x85 + cell[12] + V{0.0555555555555556}) - x80*x85 + V{-0.0555555555555556};
6543cell[13] = -x24*(x51*x86 + cell[13] + V{0.0277777777777778}) - x86*x87 + V{-0.0277777777777778};
6544cell[14] = -x24*(-x51*x89 + cell[14] + V{0.0277777777777778}) + V{0.0277777777777778}*x26*x28*x39*x89 + V{-0.0277777777777778};
6545cell[15] = -x24*(x51*x90 + cell[15] + V{0.0277777777777778}) - x87*x90 + V{-0.0277777777777778};
6546cell[16] = -x24*(-x51*x92 + cell[16] + V{0.0277777777777778}) + V{0.0277777777777778}*x26*x28*x39*x92 + V{-0.0277777777777778};
6547cell[17] = -x24*(x51*x93 + cell[17] + V{0.0277777777777778}) - x87*x93 + V{-0.0277777777777778};
6548cell[18] = -x24*(-x51*x94 + cell[18] + V{0.0277777777777778}) + V{0.0277777777777778}*x26*x28*x39*x94 + V{-0.0277777777777778};
6549return { -x26*(x27 + V{1}*cell[0] + V{1}*cell[10] + V{1}*cell[11] + V{1}*cell[13] + V{1}*cell[14] + V{1}*cell[1] + V{1}*cell[2] + V{1}*cell[4] + V{1}*cell[5]) - x38, x30 + x32 + x34 };
6550}
6551
6552};
6553
6554template <typename... FIELDS>
6555struct ConstRhoBGK::type<descriptors::D3Q19<FIELDS...>,momenta::BasicDirichletVelocityBoundaryTuple<2,1>,equilibria::SecondOrder> {
6556
6557template <CONCEPT(MinimalCell) CELL, typename PARAMETERS, typename V=typename CELL::value_t>
6558CellStatistic<V> apply(CELL& cell, PARAMETERS& parameters) any_platform
6559{
6560auto x22 = parameters.template get<olb::descriptors::OMEGA>();
6561auto x20 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(1);
6562auto x21 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(2);
6563auto x23 = parameters.template get<olb::statistics::AVERAGE_RHO>();
6564auto x19 = cell.template getFieldComponent<olb::momenta::FixedVelocityMomentumGeneric::VELOCITY>(0);
6565auto x24 = x22 + V{-1};
6566auto x25 = x21 + V{1};
6567auto x26 = V{1} / (x25);
6568auto x27 = V{2}*cell[12] + V{2}*cell[15] + V{2}*cell[17] + V{2}*cell[7] + V{2}*cell[9] + V{1};
6569auto x28 = x27 + cell[0] + cell[10] + cell[11] + cell[13] + cell[14] + cell[1] + cell[2] + cell[4] + cell[5];
6570auto x29 = x26*x28;
6571auto x30 = V{0.333333333333333}*x29;
6572auto x31 = x19*x19;
6573auto x32 = V{1.5}*x31;
6574auto x33 = x20*x20;
6575auto x34 = V{1.5}*x33;
6576auto x35 = x21*x21;
6577auto x36 = V{1.5}*x35;
6578auto x37 = x34 + x36 + V{-1};
6579auto x38 = x32 + x37;
6580auto x39 = -x25*(x23 + V{-1})/x28 + V{1};
6581auto x40 = V{0.0555555555555556}*x29;
6582auto x41 = V{3}*x19;
6583auto x42 = V{3}*x31;
6584auto x43 = x37 + x41 - x42;
6585auto x44 = x39*x40;
6586auto x45 = V{3}*x20;
6587auto x46 = V{3}*x33;
6588auto x47 = x32 + V{-1};
6589auto x48 = x36 + x45 - x46 + x47;
6590auto x49 = V{3}*x21;
6591auto x50 = V{3}*x35;
6592auto x51 = x34 + x47 + x49 - x50;
6593auto x52 = V{0.0277777777777778}*x29;
6594auto x53 = x19 + x20;
6595auto x54 = V{4.5}*(x53*x53);
6596auto x55 = x38 + x41;
6597auto x56 = x45 - x54 + x55;
6598auto x57 = x39*x52;
6599auto x58 = -x45;
6600auto x59 = x19 - x20;
6601auto x60 = -x59;
6602auto x61 = x55 + x58 - V{4.5}*x60*x60;
6603auto x62 = x19 + x21;
6604auto x63 = V{4.5}*(x62*x62);
6605auto x64 = x49 + x55 - x63;
6606auto x65 = -x49;
6607auto x66 = -x21;
6608auto x67 = x19 + x66;
6609auto x68 = -x67;
6610auto x69 = x55 + x65 - V{4.5}*x68*x68;
6611auto x70 = x20 + x21;
6612auto x71 = V{4.5}*(x70*x70);
6613auto x72 = x38 + x45;
6614auto x73 = x49 - x71 + x72;
6615auto x74 = x20 + x66;
6616auto x75 = -x74;
6617auto x76 = x65 + x72 - V{4.5}*x75*x75;
6618auto x77 = -x34;
6619auto x78 = V{1} - x36;
6620auto x79 = x77 + x78;
6621auto x80 = x41 + x79;
6622auto x81 = x42 + x80;
6623auto x82 = -x32;
6624auto x83 = x45 + x82;
6625auto x84 = x46 + x78 + x83;
6626auto x85 = x49 + x82;
6627auto x86 = x50 + x77 + x85 + V{1};
6628auto x87 = x54 + x80 + x83;
6629auto x88 = -x41;
6630auto x89 = x72 + x88 - V{4.5}*x59*x59;
6631auto x90 = x63 + x80 + x85;
6632auto x91 = x38 + x49;
6633auto x92 = x88 + x91 - V{4.5}*x67*x67;
6634auto x93 = x49 + x71 + x79 + x83;
6635auto x94 = x58 + x91 - V{4.5}*x74*x74;
6636cell[0] = -x24*(x30*x38 + cell[0] + V{0.333333333333333}) - x30*x38*x39 + V{-0.333333333333333};
6637cell[1] = -x24*(x40*x43 + cell[1] + V{0.0555555555555556}) - x43*x44 + V{-0.0555555555555556};
6638cell[2] = -x24*(x40*x48 + cell[2] + V{0.0555555555555556}) - x44*x48 + V{-0.0555555555555556};
6639cell[3] = -x24*(x40*x51 + cell[3] + V{0.0555555555555556}) - x44*x51 + V{-0.0555555555555556};
6640cell[4] = -x24*(x52*x56 + cell[4] + V{0.0277777777777778}) - x56*x57 + V{-0.0277777777777778};
6641cell[5] = -x24*(x52*x61 + cell[5] + V{0.0277777777777778}) - x57*x61 + V{-0.0277777777777778};
6642cell[6] = -x24*(x52*x64 + cell[6] + V{0.0277777777777778}) - x57*x64 + V{-0.0277777777777778};
6643cell[7] = -x24*(x52*x69 + cell[7] + V{0.0277777777777778}) - x57*x69 + V{-0.0277777777777778};
6644cell[8] = -x24*(x52*x73 + cell[8] + V{0.0277777777777778}) - x57*x73 + V{-0.0277777777777778};
6645cell[9] = -x24*(x52*x76 + cell[9] + V{0.0277777777777778}) - x57*x76 + V{-0.0277777777777778};
6646cell[10] = -x24*(-x40*x81 + cell[10] + V{0.0555555555555556}) + V{0.0555555555555556}*x26*x28*x39*x81 + V{-0.0555555555555556};
6647cell[11] = -x24*(-x40*x84 + cell[11] + V{0.0555555555555556}) + V{0.0555555555555556}*x26*x28*x39*x84 + V{-0.0555555555555556};
6648cell[12] = -x24*(-x40*x86 + cell[12] + V{0.0555555555555556}) + V{0.0555555555555556}*x26*x28*x39*x86 + V{-0.0555555555555556};
6649cell[13] = -x24*(-x52*x87 + cell[13] + V{0.0277777777777778}) + V{0.0277777777777778}*x26*x28*x39*x87 + V{-0.0277777777777778};
6650cell[14] = -x24*(x52*x89 + cell[14] + V{0.0277777777777778}) - x57*x89 + V{-0.0277777777777778};
6651cell[15] = -x24*(-x52*x90 + cell[15] + V{0.0277777777777778}) + V{0.0277777777777778}*x26*x28*x39*x90 + V{-0.0277777777777778};
6652cell[16] = -x24*(x52*x92 + cell[16] + V{0.0277777777777778}) - x57*x92 + V{-0.0277777777777778};
6653cell[17] = -x24*(-x52*x93 + cell[17] + V{0.0277777777777778}) + V{0.0277777777777778}*x26*x28*x39*x93 + V{-0.0277777777777778};
6654cell[18] = -x24*(x52*x94 + cell[18] + V{0.0277777777777778}) - x57*x94 + V{-0.0277777777777778};
6655return { -x23 + x26*(x27 + V{1}*cell[0] + V{1}*cell[10] + V{1}*cell[11] + V{1}*cell[13] + V{1}*cell[14] + V{1}*cell[1] + V{1}*cell[2] + V{1}*cell[4] + V{1}*cell[5]) + V{1}, x31 + x33 + x35 };
6656}
6657
6658};
6659
6660
6661
6662
6663}
6664
6665}
6666
6667#endif
6668
6669#endif
Descriptor for all types of 2D and 3D lattices.
Tuple< BulkDensity, P1Momentum, ZeroStress, DefineToNEq > P1Tuple
Definition aliases.h:210
Tuple< BulkDensity, BulkMomentum, BulkStress, DefineToNEq > BulkTuple
Standard computation of momenta from the populations in the bulk.
Definition aliases.h:41
Tuple< VelocityBoundaryDensity< direction, orientation >, FixedVelocityMomentumGeneric, RegularizedBoundaryStress< direction, orientation >, DefineSeparately > RegularizedVelocityBoundaryTuple
Regularized velocity boundary node.
Definition aliases.h:109
Tuple< VelocityBoundaryDensity< direction, orientation >, FixedVelocityMomentumGeneric, BulkStress, DefineSeparately > BasicDirichletVelocityBoundaryTuple
Velocity boundary node.
Definition aliases.h:128
Tuple< BulkDensity, PoissonMomentum, ZeroStress, DefineToNEq > PoissonTuple
Definition aliases.h:203
Top level namespace for all of OpenLB.
#define any_platform
Define preprocessor macros for device-side functions, constant storage.
Definition platform.h:78
CellStatistic< V > apply(CELL &cell, PARAMETERS &parameters) any_platform
Definition collision.h:65
typename meta::list< descriptors::OMEGA > parameters
Definition collision.h:54
CellStatistic< V > apply(CELL &cell, PARAMETERS &parameters) any_platform
Definition collision.h:159
typename meta::list< descriptors::OMEGA, statistics::AVERAGE_RHO > parameters
Definition collision.h:147
CellStatistic< V > apply(CELL &cell, PARAMETERS &parameters) any_platform
Definition collision.h:370
typename meta::list< SCATTERING, ABSORPTION > parameters
Definition collision.h:359
CellStatistic< V > apply(CELL &cell, PARAMETERS &parameters) any_platform
Definition collision.h:192
typename meta::list< OMEGA > parameters
Definition collision.h:181
CellStatistic< V > apply(CELL &cell, PARAMETERS &parameters) any_platform
Definition collision.h:340
typename meta::list< descriptors::OMEGA, SINK > parameters
Definition collision.h:329
CellStatistic< V > apply(CELL &cell, PARAMETERS &parameters) any_platform
Definition collision.h:91
typename meta::list< descriptors::OMEGA > parameters
Definition collision.h:79
CellStatistic< V > apply(CELL &cell, PARAMETERS &parameters) any_platform
Definition collision.h:220
typename meta::list< descriptors::OMEGA, MAGIC > parameters
Definition collision.h:208