OpenLB 1.8.1
Loading...
Searching...
No Matches
olb::dynamics::CSE< dynamics::Tuple< T, descriptors::D2Q9< FIELDS... >, momenta::Tuple< momenta::BulkDensity, momenta::FixedVelocityMomentumGeneric, momenta::BulkStress, momenta::DefineUSeparatelyTrace >, equilibria::SecondOrder, collision::ConstRhoBGK, dynamics::DefaultCombination > > Struct Template Reference

#include <7db96ae43933a8e676a84cd9caa319e696c854cc3bef49f2b1e87c3c1bd1cfff.cse.h>

+ Collaboration diagram for olb::dynamics::CSE< dynamics::Tuple< T, descriptors::D2Q9< FIELDS... >, momenta::Tuple< momenta::BulkDensity, momenta::FixedVelocityMomentumGeneric, momenta::BulkStress, momenta::DefineUSeparatelyTrace >, 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::FixedVelocityMomentumGeneric, momenta::BulkStress, momenta::DefineUSeparatelyTrace >, equilibria::SecondOrder, collision::ConstRhoBGK, dynamics::DefaultCombination > >

Definition at line 38 of file 7db96ae43933a8e676a84cd9caa319e696c854cc3bef49f2b1e87c3c1bd1cfff.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::FixedVelocityMomentumGeneric, momenta::BulkStress, momenta::DefineUSeparatelyTrace >, equilibria::SecondOrder, collision::ConstRhoBGK, dynamics::DefaultCombination > >::collide ( CELL & cell,
PARAMETERS & parameters )
inline

Definition at line 40 of file 7db96ae43933a8e676a84cd9caa319e696c854cc3bef49f2b1e87c3c1bd1cfff.cse.h.

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

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