|
mmg2d
|
#include <assert.h>#include <stdlib.h>#include <stdio.h>#include <limits.h>#include <math.h>#include <string.h>#include <signal.h>#include <ctype.h>#include <float.h>#include "libmmg2d.h"#include "mmgcommon.h"
Go to the source code of this file.
Data Structures | |
| struct | squeue |
| struct | Bucket |
| struct | Hedge |
| struct | HashTable |
Macros | |
| #define | M_MAX(a, b) (((a) > (b)) ? (a) : (b)) |
| #define | M_MIN(a, b) (((a) < (b)) ? (a) : (b)) |
| #define | M_LAMBDA 0.34 |
| #define | M_MU 0.33 |
| #define | _MMG2_EPSD 1.e-10 |
| #define | _MMG2D_EPSA 1.e-12 |
| #define | _MMG2D_PRECI 1. |
| #define | _MMG2D_SIZE 0.75 |
| #define | _MMG2D_ALPHA 0.28867513459 |
| #define | _MMG2D_ALPHAD 3.464101615137755 /* 6.0 / sqrt(3.0) */ |
| #define | MMG2_LONMAX 1024 |
| #define | _MMG2D_BADKAL 0.2 |
| #define | _MMG2_NULKAL 1.e-6 |
| #define | _MMG2_ANGCORN -1.e-6 |
| #define | _MMG2_SHORTMAX 0x7fff |
| #define | MMG2_LLONG 2.0 |
| #define | MMG2_LSHRT 0.3 |
| #define | MMG2_LOPTL 1.4 |
| #define | MMG2_LOPTS 0.71 |
| #define | _MMG2D_NPMAX 50000 |
| #define | _MMG2D_NEDMAX 100000 |
| #define | _MMG2D_NEMAX 100000 |
| #define | _MMG2D_RETURN_AND_FREE(mesh, met, disp, val) |
| #define | _MMG2D_POINT_REALLOC(mesh, sol, ip, wantedGap, law, o, tag, retval) |
| #define | _MMG2D_TRIA_REALLOC(mesh, jel, wantedGap, law, retval) |
| #define | _MMG2D_EDGE_REALLOC(mesh, jel, wantedGap, law, retval) |
Typedefs | |
| typedef struct squeue | Queue |
| typedef Queue * | pQueue |
| typedef Bucket * | pBucket |
| typedef HashTable * | pHashTable |
Variables | |
| static const int | MMG2_iare [3][2] = {{1,2},{2,0},{0,1}} |
| static const int | MMG2_iopp [3][2] = {{1,2},{0,2},{0,1}} |
| static const unsigned int | MMG2_idir [5] = {0,1,2,0,1} |
| static const unsigned int | MMG2_inxt [5] = {1,2,0,1,2} |
| double(* | MMG2D_lencurv )(MMG5_pMesh, MMG5_pSol, int, int) |
| double(* | MMG2D_caltri )(MMG5_pMesh, MMG5_pSol, MMG5_pTria) |
| int(* | MMG2_optlen )(MMG5_pMesh, MMG5_pSol, double, int) |
| int(* | MMG2D_intmet )(MMG5_pMesh, MMG5_pSol, int, char, int, double) |
| int(* | MMG2D_gradsiz )(MMG5_pMesh, MMG5_pSol) |
| int(* | MMG2D_defsiz )(MMG5_pMesh, MMG5_pSol) |
| #define _MMG2_ANGCORN -1.e-6 |
| #define _MMG2_EPSD 1.e-10 |
| #define _MMG2_NULKAL 1.e-6 |
| #define _MMG2_SHORTMAX 0x7fff |
| #define _MMG2D_ALPHA 0.28867513459 |
| #define _MMG2D_ALPHAD 3.464101615137755 /* 6.0 / sqrt(3.0) */ |
| #define _MMG2D_BADKAL 0.2 |
Reallocation of edge table and creation of edge jel
| #define _MMG2D_EPSA 1.e-12 |
| #define _MMG2D_NEDMAX 100000 |
| #define _MMG2D_NEMAX 100000 |
| #define _MMG2D_NPMAX 50000 |
Reallocation of point table and sol table and creation of point ip with coordinates o and tag tag
| #define _MMG2D_PRECI 1. |
| #define _MMG2D_RETURN_AND_FREE | ( | mesh, | |
| met, | |||
| disp, | |||
| val | |||
| ) |
Free allocated pointers of mesh and sol structure and return value val
| #define _MMG2D_SIZE 0.75 |
Reallocation of tria table and creation of tria jel
| #define M_LAMBDA 0.34 |
| #define M_MU 0.33 |
| #define MMG2_LLONG 2.0 |
| #define MMG2_LONMAX 1024 |
| #define MMG2_LOPTL 1.4 |
| #define MMG2_LOPTS 0.71 |
| #define MMG2_LSHRT 0.3 |
| typedef HashTable* pHashTable |
| int _MMG2_adpcol | ( | MMG5_pMesh | , |
| MMG5_pSol | |||
| ) |


