39 MMG5_int k,l,kk,nex,kdep,lon,iel;
41 MMG5_int ia,ib,ilon,rnd,idep,*adja,ir,adj;
44 static int8_t mmgWarn0=0,mmgWarn1=0,mmgWarn2=0,mmgWarn3=0;
45 static int8_t mmgWarn4=0,mmgWarn5=0,mmgWarn6=0,mmgWarn7=0;
46 static int8_t mmgWarn8=0;
51 for (k=1; k<=
mesh->
np; k++) {
56 for (k=1; k<=
mesh->
nt; k++) {
58 if ( !
MG_EOK(pt) )
continue;
65 for(k=1; k<=
mesh->
na; k++) {
67 if ( !ped->
a )
continue;
68 if ( ped->
base < 0 ) {
77 if ( pt->
v[0] == ped->
a )
79 else if ( pt->
v[1] == ped->
a )
90 fprintf(stderr,
"\n ## Error: %s: at least 1 wrong ball "
91 "(point %" MMG5_PRId
" of triangle %" MMG5_PRId
").\n",__func__,
97 for (l=0; l<lon; l++) {
104 if ( pt->
v[i1] == ped->
b ) {
109 else if ( pt->
v[i2] == ped->
b ) {
119 fprintf(stderr,
"\n ## Warning: %s: at least 1 missing edge (%" MMG5_PRId
" %" MMG5_PRId
").\n",
129 printf(
" ** number of missing edges : %" MMG5_PRId
"\n",
mesh->
na-nex);
131 for (kk=1; kk<=
mesh->
na; kk++) {
133 if ( !ped->
a || ped->
base < 0 )
continue;
139 printf(
"\n -- edge enforcement %" MMG5_PRId
" %" MMG5_PRId
"\n",ia,ib);
144 fprintf(stderr,
"\n ## Error: %s: at least 1 edge not found.\n",
152 if ( !( lon < 0 || lon == 4 ) ) {
155 fprintf(stderr,
"\n ## Error: %s: Unable to force at least"
156 " 1 edge (%" MMG5_PRId
" %" MMG5_PRId
" -- %" MMG5_PRId
").\n",__func__,
MMG2D_indPt(
mesh,ia),
169 fprintf(stderr,
"\n ## Warning: %s: existing edge.\n",__func__);
174 fprintf(stderr,
"\n ## Error: %s: at least 1 edge intersecting too many"
175 " triangles (%" MMG5_PRId
")\n",__func__,lon);
180 fprintf(stderr,
"\n ## Warning: %s: few edges... %" MMG5_PRId
"\n",__func__,lon);
189 rnd = ( rand() % lon );
195 while ( l++ < lon ) {
198 k = list[(++rnd)%lon] / 3;
202 idep = list[rnd] % 3;
206 for (i=0; i<3; i++) {
218 fprintf(stderr,
"\n ## Warning: %s: unable to swap at least 1"
219 " edge.\n",__func__);
225 for (ied=1; ied<3; ied++) {
232 fprintf(stderr,
"\n ## Warning: %s: at least 1 triangle (%" MMG5_PRId
")"
233 " not intersected ==> %" MMG5_PRId
"\n",__func__,
238 else if ( iare < 0 ) {
245 printf(
" ** tr intersected %" MMG5_PRId
" \n",list2[ied]);
256 for (k=1; k<=
mesh->
np; k++) {
MMG5_pMesh MMG5_pSol * sol
int MMG5_boulet(MMG5_pMesh mesh, MMG5_int start, int ip, MMG5_int *list, int8_t s, int8_t *opn)
int MMG2D_bdryenforcement(MMG5_pMesh mesh, MMG5_pSol sol)
MMG5_int MMG2D_indPt(MMG5_pMesh mesh, MMG5_int kp)
int MMG2D_swapdelone(MMG5_pMesh, MMG5_pSol, MMG5_int, int8_t, double, MMG5_int *)
int MMG2D_cutEdgeTriangle(MMG5_pMesh, MMG5_int, MMG5_int, MMG5_int)
int MMG2D_locateEdge(MMG5_pMesh, MMG5_int, MMG5_int, MMG5_int *, MMG5_int *)
MMG5_int MMG2D_indElt(MMG5_pMesh mesh, MMG5_int kel)
static const uint8_t MMG5_iprv2[3]
static const uint8_t MMG5_inxt2[6]
Structure to store edges of am MMG mesh.
Structure to store vertices of an MMG mesh.
Structure to store triangles of a MMG mesh.