chombo-discharge
Loading...
Searching...
No Matches
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.
 
 ~DomainFluxIFFAB ()
 Destructor (does nothing)
 
const Boxbox () const
 Get the defining box.
 
int nComp () const
 Get number of components.
 
const ProblemDomaingetDomain () const
 Get the defining problem domain.
 
const EBISBoxgetEBISBox () const
 Get the defining ebis box.
 
void define (const DomainFluxIFFAB &a_copy)
 Make a clone of an input data holder.
 
void define (const ProblemDomain &a_domain, const EBISBox &a_ebisbox, const Box &a_box, const int a_nComp)
 Full define function.
 
BaseIFFAB< Real > & operator() (const int a_dir, const Side::LoHiSide a_side)
 Get the BaseIFFAB on a particular domain side.
 
const BaseIFFAB< Real > & operator() (const int a_dir, const Side::LoHiSide a_side) const
 Get the BaseIFFAB on a particular domain side.
 
int size (const Box &R, const Interval &comps) const
 Linearization function.
 
void linearOut (void *buf, const Box &R, const Interval &comps) const
 Linearization function.
 
void linearIn (void *buf, const Box &R, const Interval &comps)
 Linearization function.
 
void copy (const Box &Rfrom, const Interval &Cdest, const Box &Rto, const DomainFluxIFFAB &src, const Interval &Csrc)
 Copy functiopn.
 

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_SPACEDIMm_fluxLo
 BaseIFFABs on Side::Lo sides.
 
Tuple< BaseIFFAB< Real > *, CH_SPACEDIMm_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: