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::ConstRhoBGK, dynamics::DefaultCombination > > Struct Template Reference

#include <624cb65402c15187e66409fd86ad9d5849ee280b2bfb2a16f451c6ce8ec0d9ae.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::ConstRhoBGK, 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::D2Q9< FIELDS... >, momenta::Tuple< momenta::BulkDensity, momenta::BulkMomentum, momenta::BulkStress, momenta::DefineToNEq >, equilibria::SecondOrder, collision::ConstRhoBGK, dynamics::DefaultCombination > >

Definition at line 38 of file 624cb65402c15187e66409fd86ad9d5849ee280b2bfb2a16f451c6ce8ec0d9ae.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::ConstRhoBGK, dynamics::DefaultCombination > >::collide ( CELL & cell,
PARAMETERS & parameters )
inline

Definition at line 40 of file 624cb65402c15187e66409fd86ad9d5849ee280b2bfb2a16f451c6ce8ec0d9ae.cse.h.

40 {
41auto x9 = parameters.template get<descriptors::OMEGA>();
42auto x10 = parameters.template get<statistics::AVERAGE_RHO>();
43auto x11 = x9 + V{-1};
44auto x12 = cell[0] + cell[1] + cell[2] + cell[3] + cell[4] + cell[5] + cell[6] + cell[7] + cell[8];
45auto x13 = x12 + V{1};
46auto x14 = V{1} / ((x13)*(x13));
47auto x15 = V{1.5}*x14;
48auto x16 = cell[1] - cell[5];
49auto x17 = -cell[4] + cell[8];
50auto x18 = -cell[3] + cell[7] + x16 + x17;
51auto x19 = x18*x18;
52auto x20 = x15*x19;
53auto x21 = cell[2] - cell[6];
54auto x22 = cell[3] - cell[7] + x16 + x21;
55auto x23 = -x22;
56auto x24 = x15*(x23*x23) + V{-1};
57auto x25 = x20 + x24;
58auto x26 = V{1} / (x13);
59auto x27 = -x26*(x10 + V{-1}) + V{1};
60auto x28 = x12 + V{1};
61auto x29 = x27*x28;
62auto x30 = 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};
63auto x31 = V{3}*cell[3];
64auto x32 = V{3}*cell[7];
65auto x33 = V{3}*cell[1] - V{3}*cell[5];
66auto x34 = V{3}*cell[2] - V{3}*cell[6] + x31 - x32 + x33;
67auto x35 = x26*x34;
68auto x36 = V{4.5}*x14;
69auto x37 = V{2}*cell[1] - V{2}*cell[5] + x17 + x21;
70auto x38 = -x37;
71auto x39 = V{1} - x20;
72auto x40 = x26*(-V{3}*cell[4] + V{3}*cell[8] - x31 + x32 + x33);
73auto x41 = x22*x22;
74auto x42 = x15*x41;
75auto x43 = x40 - x42;
76auto x44 = x39 + x43;
77auto x45 = x35 + x36*(x38*x38) + x44;
78auto x46 = 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};
79auto x47 = V{3}*x14;
80auto x48 = x39 + x41*x47;
81auto x49 = x35 + x48;
82auto x50 = -V{2}*cell[3] - cell[4] + V{2}*cell[7] + cell[8] - x21;
83auto x51 = x36*(x50*x50);
84auto x52 = x25 - x26*x34 + x40 - x51;
85auto x53 = x19*x47;
86auto x54 = x24 + x40 - x53;
87auto x55 = -(-V{4.5}*x14*x37*x37 + x20 + x35 + x40 + x42 + V{-1});
88auto x56 = -x35;
89auto x57 = x48 + x56;
90auto x58 = x44 + x51 + x56;
91auto x59 = x43 + x53 + V{1};
92auto x0 = -x11*(cell[0] + x25*(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}) + V{0.444444444444444}) - V{0.444444444444444}*x25*x29 + V{-0.444444444444444};
93auto x1 = -x11*(cell[1] - x30*x45 + V{0.0277777777777778}) + V{0.0277777777777778}*x27*x28*x45 + V{-0.0277777777777778};
94auto x2 = -x11*(cell[2] - x46*x49 + V{0.111111111111111}) + V{0.111111111111111}*x27*x28*x49 + V{-0.111111111111111};
95auto x3 = -x11*(cell[3] + x30*x52 + V{0.0277777777777778}) - V{0.0277777777777778}*x29*x52 + V{-0.0277777777777778};
96auto x4 = -x11*(cell[4] + x46*x54 + V{0.111111111111111}) - V{0.111111111111111}*x29*x54 + V{-0.111111111111111};
97auto x5 = -x11*(cell[5] - x30*x55 + V{0.0277777777777778}) + V{0.0277777777777778}*x27*x28*x55 + V{-0.0277777777777778};
98auto x6 = -x11*(cell[6] - x46*x57 + V{0.111111111111111}) + V{0.111111111111111}*x27*x28*x57 + V{-0.111111111111111};
99auto x7 = -x11*(cell[7] - x30*x58 + V{0.0277777777777778}) + V{0.0277777777777778}*x27*x28*x58 + V{-0.0277777777777778};
100auto x8 = -x11*(cell[8] - x46*x59 + V{0.111111111111111}) + V{0.111111111111111}*x27*x28*x59 + V{-0.111111111111111};
101cell[0] = x0;
102cell[1] = x1;
103cell[2] = x2;
104cell[3] = x3;
105cell[4] = x4;
106cell[5] = x5;
107cell[6] = x6;
108cell[7] = x7;
109cell[8] = x8;
110return { -x10 + x12 + V{2}, V{1}*x14*(x19 + x41) };
111}

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