OpenLB 1.7
Loading...
Searching...
No Matches
Public Member Functions | List of all members
olb::cpu::simd::ConcreteDynamics< T, DESCRIPTOR, DYNAMICS > Class Template Referencefinal

Implementation of cpu::Dynamics for concrete DYNAMICS on SIMD blocks. More...

#include <operator.h>

+ Inheritance diagram for olb::cpu::simd::ConcreteDynamics< T, DESCRIPTOR, DYNAMICS >:
+ Collaboration diagram for olb::cpu::simd::ConcreteDynamics< T, DESCRIPTOR, DYNAMICS >:

Public Member Functions

 ConcreteDynamics (ParametersOfOperatorD< T, DESCRIPTOR, DYNAMICS > *parameters)
 
CellStatistic< T > collide (cpu::Cell< T, DESCRIPTOR, Platform::CPU_SIMD > &cell) override
 
computeRho (cpu::Cell< T, DESCRIPTOR, Platform::CPU_SIMD > &cell) override
 
void computeU (cpu::Cell< T, DESCRIPTOR, Platform::CPU_SIMD > &cell, T *u) override
 
void computeJ (cpu::Cell< T, DESCRIPTOR, Platform::CPU_SIMD > &cell, T *j) override
 
void computeRhoU (cpu::Cell< T, DESCRIPTOR, Platform::CPU_SIMD > &cell, T &rho, T *u) override
 
void computeStress (cpu::Cell< T, DESCRIPTOR, Platform::CPU_SIMD > &cell, T &rho, T *u, T *pi) override
 
void computeAllMomenta (cpu::Cell< T, DESCRIPTOR, Platform::CPU_SIMD > &cell, T &rho, T *u, T *pi) override
 
getOmegaOrFallback (T fallback) override
 
computeEquilibrium (int iPop, T rho, T *u) override
 
void defineRho (cpu::Cell< T, DESCRIPTOR, Platform::CPU_SIMD > &cell, T &rho) override
 
void defineU (cpu::Cell< T, DESCRIPTOR, Platform::CPU_SIMD > &cell, T *u) override
 
void defineRhoU (cpu::Cell< T, DESCRIPTOR, Platform::CPU_SIMD > &cell, T &rho, T *u) override
 
void defineAllMomenta (cpu::Cell< T, DESCRIPTOR, Platform::CPU_SIMD > &cell, T &rho, T *u, T *pi) override
 
void inverseShiftRhoU (cpu::Cell< T, DESCRIPTOR, Platform::CPU_SIMD > &cell, T &rho, T *u) override
 
- Public Member Functions inherited from olb::cpu::Dynamics< T, DESCRIPTOR, Platform::CPU_SIMD >
virtual ~Dynamics ()
 
virtual CellStatistic< T > collide (Cell< T, DESCRIPTOR, PLATFORM > &cell)=0
 
virtual T computeRho (Cell< T, DESCRIPTOR, PLATFORM > &cell)=0
 
virtual void computeU (Cell< T, DESCRIPTOR, PLATFORM > &cell, T *u)=0
 
virtual void computeJ (Cell< T, DESCRIPTOR, PLATFORM > &cell, T *j)=0
 
virtual void computeRhoU (Cell< T, DESCRIPTOR, PLATFORM > &cell, T &rho, T *u)=0
 
virtual void defineRho (Cell< T, DESCRIPTOR, PLATFORM > &cell, T &rho)=0
 
virtual void defineU (Cell< T, DESCRIPTOR, PLATFORM > &cell, T *u)=0
 
virtual void defineRhoU (Cell< T, DESCRIPTOR, PLATFORM > &cell, T &rho, T *u)=0
 
virtual void defineAllMomenta (Cell< T, DESCRIPTOR, PLATFORM > &cell, T &rho, T *u, T *pi)=0
 
virtual void computeStress (Cell< T, DESCRIPTOR, PLATFORM > &cell, T &rho, T *u, T *pi)=0
 
virtual void computeAllMomenta (Cell< T, DESCRIPTOR, PLATFORM > &cell, T &rho, T *u, T *pi)=0
 
void iniEquilibrium (Cell< T, DESCRIPTOR, PLATFORM > &cell, T rho, T *u)
 
