ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
ERF_DiffusionSrcForMom_EB.cpp File Reference
#include <AMReX.H>
#include <AMReX_EB_Slopes_K.H>
#include <ERF_EB.H>
#include <ERF_Diffusion.H>
#include <ERF_IndexDefines.H>
#include <ERF_EBSlopes.H>
#include <ERF_DiffStruct.H>
Include dependency graph for ERF_DiffusionSrcForMom_EB.cpp:

Functions

void DiffusionSrcForMom_EB (const MFIter &mfi, [[maybe_unused]] const Box &domain, const Box &bxx, const Box &bxy, const Box &bxz, const Array4< Real > &rho_u_rhs, const Array4< Real > &rho_v_rhs, const Array4< Real > &rho_w_rhs, const Array4< const Real > &u_arr, const Array4< const Real > &v_arr, const Array4< const Real > &w_arr, const Array4< const Real > &tau11, const Array4< const Real > &tau22, const Array4< const Real > &tau33, const Array4< const Real > &tau12, const Array4< const Real > &tau13, const Array4< const Real > &tau23, const Real *dx_arr, const GpuArray< Real, AMREX_SPACEDIM > &dxInv, const Array4< const Real > &mf_mx, const Array4< const Real > &mf_ux, const Array4< const Real > &mf_vx, const Array4< const Real > &mf_my, const Array4< const Real > &mf_uy, const Array4< const Real > &mf_vy, const SolverChoice &solverChoice, const eb_ &ebfact, [[maybe_unused]] const BCRec *d_bcrec_ptr)
 

Function Documentation

◆ DiffusionSrcForMom_EB()

void DiffusionSrcForMom_EB ( const MFIter &  mfi,
[[maybe_unused] ] const Box &  domain,
const Box &  bxx,
const Box &  bxy,
const Box &  bxz,
const Array4< Real > &  rho_u_rhs,
const Array4< Real > &  rho_v_rhs,
const Array4< Real > &  rho_w_rhs,
const Array4< const Real > &  u_arr,
const Array4< const Real > &  v_arr,
const Array4< const Real > &  w_arr,
const Array4< const Real > &  tau11,
const Array4< const Real > &  tau22,
const Array4< const Real > &  tau33,
const Array4< const Real > &  tau12,
const Array4< const Real > &  tau13,
const Array4< const Real > &  tau23,
const Real dx_arr,
const GpuArray< Real, AMREX_SPACEDIM > &  dxInv,
const Array4< const Real > &  mf_mx,
const Array4< const Real > &  mf_ux,
const Array4< const Real > &  mf_vx,
const Array4< const Real > &  mf_my,
const Array4< const Real > &  mf_uy,
const Array4< const Real > &  mf_vy,
const SolverChoice solverChoice,
const eb_ ebfact,
[[maybe_unused] ] const BCRec *  d_bcrec_ptr 
)

Function for computing the momentum RHS for diffusion operator without terrain.

