AMReX-Hydro
AMReX-based hydro routines for low Mach number flows
 
Loading...
Searching...
No Matches
Utilities

Namespaces

namespace  HydroBC
 
namespace  HydroUtils
 

Macros

#define XVEL   0
 
#define YVEL   1
 
#define ZVEL   2
 

Functions

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.
 

Variables

static constexpr amrex::Real small_vel = amrex::Real(1.e-8)
 
static constexpr amrex::Real hydro_covered_val = amrex::Real(1.0e40)
 

Detailed Description

Macro Definition Documentation

◆ XVEL

#define XVEL   0

Index for the X velocity component.

◆ YVEL

#define YVEL   1

Index for the Y velocity component.

◆ ZVEL

#define ZVEL   2

Index for the Z velocity component.

Function Documentation

◆ enforceInOutSolvability()

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.

Only boundaries with BCType::direction_dependent take part. The inflow and outflow are integrated over the tagged boundary faces, and the outflow is then scaled by influx/outflux. Each face is weighted by its own area, so 2D RZ is handled (an r-face carries 2*pi*r*dz and a z-face 2*pi*r*dr); spherical coordinates are not supported and are asserted against. The test for "no flow at all" compares the mean normal speed over the tagged faces against small_vel, so it does not depend on the length scale of the problem.

Parameters
[in,out]vels_vecPer level, the normal velocity in each direction. Each MultiFab is read and written in its boundary ghost cells, so it needs (filled) ghost cells: one in the normal direction if it is cell-centered, and one in each tangential direction if include_bndry_corners is true. This is asserted.
[in]bc_typeBoundary conditions for the normal velocity.
[in]geomPer level geometry.
[in]include_bndry_cornersAlso tag and correct the cells in the corners of the domain boundary.
Here is the call graph for this function:

Variable Documentation

◆ hydro_covered_val

constexpr amrex::Real hydro_covered_val = amrex::Real(1.0e40)
staticconstexpr

◆ small_vel

small_vel = amrex::Real(1.e-8)
staticconstexpr

What we consider a ~zero velocity when upwinding.