OpenLB 1.8.1
Loading...
Searching...
No Matches
olb::dynamics::CSE< dynamics::Tuple< T, descriptors::D3Q19< FIELDS... >, momenta::Tuple< momenta::BulkDensity, momenta::FreeEnergyMomentum, momenta::BulkStress, momenta::DefineToNEq >, equilibria::FreeEnergy, collision::FreeEnergy, dynamics::DefaultCombination > > Struct Template Reference

#include <2a4b6ec873580b698e523d94acd3bb8ea09db6d64dad625cb7935fb2eda28da2.cse.h>

+ Collaboration diagram for olb::dynamics::CSE< dynamics::Tuple< T, descriptors::D3Q19< FIELDS... >, momenta::Tuple< momenta::BulkDensity, momenta::FreeEnergyMomentum, momenta::BulkStress, momenta::DefineToNEq >, equilibria::FreeEnergy, collision::FreeEnergy, 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::D3Q19< FIELDS... >, momenta::Tuple< momenta::BulkDensity, momenta::FreeEnergyMomentum, momenta::BulkStress, momenta::DefineToNEq >, equilibria::FreeEnergy, collision::FreeEnergy, dynamics::DefaultCombination > >

Definition at line 38 of file 2a4b6ec873580b698e523d94acd3bb8ea09db6d64dad625cb7935fb2eda28da2.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::FreeEnergyMomentum, momenta::BulkStress, momenta::DefineToNEq >, equilibria::FreeEnergy, collision::FreeEnergy, dynamics::DefaultCombination > >::collide ( CELL & cell,
PARAMETERS & parameters )
inline

Definition at line 40 of file 2a4b6ec873580b698e523d94acd3bb8ea09db6d64dad625cb7935fb2eda28da2.cse.h.

40 {
41auto x23 = parameters.template get<descriptors::OMEGA>();
42auto x24 = parameters.template get<collision::FreeEnergy::GAMMA>();
43auto x21 = cell.template getFieldComponent<descriptors::FORCE>(1);
44auto x20 = cell.template getFieldComponent<descriptors::FORCE>(0);
45auto x22 = cell.template getFieldComponent<descriptors::FORCE>(2);
46auto x19 = cell.template getFieldComponent<descriptors::CHEM_POTENTIAL>(0);
47auto x25 = x23 + V{-1};
48auto x26 = 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];
49auto x27 = x26 + V{1};
50auto x28 = x20*x20;
51auto x29 = V{1.5}*x28;
52auto x30 = x21*x21;
53auto x31 = V{1.5}*x30;
54auto x32 = x22*x22;
55auto x33 = V{1.5}*x32;
56auto x34 = x31 + x33 + V{-1};
57auto x35 = x29 + x34;
58auto x36 = x26 + V{1};
59auto x37 = -V{3}*x19*x24 + x36;
60auto x38 = V{0.0555555555555556}*x23;
61auto x39 = V{3}*x20;
62auto x40 = V{3}*x28;
63auto x41 = x37*x38;
64auto x42 = V{3}*x21;
65auto x43 = V{3}*x30;
66auto x44 = x29 + V{-1};
67auto x45 = V{3}*x22;
68auto x46 = V{3}*x32;
69auto x47 = V{0.0277777777777778}*x23;
70auto x48 = x20 + x21;
71auto x49 = V{4.5}*(x48*x48);
72auto x50 = x35 + x39;
73auto x51 = x37*x47;
74auto x52 = -x42;
75auto x53 = x20 - x21;
76auto x54 = -x53;
77auto x55 = x20 + x22;
78auto x56 = V{4.5}*(x55*x55);
79auto x57 = -x45;
80auto x58 = -x22;
81auto x59 = x20 + x58;
82auto x60 = -x59;
83auto x61 = x21 + x22;
84auto x62 = V{4.5}*(x61*x61);
85auto x63 = x35 + x42;
86auto x64 = x21 + x58;
87auto x65 = -x64;
88auto x66 = -x31;
89auto x67 = V{1} - x33;
90auto x68 = x66 + x67;
91auto x69 = x39 + x68;
92auto x70 = -x29;
93auto x71 = x42 + x70;
94auto x72 = x45 + x70;
95auto x73 = -x39;
96auto x74 = x35 + x45;
97auto x0 = -cell[0]*x25 + V{0.666666666666667}*x23*x37 - V{0.333333333333333}*x23*(x27*x35 + V{1});
98auto x1 = -cell[1]*x25 - x38*(x27*(x34 + x39 - x40) + V{1}) - x41;
99auto x2 = -cell[2]*x25 - x38*(x27*(x33 + x42 - x43 + x44) + V{1}) - x41;
100auto x3 = -cell[3]*x25 - x38*(x27*(x31 + x44 + x45 - x46) + V{1}) - x41;
101auto x4 = -cell[4]*x25 - x47*(x27*(x42 - x49 + x50) + V{1}) - x51;
102auto x5 = -(cell[5]*x25 + x47*(x27*(x50 + x52 - V{4.5}*x54*x54) + V{1}) + x51);
103auto x6 = -cell[6]*x25 - x47*(x27*(x45 + x50 - x56) + V{1}) - x51;
104auto x7 = -(cell[7]*x25 + x47*(x27*(x50 + x57 - V{4.5}*x60*x60) + V{1}) + x51);
105auto x8 = -cell[8]*x25 - x47*(x27*(x45 - x62 + x63) + V{1}) - x51;
106auto x9 = -(cell[9]*x25 + x47*(x27*(x57 + x63 - V{4.5}*x65*x65) + V{1}) + x51);
107auto x10 = -cell[10]*x25 + V{0.0555555555555556}*x23*(x27*(x40 + x69) + V{-1}) - x41;
108auto x11 = -cell[11]*x25 + V{0.0555555555555556}*x23*(x27*(x43 + x67 + x71) + V{-1}) - x41;
109auto x12 = -cell[12]*x25 + V{0.0555555555555556}*x23*(x27*(x46 + x66 + x72 + V{1}) + V{-1}) - x41;
110auto x13 = -cell[13]*x25 + V{0.0277777777777778}*x23*(x27*(x49 + x69 + x71) + V{-1}) - x51;
111auto x14 = -(cell[14]*x25 + x47*(x27*(x63 + x73 - V{4.5}*x53*x53) + V{1}) + x51);
112auto x15 = -cell[15]*x25 + V{0.0277777777777778}*x23*(x27*(x56 + x69 + x72) + V{-1}) - x51;
113auto x16 = -(cell[16]*x25 + x47*(x27*(x73 + x74 - V{4.5}*x59*x59) + V{1}) + x51);
114auto x17 = -cell[17]*x25 + V{0.0277777777777778}*x23*(x27*(x45 + x62 + x68 + x71) + V{-1}) - x51;
115auto x18 = -(cell[18]*x25 + x47*(x27*(x52 + x74 - V{4.5}*x64*x64) + V{1}) + x51);
116cell[0] = x0;
117cell[1] = x1;
118cell[2] = x2;
119cell[3] = x3;
120cell[4] = x4;
121cell[5] = x5;
122cell[6] = x6;
123cell[7] = x7;
124cell[8] = x8;
125cell[9] = x9;
126cell[10] = x10;
127cell[11] = x11;
128cell[12] = x12;
129cell[13] = x13;
130cell[14] = x14;
131cell[15] = x15;
132cell[16] = x16;
133cell[17] = x17;
134cell[18] = x18;
135return { x36, x28 + x30 + x32 };
136}

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