OPAL (Object Oriented Parallel Accelerator Library)  2024.1
OPAL
Classes | Public Member Functions | Protected Member Functions | Friends | List of all members
interpolation::Mesh Class Referenceabstract

Base class for meshing routines. More...

#include <Mesh.h>

Inheritance diagram for interpolation::Mesh:
Inheritance graph
[legend]

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< Dim >::Mesh ( )
inline

Constructor (does nothing)

Definition at line 34 of file Mesh-inl.icc.

Mesh< Dim >::~Mesh ( )
inlinevirtual

Destructor - does nothing

Definition at line 37 of file Mesh-inl.icc.

Member Function Documentation

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::ThreeDGrid, and interpolation::NDGrid.

Referenced by interpolation::operator+(), and interpolation::operator+=().

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::ThreeDGrid, and interpolation::NDGrid.

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::ThreeDGrid, and interpolation::NDGrid.

Referenced by interpolation::operator++().

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

Return a copy of child object

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

Referenced by interpolation::PolynomialPatch::clone().

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.

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

virtual Mesh::Iterator interpolation::Mesh::end ( ) const
pure virtual
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::ThreeDGrid, and interpolation::NDGrid.

Referenced by interpolation::PolynomialPatch::function(), and interpolation::PolynomialPatch::getPolynomialVector().

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::ThreeDGrid, and interpolation::NDGrid.

virtual int interpolation::Mesh::getPositionDimension ( ) const
pure virtual
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::ThreeDGrid, and interpolation::NDGrid.

Referenced by interpolation::operator<=(), and interpolation::operator>=().

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::ThreeDGrid, and interpolation::NDGrid.

Referenced by interpolation::operator-(), and interpolation::operator-=().

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::ThreeDGrid, and interpolation::NDGrid.

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::ThreeDGrid, and interpolation::NDGrid.

Referenced by interpolation::operator--().

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::ThreeDGrid, and interpolation::NDGrid.

Friends And Related Function Documentation

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

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

Definition at line 178 of file Mesh-inl.icc.

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

Definition at line 124 of file Mesh-inl.icc.

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

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

Definition at line 130 of file Mesh-inl.icc.

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

Postfix increment operator it++ advances iterator by one

Definition at line 98 of file Mesh-inl.icc.

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

Prefix increment operator ++it

Definition at line 90 of file Mesh-inl.icc.

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

Definition at line 137 of file Mesh-inl.icc.

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

Addition operator - subtracts rhs from lhs and returns lhs

Definition at line 145 of file Mesh-inl.icc.

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

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

Definition at line 111 of file Mesh-inl.icc.

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

Subtraction operator - subtracts from lhs and returns copy of lhs

Definition at line 117 of file Mesh-inl.icc.

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

Postfix decrement operator it– retreats iterator by one

Definition at line 104 of file Mesh-inl.icc.

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

Prefix decrement operator –it retreats iterator by one

Definition at line 94 of file Mesh-inl.icc.

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

Definition at line 141 of file Mesh-inl.icc.

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

Subtraction operator - subtracts rhs from lhs and returns lhs

Definition at line 149 of file Mesh-inl.icc.

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

Definition at line 168 of file Mesh-inl.icc.

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

Definition at line 159 of file Mesh-inl.icc.

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

Return true if lhs indexes the same position as rhs

Definition at line 172 of file Mesh-inl.icc.

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

Definition at line 164 of file Mesh-inl.icc.

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

Definition at line 154 of file Mesh-inl.icc.


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