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 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.
 
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 ()
 Pre allocatable.
 

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

◆ box()

const Box & DomainFluxIFFAB::box ( ) const

Get the defining box.

Returns
Return value

◆ 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.

Parameters
[in,out]RfromDescription
[in,out]CdestDescription
[in,out]RtoDescription
[in,out]srcDescription
[in,out]CsrcDescription 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 required 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

◆ getDomain()

const ProblemDomain & DomainFluxIFFAB::getDomain ( ) const

Get the defining problem domain.

Returns
Domain

◆ getEBISBox()

const EBISBox & DomainFluxIFFAB::getEBISBox ( ) const

Get the defining ebis box.

Returns
E b i s box

◆ linearIn()

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

Linearization function.

This reuses BaseIFFAB linearization function

Parameters
[in]bufDescription
[in,out]RDescription
[in,out]compsDescription

◆ linearOut()

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

Linearization function.

This reuses BaseIFFAB linearization function

Parameters
[in]bufDescription
[in,out]RDescription
[in,out]compsDescription

◆ nComp()

int DomainFluxIFFAB::nComp ( ) const

Get number of components.

Returns
Return value

◆ 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)
Returns
Return value

◆ 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)
Returns
Return value

◆ preAllocatable()

static int DomainFluxIFFAB::preAllocatable ( )
inlinestatic

Pre allocatable.

Returns
Always 1 (symmetric messaging).

◆ size()

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

Linearization function.

Returns
Returns the sum of the BaseIFFAB sizes
Parameters
[in,out]RDescription
[in,out]compsDescription

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