Chombo + EB + MF  3.2
Public Member Functions | Protected Attributes | Private Member Functions | List of all members
PhysIBC Class Referenceabstract

Physical/domain initial and boundary conditions. More...

#include <PhysIBC.H>

Inheritance diagram for PhysIBC:
Inheritance graph
[legend]

Public Member Functions

 PhysIBC ()
 Constructor. More...
 
virtual ~PhysIBC ()
 Destructor. More...
 
virtual void define (const ProblemDomain &a_domain, const Real &a_dx)
 Define the object. More...
 
virtual PhysIBCnew_physIBC ()=0
 Factory method - this object is its own factory. More...
 
virtual void initialize (LevelData< FArrayBox > &a_U)=0
 Set up initial conditions. More...
 
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. More...
 
virtual void setBdrySlopes (FArrayBox &a_dW, const FArrayBox &a_W, const int &a_dir, const Real &a_time)=0
 Set boundary slopes. More...
 
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. More...
 
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. More...
 

Protected Attributes

bool m_isDefined
 
ProblemDomain m_domain
 
Real m_dx
 

Private Member Functions

void operator= (const PhysIBC &)
 
 PhysIBC (const PhysIBC &)
 

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.

Constructor & Destructor Documentation

◆ PhysIBC() [1/2]

PhysIBC::PhysIBC ( )

Constructor.

◆ ~PhysIBC()

virtual PhysIBC::~PhysIBC ( )
virtual

Destructor.

◆ PhysIBC() [2/2]

PhysIBC::PhysIBC ( const PhysIBC )
private

Member Function Documentation

◆ define()

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

Define the object.

Parameters
a_domainproblem domain index space
a_dxgrid spacing

Reimplemented in PhysMappedIBC.

◆ new_physIBC()

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 WaveIBC, RampIBC, ExplosionIBC, PhysMappedIBC, and AdvectTestIBC.

◆ initialize()

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

Set up initial conditions.

Parameters
a_Uconserved variables

Implemented in WaveIBC, RampIBC, ExplosionIBC, PhysMappedIBC, and AdvectTestIBC.

◆ primBC()

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_WGdnvprimitive variables at face centers; this routine replaces values along boundary faces of domain
a_Wextrapextrapolated primitive variables to a_side of cells in direction a_dir (cell-centered data)
a_Wprimitive variables at start of time step (cell-centered data)
a_dirnormal direction of the domain where boundary condition fluxes needed
a_sideside of the domain where boundary condition fluxes needed
a_timephysical time of the problem, for time-varying boundary conditions

Implemented in WaveIBC, RampIBC, ExplosionIBC, PhysMappedIBC, and AdvectTestIBC.

◆ setBdrySlopes()

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_dWface-centered differences of primitive variables
a_Wprimitive variables at start of time step (cell-centered data)
a_dirnormal direction of faces
a_timephysical time of the problem, for time-varying boundary conditions

Implemented in PhysMappedIBC, WaveIBC, RampIBC, ExplosionIBC, and AdvectTestIBC.

◆ artViscBC()

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_Fface-centered flux, to be adjusted on boundary
a_Ucell-centered conserved variables
a_divVelface-centered divergence of cell-centered velocity
a_dirnormal direction of faces
a_timephysical time of the problem, for time-varying boundary conditions

Implemented in PhysMappedIBC, WaveIBC, RampIBC, ExplosionIBC, and AdvectTestIBC.

◆ getBoundaryFaces()

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_boundaryBoxface-centered box of boundary faces to fill in; subbox of a_dataFaceBox
a_dataFaceBoxentire face-centered box
a_dirnormal direction of faces
a_sideside of the domain where boundary faces needed

◆ operator=()

void PhysIBC::operator= ( const PhysIBC )
private

Member Data Documentation

◆ m_isDefined

bool PhysIBC::m_isDefined
protected

◆ m_domain

ProblemDomain PhysIBC::m_domain
protected

◆ m_dx

Real PhysIBC::m_dx
protected

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