Chombo + EB  3.2
Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
WrappedGShop Class Reference

#include <WrappedGShop.H>

Inheritance diagram for WrappedGShop:
Inheritance graph
[legend]

Public Member Functions

 WrappedGShop (const RefCountedPtr< BaseIF > &a_baseIF, const RealVect &a_origin, const Real &a_dx, const ProblemDomain &a_domain, int minNumberRefines, int maxNumberRefines)
 
bool checkNodeMoments (IrregNode &a_node, const Real &a_dx, const bool &a_bindMoments, const Real &a_tolerance) const
 
virtual const BaseIFgetBaseIFPtr () const
 
 ~WrappedGShop ()
 
virtual bool generatesHigherOrderMoments () const
 this does return higher order moments. More...
 
virtual bool isRegular (const Box &a_region, const ProblemDomain &a_domain, const RealVect &a_origin, const Real &a_dx) const
 
virtual bool isCovered (const Box &a_region, const ProblemDomain &a_domain, const RealVect &a_origin, const Real &a_dx) const
 
virtual bool isIrregular (const Box &a_region, const ProblemDomain &a_domain, const RealVect &a_origin, const Real &a_dx) const
 
virtual bool canGenerateMultiCells () const
 
bool onBoxBoundary (const IntVect &a_iv, const Box &a_box, const int &a_dir, const Side::LoHiSide &a_sd) const
 
virtual void fillGraph (BaseFab< int > &a_regIrregCovered, Vector< IrregNode > &a_nodes, const Box &a_validRegion, const Box &a_ghostRegion, const ProblemDomain &a_domain, const RealVect &a_origin, const Real &a_dx, const DataIndex &a_di) const
 
void computeVoFInternals (IrregNode &a_node, const IntVectSet &a_ivsIrreg, const ProblemDomain &a_domain, const RealVect &a_origin, const Real &a_dx, const IntVect &a_iv) const
 
bool needToRefine (IrregNode &a_node, const Real &a_dx, const int &a_numRefSoFar) const
 
void agglomerateMoments (IrregNode &a_node, const Vector< IrregNode > &a_refNodes, const Box &a_refBox, const Real &a_fineDx, const Real &a_coarDx) const
 
RealVect convert2RelativeCoord (const RealVect &a_rVect) const
 
RealVect convert2RelativeCoord (const IndexTM< Real, SpaceDim > &a_rVect) const
 
void fillNewNode (IrregNode &a_node, const IntVectSet &a_ivsIrreg, const ProblemDomain &a_domain, const RealVect &a_origin, const Real &a_dx, const IntVect &a_iv) const
 
void setRefinementCriterion (const RefCountedPtr< WGSRefinementCriterion > &a_refCrit)
 
- Public Member Functions inherited from GeometryService
 GeometryService ()
 
virtual ~GeometryService ()
 
virtual InOut InsideOutside (const Box &a_region, const ProblemDomain &a_domain, const RealVect &a_origin, const Real &a_dx) const
 
virtual InOut InsideOutside (const Box &a_region, const ProblemDomain &a_domain, const RealVect &a_origin, const Real &a_dx, const DataIndex &a_di) const
 
virtual void postMakeBoxLayout (const DisjointBoxLayout &a_dbl, const RealVect &a_dx)
 
virtual void makeGrids (const ProblemDomain &a_domain, DisjointBoxLayout &a_grids, const int &a_maxGridSize, const int &a_maxIrregGridSize)
 

Public Attributes

int m_phase
 

Private Member Functions

void fixRegularCellsNextToCovered (Vector< IrregNode > &a_nodes, BaseFab< int > &a_regIrregCovered, const Box &a_validRegion, const Box &a_domain, const IntVect &a_iv, const Real &a_dx) const
 
void getFullNodeWithCoveredFace (IrregNode &a_newNode, const BaseFab< int > &a_regIrregCovered, const IntVect &a_iv, const Real &a_dx, const Box &a_domain) const
 