| int _MMG2_adpspl | ( | MMG5_pMesh | mesh, |
| MMG5_pSol | met | ||
| ) |
| mesh | pointer toward the mesh structure. |
| met | pointer toward the metric structure. |
Analysis and splitting routine for edges in the final step of the algorithm; edges are only splitted on a one-by-one basis


| int _MMG2_adptri | ( | MMG5_pMesh | , |
| MMG5_pSol | |||
| ) |


| int _MMG2_anaelt | ( | MMG5_pMesh | , |
| MMG5_pSol | , | ||
| int | |||
| ) |


| int _MMG2_analys | ( | MMG5_pMesh | mesh | ) |
preprocessing stage: mesh analysis


| int _MMG2_anatri | ( | MMG5_pMesh | , |
| MMG5_pSol | , | ||
| char | |||
| ) |


| int _MMG2_bezierCurv | ( | MMG5_pMesh | , |
| int | , | ||
| char | , | ||
| double | , | ||
| double * | , | ||
| double * | |||
| ) |

| int _MMG2_bouleendp | ( | MMG5_pMesh | mesh, |
| int | start, | ||
| char | ip, | ||
| int * | ip1, | ||
| int * | ip2 | ||
| ) |
| mesh | pointer toward the mesh structure. |
| start | index of triangle to start. |
| ip | index of point for wich we compute the ball. |
Find the two endpoints of the boundary curves joining ip and fill ip1 and ip2 with their indices.

| int _MMG2_boulen | ( | MMG5_pMesh | , |
| int | , | ||
| char | , | ||
| int * | , | ||
| int * | , | ||
| double * | |||
| ) |

| int _MMG2_boulet | ( | MMG5_pMesh | mesh, |
| int | start, | ||
| char | ip, | ||
| int * | list | ||
| ) |
| mesh | pointer toward the mesh structure. |
| start | index of triangle to start. |
| ip | index of point for wich we compute the ball. |
| list | pointer toward the computed ball of ip. |
Find all triangles sharing ip,
start do not stop when crossing ridge.

| double _MMG2_caltri_ani | ( | MMG5_pMesh | mesh, |
| MMG5_pSol | sol, | ||
| MMG5_pTria | |||
| ) |

| double _MMG2_caltri_iso | ( | MMG5_pMesh | mesh, |
| MMG5_pSol | sol, | ||
| MMG5_pTria | |||
| ) |

| int _MMG2_cavity | ( | MMG5_pMesh | mesh, |
| MMG5_pSol | sol, | ||
| int | ip, | ||
| int * | list | ||
| ) |
Create the cavity point ip, starting from triangle list[0]; Return a negative value for ilist if one of the triangles of the cavity is required


| int _MMG2_cenrad_iso | ( | MMG5_pMesh | mesh, |
| double * | ct, | ||
| double * | c, | ||
| double * | rad | ||
| ) |
| mesh | Pointer toward the mesh structure. |
| *ct | coordinates of vertices of the element. |
| *c | center of circumscribing circle to the element. |
| *rad | radius of circumscribing circle to the element. |
Compute radius and center of circumscribing circle to the element.

| int _MMG2_chkcol | ( | MMG5_pMesh | , |
| MMG5_pSol | , | ||
| int | , | ||
| char | , | ||
| int * | , | ||
| char | |||
| ) |


| int _MMG2_chkedg | ( | MMG5_pMesh | , |
| int | |||
| ) |

| int _MMG2_chkmanimesh | ( | MMG5_pMesh | ) |


| int _MMG2_chkmsh | ( | MMG5_pMesh | ) |

| int _MMG2_chkor | ( | MMG5_pMesh | ) |
| int _MMG2_chkspl | ( | MMG5_pMesh | mesh, |
| MMG5_pSol | met, | ||
| int | k, | ||
| char | i | ||
| ) |
| mesh | pointer toward the mesh |
| met | pointer toward the metric |
| k | triangle index |
| i | local index of the edge to split |
Check whether splitting of edge i in tria k is possible and return the newly created point; possibly perform a dichotomy to find the latest valid position for the point.


