#include <PhysIBC.H>

Virtual base class through which a user specifies the initial and boundary conditions for a hyperbolic system of PDEs.
Public Member Functions | |
| PhysIBC () | |
| Constructor. | |
| virtual | ~PhysIBC () |
| Destructor. | |
| virtual void | define (const ProblemDomain &a_domain, const Real &a_dx) |
| Define the object. | |
| virtual PhysIBC * | new_physIBC ()=0 |
| Factory method - this object is its own factory. | |
| virtual void | initialize (LevelData< FArrayBox > &a_U)=0 |
| Set up initial conditions. | |
| virtual void | primBC (FArrayBox &a_WGdnv, const FArrayBox &a_Wextrap, const FArrayBox &a_W, const int &a_dir, const Side::LoHiSide &a_side, const Real &a_time)=0 |
| Set boundary primitive values. | |
| virtual void | setBdrySlopes (FArrayBox &a_dW, const FArrayBox &a_W, const int &a_dir, const Real &a_time)=0 |
| Set boundary slopes. | |
| virtual void | artViscBC (FArrayBox &a_F, const FArrayBox &a_U, const FArrayBox &a_divVel, const int &a_dir, const Real &a_time)=0 |
| Adjust boundary fluxes to account for artificial viscosity. | |
| virtual void | getBoundaryFaces (Box &a_boundaryBox, const Box &a_dataFaceBox, const int &a_dir, const Side::LoHiSide &a_side) |
| This function is called by primBC() to get boundary faces of a Box. | |
Protected Attributes | |
| bool | m_isDefined |
| ProblemDomain | m_domain |
| Real | m_dx |
Private Member Functions | |
| void | operator= (const PhysIBC &) |
| PhysIBC (const PhysIBC &) | |
| PhysIBC::PhysIBC | ( | ) |
Constructor.
| virtual PhysIBC::~PhysIBC | ( | ) | [virtual] |
Destructor.
| PhysIBC::PhysIBC | ( | const PhysIBC & | ) | [private] |
| virtual void PhysIBC::define | ( | const ProblemDomain & | a_domain, | |
| const Real & | a_dx | |||
| ) | [virtual] |
Define the object.
| a_domain | problem domain index space |
| a_dx | grid spacing |
| virtual PhysIBC* PhysIBC::new_physIBC | ( | ) | [pure virtual] |
Factory method - this object is its own factory.
Return a pointer to a new PhysIBC object with m_isDefined = false (i.e., its define() must be called before it is used).
Implemented in AdvectTestIBC, ExplosionIBC, RampIBC, and WaveIBC.
Set up initial conditions.
| a_U | conserved variables |
Implemented in AdvectTestIBC, ExplosionIBC, RampIBC, and WaveIBC.
| virtual void PhysIBC::primBC | ( | FArrayBox & | a_WGdnv, | |
| const FArrayBox & | a_Wextrap, | |||
| const FArrayBox & | a_W, | |||
| const int & | a_dir, | |||
| const Side::LoHiSide & | a_side, | |||
| const Real & | a_time | |||
| ) | [pure virtual] |
Set boundary primitive values.
| a_WGdnv | primitive variables at face centers; this routine replaces values along boundary faces of domain |
| a_Wextrap | extrapolated primitive variables to a_side of cells in direction a_dir (cell-centered data) |
| a_W | primitive variables at start of time step (cell-centered data) |
| a_dir | normal direction of the domain where boundary condition fluxes needed |
| a_side | side of the domain where boundary condition fluxes needed |
| a_time | physical time of the problem, for time-varying boundary conditions |
Implemented in AdvectTestIBC, ExplosionIBC, RampIBC, and WaveIBC.
| virtual void PhysIBC::setBdrySlopes | ( | FArrayBox & | a_dW, | |
| const FArrayBox & | a_W, | |||
| const int & | a_dir, | |||
| const Real & | a_time | |||
| ) | [pure virtual] |
Set boundary slopes.
The boundary slopes in a_dW are already set to one-sided difference approximations. If this function doesn't change them, they will be used for the slopes at the boundaries.
| a_dW | face-centered differences of primitive variables |
| a_W | primitive variables at start of time step (cell-centered data) |
| a_dir | normal direction of faces |
| a_time | physical time of the problem, for time-varying boundary conditions |
Implemented in AdvectTestIBC, ExplosionIBC, RampIBC, and WaveIBC.
| virtual void PhysIBC::artViscBC | ( | FArrayBox & | a_F, | |
| const FArrayBox & | a_U, | |||
| const FArrayBox & | a_divVel, | |||
| const int & | a_dir, | |||
| const Real & | a_time | |||
| ) | [pure virtual] |
Adjust boundary fluxes to account for artificial viscosity.
| a_F | face-centered flux, to be adjusted on boundary |
| a_U | cell-centered conserved variables |
| a_divVel | face-centered divergence of cell-centered velocity |
| a_dir | normal direction of faces |
| a_time | physical time of the problem, for time-varying boundary conditions |
Implemented in AdvectTestIBC, ExplosionIBC, RampIBC, and WaveIBC.
| virtual void PhysIBC::getBoundaryFaces | ( | Box & | a_boundaryBox, | |
| const Box & | a_dataFaceBox, | |||
| const int & | a_dir, | |||
| const Side::LoHiSide & | a_side | |||
| ) | [virtual] |
| void PhysIBC::operator= | ( | const PhysIBC & | ) | [private] |
bool PhysIBC::m_isDefined [protected] |
ProblemDomain PhysIBC::m_domain [protected] |
Real PhysIBC::m_dx [protected] |
1.5.5