MAIA bb96820c
Multiphysics at AIA
Loading...
Searching...
No Matches
maia::lb::LbSysEqn< nDim, nDist > Class Template Referenceabstract

#include <lbsyseqn.h>

Inheritance diagram for maia::lb::LbSysEqn< nDim, nDist >:
[legend]

Public Member Functions

virtual void calcEqDists (const MFloat zerothMoment, const MFloat *const firstMoment, MFloat *const p_eqDist) const =0
 
virtual void calcEqDists (const MFloat zerothMoment, const MFloat squaredFirstMoment, const MFloat *const firstMoment, MFloat *const p_eqDist) const =0
 
virtual void calcEqDists (const MFloat zerothMoment, const MFloat *const firstMoment, MFloat *const p_eqDist, const MInt *mFld1, const MInt *mFld2, const MFloat *mTp, const MInt *mDistFld) const =0
 
virtual void calcEqDists (const MFloat zerothMoment, const MFloat squaredFirstMoment, const MFloat *const firstMoment, MFloat *const p_eqDist, const MInt *mFld1, const MInt *mFld2, const MFloat *mTp, const MInt *mDistFld) const =0
 
virtual void calcMacroVars (MFloat const *const p_dist, MFloat &p_rho, MFloat *const p_u) const =0
 
virtual void calcPrimitiveVars (MFloat const *const p_dist, MFloat &p_rho, MFloat *const p_u) const =0
 
void calcNonEqDists (const MFloat zerothMoment, const MFloat *const firstMoment, const MFloat *const p_dist, MFloat *const p_nonEqDist) const
 
void calcMomentumFlux (const MFloat &zerothMoment, const MFloat *const firstMoments, const MFloat *const dist, MFloat *const momentumFlux) const
 

Detailed Description

template<MInt nDim, MInt nDist>
class maia::lb::LbSysEqn< nDim, nDist >

Definition at line 15 of file lbsyseqn.h.

Member Function Documentation

◆ calcEqDists() [1/4]

template<MInt nDim, MInt nDist>
virtual void maia::lb::LbSysEqn< nDim, nDist >::calcEqDists ( const MFloat  zerothMoment,
const MFloat *const  firstMoment,
MFloat *const  p_eqDist 
) const
pure virtual

◆ calcEqDists() [2/4]

template<MInt nDim, MInt nDist>
virtual void maia::lb::LbSysEqn< nDim, nDist >::calcEqDists ( const MFloat  zerothMoment,
const MFloat *const  firstMoment,
MFloat *const  p_eqDist,
const MInt mFld1,
const MInt mFld2,
const MFloat mTp,
const MInt mDistFld 
) const
pure virtual

◆ calcEqDists() [3/4]

template<MInt nDim, MInt nDist>
virtual void maia::lb::LbSysEqn< nDim, nDist >::calcEqDists ( const MFloat  zerothMoment,
const MFloat  squaredFirstMoment,
const MFloat *const  firstMoment,
MFloat *const  p_eqDist 
) const
pure virtual

◆ calcEqDists() [4/4]

template<MInt nDim, MInt nDist>
virtual void maia::lb::LbSysEqn< nDim, nDist >::calcEqDists ( const MFloat  zerothMoment,
const MFloat  squaredFirstMoment,
const MFloat *const  firstMoment,
MFloat *const  p_eqDist,
const MInt mFld1,
const MInt mFld2,
const MFloat mTp,
const MInt mDistFld 
) const
pure virtual

◆ calcMacroVars()

template<MInt nDim, MInt nDist>
virtual void maia::lb::LbSysEqn< nDim, nDist >::calcMacroVars ( MFloat const *const  p_dist,
MFloat p_rho,
MFloat *const  p_u 
) const
pure virtual

◆ calcMomentumFlux()

template<MInt nDim, MInt nDist>
void maia::lb::LbSysEqn< nDim, nDist >::calcMomentumFlux ( const MFloat zerothMoment,
const MFloat *const  firstMoments,
const MFloat *const  dist,
MFloat *const  momentumFlux 
) const
inline

Definition at line 43 of file lbsyseqn.h.

44 {
46
47 std::array<MFloat, nDist> nonEqDist{};
48 calcNonEqDists(zerothMoment, firstMoments, dist, nonEqDist.data());
49
50 for(MInt d = 0; d < nDim * nDim; d++) {
51 momentumFlux[d] = F0;
52 }
53 for(MInt j = 0; j < nDist; j++) {
54 for(MInt k = 0; k < nDim; k++) {
55 for(MInt l = 0; l < nDim; l++) {
56 momentumFlux[k * nDim + l] += nonEqDist[j] * Ld::ppdfDir(j, k) * Ld::ppdfDir(j, l);
57 }
58 }
59 }
60 }
void calcNonEqDists(const MFloat zerothMoment, const MFloat *const firstMoment, const MFloat *const p_dist, MFloat *const p_nonEqDist) const
Definition: lbsyseqn.h:31
int32_t MInt
Definition: maiatypes.h:62
MFloat dist(const Point< DIM > &p, const Point< DIM > &q)
Definition: pointbox.h:54
LB lattice descriptor for arrays depending on D and Q.

◆ calcNonEqDists()

template<MInt nDim, MInt nDist>
void maia::lb::LbSysEqn< nDim, nDist >::calcNonEqDists ( const MFloat  zerothMoment,
const MFloat *const  firstMoment,
const MFloat *const  p_dist,
MFloat *const  p_nonEqDist 
) const
inline

Definition at line 31 of file lbsyseqn.h.

32 {
33 // Calculate equlibirum distribution
34 std::array<MFloat, nDist> eqDist{};
35 calcEqDists(zerothMoment, firstMoment, eqDist.data());
36
37 // Calculate non-equilibium part
38 for(MInt j = 0; j < nDist; j++) {
39 p_nonEqDist[j] = p_dist[j] - eqDist[j];
40 }
41 };
virtual void calcEqDists(const MFloat zerothMoment, const MFloat *const firstMoment, MFloat *const p_eqDist) const =0

◆ calcPrimitiveVars()

template<MInt nDim, MInt nDist>
virtual void maia::lb::LbSysEqn< nDim, nDist >::calcPrimitiveVars ( MFloat const *const  p_dist,
MFloat p_rho,
MFloat *const  p_u 
) const
pure virtual

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