bool isRegularEveryPoint (const Box &a_region, const ProblemDomain &a_domain, const RealVect &a_origin, const Real &a_dx) const
 
bool isCoveredEveryPoint (const Box &a_region, const ProblemDomain &a_domain, const RealVect &a_origin, const Real &a_dx) const
 
void fillArc (Vector< int > a_arc[SpaceDim], CutCellMoments< SpaceDim > &a_cutCellMoments, const int &a_hilo, const IntVectSet &a_ivsIrreg, const IntVect &a_curriv) const
 
 WrappedGShop ()
 
 WrappedGShop (const WrappedGShop &a_workshopin)
 
void operator= (const WrappedGShop &a_workshopin)
 

Private Attributes

RefCountedPtr
< WGSRefinementCriterion
m_refCrit
 
Real m_threshold
 
RealVect m_origin
 
int m_order
 
int m_degreeP
 
int m_minNumberRefines
 
int m_maxNumberRefines
 
ProblemDomain m_domain
 
RefCountedPtr< BaseIFm_baseIF
 

Static Private Attributes

static Real s_relativeTol
 

Additional Inherited Members

- Public Types inherited from GeometryService
enum  InOut { Regular, Covered, Irregular }
 
- Static Public Member Functions inherited from GeometryService
static bool intersection (const RealVect &a_lo1, const RealVect &a_hi1, const RealVect &a_lo2, const RealVect &a_hi2)
 handy functions to do rectangle intersections in real space More...
 
static bool intersection (const Box &a_region, const RealVect &a_origin, const Real &a_dx, const RealVect &a_lower, const RealVect &a_upper)
 

Detailed Description

This is a much simplified version of GeometryShop. Refinement has been taken out of the internals of computecutcellmoments and the constrained least squares stuff is gone alltogether. This is also done for isotropic dx and there is no more stuff about globaldim.

Constructor & Destructor Documentation

WrappedGShop::WrappedGShop ( const RefCountedPtr< BaseIF > &  a_baseIF,
const RealVect a_origin,
const Real a_dx,
const ProblemDomain a_domain,
int  minNumberRefines,
int  maxNumberRefines 
)

This class will refine a cell if it is between min and max refinements. If it violates bounds, that triggers refinement until max refinement.

WrappedGShop::~WrappedGShop ( )
inline
WrappedGShop::WrappedGShop ( )
inlineprivate

References MayDay::Abort().

WrappedGShop::WrappedGShop ( const WrappedGShop a_workshopin)
inlineprivate

References MayDay::Abort().

Member Function Documentation

bool WrappedGShop::checkNodeMoments ( IrregNode a_node,
const Real a_dx,
const bool &  a_bindMoments,
const Real a_tolerance 
) const

This checks to see if moments are within sane bounds. If a_bindMoments = true, it enforces those bounds. Only returns true if the bounds are violated by the relative tolerance.

virtual const BaseIF* WrappedGShop::getBaseIFPtr ( ) const
inlinevirtual
virtual bool WrappedGShop::generatesHigherOrderMoments ( ) const
inlinevirtual

this does return higher order moments.

Reimplemented from GeometryService.

virtual bool WrappedGShop::isRegular ( const Box a_region,
const ProblemDomain a_domain,
const RealVect a_origin,
const Real a_dx 
) const
virtual

Return true if every cell in region is regular at the refinement described by dx.

Implements GeometryService.

virtual bool WrappedGShop::isCovered ( const Box a_region,
const ProblemDomain a_domain,
const RealVect a_origin,
const Real a_dx 
) const
virtual

Return true if every cell in region is covered at the refinement described by dx.

Implements GeometryService.

virtual bool WrappedGShop::isIrregular ( const Box a_region,
const ProblemDomain a_domain,
const RealVect a_origin,
const Real a_dx 
) const
virtual

Reimplemented from GeometryService.

