OpenLB 1.8.1
Loading...
Searching...
No Matches
olb::dynamics::CSE< dynamics::Tuple< T, descriptors::D2Q9< FIELDS... >, momenta::Tuple< momenta::BulkDensity, momenta::BulkMomentum, momenta::BulkStress, momenta::DefineToNEq >, equilibria::SecondOrder, collision::SmagorinskyEffectiveOmega< collision::BGK >, forcing::Guo< momenta::ForcedWithStress > > > Struct Template Reference

#include <c3c9a47e0b09367e0f1fabbe0f7e28ca4c77e9235b1d6b687f83e765a1d4ba8a.cse.h>

+ Collaboration diagram for olb::dynamics::CSE< dynamics::Tuple< T, descriptors::D2Q9< FIELDS... >, momenta::Tuple< momenta::BulkDensity, momenta::BulkMomentum, momenta::BulkStress, momenta::DefineToNEq >, equilibria::SecondOrder, collision::SmagorinskyEffectiveOmega< collision::BGK >, forcing::Guo< momenta::ForcedWithStress > > >:

Public Member Functions

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

Detailed Description

template<typename T, typename... FIELDS>
struct olb::dynamics::CSE< dynamics::Tuple< T, descriptors::D2Q9< FIELDS... >, momenta::Tuple< momenta::BulkDensity, momenta::BulkMomentum, momenta::BulkStress, momenta::DefineToNEq >, equilibria::SecondOrder, collision::SmagorinskyEffectiveOmega< collision::BGK >, forcing::Guo< momenta::ForcedWithStress > > >

Definition at line 38 of file c3c9a47e0b09367e0f1fabbe0f7e28ca4c77e9235b1d6b687f83e765a1d4ba8a.cse.h.

Member Function Documentation

◆ collide()

template<typename T , typename... FIELDS>
template<concepts::Cell CELL, concepts::Parameters PARAMETERS, concepts::BaseType V = typename CELL::value_t>
CellStatistic< V > olb::dynamics::CSE< dynamics::Tuple< T, descriptors::D2Q9< FIELDS... >, momenta::Tuple< momenta::BulkDensity, momenta::BulkMomentum, momenta::BulkStress, momenta::DefineToNEq >, equilibria::SecondOrder, collision::SmagorinskyEffectiveOmega< collision::BGK >, forcing::Guo< momenta::ForcedWithStress > > >::collide ( CELL & cell,
PARAMETERS & parameters )
inline

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

