ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
ERF_SetupDiff.H
Go to the documentation of this file.
1  // include common definitions used in the implicit diffusion solve
2 #include "ERF_SetupVertDiff.H"
3 
4  const Real dx_inv = cellSizeInv[0];
5  const Real dy_inv = cellSizeInv[1];
6 
7  const Box xbx = surroundingNodes(bx,0);
8  const Box ybx = surroundingNodes(bx,1);
9  const Box zbx = surroundingNodes(bx,2);
10 
11  [[maybe_unused]] const int end_comp = start_comp + num_comp - 1;
12  [[maybe_unused]] bool l_use_keqn = turbChoice.use_keqn;
13  [[maybe_unused]] bool l_use_mynn = turbChoice.use_pbl_tke;
14 
15  // used by ERF_AddTKESources.H
16  [[maybe_unused]] const bool use_ref_theta = (turbChoice.theta_ref > 0);
17  [[maybe_unused]] const Real l_inv_theta0 = (use_ref_theta) ? one / turbChoice.theta_ref : one;
18 
19  // vertical diffusivities are defined in ERF_SetupVertDiff.H
20  // The number of quantities following Scalar_h must be equal to the number
21  // of quantities in the conserved state following RhoScalar_comp -- this is
22  // currently all the moist quantities, which tops out at 11 for the Morrison model
33 
34  // Device vectors
35  Gpu::AsyncVector<int> eddy_diff_idx_d;
36  Gpu::AsyncVector<int> eddy_diff_idy_d;
37 
40 
41  Gpu::copy(Gpu::hostToDevice, eddy_diff_idx.begin(), eddy_diff_idx.end(), eddy_diff_idx_d.begin());
42  Gpu::copy(Gpu::hostToDevice, eddy_diff_idy.begin(), eddy_diff_idy.end(), eddy_diff_idy_d.begin());
43 
44  // Capture pointers for device code
constexpr amrex::Real one
Definition: ERF_Constants.H:7
Vector< int > eddy_diff_idy
Definition: ERF_SetupDiff.H:28
const int end_comp
Definition: ERF_SetupDiff.H:11
int * d_eddy_diff_idx
Definition: ERF_SetupDiff.H:45
bool l_use_keqn
Definition: ERF_SetupDiff.H:12
const Box zbx
Definition: ERF_SetupDiff.H:9
const bool use_ref_theta
Definition: ERF_SetupDiff.H:16
const Real dx_inv
Definition: ERF_SetupDiff.H:4
const Real dy_inv
Definition: ERF_SetupDiff.H:5
Vector< int > eddy_diff_idx
Definition: ERF_SetupDiff.H:23
int * d_eddy_diff_idy
Definition: ERF_SetupDiff.H:46
bool l_use_mynn
Definition: ERF_SetupDiff.H:13
const Box xbx
Definition: ERF_SetupDiff.H:7
Gpu::AsyncVector< int > eddy_diff_idy_d
Definition: ERF_SetupDiff.H:36
Gpu::AsyncVector< int > eddy_diff_idx_d
Definition: ERF_SetupDiff.H:35
const Box ybx
Definition: ERF_SetupDiff.H:8
const Real l_inv_theta0
Definition: ERF_SetupDiff.H:17
TurbChoice turbChoice
Definition: ERF_SetupVertDiff.H:6
amrex::Real Real
Definition: ERF_ShocInterface.H:19
@ Q_h
Definition: ERF_IndexDefines.H:208
@ Scalar_h
Definition: ERF_IndexDefines.H:207
@ Theta_h
Definition: ERF_IndexDefines.H:205
@ KE_h
Definition: ERF_IndexDefines.H:206
bool use_pbl_tke
Definition: ERF_TurbStruct.H:469
bool use_keqn
Definition: ERF_TurbStruct.H:466
amrex::Real theta_ref
Definition: ERF_TurbStruct.H:443