OpenLB 1.8.1
Loading...
Searching...
No Matches
olb::dynamics::CSE< dynamics::Tuple< T, descriptors::D3Q7< FIELDS... >, momenta::Tuple< momenta::BulkDensity, momenta::BulkMomentum, momenta::NoStress, momenta::DefineToEq >, equilibria::FirstOrder, collision::BGK, AdvectionDiffusionExternalVelocityCollision > > Struct Template Reference

#include <c669bfeb3f0a859cef9b11826a90e245986bde23bcf929d3d6a39f42f30bd786.cse.h>

+ Collaboration diagram for olb::dynamics::CSE< dynamics::Tuple< T, descriptors::D3Q7< FIELDS... >, momenta::Tuple< momenta::BulkDensity, momenta::BulkMomentum, momenta::NoStress, momenta::DefineToEq >, equilibria::FirstOrder, collision::BGK, AdvectionDiffusionExternalVelocityCollision > >:

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::D3Q7< FIELDS... >, momenta::Tuple< momenta::BulkDensity, momenta::BulkMomentum, momenta::NoStress, momenta::DefineToEq >, equilibria::FirstOrder, collision::BGK, AdvectionDiffusionExternalVelocityCollision > >

Definition at line 38 of file c669bfeb3f0a859cef9b11826a90e245986bde23bcf929d3d6a39f42f30bd786.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::D3Q7< FIELDS... >, momenta::Tuple< momenta::BulkDensity, momenta::BulkMomentum, momenta::NoStress, momenta::DefineToEq >, equilibria::FirstOrder, collision::BGK, AdvectionDiffusionExternalVelocityCollision > >::collide ( CELL & cell,
PARAMETERS & parameters )
inline

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

40 {
41auto x7 = cell.template getFieldComponent<descriptors::VELOCITY>(0);
42auto x8 = cell.template getFieldComponent<descriptors::VELOCITY>(1);
43auto x9 = cell.template getFieldComponent<descriptors::VELOCITY>(2);
44auto x10 = parameters.template get<descriptors::OMEGA>();
45auto x11 = x10 + V{-1};
46auto x12 = cell[0] + cell[1] + cell[2] + cell[3] + cell[4] + cell[5] + cell[6];
47auto x13 = V{4}*x7;
48auto x14 = x12 + V{1};
49auto x15 = V{0.125}*x10;
50auto x16 = V{4}*x8;
51auto x17 = V{4}*x9;
52auto x0 = -cell[0]*x11 + V{0.25}*x10*x12;
53auto x1 = -cell[1]*x11 - x15*(x14*(x13 + V{-1}) + V{1});
54auto x2 = -cell[2]*x11 - x15*(x14*(x16 + V{-1}) + V{1});
55auto x3 = -cell[3]*x11 - x15*(x14*(x17 + V{-1}) + V{1});
56auto x4 = -cell[4]*x11 + V{0.125}*x10*(x14*(x13 + V{1}) + V{-1});
57auto x5 = -cell[5]*x11 + V{0.125}*x10*(x14*(x16 + V{1}) + V{-1});
58auto x6 = -cell[6]*x11 + V{0.125}*x10*(x14*(x17 + V{1}) + V{-1});
59cell[0] = x0;
60cell[1] = x1;
61cell[2] = x2;
62cell[3] = x3;
63cell[4] = x4;
64cell[5] = x5;
65cell[6] = x6;
66return { x12 + V{1}, x7*x7 + x8*x8 + x9*x9 };
67}

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