ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
ERF_ComputeStress_EB.cpp File Reference
#include <ERF_Diffusion.H>
Include dependency graph for ERF_ComputeStress_EB.cpp:

Functions

void ComputeStressConsVisc_EB (Box bxcc, Box tbxxy, Box tbxxz, Box tbxyz, Real mu_eff, const Array4< const Real > &cell_data, Array4< Real > &tau11, Array4< Real > &tau22, Array4< Real > &tau33, Array4< Real > &tau12, Array4< Real > &tau13, Array4< Real > &tau23, const Array4< const Real > &er_arr, Array4< const Real > &vfrac, Array4< Real > &tau13i, Array4< Real > &tau23i)
 
void ComputeStressVarVisc_EB (Box bxcc, Box tbxxy, Box tbxxz, Box tbxyz, Real mu_eff, const Array4< const Real > &mu_turb, const Array4< const Real > &cell_data, Array4< Real > &tau11, Array4< Real > &tau22, Array4< Real > &tau33, Array4< Real > &tau12, Array4< Real > &tau13, Array4< Real > &tau23, const Array4< const Real > &er_arr, Array4< const Real > &vfrac, Array4< Real > &tau13i, Array4< Real > &tau23i)
 

Function Documentation

◆ ComputeStressConsVisc_EB()

void ComputeStressConsVisc_EB ( Box  bxcc,
Box  tbxxy,
Box  tbxxz,
Box  tbxyz,
Real  mu_eff,
const Array4< const Real > &  cell_data,
Array4< Real > &  tau11,
Array4< Real > &  tau22,
Array4< Real > &  tau33,
Array4< Real > &  tau12,
Array4< Real > &  tau13,
Array4< Real > &  tau23,
const Array4< const Real > &  er_arr,
Array4< const Real > &  vfrac,
Array4< Real > &  tau13i,
Array4< Real > &  tau23i 
)

Function for computing the stress with constant viscosity for EB.