| int _MMG2_chkswp | ( | MMG5_pMesh | , |
| MMG5_pSol | , | ||
| int | , | ||
| char | , | ||
| char | |||
| ) |


| int _MMG2_colelt | ( | MMG5_pMesh | , |
| MMG5_pSol | , | ||
| int | |||
| ) |


| int _MMG2_colver | ( | MMG5_pMesh | , |
| int | , | ||
| int * | |||
| ) |


| int _MMG2_colver2 | ( | MMG5_pMesh | , |
| int * | |||
| ) |


| int _MMG2_colver3 | ( | MMG5_pMesh | , |
| int * | |||
| ) |


| int _MMG2_cuttri_ls | ( | MMG5_pMesh | mesh, |
| MMG5_pSol | sol | ||
| ) |
| mesh | pointer toward the mesh |
| sol | pointer toward the level-set |
Effective discretization of the 0 level set encoded in sol in the mesh


| int _MMG2_defaultmet_2d | ( | MMG5_pMesh | mesh, |
| MMG5_pSol | met, | ||
| int | k, | ||
| char | i | ||
| ) |
| mesh | pointer toward the mesh |
| met | pointer toward the metric |
| k | elt index |
| i | vertex index in triangle k |
Impose default metric (isotropic, with size hmax) at vertex i in triangle k.

| int _MMG2_defmetbdy_2d | ( | MMG5_pMesh | mesh, |
| MMG5_pSol | met, | ||
| int | k, | ||
| char | i | ||
| ) |
| mesh | pointer toward the mesh |
| met | pointer toward the metric |
| k | index of the tria in which we work |
| i | index of the point on which we want to compute the metric |
Calculate anisotropic metric tensor at (boundary) vertex i in triangle k on account of geometric approximation of the corresponding curve


| int _MMG2_defsiz_ani | ( | MMG5_pMesh | mesh, |
| MMG5_pSol | met | ||
| ) |
| mesh | pointer toward the mesh |
| met | pointer toward the metric |
Definition of an anisotropic metric tensor field based on the geometry of the domain; this tensor field is intersected by a user-defined tensor field


| int _MMG2_defsiz_iso | ( | MMG5_pMesh | mesh, |
| MMG5_pSol | met | ||
| ) |
| mesh | pointer toward the mesh |
| met | pointer toward the metric |
New version for the definition of a size map; takes into account the curvature of the external and internal curves present in the mesh


| int _MMG2_delone | ( | MMG5_pMesh | , |
| MMG5_pSol | , | ||
| int | , | ||
| int * | , | ||
| int | |||
| ) |


| int _MMG2_dichoto | ( | MMG5_pMesh | mesh, |
| MMG5_pSol | met, | ||
| int | k, | ||
| int * | vx | ||
| ) |
| mesh | pointer toward the mesh structure. |
| met | pointer toward the metric structure. |
| k | element index. |
| vx | pointer toward table of edges to split. |
Find acceptable position for splitting.


|
inlinestatic |
| sigid | signal number. |
Signal handling: specify error messages depending from catched signal.

| int _MMG2_getIniRef | ( | MMG5_pMesh | , |
| int | |||
| ) |

| int _MMG2_grad2met_ani | ( | MMG5_pMesh | mesh, |
| MMG5_pSol | met, | ||
| double * | m, | ||
| double * | n, | ||
| double | difsiz | ||
| ) |
| mesh | pointer toward the mesh |
| met | pointer toward the metric |
| m | frist metric |
| n | second metric |
| difsiz | maximal size gap authorized by the gradation. |
Perform simultaneous reduction of matrices m1 and m2, and truncate characteristic sizes so that the difference between two corresponding sizes is less than difsiz.
Ref : https://www.rocq.inria.fr/gamma/Frederic.Alauzet/cours/cea2010_V2.pdf


| int _MMG2_gradsiz_ani | ( | MMG5_pMesh | mesh, |
| MMG5_pSol | met | ||
| ) |
| mesh | pointer toward the mesh |
| met | pointer toward the metric |
Anisotropic mesh gradation routine

| int _MMG2_gradsiz_iso | ( | MMG5_pMesh | mesh, |
| MMG5_pSol | met | ||
| ) |
| mesh | pointer toward the mesh |
| met | pointer toward the metric |
Isotropic mesh gradation routine

