1 #ifndef ERF_FAST_INTEGRATION_H_
2 #define ERF_FAST_INTEGRATION_H_
4 #include <AMReX_MultiFab.H>
5 #include <AMReX_BCRec.H>
6 #include <AMReX_YAFluxRegister.H>
15 #include <AMReX_EBMultiFabUtil.H>
23 amrex::Vector<amrex::MultiFab >& S_slow_rhs,
24 const amrex::Vector<amrex::MultiFab >& S_prev,
25 amrex::Vector<amrex::MultiFab >& S_stage_data,
26 const amrex::MultiFab& S_stage_prim,
27 const amrex::MultiFab& pi_stage,
28 const amrex::MultiFab& fast_coeffs,
29 amrex::Vector<amrex::MultiFab >& S_data,
30 amrex::Vector<amrex::MultiFab >& S_scratch,
31 const amrex::Geometry geom,
32 const amrex::Real gravity,
33 const amrex::Real dtau,
const amrex::Real beta_s,
34 const amrex::Real facinv,
35 std::unique_ptr<amrex::MultiFab>& mapfac_m,
36 std::unique_ptr<amrex::MultiFab>& mapfac_u,
37 std::unique_ptr<amrex::MultiFab>& mapfac_v,
38 amrex::YAFluxRegister* fr_as_crse,
39 amrex::YAFluxRegister* fr_as_fine,
40 bool l_use_moisture,
bool l_reflux,
41 bool l_implicit_substepping);
48 amrex::Vector<amrex::MultiFab >& S_slow_rhs,
49 const amrex::Vector<amrex::MultiFab >& S_prev,
50 amrex::Vector<amrex::MultiFab >& S_stage_data,
51 const amrex::MultiFab& S_stage_prim,
52 const amrex::MultiFab& pi_stage,
53 const amrex::MultiFab& fast_coeffs,
54 amrex::Vector<amrex::MultiFab >& S_data,
55 amrex::Vector<amrex::MultiFab >& S_scratch,
56 const amrex::Geometry geom,
57 const amrex::Real gravity,
58 std::unique_ptr<amrex::MultiFab>& z_phys_nd,
59 std::unique_ptr<amrex::MultiFab>& detJ_cc,
60 const amrex::Real dtau,
const amrex::Real beta_s,
61 const amrex::Real facinv,
62 std::unique_ptr<amrex::MultiFab>& mapfac_m,
63 std::unique_ptr<amrex::MultiFab>& mapfac_u,
64 std::unique_ptr<amrex::MultiFab>& mapfac_v,
65 amrex::YAFluxRegister* fr_as_crse,
66 amrex::YAFluxRegister* fr_as_fine,
67 bool l_use_moisture,
bool l_reflux,
68 bool l_implicit_substepping);
75 amrex::Vector<amrex::MultiFab >& S_slow_rhs,
76 const amrex::Vector<amrex::MultiFab >& S_prev,
77 amrex::Vector<amrex::MultiFab >& S_stg_data,
78 const amrex::MultiFab& S_stg_prim,
79 const amrex::MultiFab& pi_stage,
80 const amrex::MultiFab& fast_coeffs,
81 amrex::Vector<amrex::MultiFab >& S_data,
82 amrex::Vector<amrex::MultiFab >& S_scratch,
83 const amrex::Geometry geom,
84 const amrex::Real gravity,
85 const bool use_lagged_delta_rt,
86 std::unique_ptr<amrex::MultiFab>& z_t_rk,
87 const amrex::MultiFab* z_t_pert,
88 std::unique_ptr<amrex::MultiFab>& z_phys_nd_old,
89 std::unique_ptr<amrex::MultiFab>& z_phys_nd_new,
90 std::unique_ptr<amrex::MultiFab>& z_phys_nd_stg,
91 std::unique_ptr<amrex::MultiFab>& detJ_cc_old,
92 std::unique_ptr<amrex::MultiFab>& detJ_cc_new,
93 std::unique_ptr<amrex::MultiFab>& detJ_cc_stg,
94 const amrex::Real dtau,
const amrex::Real beta_s,
95 const amrex::Real facinv,
96 std::unique_ptr<amrex::MultiFab>& mapfac_m,
97 std::unique_ptr<amrex::MultiFab>& mapfac_u,
98 std::unique_ptr<amrex::MultiFab>& mapfac_v,
99 amrex::YAFluxRegister* fr_as_crse,
100 amrex::YAFluxRegister* fr_as_fine,
101 bool l_use_moisture,
bool l_reflux,
102 bool l_implicit_substepping);
109 amrex::MultiFab& fast_coeffs,
110 amrex::Vector<amrex::MultiFab >& S_stage_data,
111 const amrex::MultiFab& S_stage_prim,
112 const amrex::MultiFab& pi_stage,
113 const amrex::Geometry geom,
114 const bool use_moisture,
115 const MeshType mesh_type,
116 const amrex::Real gravity,
117 const amrex::Real c_p,
118 std::unique_ptr<amrex::MultiFab>& detJ_cc,
119 const amrex::MultiFab* r0,
120 const amrex::MultiFab* pi0,
121 const amrex::Real dtau,
122 const amrex::Real beta_s,
123 amrex::GpuArray<ERF_BC, AMREX_SPACEDIM*2> &phys_bc_type);