mmg3d
eigenv.h
Go to the documentation of this file.
1 /* =============================================================================
2 ** This file is part of the mmg software package for the tetrahedral
3 ** mesh modification.
4 ** Copyright (c) Bx INP/CNRS/Inria/UBordeaux/UPMC, 2004-
5 **
6 ** mmg is free software: you can redistribute it and/or modify it
7 ** under the terms of the GNU Lesser General Public License as published
8 ** by the Free Software Foundation, either version 3 of the License, or
9 ** (at your option) any later version.
10 **
11 ** mmg is distributed in the hope that it will be useful, but WITHOUT
12 ** ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 ** FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
14 ** License for more details.
15 **
16 ** You should have received a copy of the GNU Lesser General Public
17 ** License and of the GNU General Public License along with mmg (in
18 ** files COPYING.LESSER and COPYING). If not, see
19 ** <http://www.gnu.org/licenses/>. Please read their terms carefully and
20 ** use this copy of the mmg distribution only if you accept them.
21 ** =============================================================================
22 */
23 
24 #ifndef MMGEIGENV_H
25 #define MMGEIGENV_H
26 
27 #ifdef __cplusplus
28 extern "C" {
29 #endif
30 
31 #define MMG5_EPSD 1.e-30
32 #define MMG5_EPS 1.e-06
33 
34 int MMG5_eigenv(int symmat,double *mat,double lambda[3],double v[3][3]);
35 int MMG5_eigen2(double *mm,double *lambda,double vp[2][2]);
36 extern int MMG5_eigensym(double m[3],double lambda[2],double vp[2][2]);
37 
38 #ifdef __cplusplus
39 }
40 #endif
41 
42 #endif
Id
static double Id[3][3]
Identity matrix.
Definition: eigenv.c:64
MMG5_Par::hmax
double hmax
Definition: libmmgtypes.h:203
MMG5_Mesh::xtmax
int xtmax
Definition: libmmgtypes.h:516
MMG5_Info::npar
int npar
Definition: libmmgtypes.h:447
MMG5_inxt3
static const unsigned char MMG5_inxt3[7]
next vertex of tetra: {1,2,3,0,1,2,3}
Definition: mmg3d.h:141
MMG5_Point::c
double c[3]
Definition: libmmgtypes.h:215
MMG5_arpt
static const unsigned char MMG5_arpt[4][3]
arpt[i]: edges passing through vertex i
Definition: mmg3d.h:159
MMG5_lenedg
double(* MMG5_lenedg)(MMG5_pMesh, MMG5_pSol, int, MMG5_pTetra)
Definition: mmg3dexterns.c:4
MMG5_Tria::v
int v[3]
Definition: libmmgtypes.h:272
MMG5_Tetra
Definition: libmmgtypes.h:339
MMG5_Sol
Definition: libmmgtypes.h:563
MMG5_correction_ani
static int MMG5_correction_ani(MMG5_pMesh mesh, MMG5_pSol met, int ip, int *list, int ilist, int nedep, double volmin)
Definition: delaunay_3d.c:355
MMG5_chkcol_int
int MMG5_chkcol_int(MMG5_pMesh mesh, MMG5_pSol met, int k, char iface, char iedg, int *list, int ilist, char typchk)
Definition: colver_3d.c:42
MMG5_Triangle
@ MMG5_Triangle
Definition: libmmgtypes.h:188
MMG3D_newElt
int MMG3D_newElt(MMG5_pMesh mesh)
Definition: zaldy_3d.c:94
MMG5_colver
int MMG5_colver(MMG5_pMesh mesh, MMG5_pSol met, int *list, int ilist, char indq, char typchk)
Definition: colver_3d.c:713
MMG3D_EPSRAD
#define MMG3D_EPSRAD
Definition: delaunay_3d.c:39
MMG5_Mesh::xt
int xt
Definition: libmmgtypes.h:525
MMG5_Info::iso
char iso
Definition: libmmgtypes.h:453
MMG5_eigensym
int MMG5_eigensym(double m[3], double lambda[2], double vp[2][2])
Definition: eigenv.c:746
MMG5_hedge::nxt
int nxt
Definition: libmmgtypes.h:489
MMG5_Sol::size
int size
Definition: libmmgtypes.h:569
MMG5_eigenv
int MMG5_eigenv(int symmat, double *mat, double lambda[3], double v[3][3])
Find eigenvalues and vectors of a 3x3 matrix.
Definition: eigenv.c:356
MMG5_hedge::b
int b
Definition: libmmgtypes.h:489
MMG5_cenrad_iso
int MMG5_cenrad_iso(MMG5_pMesh mesh, double *ct, double *c, double *rad)
Definition: cenrad_3d.c:45
MMG5_Hash
Identic as MMG5_HGeom but use MMG5_hedge to store edges instead of MMG5_hgeom (memory economy).
Definition: libmmgtypes.h:499
MMG5_xTetra::tag
int16_t tag[6]
Definition: libmmgtypes.h:363
MMG5_chkedg
char MMG5_chkedg(MMG5_pMesh mesh, MMG5_pTria pt, char ori, double, double, int)
MMG5_Mesh::point
MMG5_pPoint point
Definition: libmmgtypes.h:542
info
MMG5_Info info
MMG3D_KTA
#define MMG3D_KTA
Definition: delaunay_3d.c:50
MMG5_xTetra::ftag
int16_t ftag[4]
Definition: libmmgtypes.h:361
MMG5_Tria::tag
int16_t tag[3]
Definition: libmmgtypes.h:280
MMG5_check_accuracy
static int MMG5_check_accuracy(double mat[6], double lambda[3], double v[3][3], double w1[3], double w2[3], double w3[3], double maxm, int order, int symmat)
Definition: eigenv.c:282
MMG5_Info::opnbdy
int opnbdy
Definition: libmmgtypes.h:448
MMG5_Mesh::base
int base
Definition: libmmgtypes.h:521
MMG5_idir
static const unsigned char MMG5_idir[4][3]
idir[i]: vertices of face opposite to vertex i
Definition: mmg3d.h:145
inlined_functions_3d.h
inlined Functions
MMG5_Hash::nxt
int nxt
Definition: libmmgtypes.h:500
MMG5_delone
int MMG5_delone(MMG5_pMesh mesh, MMG5_pSol sol, int ip, int *list, int ilist)
Definition: delaunay_3d.c:140
MMG3D_KTB
#define MMG3D_KTB
Definition: delaunay_3d.c:51
MMG5_Par::ref
int ref
Definition: libmmgtypes.h:205
MMG5_hedge::k
int k
Definition: libmmgtypes.h:490
MMG5_Mesh::xtetra
MMG5_pxTetra xtetra
Definition: libmmgtypes.h:545
MMG5_Point::tagdel
char tagdel
Definition: libmmgtypes.h:225
egal
#define egal(x, y)
Definition: eigenv.c:56
MMG5_Tetrahedron
@ MMG5_Tetrahedron
Definition: libmmgtypes.h:189
MMG5_orcal
static double MMG5_orcal(MMG5_pMesh mesh, MMG5_pSol met, int iel)
Definition: inlined_functions_3d.h:262
MMG3D_findEdge
int MMG3D_findEdge(MMG5_pMesh mesh, MMG5_pTetra pt, int k, int na, int nb, int error, char *mmgWarn, char *ia)
Definition: boulep_3d.c:110
MMG5_Mesh::adja
int * adja
Definition: libmmgtypes.h:529
MMG5_eigen2
int MMG5_eigen2(double *mm, double *lambda, double vp[2][2])
Find eigenvalues and vectors of a 2x2 matrix.
Definition: eigenv.c:631
MMG5_Info::hausd
double hausd
Definition: libmmgtypes.h:445
MMG5_Hash::max
int max
Definition: libmmgtypes.h:500
MMG5_Tetra::qual
double qual
Definition: libmmgtypes.h:340
MMG5_hedge::a
int a
Definition: libmmgtypes.h:489
MMG5_Mesh::mark
int mark
Definition: libmmgtypes.h:523
mesh
MMG5_pMesh * mesh
Definition: API_functionsf_3d.c:65
MMG5_eigenv
int MMG5_eigenv(int symmat, double *mat, double lambda[3], double v[3][3])
Find eigenvalues and vectors of a 3x3 matrix.
Definition: eigenv.c:356
MMG5_Tetra::flag
int flag
Definition: libmmgtypes.h:347
eigenv.h
MMG5_Tria::ref
int ref
Definition: libmmgtypes.h:273
MMG5_Point
Structure to store points of a MMG mesh.
Definition: libmmgtypes.h:214
MMG3D_delElt
int MMG3D_delElt(MMG5_pMesh mesh, int iel)
Definition: zaldy_3d.c:117
MMG5_hashNew
int MMG5_hashNew(MMG5_pMesh mesh, MMG5_Hash *hash, int hsiz, int hmax)
Definition: hash.c:333
MMG5_Sol::m
double * m
Definition: libmmgtypes.h:571
MMG5_eigen2
int MMG5_eigen2(double *mm, double *lambda, double vp[2][2])
Find eigenvalues and vectors of a 2x2 matrix.
Definition: eigenv.c:631
MMG5_idirinv
static const char MMG5_idirinv[4][4]
Definition: mmg3d.h:147
MMG5_Par::elt
char elt
Definition: libmmgtypes.h:206
MMG5_tet2tri
void MMG5_tet2tri(MMG5_pMesh mesh, int k, char ie, MMG5_Tria *ptt)
Definition: mmg3d1.c:52
MMG3D_normalAdjaTri
int MMG3D_normalAdjaTri(MMG5_pMesh, int, char, int, double n[3])
Definition: split_3d.c:462
MMG5_startedgsurfball
int MMG5_startedgsurfball(MMG5_pMesh mesh, int nump, int numq, int *list, int ilist)
Definition: tools_3d.c:97
MMG5_topchkcol_bdy
static int MMG5_topchkcol_bdy(MMG5_pMesh mesh, int k, int iface, char iedg, int *lists, int ilists)
Definition: colver_3d.c:180
MMG5_EPS
#define MMG5_EPS
Definition: eigenv.h:32
MG_EIGENV_EPSD2
#define MG_EIGENV_EPSD2
Definition: eigenv.c:46
MMG5_Point::tag
int16_t tag
Definition: libmmgtypes.h:223
ddb
char ddb
Definition: mmg3d1_delone.c:41
MMG5_Tria
Definition: libmmgtypes.h:270
MMG5_hedge
Used to hash edges (memory economy compared to MMG5_hgeom).
Definition: libmmgtypes.h:488
MMG5_lenedgspl
double(* MMG5_lenedgspl)(MMG5_pMesh, MMG5_pSol, int, MMG5_pTetra)
Definition: mmg3dexterns.c:5
MMG5_eigensym
int MMG5_eigensym(double m[3], double lambda[2], double vp[2][2])
Definition: eigenv.c:746
MMG5_cenrad_ani
int MMG5_cenrad_ani(MMG5_pMesh mesh, double *ct, double *m, double *c, double *rad)
Definition: cenrad_3d.c:130
MMG5_Info::fem
char fem
Definition: libmmgtypes.h:453
MMG5_hashEdgeDelone
int MMG5_hashEdgeDelone(MMG5_pMesh mesh, MMG5_Hash *hash, int iel, int i, int *v)
Definition: delaunay_3d.c:55
MMG5_Point::xp
int xp
Definition: libmmgtypes.h:218
MMG5_Mesh::tetra
MMG5_pTetra tetra
Definition: libmmgtypes.h:544
MMG3D_EPSCON
#define MMG3D_EPSCON
Definition: delaunay_3d.c:43
MMG5_xTetra
Structure to store the surface tetrahedra of a MMG mesh.
Definition: libmmgtypes.h:356
MMG5_ifar
static const unsigned char MMG5_ifar[6][2]
ifar[i][]: faces sharing the ith edge of the tetra
Definition: mmg3d.h:155
MMG5_xTetra::ori
char ori
Definition: libmmgtypes.h:365
MMG5_Info::dhd
double dhd
Definition: libmmgtypes.h:445
MMG5_chkcol_bdy
int MMG5_chkcol_bdy(MMG5_pMesh mesh, MMG5_pSol met, int k, char iface, char iedg, int *listv, int ilistv, int *lists, int ilists, char typchk)
Definition: colver_3d.c:358
MMG5_Hash::item
MMG5_hedge * item
Definition: libmmgtypes.h:501
MMG5_Par::hausd
double hausd
Definition: libmmgtypes.h:204
MMG5_Mesh
MMG mesh structure.
Definition: libmmgtypes.h:509
MMG5_Hash::siz
int siz
Definition: libmmgtypes.h:500
MMG3D_LONMAX
#define MMG3D_LONMAX
Definition: delaunay_3d.c:44
MMG5_Info::par
MMG5_pPar par
Definition: libmmgtypes.h:444
MMG5_correction_iso
static int MMG5_correction_iso(MMG5_pMesh mesh, int ip, int *list, int ilist, int nedep, double volmin)
Definition: delaunay_3d.c:481
MMG5_chkmanicoll
int MMG5_chkmanicoll(MMG5_pMesh, int, int, int, int, int, char, char)
Definition: mmg3d2.c:899
MMG5_caltet33_ani
double MMG5_caltet33_ani(MMG5_pMesh mesh, MMG5_pSol met, MMG5_pTetra pt)
Definition: quality_3d.c:90
MMG5_iarf
static const unsigned char MMG5_iarf[4][3]
iarf[i]: edges of face opposite to vertex i
Definition: mmg3d.h:149
MMG5_Info::hmax
double hmax
Definition: libmmgtypes.h:445
MMG5_Par
Definition: libmmgtypes.h:201
MMG5_Mesh::info
MMG5_Info info
Definition: libmmgtypes.h:552
MMG5_Info::parTyp
char parTyp
Definition: libmmgtypes.h:454
MMG5_iare
static const unsigned char MMG5_iare[6][2]
vertices of extremities of the edges of the tetra
Definition: mmg3d.h:153
MAXTOU
#define MAXTOU
Definition: eigenv.c:50
MMG5_cavity_ani
int MMG5_cavity_ani(MMG5_pMesh mesh, MMG5_pSol met, int iel, int ip, int *list, int lon, double volmin)
Definition: delaunay_3d.c:582
MG_EIGENV_EPSD
#define MG_EIGENV_EPSD
Definition: eigenv.c:45
MMG5_Tetra::ref
int ref
Definition: libmmgtypes.h:342
MG_EIGENV_EPS6
#define MG_EIGENV_EPS6
Definition: eigenv.c:47
MMG5_Tetra::tag
int16_t tag
Definition: libmmgtypes.h:348
newton3
static int newton3(double p[4], double x[3])
Find root(s) of a polynomial of degree 3.
Definition: eigenv.c:83
MMG5_xTetra::edg
int edg[6]
Definition: libmmgtypes.h:359
MMG5_cavity_iso
int MMG5_cavity_iso(MMG5_pMesh mesh, MMG5_pSol sol, int iel, int ip, int *list, int lon, double volmin)
Definition: delaunay_3d.c:741
ier
int ier
Definition: API_functionsf_3d.c:839
MMG5_Mesh::gap
double gap
Definition: libmmgtypes.h:512
MMG5_Tetra::mark
int mark
Definition: libmmgtypes.h:344
MG_EIGENV_EPS
#define MG_EIGENV_EPS
Definition: eigenv.c:48
MMG5_xTetra::ref
int ref[4]
Definition: libmmgtypes.h:357
MMG5_norpts
int MMG5_norpts(MMG5_pMesh mesh, int ip1, int ip2, int ip3, double *n)
Definition: tools.c:129
MMG5_norface
int MMG5_norface(MMG5_pMesh mesh, int k, int iface, double v[3])
Definition: tools_3d.c:59
MMG3D_TETRA_REALLOC
#define MMG3D_TETRA_REALLOC(mesh, jel, wantedGap, law)
Definition: mmg3d.h:92
MMG5_EPSD
#define MMG5_EPSD
Definition: eigenv.h:31
MMG5_Tetra::xt
int xt
Definition: libmmgtypes.h:345
MMG5_SAFE_FREE
MMG5_SAFE_FREE(tmp)
MMG5_Tetra::v
int v[4]
Definition: libmmgtypes.h:341