| void _MMG2_Init_parameters | ( | MMG5_pMesh | mesh | ) |
| int _MMG2_intmet_ani | ( | MMG5_pMesh | , |
| MMG5_pSol | , | ||
| int | , | ||
| char | , | ||
| int | , | ||
| double | |||
| ) |


| int _MMG2_intmet_iso | ( | MMG5_pMesh | , |
| MMG5_pSol | , | ||
| int | , | ||
| char | , | ||
| int | , | ||
| double | |||
| ) |

| int _MMG2_ismaniball | ( | MMG5_pMesh | , |
| MMG5_pSol | , | ||
| int | , | ||
| char | |||
| ) |


| int _MMG2_isSplit | ( | MMG5_pMesh | mesh, |
| int | ref, | ||
| int * | refint, | ||
| int * | refext | ||
| ) |
| mesh | pointer toward the mesh structure. |
| sol | pointer toward the sol structure. |
Isosurface discretization

| double _MMG2_lencurv_ani | ( | MMG5_pMesh | , |
| MMG5_pSol | , | ||
| int | , | ||
| int | |||
| ) |

| double _MMG2_lencurv_iso | ( | MMG5_pMesh | mesh, |
| MMG5_pSol | met, | ||
| int | ip1, | ||
| int | ip2 | ||
| ) |
Calculate length of a curve in the considered isotropic metric

| int _MMG2_movedgpt | ( | MMG5_pMesh | mesh, |
| MMG5_pSol | met, | ||
| int | ilist, | ||
| int * | list, | ||
| char | improve | ||
| ) |
| mesh | pointer toward the mesh |
| met | pointer toward the metric structure. |
| list | pointer toward the ball of the point. |
| ilist | size of the ball. |
| improve | force the new minimum element quality to be greater or equal than 0.9 of the old minimum element quality. |
Relocate boundary vertex whose ball is passed; routine works both in the isotropic and anisotropic case


| int _MMG2_movintpt | ( | MMG5_pMesh | mesh, |
| MMG5_pSol | met, | ||
| int | ilist, | ||
| int * | list, | ||
| char | improve | ||
| ) |
| mesh | pointer toward the mesh |
| met | pointer toward the metric structure. |
| list | pointer toward the ball of the point. |
| ilist | size of the ball. |
| improve | force the new minimum element quality to be greater or equal than 0.9 of the old minimum element quality. |
Relocate internal vertex whose ball is passed.


| int _MMG2_movintpt_ani | ( | MMG5_pMesh | , |
| MMG5_pSol | , | ||
| int | , | ||
| int * | , | ||
| char | |||
| ) |

| int _MMG2_movtri | ( | MMG5_pMesh | , |
| MMG5_pSol | , | ||
| int | , | ||
| char | |||
| ) |


| int _MMG2_norver | ( | MMG5_pMesh | ) |


| double _MMG2_quickcal | ( | MMG5_pMesh | mesh, |
| MMG5_pTria | pt | ||
| ) |
| mesh | pointer toward the mesh |
| pt | pointer toward the tria |
Compute oriented area of tria pt


| int _MMG2_regnor | ( | MMG5_pMesh | mesh | ) |
| mesh | pointer toward the mesh |
Regularize normal vectors at boundary non singular edges with a Laplacian / antilaplacian smoothing

| int _MMG2_resetRef | ( | MMG5_pMesh | ) |


| int _MMG2_savedisp_db | ( | MMG5_pMesh | mesh, |
| MMG5_pSol | , | ||
| char * | , | ||
| char | |||
| ) |

| int _MMG2_savemesh_db | ( | MMG5_pMesh | , |
| char * | , | ||
| char | |||
| ) |

| int _MMG2_savemet_db | ( | MMG5_pMesh | , |
| MMG5_pSol | , | ||
| char * | , | ||
| char | |||
| ) |

| int _MMG2_savenor_db | ( | MMG5_pMesh | , |
| char * | , | ||
| char | |||
| ) |

| int _MMG2_setadj | ( | MMG5_pMesh | mesh | ) |
| mesh | pointer toward the mesh |
Set tags GEO and REF to triangles and points by traveling the mesh; count number of subdomains or connected components


| int _MMG2_setref_ls | ( | MMG5_pMesh | , |
| MMG5_pSol | |||
| ) |


| int _MMG2_singul | ( | MMG5_pMesh | ) |


| int _MMG2_snapval | ( | MMG5_pMesh | , |
| MMG5_pSol | , | ||
| double * | |||
| ) |