void iniRegularized (Cell< T, DESCRIPTOR, PLATFORM > &cell, T rho, T *u, T *pi)
 
virtual void inverseShiftRhoU (Cell< T, DESCRIPTOR, PLATFORM > &cell, T &rho, T *u)=0
 

Detailed Description

template<typename T, typename DESCRIPTOR, typename DYNAMICS>
class olb::cpu::simd::ConcreteDynamics< T, DESCRIPTOR, DYNAMICS >

Implementation of cpu::Dynamics for concrete DYNAMICS on SIMD blocks.

Definition at line 231 of file operator.h.

Constructor & Destructor Documentation

◆ ConcreteDynamics()

template<typename T , typename DESCRIPTOR , typename DYNAMICS >
olb::cpu::simd::ConcreteDynamics< T, DESCRIPTOR, DYNAMICS >::ConcreteDynamics ( ParametersOfOperatorD< T, DESCRIPTOR, DYNAMICS > * parameters)
inline

Definition at line 236 of file operator.h.

236 :
237 _parameters{parameters} {
238 }

Member Function Documentation

◆ collide()

template<typename T , typename DESCRIPTOR , typename DYNAMICS >
CellStatistic< T > olb::cpu::simd::ConcreteDynamics< T, DESCRIPTOR, DYNAMICS >::collide ( cpu::Cell< T, DESCRIPTOR, Platform::CPU_SIMD > & cell)
inlineoverride

Definition at line 240 of file operator.h.

240 {
241 return DYNAMICS().apply(cell, *_parameters);
242 }

◆ computeAllMomenta()

template<typename T , typename DESCRIPTOR , typename DYNAMICS >
void olb::cpu::simd::ConcreteDynamics< T, DESCRIPTOR, DYNAMICS >::computeAllMomenta ( cpu::Cell< T, DESCRIPTOR, Platform::CPU_SIMD > & cell,
T & rho,
T * u,
T * pi )
inlineoverride

Definition at line 259 of file operator.h.

259 {
260 typename DYNAMICS::MomentaF().computeAllMomenta(cell, rho, u, pi);
261 }

◆ computeEquilibrium()

template<typename T , typename DESCRIPTOR , typename DYNAMICS >
T olb::cpu::simd::ConcreteDynamics< T, DESCRIPTOR, DYNAMICS >::computeEquilibrium ( int iPop,
T rho,
T * u )
inlineoverridevirtual

Implements olb::cpu::Dynamics< T, DESCRIPTOR, Platform::CPU_SIMD >.

Definition at line 272 of file operator.h.

272 {
273 return DYNAMICS().computeEquilibrium(iPop, rho, u);
274 }

◆ computeJ()

template<typename T , typename DESCRIPTOR , typename DYNAMICS >
void olb::cpu::simd::ConcreteDynamics< T, DESCRIPTOR, DYNAMICS >::computeJ ( cpu::Cell< T, DESCRIPTOR, Platform::CPU_SIMD > & cell,
T * j )
inlineoverride

Definition at line 250 of file operator.h.

250 {
251 typename DYNAMICS::MomentaF().computeJ(cell, j);
252 }

◆ computeRho()

template<typename T , typename DESCRIPTOR , typename DYNAMICS >
T olb::cpu::simd::ConcreteDynamics< T, DESCRIPTOR, DYNAMICS >::computeRho ( cpu::Cell< T, DESCRIPTOR, Platform::CPU_SIMD > & cell)
inlineoverride

Definition at line 244 of file operator.h.

244 {
245 return typename DYNAMICS::MomentaF().computeRho(cell);
246 }

◆ computeRhoU()

template<typename T , typename DESCRIPTOR , typename DYNAMICS >
void olb::cpu::simd::ConcreteDynamics< T, DESCRIPTOR, DYNAMICS >::computeRhoU ( cpu::Cell< T, DESCRIPTOR, Platform::CPU_SIMD > & cell,
T & rho,
T * u )
inlineoverride

Definition at line 253 of file operator.h.

253 {
254 typename DYNAMICS::MomentaF().computeRhoU(cell, rho, u);
255 }

◆ computeStress()

template<typename T , typename DESCRIPTOR , typename DYNAMICS >
void olb::cpu::simd::ConcreteDynamics< T, DESCRIPTOR, DYNAMICS >::computeStress ( cpu::Cell< T, DESCRIPTOR, Platform::CPU_SIMD > & cell,
T & rho,
T * u,
T * pi )
inlineoverride

Definition at line 256 of file operator.h.

256 {
257 typename DYNAMICS::MomentaF().computeStress(cell, rho, u, pi);
258 }

◆ computeU()

template<typename T , typename DESCRIPTOR , typename DYNAMICS >
void olb::cpu::simd::ConcreteDynamics< T, DESCRIPTOR, DYNAMICS >::computeU ( cpu::Cell< T, DESCRIPTOR, Platform::CPU_SIMD > & cell,
T * u )
inlineoverride

Definition at line 247 of file operator.h.

247 {
248 typename DYNAMICS::MomentaF().computeU(cell, u);
249 }

◆ defineAllMomenta()

template<typename T , typename DESCRIPTOR , typename DYNAMICS >
void olb::cpu::simd::ConcreteDynamics< T, DESCRIPTOR, DYNAMICS >::defineAllMomenta ( cpu::Cell< T, DESCRIPTOR, Platform::CPU_SIMD > & cell,
T & rho,
T * u,
T * pi )
inlineoverride

Definition at line 288 of file operator.h.

288 {
289 typename DYNAMICS::MomentaF().defineAllMomenta(cell, rho, u, pi);
290 }

◆ defineRho()

template<typename T , typename DESCRIPTOR , typename DYNAMICS >
void olb::cpu::simd::ConcreteDynamics< T, DESCRIPTOR, DYNAMICS >::defineRho ( cpu::Cell< T, DESCRIPTOR, Platform::CPU_SIMD > & cell,
T & rho )
inlineoverride

Definition at line 276 of file operator.h.

276 {
277 typename DYNAMICS::MomentaF().defineRho(cell, rho);
278 }

◆ defineRhoU()

template<typename T , typename DESCRIPTOR , typename DYNAMICS >
void olb::cpu::simd::ConcreteDynamics< T, DESCRIPTOR, DYNAMICS >::defineRhoU ( cpu::Cell< T, DESCRIPTOR, Platform::CPU_SIMD > & cell,
T & rho,
T * u )
inlineoverride

Definition at line 284 of file operator.h.

284 {
285 typename DYNAMICS::MomentaF().defineRhoU(cell, rho, u);
286 }

◆ defineU()

template<typename T , typename DESCRIPTOR , typename DYNAMICS >
void olb::cpu::simd::ConcreteDynamics< T, DESCRIPTOR, DYNAMICS >::defineU ( cpu::Cell< T, DESCRIPTOR, Platform::CPU_SIMD > & cell,
T * u )
inlineoverride

Definition at line 280 of file operator.h.

280 {
281 typename DYNAMICS::MomentaF().defineU(cell, u);
282 }

◆ getOmegaOrFallback()

template<typename T , typename DESCRIPTOR , typename DYNAMICS >
T olb::cpu::simd::ConcreteDynamics< T, DESCRIPTOR, DYNAMICS >::getOmegaOrFallback ( T fallback)
inlineoverridevirtual

Implements olb::cpu::Dynamics< T, DESCRIPTOR, Platform::CPU_SIMD >.

Definition at line 263 of file operator.h.

263 {
264 if constexpr (DYNAMICS::parameters::template contains<descriptors::OMEGA>()) {
265 return _parameters->template get<descriptors::OMEGA>();
266 } else {
267 return fallback;
268 }
269 __builtin_unreachable();
270 }

◆ inverseShiftRhoU()

template<typename T , typename DESCRIPTOR , typename DYNAMICS >
void olb::cpu::simd::ConcreteDynamics< T, DESCRIPTOR, DYNAMICS >::inverseShiftRhoU ( cpu::Cell< T, DESCRIPTOR, Platform::CPU_SIMD > & cell,
T & rho,
T * u )
inlineoverride

Definition at line 292 of file operator.h.

292 {
293 typename DYNAMICS::MomentaF().inverseShiftRhoU(cell, rho, u);
294 }

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