1 #ifndef ERF_SLOW_INTEGRATION_H_
2 #define ERF_SLOW_INTEGRATION_H_
4 #include "AMReX_MultiFab.H"
5 #include "AMReX_BCRec.H"
6 #include "AMReX_YAFluxRegister.H"
7 #include "AMReX_MultiCutFab.H"
8 #include "AMReX_EBMultiFabUtil.H"
28 namespace erf_sbm {
class SBMStateManager;
class SBMTransport; }
36 const amrex::Vector<amrex::BCRec>& domain_bcs_type,
37 const amrex::MultiFab& z_phys_nd,
38 amrex::Vector<amrex::MultiFab>& S_data,
39 const amrex::MultiFab&
xvel,
40 const amrex::MultiFab&
yvel,
41 const amrex::MultiFab&
zvel,
42 amrex::Vector<std::unique_ptr<amrex::MultiFab>>& Tau_lev,
43 amrex::Vector<std::unique_ptr<amrex::MultiFab>>& Tau_corr_lev,
44 amrex::MultiFab* SmnSmn,
45 amrex::MultiFab* eddyDiffs,
46 const amrex::Geometry geom,
48 const amrex::Vector<std::unique_ptr<SurfaceLayer>>& SurfLayer,
49 amrex::Gpu::DeviceVector<amrex::Real>& stretched_dz_d,
50 const amrex::MultiFab& detJ,
51 amrex::Vector<std::unique_ptr<amrex::MultiFab>>& mapfac,
52 const amrex::MultiFab& ax,
53 const amrex::MultiFab& ay,
54 const amrex::MultiFab& az,
58 amrex::Vector<std::unique_ptr<amrex::MultiFab>>& Tau_corr_lev);
66 amrex::Vector<amrex::MultiFab>& S_rhs,
67 amrex::Vector<amrex::MultiFab>& S_old,
68 amrex::Vector<amrex::MultiFab>& S_data,
69 const amrex::MultiFab & S_prim,
70 const amrex::MultiFab &
qt,
71 amrex::MultiFab& avg_xmom,
72 amrex::MultiFab& avg_ymom,
73 amrex::MultiFab& avg_zmom,
74 const amrex::MultiFab&
xvel,
75 const amrex::MultiFab&
yvel,
76 const amrex::MultiFab&
zvel,
77 std::unique_ptr<amrex::MultiFab>& z_t,
78 const amrex::MultiFab& cc_src,
79 const amrex::MultiFab& xmom_src,
80 const amrex::MultiFab& ymom_src,
81 const amrex::MultiFab& zmom_src,
82 const amrex::MultiFab& buoyancy,
83 const amrex::MultiFab* zmom_crse_rhs,
84 amrex::Vector<std::unique_ptr<amrex::MultiFab>>& Tau_lev,
85 amrex::Vector<std::unique_ptr<amrex::MultiFab>>& Tau_corr_lev,
86 amrex::Vector<amrex::Vector<std::unique_ptr<amrex::MultiFab>>>& Tau_EB,
87 amrex::MultiFab* SmnSmn,
88 amrex::MultiFab* eddyDiffs,
89 amrex::MultiFab* Hfx1,
90 amrex::MultiFab* Hfx2,
91 amrex::MultiFab* Hfx3,
92 amrex::MultiFab* Q1fx1,
93 amrex::MultiFab* Q1fx2,
94 amrex::MultiFab* Q1fx3,
95 amrex::MultiFab* Q2fx3,
96 amrex::MultiFab* Diss,
97 amrex::MultiFab* Hfx3_EB,
98 const amrex::Geometry geom,
100 const amrex::Vector<std::unique_ptr<SurfaceLayer>>& SurfLayer,
101 const amrex::Gpu::DeviceVector<amrex::BCRec>& domain_bcs_type_d,
102 const amrex::Vector<amrex::BCRec>& domain_bcs_type,
103 const amrex::MultiFab& z_phys_nd,
104 const amrex::MultiFab& z_phys_cc,
105 const amrex::MultiFab& ax,
106 const amrex::MultiFab& ay,
107 const amrex::MultiFab& az,
108 const amrex::MultiFab& dJ,
109 amrex::Gpu::DeviceVector<amrex::Real>& stretched_dz_d,
110 amrex::Vector<amrex::MultiFab>& gradp,
111 amrex::Vector<std::unique_ptr<amrex::MultiFab>>& mapfac,
113 #ifdef ERF_USE_EAMXX_SHOC
117 amrex::YAFluxRegister* fr_as_crse,
118 amrex::YAFluxRegister* fr_as_fine,
119 const amrex::MultiFab* cloud_chamber_base_state,
128 double step_old_time,
133 amrex::Vector<amrex::MultiFab>& S_rhs,
134 amrex::Vector<amrex::MultiFab>& S_old,
135 amrex::Vector<amrex::MultiFab>& S_new,
136 amrex::Vector<amrex::MultiFab>& S_data,
137 const amrex::MultiFab& S_prim,
138 amrex::MultiFab& avg_xmom,
139 amrex::MultiFab& avg_ymom,
140 amrex::MultiFab& avg_zmom,
141 const amrex::MultiFab&
xvel,
142 const amrex::MultiFab&
yvel,
143 const amrex::MultiFab&
zvel,
144 const amrex::MultiFab& source,
145 amrex::MultiFab* terrain_blank,
146 amrex::MultiFab* terrain_blank_xface,
147 amrex::MultiFab* terrain_blank_yface,
148 amrex::MultiFab* terrain_blank_zface,
149 const amrex::MultiFab* SmnSmn,
150 const amrex::MultiFab* eddyDiffs,
151 amrex::MultiFab* Hfx1,
152 amrex::MultiFab* Hfx2,
153 amrex::MultiFab* Hfx3,
154 amrex::MultiFab* Q1fx1,
155 amrex::MultiFab* Q1fx2,
156 amrex::MultiFab* Q1fx3,
157 amrex::MultiFab* Q2fx3,
158 amrex::MultiFab* Diss,
159 amrex::MultiFab* Tau13,
160 amrex::MultiFab* Tau23,
161 const amrex::Geometry geom,
163 const amrex::Vector<std::unique_ptr<SurfaceLayer>>& SurfLayer,
164 const amrex::Gpu::DeviceVector<amrex::BCRec>& domain_bcs_type_d,
165 const amrex::Vector<amrex::BCRec>& domain_bcs_type,
166 std::unique_ptr<amrex::MultiFab>& z_phys_nd,
167 std::unique_ptr<amrex::MultiFab>& z_phys_cc,
168 std::unique_ptr<amrex::MultiFab>& ax,
169 std::unique_ptr<amrex::MultiFab>& ay,
170 std::unique_ptr<amrex::MultiFab>& az,
171 std::unique_ptr<amrex::MultiFab>& dJ_old,
172 amrex::MultiFab* dJ_new,
173 amrex::Gpu::DeviceVector<amrex::Real>& stretched_dz_d,
174 amrex::Vector<std::unique_ptr<amrex::MultiFab>>& mapfac,
176 #ifdef ERF_USE_EAMXX_SHOC
180 amrex::YAFluxRegister* fr_as_crse,
181 amrex::YAFluxRegister* fr_as_fine,
182 std::unique_ptr<ReadBndryPlanes>& m_r2d,
183 const amrex::MultiFab* cloud_chamber_base_state,
Declares the embedded-boundary factory manager used by ERF levels.
Definition: ERF_CloudChamberBudget.H:31
Definition: ERF_ShocInterface.H:50
Definition: ERF_ShocDriver.H:40
Owns and exposes cell-centered and face-centered EB factories.
Definition: ERF_EB.H:24
Definition: ERF_AuxiliaryInertTracer.H:17
Definition: ERF_SBMStateManager.H:16
Definition: ERF_SBMTransport.H:27
@ qt
Definition: ERF_Kessler.H:30
@ xvel
Definition: ERF_IndexDefines.H:218
@ zvel
Definition: ERF_IndexDefines.H:220
@ yvel
Definition: ERF_IndexDefines.H:219
Definition: ERF_AuxiliaryInertTracer.cpp:15
Definition: ERF_DataStruct.H:685
Configuration parameters for cloud chamber initialization.
Definition: ERF_CloudChamber.H:40