ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
ERF_AdvectionSrcForMom_TF.cpp File Reference
#include "AMReX_BCRec.H"
#include <ERF_Advection.H>
#include <ERF_AdvectionSrcForMom_N.H>
#include <ERF_AdvectionSrcForMom_T.H>
Include dependency graph for ERF_AdvectionSrcForMom_TF.cpp:

Functions

void AdvectionSrcForMom_TF (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, const Array4< const Real > &v, const Array4< const Real > &w, const Array4< const Real > &rho_u, const Array4< const Real > &rho_v, const Array4< const Real > &Omega, const Array4< const Real > &z_nd, const Array4< const Real > &ax, const Array4< const Real > &ay, const Array4< const Real > &az, const Array4< const Real > &detJ, const GpuArray< Real, AMREX_SPACEDIM > &cellSizeInv, 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 AdvType horiz_adv_type, const AdvType vert_adv_type, const Real horiz_upw_frac, const Real vert_upw_frac, const int lo_z_face, const int hi_z_face)
 

Function Documentation

◆ AdvectionSrcForMom_TF()

void AdvectionSrcForMom_TF ( 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,
const Array4< const Real > &  v,
const Array4< const Real > &  w,
const Array4< const Real > &  rho_u,
const Array4< const Real > &  rho_v,
const Array4< const Real > &  Omega,
const Array4< const Real > &  z_nd,
const Array4< const Real > &  ax,
const Array4< const Real > &  ay,
const Array4< const Real > &  az,
const Array4< const Real > &  detJ,
const GpuArray< Real, AMREX_SPACEDIM > &  cellSizeInv,
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 AdvType  horiz_adv_type,
const AdvType  vert_adv_type,
const Real  horiz_upw_frac,
const Real  vert_upw_frac,
const int  lo_z_face,
const int  hi_z_face 
)

Function for computing the advective tendency for the momentum equations ONLY when using terrain-fitted coordinates