40 {
41auto x12 = parameters.template get<collision::LES::SMAGORINSKY>();
42auto x10 = cell.template getFieldComponent<descriptors::FORCE>(1);
43auto x9 = cell.template getFieldComponent<descriptors::FORCE>(0);
44auto x11 = parameters.template get<descriptors::OMEGA>();
45auto x13 = cell[2] + cell[3];
46auto x14 = cell[7] + cell[8];
47auto x15 = cell[0] + cell[1] + cell[4] + cell[5] + cell[6] + x13 + x14;
48auto x16 = x15 + V{1};
49auto x17 = V{1} / (x16);
50auto x18 = cell[1] - cell[5];
51auto x19 = -cell[6] - cell[7] + x13 + x18;
52auto x20 = x17*(x15 + V{1});
53auto x21 = -V{0.333333333333333}*cell[0] + V{0.666666666666667}*cell[1] + V{0.666666666666667}*cell[3] + V{0.666666666666667}*cell[5] + V{0.666666666666667}*cell[7];
54auto x22 = V{0.666666666666667}*cell[2] - V{0.333333333333333}*cell[4] + V{0.666666666666667}*cell[6] - V{0.333333333333333}*cell[8] - x17*x19*x19 - x19*x20*x9 + x21;
55auto x23 = -cell[3] - cell[4] + x14 + x18;
56auto x24 = -V{0.333333333333333}*cell[2] + V{0.666666666666667}*cell[4] - V{0.333333333333333}*cell[6] + V{0.666666666666667}*cell[8] + x10*x20*x23 - x17*x23*x23 + x21;
57auto x25 = V{1}*cell[3];
58auto x26 = V{1}*cell[1];
59auto x27 = x20*(-x10*x19 + x23*x9);
60auto x28 = x17*x19*x23;
61auto x29 = V{1}*cell[7];
62auto x30 = -V{1}*cell[5];
63auto x31 = x29 + x30;
64auto x32 = V{1} / (V{2.52268963608289}*util::sqrt(x17*(x12*x12)*util::sqrt((-x25 + x26 - V{0.5}*x27 - V{1}*x28 - x31)*(V{2}*cell[1] - V{2}*cell[3] + V{2}*cell[5] - V{2}*cell[7] - V{1}*x27 - V{2}*x28) + V{1}*(x22*x22) + V{1}*(x24*x24)) + V{0.0392836979096202}/((x11)*(x11))) + V{0.5}/x11);
65auto x33 = V{1}*cell[8];
66auto x34 = V{1}*cell[4];
67auto x35 = V{0.5}*x10 + x17*(-x25 + x26 + x31 + x33 - x34);
68auto x36 = x35*x35;
69auto x37 = V{1.5}*x36;
70auto x38 = V{0.5}*x9;
71auto x39 = V{1}*cell[2] - V{1}*cell[6] + x25 + x26 - x29 + x30;
72auto x40 = -x39;
73auto x41 = x17*x40 + x38;
74auto x42 = x37 + V{-1} + V{1.5}*(x41*x41);
75auto x43 = V{1} - x32;
76auto x44 = V{3}*cell[3];
77auto x45 = V{3}*cell[1] - V{3}*cell[5];
78auto x46 = V{1.5}*x10 + x17*(-V{3}*cell[4] + V{3}*cell[7] + V{3}*cell[8] - x44 + x45);
79auto x47 = x10*x46;
80auto x48 = V{1.5}*x9;
81auto x49 = V{3}*cell[2] - V{3}*cell[6] - V{3}*cell[7] + x44 + x45;
82auto x50 = -x17*x49;
83auto x51 = x48 + x50;
84auto x52 = V{1} - V{0.5}*x32;
85auto x53 = 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};
86auto x54 = -x48;
87auto x55 = x17*x49;
88auto x56 = x17*x39;
89auto x57 = x35 - x38;
90auto x58 = V{4.5}*cell[3];
91auto x59 = V{4.5}*cell[7];
92auto x60 = V{4.5}*cell[1] - V{4.5}*cell[5];
93auto x61 = V{4.5}*cell[2] - V{4.5}*cell[6] + x58 - x59 + x60;
94auto x62 = x17*x61;
95auto x63 = V{2.25}*x9;
96auto x64 = V{2.25}*x10 + x17*(-V{4.5}*cell[4] + V{4.5}*cell[8] - x58 + x59 + x60);
97auto x65 = -x63 + x64;
98auto x66 = x38 - x56;
99auto x67 = x66*x66;
100auto x68 = -x37 - V{1.5}*x67 + V{1};
101auto x69 = x46 + x68;
102auto x70 = V{4.5}*x9;
103auto x71 = V{9}*cell[3];
104auto x72 = V{9}*cell[7];
105auto x73 = V{9}*cell[1] - V{9}*cell[5];
106auto x74 = V{9}*cell[2] - V{9}*cell[6] + x71 - x72 + x73;
107auto x75 = x17*x74;
108auto x76 = V{3}*x10;
109auto x77 = V{6}*cell[7];
110auto x78 = V{6}*cell[3];
111auto x79 = V{6}*cell[1] - V{6}*cell[5];
112auto x80 = x17*(-V{6}*cell[4] + V{6}*cell[8] + x77 - x78 + x79);
113auto x81 = x76 + x80;
114auto x82 = x81 + V{3};
115auto x83 = V{3}*x9;
116auto x84 = x17*(V{6}*cell[2] - V{6}*cell[6] - x77 + x78 + x79);
117auto x85 = -x83 + x84;
118auto x86 = x85 + V{3};
119auto x87 = V{4.5}*x10 + x17*(-V{9}*cell[4] + V{9}*cell[8] - x71 + x72 + x73);
120auto x88 = V{0.0277777777777778}*x16;
121auto x89 = 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};
122auto x90 = -x61;
123auto x91 = x17*x90 + x63;
124auto x92 = x42 + x51;
125auto x93 = V{0.111111111111111}*x16;
126auto x94 = x81 + V{-3};
127auto x95 = x70 - x75;
128auto x96 = x83 - x84;
129auto x97 = x87 + V{-3};
130auto x98 = x35*x64;
131auto x99 = x42 + x46;
132auto x100 = x48 - x55;
133auto x101 = -x100*x9;
134auto x102 = -x62 + x63;
135auto x103 = x100 + x68;
136auto x104 = x96 + V{3};
137auto x0 = V{1}*cell[0]*x43 - V{0.444444444444444}*x16*x52*(x47 + x51*x9) - x32*(x42*(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{0.444444444444444});
138auto x1 = x26*x43 + x32*(x53*(x54 + x55 + x69 + (x56 + x57)*(x62 + x65)) + V{-0.0277777777777778}) + x52*x88*(x10*(-x70 + x75 + x82) - x9*(x86 + x87));
139auto x2 = V{1}*cell[2]*x43 - x32*(x89*(-x41*x91 + x92) + V{0.111111111111111}) - x52*x93*(x47 + x86*x9);
140auto x3 = x25*x43 - x32*(x53*(x46 + x92 - (x35 + x41)*(x64 + x91)) + V{0.0277777777777778}) + x52*x88*(x10*(x94 + x95) + x9*(x96 + x97));
141auto x4 = -x32*(x89*(-x98 + x99) + V{0.111111111111111}) + x34*x43 + x52*x93*(x10*x94 + x101);
142auto x5 = V{1}*cell[5]*x43 - x32*(x53*(-x50 + x54 + x99 - (x17*x40 - x57)*(x17*x90 - x65)) + V{0.0277777777777778}) - x52*x88*(x10*(-x17*x74 + x70 - x76 - x80 + V{3}) - x9*(-x85 - x97));
143auto x6 = V{1}*cell[6]*x43 + x32*(x89*(x102*x66 + x103) + V{-0.111111111111111}) - x52*x93*(-x104*x9 + x47);
144auto x7 = x29*x43 + x32*(x53*(x103 + x46 + (x102 + x64)*(x35 + x66)) + V{-0.0277777777777778}) + x52*x88*(x10*(x82 + x95) + x9*(x104 + x87));
145auto x8 = x32*(x89*(x69 + x98) + V{-0.111111111111111}) + x33*x43 + x52*x93*(x10*x82 + x101);
146cell[0] = x0;
147cell[1] = x1;
148cell[2] = x2;
149cell[3] = x3;
150cell[4] = x4;
151cell[5] = x5;
152cell[6] = x6;
153cell[7] = x7;
154cell[8] = x8;
155return { x16, x36 + x67 };
156}
Expr sqrt(Expr x)
Definition expr.cpp:225

References olb::util::sqrt().

+ Here is the call graph for this function:

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