chombo-discharge
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
DomainFluxIFFAB Class Reference

Class for holding fluxes on domain boundaries. More...

#include <CD_DomainFluxIFFAB.H>

Public Member Functions

 DomainFluxIFFAB ()
 Default constructor. Must subsequently call define.
 
 DomainFluxIFFAB (const ProblemDomain &a_domain, const EBISBox &a_ebisbox, const Box &a_box, const int a_nComp)
 Full constructor. Calls the define function. More...
 
 ~DomainFluxIFFAB ()
 Destructor (does nothing)
 
const Box & box () const
 Get the defining box.
 
int nComp () const
 Get number of components.
 
const ProblemDomain & getDomain () const
 Get the defining problem domain.
 
const EBISBox & getEBISBox () const
 Get the defining ebis box.
 
void define (const DomainFluxIFFAB &a_copy)
 Make a clone of an input data holder. More...
 
void define (const ProblemDomain &a_domain, const EBISBox &a_ebisbox, const Box &a_box, const int a_nComp)
 Full define function. More...
 
BaseIFFAB< Real > & operator() (const int a_dir, const Side::LoHiSide a_side)
 Get the BaseIFFAB on a particular domain side. More...
 
const BaseIFFAB< Real > & operator() (const int a_dir, const Side::LoHiSide a_side) const
 Get the BaseIFFAB on a particular domain side. More...
 
int size (const Box &R, const Interval &comps) const
 Linearization function. More...
 
void linearOut (void *buf, const Box &R, const Interval &comps) const
 Linearization function. More...
 
void linearIn (void *buf, const Box &R, const Interval &comps)
 Linearization function. More...
 
void copy (const Box &Rfrom, const Interval &Cdest, const Box &Rto, const DomainFluxIFFAB &src, const Interval &Csrc)
 Copy functiopn. More...
 

Static Public Member Functions

static int preAllocatable ()
 

Protected Member Functions

void setDefaultValues ()
 Set default values.
 
void clear ()
 Clear object.
 

Protected Attributes

ProblemDomain m_domain
 Defining domain.
 
Box m_box
 Defining box.
 
EBISBox m_ebisbox
 EBISBox.
 
int m_nComp
 Number of components.
 
bool m_isDefined
 Is defined or not.
 
Tuple< BaseIFFAB< Real > *, CH_SPACEDIM > m_fluxLo
 BaseIFFABs on Side::Lo sides.
 
Tuple< BaseIFFAB< Real > *, CH_SPACEDIM > m_fluxHi
 BaseIFFABs on Side::Hi sides.
 

Detailed Description

Class for holding fluxes on domain boundaries.

The internal functionality of this class is to use two SpaceDim-sized tuples that hold the fluxes in each direction. Object in this class can be linearized and thus put in LevelData as LevelData<DomainFluxIFFAB>.

Note
The BaseIFFABs are defined over the strip of cells abutting a domain boundary – it it will also contain a layer of interior cells.

Constructor & Destructor Documentation

◆ DomainFluxIFFAB()

DomainFluxIFFAB::DomainFluxIFFAB ( const ProblemDomain &  a_domain,
const EBISBox &  a_ebisbox,
const Box &  a_box,
const int  a_nComp 
)

Full constructor. Calls the define function.

Parameters
[in]a_domainProblem domain
[in]a_ebisboxEBISBox
[in]a_boxCell-centered box in which we define the BaseIFFABs
[in]a_nCompNumber of components

Member Function Documentation

◆ copy()

void DomainFluxIFFAB::copy ( const Box &  Rfrom,
const Interval &  Cdest,
const Box &  Rto,
const DomainFluxIFFAB src,
const Interval &  Csrc 
)

Copy functiopn.

Copies from a subsection of one box into another. Assumes the boxes are both in the same index space, and that box R is completely contained in both the src and destination boxes. This function equired by BoxLayoutData

◆ define() [1/2]

void DomainFluxIFFAB::define ( const DomainFluxIFFAB a_copy)

Make a clone of an input data holder.

Parameters
[in]a_copyOther domain flux

◆ define() [2/2]

void DomainFluxIFFAB::define ( const ProblemDomain &  a_domain,
const EBISBox &  a_ebisbox,
const Box &  a_box,
const int  a_nComp 
)

Full define function.

Parameters
[in]a_domainProblem domain
[in]a_ebisboxEBISBox
[in]a_boxCell-centered box in which we define the BaseIFFABs
[in]a_nCompNumber of components

◆ linearIn()

void DomainFluxIFFAB::linearIn ( void *  buf,
const Box &  R,
const Interval &  comps 
)

Linearization function.

This reuses BaseIFFAB linearization function

◆ linearOut()

void DomainFluxIFFAB::linearOut ( void *  buf,
const Box &  R,
const Interval &  comps 
) const

Linearization function.

This reuses BaseIFFAB linearization function

◆ operator()() [1/2]

BaseIFFAB< Real > & DomainFluxIFFAB::operator() ( const int  a_dir,
const Side::LoHiSide  a_side 
)

Get the BaseIFFAB on a particular domain side.

Parameters
[in]a_dirCoordinate direction
[in]a_sideSide (lo/hi)

◆ operator()() [2/2]

const BaseIFFAB< Real > & DomainFluxIFFAB::operator() ( const int  a_dir,
const Side::LoHiSide  a_side 
) const

Get the BaseIFFAB on a particular domain side.

Parameters
[in]a_dirCoordinate direction
[in]a_sideSide (lo/hi)

◆ size()

int DomainFluxIFFAB::size ( const Box &  R,
const Interval &  comps 
) const

Linearization function.

Returns
Returns the sum of the BaseIFFAB sizes

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