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::BGK, forcing::fsi::HLBM > > Struct Template Reference

#include <6c18c57dbf6124f241e5d4d5bbda6ab781f5ce214108cb33f511ece9f8e92657.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::BGK, forcing::fsi::HLBM > >:

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::BGK, forcing::fsi::HLBM > >

Definition at line 38 of file 6c18c57dbf6124f241e5d4d5bbda6ab781f5ce214108cb33f511ece9f8e92657.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::BGK, forcing::fsi::HLBM > >::collide ( CELL & cell,
PARAMETERS & parameters )
inline

Definition at line 40 of file 6c18c57dbf6124f241e5d4d5bbda6ab781f5ce214108cb33f511ece9f8e92657.cse.h.

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

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