ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
ERF_SetupVertDiff.H
Go to the documentation of this file.
1  const auto& dom_lo = lbound(domain);
2  const auto& dom_hi = ubound(domain);
3 
4  DiffChoice diffChoice = solverChoice.diffChoice;
5  TurbChoice turbChoice = solverChoice.turbChoice[level];
6 
9 
10  // Theta, KE, Scalar
11  Vector<Real> alpha_eff(NPRIMVAR_max, 0.0);
12  if (l_consA) {
13  for (int i = 0; i < NPRIMVAR_max; ++i) {
14  switch (i) {
15  case PrimTheta_comp:
17  break;
18  case PrimScalar_comp:
20  break;
21  case PrimQ1_comp:
23  break;
24  case PrimQ2_comp:
26  break;
27  case PrimQ3_comp:
29  break;
30  case PrimQ4_comp:
32  break;
33  case PrimQ5_comp:
35  break;
36  case PrimQ6_comp:
38  break;
39  default:
40  alpha_eff[i] = 0.0;
41  break;
42  }
43  }
44  } else {
45  for (int i = 0; i < NPRIMVAR_max; ++i) {
46  switch (i) {
47  case PrimTheta_comp:
49  break;
50  case PrimScalar_comp:
52  break;
53  case PrimQ1_comp:
55  break;
56  case PrimQ2_comp:
58  break;
59  case PrimQ3_comp:
61  break;
62  case PrimQ4_comp:
64  break;
65  case PrimQ5_comp:
67  break;
68  case PrimQ6_comp:
70  break;
71  default:
72  alpha_eff[i] = 0.0;
73  break;
74  }
75  }
76  }
77 
78 // Vector<int> eddy_diff_idx{EddyDiff::Theta_h, EddyDiff::KE_h, EddyDiff::Scalar_h,
79 // EddyDiff::Q_h , EddyDiff::Q_h, EddyDiff::Q_h ,
80 // EddyDiff::Q_h , EddyDiff::Q_h, EddyDiff::Q_h };
81 // Vector<int> eddy_diff_idy{EddyDiff::Theta_h, EddyDiff::KE_h, EddyDiff::Scalar_h,
82 // EddyDiff::Q_h , EddyDiff::Q_h, EddyDiff::Q_h ,
83 // EddyDiff::Q_h , EddyDiff::Q_h, EddyDiff::Q_h };
84  Vector<int> eddy_diff_idz{EddyDiff::Theta_v, EddyDiff::KE_v, EddyDiff::Scalar_v,
87 
88  // Device vectors
89  Gpu::AsyncVector<Real> alpha_eff_d;
90 // Gpu::AsyncVector<int> eddy_diff_idx_d;
91 // Gpu::AsyncVector<int> eddy_diff_idy_d;
92  Gpu::AsyncVector<int> eddy_diff_idz_d;
93  alpha_eff_d.resize(alpha_eff.size());
94 // eddy_diff_idx_d.resize(eddy_diff_idx.size());
95 // eddy_diff_idy_d.resize(eddy_diff_idy.size());
96  eddy_diff_idz_d.resize(eddy_diff_idz.size());
97 
98  Gpu::copy(Gpu::hostToDevice, alpha_eff.begin() , alpha_eff.end() , alpha_eff_d.begin());
99 // Gpu::copy(Gpu::hostToDevice, eddy_diff_idx.begin(), eddy_diff_idx.end(), eddy_diff_idx_d.begin());
100 // Gpu::copy(Gpu::hostToDevice, eddy_diff_idy.begin(), eddy_diff_idy.end(), eddy_diff_idy_d.begin());
101  Gpu::copy(Gpu::hostToDevice, eddy_diff_idz.begin(), eddy_diff_idz.end(), eddy_diff_idz_d.begin());
102 
103  // Capture pointers for device code
105 // int* d_eddy_diff_idx = eddy_diff_idx_d.data();
106 // int* d_eddy_diff_idy = eddy_diff_idy_d.data();
#define PrimQ1_comp
Definition: ERF_IndexDefines.H:53
#define NPRIMVAR_max
Definition: ERF_IndexDefines.H:33
#define PrimQ2_comp
Definition: ERF_IndexDefines.H:54
#define PrimQ4_comp
Definition: ERF_IndexDefines.H:56
#define PrimQ6_comp
Definition: ERF_IndexDefines.H:58
#define PrimQ5_comp
Definition: ERF_IndexDefines.H:57
#define PrimTheta_comp
Definition: ERF_IndexDefines.H:50
#define PrimScalar_comp
Definition: ERF_IndexDefines.H:52
#define PrimQ3_comp
Definition: ERF_IndexDefines.H:55
Gpu::AsyncVector< int > eddy_diff_idz_d
Definition: ERF_SetupVertDiff.H:92
const auto & dom_hi
Definition: ERF_SetupVertDiff.H:2
bool l_turb
Definition: ERF_SetupVertDiff.H:8
const auto & dom_lo
Definition: ERF_SetupVertDiff.H:1
Vector< Real > alpha_eff(NPRIMVAR_max, 0.0)
bool l_consA
Definition: ERF_SetupVertDiff.H:7
TurbChoice turbChoice
Definition: ERF_SetupVertDiff.H:5
int * d_eddy_diff_idz
Definition: ERF_SetupVertDiff.H:107
DiffChoice diffChoice
Definition: ERF_SetupVertDiff.H:4
Real * d_alpha_eff
Definition: ERF_SetupVertDiff.H:104
Gpu::AsyncVector< Real > alpha_eff_d
Definition: ERF_SetupVertDiff.H:89
amrex::Real Real
Definition: ERF_ShocInterface.H:19
@ Theta_v
Definition: ERF_IndexDefines.H:176
@ Scalar_v
Definition: ERF_IndexDefines.H:178
@ Q_v
Definition: ERF_IndexDefines.H:179
@ KE_v
Definition: ERF_IndexDefines.H:177
Definition: ERF_DiffStruct.H:19
amrex::Real rhoAlpha_C
Definition: ERF_DiffStruct.H:95
amrex::Real rhoAlpha_T
Definition: ERF_DiffStruct.H:94
amrex::Real alpha_T
Definition: ERF_DiffStruct.H:87
amrex::Real alpha_C
Definition: ERF_DiffStruct.H:88
MolecDiffType molec_diff_type
Definition: ERF_DiffStruct.H:84
Definition: ERF_TurbStruct.H:41
bool use_kturb
Definition: ERF_TurbStruct.H:396