OpenLB 1.8.1
Loading...
Searching...
No Matches
olb::gpu::cuda::ConcreteDynamics< T, DESCRIPTOR, DYNAMICS > Class Template Referencefinal

Implementation of gpu::cuda::Dynamics for concrete DYNAMICS. More...

#include <dynamics.hh>

+ Inheritance diagram for olb::gpu::cuda::ConcreteDynamics< T, DESCRIPTOR, DYNAMICS >:
+ Collaboration diagram for olb::gpu::cuda::ConcreteDynamics< T, DESCRIPTOR, DYNAMICS >:

Public Member Functions

 ConcreteDynamics (ParametersOfOperatorD< T, DESCRIPTOR, DYNAMICS > *parameters) __device__
 
CellStatistic< T > collide (DeviceContext< T, DESCRIPTOR > lattice, CellID iCell) override __device__
 
computeRho (DataOnlyCell< T, DESCRIPTOR > &cell) override __device__
 
void computeU (DataOnlyCell< T, DESCRIPTOR > &cell, T *u) override __device__
 
void computeJ (DataOnlyCell< T, DESCRIPTOR > &cell, T *j) override __device__
 
void computeRhoU (DataOnlyCell< T, DESCRIPTOR > &cell, T &rho, T *u) override __device__
 
void computeStress (DataOnlyCell< T, DESCRIPTOR > &cell, T &rho, T *u, T *pi) override __device__
 
void computeAllMomenta (DataOnlyCell< T, DESCRIPTOR > &cell, T &rho, T *u, T *pi) override __device__
 
getOmegaOrFallback (T fallback) override __device__
 
void computeEquilibrium (DataOnlyCell< T, DESCRIPTOR > &cell, T &rho, T *u, T *fEq) override __device__
 
void defineRho (DataOnlyCell< T, DESCRIPTOR > &cell, T &rho) override __device__
 
void defineU (DataOnlyCell< T, DESCRIPTOR > &cell, T *u) override __device__
 
void defineRhoU (DataOnlyCell< T, DESCRIPTOR > &cell, T &rho, T *u) override __device__
 
void defineAllMomenta (DataOnlyCell< T, DESCRIPTOR > &cell, T &rho, T *u, T *pi) override __device__
 
void inverseShiftRhoU (DataOnlyCell< T, DESCRIPTOR > &cell, T &rho, T *u) override __device__
 
- Public Member Functions inherited from olb::gpu::cuda::Dynamics< T, DESCRIPTOR >
void iniEquilibrium (DataOnlyCell< T, DESCRIPTOR > &cell, T rho, T *u) __device__
 
void iniRegularized (DataOnlyCell< T, DESCRIPTOR > &cell, T rho, T *u, T *pi) __device__
 

Detailed Description

template<typename T, typename DESCRIPTOR, typename DYNAMICS>
class olb::gpu::cuda::ConcreteDynamics< T, DESCRIPTOR, DYNAMICS >

Implementation of gpu::cuda::Dynamics for concrete DYNAMICS.

Definition at line 83 of file dynamics.hh.

Constructor & Destructor Documentation

◆ ConcreteDynamics()

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

Definition at line 88 of file dynamics.hh.

88 :
89 _parameters{parameters} {
90 }

Member Function Documentation

◆ collide()

template<typename T , typename DESCRIPTOR , typename DYNAMICS >
CellStatistic< T > olb::gpu::cuda::ConcreteDynamics< T, DESCRIPTOR, DYNAMICS >::collide ( DeviceContext< T, DESCRIPTOR > lattice,
CellID iCell )
inlineoverridevirtual

Implements olb::gpu::cuda::Dynamics< T, DESCRIPTOR >.

Definition at line 92 of file dynamics.hh.

92 {
93 DataOnlyCell<T,DESCRIPTOR> cell(lattice, iCell);
94 return DYNAMICS().collide(cell, *_parameters);
95 }

◆ computeAllMomenta()

template<typename T , typename DESCRIPTOR , typename DYNAMICS >
void olb::gpu::cuda::ConcreteDynamics< T, DESCRIPTOR, DYNAMICS >::computeAllMomenta ( DataOnlyCell< T, DESCRIPTOR > & cell,
T & rho,
T * u,
T * pi )
inlineoverridevirtual

Implements olb::gpu::cuda::Dynamics< T, DESCRIPTOR >.

Definition at line 112 of file dynamics.hh.

112 {
113 DYNAMICS::MomentaF().computeAllMomenta(cell, rho, u, pi);
114 }

◆ computeEquilibrium()

template<typename T , typename DESCRIPTOR , typename DYNAMICS >
void olb::gpu::cuda::ConcreteDynamics< T, DESCRIPTOR, DYNAMICS >::computeEquilibrium ( DataOnlyCell< T, DESCRIPTOR > & cell,
T & rho,
T * u,
T * fEq )
inlineoverridevirtual

Implements olb::gpu::cuda::Dynamics< T, DESCRIPTOR >.

Definition at line 124 of file dynamics.hh.

124 {
125 DYNAMICS::EquilibriumF().compute(cell, rho, u, fEq);
126 }

◆ computeJ()

template<typename T , typename DESCRIPTOR , typename DYNAMICS >
void olb::gpu::cuda::ConcreteDynamics< T, DESCRIPTOR, DYNAMICS >::computeJ ( DataOnlyCell< T, DESCRIPTOR > & cell,
T * j )
inlineoverridevirtual

Implements olb::gpu::cuda::Dynamics< T, DESCRIPTOR >.

Definition at line 103 of file dynamics.hh.

