OpenLB 1.8.1
Loading...
Searching...
No Matches
olb::dynamics::CSE< dynamics::Tuple< T, descriptors::D3Q27< FIELDS... >, momenta::Tuple< momenta::VelocityBoundaryDensity< 2, -1 >, momenta::FixedVelocityMomentumGeneric, momenta::BulkStress, momenta::DefineSeparately >, equilibria::SecondOrder, collision::BGK, dynamics::DefaultCombination > > Struct Template Reference

#include <a49663b5fb42cff3385aa16bb0bc3c569c1b1291218dfc44014129e450ca8e81.cse.h>

+ Collaboration diagram for olb::dynamics::CSE< dynamics::Tuple< T, descriptors::D3Q27< FIELDS... >, momenta::Tuple< momenta::VelocityBoundaryDensity< 2, -1 >, momenta::FixedVelocityMomentumGeneric, momenta::BulkStress, momenta::DefineSeparately >, equilibria::SecondOrder, collision::BGK, dynamics::DefaultCombination > >:

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::D3Q27< FIELDS... >, momenta::Tuple< momenta::VelocityBoundaryDensity< 2, -1 >, momenta::FixedVelocityMomentumGeneric, momenta::BulkStress, momenta::DefineSeparately >, equilibria::SecondOrder, collision::BGK, dynamics::DefaultCombination > >

Definition at line 38 of file a49663b5fb42cff3385aa16bb0bc3c569c1b1291218dfc44014129e450ca8e81.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::D3Q27< FIELDS... >, momenta::Tuple< momenta::VelocityBoundaryDensity< 2, -1 >, momenta::FixedVelocityMomentumGeneric, momenta::BulkStress, momenta::DefineSeparately >, equilibria::SecondOrder, collision::BGK, dynamics::DefaultCombination > >::collide ( CELL & cell,
PARAMETERS & parameters )
inline

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

