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

Functions

void ComputeEdgeState (amrex::Box const &a_bx, AMREX_D_DECL(amrex::Array4< amrex::Real > const &xedge, amrex::Array4< amrex::Real > const &yedge, amrex::Array4< amrex::Real > const &zedge), amrex::Array4< amrex::Real const > const &q, int ncomp, 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::Box const &domain, amrex::Vector< amrex::BCRec > const &bcs, amrex::BCRec const *d_bcrec_ptr, bool is_velocity)
 Compute upwinded face-centered states by extrapolating cell-centered values in SPACE ONLY. More...
 
void ExtrapVelToFaces (const amrex::MultiFab &vel, AMREX_D_DECL(amrex::MultiFab &umac, amrex::MultiFab &vmac, amrex::MultiFab &wmac), const amrex::Geometry &a_geom, amrex::Vector< amrex::BCRec > const &h_bcrec, const amrex::BCRec *d_bcrec, bool allow_inflow_on_outflow=false)
 Compute upwinded FC velocities by extrapolating CC values in SPACE ONLY. More...
 
void ExtrapVelToFacesBox (AMREX_D_DECL(amrex::Box const &ubx, amrex::Box const &vbx, amrex::Box const &wbx), AMREX_D_DECL(amrex::Array4< amrex::Real > const &u, amrex::Array4< amrex::Real > const &v, amrex::Array4< amrex::Real > const &w), amrex::Array4< amrex::Real const > const &vcc, const amrex::Geometry &geom, amrex::Vector< amrex::BCRec > const &h_bcrec, const amrex::BCRec *d_bcrec, bool allow_inflow_on_outflow=false)
 For Computing the pre-MAC edge states to be MAC-projected. More...
 
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real hydro_mol_xedge_state_extdir (int i, int j, int k, int n, amrex::Array4< amrex::Real const > const &q, amrex::Array4< amrex::Real const > const &umac, amrex::BCRec const *const d_bcrec, int domlo, int domhi, bool is_velocity) noexcept
 
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real hydro_mol_xedge_state (int i, int j, int k, int n, amrex::Array4< amrex::Real const > const &q, amrex::Array4< amrex::Real const > const &umac, amrex::BCRec const *const d_bcrec, int domlo, int domhi, bool is_velocity) noexcept
 
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real hydro_mol_yedge_state_extdir (int i, int j, int k, int n, amrex::Array4< amrex::Real const > const &q, amrex::Array4< amrex::Real const > const &vmac, amrex::BCRec const *const d_bcrec, int domlo, int domhi, bool is_velocity) noexcept
 
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real hydro_mol_yedge_state (int i, int j, int k, int n, amrex::Array4< amrex::Real const > const &q, amrex::Array4< amrex::Real const > const &vmac, amrex::BCRec const *const d_bcrec, int domlo, int domhi, bool is_velocity) noexcept
 

Detailed Description

The procedures for computing MAC velocities and edge states with MOL does not involve time derivatives. All slope computations use second-order limited slopes as described in [sec:slopes].

Function Documentation

◆ ComputeEdgeState()

void MOL::ComputeEdgeState ( amrex::Box const &  a_bx,
AMREX_D_DECL(amrex::Array4< amrex::Real > const &xedge, amrex::Array4< amrex::Real > const &yedge, amrex::Array4< amrex::Real > const &zedge)  ,
amrex::Array4< amrex::Real const > const &  q,
int  ncomp,
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::Box const &  domain,
amrex::Vector< amrex::BCRec > const &  bcs,
amrex::BCRec const *  d_bcrec_ptr,
bool  is_velocity 
)

Compute upwinded face-centered states by extrapolating cell-centered values in SPACE ONLY.

Parameters
[in]a_bxCurrent grid patch
[in,out]xedgeArray4 containing x-edges, starting at component of interest
[in,out]yedgeArray4 containing y-edges, starting at component of interest
[in,out]zedgeArray4 containing z-edges, starting at component of interest
[in]qArray4 of state, starting at component of interest
[in]ncompNumber of components to work on
[in]umacx-Face velocities.
[in]vmacy-Face velocities.
[in]wmacz-Face velocities.
[in]domainProblem domain.
[in]bcsVector of boundary conditions
[in]d_bcrec_ptrBCRec
[in]is_velocityIndicates a component is velocity so boundary conditions can be properly addressed. The header hydro_constants.H defines the component position by [XYZ]VEL macro.

