OPALX (Object Oriented Parallel Accelerator Library for Exascal) MINIorX
OPALX
interpolation::Mesh Class Referenceabstract

Base class for meshing routines. More...

#include <Mesh.h>

Inheritance diagram for interpolation::Mesh:
Collaboration diagram for interpolation::Mesh:

Classes

class  Iterator

Public Member Functions

 Mesh ()
virtual Mesh::Iterator begin () const =0
virtual Mesh::Iterator end () const =0
virtual Meshclone ()=0
virtual Meshdual () const =0
virtual ~Mesh ()
virtual void getPosition (const Mesh::Iterator &it, double *position) const =0
virtual int getPositionDimension () const =0
virtual int toInteger (const Mesh::Iterator &lhs) const =0
virtual Mesh::Iterator getNearest (const double *position) const =0

Protected Member Functions

virtual Mesh::IteratoraddEquals (Mesh::Iterator &lhs, int difference) const =0
virtual Mesh::IteratorsubEquals (Mesh::Iterator &lhs, int difference) const =0
virtual Mesh::IteratoraddEquals (Mesh::Iterator &lhs, const Mesh::Iterator &rhs) const =0
virtual Mesh::IteratorsubEquals (Mesh::Iterator &lhs, const Mesh::Iterator &rhs) const =0
virtual Mesh::IteratoraddOne (Mesh::Iterator &lhs) const =0
virtual Mesh::IteratorsubOne (Mesh::Iterator &lhs) const =0
virtual bool isGreater (const Mesh::Iterator &lhs, const Mesh::Iterator &rhs) const =0

Friends

Mesh::Iterator operator++ (Mesh::Iterator &lhs, int)
Mesh::Iterator operator-- (Mesh::Iterator &lhs, int)
Mesh::Iteratoroperator++ (Mesh::Iterator &lhs)
Mesh::Iteratoroperator-- (Mesh::Iterator &lhs)
Mesh::Iterator operator- (const Mesh::Iterator &lhs, const Mesh::Iterator &rhs)
Mesh::Iterator operator+ (const Mesh::Iterator &lhs, const Mesh::Iterator &rhs)
Mesh::Iteratoroperator-= (Mesh::Iterator &lhs, const Mesh::Iterator &rhs)
Mesh::Iteratoroperator+= (Mesh::Iterator &lhs, const Mesh::Iterator &rhs)
Mesh::Iterator operator- (const Mesh::Iterator &lhs, const int &rhs)
Mesh::Iterator operator+ (const Mesh::Iterator &lhs, const int &rhs)
Mesh::Iteratoroperator-= (Mesh::Iterator &lhs, const int &rhs)
Mesh::Iteratoroperator+= (Mesh::Iterator &lhs, const int &rhs)
bool operator== (const Mesh::Iterator &lhs, const Mesh::Iterator &rhs)
bool operator!= (const Mesh::Iterator &lhs, const Mesh::Iterator &rhs)
bool operator>= (const Mesh::Iterator &lhs, const Mesh::Iterator &rhs)
bool operator<= (const Mesh::Iterator &lhs, const Mesh::Iterator &rhs)
bool operator< (const Mesh::Iterator &lhs, const Mesh::Iterator &rhs)
bool operator> (const Mesh::Iterator &lhs, const Mesh::Iterator &rhs)

Detailed Description

Base class for meshing routines.

Aim is to describe a set of points in various dimensions etc for use in interpolation routines. Concrete classes are TwoDGrid, ThreeDGrid, NDGrid and TriangularMesh (two dimensional delaunay mesh).

Iterator is defined for easy access to all member data (e.g. for IO) but no const_iterator type.

Definition at line 49 of file Mesh.h.

Constructor & Destructor Documentation

◆ Mesh()

interpolation::Mesh::Mesh ( )
inline

Constructor (does nothing)

Referenced by clone(), dual(), interpolation::NDGrid::dual(), and interpolation::ThreeDGrid::dual().

Here is the caller graph for this function:

◆ ~Mesh()

virtual interpolation::Mesh::~Mesh ( )
inlinevirtual

Destructor - does nothing

Member Function Documentation

◆ addEquals() [1/2]

virtual Mesh::Iterator & interpolation::Mesh::addEquals ( Mesh::Iterator & lhs,
const Mesh::Iterator & rhs ) const
protectedpure virtual

Add difference to lhs and then return lhs

Implemented in interpolation::NDGrid, and interpolation::ThreeDGrid.

◆ addEquals() [2/2]

virtual Mesh::Iterator & interpolation::Mesh::addEquals ( Mesh::Iterator & lhs,
int difference ) const
protectedpure virtual

Add difference to lhs and then return lhs

Implemented in interpolation::NDGrid, and interpolation::ThreeDGrid.

◆ addOne()

virtual Mesh::Iterator & interpolation::Mesh::addOne ( Mesh::Iterator & lhs) const
protectedpure virtual

Increment position of lhs by one and then return lhs

Implemented in interpolation::NDGrid, and interpolation::ThreeDGrid.

◆ begin()

virtual Mesh::Iterator interpolation::Mesh::begin ( ) const
pure virtual

Return the first point on the mesh

Implemented in interpolation::NDGrid, and interpolation::ThreeDGrid.

Referenced by interpolation::PPSolveFactory::outOfBoundsPosition().

Here is the caller graph for this function:

◆ clone()

virtual Mesh * interpolation::Mesh::clone ( )
pure virtual

Return a copy of child object

Implemented in interpolation::NDGrid, and interpolation::ThreeDGrid.

References Mesh().

Here is the call graph for this function:

◆ dual()

virtual Mesh * interpolation::Mesh::dual ( ) const
pure virtual

Return the "Dual" of the mesh or nullptr if not implemented

Dual is a polyhedron that has centre of each face as a point on the mesh

Implemented in interpolation::NDGrid, and interpolation::ThreeDGrid.

References Mesh().

Referenced by interpolation::PPSolveFactory::PPSolveFactory().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ end()

virtual Mesh::Iterator interpolation::Mesh::end ( ) const
pure virtual

Return the last+1 point on the mesh

Implemented in interpolation::NDGrid, and interpolation::ThreeDGrid.

Referenced by interpolation::PPSolveFactory::getDerivs(), interpolation::PPSolveFactory::outOfBoundsPosition(), and interpolation::PPSolveFactory::PPSolveFactory().

Here is the caller graph for this function:

◆ getNearest()

virtual Mesh::Iterator interpolation::Mesh::getNearest ( const double * position) const
pure virtual

Find the point on the mesh nearest to given point

Implemented in interpolation::NDGrid, and interpolation::ThreeDGrid.

◆ getPosition()

virtual void interpolation::Mesh::getPosition ( const Mesh::Iterator & it,
double * position ) const
pure virtual

Return the position of a point in the mesh

Implemented in interpolation::NDGrid, and interpolation::ThreeDGrid.

◆ getPositionDimension()

virtual int interpolation::Mesh::getPositionDimension ( ) const
pure virtual

Return the dimension of the mesh

Implemented in interpolation::NDGrid, and interpolation::ThreeDGrid.

Referenced by interpolation::PPSolveFactory::PPSolveFactory().

Here is the caller graph for this function:

◆ isGreater()

virtual bool interpolation::Mesh::isGreater ( const Mesh::Iterator & lhs,
const Mesh::Iterator & rhs ) const
protectedpure virtual

Return true if rhs is greater than lhs

Implemented in interpolation::NDGrid, and interpolation::ThreeDGrid.

◆ subEquals() [1/2]

virtual Mesh::Iterator & interpolation::Mesh::subEquals ( Mesh::Iterator & lhs,
const Mesh::Iterator & rhs ) const
protectedpure virtual

Subtract difference from lhs and then return lhs

Implemented in interpolation::NDGrid, and interpolation::ThreeDGrid.

◆ subEquals() [2/2]

virtual Mesh::Iterator & interpolation::Mesh::subEquals ( Mesh::Iterator & lhs,
int difference ) const
protectedpure virtual

Subtract difference from lhs and then return lhs

Implemented in interpolation::NDGrid, and interpolation::ThreeDGrid.

◆ subOne()

virtual Mesh::Iterator & interpolation::Mesh::subOne ( Mesh::Iterator & lhs) const
protectedpure virtual

