OpenLB 1.8.1
Loading...
Searching...
No Matches
olb::dynamics::CSE< CombinedRLBdynamics< T, descriptors::D2Q9< FIELDS... >, dynamics::Tuple< T, descriptors::D2Q9< FIELDS... >, momenta::Tuple< momenta::BulkDensity, momenta::BulkMomentum, momenta::BulkStress, momenta::DefineToNEq >, equilibria::SecondOrder, collision::SaveVelocity< collision::BGK >, dynamics::DefaultCombination >, momenta::Tuple< momenta::FixedDensity, momenta::FixedPressureMomentum< 0, -1 >, momenta::RegularizedBoundaryStress< 0, -1 >, momenta::DefineSeparately > > > Struct Template Reference

#include <4a6a87e4bc3e90463db2df427813e42f3442ac63d629b10c1a9c7fb5e0d0b295.cse.h>

+ Collaboration diagram for olb::dynamics::CSE< CombinedRLBdynamics< T, descriptors::D2Q9< FIELDS... >, dynamics::Tuple< T, descriptors::D2Q9< FIELDS... >, momenta::Tuple< momenta::BulkDensity, momenta::BulkMomentum, momenta::BulkStress, momenta::DefineToNEq >, equilibria::SecondOrder, collision::SaveVelocity< collision::BGK >, dynamics::DefaultCombination >, momenta::Tuple< momenta::FixedDensity, momenta::FixedPressureMomentum< 0, -1 >, momenta::RegularizedBoundaryStress< 0, -1 >, momenta::DefineSeparately > > >:

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< CombinedRLBdynamics< T, descriptors::D2Q9< FIELDS... >, dynamics::Tuple< T, descriptors::D2Q9< FIELDS... >, momenta::Tuple< momenta::BulkDensity, momenta::BulkMomentum, momenta::BulkStress, momenta::DefineToNEq >, equilibria::SecondOrder, collision::SaveVelocity< collision::BGK >, dynamics::DefaultCombination >, momenta::Tuple< momenta::FixedDensity, momenta::FixedPressureMomentum< 0, -1 >, momenta::RegularizedBoundaryStress< 0, -1 >, momenta::DefineSeparately > > >

Definition at line 38 of file 4a6a87e4bc3e90463db2df427813e42f3442ac63d629b10c1a9c7fb5e0d0b295.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< CombinedRLBdynamics< T, descriptors::D2Q9< FIELDS... >, dynamics::Tuple< T, descriptors::D2Q9< FIELDS... >, momenta::Tuple< momenta::BulkDensity, momenta::BulkMomentum, momenta::BulkStress, momenta::DefineToNEq >, equilibria::SecondOrder, collision::SaveVelocity< collision::BGK >, dynamics::DefaultCombination >, momenta::Tuple< momenta::FixedDensity, momenta::FixedPressureMomentum< 0, -1 >, momenta::RegularizedBoundaryStress< 0, -1 >, momenta::DefineSeparately > > >::collide ( CELL & cell,
PARAMETERS & parameters )
inline

Definition at line 40 of file 4a6a87e4bc3e90463db2df427813e42f3442ac63d629b10c1a9c7fb5e0d0b295.cse.h.