| int _MMG2_split1 | ( | MMG5_pMesh | mesh, |
| MMG5_pSol | sol, | ||
| int | k, | ||
| int | vx[3] | ||
| ) |
| mesh | pointer toward the mesh |
| sol | pointer toward the metric |
| k | triangle index |
| vx | list of new point indices for each edge |
Split 1 edge of triangle k


| int _MMG2_split1_sim | ( | MMG5_pMesh | mesh, |
| MMG5_pSol | sol, | ||
| int | k, | ||
| int | vx[3] | ||
| ) |
| mesh | pointer toward the mesh |
| sol | pointer toward the metric |
| k | triangle index |
| vx | list of new point indices for each edge |
Simulate the split of one edge in triangle k


| int _MMG2_split1b | ( | MMG5_pMesh | mesh, |
| int | k, | ||
| char | i, | ||
| int | ip | ||
| ) |
mesh pointer toward the mesh
| k | index of the tria to split |
| i | local index of the edge to split |
| ip | global index of the new point |
Effective splitting of edge i in tria k: point ip is introduced and the adjacency structure in the mesh is preserved


| int _MMG2_split2 | ( | MMG5_pMesh | mesh, |
| MMG5_pSol | sol, | ||
| int | k, | ||
| int | vx[3] | ||
| ) |
| mesh | pointer toward the mesh |
| sol | pointer toward the metric |
| k | triangle index |
| vx | list of new point indices for each edge |
Split 2 edges of triangle k


| int _MMG2_split2_sim | ( | MMG5_pMesh | mesh, |
| MMG5_pSol | sol, | ||
| int | k, | ||
| int | vx[3] | ||
| ) |
| mesh | pointer toward the mesh |
| sol | pointer toward the metric |
| k | triangle index |
| vx | list of new point indices for each edge |
Simulate the split of two edges in triangle k


| int _MMG2_split3 | ( | MMG5_pMesh | mesh, |
| MMG5_pSol | sol, | ||
| int | k, | ||
| int | vx[3] | ||
| ) |
| mesh | pointer toward the mesh |
| sol | pointer toward the metric |
| k | triangle index |
| vx | list of new point indices for each edge |
Split the three edges of triangle k

| int _MMG2_split3_sim | ( | MMG5_pMesh | mesh, |
| MMG5_pSol | sol, | ||
| int | k, | ||
| int | vx[3] | ||
| ) |
| mesh | pointer toward the mesh |
| sol | pointer toward the metric |
| k | triangle index |
| vx | list of new point indices for each edge |
Simulate the split of three edges in triangle k


| int _MMG2_splitbar | ( | MMG5_pMesh | mesh, |
| int | k, | ||
| int | ip | ||
| ) |
| mesh | pointer toward the mesh |
| k | index of the tria to split |
| ip | global index of the new point |
Insert the point ip inside the tria k


| int _MMG2_swapar | ( | MMG5_pMesh | , |
| int | , | ||
| char | |||
| ) |

| int _MMG2_swapdelone | ( | MMG5_pMesh | , |
| MMG5_pSol | , | ||
| int | , | ||
| char | , | ||
| double | , | ||
| int * | |||
| ) |


| int _MMG2_swpmsh | ( | MMG5_pMesh | , |
| MMG5_pSol | , | ||
| int | |||
| ) |


| int _MMG2_velextLS | ( | MMG5_pMesh | , |
| MMG5_pSol | |||
| ) |

| int _MMG2D_delElt | ( | MMG5_pMesh | mesh, |
| int | iel | ||
| ) |

| void _MMG2D_delPt | ( | MMG5_pMesh | mesh, |
| int | ip | ||
| ) |

| int _MMG2D_Free_all_var | ( | va_list | argptr | ) |
| argptr | list of the mmg structures that must be deallocated. Each structure must follow one of the MMG5_ARG preprocessor variable that allow to identify it. |
argptr contains at least a pointer toward a MMG5_pMesh structure (that will contain the mesh and identified by the MMG5_ARG_ppMesh keyword)
To call the MMG2D_mmg2dlib function, you must also provide a pointer toward a MMG5_pSol structure (that will contain the ouput metric (and the input one, if provided) and identified by the MMG5_ARG_ppMet keyword).
To call the MMG2D_mmg2dls function, you must also provide a pointer toward a MMG5_pSol structure (that will contain the level-set function and identified by the MMG5_ARG_ppLs keyword).
To call the MMG2D_mmg2dmov library, you must also provide a pointer toward a MMG5_pSol structure storing the displacement (and identified by the MMG5_ARG_ppDisp keyword).
Internal function for deallocations before return (taking a va_list as argument).