Compute upwinded FC states by extrapolating CC values in SPACE ONLY. This is NOT a Godunov type extrapolation: there is NO dependence on time! The resulting FC states are computed at the CENTROID of the face.

◆ ExtrapVelToFaces()

void MOL::ExtrapVelToFaces ( const amrex::MultiFab vel,
AMREX_D_DECL(amrex::MultiFab &umac, amrex::MultiFab &vmac, amrex::MultiFab &wmac)  ,
const amrex::Geometry a_geom,
amrex::Vector< amrex::BCRec > const &  h_bcrec,
const amrex::BCRec d_bcrec,
bool  allow_inflow_on_outflow = false 
)

Compute upwinded FC velocities by extrapolating CC values in SPACE ONLY.

Parameters
velThe cell-centered velocity field
umacx-component of velocity on centroid of x-face
vmacy-component of velocity on centroid of y-face
wmacz-component of velocity on centroid of z-face
a_geomGeometry object at this level
h_bcrecHost version of BCRec
d_bcrecDevice version of BCRec

Compute upwinded FC velocities by extrapolating CC values in SPACE ONLY. This is NOT a Godunov type extrapolation: there is NO dependence on time! The resulting FC velocities are computed at the CENTROID of the face.

Here is the caller graph for this function:

◆ ExtrapVelToFacesBox()

void MOL::ExtrapVelToFacesBox ( AMREX_D_DECL(amrex::Box const &ubx, amrex::Box const &vbx, amrex::Box const &wbx)  ,
AMREX_D_DECL(amrex::Array4< amrex::Real > const &u, amrex::Array4< amrex::Real > const &v, amrex::Array4< amrex::Real > const &w)  ,
amrex::Array4< amrex::Real const > const &  vcc,
const amrex::Geometry geom,
amrex::Vector< amrex::BCRec > const &  h_bcrec,
const amrex::BCRec d_bcrec,
bool  allow_inflow_on_outflow = false 
)

For Computing the pre-MAC edge states to be MAC-projected.

For detailed info on the algorithm, see MOL.

◆ hydro_mol_xedge_state()

AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real MOL::hydro_mol_xedge_state ( int  i,
int  j,
int  k,
int  n,
amrex::Array4< amrex::Real const > const &  q,
amrex::Array4< amrex::Real const > const &  umac,
amrex::BCRec const *const  d_bcrec,
int  domlo,
int  domhi,
bool  is_velocity 
)
noexcept
Here is the call graph for this function:

◆ hydro_mol_xedge_state_extdir()

AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real MOL::hydro_mol_xedge_state_extdir ( int  i,
int  j,
int  k,
int  n,
amrex::Array4< amrex::Real const > const &  q,
amrex::Array4< amrex::Real const > const &  umac,
amrex::BCRec const *const  d_bcrec,
int  domlo,
int  domhi,
bool  is_velocity 
)
noexcept
Here is the call graph for this function:

◆ hydro_mol_yedge_state()

AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real MOL::hydro_mol_yedge_state ( int  i,
int  j,
int  k,
int  n,
amrex::Array4< amrex::Real const > const &  q,
amrex::Array4< amrex::Real const > const &  vmac,
amrex::BCRec const *const  d_bcrec,
int  domlo,
int  domhi,
bool  is_velocity 
)
noexcept
Here is the call graph for this function:

◆ hydro_mol_yedge_state_extdir()

AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::Real MOL::hydro_mol_yedge_state_extdir ( int  i,
int  j,
int  k,
int  n,
amrex::Array4< amrex::Real const > const &  q,
amrex::Array4< amrex::Real const > const &  vmac,
amrex::BCRec const *const  d_bcrec,
int  domlo,
int  domhi,
bool  is_velocity 
)
noexcept
Here is the call graph for this function: