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; }
74 if (solverChoice.
coupling_type != CouplingType::TwoWay || finest_level == 0) {
91 const amrex::Vector<amrex::BCRec>& domain_bcs_type,
92 const amrex::MultiFab& z_phys_nd,
93 amrex::Vector<amrex::MultiFab>& S_data,
94 const amrex::MultiFab&
xvel,
95 const amrex::MultiFab&
yvel,
96 const amrex::MultiFab&
zvel,
97 amrex::Vector<std::unique_ptr<amrex::MultiFab>>& Tau_lev,
98 amrex::Vector<std::unique_ptr<amrex::MultiFab>>& Tau_corr_lev,
99 amrex::MultiFab* SmnSmn,
100 amrex::MultiFab* eddyDiffs,
101 const amrex::Geometry geom,
103 const amrex::Vector<std::unique_ptr<SurfaceLayer>>& SurfLayer,
104 amrex::Gpu::DeviceVector<amrex::Real>& stretched_dz_d,
105 const amrex::MultiFab& detJ,
106 amrex::Vector<std::unique_ptr<amrex::MultiFab>>& mapfac,
107 const amrex::MultiFab& ax,
108 const amrex::MultiFab& ay,
109 const amrex::MultiFab& az,
111 const amrex::MultiFab* ib_wall_face13 =
nullptr,
112 const amrex::MultiFab* ib_wall_face23 =
nullptr);
115 amrex::Vector<std::unique_ptr<amrex::MultiFab>>& Tau_corr_lev);
123 amrex::Vector<amrex::MultiFab>& S_rhs,
124 amrex::Vector<amrex::MultiFab>& S_old,
125 amrex::Vector<amrex::MultiFab>& S_data,
126 const amrex::MultiFab & S_prim,
127 const amrex::MultiFab &
qt,
128 amrex::MultiFab& avg_xmom,
129 amrex::MultiFab& avg_ymom,
130 amrex::MultiFab& avg_zmom,
131 const amrex::MultiFab&
xvel,
132 const amrex::MultiFab&
yvel,
133 const amrex::MultiFab&
zvel,
134 std::unique_ptr<amrex::MultiFab>& z_t,
135 const amrex::MultiFab& cc_src,
136 const amrex::MultiFab& xmom_src,
137 const amrex::MultiFab& ymom_src,
138 const amrex::MultiFab& zmom_src,
139 const amrex::MultiFab& buoyancy,
140 const amrex::MultiFab* zmom_crse_rhs,
141 amrex::Vector<std::unique_ptr<amrex::MultiFab>>& Tau_lev,
142 amrex::Vector<std::unique_ptr<amrex::MultiFab>>& Tau_corr_lev,
143 amrex::Vector<amrex::Vector<std::unique_ptr<amrex::MultiFab>>>& Tau_EB,
144 amrex::MultiFab* SmnSmn,
145 amrex::MultiFab* eddyDiffs,
146 amrex::MultiFab* Hfx1,
147 amrex::MultiFab* Hfx2,
148 amrex::MultiFab* Hfx3,
149 amrex::MultiFab* Q1fx1,
150 amrex::MultiFab* Q1fx2,
151 amrex::MultiFab* Q1fx3,
152 amrex::MultiFab* Q2fx3,
153 amrex::MultiFab* Diss,
154 amrex::MultiFab* mf_surface_fluxes,
155 amrex::MultiFab* Hfx3_EB,
156 const amrex::Geometry geom,
158 const amrex::Vector<std::unique_ptr<SurfaceLayer>>& SurfLayer,
159 const amrex::Gpu::DeviceVector<amrex::BCRec>& domain_bcs_type_d,
160 const amrex::Vector<amrex::BCRec>& domain_bcs_type,
161 const amrex::MultiFab& z_phys_nd,
162 const amrex::MultiFab& z_phys_cc,
163 const amrex::MultiFab& ax,
164 const amrex::MultiFab& ay,
165 const amrex::MultiFab& az,
166 const amrex::MultiFab& dJ,
167 amrex::Gpu::DeviceVector<amrex::Real>& stretched_dz_d,
168 amrex::Vector<amrex::MultiFab>& gradp,
169 amrex::Vector<std::unique_ptr<amrex::MultiFab>>& mapfac,
171 #ifdef ERF_USE_EAMXX_SHOC
175 amrex::YAFluxRegister* fr_as_crse,
176 amrex::YAFluxRegister* fr_as_fine,
177 const amrex::MultiFab* cloud_chamber_base_state,
180 const amrex::MultiFab* ib_wall_face13 =
nullptr,
181 const amrex::MultiFab* ib_wall_face23 =
nullptr,
182 const amrex::MultiFab* ib_wall_face33 =
nullptr,
183 const amrex::MultiFab* ib_wall_hfx =
nullptr);
190 double step_old_time,
195 amrex::Vector<amrex::MultiFab>& S_rhs,
196 amrex::Vector<amrex::MultiFab>& S_old,
197 amrex::Vector<amrex::MultiFab>& S_new,
198 amrex::Vector<amrex::MultiFab>& S_data,
199 const amrex::MultiFab& S_prim,
200 amrex::MultiFab& avg_xmom,
201 amrex::MultiFab& avg_ymom,
202 amrex::MultiFab& avg_zmom,
203 const amrex::MultiFab&
xvel,
204 const amrex::MultiFab&
yvel,
205 const amrex::MultiFab&
zvel,
206 const amrex::MultiFab& source,
207 amrex::MultiFab* terrain_blank,
208 amrex::MultiFab* terrain_blank_xface,
209 amrex::MultiFab* terrain_blank_yface,
210 amrex::MultiFab* terrain_blank_zface,
211 const amrex::MultiFab* SmnSmn,
212 const amrex::MultiFab* eddyDiffs,
213 amrex::MultiFab* Hfx1,
214 amrex::MultiFab* Hfx2,
215 amrex::MultiFab* Hfx3,
216 amrex::MultiFab* Q1fx1,
217 amrex::MultiFab* Q1fx2,
218 amrex::MultiFab* Q1fx3,
219 amrex::MultiFab* Q2fx3,
220 amrex::MultiFab* Diss,
221 amrex::MultiFab* Tau13,
222 amrex::MultiFab* Tau23,
223 const amrex::Geometry geom,
225 const amrex::Vector<std::unique_ptr<SurfaceLayer>>& SurfLayer,
226 const amrex::Gpu::DeviceVector<amrex::BCRec>& domain_bcs_type_d,
227 const amrex::Vector<amrex::BCRec>& domain_bcs_type,
228 std::unique_ptr<amrex::MultiFab>& z_phys_nd,
229 std::unique_ptr<amrex::MultiFab>& z_phys_cc,
230 std::unique_ptr<amrex::MultiFab>& ax,
231 std::unique_ptr<amrex::MultiFab>& ay,
232 std::unique_ptr<amrex::MultiFab>& az,
233 std::unique_ptr<amrex::MultiFab>& dJ_old,
234 amrex::MultiFab* dJ_new,
235 amrex::Gpu::DeviceVector<amrex::Real>& stretched_dz_d,
236 amrex::Vector<std::unique_ptr<amrex::MultiFab>>& mapfac,
238 #ifdef ERF_USE_EAMXX_SHOC
242 amrex::YAFluxRegister* fr_as_crse,
243 amrex::YAFluxRegister* fr_as_fine,
244 std::unique_ptr<ReadBndryPlanes>& m_r2d,
245 const amrex::MultiFab* cloud_chamber_base_state,
251 const amrex::MultiFab* ib_wall_face33 =
nullptr,
252 const amrex::MultiFab* ib_wall_ktarget =
nullptr);
Declares the embedded-boundary factory manager used by ERF levels.
amrex::Real Real
Definition: ERF_ShocInterface.H:19
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:26
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:255
@ zvel
Definition: ERF_IndexDefines.H:257
@ yvel
Definition: ERF_IndexDefines.H:256
Definition: ERF_AuxiliaryInertTracer.cpp:15
Definition: ERF_DataStruct.H:715
CouplingType coupling_type
Multilevel coupling strategy.
Definition: ERF_DataStruct.H:2941
amrex::Vector< int > anelastic
Per-level flag selecting anelastic dynamics.
Definition: ERF_DataStruct.H:2629
amrex::Vector< AnelasticType > anelastic_type
Per-level two-stage scheme used by the anelastic integrator.
Definition: ERF_DataStruct.H:2630
Configuration parameters for cloud chamber initialization.
Definition: ERF_CloudChamber.H:41