Parameters
[in]bxcccell center box for tau_ii
[in]tbxxynodal xy box for tau_12
[in]tbxxznodal xz box for tau_13
[in]tbxyznodal yz box for tau_23
[in]mu_effconstant molecular viscosity
[in]cell_datato access rho if ConstantAlpha
[in,out]tau1111 strain -> stress
[in,out]tau2222 strain -> stress
[in,out]tau3333 strain -> stress
[in,out]tau1212 strain -> stress
[in,out]tau1313 strain -> stress
[in,out]tau2323 strain -> stress
[in]er_arrexpansion rate
[in]vfracvolume fractions
[in,out]tau13icontribution to stress from du/dz
[in,out]tau23icontribution to stress from dv/dz
34 {
35  Real OneThird = (one/three);
36 
37  // NOTE: mu_eff includes factor of 2
38 
39  if (cell_data)
40  // constant alpha (stored in mu_eff)
41  {
42  // Cell centered strains
43  ParallelFor(bxcc, [=] AMREX_GPU_DEVICE (int i, int j, int k) noexcept
44  {
45  if (vfrac(i,j,k) > zero) {
46  Real rhoAlpha = cell_data(i, j, k, Rho_comp) * mu_eff;
47  tau11(i,j,k) = -rhoAlpha * ( tau11(i,j,k) - OneThird*er_arr(i,j,k) );
48  tau22(i,j,k) = -rhoAlpha * ( tau22(i,j,k) - OneThird*er_arr(i,j,k) );
49  tau33(i,j,k) = -rhoAlpha * ( tau33(i,j,k) - OneThird*er_arr(i,j,k) );
50  } else {
51  tau11(i,j,k) = zero;
52  tau22(i,j,k) = zero;
53  tau33(i,j,k) = zero;
54  }
55  });
56 
57  // Off-diagonal strains
58  ParallelFor(tbxxy,tbxxz,tbxyz,
59  [=] AMREX_GPU_DEVICE (int i, int j, int k) noexcept {
60  Real vf_im1j = vfrac(i-1,j,k);
61  Real vf_ij = vfrac(i,j,k);
62  Real vf_im1jm1 = vfrac(i-1,j-1,k);
63  Real vf_ijm1 = vfrac(i,j-1,k);
64  Real vol_sum = vf_im1j + vf_ij + vf_im1jm1 + vf_ijm1;
65  Real rho_bar = zero;
66  if (vol_sum >= four) {
67  rho_bar = fourth*( cell_data(i-1, j , k, Rho_comp) + cell_data(i , j , k, Rho_comp)
68  + cell_data(i-1, j-1, k, Rho_comp) + cell_data(i , j-1, k, Rho_comp) );
69  } else if (vol_sum > zero) {
70  rho_bar = ( (vf_im1j > zero ? vf_im1j * cell_data(i-1, j , k, Rho_comp) : zero)
71  + (vf_ij > zero ? vf_ij * cell_data(i , j , k, Rho_comp) : zero)
72  + (vf_im1jm1 > zero ? vf_im1jm1 * cell_data(i-1, j-1, k, Rho_comp) : zero)
73  + (vf_ijm1 > zero ? vf_ijm1 * cell_data(i , j-1, k, Rho_comp) : zero) ) / vol_sum;
74  }
75  tau12(i,j,k) *= -rho_bar * mu_eff;
76  },
77  [=] AMREX_GPU_DEVICE (int i, int j, int k) noexcept {
78  Real vf_im1jk = vfrac(i-1,j,k);
79  Real vf_ijk = vfrac(i,j,k);
80  Real vf_im1jkm1 = vfrac(i-1,j,k-1);
81  Real vf_ijkm1 = vfrac(i,j,k-1);
82  Real vol_sum = vf_im1jk + vf_ijk + vf_im1jkm1 + vf_ijkm1;
83  Real rho_bar = zero;
84  if (vol_sum >= four) {
85  rho_bar = fourth*( cell_data(i-1, j, k , Rho_comp) + cell_data(i , j, k , Rho_comp)
86  + cell_data(i-1, j, k-1, Rho_comp) + cell_data(i , j, k-1, Rho_comp) );
87  } else if (vol_sum > zero) {
88  rho_bar = ( (vf_im1jk > zero ? vf_im1jk * cell_data(i-1, j, k , Rho_comp) : zero)
89  + (vf_ijk > zero ? vf_ijk * cell_data(i , j, k , Rho_comp) : zero)
90  + (vf_im1jkm1 > zero ? vf_im1jkm1 * cell_data(i-1, j, k-1, Rho_comp) : zero)
91  + (vf_ijkm1 > zero ? vf_ijkm1 * cell_data(i , j, k-1, Rho_comp) : zero) ) / vol_sum;
92  }
93  tau13(i,j,k) *= -rho_bar * mu_eff;
94 
95  if (tau13i) tau13i(i,j,k) *= -rho_bar * mu_eff;
96  },
97  [=] AMREX_GPU_DEVICE (int i, int j, int k) noexcept {
98  Real vf_ijm1k = vfrac(i,j-1,k);
99  Real vf_ijk = vfrac(i,j,k);
100  Real vf_ijm1km1 = vfrac(i,j-1,k-1);
101  Real vf_ijkm1 = vfrac(i,j,k-1);
102  Real vol_sum = vf_ijm1k + vf_ijk + vf_ijm1km1 + vf_ijkm1;
103  Real rho_bar = zero;
104  if (vol_sum >= four) {
105  rho_bar = fourth*( cell_data(i, j-1, k , Rho_comp) + cell_data(i, j , k , Rho_comp)
106  + cell_data(i, j-1, k-1, Rho_comp) + cell_data(i, j , k-1, Rho_comp) );
107  } else if (vol_sum > zero) {
108  rho_bar = ( (vf_ijm1k > zero ? vf_ijm1k * cell_data(i, j-1, k , Rho_comp) : zero)
109  + (vf_ijk > zero ? vf_ijk * cell_data(i, j , k , Rho_comp) : zero)
110  + (vf_ijm1km1 > zero ? vf_ijm1km1 * cell_data(i, j-1, k-1, Rho_comp) : zero)
111  + (vf_ijkm1 > zero ? vf_ijkm1 * cell_data(i, j , k-1, Rho_comp) : zero) ) / vol_sum;
112  }
113  tau23(i,j,k) *= -rho_bar * mu_eff;
114 
115  if (tau23i) tau23i(i,j,k) *= -rho_bar * mu_eff;
116  });
117  }
118  else
119  // constant mu_eff
120  {
121  // Cell centered strains
122  ParallelFor(bxcc, [=] AMREX_GPU_DEVICE (int i, int j, int k) noexcept
123  {
124  if (vfrac(i,j,k) > zero) {
125  tau11(i,j,k) = -mu_eff * ( tau11(i,j,k) - OneThird*er_arr(i,j,k) );
126  tau22(i,j,k) = -mu_eff * ( tau22(i,j,k) - OneThird*er_arr(i,j,k) );
127  tau33(i,j,k) = -mu_eff * ( tau33(i,j,k) - OneThird*er_arr(i,j,k) );
128  } else {
129  tau11(i,j,k) = zero;
130  tau22(i,j,k) = zero;
131  tau33(i,j,k) = zero;
132  }
133  });
134 
135  // Off-diagonal strains
136  ParallelFor(tbxxy,tbxxz,tbxyz,
137  [=] AMREX_GPU_DEVICE (int i, int j, int k) noexcept {
138  tau12(i,j,k) *= -mu_eff;
139  },
140  [=] AMREX_GPU_DEVICE (int i, int j, int k) noexcept {
141  tau13(i,j,k) *= -mu_eff;
142 
143  if (tau13i) tau13i(i,j,k) *= -mu_eff;
144  },
145  [=] AMREX_GPU_DEVICE (int i, int j, int k) noexcept {
146  tau23(i,j,k) *= -mu_eff;
147 
148  if (tau23i) tau23i(i,j,k) *= -mu_eff;
149  });
150  }
151 }
@ tau12
Definition: ERF_DataStruct.H:49
@ tau23
Definition: ERF_DataStruct.H:49
@ tau33
Definition: ERF_DataStruct.H:49
@ tau22
Definition: ERF_DataStruct.H:49
@ tau11
Definition: ERF_DataStruct.H:49
@ tau13
Definition: ERF_DataStruct.H:49
#define Rho_comp
Definition: ERF_IndexDefines.H:53
ParallelFor(fab_box, [=] AMREX_GPU_DEVICE(int i, int j, int k) { qrcuten_arr(i, j, k)=Real(0);qscuten_arr(i, j, k)=Real(0);qicuten_arr(i, j, k)=Real(0);})
constexpr amrex::Real three
Definition: ERF_NumericalConstants.H:39
constexpr amrex::Real four
Definition: ERF_NumericalConstants.H:40
constexpr amrex::Real one
Definition: ERF_NumericalConstants.H:37
constexpr amrex::Real fourth
Definition: ERF_NumericalConstants.H:42
constexpr amrex::Real zero
Definition: ERF_NumericalConstants.H:36
amrex::Real Real
Definition: ERF_ShocInterface.H:19

