|
openCARP
Doxygen code documentation for the open cardiac electrophysiology simulator openCARP
|
Go to the source code of this file.
Macros | |
| #define | FIL_PTS_FILE 0 |
| #define | FIL_ELEM_FILE 1 |
| #define | FIL_DATA_FILE 2 |
Functions | |
| void | output_filaments (filament *f, FILE *fh[]) |
| bool | fl_chkIso (float *d, float th, Elem *e) |
| bool | fl_IsoTagFaces (float *d, float th, Elem *e, bool *faceTags) |
| bool | fl_IsoTagTetFaces (float *d, float th, bool *faceTags) |
| bool | fl_IsoTagTriFaces (float *d, float th, bool *faceTags) |
| bool | fl_IsoTagTriangle (float *d, float th, const int idx[]) |
| bool | fl_findIsoIntersect (float *d0, float *d1, float th, Point *p, Elem *e) |
| int | fl_FindFilament (float *d0, float *d1, float th, Point *lp, Elem *e, singularity *sng) |
| bool | fl_triFindPS (float *d0, float *d1, float th, Point *p, Point *PS, int meth) |
| bool | fl_triFindPS_Lines (float *d0, float *d1, float th, Point *p, Point *PS) |
| bool | fl_triFindPS_ShpFnc (float *d0, float *d1, float th, Point *p, Point *PS) |
| bool | fl_findEdgeSection (float d_p0, float d_p1, float th, Point *p0, Point *p1, Point *pSec) |
| void | interpoate_vm (int numNodes, float **d, int M, float **rd, float rDist) |
| void | interpolateTBuffer (tbuffer *tbf) |
| float | fl_triArea (Point *pts) |
| bool | SameSideOfLine (Point pTest, Point p0, Point p1, Point p2) |
| bool | PointInTriangle (Point pTest, Point p0, Point p1, Point p2) |
| bool | PointInTriangleBarycentric (Point pTest, Point p0, Point p1, Point p2) |
| bool | PointInTriangleBarycentric (Point pTest, Point p0, Point p1, Point p2, Point &bcc) |
| bool | PtInTriangleBarycentricSP (Point pTest, Point p1, Point p2) |
| bool | PtInTriangleBarycentricSP (Point pTest, Point p1, Point p2, Point &bcc) |
| Point | UnTransformPoint (Point PTs, Point *opts, Point *spts) |
| Point | fl_triNormalLocal (Point *pts, bool u) |
| void | interpolate_vm (int numNodes, float **d, int M, float **rd, float rdist) |
| bool | compute_filament (float *d0, float *d1, float vth, ElemList *elst, NodeList *nlst, filament *f, SingularityDetector_t meth) |
| int | init_filament_IO (const char *meshname, int numT, FILE *fh[]) |
| int | write_connections (ElemList *elst, NodeList *nlst, filament *f, FILE *filHdls[], float t) |
| void | write_filaments (filament *f, FILE *filHdls[], float t) |
| void | close_filament_IO (FILE *fh[]) |
Variables | |
| const int | MAX_ELEM_NODES = 8 |
| const int | MAX_ELEM_FACES = 6 |
| #define FIL_DATA_FILE 2 |
Definition at line 28 of file filament.cc.
| #define FIL_ELEM_FILE 1 |
Definition at line 27 of file filament.cc.
| #define FIL_PTS_FILE 0 |
Definition at line 26 of file filament.cc.
| void close_filament_IO | ( | FILE * | fh[] | ) |
Close filaments I/O
| fh | file handles for writing filament data |
Definition at line 414 of file filament.cc.
| bool compute_filament | ( | float * | d0, |
| float * | d1, | ||
| float | vth, | ||
| ElemList * | elst, | ||
| NodeList * | nlst, | ||
| filament * | f, | ||
| SingularityDetector_t | meth | ||
| ) |
interpolate data onto a data point at rDist from central sample
| d0 | data at instant t-dt/2 |
| d1 | data at instant t+dt/2 |
| vth | voltage threshold for isolines |
| elst | element list |
| nlst | node list |
| f | filament array |
| meth | detection method |
Definition at line 171 of file filament.cc.
| bool fl_chkIso | ( | float * | d, |
| float | th, | ||
| Elem * | e | ||
| ) |
Quick check whether an element possibly owns an isoline/isosurface
| d | data on element nodes |
| th | threshold for isoline |
| e | element |
\ret true, if singularity is possible, false otherwise
Definition at line 429 of file filament.cc.
| bool fl_findEdgeSection | ( | float | d_p0, |
| float | d_p1, | ||
| float | th, | ||
| Point * | p0, | ||
| Point * | p1, | ||
| Point * | pSec | ||
| ) |
Find intersection of isoline with an edge of an element
| d0 | data value on triangle nodes at t0 |
| d1 | data value on triangle nodes at t1 |
| th | isoline threshold |
| p0 | starting point of edge |
| p1 | end point of edge |
| pSec | intersection point with isoline along edge p0-p1 |
\ret true, if there is an intersection, false otherwise
Definition at line 912 of file filament.cc.
| int fl_FindFilament | ( | float * | d0, |
| float * | d1, | ||
| float | th, | ||
| Point * | lp, | ||
| Elem * | e, | ||
| singularity * | sng | ||
| ) |
Find a filament segment or a phase singularity
| d0 | data value on nodes spanning the element at t0 |
| d1 | data value on nodes spanning the element at t1 |
| th | isoline threshold |
| lp | list of points in local ordering (no global indices) |
| e | element |
| sng | singularity data |
Definition at line 548 of file filament.cc.
| bool fl_findIsoIntersect | ( | float * | d0, |
| float * | d1, | ||
| float | th, | ||
| Point * | p, | ||
| Elem * | e | ||
| ) |
Find intersection of two isosurfaces with the faces of a tetrahedron
| p | local node list |
| d0 | values at each node at time t0 |
| d1 | values at each node at time t1 |
| df | values at each node to span face hyperplane |
Definition at line 946 of file filament.cc.
| bool fl_IsoTagFaces | ( | float * | d, |
| float | th, | ||
| Elem * | e, | ||
| bool * | faceTags | ||
| ) |
Tag all faces of an element which hold an isoline
| d | data on element nodes |
| th | threshold for isoline |
| e | element |
| faceTags | list of tags for each face of an element |
\ret true, if any of the faces is tagged, false if none is tagged
Definition at line 456 of file filament.cc.
| bool fl_IsoTagTetFaces | ( | float * | d, |
| float | th, | ||
| bool * | faceTags | ||
| ) |
Tag those faces of a tet which have an isoline
| d | set of vectors |
| th | set of transformed vectors |
| faceTags | number of vectors in set |
Definition at line 483 of file filament.cc.
| bool fl_IsoTagTriangle | ( | float * | d, |
| float | th, | ||
| const int | idx[] | ||
| ) |
Tag triangle
| d | data value on nodes spanning the triangle |
| th | isoline threshold |
Definition at line 523 of file filament.cc.
| bool fl_IsoTagTriFaces | ( | float * | d, |
| float | th, | ||
| bool * | faceTags | ||
| ) |
Tag triangle if it has an isoline
| d | set of vectors |
| th | set of transformed vectors |
| faceTags | number of vectors in set |
Definition at line 504 of file filament.cc.
|
inline |
return area of a triangle
| pts | point list |
Definition at line 92 of file filament.cc.
| bool fl_triFindPS | ( | float * | d0, |
| float * | d1, | ||
| float | th, | ||
| Point * | lp, | ||
| Point * | PhaseS, | ||
| int | meth | ||
| ) |
Find a phase singularity on a triangle
| d0 | data value on triangle nodes at t0 |
| d1 | data value on triangle nodes at t1 |
| th | isoline threshold |
| lp | list of points in local ordering (no global indices) |
| PS | coordinate of phase singularity |
| meth | pick the detection method |
Definition at line 607 of file filament.cc.
| bool fl_triFindPS_Lines | ( | float * | d0, |
| float * | d1, | ||
| float | th, | ||
| Point * | lp, | ||
| Point * | PhaseS | ||
| ) |
Find a phase singularity on a triangle by transforming a triangle into a 2D plane and using parameterized lines to find the point of intersection
| d0 | data value on triangle nodes at t0 |
| d1 | data value on triangle nodes at t1 |
| th | isoline threshold |
| lp | list of points in local ordering (no global indices) |
| PS | coordinate of phase singularity |
Definition at line 652 of file filament.cc.
| bool fl_triFindPS_ShpFnc | ( | float * | d0, |
| float * | d1, | ||
| float | th, | ||
| Point * | lp, | ||
| Point * | PhaseS | ||
| ) |
Find a phase singularity on a triangle using isoparametric shape functions
| d0 | data value on triangle nodes at t0 |
| d1 | data value on triangle nodes at t1 |
| th | isoline threshold |
| lp | list of points in local ordering (no global indices) |
| PS | coordinate of phase singularity |
Definition at line 634 of file filament.cc.
| Point fl_triNormalLocal | ( | Point * | pts, |
| bool | u | ||
| ) |
return normal of a triangle
| pts | point list |
| u | true for unit vector |
Definition at line 108 of file filament.cc.
| int init_filament_IO | ( | const char * | meshname, |
| int | numT, | ||
| FILE * | fh[] | ||
| ) |
interpolate data onto a data point at rDist from central sample
| meshname | base name of mesh to derive names for filament files |
| numT | number of time slices at which filaments are detected |
| fh | file handles for filament IO |
Definition at line 270 of file filament.cc.
| void interpoate_vm | ( | int | numNodes, |
| float ** | d, | ||
| int | M, | ||
| float ** | rd, | ||
| float | rDist | ||
| ) |
| void interpolate_vm | ( | int | numNodes, |
| float ** | d, | ||
| int | M, | ||
| float ** | rd, | ||
| float | rdist | ||
| ) |
interpolate data onto a data point at rDist from central sample
| numNodes | number of data items in vector |
| d | data vectors at input dt sampling |
| M | number of vectors in d |
| rd | resampled data at +/- rDist |
| rdist | relative distance from central sample |
Definition at line 147 of file filament.cc.
| void interpolateTBuffer | ( | tbuffer * | tbf | ) |
interpolate data from time slice buffer wrapper function for interpolate_vm
| tbuffer | time slice buffer |
Definition at line 124 of file filament.cc.
| void output_filaments | ( | filament * | f, |
| FILE * | filHdls[] | ||
| ) |
Output filaments to file
| filament | filament data for current time slice |
| filHdls | file handles for writing filament data |
| t | current time slice |
Definition at line 375 of file filament.cc.
| bool PointInTriangle | ( | Point | pTest, |
| Point | p0, | ||
| Point | p1, | ||
| Point | p2 | ||
| ) |
Figure out whether a test point is inside a given triangle or not using the same side testing method
| pTest | data value on triangle nodes at t0 |
| p0 | data value on triangle nodes at t1 |
| p1 | isoline threshold |
| p2 | list of points in local ordering (no global indices) |
Definition at line 804 of file filament.cc.
| bool PointInTriangleBarycentric | ( | Point | pTest, |
| Point | p0, | ||
| Point | p1, | ||
| Point | p2 | ||
| ) |
Definition at line 857 of file filament.cc.
| bool PointInTriangleBarycentric | ( | Point | pTest, |
| Point | p0, | ||
| Point | p1, | ||
| Point | p2, | ||
| Point & | bcc | ||
| ) |
Figure out whether a test point is inside a given triangle or not using the barycentric method
| [in] | pTest | data value on triangle nodes at t0 |
| [in] | p0 | triangle vertex |
| [in] | p1 | triangle vertex |
| [in] | p2 | triangle vertex |
| [out] | bcc | barycenter coordinates |
Definition at line 875 of file filament.cc.
| bool PtInTriangleBarycentricSP | ( | Point | pTest, |
| Point | p1, | ||
| Point | p2 | ||
| ) |
points are in standard position
Definition at line 816 of file filament.cc.
| bool PtInTriangleBarycentricSP | ( | Point | v2, |
| Point | v1, | ||
| Point | v0, | ||
| Point & | bcc | ||
| ) |
Figure out whether a test point is inside a given triangle or not using the barycentric method with triangle in standard position
| [in] | v2 | test point |
| [in] | p1 | triangle vertex on x-axis (p1) |
| [in] | p2 | triangle vertex off axis (p2) |
| [out] | bcc | barycenter coordinates |
Definition at line 835 of file filament.cc.
| bool SameSideOfLine | ( | Point | pTest, |
| Point | p0, | ||
| Point | p1, | ||
| Point | p2 | ||
| ) |
Figure out whether a test point lies on the same side of a given line as another point. The line is given by points p0 and p1.
| pTest | data value on triangle nodes at t0 |
| p0 | data value on triangle nodes at t1 |
| p1 | isoline threshold |
| p2 | list of points in local ordering (no global indices) |
Definition at line 785 of file filament.cc.
| Point UnTransformPoint | ( | Point | PTs, |
| Point * | opts, | ||
| Point * | spts | ||
| ) |
convert back from transformation to standard positon
| PTs[in] | point to convert in standardized position |
| opts[in] | triangle nodes in original space |
| spts[in] | triangle nodes in standardized position |
Definition at line 69 of file filament.cc.
Definition at line 309 of file filament.cc.
| void write_filaments | ( | filament * | f, |
| FILE * | filHdls[], | ||
| float | t | ||
| ) |
Output filaments to file
| filament | filament data for current time slice |
| filHdls | file handles for writing filament data |
| t | current time slice |
Definition at line 348 of file filament.cc.
| const int MAX_ELEM_FACES = 6 |
Definition at line 31 of file filament.cc.
| const int MAX_ELEM_NODES = 8 |
Definition at line 30 of file filament.cc.