| int _MMG2D_Free_names_var | ( | va_list | argptr | ) |
| argptr | list of the mmg structures for whose we want to deallocate the name. Each structure must follow one of the MMG5_ARG* preprocessor variable that allow to identify it. argptr contains at least a pointer toward a MMG5_pMesh structure (that will contain the mesh and identified by the MMG5_ARG_ppMesh keyword) and a pointer toward a MMG5_pSol structure (that will contain the ouput metric (and the input one, if provided) and identified by the MMG5_ARG_ppMet keyword). |
Internal function for name deallocations before return (taking a va_list as argument).


| int _MMG2D_Free_structures_var | ( | va_list | argptr | ) |
| argptr | list of the mmg structures that must be deallocated. Each structure must follow one of the MMG5_ARG* preprocessor variable that allow to identify it. argptr contains at least a pointer toward a MMG5_pMesh structure (that will contain the mesh and identified by the MMG5_ARG_ppMesh keyword) and a pointer toward a MMG5_pSol structure (that will contain the ouput metric (and the input one, if provided) and identified by the MMG5_ARG_ppMet keyword). |
To call the MMG2D_mmg2dls function, you must also provide a pointer toward a MMG5_pSol structure (that will contain the level-set function and identified by the MMG5_ARG_ppLs keyword).
To call the MMG2D_mmg2dmov library, you must also provide a pointer toward a MMG5_pSol structure storing the displacement (and identified by the MMG5_ARG_ppDisp keyword).
Internal function for structures deallocations before return (taking a va_list as argument).


| int _MMG2D_indElt | ( | MMG5_pMesh | mesh, |
| int | kel | ||
| ) |
| mesh | pointer toward the mesh structure. |
| kel | index of the element in the unpacked mesh |
find the element index in packed numerotation

| int _MMG2D_indPt | ( | MMG5_pMesh | mesh, |
| int | kp | ||
| ) |
| mesh | pointer toward the mesh structure. |
| kp | index of the point in the unpacked mesh |
find the point index in packed numerotation

| int _MMG2D_Init_mesh_var | ( | va_list | argptr | ) |
| argptr | list of the mmg structures that must be initialized. Each structure must follow one of the MMG5_ARG* preprocessor variable that allow to identify it. |
argptr contains at least a pointer toward a MMG5_pMesh structure (that will contain the mesh and identified by the MMG5_ARG_ppMesh keyword)
To call the MMG2D_mmg2dlib function, you must also provide a pointer toward a MMG5_pSol structure (that will contain the ouput metric (and the input one, if provided) and identified by the MMG5_ARG_ppMet keyword).
To call the MMG2D_mmg2dls function, you must also provide a pointer toward a MMG5_pSol structure (that will contain the level-set function and identified by the MMG5_ARG_ppLs keyword).
To call the MMG2D_mmg2dmov library, you must also provide a pointer toward a MMG5_pSol structure storing the displacement (and identified by the MMG5_ARG_ppDisp keyword).
Internal function for structure allocations (taking a va_list argument).


| int _MMG2D_memOption | ( | MMG5_pMesh | mesh | ) |
memory repartition for the -m option


| int _MMG2D_newElt | ( | MMG5_pMesh | mesh | ) |

| int _MMG2D_newPt | ( | MMG5_pMesh | mesh, |
| double | c[2], | ||
| int16_t | tag | ||
| ) |

|
inlinestatic |
Set common pointer functions between mmgs and mmg2d to the matching mmg2d functions.


| void _MMG5_delEdge | ( | MMG5_pMesh | mesh, |
| int | iel | ||
| ) |

| int _MMG5_getnElt | ( | MMG5_pMesh | mesh, |
| int | n | ||
| ) |
| int _MMG5_interpmet22 | ( | MMG5_pMesh | , |
| double * | , | ||
| double * | , | ||
| double | , | ||
| double * | |||
| ) |

| long long _MMG5_memSize | ( | void | ) |
Compute the available memory size of the computer.
| int _MMG5_mmg2dChkmsh | ( | MMG5_pMesh | mesh, |
| int | severe, | ||
| int | base | ||
| ) |
| mesh | pointer toward the mesh structure. |
| severe | level of performed check |
| base | unused argument. |
Check the mesh validity


