Functions | |
void | enforceInOutSolvability (const Vector< Array< MultiFab *, AMREX_SPACEDIM >> &vels_vec, const BCRec *bc_type, const Vector< Geometry > &geom, bool include_bndry_corners) |
void | enforceInOutSolvability (const amrex::Vector< amrex::Array< amrex::MultiFab *, AMREX_SPACEDIM >> &vels_vec, amrex::BCRec const *bc_type, const amrex::Vector< amrex::Geometry > &geom, bool include_bndry_corners=false) |
Enforces solvablity by scaling outflow to match with inflow. More... | |
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, 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. All other versions ultimately call this one. Allows time-depdendent inflow and inflow through EB. More... | |
void | ComputeFluxesOnBoxFromState (amrex::Box const &bx, int ncomp, amrex::MFIter &mfi, amrex::Array4< amrex::Real const > const &q, 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, 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={}) |
void | ComputeFluxesOnBoxFromState (amrex::Box const &bx, int ncomp, amrex::MFIter &mfi, amrex::Array4< amrex::Real const > const &q, 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::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, 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. Allows inflow on EB but NOT time-dependent inflow. More... | |
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::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, 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. Does NOT allow time-depdendent inflow or inflow through EB. More... | |
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, 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, amrex::iMultiFab *BC_MF=nullptr) |
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, std::string const &advection_type) |
If convective, compute convTerm = u dot grad q = div (u q) - q div(u). More... | |
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. More... | |
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. More... | |
Collection of hydro utility functions
void HydroUtils::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, | ||
std::string const & | advection_type | ||
) |
If convective, compute convTerm = u dot grad q = div (u q) - q div(u).
void HydroUtils::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 HydroUtils::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 HydroUtils::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::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, | ||
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. Does NOT allow time-depdendent inflow or inflow through EB.
Compute edge state and flux. Allows time-depdendent inflow and inflow through EB.
void HydroUtils::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, | ||
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. All other versions ultimately call this one. Allows time-depdendent inflow and inflow through EB.
void HydroUtils::ComputeFluxesOnBoxFromState | ( | amrex::Box const & | bx, |
int | ncomp, | ||
amrex::MFIter & | mfi, | ||
amrex::Array4< amrex::Real const > const & | q, | ||
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::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, | ||
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. Allows inflow on EB but NOT time-dependent inflow.
void HydroUtils::ComputeFluxesOnBoxFromState | ( | amrex::Box const & | bx, |
int | ncomp, | ||
amrex::MFIter & | mfi, | ||
amrex::Array4< amrex::Real const > const & | q, | ||
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, | ||
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 = {} |
||
) |
void HydroUtils::enforceInOutSolvability | ( | const amrex::Vector< amrex::Array< amrex::MultiFab *, AMREX_SPACEDIM >> & | vels_vec, |
amrex::BCRec const * | bc_type, | ||
const amrex::Vector< amrex::Geometry > & | geom, | ||
bool | include_bndry_corners = false |
||
) |
Enforces solvablity by scaling outflow to match with inflow.