1 #ifndef ERF_DIFFUSION_H_
2 #define ERF_DIFFUSION_H_
5 #include <AMReX_MultiFab.H>
6 #include <AMReX_BCRec.H>
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 );
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 );
44 int start_comp,
int num_comp,
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,
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,
72 int start_comp,
int num_comp,
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,
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);
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);
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);
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);
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);
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);
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);
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