Decrement position of lhs by one and then return lhs

Implemented in interpolation::NDGrid, and interpolation::ThreeDGrid.

◆ toInteger()

virtual int interpolation::Mesh::toInteger ( const Mesh::Iterator & lhs) const
pure virtual

Map from iterator to an integer used to index the iterator

Implemented in interpolation::NDGrid, and interpolation::ThreeDGrid.

◆ operator!=

bool operator!= ( const Mesh::Iterator & lhs,
const Mesh::Iterator & rhs )
friend

Return true if lhs does not index the same position as rhs

◆ operator+ [1/2]

Mesh::Iterator operator+ ( const Mesh::Iterator & lhs,
const int & rhs )
friend

Addition operator - adds rhs to lhs and returns copy of lhs

◆ operator+ [2/2]

Mesh::Iterator operator+ ( const Mesh::Iterator & lhs,
const Mesh::Iterator & rhs )
friend

Addition operator - adds offset of rhs of rhs relative to Begin() to lhs

◆ operator++ [1/2]

Mesh::Iterator & operator++ ( Mesh::Iterator & lhs)
friend

Prefix increment operator ++it

◆ operator++ [2/2]

Mesh::Iterator operator++ ( Mesh::Iterator & lhs,
int  )
friend

Postfix increment operator it++ advances iterator by one

◆ operator+= [1/2]

Mesh::Iterator & operator+= ( Mesh::Iterator & lhs,
const int & rhs )
friend

Addition operator - subtracts rhs from lhs and returns lhs

◆ operator+= [2/2]

Mesh::Iterator & operator+= ( Mesh::Iterator & lhs,
const Mesh::Iterator & rhs )
friend

Addition operator - adds offset of rhs of rhs relative to Begin() to lhs and returns lhs

◆ operator- [1/2]

Mesh::Iterator operator- ( const Mesh::Iterator & lhs,
const int & rhs )
friend

Subtraction operator - subtracts from lhs and returns copy of lhs

◆ operator- [2/2]

Mesh::Iterator operator- ( const Mesh::Iterator & lhs,
const Mesh::Iterator & rhs )
friend

Subtraction operator - subtracts offset of rhs relative to Begin() from lhs

◆ operator-- [1/2]

Mesh::Iterator & operator-- ( Mesh::Iterator & lhs)
friend

Prefix decrement operator –it retreats iterator by one

◆ operator-- [2/2]

Mesh::Iterator operator-- ( Mesh::Iterator & lhs,
int  )
friend

Postfix decrement operator it– retreats iterator by one

◆ operator-= [1/2]

Mesh::Iterator & operator-= ( Mesh::Iterator & lhs,
const int & rhs )
friend

Subtraction operator - subtracts rhs from lhs and returns lhs

◆ operator-= [2/2]

Mesh::Iterator & operator-= ( Mesh::Iterator & lhs,
const Mesh::Iterator & rhs )
friend

Subtraction operator - subtracts offset of rhs relative to Begin() from lhs and returns lhs

◆ operator<

bool operator< ( const Mesh::Iterator & lhs,
const Mesh::Iterator & rhs )
friend

Return true if lhs indexes a position less than rhs i.e. successive operation of decrement operator would eventually reach lhs

◆ operator<=

bool operator<= ( const Mesh::Iterator & lhs,
const Mesh::Iterator & rhs )
friend

Return true if lhs indexes a position less than or equal to rhs i.e. successive operation of decrement operator would eventually reach lhs

◆ operator==

bool operator== ( const Mesh::Iterator & lhs,
const Mesh::Iterator & rhs )
friend

Return true if lhs indexes the same position as rhs

◆ operator>

bool operator> ( const Mesh::Iterator & lhs,
const Mesh::Iterator & rhs )
friend

Return true if lhs indexes a position greater than rhs i.e. successive operation of increment operator would eventually reach lhs

◆ operator>=

bool operator>= ( const Mesh::Iterator & lhs,
const Mesh::Iterator & rhs )
friend

Return true if lhs indexes a position greater than or equal to rhs i.e. successive operation of increment operator would eventually reach lhs


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