ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
ERF_Diffusion.H
Go to the documentation of this file.
1 #ifndef ERF_DIFFUSION_H_
2 #define ERF_DIFFUSION_H_
3 
4 #include <AMReX.H>
5 #include <AMReX_MultiFab.H>
6 #include <AMReX_BCRec.H>
7 #include <ERF_DataStruct.H>
8 #include <ERF_IndexDefines.H>
9 #include <ERF_ABLMost.H>
10 
11 void DiffusionSrcForMom_N (const amrex::Box& bxx, const amrex::Box& bxy, const amrex::Box& bxz,
12  const amrex::Array4< amrex::Real>& rho_u_rhs,
13  const amrex::Array4< amrex::Real>& rho_v_rhs,
14  const amrex::Array4< amrex::Real>& rho_w_rhs,
15  const amrex::Array4<const amrex::Real>& tau11 ,
16  const amrex::Array4<const amrex::Real>& tau22 ,
17  const amrex::Array4<const amrex::Real>& tau33 ,
18  const amrex::Array4<const amrex::Real>& tau12 ,
19  const amrex::Array4<const amrex::Real>& tau13 ,
20  const amrex::Array4<const amrex::Real>& tau23 ,
21  const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM>& dxInv,
22  const amrex::Array4<const amrex::Real>& mf_m ,
23  const amrex::Array4<const amrex::Real>& mf_u ,
24  const amrex::Array4<const amrex::Real>& mf_v );
25 
26 void DiffusionSrcForMom_T (const amrex::Box& bxx, const amrex::Box& bxy, const amrex::Box& bxz,
27  const amrex::Array4< amrex::Real>& rho_u_rhs,
28  const amrex::Array4< amrex::Real>& rho_v_rhs,
29  const amrex::Array4< amrex::Real>& rho_w_rhs,
30  const amrex::Array4<const amrex::Real>& tau11 ,
31  const amrex::Array4<const amrex::Real>& tau22 , const amrex::Array4<const amrex::Real>& tau33 ,
32  const amrex::Array4<const amrex::Real>& tau12 , const amrex::Array4<const amrex::Real>& tau13,
33  const amrex::Array4<const amrex::Real>& tau21 , const amrex::Array4<const amrex::Real>& tau23,
34  const amrex::Array4<const amrex::Real>& tau31 , const amrex::Array4<const amrex::Real>& tau32,
35  const amrex::Array4<const amrex::Real>& detJ,
36  const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM>& dxInv,
37  const amrex::Array4<const amrex::Real>& mf_m ,
38  const amrex::Array4<const amrex::Real>& mf_u ,
39  const amrex::Array4<const amrex::Real>& mf_v );
40 
41 
42 
43 void DiffusionSrcForState_N (const amrex::Box& bx, const amrex::Box& domain,
44  int start_comp, int num_comp,
45  const bool& exp_most,
46  const amrex::Array4<const amrex::Real>& u,
47  const amrex::Array4<const amrex::Real>& v,
48  const amrex::Array4<const amrex::Real>& cell_data,
49  const amrex::Array4<const amrex::Real>& cell_prim,
50  const amrex::Array4<amrex::Real>& cell_rhs,
51  const amrex::Array4<amrex::Real>& xflux,
52  const amrex::Array4<amrex::Real>& yflux,
53  const amrex::Array4<amrex::Real>& zflux,
54  const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM>& cellSizeInv,
55  const amrex::Array4<const amrex::Real>& SmnSmn_a,
56  const amrex::Array4<const amrex::Real>& mf_m,
57  const amrex::Array4<const amrex::Real>& mf_u,
58  const amrex::Array4<const amrex::Real>& mf_v ,
59  amrex::Array4< amrex::Real>& hfx_z,
60  amrex::Array4< amrex::Real>& qfx1_z,
61  amrex::Array4< amrex::Real>& qfx2_z,
62  amrex::Array4< amrex::Real>& diss,
63  const amrex::Array4<const amrex::Real>& mu_turb,
64  const SolverChoice& solverChoice,
65  const int level,
66  const amrex::Array4<const amrex::Real>& tm_arr,
67  const amrex::GpuArray<amrex::Real,AMREX_SPACEDIM> grav_gpu,
68  const amrex::BCRec* bc_ptr,
69  const bool use_most);
70 
71 void DiffusionSrcForState_T (const amrex::Box& bx, const amrex::Box& domain,
72  int start_comp, int num_comp,
73  const bool& exp_most,
74  const bool& rot_most,
75  const amrex::Array4<const amrex::Real>& u,
76  const amrex::Array4<const amrex::Real>& v,
77  const amrex::Array4<const amrex::Real>& cell_data,
78  const amrex::Array4<const amrex::Real>& cell_prim,
79  const amrex::Array4<amrex::Real>& cell_rhs,
80  const amrex::Array4<amrex::Real>& xflux,
81  const amrex::Array4<amrex::Real>& yflux,
82  const amrex::Array4<amrex::Real>& zflux,
83  const amrex::Array4<const amrex::Real>& z_nd,
84  const amrex::Array4<const amrex::Real>& ax,
85  const amrex::Array4<const amrex::Real>& ay,
86  const amrex::Array4<const amrex::Real>& az,
87  const amrex::Array4<const amrex::Real>& detJ,
88  const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM>& dxInv,
89  const amrex::Array4<const amrex::Real>& SmnSmn_a,
90  const amrex::Array4<const amrex::Real>& mf_m,
91  const amrex::Array4<const amrex::Real>& mf_u,
92  const amrex::Array4<const amrex::Real>& mf_v ,
93  amrex::Array4< amrex::Real>& hfx_x,
94  amrex::Array4< amrex::Real>& hfx_y,
95  amrex::Array4< amrex::Real>& hfx_z,
96  amrex::Array4< amrex::Real>& qfx1_x,
97  amrex::Array4< amrex::Real>& qfx1_y,
98  amrex::Array4< amrex::Real>& qfx1_z,
99  amrex::Array4< amrex::Real>& qfx2_z,
100  amrex::Array4< amrex::Real>& diss,
101  const amrex::Array4<const amrex::Real>& mu_turb,
102  const SolverChoice& solverChoice,
103  const int level,
104  const amrex::Array4<const amrex::Real>& tm_arr,
105  const amrex::GpuArray<amrex::Real,AMREX_SPACEDIM> grav_gpu,
106  const amrex::BCRec* bc_ptr,
107  const bool use_most);
108 
109 void ComputeStressConsVisc_N (amrex::Box bxcc, amrex::Box tbxxy, amrex::Box tbxxz, amrex::Box tbxyz, amrex::Real mu_eff,
110  const amrex::Array4<const amrex::Real>& cell_data,
111  amrex::Array4<amrex::Real>& tau11, amrex::Array4<amrex::Real>& tau22, amrex::Array4<amrex::Real>& tau33,
112  amrex::Array4<amrex::Real>& tau12, amrex::Array4<amrex::Real>& tau13, amrex::Array4<amrex::Real>& tau23,
113  const amrex::Array4<const amrex::Real>& er_arr);
114 
115 void ComputeStressConsVisc_T (amrex::Box bxcc, amrex::Box tbxxy, amrex::Box tbxxz, amrex::Box tbxyz, amrex::Real mu_eff,
116  const amrex::Array4<const amrex::Real>& cell_data,
117  amrex::Array4<amrex::Real>& tau11, amrex::Array4<amrex::Real>& tau22, amrex::Array4<amrex::Real>& tau33,
118  amrex::Array4<amrex::Real>& tau12, amrex::Array4<amrex::Real>& tau13,
119  amrex::Array4<amrex::Real>& tau21, amrex::Array4<amrex::Real>& tau23,
120  amrex::Array4<amrex::Real>& tau31, amrex::Array4<amrex::Real>& tau32,
121  const amrex::Array4<const amrex::Real>& er_arr,
122  const amrex::Array4<const amrex::Real>& z_nd,
123  const amrex::Array4<const amrex::Real>& detJ,
124  const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM>& dxInv);
125 
126 
127 
128 void ComputeStressVarVisc_N (amrex::Box bxcc, amrex::Box tbxxy, amrex::Box tbxxz, amrex::Box tbxyz, amrex::Real mu_eff,
129  const amrex::Array4<const amrex::Real>& mu_turb,
130  const amrex::Array4<const amrex::Real>& cell_data,
131  amrex::Array4<amrex::Real>& tau11, amrex::Array4<amrex::Real>& tau22, amrex::Array4<amrex::Real>& tau33,
132  amrex::Array4<amrex::Real>& tau12, amrex::Array4<amrex::Real>& tau13, amrex::Array4<amrex::Real>& tau23,
133  const amrex::Array4<const amrex::Real>& er_arr);
134 
135 void ComputeStressVarVisc_T (amrex::Box bxcc, amrex::Box tbxxy, amrex::Box tbxxz, amrex::Box tbxyz, amrex::Real mu_eff,
136  const amrex::Array4<const amrex::Real>& mu_turb,
137  const amrex::Array4<const amrex::Real>& cell_data,
138  amrex::Array4<amrex::Real>& tau11, amrex::Array4<amrex::Real>& tau22, amrex::Array4<amrex::Real>& tau33,
139  amrex::Array4<amrex::Real>& tau12, amrex::Array4<amrex::Real>& tau13,
140  amrex::Array4<amrex::Real>& tau21, amrex::Array4<amrex::Real>& tau23,
141  amrex::Array4<amrex::Real>& tau31, amrex::Array4<amrex::Real>& tau32,
142  const amrex::Array4<const amrex::Real>& er_arr,
143  const amrex::Array4<const amrex::Real>& z_nd,
144  const amrex::Array4<const amrex::Real>& detJ,
145  const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM>& dxInv);
146 
147 
148 
149 void ComputeStrain_N (amrex::Box bxcc, amrex::Box tbxxy, amrex::Box tbxxz, amrex::Box tbxyz, amrex::Box domain,
150  const amrex::Array4<const amrex::Real>& u,
151  const amrex::Array4<const amrex::Real>& v,
152  const amrex::Array4<const amrex::Real>& w,
153  amrex::Array4<amrex::Real>& tau11, amrex::Array4<amrex::Real>& tau22, amrex::Array4<amrex::Real>& tau33,
154  amrex::Array4<amrex::Real>& tau12, amrex::Array4<amrex::Real>& tau13, amrex::Array4<amrex::Real>& tau23,
155  const amrex::BCRec* bc_ptr, const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM>& dxInv,
156  const amrex::Array4<const amrex::Real>& mf_m, const amrex::Array4<const amrex::Real>& mf_u, const amrex::Array4<const amrex::Real>& mf_v);
157 
158 void ComputeStrain_T (amrex::Box bxcc, amrex::Box tbxxy, amrex::Box tbxxz, amrex::Box tbxyz, amrex::Box domain,
159  const amrex::Array4<const amrex::Real>& u,
160  const amrex::Array4<const amrex::Real>& v,
161  const amrex::Array4<const amrex::Real>& w,
162  amrex::Array4<amrex::Real>& tau11, amrex::Array4<amrex::Real>& tau22, amrex::Array4<amrex::Real>& tau33,
163  amrex::Array4<amrex::Real>& tau12, amrex::Array4<amrex::Real>& tau13,
164  amrex::Array4<amrex::Real>& tau21, amrex::Array4<amrex::Real>& tau23,
165  amrex::Array4<amrex::Real>& tau31, amrex::Array4<amrex::Real>& tau32,
166  const amrex::Array4<const amrex::Real>& z_nd,
167  const amrex::Array4<const amrex::Real>& detJ,
168  const amrex::BCRec* bc_ptr, const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM>& dxInv,
169  const amrex::Array4<const amrex::Real>& mf_m, const amrex::Array4<const amrex::Real>& mf_u, const amrex::Array4<const amrex::Real>& mf_v);
170 #endif
void ComputeStressConsVisc_N(amrex::Box bxcc, amrex::Box tbxxy, amrex::Box tbxxz, amrex::Box tbxyz, amrex::Real mu_eff, const amrex::Array4< const amrex::Real > &cell_data, amrex::Array4< amrex::Real > &tau11, amrex::Array4< amrex::Real > &tau22, amrex::Array4< amrex::Real > &tau33, amrex::Array4< amrex::Real > &tau12, amrex::Array4< amrex::Real > &tau13, amrex::Array4< amrex::Real > &tau23, const amrex::Array4< const amrex::Real > &er_arr)
void DiffusionSrcForMom_N(const amrex::Box &bxx, const amrex::Box &bxy, const amrex::Box &bxz, const amrex::Array4< amrex::Real > &rho_u_rhs, const amrex::Array4< amrex::Real > &rho_v_rhs, const amrex::Array4< amrex::Real > &rho_w_rhs, const amrex::Array4< const amrex::Real > &tau11, const amrex::Array4< const amrex::Real > &tau22, const amrex::Array4< const amrex::Real > &tau33, const amrex::Array4< const amrex::Real > &tau12, const amrex::Array4< const amrex::Real > &tau13, const amrex::Array4< const amrex::Real > &tau23, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &dxInv, const amrex::Array4< const amrex::Real > &mf_m, const amrex::Array4< const amrex::Real > &mf_u, const amrex::Array4< const amrex::Real > &mf_v)
void ComputeStrain_T(amrex::Box bxcc, amrex::Box tbxxy, amrex::Box tbxxz, amrex::Box tbxyz, amrex::Box domain, const amrex::Array4< const amrex::Real > &u, const amrex::Array4< const amrex::Real > &v, const amrex::Array4< const amrex::Real > &w, amrex::Array4< amrex::Real > &tau11, amrex::Array4< amrex::Real > &tau22, amrex::Array4< amrex::Real > &tau33, amrex::Array4< amrex::Real > &tau12, amrex::Array4< amrex::Real > &tau13, amrex::Array4< amrex::Real > &tau21, amrex::Array4< amrex::Real > &tau23, amrex::Array4< amrex::Real > &tau31, amrex::Array4< amrex::Real > &tau32, const amrex::Array4< const amrex::Real > &z_nd, const amrex::Array4< const amrex::Real > &detJ, const amrex::BCRec *bc_ptr, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &dxInv, const amrex::Array4< const amrex::Real > &mf_m, const amrex::Array4< const amrex::Real > &mf_u, const amrex::Array4< const amrex::Real > &mf_v)
void DiffusionSrcForState_N(const amrex::Box &bx, const amrex::Box &domain, int start_comp, int num_comp, const bool &exp_most, const amrex::Array4< const amrex::Real > &u, const amrex::Array4< const amrex::Real > &v, const amrex::Array4< const amrex::Real > &cell_data, const amrex::Array4< const amrex::Real > &cell_prim, const amrex::Array4< amrex::Real > &cell_rhs, const amrex::Array4< amrex::Real > &xflux, const amrex::Array4< amrex::Real > &yflux, const amrex::Array4< amrex::Real > &zflux, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &cellSizeInv, const amrex::Array4< const amrex::Real > &SmnSmn_a, const amrex::Array4< const amrex::Real > &mf_m, const amrex::Array4< const amrex::Real > &mf_u, const amrex::Array4< const amrex::Real > &mf_v, amrex::Array4< amrex::Real > &hfx_z, amrex::Array4< amrex::Real > &qfx1_z, amrex::Array4< amrex::Real > &qfx2_z, amrex::Array4< amrex::Real > &diss, const amrex::Array4< const amrex::Real > &mu_turb, const SolverChoice &solverChoice, const int level, const amrex::Array4< const amrex::Real > &tm_arr, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > grav_gpu, const amrex::BCRec *bc_ptr, const bool use_most)
void ComputeStressVarVisc_T(amrex::Box bxcc, amrex::Box tbxxy, amrex::Box tbxxz, amrex::Box tbxyz, amrex::Real mu_eff, const amrex::Array4< const amrex::Real > &mu_turb, const amrex::Array4< const amrex::Real > &cell_data, amrex::Array4< amrex::Real > &tau11, amrex::Array4< amrex::Real > &tau22, amrex::Array4< amrex::Real > &tau33, amrex::Array4< amrex::Real > &tau12, amrex::Array4< amrex::Real > &tau13, amrex::Array4< amrex::Real > &tau21, amrex::Array4< amrex::Real > &tau23, amrex::Array4< amrex::Real > &tau31, amrex::Array4< amrex::Real > &tau32, const amrex::Array4< const amrex::Real > &er_arr, const amrex::Array4< const amrex::Real > &z_nd, const amrex::Array4< const amrex::Real > &detJ, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &dxInv)
void ComputeStressConsVisc_T(amrex::Box bxcc, amrex::Box tbxxy, amrex::Box tbxxz, amrex::Box tbxyz, amrex::Real mu_eff, const amrex::Array4< const amrex::Real > &cell_data, amrex::Array4< amrex::Real > &tau11, amrex::Array4< amrex::Real > &tau22, amrex::Array4< amrex::Real > &tau33, amrex::Array4< amrex::Real > &tau12, amrex::Array4< amrex::Real > &tau13, amrex::Array4< amrex::Real > &tau21, amrex::Array4< amrex::Real > &tau23, amrex::Array4< amrex::Real > &tau31, amrex::Array4< amrex::Real > &tau32, const amrex::Array4< const amrex::Real > &er_arr, const amrex::Array4< const amrex::Real > &z_nd, const amrex::Array4< const amrex::Real > &detJ, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &dxInv)
void ComputeStrain_N(amrex::Box bxcc, amrex::Box tbxxy, amrex::Box tbxxz, amrex::Box tbxyz, amrex::Box domain, const amrex::Array4< const amrex::Real > &u, const amrex::Array4< const amrex::Real > &v, const amrex::Array4< const amrex::Real > &w, amrex::Array4< amrex::Real > &tau11, amrex::Array4< amrex::Real > &tau22, amrex::Array4< amrex::Real > &tau33, amrex::Array4< amrex::Real > &tau12, amrex::Array4< amrex::Real > &tau13, amrex::Array4< amrex::Real > &tau23, const amrex::BCRec *bc_ptr, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &dxInv, const amrex::Array4< const amrex::Real > &mf_m, const amrex::Array4< const amrex::Real > &mf_u, const amrex::Array4< const amrex::Real > &mf_v)
void DiffusionSrcForMom_T(const amrex::Box &bxx, const amrex::Box &bxy, const amrex::Box &bxz, const amrex::Array4< amrex::Real > &rho_u_rhs, const amrex::Array4< amrex::Real > &rho_v_rhs, const amrex::Array4< amrex::Real > &rho_w_rhs, const amrex::Array4< const amrex::Real > &tau11, const amrex::Array4< const amrex::Real > &tau22, const amrex::Array4< const amrex::Real > &tau33, const amrex::Array4< const amrex::Real > &tau12, const amrex::Array4< const amrex::Real > &tau13, const amrex::Array4< const amrex::Real > &tau21, const amrex::Array4< const amrex::Real > &tau23, const amrex::Array4< const amrex::Real > &tau31, const amrex::Array4< const amrex::Real > &tau32, const amrex::Array4< const amrex::Real > &detJ, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &dxInv, const amrex::Array4< const amrex::Real > &mf_m, const amrex::Array4< const amrex::Real > &mf_u, const amrex::Array4< const amrex::Real > &mf_v)
void DiffusionSrcForState_T(const amrex::Box &bx, const amrex::Box &domain, int start_comp, int num_comp, const bool &exp_most, const bool &rot_most, const amrex::Array4< const amrex::Real > &u, const amrex::Array4< const amrex::Real > &v, const amrex::Array4< const amrex::Real > &cell_data, const amrex::Array4< const amrex::Real > &cell_prim, const amrex::Array4< amrex::Real > &cell_rhs, const amrex::Array4< amrex::Real > &xflux, const amrex::Array4< amrex::Real > &yflux, const amrex::Array4< amrex::Real > &zflux, const amrex::Array4< const amrex::Real > &z_nd, const amrex::Array4< const amrex::Real > &ax, const amrex::Array4< const amrex::Real > &ay, const amrex::Array4< const amrex::Real > &az, const amrex::Array4< const amrex::Real > &detJ, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &dxInv, const amrex::Array4< const amrex::Real > &SmnSmn_a, const amrex::Array4< const amrex::Real > &mf_m, const amrex::Array4< const amrex::Real > &mf_u, const amrex::Array4< const amrex::Real > &mf_v, amrex::Array4< amrex::Real > &hfx_x, amrex::Array4< amrex::Real > &hfx_y, amrex::Array4< amrex::Real > &hfx_z, amrex::Array4< amrex::Real > &qfx1_x, amrex::Array4< amrex::Real > &qfx1_y, amrex::Array4< amrex::Real > &qfx1_z, amrex::Array4< amrex::Real > &qfx2_z, amrex::Array4< amrex::Real > &diss, const amrex::Array4< const amrex::Real > &mu_turb, const SolverChoice &solverChoice, const int level, const amrex::Array4< const amrex::Real > &tm_arr, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > grav_gpu, const amrex::BCRec *bc_ptr, const bool use_most)
void ComputeStressVarVisc_N(amrex::Box bxcc, amrex::Box tbxxy, amrex::Box tbxxz, amrex::Box tbxyz, amrex::Real mu_eff, const amrex::Array4< const amrex::Real > &mu_turb, const amrex::Array4< const amrex::Real > &cell_data, amrex::Array4< amrex::Real > &tau11, amrex::Array4< amrex::Real > &tau22, amrex::Array4< amrex::Real > &tau33, amrex::Array4< amrex::Real > &tau12, amrex::Array4< amrex::Real > &tau13, amrex::Array4< amrex::Real > &tau23, const amrex::Array4< const amrex::Real > &er_arr)
Definition: ERF_DataStruct.H:82