Parameters
[in]bxxbox over which the x-momentum is updated
[in]bxybox over which the y-momentum is updated
[in]bxzbox over which the z-momentum is updated
[out]rho_u_rhstendency for the x-momentum equation
[out]rho_v_rhstendency for the y-momentum equation
[out]rho_w_rhstendency for the z-momentum equation
[in]ux-component of the velocity
[in]vy-component of the velocity
[in]wz-component of the velocity
[in]rho_ux-component of the momentum
[in]rho_vy-component of the momentum
[in]Omegacomponent of the momentum normal to the z-coordinate surface
[in]z_ndheight coordinate at nodes
[in]axArea fraction of x-faces
[in]ayArea fraction of y-faces
[in]azArea fraction of z-faces
[in]detJJacobian of the metric transformation
[in]cellSizeInvinverse of the grid spacing
[in]mf_mxx map factor at cell centers
[in]mf_uxx map factor at x-faces
[in]mf_vxx map factor at y-faces
[in]mf_myy map factor at cell centers
[in]mf_uyy map factor at x-faces
[in]mf_vyy map factor at y-faces
[in]horiz_adv_typesets the spatial order to be used for lateral derivatives
[in]vert_adv_typesets the spatial order to be used for vertical derivatives
[in]horiz_upw_frachorizontal upwind blending fraction
[in]vert_upw_fracvertical upwind blending fraction
[in]lo_z_faceminimum z-face k-index at this level
[in]hi_z_facemaximum z-face k-index at this level
72 {
73  BL_PROFILE_VAR("AdvectionSrcForMom_TF", AdvectionSrcForMom_TF);
74 
75  AMREX_ALWAYS_ASSERT(bxz.smallEnd(2) > 0);
76 
77  auto dxInv = cellSizeInv[0], dyInv = cellSizeInv[1], dzInv = cellSizeInv[2];
78 
79  // Compute mapfactor inverses
80  Box box2d_u(bxx); box2d_u.setRange(2,0); box2d_u.grow({3,3,0});
81  Box box2d_v(bxy); box2d_v.setRange(2,0); box2d_v.grow({3,3,0});
82 
83  FArrayBox mf_ux_invFAB(box2d_u,1,The_Async_Arena());
84  FArrayBox mf_uy_invFAB(box2d_u,1,The_Async_Arena());
85  const Array4<Real>& mf_ux_inv = mf_ux_invFAB.array();
86  const Array4<Real>& mf_uy_inv = mf_uy_invFAB.array();
87 
88  FArrayBox mf_vx_invFAB(box2d_v,1,The_Async_Arena());
89  FArrayBox mf_vy_invFAB(box2d_v,1,The_Async_Arena());
90  const Array4<Real>& mf_vx_inv = mf_vx_invFAB.array();
91  const Array4<Real>& mf_vy_inv = mf_vy_invFAB.array();
92 
93  ParallelFor(box2d_u, box2d_v,
94  [=] AMREX_GPU_DEVICE (int i, int j, int) noexcept
95  {
96  mf_ux_inv(i,j,0) = one / mf_ux(i,j,0);
97  mf_uy_inv(i,j,0) = one / mf_uy(i,j,0);
98  },
99  [=] AMREX_GPU_DEVICE (int i, int j, int) noexcept
100  {
101  mf_vx_inv(i,j,0) = one / mf_vx(i,j,0);
102  mf_vy_inv(i,j,0) = one / mf_vy(i,j,0);
103  });
104 
105  // Inline with 2nd order for efficiency
106  if (horiz_adv_type == AdvType::Centered_2nd && vert_adv_type == AdvType::Centered_2nd)
107  {
108  ParallelFor(bxx, bxy, bxz,
109  [=] AMREX_GPU_DEVICE (int i, int j, int k) noexcept
110  {
111  Real xflux_hi = fourth * (rho_u(i,j,k) * mf_uy_inv(i,j,0) + rho_u(i+1,j,k) * mf_uy_inv(i+1,j,0)) *
112  (u(i+1,j,k) + u(i,j,k)) * myhalf * (ax(i,j,k) + ax(i+1,j,k));
113 
114  Real xflux_lo = fourth * (rho_u(i,j,k) * mf_uy_inv(i,j,0) + rho_u(i-1,j,k) * mf_uy_inv(i-1,j,0)) *
115  (u(i-1,j,k) + u(i,j,k)) * myhalf * (ax(i,j,k) + ax(i-1,j,k));
116 
117  Real met_h_zeta_yhi = Compute_h_zeta_AtEdgeCenterK(i,j+1,k,cellSizeInv,z_nd);
118  Real yflux_hi = fourth * (rho_v(i,j+1,k)*mf_vx_inv(i,j+1,0) + rho_v(i-1,j+1,k)*mf_vx_inv(i-1,j+1,0)) *
119  (u(i,j+1,k) + u(i,j,k)) * met_h_zeta_yhi;
120 
121  Real met_h_zeta_ylo = Compute_h_zeta_AtEdgeCenterK(i,j ,k,cellSizeInv,z_nd);
122  Real yflux_lo = fourth * (rho_v(i,j ,k)*mf_vx_inv(i,j ,0) + rho_v(i-1,j ,k)*mf_vx_inv(i-1,j ,0)) *
123  (u(i,j-1,k) + u(i,j,k)) * met_h_zeta_ylo;
124 
125  Real zflux_hi = fourth * (Omega(i,j,k+1) + Omega(i-1,j,k+1)) * (u(i,j,k+1) + u(i,j,k)) *
126  myhalf * (az(i,j,k+1) + az(i-1,j,k+1));
127  Real zflux_lo = fourth * (Omega(i,j,k ) + Omega(i-1,j,k )) * (u(i,j,k-1) + u(i,j,k)) *
128  myhalf * (az(i,j,k ) + az(i-1,j,k ));
129 
130  Real mfsq = mf_ux(i,j,0) * mf_uy(i,j,0);
131 
132  Real advectionSrc = (xflux_hi - xflux_lo) * dxInv * mfsq
133  + (yflux_hi - yflux_lo) * dyInv * mfsq
134  + (zflux_hi - zflux_lo) * dzInv;
135  rho_u_rhs(i, j, k) = -advectionSrc / (myhalf * (detJ(i,j,k) + detJ(i-1,j,k)));
136  },
137  [=] AMREX_GPU_DEVICE (int i, int j, int k) noexcept
138  {
139 
140  Real met_h_zeta_xhi = Compute_h_zeta_AtEdgeCenterK(i+1,j,k,cellSizeInv,z_nd);
141  Real xflux_hi = fourth * (rho_u(i+1,j,k)*mf_uy_inv(i+1,j,0) + rho_u(i+1,j-1,k)*mf_uy_inv(i+1,j-1,0)) *
142  (v(i+1,j,k) + v(i,j,k)) * met_h_zeta_xhi;
143 
144  Real met_h_zeta_xlo = Compute_h_zeta_AtEdgeCenterK(i ,j,k,cellSizeInv,z_nd);
145  Real xflux_lo = fourth * (rho_u(i, j, k)*mf_uy_inv(i ,j,0) + rho_u(i ,j-1,k)*mf_uy_inv(i ,j-1,0)) *
146  (v(i-1,j,k) + v(i,j,k)) * met_h_zeta_xlo;
147 
148  Real yflux_hi = fourth * (rho_v(i,j+1,k)*mf_vx_inv(i,j+1,0) + rho_v(i,j ,k) * mf_vx_inv(i,j ,0)) *
149  (v(i,j+1,k) + v(i,j,k)) * myhalf * (ay(i,j,k) + ay(i,j+1,k));
150 
151  Real yflux_lo = fourth * (rho_v(i,j ,k)*mf_vx_inv(i,j ,0) + rho_v(i,j-1,k) * mf_vx_inv(i,j-1,0)) *
152  (v(i,j-1,k) + v(i,j,k)) * myhalf * (ay(i,j,k) + ay(i,j-1,k));
153 
154  Real zflux_hi = fourth * (Omega(i,j,k+1) + Omega(i, j-1, k+1)) * (v(i,j,k+1) + v(i,j,k)) *
155  myhalf * (az(i,j,k+1) + az(i,j-1,k+1));
156  Real zflux_lo = fourth * (Omega(i,j,k ) + Omega(i, j-1, k )) * (v(i,j,k-1) + v(i,j,k)) *
157  myhalf * (az(i,j,k ) + az(i,j-1,k ));
158 
159  Real mfsq = mf_vx(i,j,0) * mf_vy(i,j,0);
160 
161  Real advectionSrc = (xflux_hi - xflux_lo) * dxInv * mfsq
162  + (yflux_hi - yflux_lo) * dyInv * mfsq
163  + (zflux_hi - zflux_lo) * dzInv;
164  rho_v_rhs(i, j, k) = -advectionSrc / (myhalf * (detJ(i,j,k) + detJ(i,j-1,k)));
165  },
166  [=] AMREX_GPU_DEVICE (int i, int j, int k) noexcept
167  {
168  Real met_h_zeta_xhi = Compute_h_zeta_AtEdgeCenterJ(i+1,j ,k ,cellSizeInv,z_nd);
169  Real xflux_hi = fourth * (rho_u(i+1,j ,k) + rho_u(i+1,j,k-1)) * mf_uy_inv(i+1,j,0) *
170  (w(i+1,j,k) + w(i,j,k)) * met_h_zeta_xhi;
171 
172  Real met_h_zeta_xlo = Compute_h_zeta_AtEdgeCenterJ(i ,j ,k ,cellSizeInv,z_nd);
173  Real xflux_lo = fourth * (rho_u(i ,j ,k) + rho_u(i ,j,k-1)) * mf_uy_inv(i ,j,0) *
174  (w(i-1,j,k) + w(i,j,k)) * met_h_zeta_xlo;
175 
176  Real met_h_zeta_yhi = Compute_h_zeta_AtEdgeCenterI(i ,j+1,k ,cellSizeInv,z_nd);
177  Real yflux_hi = fourth * (rho_v(i,j+1,k) + rho_v(i,j+1,k-1)) * mf_vx_inv(i,j+1,0) *
178  (w(i,j+1,k) + w(i,j,k)) * met_h_zeta_yhi;
179 
180  Real met_h_zeta_ylo = Compute_h_zeta_AtEdgeCenterI(i ,j ,k ,cellSizeInv,z_nd);
181  Real yflux_lo = fourth * (rho_v(i,j ,k) + rho_v(i,j ,k-1)) * mf_vx_inv(i,j ,0) *
182  (w(i,j-1,k) + w(i,j,k)) * met_h_zeta_ylo;
183 
184  Real zflux_lo = fourth * (Omega(i,j,k) + Omega(i,j,k-1)) * (w(i,j,k) + w(i,j,k-1)) *
185  myhalf * (az(i,j,k) + az(i,j,k+1));
186 
187  Real zflux_hi = (k == hi_z_face) ? Omega(i,j,k) * w(i,j,k) * az(i,j,k):
188  fourth * (Omega(i,j,k) + Omega(i,j,k+1)) * (w(i,j,k) + w(i,j,k+1)) *
189  myhalf * (az(i,j,k) + az(i,j,k+1));
190 
191  Real mfsq = mf_mx(i,j,0) * mf_my(i,j,0);
192 
193  Real advectionSrc = (xflux_hi - xflux_lo) * dxInv * mfsq
194  + (yflux_hi - yflux_lo) * dyInv * mfsq
195  + (zflux_hi - zflux_lo) * dzInv;
196  rho_w_rhs(i, j, k) = -advectionSrc / (myhalf*(detJ(i,j,k) + detJ(i,j,k-1)));
197  });
198 
199  // Template higher order methods
200  } else {
201  if (horiz_adv_type == AdvType::Centered_2nd) {
202  AdvectionSrcForMomVert<CENTERED2>(bxx, bxy, bxz,
203  rho_u_rhs, rho_v_rhs, rho_w_rhs,
204  rho_u, rho_v, Omega, u, v, w,
205  z_nd, ax, ay, az, detJ, cellSizeInv,
206  mf_mx, mf_ux_inv, mf_vx_inv,
207  mf_my, mf_uy_inv, mf_vy_inv,
208  horiz_upw_frac, vert_upw_frac,
209  vert_adv_type, lo_z_face, hi_z_face);
210  } else if (horiz_adv_type == AdvType::Upwind_3rd) {
211  AdvectionSrcForMomVert<UPWIND3>(bxx, bxy, bxz,
212  rho_u_rhs, rho_v_rhs, rho_w_rhs,
213  rho_u, rho_v, Omega, u, v, w,
214  z_nd, ax, ay, az, detJ, cellSizeInv,
215  mf_mx, mf_ux_inv, mf_vx_inv,
216  mf_my, mf_uy_inv, mf_vy_inv,
217  horiz_upw_frac, vert_upw_frac,
218  vert_adv_type, lo_z_face, hi_z_face);
219  } else if (horiz_adv_type == AdvType::Centered_4th) {
220  AdvectionSrcForMomVert<CENTERED4>(bxx, bxy, bxz,
221  rho_u_rhs, rho_v_rhs, rho_w_rhs,
222  rho_u, rho_v, Omega, u, v, w,
223  z_nd, ax, ay, az, detJ, cellSizeInv,
224  mf_mx, mf_ux_inv, mf_vx_inv,
225  mf_my, mf_uy_inv, mf_vy_inv,
226  horiz_upw_frac, vert_upw_frac,
227  vert_adv_type, lo_z_face, hi_z_face);
228  } else if (horiz_adv_type == AdvType::Upwind_5th) {
229  AdvectionSrcForMomVert<UPWIND5>(bxx, bxy, bxz,
230  rho_u_rhs, rho_v_rhs, rho_w_rhs,
231  rho_u, rho_v, Omega, u, v, w,
232  z_nd, ax, ay, az, detJ, cellSizeInv,
233  mf_mx, mf_ux_inv, mf_vx_inv,
234  mf_my, mf_uy_inv, mf_vy_inv,
235  horiz_upw_frac, vert_upw_frac,
236  vert_adv_type, lo_z_face, hi_z_face);
237  } else if (horiz_adv_type == AdvType::Centered_6th) {
238  AdvectionSrcForMomVert<CENTERED6>(bxx, bxy, bxz,
239  rho_u_rhs, rho_v_rhs, rho_w_rhs,
240  rho_u, rho_v, Omega, u, v, w,
241  z_nd, ax, ay, az, detJ, cellSizeInv,
242  mf_mx, mf_ux_inv, mf_vx_inv,
243  mf_my, mf_uy_inv, mf_vy_inv,
244  horiz_upw_frac, vert_upw_frac,
245  vert_adv_type, lo_z_face, hi_z_face);
246  } else if (horiz_adv_type == AdvType::Weno_3) {
247  AdvectionSrcForMomVert<WENO3>(bxx, bxy, bxz,
248  rho_u_rhs, rho_v_rhs, rho_w_rhs,
249  rho_u, rho_v, Omega, u, v, w,
250  z_nd, ax, ay, az, detJ, cellSizeInv,
251  mf_mx, mf_ux_inv, mf_vx_inv,
252  mf_my, mf_uy_inv, mf_vy_inv,
253  horiz_upw_frac, vert_upw_frac,
254  vert_adv_type, lo_z_face, hi_z_face);
255  } else if (horiz_adv_type == AdvType::Weno_3Z) {
256  AdvectionSrcForMomVert<WENO_Z3>(bxx, bxy, bxz,
257  rho_u_rhs, rho_v_rhs, rho_w_rhs,
258  rho_u, rho_v, Omega, u, v, w,
259  z_nd, ax, ay, az, detJ, cellSizeInv,
260  mf_mx, mf_ux_inv, mf_vx_inv,
261  mf_my, mf_uy_inv, mf_vy_inv,
262  horiz_upw_frac, vert_upw_frac,
263  vert_adv_type, lo_z_face, hi_z_face);
264  } else if (horiz_adv_type == AdvType::Weno_3MZQ) {
265  AdvectionSrcForMomVert<WENO_MZQ3>(bxx, bxy, bxz,
266  rho_u_rhs, rho_v_rhs, rho_w_rhs,
267  rho_u, rho_v, Omega, u, v, w,
268  z_nd, ax, ay, az, detJ, cellSizeInv,
269  mf_mx, mf_ux_inv, mf_vx_inv,
270  mf_my, mf_uy_inv, mf_vy_inv,
271  horiz_upw_frac, vert_upw_frac,
272  vert_adv_type, lo_z_face, hi_z_face);
273  } else if (horiz_adv_type == AdvType::Weno_5) {
274  AdvectionSrcForMomVert<WENO5>(bxx, bxy, bxz,
275  rho_u_rhs, rho_v_rhs, rho_w_rhs,
276  rho_u, rho_v, Omega, u, v, w,
277  z_nd, ax, ay, az, detJ, cellSizeInv,
278  mf_mx, mf_ux_inv, mf_vx_inv,
279  mf_my, mf_uy_inv, mf_vy_inv,
280  horiz_upw_frac, vert_upw_frac,
281  vert_adv_type, lo_z_face, hi_z_face);
282  } else if (horiz_adv_type == AdvType::Weno_5Z) {
283  AdvectionSrcForMomVert<WENO_Z5>(bxx, bxy, bxz,
284  rho_u_rhs, rho_v_rhs, rho_w_rhs,
285  rho_u, rho_v, Omega, u, v, w,
286  z_nd, ax, ay, az, detJ, cellSizeInv,
287  mf_mx, mf_ux_inv, mf_vx_inv,
288  mf_my, mf_uy_inv, mf_vy_inv,
289  horiz_upw_frac, vert_upw_frac,
290  vert_adv_type, lo_z_face, hi_z_face);
291  } else if (horiz_adv_type == AdvType::Weno_7) {
292  AdvectionSrcForMomVert<WENO7>(bxx, bxy, bxz,
293  rho_u_rhs, rho_v_rhs, rho_w_rhs,
294  rho_u, rho_v, Omega, u, v, w,
295  z_nd, ax, ay, az, detJ, cellSizeInv,
296  mf_mx, mf_ux_inv, mf_vx_inv,
297  mf_my, mf_uy_inv, mf_vy_inv,
298  horiz_upw_frac, vert_upw_frac,
299  vert_adv_type, lo_z_face, hi_z_face);
300  } else if (horiz_adv_type == AdvType::Weno_7Z) {
301  AdvectionSrcForMomVert<WENO_Z7>(bxx, bxy, bxz,
302  rho_u_rhs, rho_v_rhs, rho_w_rhs,
303  rho_u, rho_v, Omega, u, v, w,
304  z_nd, ax, ay, az, detJ, cellSizeInv,
305  mf_mx, mf_ux_inv, mf_vx_inv,
306  mf_my, mf_uy_inv, mf_vy_inv,
307  horiz_upw_frac, vert_upw_frac,
308  vert_adv_type, lo_z_face, hi_z_face);
309  } else {
310  AMREX_ASSERT_WITH_MESSAGE(false, "Unknown advection scheme!");
311  }
312  }
313 }
void AdvectionSrcForMom_TF(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, const Array4< const Real > &v, const Array4< const Real > &w, const Array4< const Real > &rho_u, const Array4< const Real > &rho_v, const Array4< const Real > &Omega, const Array4< const Real > &z_nd, const Array4< const Real > &ax, const Array4< const Real > &ay, const Array4< const Real > &az, const Array4< const Real > &detJ, const GpuArray< Real, AMREX_SPACEDIM > &cellSizeInv, 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 AdvType horiz_adv_type, const AdvType vert_adv_type, const Real horiz_upw_frac, const Real vert_upw_frac, const int lo_z_face, const int hi_z_face)
Definition: ERF_AdvectionSrcForMom_TF.cpp:45
constexpr amrex::Real one
Definition: ERF_Constants.H:9
constexpr amrex::Real fourth
Definition: ERF_Constants.H:14
constexpr amrex::Real myhalf
Definition: ERF_Constants.H:13
@ Centered_4th
@ Centered_6th
@ Centered_2nd
amrex::GpuArray< Real, AMREX_SPACEDIM > dxInv
Definition: ERF_InitCustomPertVels_ParticleTests.H:17
AMREX_ALWAYS_ASSERT(bx.length()[2]==khi+1)
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);})
Real w
Definition: ERF_Plotfile2DInterpolator.cpp:22
amrex::Real Real
Definition: ERF_ShocInterface.H:19
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real Compute_h_zeta_AtEdgeCenterJ(const int &i, const int &j, const int &k, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &cellSizeInv, const amrex::Array4< const amrex::Real > &z_nd)
Definition: ERF_TerrainMetrics.H:549
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real Compute_h_zeta_AtEdgeCenterK(const int &i, const int &j, const int &k, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &cellSizeInv, const amrex::Array4< const amrex::Real > &z_nd)
Definition: ERF_TerrainMetrics.H:474
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real Compute_h_zeta_AtEdgeCenterI(const int &i, const int &j, const int &k, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &cellSizeInv, const amrex::Array4< const amrex::Real > &z_nd)
Definition: ERF_TerrainMetrics.H:623
AMREX_ASSERT_WITH_MESSAGE(wbar_cutoff_min > wbar_cutoff_max, "ERROR: wbar_cutoff_min < wbar_cutoff_max")
Here is the call graph for this function: