chombo-discharge
Public Member Functions | Protected Attributes | List of all members
IrregAmrStencil< IrregSten > Class Template Reference

Class for holding VoFStencils on irregular cells over an entire AMR hierarchy. The template parameter must inherit from IrregStencil. The stencil can only be applied to EBCellFABs. More...

#include <CD_IrregAmrStencil.H>

Public Member Functions

 IrregAmrStencil ()
 Empty constructor. You must subsequently call define.
 
 IrregAmrStencil (const Vector< DisjointBoxLayout > &a_grids, const Vector< EBISLayout > &a_ebisl, const Vector< ProblemDomain > &a_domains, const Vector< Real > &a_dx, const int a_finestLevel, const int a_order, const int a_radius, const IrregStencil::StencilType a_type)
 Full constructor. Subsequently calls define. More...
 
virtual ~IrregAmrStencil ()
 Destructor.
 
const IrregStenciloperator[] (const int &a_lvl) const
 Get the stencils over an AMR level. More...
 
IrregStenciloperator[] (const int &a_lvl)
 Get the stencils over an AMR level. More...
 
virtual void define (const Vector< DisjointBoxLayout > &a_grids, const Vector< EBISLayout > &a_ebisl, const Vector< ProblemDomain > &a_domains, const Vector< Real > &a_dx, const int a_finestLevel, const int a_order, const int a_radius, const IrregStencil::StencilType a_type)
 Define function. More...
 
virtual void apply (LevelData< EBCellFAB > &a_dst, const LevelData< EBCellFAB > &a_src, const int a_lvl) const
 Apply the stencils to an existing data holder. More...
 
virtual void apply (LevelData< EBCellFAB > &a_data, const int a_lvl) const
 Apply stencils to data holder. This replaces original data. More...
 
virtual void apply (LevelData< BaseIVFAB< Real >> &a_dst, const LevelData< EBCellFAB > &a_src, const int a_lvl) const
 Apply the stencils to an existing data holder. More...
 
virtual void apply (EBAMRCellData &a_dst, const EBAMRCellData &a_src) const
 Apply the stencils to an existing data holder. More...
 
virtual void apply (EBAMRCellData &a_dst) const
 Apply the stencils to an existing data holder. This replaces original data. More...
 
virtual void apply (EBAMRIVData &a_dst, const EBAMRCellData &a_src) const
 Apply the stencils to an existing data holder. More...
 
virtual void apply (Vector< EBAMRCellData * > &a_data) const
 Apply stencils to an existing data holders. This replaces original data. More...
 
virtual void apply (Vector< EBAMRCellData * > &a_dst, const Vector< EBAMRCellData * > &a_src) const
 Apply stencils to existing data holders. More...
 
virtual void apply (Vector< EBAMRIVData * > &a_dst, const Vector< EBAMRCellData * > &a_src) const
 Apply stencils to existing data holders. More...
 

Protected Attributes

Vector< DisjointBoxLayout > m_grids
 AMR grids.
 
Vector< EBISLayout > m_ebisl
 EBIS layouts.
 
Vector< ProblemDomain > m_domains
 Problem domains.
 
Vector< Real > m_dx
 Resolutions.
 
Vector< RefCountedPtr< IrregStencil > > m_stencils
 Stencils.
 
bool m_isDefined
 Stencils defined or not.
 
int m_order
 Order.
 
int m_radius
 Radius.
 
int m_finestLevel
 Finest level.
 
IrregStencil::StencilType m_stencilType
 Stencil type.
 

Detailed Description

template<class IrregSten>
class IrregAmrStencil< IrregSten >

Class for holding VoFStencils on irregular cells over an entire AMR hierarchy. The template parameter must inherit from IrregStencil. The stencil can only be applied to EBCellFABs.

This class is simply an AMR wrapper for IrregStencil, which represents the cut-cell stencils on a single AMR level.

Note
This does not use aggregate stencil functionality. Do not use this class inside multigrid!

Constructor & Destructor Documentation

◆ IrregAmrStencil()

template<class IrregSten >
IrregAmrStencil< IrregSten >::IrregAmrStencil ( const Vector< DisjointBoxLayout > &  a_grids,
const Vector< EBISLayout > &  a_ebisl,
const Vector< ProblemDomain > &  a_domains,
const Vector< Real > &  a_dx,
const int  a_finestLevel,
const int  a_order,
const int  a_radius,
const IrregStencil::StencilType  a_type 
)

Full constructor. Subsequently calls define.

Parameters
[in]a_gridsAMR grids
[in]a_ebislEBIS layouts on each level
[in]a_domainsDomains on each level
[in]a_dxResolutions on each level
[in]a_finestLevelFinest AMR level
[in]a_orderStencil order
[in]a_radiusStencil radius
[in]a_typeStencil type

Member Function Documentation

◆ apply() [1/9]

template<class IrregSten >
void IrregAmrStencil< IrregSten >::apply ( EBAMRCellData a_dst) const
virtual

Apply the stencils to an existing data holder. This replaces original data.

Parameters
[in,out]a_dstData

◆ apply() [2/9]

template<class IrregSten >
void IrregAmrStencil< IrregSten >::apply ( EBAMRCellData a_dst,
const EBAMRCellData a_src 
) const
virtual

Apply the stencils to an existing data holder.

This routine will perform a copy of all regular cells, and apply stencils to irregular cells only.

Parameters
[out]a_dstDestination data.
[in]a_srcSource data

◆ apply() [3/9]

template<class IrregSten >
void IrregAmrStencil< IrregSten >::apply ( EBAMRIVData a_dst,
const EBAMRCellData a_src 
) const
virtual

Apply the stencils to an existing data holder.

Parameters
[out]a_dstDestination data.
[in]a_srcSource data

◆ apply() [4/9]

template<class IrregSten >
void IrregAmrStencil< IrregSten >::apply ( LevelData< BaseIVFAB< Real >> &  a_dst,
const LevelData< EBCellFAB > &  a_src,
const int  a_lvl 
) const
virtual

Apply the stencils to an existing data holder.

This routine will perform a copy of all regular cells, and apply stencils to irregular cells only.

Parameters
[out]a_dstDestination data.
[in]a_srcSource data
[in]a_lvlLevel

◆ apply() [5/9]

template<class IrregSten >
void IrregAmrStencil< IrregSten >::apply ( LevelData< EBCellFAB > &  a_data,
const int  a_lvl 
) const
virtual

Apply stencils to data holder. This replaces original data.

Parameters
[in,out]a_dataTransformed data
[in]a_lvlLevel

◆ apply() [6/9]

template<class IrregSten >
void IrregAmrStencil< IrregSten >::apply ( LevelData< EBCellFAB > &  a_dst,
const LevelData< EBCellFAB > &  a_src,
const int  a_lvl 
) const
virtual

Apply the stencils to an existing data holder.

This routine will perform a copy of all regular cells, and apply stencils to irregular cells only.

Parameters
[out]a_dstDestination data.
[in]a_srcSource data
[in]a_lvlLevel

◆ apply() [7/9]

template<class IrregSten >
void IrregAmrStencil< IrregSten >::apply ( Vector< EBAMRCellData * > &  a_data) const
virtual

Apply stencils to an existing data holders. This replaces original data.

Parameters
[in,out]a_data

◆ apply() [8/9]

template<class IrregSten >
void IrregAmrStencil< IrregSten >::apply ( Vector< EBAMRCellData * > &  a_dst,
const Vector< EBAMRCellData * > &  a_src 
) const
virtual

Apply stencils to existing data holders.

Parameters
[out]a_dstDestination data holders.
[in]a_srcSource data holders

◆ apply() [9/9]

template<class IrregSten >
void IrregAmrStencil< IrregSten >::apply ( Vector< EBAMRIVData * > &  a_dst,
const Vector< EBAMRCellData * > &  a_src 
) const
virtual

Apply stencils to existing data holders.

Parameters
[out]a_dstDestination data holders.
[in]a_srcSource data holders

◆ define()

template<class IrregSten >
void IrregAmrStencil< IrregSten >::define ( const Vector< DisjointBoxLayout > &  a_grids,
const Vector< EBISLayout > &  a_ebisl,
const Vector< ProblemDomain > &  a_domains,
const Vector< Real > &  a_dx,
const int  a_finestLevel,
const int  a_order,
const int  a_radius,
const IrregStencil::StencilType  a_type 
)
virtual

Define function.

Parameters
[in]a_gridsAMR grids
[in]a_ebislEBIS layouts on each level
[in]a_domainsDomains on each level
[in]a_dxResolutions on each level
[in]a_finestLevelFinest AMR level
[in]a_orderStencil order
[in]a_radiusStencil radius
[in]a_typeStencil type

◆ operator[]() [1/2]

template<class IrregSten >
IrregStencil & IrregAmrStencil< IrregSten >::operator[] ( const int &  a_lvl)

Get the stencils over an AMR level.

Parameters
[in]a_lvlAMR level

◆ operator[]() [2/2]

template<class IrregSten >
const IrregStencil & IrregAmrStencil< IrregSten >::operator[] ( const int &  a_lvl) const

Get the stencils over an AMR level.

Parameters
[in]a_lvlAMR level

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