IndexType Class Reference

#include <Box.H>

List of all members.


Detailed Description

Cell-Based or Node-Based Indices.

The class IndexType defines an index as being cell based or node (face) based in each of the CH_SPACEDIM directions. This class defines an enumerated type CellIndex to be either CELL or NODE; i.e. each of the CH_SPACEDIM dimensions must be either CELL or NODE.

Public Types

enum  CellIndex { CELL = 0, NODE = 1 }

Public Member Functions

 IndexType ()
 IndexType (const IntVect &iv)
IndexTypeoperator= (const IndexType &rhs)
IndexTypeoperator= (const IntVect &iv)
 IndexType (D_DECL6(CellIndex i, CellIndex j, CellIndex k, CellIndex l, CellIndex m, CellIndex n))
void set (int dir)
void unset (int dir)
bool test (int dir) const
void setall ()
void clear ()
bool any () const
bool ok () const
void flip (int i)
bool operator== (const IndexType &t) const
bool operator< (const IndexType &t) const
bool operator!= (const IndexType &t) const
bool cellCentered () const
bool nodeCentered () const
void setType (int dir, CellIndex t)
CellIndex ixType (int dir) const
int operator[] (int dir) const
IntVect ixType () const

Static Public Member Functions

static IndexType TheCellType ()
static IndexType TheNodeType ()

Static Private Member Functions

static unsigned char mask (int k)

Private Attributes

unsigned char itype

Friends

std::ostream & operator<< (std::ostream &os, const IndexType &itype)
std::istream & operator>> (std::istream &is, IndexType &itype)


Member Enumeration Documentation

The cell index type: one of CELL or NODE.

Enumerator:
CELL 
NODE 


Constructor & Destructor Documentation

IndexType::IndexType (  )  [inline]

The default constructor.

IndexType::IndexType ( const IntVect iv  )  [inline, explicit]

The copy constructor. Let compiler build default copy constructor (bvs) Constructs an IndexType identical to an IntVect.

References D_TERM6, and itype.

IndexType::IndexType ( D_DECL6(CellIndex i, CellIndex j, CellIndex k,CellIndex l, CellIndex m, CellIndex n)   )  [inline]

Constructs an IndexType given an explicit CellIndex for each direction. D_DECL6 is a macro that sets the constructor to take BL_SPACEDIM arguments.

References D_TERM6, and itype.


Member Function Documentation

IndexType & IndexType::operator= ( const IndexType rhs  )  [inline]

The assignment operator.

References itype.

IndexType & IndexType::operator= ( const IntVect iv  )  [inline]

Another assignment operator.

References D_TERM6, and itype.

void IndexType::set ( int  dir  )  [inline]

Sets this IndexType to be NODE based in direction dir.

References itype, and mask().

Referenced by Box::surroundingNodes().

void IndexType::unset ( int  dir  )  [inline]

Sets this IndexType to be CELL based in direction dir.

References itype, and mask().

Referenced by Box::enclosedCells(), and setType().

bool IndexType::test ( int  dir  )  const [inline]

True if this IndexType is NODE based in direction dir.

References itype, and mask().

Referenced by Box::coarsenable(), and operator[]().

void IndexType::setall (  )  [inline]

Set this IndexType to be NODE based in all directions.

References CH_SPACEDIM, and itype.

void IndexType::clear (  )  [inline]

Set this IndexType to be CELL based in all directions.

References itype.

bool IndexType::any (  )  const [inline]

True if this IndexType is NODE based in any direction.

References itype.

Referenced by Box::cellCentered().

bool IndexType::ok (  )  const [inline]

True if this IndexType is valid.

References CH_SPACEDIM, and itype.

void IndexType::flip ( int  i  )  [inline]

Change this IndexType from CELL to NODE or NODE to CELL in direction dir.

References itype, and mask().

bool IndexType::operator== ( const IndexType t  )  const [inline]

True if IndexTypes are identical.

References itype.

bool IndexType::operator< ( const IndexType t  )  const [inline]

IndexTypes comparison.

References itype.

bool IndexType::operator!= ( const IndexType t  )  const [inline]

True if IndexTypes are not identical.

References itype.

bool IndexType::cellCentered (  )  const [inline]

True if this IndexType is CELL based in all directions.

References itype.

bool IndexType::nodeCentered (  )  const [inline]

True if this IndexType is NODE based in all directions.

References CH_SPACEDIM, and itype.

void IndexType::setType ( int  dir,
CellIndex  t 
) [inline]

Set this IndexType to CellIndex type t in direction dir.

References CELL, and unset().

IndexType::CellIndex IndexType::ixType ( int  dir  )  const [inline]

Returns the CellIndex of this IndexType in direction dir.

References itype.

Referenced by Box::convert(), and Box::type().

int IndexType::operator[] ( int  dir  )  const [inline]

Return an integer representing this IndexType in direction dir.

References test().

IntVect IndexType::ixType (  )  const [inline]

Convert this IndexType to an IntVect via component-wise conversion of enum CellIndex to int.

References D_DECL6, and itype.

static IndexType IndexType::TheCellType (  )  [static]

This static member function returns an IndexType object all of whose components are of value IndexType::CELL. It is provided as a convenience to our users when defining a Box all of whose faces should be of type IndexType::CELL.

static IndexType IndexType::TheNodeType (  )  [static]

This static member function returns an IndexType object all of whose components are of value IndexType::NODE. It is provided as a convenience to our users when defining a Box all of whose faces should be of type IndexType::NODE.

unsigned char IndexType::mask ( int  k  )  [inline, static, private]

Referenced by flip(), set(), test(), and unset().


Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  os,
const IndexType itype 
) [friend]

Write an IndexType to an ostream in ASCII.

std::istream& operator>> ( std::istream &  is,
IndexType itype 
) [friend]

Read an IndexType from an istream.


Member Data Documentation

unsigned char IndexType::itype [private]


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

Generated on Fri Dec 15 03:27:18 2017 for Chombo + EB + MF by  doxygen 1.5.5