GeometryService Class Reference

#include <GeometryService.H>

Inheritance diagram for GeometryService:

Inheritance graph
[legend]

List of all members.


Detailed Description

This is a pure base class that EBIndexSpace uses to interface with geometry-generation classes.

Public Types

enum  InOut { Regular, Covered, Irregular }

Public Member Functions

 GeometryService ()
virtual ~GeometryService ()
virtual bool isRegular (const Box &a_region, const ProblemDomain &a_domain, const RealVect &a_origin, const Real &a_dx) const =0
virtual bool isCovered (const Box &a_region, const ProblemDomain &a_domain, const RealVect &a_origin, const Real &a_dx) const =0
virtual bool isIrregular (const Box &a_region, const ProblemDomain &a_domain, const RealVect &a_origin, const Real &a_dx) 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 =0
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
virtual bool canGenerateMultiCells () const
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)

Static Public Member Functions

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
static bool intersection (const Box &a_region, const RealVect &a_origin, const Real &a_dx, const RealVect &a_lower, const RealVect &a_upper)

Member Enumeration Documentation

Enumerator:
Regular 
Covered 
Irregular 


Constructor & Destructor Documentation

GeometryService::GeometryService (  ) 

virtual GeometryService::~GeometryService (  )  [virtual]


Member Function Documentation

virtual bool GeometryService::isRegular ( const Box a_region,
const ProblemDomain a_domain,
const RealVect a_origin,
const Real a_dx 
) const [pure virtual]

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

Implemented in AllRegularService, MultiSlabService, SlabService, GeometryShop, and WrappedGShop.

virtual bool GeometryService::isCovered ( const Box a_region,
const ProblemDomain a_domain,
const RealVect a_origin,
const Real a_dx 
) const [pure virtual]

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

Implemented in AllRegularService, MultiSlabService, SlabService, GeometryShop, and WrappedGShop.

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

Reimplemented in GeometryShop, and WrappedGShop.

virtual void GeometryService::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 [pure virtual]

irregGraph contains a complete list of irregular vofs. \ validRegion is the the region of the graph \ domain is the domain of compuation \ regIrregCovered = 1 for regular, 0 for irregular, -1 for covered. regIrregCovered must contain the valid region grown by 1. \ In chombospeak, \ ghostregion = (grow(validRegion, 1) & domain);

Implemented in AllRegularService, MultiSlabService, SlabService, GeometryShop, and WrappedGShop.

Referenced by fillGraph().

virtual void GeometryService::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 [inline, virtual]

This overloaded method will be called when the GeometryService was asked to make the grids with makeGrids()

References fillGraph().

virtual bool GeometryService::canGenerateMultiCells (  )  const [virtual]

Reimplemented in GeometryShop, and WrappedGShop.

virtual InOut GeometryService::InsideOutside ( const Box a_region,
const ProblemDomain a_domain,
const RealVect a_origin,
const Real a_dx 
) const [virtual]

Reimplemented in MultiSlabService, SlabService, and GeometryShop.

Referenced by InsideOutside().

virtual InOut GeometryService::InsideOutside ( const Box a_region,
const ProblemDomain a_domain,
const RealVect a_origin,
const Real a_dx,
const DataIndex a_di 
) const [inline, virtual]

This overloaded method will be called when the GeometryService was asked to make the grids with makeGrids()

References InsideOutside().

static bool GeometryService::intersection ( const RealVect a_lo1,
const RealVect a_hi1,
const RealVect a_lo2,
const RealVect a_hi2 
) [static]

handy functions to do rectangle intersections in real space

static bool GeometryService::intersection ( const Box a_region,
const RealVect a_origin,
const Real a_dx,
const RealVect a_lower,
const RealVect a_upper 
) [static]

virtual void GeometryService::postMakeBoxLayout ( const DisjointBoxLayout a_dbl,
const RealVect a_dx 
) [virtual]

Perform any adjustments needed after box layout is created during EBISLevel construction This function is used because subclasses may have distributed data that they will want to adjust based on the new layout. The default implementation is empty.

virtual void GeometryService::makeGrids ( const ProblemDomain a_domain,
DisjointBoxLayout a_grids,
const int &  a_maxGridSize,
const int &  a_maxIrregGridSize 
) [inline, virtual]

Allow the geometry service to determine the DisjointBoxLayout that will dictate InsideOutside queries.

References MayDay::Error().


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

Generated on Thu Aug 17 03:27:17 2017 for Chombo + EB + MF by  doxygen 1.5.5