AMReX-Hydro
AMReX-based hydro routines for low Mach number flows
HydroUtils Namespace Reference

Functions

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::VanLeer)
 Compute edge state and flux. Most general version for use with multilevel synchonization. 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::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::VanLeer)
 Compute edge state and flux. For typical advection, and also allows for inflow on 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::VanLeer)
 Compute edge state and flux. For typical advection, but no inflow through EB. More...
 
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)
 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...
 

Detailed Description

Collection of hydro utility functions

Function Documentation

◆ ComputeConvectiveTerm()

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).

◆ ComputeDivergence()

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.

◆ ComputeFluxes()

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 
)

Compute Fluxes.

◆ ComputeFluxesOnBoxFromState() [1/2]

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::VanLeer 
)

Compute edge state and flux. For typical advection, and also allows for inflow on EB.

◆ ComputeFluxesOnBoxFromState() [2/2]

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::VanLeer 
)

Compute edge state and flux. Most general version for use with multilevel synchonization.