| int _MMG5_newEdge | ( | MMG5_pMesh | mesh | ) |
| int interp_ani | ( | double * | , |
| double * | , | ||
| double * | , | ||
| double | |||
| ) |
| int interp_iso | ( | double * | , |
| double * | , | ||
| double * | , | ||
| double | |||
| ) |
| int lissmet_ani | ( | MMG5_pMesh | mesh, |
| MMG5_pSol | sol | ||
| ) |
| mesh | pointer toward the mesh |
| sol | pointer toward the metric |
Anisotropic gradation (h-gradation procedure). See: http://www.ann.jussieu.fr/frey/publications/ijnme4398.pdf


| int lissmet_iso | ( | MMG5_pMesh | mesh, |
| MMG5_pSol | sol | ||
| ) |
| double long_ani | ( | double * | ca, |
| double * | cb, | ||
| double * | ma, | ||
| double * | mb | ||
| ) |
| double long_iso | ( | double * | ca, |
| double * | cb, | ||
| double * | ma, | ||
| double * | mb | ||
| ) |
| int MMG2_assignEdge | ( | MMG5_pMesh | mesh | ) |
| mesh | pointer toward the mesh |
Transfer some input edge data to the corresponding triangles fields


| int MMG2_baseBdry | ( | MMG5_pMesh | mesh | ) |
| int MMG2_bdryEdge | ( | MMG5_pMesh | mesh | ) |
| mesh | pointer toward the mesh |
Create the edges in the mesh from the information stored in the triangles, or by identifying the different components of the mesh.

| int MMG2_bdryenforcement | ( | MMG5_pMesh | mesh, |
| MMG5_pSol | sol | ||
| ) |
| mesh | pointer toward the mesh structure. |
| sol | pointer toward the sol structure. |
Check if all edges exist in the mesh and if not force them.


| int MMG2_boulep | ( | MMG5_pMesh | , |
| int | , | ||
| int | , | ||
| int * | |||
| ) |

| int MMG2_coorbary | ( | MMG5_pMesh | , |
| MMG5_pTria | , | ||
| double | c[2], | ||
| double * | , | ||
| double * | , | ||
| double * | |||
| ) |

| int MMG2_cutEdge | ( | MMG5_pMesh | , |
| MMG5_pTria | , | ||
| MMG5_pPoint | , | ||
| MMG5_pPoint | |||
| ) |


| int MMG2_cutEdgeTriangle | ( | MMG5_pMesh | , |
| int | , | ||
| int | , | ||
| int | |||
| ) |


| int MMG2_findTria | ( | MMG5_pMesh | mesh, |
| int | ip | ||
| ) |
Return the index of one triangle containing ip


| int MMG2_findtrianglestate | ( | MMG5_pMesh | , |
| int | , | ||
| int | , | ||
| int | , | ||
| int | , | ||
| int | , | ||
| int | |||
| ) |

| int MMG2_hashEdge | ( | pHashTable | edgeTable, |
| int | iel, | ||
| int | ia, | ||
| int | ib | ||
| ) |

| int MMG2_hashNew | ( | HashTable * | hash, |
| int | hsize, | ||
| int | hmax | ||
| ) |

| int MMG2_hashTria | ( | MMG5_pMesh | mesh | ) |
| mesh | pointer toward the mesh |
Create adjacency relations between the triangles in the mesh


| int MMG2_invmat | ( | double * | m, |
| double * | minv | ||
| ) |
| int MMG2_isInTriangle | ( | MMG5_pMesh | mesh, |
| int | k, | ||
| double | c[2] | ||
| ) |
Check whether c lies in triangle k; return k if so, 0 otherwise


| int MMG2_kiudel | ( | pQueue | q, |
| int | iel | ||
| ) |
| void MMG2_kiufree | ( | pQueue | q | ) |
| pQueue MMG2_kiuini | ( | MMG5_pMesh | mesh, |
| int | nbel, | ||
| double | declic, | ||
| int | base | ||
| ) |
| int MMG2_kiupop | ( | pQueue | q | ) |
| int MMG2_kiuput | ( | pQueue | q, |
| int | iel | ||
| ) |
| int MMG2_locateEdge | ( | MMG5_pMesh | mesh, |
| int | ia, | ||
| int | ib, | ||
| int * | kdep, | ||
| int * | list | ||
| ) |
| mesh | pointer toward the mesh |
| ia | index of first extremity of the edge |
| ib | index of second extremity of the edge |
| kdep | pointer toward the index of the first element intersecting the edge |
| list | pointer toward the list of elts intersected by the edge |
Calculate the list of all the triangles intersected by edge (ia,ib), starting from kdep = one triangle in the ball of ia; List lon starts at index 0 and goes to lon-1 and stores 3*k + iare, where iare is one intersected edge; return 4 if edge exists in the mesh


