Toast++
1.0.2 (r.539)
Forward and inverse modelling in optical tomography
|
Finite-element mesh management. More...
#include <mesh_mpi.h>
Classes | |
struct | GraphData |
Public Member Functions | |
void | Setup (bool mark_boundary=true) |
void | NodeToElementMap (int **nndel, int ***ndel) const |
GraphData * | GetGraphData () |
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 () |
RCompRowMatrix * | MassMatrix () 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) |
Surface * | Boundary () 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 |
Point * | Q |
Point * | M |
Point * | QN |
Point * | MN |
int * | nQMref |
int ** | QMref |
int * | Qofs |
int ** | QMofs |
int * | Mel |
RDenseMatrix * | Mcosingder |
RVector * | source_profile |
RVector * | meas_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 |
RVector * | bnd_param |
int * | IndexBnd2Node |
int * | IndexNode2Bnd |
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.