PhysIBC Class Reference

#include <PhysIBC.H>

Inheritance diagram for PhysIBC:

Inheritance graph
[legend]

List of all members.


Detailed Description

Physical/domain initial and boundary conditions.

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 PhysIBCnew_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 &)


Constructor & Destructor Documentation

PhysIBC::PhysIBC (  ) 

Constructor.

virtual PhysIBC::~PhysIBC (  )  [virtual]

Destructor.

PhysIBC::PhysIBC ( const PhysIBC  )  [private]


Member Function Documentation

virtual void PhysIBC::define ( const ProblemDomain a_domain,
const Real a_dx 
) [virtual]

Define the object.

Parameters:
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.

virtual void PhysIBC::initialize ( LevelData< FArrayBox > &  a_U  )  [pure virtual]

Set up initial conditions.

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:
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]

This function is called by primBC() to get boundary faces of a Box.

Parameters:
a_boundaryBox  face-centered box of boundary faces to fill in; subbox of a_dataFaceBox
a_dataFaceBox  entire face-centered box
a_dir  normal direction of faces
a_side  side of the domain where boundary faces needed

void PhysIBC::operator= ( const PhysIBC  )  [private]


Member Data Documentation

bool PhysIBC::m_isDefined [protected]

Real PhysIBC::m_dx [protected]


The documentation for this class was generated from the following file:

Generated on Fri Apr 5 04:25:15 2019 for Chombo + EB by  doxygen 1.5.5