40 {
41auto x11 = cell.template getFieldComponent<momenta::FixedDensity::RHO>(0);
42auto x13 = cell.template getFieldComponent<momenta::FixedPressureMomentum<0, -1>::VELOCITY>(1);
43auto x14 = parameters.template get<descriptors::OMEGA>();
44auto x9 = x14 + V{-1};
45auto x10 = V{0.0740740740740741}*x11;
46auto x12 = V{1} / (x11);
47auto x15 = x12*(cell[0] + V{2}*cell[1] + V{2}*cell[2] + V{2}*cell[3] + cell[4] + cell[8] + V{1});
48auto x16 = V{1} - x15;
49auto x17 = x13 + x16;
50auto x18 = -x17;
51auto x19 = V{3}*x13;
52auto x20 = x12*(V{3}*cell[0] + V{6}*cell[1] + V{6}*cell[2] + V{6}*cell[3] + V{3}*cell[4] + V{3}*cell[8] + V{3});
53auto x21 = V{2} - x20;
54auto x22 = x13*x13;
55auto x23 = V{1.5}*x22;
56auto x24 = x16*x16;
57auto x25 = V{1.5}*x24;
58auto x26 = x23 + x25;
59auto x27 = x21 + x26;
60auto x28 = x19 + x27;
61auto x29 = x28 - V{4.5}*x18*x18;
62auto x30 = -x19;
63auto x31 = x13 + x15 + V{-1};
64auto x32 = V{4.5}*(x31*x31);
65auto x33 = -x32;
66auto x34 = x27 + x30 + x33;
67auto x35 = -x16;
68auto x36 = x27 - V{4.5}*x35*x35;
69auto x37 = V{0.444444444444444}*x11;
70auto x38 = x23 + V{-1};
71auto x39 = x25 + x38;
72auto x40 = x37*x39;
73auto x41 = V{3}*x22 + V{1};
74auto x42 = -x25;
75auto x43 = x19 + x42;
76auto x44 = x41 + x43;
77auto x45 = x10*x44;
78auto x46 = x30 + x41;
79auto x47 = x42 + x46;
80auto x48 = x10*x47;
81auto x49 = V{2.66666666666667}*cell[1] + V{1.33333333333333}*cell[2] + V{2.66666666666667}*cell[3] + V{0.666666666666667}*cell[4] + V{0.666666666666667}*cell[8] + x10*x29 + x10*x34 + V{0.148148148148148}*x11*x36 + x40 - x45 - x48 + V{0.888888888888889};
82auto x50 = -x39;
83auto x51 = V{0.222222222222222}*x11;
84auto x52 = -x36;
85auto x53 = V{0.0555555555555555}*x11;
86auto x54 = x20 - x23 + x32 + x43 + V{-2};
87auto x55 = -x29;
88auto x56 = V{0.111111111111111}*x11;
89auto x57 = V{1.33226762955019e-15}*cell[1] + V{6.66133814775094e-16}*cell[2] + V{8.88178419700125e-16}*cell[3] + V{1.66533453693773e-16}*cell[4] + V{1.66533453693773e-16}*cell[8] + x44*x56 + x47*x56 + V{1.11022302462516e-16};
90auto x58 = x12*(x37*x50 + x51*x52 + x53*x54 + x53*x55 + x57);
91auto x59 = V{1} - x58;
92auto x60 = x59*x59;
93auto x61 = V{1.5}*x60;
94auto x62 = V{0.444444444444444}*x14*(x11*(x38 + x61) + V{1});
95auto x63 = V{0.00462962962962963}*x11;
96auto x64 = V{0.00462962962962963}*x11;
97auto x65 = -V{4.5}*x17*x17;
98auto x66 = x28 + x65;
99auto x67 = x23 - V{3}*x24;
100auto x68 = x21 + x67;
101auto x69 = V{0.00925925925925926}*x11;
102auto x70 = V{0.166666666666667}*cell[2] + V{0.0833333333333333}*cell[4] + V{0.0833333333333333}*cell[8] + V{0.0185185185185185}*x11*x68 - x44*x69 - x47*x69 + V{0.0277777777777778};
103auto x71 = V{0.833333333333333}*cell[1] - V{0.166666666666667}*cell[3] - x64*x66 + x70;
104auto x72 = -x34*x63 + x71;
105auto x73 = V{0.0277777777777778}*x14;
106auto x74 = x58 + V{-1};
107auto x75 = x13 + x74;
108auto x76 = V{0.166666666666667}*x11;
109auto x77 = V{0.333333333333333}*x11;
110auto x78 = x12*(V{3.99680288865056e-15}*cell[1] + V{1.99840144432528e-15}*cell[2] + V{2.66453525910038e-15}*cell[3] + V{4.9960036108132e-16}*cell[4] + V{4.9960036108132e-16}*cell[8] + V{1.33333333333333}*x11*x50 + V{0.666666666666667}*x11*x52 + x44*x77 + x47*x77 + x54*x76 + x55*x76 + V{3.33066907387547e-16});
111auto x79 = x23 + x61 - x78 + V{2};
112auto x80 = x11*(x30 + x79 - V{4.5}*x75*x75) + V{1};
113auto x81 = V{0.0185185185185185}*x11;
114auto x82 = V{0.00925925925925926}*x11;
115auto x83 = V{0.333333333333333}*cell[1] + V{0.333333333333333}*cell[3] + x34*x82 + x66*x82 + V{-0.0555555555555555};
116auto x84 = V{0.666666666666667}*cell[2] - V{0.166666666666667}*cell[4] - V{0.166666666666667}*cell[8] + x44*x81 + x47*x81 + x83;
117auto x85 = -V{0.037037037037037}*x11*x68 + x84;
118auto x86 = V{0.111111111111111}*x14;
119auto x87 = x11*(x79 - V{4.5}*x74*x74) + V{1};
120auto x88 = -V{0.166666666666667}*cell[1] + V{0.833333333333333}*cell[3] - x34*x64 + x70;
121auto x89 = -x63*x66 + x88;
122auto x90 = x13 + x59;
123auto x91 = -x90;
124auto x92 = x11*(x19 + x79 - V{4.5}*x91*x91) + V{1};
125auto x93 = V{0.037037037037037}*x11;
126auto x94 = -V{0.333333333333333}*cell[2] + V{0.333333333333333}*cell[4] + V{0.333333333333333}*cell[8] - V{0.037037037037037}*x11*x68 + x83;
127auto x95 = x9*(-x44*x93 + x48 + x94);
128auto x96 = -x12*(-x34*x53 - x40 - x51*x68 - x53*x66 + x57) + V{1};
129auto x97 = x96*x96;
130auto x98 = -V{1.5}*x97;
131auto x99 = x11*(x46 + x98) + V{-1};
132auto x100 = V{0.0231481481481481}*x11;
133auto x101 = V{0.0277777777777778}*x11;
134auto x102 = x20 + V{-4};
135auto x103 = x102 + x26;
136auto x104 = -x75;
137auto x105 = x23 + x78 + V{-4};
138auto x106 = x105 + x61;
139auto x107 = x9*(x45 - x47*x93 + x94);
140auto x108 = x11*(x19 + x41 + x98) + V{-1};
141auto x109 = V{2}*x14 + V{-2};
142auto x110 = V{0.0555555555555556}*x14;
143cell[0] = x49*x9 - x62;
144cell[1] = -x72*x9 - x73*x80;
145cell[2] = -x85*x9 - x86*x87;
146cell[3] = -x73*x92 - x89*x9;
147cell[4] = x86*x99 - x95;
148cell[5] = -(x73*(x11*(x106 + x19 - V{4.5}*x104*x104) + V{1}) + x9*(x100*x34 - x101*(x103 + x19 + x33) + x71));
149cell[6] = -x86*(x11*(x105 - V{3}*x60) + V{1}) - x9*(V{0.0740740740740741}*x11*x68 - x56*(x102 + x67) + x84);
150cell[7] = -(x73*(x11*(x106 + x30 - V{4.5}*x90*x90) + V{1}) + x9*(x100*x66 - x101*(x103 + x30 + x65) + x88));
151cell[8] = -x107 + x108*x86;
152cell.template getFieldPointer<descriptors::VELOCITY>()[0] = -V{1}*x12*(-x107 + V{0.111111111111111}*x108*x14 - x109*x72 - x109*x85 - x109*x89 - x110*x80 - x110*x92 - V{0.222222222222222}*x14*x87 + V{0.111111111111111}*x14*x99 + x49*x9 - x62 - x95 + V{1}) + V{1};
153cell.template getFieldPointer<descriptors::VELOCITY>()[1] = x13;
154return { x11, x22 + V{1}*x97 };
155}

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