| int MMG2_mmg2d1 | ( | MMG5_pMesh | , |
| MMG5_pSol | |||
| ) |
| int MMG2_mmg2d1n | ( | MMG5_pMesh | mesh, |
| MMG5_pSol | met | ||
| ) |
| mesh | pointer toward the mesh structure. |
| sol | pointer toward the sol structure. |
Mesh adaptation – new version of mmg2d1.c


| int MMG2_mmg2d2 | ( | MMG5_pMesh | mesh, |
| MMG5_pSol | sol | ||
| ) |
| mesh | pointer toward the mesh structure. |
| sol | pointer toward the sol structure. |
Mesh triangulation.


| int MMG2_mmg2d6 | ( | MMG5_pMesh | , |
| MMG5_pSol | |||
| ) |


| int MMG2_mmg2d9 | ( | MMG5_pMesh | , |
| MMG5_pSol | , | ||
| MMG5_pSol | |||
| ) |


| int MMG2_outqua | ( | MMG5_pMesh | mesh, |
| MMG5_pSol | met | ||
| ) |
| mesh | pointer toward the mesh structure. |
| met | pointer toward the metric structure. |
Print histogram of mesh qualities.


| int MMG2_pack | ( | MMG5_pMesh | mesh, |
| MMG5_pSol | sol | ||
| ) |
| mesh | pointer toward the mesh structure. |
| sol | pointer toward the solution structure. |
Pack the mesh and metric and create explicitly all the mesh structures (edges).


| int MMG2_parsop | ( | MMG5_pMesh | mesh, |
| MMG5_pSol | met | ||
| ) |
| mesh | pointer toward the mesh |
| met | pointer toward the metric |
Read parameter file DEFAULT.mmg2d

| int MMG2_prilen | ( | MMG5_pMesh | , |
| MMG5_pSol | |||
| ) |


| int MMG2_scaleMesh | ( | MMG5_pMesh | mesh, |
| MMG5_pSol | sol | ||
| ) |
| mesh | pointer toward the mesh structure. |
| sol | pointer toward the metric or solution structure. |
Scale the mesh and the size informations between 0 and 1. Compute a default value for the hmin/hmax parameters if needed. Truncate the metric sizes between hmin/hmax


| int MMG2_settagtriangles | ( | MMG5_pMesh | , |
| MMG5_pSol | |||
| ) |


| int MMG2_unscaleMesh | ( | MMG5_pMesh | , |
| MMG5_pSol | |||
| ) |

| void MMG2D_solTruncatureForOptim | ( | MMG5_pMesh | mesh, |
| MMG5_pSol | met | ||
| ) |
| mesh | pointer toward the mesh structure. |
| met | pointer toward the solution structure. |
Truncate the metric computed by the DoSol function by hmax and hmin values (if setted by the user). Set hmin and hmax if they are not setted.

| int MMG2D_zaldy | ( | MMG5_pMesh | mesh | ) |


| int optlen_ani | ( | MMG5_pMesh | mesh, |
| MMG5_pSol | sol, | ||
| double | declic, | ||
| int | base | ||
| ) |
| int optlen_iso | ( | MMG5_pMesh | mesh, |
| MMG5_pSol | sol, | ||
| double | declic, | ||
| int | base | ||
| ) |
| int optlen_iso_bar | ( | MMG5_pMesh | mesh, |
| MMG5_pSol | sol, | ||
| double | declic, | ||
| int | base | ||
| ) |
| int simred | ( | double * | m1, |
| double * | m2, | ||
| double * | m | ||
| ) |

|
static |
|
static |
|
static |
|
static |
| int(* MMG2_optlen) (MMG5_pMesh,MMG5_pSol,double,int) |
| double(* MMG2D_caltri) (MMG5_pMesh,MMG5_pSol,MMG5_pTria) |
| int(* MMG2D_defsiz) (MMG5_pMesh,MMG5_pSol) |
| int(* MMG2D_gradsiz) (MMG5_pMesh,MMG5_pSol) |
| int(* MMG2D_intmet) (MMG5_pMesh,MMG5_pSol,int,char,int,double) |
| double(* MMG2D_lencurv) (MMG5_pMesh,MMG5_pSol,int,int) |