class IndexType

Cell-Based or Node-Based Indices

Inheritance:

IndexType


public members:

enumCellIndex
IndexType ()
IndexType (const IndexType& rhs)
explicit IndexType (const IntVect& iv)
IndexType& operator= (const IndexType& rhs)
IndexType (D_DECL( CellIndex i, CellIndex j, CellIndex k))
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 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 IndexType TheCellType ()
static IndexType TheNodeType ()
friend std::ostream& operator<< (std::ostream& os, const IndexType& itype)
friend std::istream& operator>> (std::istream& is, IndexType& itype)

Documentation

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.
enum CellIndex
The cell index type: one of CELL or NODE.

IndexType ()
The default constructor.

IndexType (const IndexType& rhs)
The copy constructor.

explicit IndexType (const IntVect& iv)
Constructs an IndexType identical to an IntVect.

IndexType& operator= (const IndexType& rhs)
The assignment operator.

IndexType (D_DECL( CellIndex i, CellIndex j, CellIndex k))
Constructs an IndexType given an explicit CellIndex for each direction. D_DECL is a macro that sets the constructor to take BL_SPACEDIM arguments.

void set (int dir)
Sets this IndexType to be NODE based in direction dir.

void unset (int dir)
Sets this IndexType to be CELL based in direction dir.

bool test (int dir) const
True if this IndexType is NODE based in direction dir.

void setall ()
Set this IndexType to be NODE based in all directions.

void clear ()
Set this IndexType to be CELL based in all directions.

bool any () const
True if this IndexType is NODE based in any direction.

bool ok () const
True if this IndexType is valid.

void flip (int i)
Change this IndexType from CELL to NODE or NODE to CELL in direction dir.

bool operator== (const IndexType& t) const
True if IndexTypes are identical.

bool operator!= (const IndexType& t) const
True if IndexTypes are not identical.

bool cellCentered () const
True if this IndexType is CELL based in all directions.

bool nodeCentered () const
True if this IndexType is NODE based in all directions.

void setType (int dir, CellIndex t)
Set this IndexType to CellIndex type t in direction dir.

CellIndex ixType (int dir) const
Returns the CellIndex of this IndexType in direction dir.

int operator[] (int dir) const
Return an integer representing this IndexType in direction dir.

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

static IndexType TheCellType ()
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 TheNodeType ()
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.

friend std::ostream& operator<< (std::ostream& os, const IndexType& itype)
Write an IndexType to an ostream in ASCII.

friend std::istream& operator>> (std::istream& is, IndexType& itype)
Read an IndexType from an istream.


this class has no child classes.

alphabetic index hierarchy of classes


Chombo

Copyright Notice

This software is copyright (C) by the Lawrence Berkeley National Laboratory. Permission is granted to reproduce this software for non-commercial purposes provided that this notice is left intact.

It is acknowledged that the U.S. Government has rights to this software under Contract DE-AC03-765F00098 between the U.S. Department of Energy and the University of California.

This software is provided as a professional and academic contribution for joint exchange. Thus it is experimental, is provided ``as is'', with no warranties of any kind whatsoever, no support, no promise of updates, or printed documentation. By using this software, you acknowledge that the Lawrence Berkeley National Laboratory and Regents of the University of California shall have no liability with respect to the infringement of other copyrights by any part of this software.