virtual bool WrappedGShop::canGenerateMultiCells ( ) const
inlinevirtual

Reimplemented from GeometryService.

bool WrappedGShop::onBoxBoundary ( const IntVect a_iv,
const Box a_box,
const int &  a_dir,
const Side::LoHiSide a_sd 
) const
virtual void WrappedGShop::fillGraph ( BaseFab< int > &  a_regIrregCovered,
Vector< IrregNode > &  a_nodes,
const Box a_validRegion,
const Box a_ghostRegion,
const ProblemDomain a_domain,
const RealVect a_origin,
const Real a_dx,
const DataIndex a_di 
) const
virtual

Define the internals of the input ebisRegion.

Implements GeometryService.

void WrappedGShop::computeVoFInternals ( IrregNode a_node,
const IntVectSet a_ivsIrreg,
const ProblemDomain a_domain,
const RealVect a_origin,
const Real a_dx,
const IntVect a_iv 
) const
bool WrappedGShop::needToRefine ( IrregNode a_node,
const Real a_dx,
const int &  a_numRefSoFar 
) const
void WrappedGShop::agglomerateMoments ( IrregNode a_node,
const Vector< IrregNode > &  a_refNodes,
const Box a_refBox,
const Real a_fineDx,
const Real a_coarDx 
) const
RealVect WrappedGShop::convert2RelativeCoord ( const RealVect a_rVect) const
RealVect WrappedGShop::convert2RelativeCoord ( const IndexTM< Real, SpaceDim > &  a_rVect) const
void WrappedGShop::fillNewNode ( IrregNode a_node,
const IntVectSet a_ivsIrreg,
const ProblemDomain a_domain,
const RealVect a_origin,
const Real a_dx,
const IntVect a_iv 
) const
void WrappedGShop::setRefinementCriterion ( const RefCountedPtr< WGSRefinementCriterion > &  a_refCrit)
inline

References m_refCrit.

void WrappedGShop::fixRegularCellsNextToCovered ( Vector< IrregNode > &  a_nodes,
BaseFab< int > &  a_regIrregCovered,
const Box a_validRegion,
const Box a_domain,
const IntVect a_iv,
const Real a_dx 
) const
private
void WrappedGShop::getFullNodeWithCoveredFace ( IrregNode a_newNode,
const BaseFab< int > &  a_regIrregCovered,
const IntVect a_iv,
const Real a_dx,
const Box a_domain 
) const
private
bool WrappedGShop::isRegularEveryPoint ( const Box a_region,
const ProblemDomain a_domain,
const RealVect a_origin,
const Real a_dx 
) const
private

Return true if every cell in region is regular at the refinement described by dx.

bool WrappedGShop::isCoveredEveryPoint ( const Box a_region,
const ProblemDomain a_domain,
const RealVect a_origin,
const Real a_dx 
) const
private

Return true if every cell in region is covered at the refinement described by dx.

void WrappedGShop::fillArc ( Vector< int >  a_arc[SpaceDim],
CutCellMoments< SpaceDim > &  a_cutCellMoments,
const int &  a_hilo,
const IntVectSet a_ivsIrreg,
const IntVect a_curriv 
) const
private
void WrappedGShop::operator= ( const WrappedGShop a_workshopin)
inlineprivate

References MayDay::Abort().

Member Data Documentation

int WrappedGShop::m_phase
RefCountedPtr<WGSRefinementCriterion> WrappedGShop::m_refCrit
private

Referenced by setRefinementCriterion().

Real WrappedGShop::m_threshold
private
RealVect WrappedGShop::m_origin
private
int WrappedGShop::m_order
private
int WrappedGShop::m_degreeP
private
int WrappedGShop::m_minNumberRefines
private
int WrappedGShop::m_maxNumberRefines
private
ProblemDomain WrappedGShop::m_domain
private
RefCountedPtr<BaseIF> WrappedGShop::m_baseIF
private
Real WrappedGShop::s_relativeTol
staticprivate

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