40 {
41auto x29 = cell.template getFieldComponent<momenta::FixedVelocityMomentumGeneric::VELOCITY>(2);
42auto x27 = cell.template getFieldComponent<momenta::FixedVelocityMomentumGeneric::VELOCITY>(0);
43auto x30 = parameters.template get<descriptors::OMEGA>();
44auto x28 = cell.template getFieldComponent<momenta::FixedVelocityMomentumGeneric::VELOCITY>(1);
45auto x31 = x30 + V{-1};
46auto x32 = x29 + V{-1};
47auto x33 = cell[0] + V{2}*cell[10] + V{2}*cell[12] + cell[14] + cell[15] + cell[17] + cell[18] + cell[1] + V{2}*cell[20] + V{2}*cell[22] + V{2}*cell[24] + V{2}*cell[26] + cell[2] + V{2}*cell[3] + cell[4] + cell[5] + V{2}*cell[6] + V{2}*cell[8] + V{1};
48auto x34 = -x33/x32;
49auto x35 = x27*x27;
50auto x36 = V{1.5}*x35;
51auto x37 = x28*x28;
52auto x38 = V{1.5}*x37;
53auto x39 = x29*x29;
54auto x40 = V{1.5}*x39;
55auto x41 = x38 + x40 + V{-1};
56auto x42 = x36 + x41;
57auto x43 = V{0.0740740740740741}*x30;
58auto x44 = V{3}*x27;
59auto x45 = V{3}*x28;
60auto x46 = x36 + V{-1};
61auto x47 = V{3}*x29;
62auto x48 = V{0.0185185185185185}*x30;
63auto x49 = x27 + x28;
64auto x50 = x49*x49;
65auto x51 = x42 + x44;
66auto x52 = x45 + x51;
67auto x53 = x27 - x28;
68auto x54 = -x53;
69auto x55 = -x45;
70auto x56 = x51 + x55;
71auto x57 = x27 + x29;
72auto x58 = x57*x57;
73auto x59 = -x47;
74auto x60 = -x29;
75auto x61 = x27 + x60;
76auto x62 = -x61;
77auto x63 = x28 + x29;
78auto x64 = x63*x63;
79auto x65 = x42 + x45;
80auto x66 = x47 + x65;
81auto x67 = x28 + x60;
82auto x68 = -x67;
83auto x69 = V{0.00462962962962963}*x30;
84auto x70 = x29 + x49;
85auto x71 = x70*x70;
86auto x72 = x49 + x60;
87auto x73 = -x72;
88auto x74 = x29 + x53;
89auto x75 = -x74;
90auto x76 = -x44;
91auto x77 = -x27 + x63;
92auto x78 = -x38;
93auto x79 = V{1} - x40;
94auto x80 = x78 + x79;
95auto x81 = -x36;
96auto x82 = x45 + x81;
97auto x83 = x47 + x80 + x82;
98auto x84 = x44 + x80;
99auto x85 = x47 + x81;
100auto x86 = x82 + x84;
101auto x87 = x84 + x85;
102auto x88 = x42 + x47;
103auto x89 = -x77;
104auto x0 = -cell[0]*x31 - V{0.296296296296296}*x30*(x34*x42 + V{1});
105auto x1 = -cell[1]*x31 - x43*(-x34*(V{3}*x35 - x41 - x44) + V{1});
106auto x2 = -cell[2]*x31 - x43*(-x34*(V{3}*x37 - x40 - x45 - x46) + V{1});
107auto x3 = -cell[3]*x31 - x43*(-x34*(-x38 + V{3}*x39 - x46 - x47) + V{1});
108auto x4 = -cell[4]*x31 - x48*(-x34*(V{4.5}*x50 - x52) + V{1});
109auto x5 = -(cell[5]*x31 + x48*(x34*(x56 - V{4.5}*x54*x54) + V{1}));
110auto x6 = -cell[6]*x31 - x48*(-x34*(-x47 - x51 + V{4.5}*x58) + V{1});
111auto x7 = -(cell[7]*x31 + x48*(x34*(x51 + x59 - V{4.5}*x62*x62) + V{1}));
112auto x8 = -cell[8]*x31 - x48*(-x34*(V{4.5}*x64 - x66) + V{1});
113auto x9 = -(cell[9]*x31 + x48*(x34*(x59 + x65 - V{4.5}*x68*x68) + V{1}));
114auto x10 = -cell[10]*x31 - x69*(-x34*(-x47 - x52 + V{4.5}*x71) + V{1});
115auto x11 = -(cell[11]*x31 + x69*(x34*(x52 + x59 - V{4.5}*x73*x73) + V{1}));
116auto x12 = -(cell[12]*x31 + x69*(x34*(x47 + x56 - V{4.5}*x75*x75) + V{1}));
117auto x13 = -(cell[13]*x31 + x69*(-x34*(x76 + x83 + V{4.5}*(x77*x77)) + V{1}));
118auto x14 = -cell[14]*x31 - x43*(-x34*(V{3}*x35 + x84) + V{1});
119auto x15 = -cell[15]*x31 - x43*(-x34*(V{3}*x37 + x79 + x82) + V{1});
120auto x16 = -cell[16]*x31 - x43*(-x34*(V{3}*x39 + x78 + x85 + V{1}) + V{1});
121auto x17 = -cell[17]*x31 - x48*(-x34*(V{4.5}*x50 + x86) + V{1});
122auto x18 = -(cell[18]*x31 + x48*(x34*(x65 + x76 - V{4.5}*x53*x53) + V{1}));
123auto x19 = -cell[19]*x31 - x48*(-x34*(V{4.5}*x58 + x87) + V{1});
124auto x20 = -(cell[20]*x31 + x48*(x34*(x76 + x88 - V{4.5}*x61*x61) + V{1}));
125auto x21 = -cell[21]*x31 - x48*(-x34*(V{4.5}*x64 + x83) + V{1});
126auto x22 = -(cell[22]*x31 + x48*(x34*(x55 + x88 - V{4.5}*x67*x67) + V{1}));
127auto x23 = -cell[23]*x31 - x69*(-x34*(x47 + V{4.5}*x71 + x86) + V{1});
128auto x24 = -(cell[24]*x31 + x69*(-x34*(x59 + x86 + V{4.5}*(x72*x72)) + V{1}));
129auto x25 = -(cell[25]*x31 + x69*(-x34*(x55 + x87 + V{4.5}*(x74*x74)) + V{1}));
130auto x26 = -(cell[26]*x31 + x69*(x34*(x66 + x76 - V{4.5}*x89*x89) + V{1}));
131cell[0] = x0;
132cell[1] = x1;
133cell[2] = x2;
134cell[3] = x3;
135cell[4] = x4;
136cell[5] = x5;
137cell[6] = x6;
138cell[7] = x7;
139cell[8] = x8;
140cell[9] = x9;
141cell[10] = x10;
142cell[11] = x11;
143cell[12] = x12;
144cell[13] = x13;
145cell[14] = x14;
146cell[15] = x15;
147cell[16] = x16;
148cell[17] = x17;
149cell[18] = x18;
150cell[19] = x19;
151cell[20] = x20;
152cell[21] = x21;
153cell[22] = x22;
154cell[23] = x23;
155cell[24] = x24;
156cell[25] = x25;
157cell[26] = x26;
158return { -V{1}*x33/x32, x35 + x37 + x39 };
159}

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