ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
ERF_GetRhoAlpha.H
Go to the documentation of this file.
1 /* This follows the rhoAlpha calculations in ERF_DiffusionSrcForState_*.cpp
2  * and averages rhoAlpha from cell centers to z faces */
3 AMREX_GPU_HOST_DEVICE
4 AMREX_FORCE_INLINE
5 void getRhoAlpha (int i, int j, int k,
6  amrex::Real& rhoAlpha_lo, amrex::Real& rhoAlpha_hi,
7  const amrex::Array4<const amrex::Real>& cell_data,
8  const amrex::Array4<const amrex::Real>& mu_turb,
10  const int* d_eddy_diff_idz,
11  int prim_index, int prim_scal_index,
12  bool l_consA, bool l_turb)
13 {
14  if (l_consA && l_turb) {
15  rhoAlpha_lo = 0.5 * ( cell_data(i,j,k,Rho_comp) + cell_data(i,j,k-1,Rho_comp) ) * d_alpha_eff[prim_scal_index]
16  + 0.5 * ( mu_turb(i,j,k , d_eddy_diff_idz[prim_scal_index])
17  + mu_turb(i,j,k-1, d_eddy_diff_idz[prim_scal_index]) );
18  rhoAlpha_hi = 0.5 * ( cell_data(i,j,k,Rho_comp) + cell_data(i,j,k+1,Rho_comp) ) * d_alpha_eff[prim_scal_index]
19  + 0.5 * ( mu_turb(i,j,k , d_eddy_diff_idz[prim_scal_index])
20  + mu_turb(i,j,k+1, d_eddy_diff_idz[prim_scal_index]) );
21  }
22  else if (l_turb) // with MolecDiffType::Constant or None
23  {
24  rhoAlpha_lo = d_alpha_eff[prim_index]
25  + 0.5 * ( mu_turb(i,j,k , d_eddy_diff_idz[prim_index])
26  + mu_turb(i,j,k-1, d_eddy_diff_idz[prim_index]) );
27  rhoAlpha_hi = d_alpha_eff[prim_index]
28  + 0.5 * ( mu_turb(i,j,k , d_eddy_diff_idz[prim_index])
29  + mu_turb(i,j,k+1, d_eddy_diff_idz[prim_index]) );
30  }
31  else if (l_consA) // without an LES/PBL model
32  {
33  rhoAlpha_lo = 0.5 * ( cell_data(i,j,k,Rho_comp) + cell_data(i,j,k-1,Rho_comp) ) * d_alpha_eff[prim_index];
34  rhoAlpha_hi = 0.5 * ( cell_data(i,j,k,Rho_comp) + cell_data(i,j,k+1,Rho_comp) ) * d_alpha_eff[prim_index];
35  }
36  else // with MolecDiffType::Constant or None - without an LES/PBL model
37  {
38  rhoAlpha_lo = d_alpha_eff[prim_index];
39  rhoAlpha_hi = d_alpha_eff[prim_index];
40  }
41 }
AMREX_GPU_HOST_DEVICE AMREX_FORCE_INLINE void getRhoAlpha(int i, int j, int k, amrex::Real &rhoAlpha_lo, amrex::Real &rhoAlpha_hi, const amrex::Array4< const amrex::Real > &cell_data, const amrex::Array4< const amrex::Real > &mu_turb, const amrex::Real *d_alpha_eff, const int *d_eddy_diff_idz, int prim_index, int prim_scal_index, bool l_consA, bool l_turb)
Definition: ERF_GetRhoAlpha.H:5
#define Rho_comp
Definition: ERF_IndexDefines.H:36
bool l_turb
Definition: ERF_SetupVertDiff.H:8
bool l_consA
Definition: ERF_SetupVertDiff.H:7
int * d_eddy_diff_idz
Definition: ERF_SetupVertDiff.H:107
Real * d_alpha_eff
Definition: ERF_SetupVertDiff.H:104
amrex::Real Real
Definition: ERF_ShocInterface.H:19