Parameters
[in]mfiMultiFab Iterator
[in]domaincomputational domain
[in]bxxnodal x box for x-mom
[in]bxynodal y box for y-mom
[in]bxznodal z box for z-mom
[out]rho_u_rhsRHS for x-mom
[out]rho_v_rhsRHS for y-mom
[out]rho_w_rhsRHS for z-mom
[in]tau1111 stress
[in]tau2222 stress
[in]tau3333 stress
[in]tau1212 stress
[in]tau1313 stress
[in]tau2323 stress
[in]dxInvinverse cell size array
[in]mf_mmap factor at cell center
[in]ebfactEB factories for cell- and face-centered variables
59 {
60  BL_PROFILE_VAR("DiffusionSrcForMom_EB()",DiffusionSrcForMom_EB);
61 
62  DiffChoice dc = solverChoice.diffChoice;
63  const bool l_use_constAlpha = ( dc.molec_diff_type == MolecDiffType::ConstantAlpha );
64  Real mu_eff = (l_use_constAlpha) ? 2.0 * dc.dynamic_viscosity / dc.rho0_trans
65  : 2.0 * dc.dynamic_viscosity;
66 
67  auto dxinv = dxInv[0], dyinv = dxInv[1], dzinv = dxInv[2];
68  Real dx = dx_arr[0], dy = dx_arr[1], dz = dx_arr[2];
69  Real vol = dx * dy * dz;
70 
71  const bool l_simple = false;
72  const bool l_constraint_x = solverChoice.diffChoice.eb_diff_constraint_x;
73  const bool l_constraint_y = solverChoice.diffChoice.eb_diff_constraint_y;
74  const bool l_constraint_z = solverChoice.diffChoice.eb_diff_constraint_z;
75 
76  // int n = 0;
77 
78  // EB u-factory
79  Array4<const EBCellFlag> u_cellflg = (ebfact.get_u_const_factory())->getMultiEBCellFlagFab()[mfi].const_array();
80  Array4<const Real > u_volfrac = (ebfact.get_u_const_factory())->getVolFrac().const_array(mfi);
81  Array4<const Real > u_volcent = (ebfact.get_u_const_factory())->getCentroid().const_array(mfi);
82  Array4<const Real > u_afrac_x = (ebfact.get_u_const_factory())->getAreaFrac()[0]->const_array(mfi);
83  Array4<const Real > u_afrac_y = (ebfact.get_u_const_factory())->getAreaFrac()[1]->const_array(mfi);
84  Array4<const Real > u_afrac_z = (ebfact.get_u_const_factory())->getAreaFrac()[2]->const_array(mfi);
85  Array4<const Real > u_bcent = (ebfact.get_u_const_factory())->getBndryCent().const_array(mfi);
86  Array4<const Real > u_bnorm = (ebfact.get_u_const_factory())->getBndryNorm().const_array(mfi);
87 
88  // EB v-factory
89  Array4<const EBCellFlag> v_cellflg = (ebfact.get_v_const_factory())->getMultiEBCellFlagFab()[mfi].const_array();
90  Array4<const Real > v_volfrac = (ebfact.get_v_const_factory())->getVolFrac().const_array(mfi);
91  Array4<const Real > v_volcent = (ebfact.get_v_const_factory())->getCentroid().const_array(mfi);
92  Array4<const Real > v_afrac_x = (ebfact.get_v_const_factory())->getAreaFrac()[0]->const_array(mfi);
93  Array4<const Real > v_afrac_y = (ebfact.get_v_const_factory())->getAreaFrac()[1]->const_array(mfi);
94  Array4<const Real > v_afrac_z = (ebfact.get_v_const_factory())->getAreaFrac()[2]->const_array(mfi);
95  Array4<const Real > v_bcent = (ebfact.get_v_const_factory())->getBndryCent().const_array(mfi);
96  Array4<const Real > v_bnorm = (ebfact.get_v_const_factory())->getBndryNorm().const_array(mfi);
97 
98  // EB w-factory
99  Array4<const EBCellFlag> w_cellflg = (ebfact.get_w_const_factory())->getMultiEBCellFlagFab()[mfi].const_array();
100  Array4<const Real > w_volfrac = (ebfact.get_w_const_factory())->getVolFrac().const_array(mfi);
101  Array4<const Real > w_volcent = (ebfact.get_w_const_factory())->getCentroid().const_array(mfi);
102  Array4<const Real > w_afrac_x = (ebfact.get_w_const_factory())->getAreaFrac()[0]->const_array(mfi);
103  Array4<const Real > w_afrac_y = (ebfact.get_w_const_factory())->getAreaFrac()[1]->const_array(mfi);
104  Array4<const Real > w_afrac_z = (ebfact.get_w_const_factory())->getAreaFrac()[2]->const_array(mfi);
105  Array4<const Real > w_bcent = (ebfact.get_w_const_factory())->getBndryCent().const_array(mfi);
106  Array4<const Real > w_bnorm = (ebfact.get_w_const_factory())->getBndryNorm().const_array(mfi);
107 
108  // Two methods are implemented:
109  // (1) Simple method: approximate the gradient at EB
110  // (2) Compute the gradient at EB using Least-Squares fitting
111 
112  ParallelFor(bxx, bxy, bxz,
113  [=] AMREX_GPU_DEVICE (int i, int j, int k)
114  {
115  if (u_volfrac(i,j,k)>0.) {
116 
117  // Inv Jacobian
118  Real mfsq = mf_ux(i,j,0) * mf_uy(i,j,0);
119 
120  Real diffContrib = ( (tau11(i , j , k ) * u_afrac_x(i+1,j ,k )
121  - tau11(i-1, j , k ) * u_afrac_x(i ,j ,k ) ) * dxinv * mfsq
122  + (tau12(i , j+1, k ) * u_afrac_y(i ,j+1,k )
123  - tau12(i , j , k ) * u_afrac_y(i ,j ,k ) ) * dyinv * mfsq
124  + (tau13(i , j , k+1) * u_afrac_z(i ,j ,k+1)
125  - tau13(i , j , k ) * u_afrac_z(i ,j ,k )) * dzinv );
126  diffContrib /= u_volfrac(i,j,k);
127 
128  rho_u_rhs(i,j,k) -= diffContrib;
129 
130  if (!l_constraint_x && u_cellflg(i,j,k).isSingleValued()) {
131 
132  Real axm = u_afrac_x(i ,j ,k );
133  Real axp = u_afrac_x(i+1,j ,k );
134  Real aym = u_afrac_y(i ,j ,k );
135  Real ayp = u_afrac_y(i ,j+1,k );
136  Real azm = u_afrac_z(i ,j ,k );
137  Real azp = u_afrac_z(i ,j ,k+1);
138 
139  Real adx = (axm-axp) * dy * dz;
140  Real ady = (aym-ayp) * dx * dz;
141  Real adz = (azm-azp) * dx * dy;
142 
143  Real barea = std::sqrt(adx*adx + ady*ady + adz*adz);
144 
145  Real dudn;
146 
147  if (l_simple) {
148 
149  Real dist_x = u_bcent(i,j,k,0)*dx;
150  Real dist_y = u_bcent(i,j,k,1)*dy;
151  Real dist_z = u_bcent(i,j,k,2)*dz;
152 
153  //
154  // Should this be the distance from the centroid to the face?
155  //
156  Real dn = std::sqrt( dist_x * dist_x + dist_y * dist_y + dist_z * dist_z );
157 
158  dudn = -u_arr(i,j,k) / dn;
159 
160  } else {
161 
162  const RealVect bcent_eb {u_bcent(i,j,k,0), u_bcent(i,j,k,1), u_bcent(i,j,k,2)};
163  const Real Dirichlet_u {0.};
164  const Real Dirichlet_v {0.};
165  const Real Dirichlet_w {0.};
166 
167  GpuArray<Real,AMREX_SPACEDIM> slopes_u;
168  GpuArray<Real,AMREX_SPACEDIM> slopes_v;
169  GpuArray<Real,AMREX_SPACEDIM> slopes_w;
170 
171  slopes_u = erf_calc_slopes_eb_Dirichlet ( Vars::xvel, Vars::xvel, dx, dy, dz, i, j, k, bcent_eb, Dirichlet_u, u_arr, u_volcent, u_cellflg);
172  slopes_v = erf_calc_slopes_eb_Dirichlet_staggered( Vars::xvel, Vars::yvel, dx, dy, dz, i, j, k, bcent_eb, Dirichlet_v, v_arr, v_volcent, v_cellflg);
173  slopes_w = erf_calc_slopes_eb_Dirichlet_staggered( Vars::xvel, Vars::zvel, dx, dy, dz, i, j, k, bcent_eb, Dirichlet_w, w_arr, w_volcent, w_cellflg);
174 
175  Real dudx = slopes_u[0];
176  Real dudy = slopes_u[1];
177  Real dudz = slopes_u[2];
178  Real dvdx = slopes_v[0];
179  Real dvdy = slopes_v[1];
180  Real dwdx = slopes_w[0];
181  Real dwdz = slopes_w[2];
182 
183  Real tau11_eb = ( dudx - ( dudx + dvdy + dwdz ) / 3. );
184  Real tau12_eb = 0.5 * (dudy + dvdx);
185  Real tau13_eb = 0.5 * (dudz + dwdx);
186 
187  dudn = -(u_bnorm(i,j,k,0) * tau11_eb + u_bnorm(i,j,k,1) * tau12_eb + u_bnorm(i,j,k,2) * tau13_eb);
188  }
189 
190  rho_u_rhs(i,j,k) -= mu_eff * barea * dudn / (vol * u_volfrac(i,j,k));
191  }
192  }
193 
194  },
195  [=] AMREX_GPU_DEVICE (int i, int j, int k)
196  {
197  if (v_volfrac(i,j,k)>0.) {
198 
199  // Inv Jacobian
200  Real mfsq = mf_vx(i,j,0) * mf_vy(i,j,0);
201 
202  Real diffContrib = ( (tau12(i+1, j , k ) * v_afrac_x(i+1,j ,k )
203  - tau12(i , j , k ) * v_afrac_x(i ,j ,k ) ) * dxinv * mfsq
204  + (tau22(i , j , k ) * v_afrac_y(i ,j+1,k )
205  - tau22(i , j-1, k ) * v_afrac_y(i ,j ,k ) ) * dyinv * mfsq
206  + (tau23(i , j , k+1) * v_afrac_z(i ,j ,k+1)
207  - tau23(i , j , k ) * v_afrac_z(i ,j ,k ) ) * dzinv );
208  diffContrib /= v_volfrac(i,j,k);
209 
210  rho_v_rhs(i,j,k) -= diffContrib;
211 
212  // Boundary flux (simple version)
213  if (!l_constraint_y && v_cellflg(i,j,k).isSingleValued()) {
214 
215  Real axm = v_afrac_x(i ,j ,k );
216  Real axp = v_afrac_x(i+1,j ,k );
217  Real aym = v_afrac_y(i ,j ,k );
218  Real ayp = v_afrac_y(i ,j+1,k );
219  Real azm = v_afrac_z(i ,j ,k );
220  Real azp = v_afrac_z(i ,j ,k+1);
221 
222  Real adx = (axm-axp) * dy * dz;
223  Real ady = (aym-ayp) * dx * dz;
224  Real adz = (azm-azp) * dx * dy;
225 
226  Real barea = std::sqrt(adx*adx + ady*ady + adz*adz);
227  Real dvdn;
228 
229  if (l_simple) {
230 
231  Real dist_x = v_bcent(i,j,k,0)*dx;
232  Real dist_y = v_bcent(i,j,k,1)*dy;
233  Real dist_z = v_bcent(i,j,k,2)*dz;
234 
235  //
236  // Should this be the distance from the centroid to the face?
237  //
238  Real dn = std::sqrt( dist_x * dist_x + dist_y * dist_y + dist_z * dist_z );
239 
240  dvdn = -v_arr(i,j,k) / dn;
241 
242  } else {
243 
244  const RealVect bcent_eb {v_bcent(i,j,k,0), v_bcent(i,j,k,1), v_bcent(i,j,k,2)};
245  const Real Dirichlet_u {0.};
246  const Real Dirichlet_v {0.};
247  const Real Dirichlet_w {0.};
248 
249  GpuArray<Real,AMREX_SPACEDIM> slopes_u;
250  GpuArray<Real,AMREX_SPACEDIM> slopes_v;
251  GpuArray<Real,AMREX_SPACEDIM> slopes_w;
252 
253  slopes_u = erf_calc_slopes_eb_Dirichlet_staggered( Vars::yvel, Vars::xvel, dx, dy, dz, i, j, k, bcent_eb, Dirichlet_u, u_arr, u_volcent, u_cellflg);
254  slopes_v = erf_calc_slopes_eb_Dirichlet ( Vars::yvel, Vars::yvel, dx, dy, dz, i, j, k, bcent_eb, Dirichlet_v, v_arr, v_volcent, v_cellflg);
255  slopes_w = erf_calc_slopes_eb_Dirichlet_staggered( Vars::yvel, Vars::zvel, dx, dy, dz, i, j, k, bcent_eb, Dirichlet_w, w_arr, w_volcent, w_cellflg);
256 
257  Real dudx = slopes_u[0];
258  Real dudy = slopes_u[1];
259  Real dvdx = slopes_v[0];
260  Real dvdy = slopes_v[1];
261  Real dvdz = slopes_v[2];
262  Real dwdy = slopes_w[1];
263  Real dwdz = slopes_w[2];
264 
265  Real tau22_eb = ( dvdy - ( dudx + dvdy + dwdz ) / 3. );
266  Real tau12_eb = 0.5 * (dudy + dvdx);
267  Real tau23_eb = 0.5 * (dvdz + dwdy);
268 
269  dvdn = -(v_bnorm(i,j,k,0) * tau12_eb + v_bnorm(i,j,k,1) * tau22_eb + v_bnorm(i,j,k,2) * tau23_eb);
270  }
271 
272  rho_v_rhs(i,j,k) -= mu_eff * barea * dvdn / (vol * v_volfrac(i,j,k));
273  }
274  }
275  },
276  [=] AMREX_GPU_DEVICE (int i, int j, int k)
277  {
278  if (w_volfrac(i,j,k)>0.) {
279 
280  // Inv Jacobian
281  Real mfsq = mf_mx(i,j,0) * mf_my(i,j,0);
282 
283  Real diffContrib = ( (tau13(i+1, j , k ) * w_afrac_x(i+1,j ,k )
284  - tau13(i , j , k ) * w_afrac_x(i ,j ,k ) ) * dxinv * mfsq
285  + (tau23(i , j+1, k ) * w_afrac_y(i ,j+1,k )
286  - tau23(i , j , k ) * w_afrac_y(i ,j ,k ) ) * dyinv * mfsq
287  + (tau33(i , j , k ) * w_afrac_z(i ,j ,k+1)
288  - tau33(i , j , k-1) * w_afrac_z(i ,j ,k ) ) * dzinv );
289  diffContrib /= w_volfrac(i,j,k);
290  rho_w_rhs(i,j,k) -= diffContrib;
291 
292  // Boundary flux (simple version)
293  if (!l_constraint_z && w_cellflg(i,j,k).isSingleValued()) {
294 
295  Real axm = w_afrac_x(i ,j ,k );
296  Real axp = w_afrac_x(i+1,j ,k );
297  Real aym = w_afrac_y(i ,j ,k );
298  Real ayp = w_afrac_y(i ,j+1,k );
299  Real azm = w_afrac_z(i ,j ,k );
300  Real azp = w_afrac_z(i ,j ,k+1);
301 
302  Real adx = (axm-axp) * dy * dz;
303  Real ady = (aym-ayp) * dx * dz;
304  Real adz = (azm-azp) * dx * dy;
305 
306  Real barea = std::sqrt(adx*adx + ady*ady + adz*adz);
307  Real dwdn;
308 
309  if (l_simple) {
310 
311  Real dist_x = w_bcent(i,j,k,0)*dx;
312  Real dist_y = w_bcent(i,j,k,1)*dy;
313  Real dist_z = w_bcent(i,j,k,2)*dz;
314 
315  //
316  // Should this be the distance from the centroid to the face?
317  //
318  Real dn = std::sqrt( dist_x * dist_x + dist_y * dist_y + dist_z * dist_z );
319 
320  dwdn = -w_arr(i,j,k) / dn;
321 
322  } else {
323 
324  const RealVect bcent_eb {w_bcent(i,j,k,0), w_bcent(i,j,k,1), w_bcent(i,j,k,2)};
325  const Real Dirichlet_u {0.};
326  const Real Dirichlet_v {0.};
327  const Real Dirichlet_w {0.};
328 
329  GpuArray<Real,AMREX_SPACEDIM> slopes_u;
330  GpuArray<Real,AMREX_SPACEDIM> slopes_v;
331  GpuArray<Real,AMREX_SPACEDIM> slopes_w;
332 
333  slopes_u = erf_calc_slopes_eb_Dirichlet_staggered( Vars::zvel, Vars::xvel, dx, dy, dz, i, j, k, bcent_eb, Dirichlet_u, u_arr, u_volcent, u_cellflg);
334  slopes_v = erf_calc_slopes_eb_Dirichlet_staggered( Vars::zvel, Vars::yvel, dx, dy, dz, i, j, k, bcent_eb, Dirichlet_v, v_arr, v_volcent, v_cellflg);
335  slopes_w = erf_calc_slopes_eb_Dirichlet ( Vars::zvel, Vars::zvel, dx, dy, dz, i, j, k, bcent_eb, Dirichlet_w, w_arr, w_volcent, w_cellflg);
336 
337  Real dudx = slopes_u[0];
338  // Real dudy = slopes_u[1];
339  Real dudz = slopes_u[2];
340  // Real dvdx = slopes_v[0];
341  Real dvdy = slopes_v[1];
342  Real dvdz = slopes_v[2];
343  Real dwdx = slopes_w[0];
344  Real dwdy = slopes_w[1];
345  Real dwdz = slopes_w[2];
346 
347  Real tau33_eb = ( dwdz - ( dudx + dvdy + dwdz ) / 3. );
348  Real tau13_eb = 0.5 * (dudz + dwdx);
349  Real tau23_eb = 0.5 * (dvdz + dwdy);
350 
351  dwdn = -(w_bnorm(i,j,k,0) * tau13_eb + w_bnorm(i,j,k,1) * tau23_eb + w_bnorm(i,j,k,2) * tau33_eb);
352  }
353 
354  rho_w_rhs(i,j,k) -= mu_eff * barea * dwdn / (vol * w_volfrac(i,j,k));
355  }
356  }
357  });
358 
359 }
@ tau12
Definition: ERF_DataStruct.H:31
@ tau23
Definition: ERF_DataStruct.H:31
@ tau33
Definition: ERF_DataStruct.H:31
@ tau22
Definition: ERF_DataStruct.H:31
@ tau11
Definition: ERF_DataStruct.H:31
@ tau13
Definition: ERF_DataStruct.H:31
void DiffusionSrcForMom_EB(const MFIter &mfi, [[maybe_unused]] const Box &domain, const Box &bxx, const Box &bxy, const Box &bxz, const Array4< Real > &rho_u_rhs, const Array4< Real > &rho_v_rhs, const Array4< Real > &rho_w_rhs, const Array4< const Real > &u_arr, const Array4< const Real > &v_arr, const Array4< const Real > &w_arr, const Array4< const Real > &tau11, const Array4< const Real > &tau22, const Array4< const Real > &tau33, const Array4< const Real > &tau12, const Array4< const Real > &tau13, const Array4< const Real > &tau23, const Real *dx_arr, const GpuArray< Real, AMREX_SPACEDIM > &dxInv, const Array4< const Real > &mf_mx, const Array4< const Real > &mf_ux, const Array4< const Real > &mf_vx, const Array4< const Real > &mf_my, const Array4< const Real > &mf_uy, const Array4< const Real > &mf_vy, const SolverChoice &solverChoice, const eb_ &ebfact, [[maybe_unused]] const BCRec *d_bcrec_ptr)
Definition: ERF_DiffusionSrcForMom_EB.cpp:33
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > erf_calc_slopes_eb_Dirichlet_staggered(int igrid_query, int igrid_data, amrex::Real dx, amrex::Real dy, amrex::Real dz, int i, int j, int k, amrex::RealVect const &bcent_eb, amrex::Real const state_eb, amrex::Array4< amrex::Real const > const &state, amrex::Array4< amrex::Real const > const &ccent, amrex::Array4< amrex::EBCellFlag const > const &flag)
Definition: ERF_EBSlopes.H:157
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > erf_calc_slopes_eb_Dirichlet([[maybe_unused]] int igrid_query, [[maybe_unused]] int igrid_data, amrex::Real dx, amrex::Real dy, amrex::Real dz, int i, int j, int k, amrex::RealVect const &bcent_eb, amrex::Real const state_eb, amrex::Array4< amrex::Real const > const &state, amrex::Array4< amrex::Real const > const &ccent, amrex::Array4< amrex::EBCellFlag const > const &flag)
Definition: ERF_EBSlopes.H:20
amrex::Real Real
Definition: ERF_ShocInterface.H:19
eb_aux_ const * get_w_const_factory() const noexcept
Definition: ERF_EB.H:58
eb_aux_ const * get_v_const_factory() const noexcept
Definition: ERF_EB.H:57
eb_aux_ const * get_u_const_factory() const noexcept
Definition: ERF_EB.H:56
@ xvel
Definition: ERF_IndexDefines.H:141
@ zvel
Definition: ERF_IndexDefines.H:143
@ yvel
Definition: ERF_IndexDefines.H:142
Definition: ERF_DiffStruct.H:19
amrex::Real rho0_trans
Definition: ERF_DiffStruct.H:91
bool eb_diff_constraint_z
Definition: ERF_DiffStruct.H:99
bool eb_diff_constraint_x
Definition: ERF_DiffStruct.H:97
bool eb_diff_constraint_y
Definition: ERF_DiffStruct.H:98
MolecDiffType molec_diff_type
Definition: ERF_DiffStruct.H:84
amrex::Real dynamic_viscosity
Definition: ERF_DiffStruct.H:96
DiffChoice diffChoice
Definition: ERF_DataStruct.H:992
Here is the call graph for this function: