12#if defined(AMREX_USE_EB) && !defined(HYDRO_NO_EB)
50 bool include_bndry_corners =
false);
105#
if defined(AMREX_USE_EB) && !defined(HYDRO_NO_EB)
109 bool godunov_use_ppm,
bool godunov_use_forces_in_trans,
110 bool is_velocity,
bool fluxes_are_area_weighted,
111 std::string
const& advection_type,
113 bool allow_inflow_on_outflow =
false,
139#
if defined(AMREX_USE_EB) && !defined(HYDRO_NO_EB)
143 bool godunov_use_ppm,
bool godunov_use_forces_in_trans,
144 bool is_velocity,
bool fluxes_are_area_weighted,
145 std::string
const& advection_type,
147 bool allow_inflow_on_outflow =
false,
197#
if defined(AMREX_USE_EB) && !defined(HYDRO_NO_EB)
201 bool godunov_use_ppm,
bool godunov_use_forces_in_trans,
202 bool is_velocity,
bool fluxes_are_area_weighted,
203 std::string
const& advection_type,
205 bool allow_inflow_on_outflow =
false,
208#if defined(AMREX_USE_EB) && !defined(HYDRO_NO_EB)
260 bool godunov_use_ppm,
bool godunov_use_forces_in_trans,
261 bool is_velocity,
bool fluxes_are_area_weighted,
262 std::string
const& advection_type,
264 bool allow_inflow_on_outflow =
false,
296#if defined(AMREX_USE_EB) && !defined(HYDRO_NO_EB)
319 bool godunov_use_ppm,
bool godunov_use_forces_in_trans,
320 bool is_velocity,
bool fluxes_are_area_weighted,
321 std::string
const& advection_type,
323 bool allow_inflow_on_outflow =
false,
376#
if defined(AMREX_USE_EB) && !defined(HYDRO_NO_EB)
380 bool godunov_use_ppm,
bool godunov_use_forces_in_trans,
381 bool is_velocity,
bool fluxes_are_area_weighted,
382 std::string
const& advection_type,
384 bool allow_inflow_on_outflow =
false,
387#if defined(AMREX_USE_EB) && !defined(HYDRO_NO_EB)
413 bool godunov_ppm,
bool godunov_use_forces_in_trans,
414 std::string
const& advection_type,
416 bool allow_inflow_on_outflow =
false);
444#
if defined(AMREX_USE_EB) && !defined(HYDRO_NO_EB)
448 bool godunov_ppm,
bool godunov_use_forces_in_trans,
449 std::string
const& advection_type,
451 bool allow_inflow_on_outflow =
false,
467#
if defined(AMREX_USE_EB) && !defined(HYDRO_NO_EB)
470 std::string
const& advection_type);
500 bool fluxes_are_area_weighted,
501 int const* iconserv);
515 bool fluxes_are_area_weighted);
517#if defined(AMREX_USE_EB) && !defined(HYDRO_NO_EB)
553 bool fluxes_are_area_weighted,
554 int const* iconserv);
565 bool fluxes_are_area_weighted);
576 bool fluxes_are_area_weighted,
#define AMREX_D_DECL(a, b, c)
void enforceInOutSolvability(const Vector< Array< MultiFab *, AMREX_SPACEDIM > > &vels_vec, const BCRec *bc_type, const Vector< Geometry > &geom, bool include_bndry_corners)
Enforces solvablity by scaling outflow to match with inflow.
Definition hydro_enforce_inout_solvability.cpp:340
Definition hydro_enforce_inout_solvability.cpp:9
void ComputeDivergence(amrex::Box const &bx, amrex::Array4< amrex::Real > const &div, AMREX_D_DECL(amrex::Array4< amrex::Real const > const &fx, amrex::Array4< amrex::Real const > const &fy, amrex::Array4< amrex::Real const > const &fz), int ncomp, amrex::Geometry const &geom, amrex::Real mult, bool fluxes_are_area_weighted)
Compute divergence.
void ComputeConvectiveTerm(amrex::Box const &bx, int num_comp, amrex::MFIter &mfi, amrex::Array4< amrex::Real const > const &q, AMREX_D_DECL(amrex::Array4< amrex::Real const > const &q_on_face_x, amrex::Array4< amrex::Real const > const &q_on_face_y, amrex::Array4< amrex::Real const > const &q_on_face_z), amrex::Array4< amrex::Real const > const &divu, amrex::Array4< amrex::Real > const &convTerm, int const *iconserv, const amrex::EBFArrayBoxFactory &ebfact, std::string const &advection_type)
If convective, compute convTerm = u dot grad q = div (u q) - q div(u).
void ComputeFluxesOnBoxFromState(amrex::Box const &bx, int ncomp, amrex::MFIter &mfi, amrex::Array4< amrex::Real const > const &q, amrex::Array4< amrex::Real const > const &qnph, AMREX_D_DECL(amrex::Array4< amrex::Real > const &flux_x, amrex::Array4< amrex::Real > const &flux_y, amrex::Array4< amrex::Real > const &flux_z), AMREX_D_DECL(amrex::Array4< amrex::Real > const &face_x, amrex::Array4< amrex::Real > const &face_y, amrex::Array4< amrex::Real > const &face_z), bool knownFaceState, AMREX_D_DECL(amrex::Array4< amrex::Real const > const &u_mac, amrex::Array4< amrex::Real const > const &v_mac, amrex::Array4< amrex::Real const > const &w_mac), AMREX_D_DECL(amrex::Array4< amrex::Real const > const &u_flux, amrex::Array4< amrex::Real const > const &v_flux, amrex::Array4< amrex::Real const > const &w_flux), amrex::Array4< amrex::Real const > const &divu, amrex::Array4< amrex::Real const > const &fq, amrex::Geometry geom, amrex::Real l_dt, amrex::Vector< amrex::BCRec > const &h_bcrec, const amrex::BCRec *d_bcrec, int const *iconserv, const amrex::EBFArrayBoxFactory &ebfact, amrex::Array4< amrex::Real const > const &values_on_eb_inflow, bool godunov_use_ppm, bool godunov_use_forces_in_trans, bool is_velocity, bool fluxes_are_area_weighted, std::string const &advection_type, int limiter_type=PPM::default_limiter, bool allow_inflow_on_outflow=false, amrex::Array4< int const > const &bc_arr={})
Compute edge state and flux. Most general version for use with multilevel synchronization....
void ExtrapVelToFaces(amrex::MultiFab const &vel, amrex::MultiFab const &vel_forces, AMREX_D_DECL(amrex::MultiFab &u_mac, amrex::MultiFab &v_mac, amrex::MultiFab &w_mac), amrex::Vector< amrex::BCRec > const &h_bcrec, amrex::BCRec const *d_bcrec, const amrex::Geometry &geom, amrex::Real dt, const amrex::EBFArrayBoxFactory &ebfact, bool godunov_ppm, bool godunov_use_forces_in_trans, std::string const &advection_type, int limiter_type=PPM::default_limiter, bool allow_inflow_on_outflow=false)
Extrapolate the velocity to faces, for use as the pre-MAC velocity.
void ComputeFluxes(amrex::Box const &bx, AMREX_D_DECL(amrex::Array4< amrex::Real > const &fx, amrex::Array4< amrex::Real > const &fy, amrex::Array4< amrex::Real > const &fz), AMREX_D_DECL(amrex::Array4< amrex::Real const > const &umac, amrex::Array4< amrex::Real const > const &vmac, amrex::Array4< amrex::Real const > const &wmac), AMREX_D_DECL(amrex::Array4< amrex::Real const > const &xed, amrex::Array4< amrex::Real const > const &yed, amrex::Array4< amrex::Real const > const &zed), amrex::Geometry const &geom, int ncomp, bool fluxes_are_area_weighted, int const *iconserv)
Compute Fluxes.
void EB_ComputeFluxes(amrex::Box const &bx, AMREX_D_DECL(amrex::Array4< amrex::Real > const &fx, amrex::Array4< amrex::Real > const &fy, amrex::Array4< amrex::Real > const &fz), AMREX_D_DECL(amrex::Array4< amrex::Real const > const &umac, amrex::Array4< amrex::Real const > const &vmac, amrex::Array4< amrex::Real const > const &wmac), AMREX_D_DECL(amrex::Array4< amrex::Real const > const &xedge, amrex::Array4< amrex::Real const > const &yedge, amrex::Array4< amrex::Real const > const &zedge), AMREX_D_DECL(amrex::Array4< amrex::Real const > const &apx, amrex::Array4< amrex::Real const > const &apy, amrex::Array4< amrex::Real const > const &apz), amrex::Geometry const &geom, int ncomp, amrex::Array4< amrex::EBCellFlag const > const &flag, bool fluxes_are_area_weighted, int const *iconserv)
Compute Fluxes in the presence of EB.
void EB_ComputeDivergence(amrex::Box const &bx, amrex::Array4< amrex::Real > const &div, AMREX_D_DECL(amrex::Array4< amrex::Real const > const &fx, amrex::Array4< amrex::Real const > const &fy, amrex::Array4< amrex::Real const > const &fz), amrex::Array4< amrex::Real const > const &vfrac, int ncomp, amrex::Geometry const &geom, amrex::Real mult, bool fluxes_are_area_weighted)
static constexpr int default_limiter
Definition hydro_godunov_ppm.H:87