Chombo + EB
3.0
|
A class to encapsulate the operations of boundary conditions on a face. More...
#include <NodeBC.H>
Protected Member Functions | |
Functions to apply boundary conditions | |
virtual void | applyInhomogeneousBCs (FArrayBox &a_state, const ProblemDomain &a_domain, Real a_dx) const |
virtual void | applyInhomogeneousBCs (FArrayBox &a_state, const Box &a_domain, Real a_dx) const |
virtual void | applyHomogeneousBCs (FArrayBox &a_state, const ProblemDomain &domain, Real a_dx) const |
virtual void | applyHomogeneousBCs (FArrayBox &a_state, const Box &domain, Real a_dx) const |
virtual void | applyEitherBCs (FArrayBox &a_state, const ProblemDomain &domain, Real a_dx, bool a_homogeneous) const |
virtual void | applyEitherBCs (FArrayBox &a_state, const Box &domain, Real a_dx, bool a_homogeneous) const |
virtual void | applyBCs (const Box &a_bcbox, FArrayBox &a_state, const FArrayBox &a_neumfac, const FArrayBox &a_dircfac, const FArrayBox &a_inhmval, Real a_dx) const |
Functions to fill in boundary-condition coefficients | |
virtual void | fillBCValues (FArrayBox &a_neumfac, FArrayBox &a_dircfac, FArrayBox &a_inhmval, Real a_dx, const ProblemDomain &domain) const =0 |
virtual void | fillBCValues (FArrayBox &a_neumfac, FArrayBox &a_dircfac, FArrayBox &a_inhmval, Real a_dx, const Box &domain) const =0 |
Protected Attributes | |
Side::LoHiSide | m_side |
int | m_direction |
Interval | m_components |
Private Member Functions | |
FaceNodeBC (const FaceNodeBC &) | |
virtual void | operator= (const FaceNodeBC &) |
Friends | |
class | DomainNodeBC |
Constructors, destructor and defines | |
FaceNodeBC () | |
FaceNodeBC (int a_dir, Side::LoHiSide a_sd) | |
FaceNodeBC (int a_dir, Side::LoHiSide a_sd, const Interval &a_comps) | |
virtual | ~FaceNodeBC () |
virtual FaceNodeBC * | new_boxBC () const =0 |
void | define (int a_dir, Side::LoHiSide a_sd) |
void | define (int a_dir, Side::LoHiSide a_sd, const Interval &a_comps) |
A class to encapsulate the operations of boundary conditions on a face.
FaceNodeBC is a class to encapsulate the operations of boundary conditions at a face.
If the solution is phi and the face normal direction is x, the boundary conditions usually used can be expressed as
A*dphi/dx + B*phi = C.
The derived class provides a function to fill A and B and C.
These functions are meant to be called by DomainNodeBC only.
|
inline |
Default constructor, sets interval to (-1:-1).
FaceNodeBC::FaceNodeBC | ( | int | a_dir, |
Side::LoHiSide | a_sd | ||
) |
Constructor for face on side a_sd in direction a_idir. This constructor sets the components interval to be (0:0).
FaceNodeBC::FaceNodeBC | ( | int | a_dir, |
Side::LoHiSide | a_sd, | ||
const Interval & | a_comps | ||
) |
Constructor for face on side a_sd in direction a_idir, for data components a_comps.
|
inlinevirtual |
Destructor.
References applyBCs(), applyEitherBCs(), applyHomogeneousBCs(), applyInhomogeneousBCs(), define(), fillBCValues(), and new_boxBC().
|
inlineprivate |
|
protectedpure virtual |
Virtual constructor workaround. Need this in derived class.
Referenced by ~FaceNodeBC().
|
protected |
Defines face on side a_sd in direction a_idir. Sets the components interval to be (0:0).
Referenced by ~FaceNodeBC().
|
protected |
Defines face on side a_sd in direction a_idir, for data components a_comps.
|
protectedvirtual |
Apply inhomogeneous boundary conditions on this face.
a_state | NODE-centered data to be modified by boundary condition |
a_domain | CELL-centered physical domain |
a_dx | mesh spacing |
Referenced by ~FaceNodeBC().
|
protectedvirtual |
Apply inhomogeneous boundary conditions on this face.
a_state | NODE-centered data to be modified by boundary condition |
a_domain | CELL-centered physical domain |
a_dx | mesh spacing |
|
protectedvirtual |
Apply homogeneous boundary conditions on this face.
a_state | NODE-centered data to be modified by boundary condition |
domain | CELL-centered physical domain |
a_dx | mesh spacing |
Referenced by ~FaceNodeBC().
|
protectedvirtual |
Apply homogeneous boundary conditions on this face.
a_state | NODE-centered data to be modified by boundary condition |
domain | CELL-centered physical domain |
a_dx | mesh spacing |
|
protectedvirtual |
Apply boundary conditions on this face.
a_state | NODE-centered data to be modified by boundary condition |
domain | CELL-centered physical domain |
a_dx | mesh spacing |
a_homogeneous | flag for homogeneous boundary condition |
Referenced by ~FaceNodeBC().
|
protectedvirtual |
Apply boundary conditions on this face.
a_state | NODE-centered data to be modified by boundary condition |
domain | CELL-centered physical domain |
a_dx | mesh spacing |
a_homogeneous | flag for homogeneous boundary condition |
|
protectedvirtual |
Apply boundary condition A*dphi/dx + B*phi = C, with the coefficients having been set in fillBCValues().
a_bcbox | NODEs on this boundary face |
a_state | NODE-centered data to be modified by boundary condition |
a_neumfac | coefficients of dphi/dx |
a_dircfac | coefficients of phi |
a_inhmval | constant coefficients |
a_dx | mesh spacing |
Referenced by ~FaceNodeBC().
|
protectedpure virtual |
Set A and B and C in the boundary condition A*dphi/dx + B*phi = C.
The FArrayBoxes are all based on the NODEs of this face.
Need this function in derived class.
a_neumfac | coefficients of dphi/dx |
a_dircfac | coefficients of phi |
a_inhmval | constant coefficients |
a_dx | mesh spacing |
domain | CELL-centered physical domain |
Referenced by ~FaceNodeBC().
|
protectedpure virtual |
Set A and B and C in the boundary condition A*dphi/dx + B*phi = C.
The FArrayBoxes are all based on the NODEs of this face.
Need this function in derived class.
a_neumfac | coefficients of dphi/dx |
a_dircfac | coefficients of phi |
a_inhmval | constant coefficients |
a_dx | mesh spacing |
domain | CELL-centered physical domain |
|
inlineprivatevirtual |
|
friend |
|
protected |
low or high face
|
protected |
dimension of face
|
protected |
components of data