Changeset 3217
- Timestamp:
- 03/08/10 14:48:30 (15 years ago)
- Location:
- issm/trunk/src/c/Bamgx
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/c/Bamgx/Bamgx.cpp
r3148 r3217 23 23 using namespace std; 24 24 25 int Bamgx(BamgMesh* bamgmesh ,BamgGeom* bamggeom,BamgOpts* bamgopts){25 int Bamgx(BamgMesh* bamgmesh_out,BamgGeom* bamggeom_out,BamgMesh* bamgmesh_in,BamgGeom* bamggeom_in,BamgOpts* bamgopts){ 26 26 27 27 /*Bamg options*/ … … 66 66 /*If no mesh in input, generate one*/ 67 67 68 if(bamgmesh ->NumTriangles==0){68 if(bamgmesh_in->NumTriangles==0){ 69 69 /*Mesh generation {{{1*/ 70 70 71 71 if (verbosity>0) printf("Construction of a mesh from a given geometry\n"); 72 72 if (verbosity>1) printf(" Processing geometry...\n"); 73 Geometry Gh(bamggeom ,bamgopts);73 Geometry Gh(bamggeom_in,bamgopts); 74 74 if (verbosity>10){ 75 75 Gh.Echo(); … … 98 98 //Build output 99 99 if (verbosity>1) printf(" Write Mesh...\n"); 100 Th.WriteMesh(bamgmesh ,bamgopts);100 Th.WriteMesh(bamgmesh_out,bamgopts); 101 101 if (verbosity>1) printf(" Write Geometry...\n"); 102 Gh.WriteGeometry(bamggeom ,bamgopts);102 Gh.WriteGeometry(bamggeom_out,bamgopts); 103 103 104 104 //clean up … … 114 114 if (verbosity>0) printf("Anisotropic mesh adaptation\n"); 115 115 if (verbosity>1) printf(" Processing initial mesh and geometry...\n"); 116 Triangles BTh(bamgmesh ,bamgopts);116 Triangles BTh(bamgmesh_in,bamgopts); 117 117 hmin = Max(hmin,BTh.MinimalHmin()); 118 118 hmax = Min(hmax,BTh.MaximalHmax()); … … 132 132 for (Int4 iv=0;iv<BTh.nbv;iv++) BTh[iv].m = Mhmax; 133 133 // change using hVertices if required 134 if (bamgmesh ->hVertices){134 if (bamgmesh_in->hVertices){ 135 135 for (i=0;i<BTh.nbv;i++){ 136 if (!isnan(bamgmesh ->hVertices[i])){137 BTh[i].m=Metric((Real4)bamgmesh ->hVertices[i]);136 if (!isnan(bamgmesh_in->hVertices[i])){ 137 BTh[i].m=Metric((Real4)bamgmesh_in->hVertices[i]); 138 138 } 139 139 } … … 177 177 //Build output 178 178 if (verbosity>1) printf(" Write Mesh...\n"); 179 Th.WriteMesh(bamgmesh ,bamgopts);179 Th.WriteMesh(bamgmesh_out,bamgopts); 180 180 if (verbosity>1) printf(" Write Geometry...\n"); 181 Th.Gh.WriteGeometry(bamggeom ,bamgopts);181 Th.Gh.WriteGeometry(bamggeom_out,bamgopts); 182 182 if (verbosity>1) printf(" Write Metric...\n"); 183 183 BTh.WriteMetric(bamgopts); -
issm/trunk/src/c/Bamgx/Bamgx.h
r2865 r3217 9 9 10 10 /* local prototypes: */ 11 int Bamgx(BamgMesh* bamgmesh ,BamgGeom* bamggeom,BamgOpts* bamgopts);11 int Bamgx(BamgMesh* bamgmesh_out,BamgGeom* bamggeom_out,BamgMesh* bamgmesh_in,BamgGeom* bamggeom_in,BamgOpts* bamgopts); 12 12 13 13 #endif /* _BAMGX_H */ -
issm/trunk/src/c/Bamgx/objects/Geometry.cpp
r3031 r3217 74 74 int i,count; 75 75 76 /*Get options*/ 76 77 verbose=bamgopts->verbose; 78 79 /*Initialize output*/ 80 BamgGeomInit(bamggeom); 77 81 78 82 //Vertices 79 83 if(verbose>5) printf(" writing Vertices\n"); 80 84 bamggeom->NumVertices=nbv; 81 xfree((void**)&bamggeom->Vertices);82 85 if (nbv){ 83 86 bamggeom->Vertices=(double*)xmalloc(3*nbv*sizeof(double)); … … 98 101 if(verbose>5) printf(" writing Edges\n"); 99 102 bamggeom->NumEdges=nbe; 100 xfree((void**)&bamggeom->Edges);101 103 if (nbe){ 102 104 bamggeom->Edges=(double*)xmalloc(3*nbe*sizeof(double)); … … 123 125 if(verbose>5) printf(" writing CrackedEdges\n"); 124 126 bamggeom->NumCrackedEdges=nbcracked; 125 xfree((void**)&bamggeom->CrackedEdges);126 127 if (nbcracked){ 127 128 bamggeom->CrackedEdges=(double*)xmalloc(2*nbcracked*sizeof(double)); … … 144 145 if(verbose>5) printf(" writing RequiredEdges\n"); 145 146 bamggeom->NumRequiredEdges=nbreq; 146 xfree((void**)&bamggeom->RequiredEdges);147 147 if (nbreq){ 148 148 bamggeom->RequiredEdges=(double*)xmalloc(1*nbreq*sizeof(double)); … … 164 164 if(verbose>5) printf(" writing RequiredVertices\n"); 165 165 bamggeom->NumRequiredVertices=nbreqv; 166 xfree((void**)&bamggeom->RequiredVertices);167 166 if (nbreqv){ 168 167 bamggeom->RequiredVertices=(double*)xmalloc(1*nbreqv*sizeof(double)); … … 182 181 if(verbose>5) printf(" writing SubDomains\n"); 183 182 bamggeom->NumSubDomains=NbSubDomains; 184 xfree((void**)&bamggeom->SubDomains);185 183 if (NbSubDomains){ 186 184 bamggeom->SubDomains=(double*)xmalloc(4*NbSubDomains*sizeof(double)); … … 199 197 if(verbose>5) printf(" writing TangentAtEdges\n"); 200 198 bamggeom->NumTangentAtEdges=nbtan; 201 xfree((void**)&bamggeom->TangentAtEdges);202 199 if (nbtan){ 203 200 bamggeom->TangentAtEdges=(double*)xmalloc(4*nbtan*sizeof(double)); -
issm/trunk/src/c/Bamgx/objects/Triangles.cpp
r3148 r3217 536 536 537 537 int i,j,k,num; 538 /*Get options*/ 538 539 int verbose=bamgopts->verbose; 540 541 /*Initialize output*/ 542 BamgMeshInit(bamgmesh); 543 539 544 540 545 //renumber … … 552 557 if(verbose>5) printf(" writing Vertices\n"); 553 558 bamgmesh->NumVertices=nbv; 554 xfree((void**)&bamgmesh->Vertices);555 559 if (nbv){ 556 560 bamgmesh->Vertices=(double*)xmalloc(3*nbv*sizeof(double)); … … 568 572 if(verbose>5) printf(" writing Edges\n"); 569 573 bamgmesh->NumEdges=nbe; 570 xfree((void**)&bamgmesh->Edges);571 574 int NumSegments=0; 572 575 if (nbe){ … … 609 612 } 610 613 } 611 xfree((void**)&bamgmesh->Segments);612 xfree((void**)&bamgmesh->SegmentsMarkers);613 614 bamgmesh->NumSegments=NumSegments; 614 615 bamgmesh->Segments=(double*)xmalloc(3*NumSegments*sizeof(double)); … … 658 659 if(verbose>5) printf(" writing CrackedEdges\n"); 659 660 bamgmesh->NumCrackedEdges=NbCrackedEdges; 660 xfree((void**)&bamgmesh->CrackedEdges);661 661 if (NbCrackedEdges){ 662 662 bamgmesh->CrackedEdges=(double*)xmalloc(2*NbCrackedEdges*sizeof(double)); … … 675 675 num=0; 676 676 bamgmesh->NumTriangles=k; 677 xfree((void**)&bamgmesh->Triangles);678 677 if (k){ 679 678 bamgmesh->Triangles=(double*)xmalloc(4*k*sizeof(double)); … … 697 696 if(verbose>5) printf(" writing Quadrilaterals\n"); 698 697 bamgmesh->NumQuadrilaterals=NbOfQuad; 699 xfree((void**)&bamgmesh->Quadrilaterals);700 698 if (NbOfQuad){ 701 699 bamgmesh->Quadrilaterals=(double*)xmalloc(5*NbOfQuad*sizeof(double)); … … 721 719 if(verbose>5) printf(" writing SubDomains\n"); 722 720 bamgmesh->NumSubDomains=NbSubDomains; 723 xfree((void**)&bamgmesh->SubDomains);724 721 if (NbSubDomains){ 725 722 bamgmesh->SubDomains=(double*)xmalloc(4*NbSubDomains*sizeof(double)); … … 738 735 if(verbose>5) printf(" writing SubDomainsFromGeom\n"); 739 736 bamgmesh->NumSubDomainsFromGeom=Gh.NbSubDomains; 740 xfree((void**)&bamgmesh->SubDomainsFromGeom);741 737 if (Gh.NbSubDomains){ 742 738 bamgmesh->SubDomainsFromGeom=(double*)xmalloc(4*Gh.NbSubDomains*sizeof(double)); … … 755 751 if(verbose>5) printf(" writing VerticesOnGeometricVertex\n"); 756 752 bamgmesh->NumVerticesOnGeometricVertex=NbVerticesOnGeomVertex; 757 xfree((void**)&bamgmesh->VerticesOnGeometricVertex);758 753 if (NbVerticesOnGeomVertex){ 759 754 bamgmesh->VerticesOnGeometricVertex=(double*)xmalloc(2*NbVerticesOnGeomVertex*sizeof(double)); … … 774 769 if(verbose>5) printf(" writing VerticesOnGeometricEdge\n"); 775 770 bamgmesh->NumVerticesOnGeometricEdge=NbVerticesOnGeomEdge; 776 xfree((void**)&bamgmesh->VerticesOnGeometricEdge);777 771 if (NbVerticesOnGeomEdge){ 778 772 bamgmesh->VerticesOnGeometricEdge=(double*)xmalloc(3*NbVerticesOnGeomEdge*sizeof(double)); … … 798 792 } 799 793 bamgmesh->NumEdgesOnGeometricEdge=k; 800 xfree((void**)&bamgmesh->EdgesOnGeometricEdge);801 794 if (k){ 802 795 bamgmesh->EdgesOnGeometricEdge=(double*)xmalloc(2*(int)k*sizeof(double));
Note:
See TracChangeset
for help on using the changeset viewer.