OpenLB 1.8.1
Loading...
Searching...
No Matches
olb::dynamics::CSE< dynamics::Tuple< T, descriptors::D3Q19< FIELDS... >, momenta::Tuple< momenta::BulkDensity, momenta::FixedVelocityMomentum, momenta::BulkStress, momenta::DefineUSeparately >, equilibria::SecondOrder, collision::BGK, forcing::MCGuo< momenta::Identity > > > Struct Template Reference

#include <8981ae33b5f6da4bc4bf48729cf9f80a3ab3e11ec719c4144ddf09f12d1a543d.cse.h>

+ Collaboration diagram for olb::dynamics::CSE< dynamics::Tuple< T, descriptors::D3Q19< FIELDS... >, momenta::Tuple< momenta::BulkDensity, momenta::FixedVelocityMomentum, momenta::BulkStress, momenta::DefineUSeparately >, equilibria::SecondOrder, collision::BGK, forcing::MCGuo< momenta::Identity > > >:

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::D3Q19< FIELDS... >, momenta::Tuple< momenta::BulkDensity, momenta::FixedVelocityMomentum, momenta::BulkStress, momenta::DefineUSeparately >, equilibria::SecondOrder, collision::BGK, forcing::MCGuo< momenta::Identity > > >

Definition at line 38 of file 8981ae33b5f6da4bc4bf48729cf9f80a3ab3e11ec719c4144ddf09f12d1a543d.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::D3Q19< FIELDS... >, momenta::Tuple< momenta::BulkDensity, momenta::FixedVelocityMomentum, momenta::BulkStress, momenta::DefineUSeparately >, equilibria::SecondOrder, collision::BGK, forcing::MCGuo< momenta::Identity > > >::collide ( CELL & cell,
PARAMETERS & parameters )
inline

Definition at line 40 of file 8981ae33b5f6da4bc4bf48729cf9f80a3ab3e11ec719c4144ddf09f12d1a543d.cse.h.

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

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