103 {
104 DYNAMICS::MomentaF().computeJ(cell, j);
105 }

◆ computeRho()

template<typename T , typename DESCRIPTOR , typename DYNAMICS >
T olb::gpu::cuda::ConcreteDynamics< T, DESCRIPTOR, DYNAMICS >::computeRho ( DataOnlyCell< T, DESCRIPTOR > & cell)
inlineoverridevirtual

Implements olb::gpu::cuda::Dynamics< T, DESCRIPTOR >.

Definition at line 97 of file dynamics.hh.

97 {
98 return DYNAMICS::MomentaF().computeRho(cell);
99 }

◆ computeRhoU()

template<typename T , typename DESCRIPTOR , typename DYNAMICS >
void olb::gpu::cuda::ConcreteDynamics< T, DESCRIPTOR, DYNAMICS >::computeRhoU ( DataOnlyCell< T, DESCRIPTOR > & cell,
T & rho,
T * u )
inlineoverridevirtual

Implements olb::gpu::cuda::Dynamics< T, DESCRIPTOR >.

Definition at line 106 of file dynamics.hh.

106 {
107 DYNAMICS::MomentaF().computeRhoU(cell, rho, u);
108 }

◆ computeStress()

template<typename T , typename DESCRIPTOR , typename DYNAMICS >
void olb::gpu::cuda::ConcreteDynamics< T, DESCRIPTOR, DYNAMICS >::computeStress ( DataOnlyCell< T, DESCRIPTOR > & cell,
T & rho,
T * u,
T * pi )
inlineoverridevirtual

Implements olb::gpu::cuda::Dynamics< T, DESCRIPTOR >.

Definition at line 109 of file dynamics.hh.

109 {
110 DYNAMICS::MomentaF().computeStress(cell, rho, u, pi);
111 }

◆ computeU()

template<typename T , typename DESCRIPTOR , typename DYNAMICS >
void olb::gpu::cuda::ConcreteDynamics< T, DESCRIPTOR, DYNAMICS >::computeU ( DataOnlyCell< T, DESCRIPTOR > & cell,
T * u )
inlineoverridevirtual

Implements olb::gpu::cuda::Dynamics< T, DESCRIPTOR >.

Definition at line 100 of file dynamics.hh.

100 {
101 DYNAMICS::MomentaF().computeU(cell, u);
102 }

◆ defineAllMomenta()

template<typename T , typename DESCRIPTOR , typename DYNAMICS >
void olb::gpu::cuda::ConcreteDynamics< T, DESCRIPTOR, DYNAMICS >::defineAllMomenta ( DataOnlyCell< T, DESCRIPTOR > & cell,
T & rho,
T * u,
T * pi )
inlineoverridevirtual

Implements olb::gpu::cuda::Dynamics< T, DESCRIPTOR >.

Definition at line 140 of file dynamics.hh.

140 {
141 typename DYNAMICS::MomentaF().defineAllMomenta(cell, rho, u, pi);
142 }

◆ defineRho()

template<typename T , typename DESCRIPTOR , typename DYNAMICS >
void olb::gpu::cuda::ConcreteDynamics< T, DESCRIPTOR, DYNAMICS >::defineRho ( DataOnlyCell< T, DESCRIPTOR > & cell,
T & rho )
inlineoverridevirtual

Implements olb::gpu::cuda::Dynamics< T, DESCRIPTOR >.

Definition at line 128 of file dynamics.hh.

128 {
129 typename DYNAMICS::MomentaF().defineRho(cell, rho);
130 }

◆ defineRhoU()

template<typename T , typename DESCRIPTOR , typename DYNAMICS >
void olb::gpu::cuda::ConcreteDynamics< T, DESCRIPTOR, DYNAMICS >::defineRhoU ( DataOnlyCell< T, DESCRIPTOR > & cell,
T & rho,
T * u )
inlineoverridevirtual

Implements olb::gpu::cuda::Dynamics< T, DESCRIPTOR >.

Definition at line 136 of file dynamics.hh.

136 {
137 typename DYNAMICS::MomentaF().defineRhoU(cell, rho, u);
138 }

◆ defineU()

template<typename T , typename DESCRIPTOR , typename DYNAMICS >
void olb::gpu::cuda::ConcreteDynamics< T, DESCRIPTOR, DYNAMICS >::defineU ( DataOnlyCell< T, DESCRIPTOR > & cell,
T * u )
inlineoverridevirtual

Implements olb::gpu::cuda::Dynamics< T, DESCRIPTOR >.

Definition at line 132 of file dynamics.hh.

132 {
133 typename DYNAMICS::MomentaF().defineU(cell, u);
134 }

◆ getOmegaOrFallback()

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

Implements olb::gpu::cuda::Dynamics< T, DESCRIPTOR >.

Definition at line 116 of file dynamics.hh.

116 {
117 if constexpr (DYNAMICS::parameters::template contains<descriptors::OMEGA>()) {
118 return _parameters->template get<descriptors::OMEGA>();
119 } else {
120 return fallback;
121 }
122 }

◆ inverseShiftRhoU()

template<typename T , typename DESCRIPTOR , typename DYNAMICS >
void olb::gpu::cuda::ConcreteDynamics< T, DESCRIPTOR, DYNAMICS >::inverseShiftRhoU ( DataOnlyCell< T, DESCRIPTOR > & cell,
T & rho,
T * u )
inlineoverridevirtual

Implements olb::gpu::cuda::Dynamics< T, DESCRIPTOR >.

Definition at line 144 of file dynamics.hh.

144 {
145 typename DYNAMICS::MomentaF().inverseShiftRhoU(cell, rho, u);
146 }

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