Toast++  1.0.2 (r.539)
Forward and inverse modelling in optical tomography
Classes | Public Member Functions | Protected Member Functions | List of all members
MeshMPI Class Reference

Finite-element mesh management. More...

#include <mesh_mpi.h>

Inheritance diagram for MeshMPI:
QMMesh Mesh

Classes

struct  GraphData
 

Public Member Functions

void Setup (bool mark_boundary=true)
 
void NodeToElementMap (int **nndel, int ***ndel) const
 
GraphDataGetGraphData ()
 
void Partition (struct Zoltan_Struct *zz)
 
void Migrate (struct Zoltan_Struct *zz)
 
Zoltan_DD_Struct * ZoltanDictionary ()
 
int GetOwnedElements (int **_ellist) const
 
int GetNodeTypeList (int **_ntp) const
 
void AddToElMatrix (int el, CCompRowMatrixMPI &M, RVector *coeff, int mode) const
 
void AddToSysMatrix (CCompRowMatrixMPI &M, RVector *coeff, int mode) const
 
int * Parts () const
 
ZOLTAN_ID_PTR Lids () const
 
- Public Member Functions inherited from QMMesh
void SetupQM (const Point *q, int nq, const Point *m, int nm, const ICompRowMatrix *linklist=NULL)
 
void LoadQM (std::istream &is)
 
void ScaleMesh (double scale)
 
void ScaleMesh (const RVector &scale)
 
bool Connected (int q, int m) const
 
bool Connected (int qm) const
 
int Meas (int q, int m) const
 
void GetMesh (std::istream &i)
 
void PutMesh (std::ostream &o)
 
- Public Member Functions inherited from Mesh
 Mesh ()
 Constructs an empty mesh. More...
 
void Setup (bool mark_boundary=true)
 
void Copy (const Mesh &mesh)
 
int Dimension () const
 Mesh dimension. More...
 
int nlen () const
 Number of mesh nodes. More...
 
int elen () const
 Number of mesh elements. More...
 
int ilen () const
 
int nbnd () const
 
RDenseMatrix ElGeom (int el) const
 
double ElSize (int el) const
 
Point ElCentre (int el) const
 
Point ElSideCentre (int el, int sd) const
 
double ElSideSize (int el, int sd) const
 
RVector ElDirectionCosine (int el, int sd, Point *p=0) const
 
double FullSize () const
 Returns the mesh area or volume. More...
 
int ElFind (const Point &pt) const
 
int NdFind (const Point &pt, double &dist) const
 
void Reorder (const IVector &perm)
 Re-order mesh nodes. More...
 
double ElDist (int el1, int el2) const
 
double ParamAverage (const ParameterType prmtp) const
 
int MaxNodeDiff (int mode=BW_AUTO) const
 
Point NeighbourBarycentre (int node)
 
void SparseRowStructure (idxtype *&rowptr, idxtype *&colidx, int &nzero) const
 
void NeighbourCount (int *plist, int nnode, bool include_self=false) const
 
void SysMatrixStructure (int *nz, int **row_ind, int **col_ind)
 
int FindBoundarySegment (const Point &p, int *n1, int *n2, double *dist1, double *dist2) const
 
double BoundaryDistance (int node) const
 
int BoundaryList (int **bndellist, int **bndsdlist) const
 
bool PullToBoundary (const Point &p, Point &pshift, int &element, int &side, double sub=0) const
 
bool PullToBoundary_old (const Point &p, Point &pshift, int &element, int &side, double sub=0) const
 
void SetupNeighbourList () const
 
void NodeNeighbourList (int **_nnbhrs, int ***_nbhrs) const
 
bool ElConnected (int el1, int el2, int *sd1=NULL, int *sd2=NULL)
 Checks if two mesh elements have a common side. More...
 
double Size (Point *centre=0) const
 
void BoundingBox (Point &mmin, Point &mmax, double pad=0.0) const
 
Point BndIntersect (const Point &pt1, const Point &pt2)
 
void ResetCoeff_homog (ParameterType prmtp, double val)
 
void ResetCoeff_region (ParameterType prmtp, double val, int region)
 
void ResetCoeff_sqrt (ParameterType prmtp, double cnt, double bnd)
 
int CheckConsistency () const
 
void MarkBoundary ()
 
RCompRowMatrixMassMatrix () const
 Returns the mass matrix for the mesh. More...
 
void put (std::ostream &os, ParameterType p1=PRM_MUA, ParameterType p2=PRM_KAPPA, ParameterType p3=PRM_N)
 
void WriteVtk (ostream &os, const RVector &nim)
 
SurfaceBoundary () const
 
void SetBoundary (const Surface &_boundary)
 
void PopulateNeighbourLists ()
 
void InitSubdivisionSupport ()
 
int RefineElement (int el)
 Refine an element by subdivision. More...
 

Protected Member Functions

void ComputeNodeToElementMap (int **nndel, int ***ndel) const
 
void ClearNodeToElementMap ()
 
void ComputeElementList (ZOLTAN_ID_TYPE *gid, int ngid, int **_ellist, int *_nel) const
 
void ComputeNodeTypeList (int **ntype) const
 
void ComputePartition (GraphData *graph)
 
void CreateZoltanDictionary ()
 

Additional Inherited Members

- Public Attributes inherited from QMMesh
int nQ
 
int nM
 
int nQM
 
PointQ
 
PointM
 
PointQN
 
PointMN
 
int * nQMref
 
int ** QMref
 
int * Qofs
 
int ** QMofs
 
int * Mel
 
RDenseMatrixMcosingder
 
RVectorsource_profile
 
RVectormeas_profile
 
bool fixed_q_pos
 
bool fixed_m_pos
 
bool external_m_pos
 
bool external_q_pos
 
MProfileType * mptype
 
double * mwidth
 
double * msup
 
MProfileType * qptype
 
double * qwidth
 
double * qsup
 
- Public Attributes inherited from Mesh
NodeList nlist
 
ElementList elist
 
ParameterList plist
 
int ** nbhrs
 
int BndType
 
bool trap_load_error
 
RVectorbnd_param
 
int * IndexBnd2Node
 
int * IndexNode2Bnd
 

Detailed Description

Finite-element mesh management.

Defines node coordinates (via NodeList) and element connectivity (via ElementList) and provides general mesh-related methods. This version also defines node-based parameter coefficient sets for optical tomography (via ParameterList), but this should be removed.


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