Referenced by erf_make_tau_terms().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ ComputeStressVarVisc_EB()

void ComputeStressVarVisc_EB ( Box  bxcc,
Box  tbxxy,
Box  tbxxz,
Box  tbxyz,
Real  mu_eff,
const Array4< const Real > &  mu_turb,
const Array4< const Real > &  cell_data,
Array4< Real > &  tau11,
Array4< Real > &  tau22,
Array4< Real > &  tau33,
Array4< Real > &  tau12,
Array4< Real > &  tau13,
Array4< Real > &  tau23,
const Array4< const Real > &  er_arr,
Array4< const Real > &  vfrac,
Array4< Real > &  tau13i,
Array4< Real > &  tau23i 
)

Function for computing the stress with variable viscosity for EB. rho_bar at off-diagonal locations uses vfrac-weighted averaging as in ComputeStressConsVisc_EB; mu_turb is averaged with the same vfrac weights.

Parameters
[in]bxcccell center box for tau_ii
[in]tbxxynodal xy box for tau_12
[in]tbxxznodal xz box for tau_13
[in]tbxyznodal yz box for tau_23
[in]mu_effconstant molecular viscosity
[in]mu_turbturbulent viscosity (cell-centered)
[in]cell_datato access rho if ConstantAlpha
[in,out]tau1111 strain -> stress
[in,out]tau2222 strain -> stress
[in,out]tau3333 strain -> stress
[in,out]tau1212 strain -> stress
[in,out]tau1313 strain -> stress
[in,out]tau2323 strain -> stress
[in]er_arrexpansion rate
[in]vfracvolume fractions
[in,out]tau13icontribution to stress from du/dz
[in,out]tau23icontribution to stress from dv/dz
186 {
187  Real OneThird = (one/three);
188 
189  // NOTE: mu_eff includes factor of 2
190 
191  if (cell_data)
192  // constant alpha (stored in mu_eff)
193  {
194  // Cell centered strains (no EB correction needed — cell-centered quantities)
195  ParallelFor(bxcc, [=] AMREX_GPU_DEVICE (int i, int j, int k) noexcept {
196  if (vfrac(i,j,k) > zero) {
197  Real rhoAlpha = cell_data(i, j, k, Rho_comp) * mu_eff;
198  Real mu_11 = rhoAlpha + two * mu_turb(i, j, k, EddyDiff::Mom_h);
199  Real mu_22 = mu_11;
200  Real mu_33 = rhoAlpha + two * mu_turb(i, j, k, EddyDiff::Mom_v);
201  tau11(i,j,k) = -mu_11 * ( tau11(i,j,k) - OneThird*er_arr(i,j,k) );
202  tau22(i,j,k) = -mu_22 * ( tau22(i,j,k) - OneThird*er_arr(i,j,k) );
203  tau33(i,j,k) = -mu_33 * ( tau33(i,j,k) - OneThird*er_arr(i,j,k) );
204  } else {
205  tau11(i,j,k) = zero;
206  tau22(i,j,k) = zero;
207  tau33(i,j,k) = zero;
208  }
209  });
210 
211  // Off-diagonal strains: vfrac-weighted rho_bar and mu_bar
212  ParallelFor(tbxxy,tbxxz,tbxyz,
213  [=] AMREX_GPU_DEVICE (int i, int j, int k) noexcept {
214  Real vf_im1j = vfrac(i-1,j,k);
215  Real vf_ij = vfrac(i,j,k);
216  Real vf_im1jm1 = vfrac(i-1,j-1,k);
217  Real vf_ijm1 = vfrac(i,j-1,k);
218  Real vol_sum = vf_im1j + vf_ij + vf_im1jm1 + vf_ijm1;
219  Real rho_bar = zero, mu_bar = zero;
220  if (vol_sum >= four) {
221  rho_bar = fourth*( cell_data(i-1, j , k, Rho_comp) + cell_data(i , j , k, Rho_comp)
222  + cell_data(i-1, j-1, k, Rho_comp) + cell_data(i , j-1, k, Rho_comp) );
223  mu_bar = fourth*( mu_turb(i-1, j , k, EddyDiff::Mom_h) + mu_turb(i , j , k, EddyDiff::Mom_h)
224  + mu_turb(i-1, j-1, k, EddyDiff::Mom_h) + mu_turb(i , j-1, k, EddyDiff::Mom_h) );
225  } else if (vol_sum > zero) {
226  rho_bar = ( (vf_im1j > zero ? vf_im1j * cell_data(i-1, j , k, Rho_comp) : zero)
227  + (vf_ij > zero ? vf_ij * cell_data(i , j , k, Rho_comp) : zero)
228  + (vf_im1jm1 > zero ? vf_im1jm1 * cell_data(i-1, j-1, k, Rho_comp) : zero)
229  + (vf_ijm1 > zero ? vf_ijm1 * cell_data(i , j-1, k, Rho_comp) : zero) ) / vol_sum;
230  mu_bar = ( (vf_im1j > zero ? vf_im1j * mu_turb(i-1, j , k, EddyDiff::Mom_h) : zero)
231  + (vf_ij > zero ? vf_ij * mu_turb(i , j , k, EddyDiff::Mom_h) : zero)
232  + (vf_im1jm1 > zero ? vf_im1jm1 * mu_turb(i-1, j-1, k, EddyDiff::Mom_h) : zero)
233  + (vf_ijm1 > zero ? vf_ijm1 * mu_turb(i , j-1, k, EddyDiff::Mom_h) : zero) ) / vol_sum;
234  }
235  Real mu_12 = rho_bar*mu_eff + two*mu_bar;
236  tau12(i,j,k) *= -mu_12;
237  },
238  [=] AMREX_GPU_DEVICE (int i, int j, int k) noexcept {
239  Real vf_im1jk = vfrac(i-1,j,k);
240  Real vf_ijk = vfrac(i,j,k);
241  Real vf_im1jkm1 = vfrac(i-1,j,k-1);
242  Real vf_ijkm1 = vfrac(i,j,k-1);
243  Real vol_sum = vf_im1jk + vf_ijk + vf_im1jkm1 + vf_ijkm1;
244  Real rho_bar = zero, mu_bar = zero;
245  if (vol_sum >= four) {
246  rho_bar = fourth*( cell_data(i-1, j, k , Rho_comp) + cell_data(i , j, k , Rho_comp)
247  + cell_data(i-1, j, k-1, Rho_comp) + cell_data(i , j, k-1, Rho_comp) );
248  mu_bar = fourth*( mu_turb(i-1, j, k , EddyDiff::Mom_v) + mu_turb(i , j, k , EddyDiff::Mom_v)
249  + mu_turb(i-1, j, k-1, EddyDiff::Mom_v) + mu_turb(i , j, k-1, EddyDiff::Mom_v) );
250  } else if (vol_sum > zero) {
251  rho_bar = ( (vf_im1jk > zero ? vf_im1jk * cell_data(i-1, j, k , Rho_comp) : zero)
252  + (vf_ijk > zero ? vf_ijk * cell_data(i , j, k , Rho_comp) : zero)
253  + (vf_im1jkm1 > zero ? vf_im1jkm1 * cell_data(i-1, j, k-1, Rho_comp) : zero)
254  + (vf_ijkm1 > zero ? vf_ijkm1 * cell_data(i , j, k-1, Rho_comp) : zero) ) / vol_sum;
255  mu_bar = ( (vf_im1jk > zero ? vf_im1jk * mu_turb(i-1, j, k , EddyDiff::Mom_v) : zero)
256  + (vf_ijk > zero ? vf_ijk * mu_turb(i , j, k , EddyDiff::Mom_v) : zero)
257  + (vf_im1jkm1 > zero ? vf_im1jkm1 * mu_turb(i-1, j, k-1, EddyDiff::Mom_v) : zero)
258  + (vf_ijkm1 > zero ? vf_ijkm1 * mu_turb(i , j, k-1, EddyDiff::Mom_v) : zero) ) / vol_sum;
259  }
260  Real mu_13 = rho_bar*mu_eff + two*mu_bar;
261  tau13(i,j,k) *= -mu_13;
262  if (tau13i) tau13i(i,j,k) *= -mu_13;
263  },
264  [=] AMREX_GPU_DEVICE (int i, int j, int k) noexcept {
265  Real vf_ijm1k = vfrac(i,j-1,k);
266  Real vf_ijk = vfrac(i,j,k);
267  Real vf_ijm1km1 = vfrac(i,j-1,k-1);
268  Real vf_ijkm1 = vfrac(i,j,k-1);
269  Real vol_sum = vf_ijm1k + vf_ijk + vf_ijm1km1 + vf_ijkm1;
270  Real rho_bar = zero, mu_bar = zero;
271  if (vol_sum >= four) {
272  rho_bar = fourth*( cell_data(i, j-1, k , Rho_comp) + cell_data(i, j , k , Rho_comp)
273  + cell_data(i, j-1, k-1, Rho_comp) + cell_data(i, j , k-1, Rho_comp) );
274  mu_bar = fourth*( mu_turb(i, j-1, k , EddyDiff::Mom_v) + mu_turb(i, j , k , EddyDiff::Mom_v)
275  + mu_turb(i, j-1, k-1, EddyDiff::Mom_v) + mu_turb(i, j , k-1, EddyDiff::Mom_v) );
276  } else if (vol_sum > zero) {
277  rho_bar = ( (vf_ijm1k > zero ? vf_ijm1k * cell_data(i, j-1, k , Rho_comp) : zero)
278  + (vf_ijk > zero ? vf_ijk * cell_data(i, j , k , Rho_comp) : zero)
279  + (vf_ijm1km1 > zero ? vf_ijm1km1 * cell_data(i, j-1, k-1, Rho_comp) : zero)
280  + (vf_ijkm1 > zero ? vf_ijkm1 * cell_data(i, j , k-1, Rho_comp) : zero) ) / vol_sum;
281  mu_bar = ( (vf_ijm1k > zero ? vf_ijm1k * mu_turb(i, j-1, k , EddyDiff::Mom_v) : zero)
282  + (vf_ijk > zero ? vf_ijk * mu_turb(i, j , k , EddyDiff::Mom_v) : zero)
283  + (vf_ijm1km1 > zero ? vf_ijm1km1 * mu_turb(i, j-1, k-1, EddyDiff::Mom_v) : zero)
284  + (vf_ijkm1 > zero ? vf_ijkm1 * mu_turb(i, j , k-1, EddyDiff::Mom_v) : zero) ) / vol_sum;
285  }
286  Real mu_23 = rho_bar*mu_eff + two*mu_bar;
287  tau23(i,j,k) *= -mu_23;
288  if (tau23i) tau23i(i,j,k) *= -mu_23;
289  });
290  }
291  else
292  // constant mu_eff
293  {
294  // Cell centered strains
295  ParallelFor(bxcc, [=] AMREX_GPU_DEVICE (int i, int j, int k) noexcept {
296  if (vfrac(i,j,k) > zero) {
297  Real mu_11 = mu_eff + two * mu_turb(i, j, k, EddyDiff::Mom_h);
298  Real mu_22 = mu_11;
299  Real mu_33 = mu_eff + two * mu_turb(i, j, k, EddyDiff::Mom_v);
300  tau11(i,j,k) = -mu_11 * ( tau11(i,j,k) - OneThird*er_arr(i,j,k) );
301  tau22(i,j,k) = -mu_22 * ( tau22(i,j,k) - OneThird*er_arr(i,j,k) );
302  tau33(i,j,k) = -mu_33 * ( tau33(i,j,k) - OneThird*er_arr(i,j,k) );
303  } else {
304  tau11(i,j,k) = zero;
305  tau22(i,j,k) = zero;
306  tau33(i,j,k) = zero;
307  }
308  });
309 
310  // Off-diagonal strains: vfrac-weighted mu_bar
311  ParallelFor(tbxxy,tbxxz,tbxyz,
312  [=] AMREX_GPU_DEVICE (int i, int j, int k) noexcept {
313  Real vf_im1j = vfrac(i-1,j,k);
314  Real vf_ij = vfrac(i,j,k);
315  Real vf_im1jm1 = vfrac(i-1,j-1,k);
316  Real vf_ijm1 = vfrac(i,j-1,k);
317  Real vol_sum = vf_im1j + vf_ij + vf_im1jm1 + vf_ijm1;
318  Real mu_bar = zero;
319  if (vol_sum >= four) {
320  mu_bar = fourth*( mu_turb(i-1, j , k, EddyDiff::Mom_h) + mu_turb(i , j , k, EddyDiff::Mom_h)
321  + mu_turb(i-1, j-1, k, EddyDiff::Mom_h) + mu_turb(i , j-1, k, EddyDiff::Mom_h) );
322  } else if (vol_sum > zero) {
323  mu_bar = ( (vf_im1j > zero ? vf_im1j * mu_turb(i-1, j , k, EddyDiff::Mom_h) : zero)
324  + (vf_ij > zero ? vf_ij * mu_turb(i , j , k, EddyDiff::Mom_h) : zero)
325  + (vf_im1jm1 > zero ? vf_im1jm1 * mu_turb(i-1, j-1, k, EddyDiff::Mom_h) : zero)
326  + (vf_ijm1 > zero ? vf_ijm1 * mu_turb(i , j-1, k, EddyDiff::Mom_h) : zero) ) / vol_sum;
327  }
328  Real mu_12 = mu_eff + two*mu_bar;
329  tau12(i,j,k) *= -mu_12;
330  },
331  [=] AMREX_GPU_DEVICE (int i, int j, int k) noexcept {
332  Real vf_im1jk = vfrac(i-1,j,k);
333  Real vf_ijk = vfrac(i,j,k);
334  Real vf_im1jkm1 = vfrac(i-1,j,k-1);
335  Real vf_ijkm1 = vfrac(i,j,k-1);
336  Real vol_sum = vf_im1jk + vf_ijk + vf_im1jkm1 + vf_ijkm1;
337  Real mu_bar = zero;
338  if (vol_sum >= four) {
339  mu_bar = fourth*( mu_turb(i-1, j, k , EddyDiff::Mom_v) + mu_turb(i , j, k , EddyDiff::Mom_v)
340  + mu_turb(i-1, j, k-1, EddyDiff::Mom_v) + mu_turb(i , j, k-1, EddyDiff::Mom_v) );
341  } else if (vol_sum > zero) {
342  mu_bar = ( (vf_im1jk > zero ? vf_im1jk * mu_turb(i-1, j, k , EddyDiff::Mom_v) : zero)
343  + (vf_ijk > zero ? vf_ijk * mu_turb(i , j, k , EddyDiff::Mom_v) : zero)
344  + (vf_im1jkm1 > zero ? vf_im1jkm1 * mu_turb(i-1, j, k-1, EddyDiff::Mom_v) : zero)
345  + (vf_ijkm1 > zero ? vf_ijkm1 * mu_turb(i , j, k-1, EddyDiff::Mom_v) : zero) ) / vol_sum;
346  }
347  Real mu_13 = mu_eff + two*mu_bar;
348  tau13(i,j,k) *= -mu_13;
349  if (tau13i) tau13i(i,j,k) *= -mu_13;
350  },
351  [=] AMREX_GPU_DEVICE (int i, int j, int k) noexcept {
352  Real vf_ijm1k = vfrac(i,j-1,k);
353  Real vf_ijk = vfrac(i,j,k);
354  Real vf_ijm1km1 = vfrac(i,j-1,k-1);
355  Real vf_ijkm1 = vfrac(i,j,k-1);
356  Real vol_sum = vf_ijm1k + vf_ijk + vf_ijm1km1 + vf_ijkm1;
357  Real mu_bar = zero;
358  if (vol_sum >= four) {
359  mu_bar = fourth*( mu_turb(i, j-1, k , EddyDiff::Mom_v) + mu_turb(i, j , k , EddyDiff::Mom_v)
360  + mu_turb(i, j-1, k-1, EddyDiff::Mom_v) + mu_turb(i, j , k-1, EddyDiff::Mom_v) );
361  } else if (vol_sum > zero) {
362  mu_bar = ( (vf_ijm1k > zero ? vf_ijm1k * mu_turb(i, j-1, k , EddyDiff::Mom_v) : zero)
363  + (vf_ijk > zero ? vf_ijk * mu_turb(i, j , k , EddyDiff::Mom_v) : zero)
364  + (vf_ijm1km1 > zero ? vf_ijm1km1 * mu_turb(i, j-1, k-1, EddyDiff::Mom_v) : zero)
365  + (vf_ijkm1 > zero ? vf_ijkm1 * mu_turb(i, j , k-1, EddyDiff::Mom_v) : zero) ) / vol_sum;
366  }
367  Real mu_23 = mu_eff + two*mu_bar;
368  tau23(i,j,k) *= -mu_23;
369  if (tau23i) tau23i(i,j,k) *= -mu_23;
370  });
371  }
372 }
constexpr amrex::Real two
Definition: ERF_NumericalConstants.H:38
Definition: ERF_IndexDefines.H:282
@ Mom_h
Definition: ERF_IndexDefines.H:284
@ Mom_v
Definition: ERF_IndexDefines.H:289

Referenced by erf_make_tau_terms().

Here is the call graph for this function:
Here is the caller graph for this function: