OpenLB 1.8.1
Loading...
Searching...
No Matches
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
 
T 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
 
T getOmegaOrFallback (T fallback) override
 
void computeEquilibrium (cpu::Cell< T, DESCRIPTOR, Platform::CPU_SIMD > &cell, T rho, T *u, T *fEq) 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
 
virtual void computeEquilibrium (Cell< T, DESCRIPTOR, PLATFORM > &cell, T rho, T *u, T *fEq)=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 246 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 251 of file operator.h.

251 :
252 _parameters{parameters} {
253 }

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 255 of file operator.h.

255 {
256 return DYNAMICS().collide(cell, *_parameters);
257 }

◆ 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 274 of file operator.h.

274 {
275 typename DYNAMICS::MomentaF().computeAllMomenta(cell, rho, u, pi);
276 }

◆ computeEquilibrium()

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

Definition at line 287 of file operator.h.

287 {
288 typename DYNAMICS::EquilibriumF().compute(cell, rho, u, fEq);
289 };

◆ 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 265 of file operator.h.

265 {
266 typename DYNAMICS::MomentaF().computeJ(cell, j);
267 }

◆ 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 259 of file operator.h.

259 {
260 return typename DYNAMICS::MomentaF().computeRho(cell);
261 }

◆ 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 268 of file operator.h.

268 {
269 typename DYNAMICS::MomentaF().computeRhoU(cell, rho, u);
270 }

◆ 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 271 of file operator.h.

271 {
272 typename DYNAMICS::MomentaF().computeStress(cell, rho, u, pi);
273 }

◆ 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 262 of file operator.h.

262 {
263 typename DYNAMICS::MomentaF().computeU(cell, u);
264 }

◆ 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 303 of file operator.h.

303 {
304 typename DYNAMICS::MomentaF().defineAllMomenta(cell, rho, u, pi);
305 }

◆ 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 291 of file operator.h.

291 {
292 typename DYNAMICS::MomentaF().defineRho(cell, rho);
293 }

◆ 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 299 of file operator.h.

299 {
300 typename DYNAMICS::MomentaF().defineRhoU(cell, rho, u);
301 }

◆ 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 295 of file operator.h.

295 {
296 typename DYNAMICS::MomentaF().defineU(cell, u);
297 }

◆ 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 278 of file operator.h.

278 {
279 if constexpr (DYNAMICS::parameters::template contains<descriptors::OMEGA>()) {
280 return _parameters->template get<descriptors::OMEGA>();
281 } else {
282 return fallback;
283 }
284 __builtin_unreachable();
285 }

◆ 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 307 of file operator.h.

307 {
308 typename DYNAMICS::MomentaF().inverseShiftRhoU(cell, rho, u);
309 }

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