From d278dbaebcd3011ff706f6a9da5e6d0f7b89c75f Mon Sep 17 00:00:00 2001 From: Christophe Geuzaine <cgeuzaine@ulg.ac.be> Date: Tue, 21 May 2013 16:08:05 +0000 Subject: [PATCH] fix compile VS 2010 --- Common/GamePad.cpp | 2 +- Fltk/Navigator.cpp | 1 - Geo/gmshLevelset.cpp | 10 +- Mesh/CenterlineField.cpp | 10 +- Mesh/QuadTriExtruded2D.cpp | 2 +- Mesh/directions3D.cpp | 24 +- Mesh/yamakawa.cpp | 497 ++++++++++--------- Plugin/HomologyPostProcessing.cpp | 4 +- contrib/Chaco/util/smalloc.c | 11 +- contrib/HighOrderMeshOptimizer/OptHomRun.cpp | 1 + contrib/onelab/OnelabClients.cpp | 8 +- 11 files changed, 286 insertions(+), 284 deletions(-) diff --git a/Common/GamePad.cpp b/Common/GamePad.cpp index ab8c21efa8..c59107d8ce 100644 --- a/Common/GamePad.cpp +++ b/Common/GamePad.cpp @@ -176,7 +176,7 @@ int GamePad::read_event() int event_num = 0; bool event_value = false; for (int i = 0; i < buttons; i++){ - int bin = pow(2, i); + int bin = pow(2.0, i); if(button[i] != (bool)(infoex.dwButtons & bin)) { event = true; event_num = i; diff --git a/Fltk/Navigator.cpp b/Fltk/Navigator.cpp index f499a1441a..651068a212 100644 --- a/Fltk/Navigator.cpp +++ b/Fltk/Navigator.cpp @@ -8,7 +8,6 @@ #include <string> #include <iostream> #include <stdio.h> -#include <unistd.h> #include <Navigator.h> #include "Trackball.h" #include "Context.h" diff --git a/Geo/gmshLevelset.cpp b/Geo/gmshLevelset.cpp index fe161d2dc7..d729f10783 100644 --- a/Geo/gmshLevelset.cpp +++ b/Geo/gmshLevelset.cpp @@ -933,20 +933,20 @@ gLevelsetDistMesh::~gLevelsetDistMesh() if (_kdtree) { ANNpointArray nodes = _kdtree->thePoints(); annDeallocPts(nodes); - delete _kdtree; + delete _kdtree; } } double gLevelsetDistMesh::operator () (double x, double y, double z) const { - ANNidx _index[_nbClose]; - ANNdist _dist[_nbClose]; + std::vector<ANNidx> _index(_nbClose); + std::vector<ANNdist> _dist(_nbClose); double point[3] = {x,y,z}; - _kdtree->annkSearch(point, _nbClose, _index, _dist); + _kdtree->annkSearch(point, _nbClose, &_index[0], &_dist[0]); std::set<MElement*> elements; for (int i=0;i<_nbClose;i++){ - int iVertex = _index [i]; + int iVertex = _index[i]; MVertex *v = _vertices[iVertex]; for (std::multimap<MVertex*,MElement*>::const_iterator itm = _v2e.lower_bound(v); itm != _v2e.upper_bound(v); ++itm) diff --git a/Mesh/CenterlineField.cpp b/Mesh/CenterlineField.cpp index fd4f9e5bc6..c4a6e3a9ee 100644 --- a/Mesh/CenterlineField.cpp +++ b/Mesh/CenterlineField.cpp @@ -292,7 +292,7 @@ static void cutTriangle(MTriangle *tri, } } -Centerline::Centerline(std::string fileName): kdtree(0), kdtreeR(0) +Centerline::Centerline(std::string fileName): kdtree(0), kdtreeR(0) { recombine = (CTX::instance()->mesh.recombineAll) || (CTX::instance()->mesh.recombine3DAll); @@ -356,12 +356,12 @@ Centerline::~Centerline() if(kdtree){ ANNpointArray nodes = kdtree->thePoints(); if(nodes) annDeallocPts(nodes); - delete kdtree; + delete kdtree; } if(kdtreeR){ ANNpointArray nodesR = kdtreeR->thePoints(); if(nodesR) annDeallocPts(nodesR); - delete kdtreeR; + delete kdtreeR; } } @@ -1080,7 +1080,7 @@ double Centerline::operator() (double x, double y, double z, GEntity *ge) if (isCompound) cFaces = ((GFaceCompound*)ge)->getCompounds(); if ( ge->dim() == 3 || (ge->dim() == 2 && ge->geomType() == GEntity::Plane) || (isCompound && (*cFaces.begin())->geomType() == GEntity::Plane) ){ - int num_neighbours = 1; + const int num_neighbours = 1; ANNidx index[num_neighbours]; ANNdist dist[num_neighbours]; kdtreeR->annkSearch(xyz, num_neighbours, index, dist); @@ -1091,7 +1091,7 @@ double Centerline::operator() (double x, double y, double z, GEntity *ge) } } - int num_neighbours = 1; + const int num_neighbours = 1; ANNidx index[num_neighbours]; ANNdist dist[num_neighbours]; kdtree->annkSearch(xyz, num_neighbours, index, dist); diff --git a/Mesh/QuadTriExtruded2D.cpp b/Mesh/QuadTriExtruded2D.cpp index 49516fe90c..079890013b 100644 --- a/Mesh/QuadTriExtruded2D.cpp +++ b/Mesh/QuadTriExtruded2D.cpp @@ -443,7 +443,7 @@ int MeshQuadToTriTopSurface( GFace *from, GFace *to, std::set<MVertex*, return 0; ExtrudeParams *ep = to->meshAttributes.extrude; - if( !ep || !ep->mesh.ExtrudeMesh || !ep->geo.Mode == COPIED_ENTITY ){ + if( !ep || !ep->mesh.ExtrudeMesh || !(ep->geo.Mode == COPIED_ENTITY) ){ Msg::Error("In MeshQuadToTriTopSurface(), incomplete or no " "extrude information for top face %d.", to->tag() ); return 0; diff --git a/Mesh/directions3D.cpp b/Mesh/directions3D.cpp index 7047e18772..88f46c70cb 100644 --- a/Mesh/directions3D.cpp +++ b/Mesh/directions3D.cpp @@ -871,7 +871,7 @@ void Frame_field::save(const std::vector<std::pair<SPoint3, STensor3> > data, file.close(); } -void Frame_field::recur_connect_vert(FILE *fi, int count, +void Frame_field::recur_connect_vert(FILE *fi, int count, MVertex *v, STensor3 &cross, std::multimap<MVertex*,MVertex*> &v2v, @@ -879,15 +879,15 @@ void Frame_field::recur_connect_vert(FILE *fi, int count, if (touched.find(v) != touched.end()) return; touched.insert(v); - + count++; for (std::multimap <MVertex*,MVertex*>::iterator it = v2v.lower_bound(v); it != v2v.upper_bound(v) ; ++it){ - + MVertex *nextV = it->second; if (touched.find(nextV) == touched.end()){ - + //compute dot product (N0,R0,A0) dot (Ni,Ri,Ai)^T //where N,R,A are the 3 directions std::map<MVertex*, STensor3>::iterator iter = crossField.find(nextV); @@ -895,10 +895,10 @@ void Frame_field::recur_connect_vert(FILE *fi, int count, STensor3 nextCrossT = nextCross.transpose(); STensor3 prod = cross.operator*=(nextCrossT); fullMatrix<double> mat(3,3); prod.getMat(mat); - + //find biggest dot product fullVector<int> Id(3); - Id(0) = Id(1) = Id(2) = 0; + Id(0) = Id(1) = Id(2) = 0; for (int j = 0; j < 3; j++){ double maxVal = 0.0; for (int i = 0; i < 3; i++){ @@ -916,7 +916,7 @@ void Frame_field::recur_connect_vert(FILE *fi, int count, printf("Id =%d %d %d \n", Id(0), Id(1), Id(2)); return; } - + //create new cross fullMatrix<double> newmat(3,3); for (int i = 0; i < 3; i++){ @@ -940,13 +940,13 @@ void Frame_field::recur_connect_vert(FILE *fi, int count, prod.print("product"); newcross.print("newcross"); } - + fprintf(fi,"SP(%g,%g,%g) {%g};\n",nextV->x(),nextV->y(),nextV->z(), (double)count); //continue recursion recur_connect_vert (fi, count, nextV, newcross, v2v,touched); } - + } } @@ -992,7 +992,7 @@ void Frame_field::continuousCrossField(GRegion *gr, GFace *gf){ int count = 0; recur_connect_vert (fi, count, beginV,bCross,v2v,touched); - + fprintf(fi,"};\n"); fclose (fi); //printf("touched =%d vert =%d \n", touched.size(), vertex_to_vertices.size()); @@ -1045,7 +1045,7 @@ void Frame_field::save_dist(const std::string& filename){ std::ofstream file(filename.c_str()); file << "View \"Distance\" {\n"; - for(std::map<MEdge, double>::iterator it = crossDist.begin(); + for(std::map<MEdge, double, Less_Edge>::iterator it = crossDist.begin(); it != crossDist.end(); it++){ MVertex* pVerta = it->first.getVertex(0); MVertex* pVertb = it->first.getVertex(1); @@ -1119,7 +1119,7 @@ void Frame_field::save_energy(GRegion* gr, const std::string& filename){ matvec(inv, gsf[nod1], grd1); matvec(inv, gsf[nod2], grd2); SVector3 esf = sf[nod1] * SVector3(grd2) - sf[nod2] * SVector3(grd1); - std::map<MEdge, double>::iterator it = crossDist.find(pTet->getEdge(k)); + std::map<MEdge, double, Less_Edge>::iterator it = crossDist.find(pTet->getEdge(k)); sum += it->second * esf; //sum += (pTet->getVertex(nod2)->z() - pTet->getVertex(nod1)->z()) * esf; } diff --git a/Mesh/yamakawa.cpp b/Mesh/yamakawa.cpp index 5a1afbe259..2315d06134 100755 --- a/Mesh/yamakawa.cpp +++ b/Mesh/yamakawa.cpp @@ -6,6 +6,7 @@ // Contributor(s): // Tristan Carrier +#include <iterator> #include "yamakawa.h" #include "GModel.h" #include "MVertex.h" @@ -212,7 +213,7 @@ Tuple::Tuple(MVertex* a,MVertex* b,MVertex* c,MElement* element2,GFace* gf2){ else{ v1 = c; } - + if(a>=b && a>=c){ v3 = a; } @@ -222,7 +223,7 @@ Tuple::Tuple(MVertex* a,MVertex* b,MVertex* c,MElement* element2,GFace* gf2){ else{ v3 = c; } - + if(a!=v1 && a!=v3){ v2 = a; } @@ -232,9 +233,9 @@ Tuple::Tuple(MVertex* a,MVertex* b,MVertex* c,MElement* element2,GFace* gf2){ else{ v2 = c; } - + element = element2; - gf = gf2; + gf = gf2; hash = a->getNum() + b->getNum() + c->getNum(); } @@ -248,7 +249,7 @@ Tuple::Tuple(MVertex* a,MVertex* b,MVertex* c){ else{ v1 = c; } - + if(a>=b && a>=c){ v3 = a; } @@ -258,7 +259,7 @@ Tuple::Tuple(MVertex* a,MVertex* b,MVertex* c){ else{ v3 = c; } - + if(a!=v1 && a!=v3){ v2 = a; } @@ -268,7 +269,7 @@ Tuple::Tuple(MVertex* a,MVertex* b,MVertex* c){ else{ v2 = c; } - + hash = a->getNum() + b->getNum() + c->getNum(); } @@ -360,7 +361,7 @@ void Recombinator::execute(GRegion* gr){ rearrange(gr); statistics(gr); - + modify_surfaces(gr); } @@ -641,8 +642,8 @@ void Recombinator::merge(GRegion* gr){ threshold = 0.25; if(hex.get_quality()<threshold){ break; - } - + } + a = hex.get_a(); b = hex.get_b(); c = hex.get_c(); @@ -692,7 +693,7 @@ void Recombinator::merge(GRegion* gr){ if(!faces_statuquo(hex)){ continue; } - + //printf("%d - %d/%d - %f\n",count,i,(int)potential.size(),hex.get_quality()); quality = quality + hex.get_quality(); for(it=parts.begin();it!=parts.end();it++){ @@ -711,12 +712,12 @@ void Recombinator::merge(GRegion* gr){ opt.resize(gr->tetrahedra.size()); opt = gr->tetrahedra; gr->tetrahedra.clear(); - + for(i=0;i<opt.size();i++){ element = (MElement*)(opt[i]); it2 = markings.find(element); if(it2->second==0){ - gr->tetrahedra.push_back(opt[i]); + gr->tetrahedra.push_back(opt[i]); } } @@ -738,18 +739,18 @@ void Recombinator::improved_merge(GRegion* gr){ std::map<MElement*,bool>::iterator it2; std::vector<MTetrahedron*>::iterator it3; Hex hex; - + count = 1; quality = 0.0; - + for(i=0;i<potential.size();i++){ hex = potential[i]; - + threshold = 0.25; if(hex.get_quality()<threshold){ break; - } - + } + a = hex.get_a(); b = hex.get_b(); c = hex.get_c(); @@ -758,7 +759,7 @@ void Recombinator::improved_merge(GRegion* gr){ f = hex.get_f(); g = hex.get_g(); h = hex.get_h(); - + parts.clear(); find(a,hex,parts); find(b,hex,parts); @@ -768,7 +769,7 @@ void Recombinator::improved_merge(GRegion* gr){ find(f,hex,parts); find(g,hex,parts); find(h,hex,parts); - + flag = 1; for(it=parts.begin();it!=parts.end();it++){ element = *it; @@ -779,23 +780,23 @@ void Recombinator::improved_merge(GRegion* gr){ } } if(!flag) continue; - + if(!valid(hex,parts)){ continue; } - + if(!conformityA(hex)){ continue; } - + if(!conformityB(hex)){ continue; } - + if(!conformityC(hex)){ continue; } - + //printf("%d - %d/%d - %f\n",count,i,(int)potential.size(),hex.get_quality()); quality = quality + hex.get_quality(); for(it=parts.begin();it!=parts.end();it++){ @@ -809,20 +810,20 @@ void Recombinator::improved_merge(GRegion* gr){ build_hash_tableC(hex); count++; } - + opt.clear(); opt.resize(gr->tetrahedra.size()); opt = gr->tetrahedra; gr->tetrahedra.clear(); - + for(i=0;i<opt.size();i++){ element = (MElement*)(opt[i]); it2 = markings.find(element); if(it2->second==0){ - gr->tetrahedra.push_back(opt[i]); + gr->tetrahedra.push_back(opt[i]); } } - + printf("hexahedra average quality (0->1) : %f\n",quality/count); } @@ -881,15 +882,15 @@ void Recombinator::build_tuples(GRegion* gr){ for(it=faces.begin();it!=faces.end();it++) { gf = *it; - + for(i=0;i<gf->getNumMeshElements();i++){ element = gf->getMeshElement(i); - - if(element->getNumVertices()==3){ + + if(element->getNumVertices()==3){ a = element->getVertex(0); b = element->getVertex(1); c = element->getVertex(2); - + tuples.insert(Tuple(a,b,c,element,gf)); } } @@ -906,20 +907,20 @@ void Recombinator::modify_surfaces(GRegion* gr){ std::vector<MElement*> opt; std::list<GFace*>::iterator it; std::set<MElement*>::iterator it2; - + for(i=0;i<gr->getNumMeshElements();i++){ element = gr->getMeshElement(i); - + if(element->getNumVertices()==8){ - a = element->getVertex(0); - b = element->getVertex(1); - c = element->getVertex(2); - d = element->getVertex(3); - e = element->getVertex(4); - f = element->getVertex(5); + a = element->getVertex(0); + b = element->getVertex(1); + c = element->getVertex(2); + d = element->getVertex(3); + e = element->getVertex(4); + f = element->getVertex(5); g = element->getVertex(6); - h = element->getVertex(7); - + h = element->getVertex(7); + modify_surfaces(a,b,c,d); modify_surfaces(e,f,g,h); modify_surfaces(a,e,h,d); @@ -928,18 +929,18 @@ void Recombinator::modify_surfaces(GRegion* gr){ modify_surfaces(d,h,g,c); } } - + faces = gr->faces(); - + for(it=faces.begin();it!=faces.end();it++) { gf = *it; - - opt.clear(); - + + opt.clear(); + for(i=0;i<gf->getNumMeshElements();i++){ element = gf->getMeshElement(i); - + if(element->getNumVertices()==3){ it2 = triangles.find(element); if(it2==triangles.end()){ @@ -947,13 +948,13 @@ void Recombinator::modify_surfaces(GRegion* gr){ } } } - + gf->triangles.clear(); - + for(i=0;i<opt.size();i++){ gf->triangles.push_back((MTriangle*)opt[i]); } - } + } } void Recombinator::modify_surfaces(MVertex* a,MVertex* b,MVertex* c,MVertex* d){ @@ -968,25 +969,25 @@ void Recombinator::modify_surfaces(MVertex* a,MVertex* b,MVertex* c,MVertex* d){ gf2 = NULL; tuple1 = Tuple(a,b,c); - tuple2 = Tuple(c,d,a); - + tuple2 = Tuple(c,d,a); + it1 = tuples.find(tuple1); it2 = tuples.find(tuple2); - + flag1 = 0; flag2 = 0; - + while(it1!=tuples.end()){ if(tuple1.get_hash()!=it1->get_hash()){ break; } - + if(tuple1.same_vertices(*it1)){ flag1 = 1; element1 = it1->get_element(); gf1 = it1->get_gf(); } - + it1++; } @@ -994,64 +995,64 @@ void Recombinator::modify_surfaces(MVertex* a,MVertex* b,MVertex* c,MVertex* d){ if(tuple2.get_hash()!=it2->get_hash()){ break; } - + if(tuple2.same_vertices(*it2)){ flag2 = 1; element2 = it2->get_element(); gf2 = it2->get_gf(); } - + it2++; } - + if(flag1 && flag2){ triangles.insert(element1); triangles.insert(element2); - + gf1->addQuadrangle(new MQuadrangle(a,b,c,d)); } - + tuple1 = Tuple(a,b,d); - tuple2 = Tuple(b,c,d); - + tuple2 = Tuple(b,c,d); + it1 = tuples.find(tuple1); it2 = tuples.find(tuple2); - + flag1 = 0; flag2 = 0; - + while(it1!=tuples.end()){ if(tuple1.get_hash()!=it1->get_hash()){ break; } - + if(tuple1.same_vertices(*it1)){ flag1 = 1; element1 = it1->get_element(); gf1 = it1->get_gf(); } - + it1++; } - + while(it2!=tuples.end()){ if(tuple2.get_hash()!=it2->get_hash()){ break; } - + if(tuple2.same_vertices(*it2)){ flag2 = 1; element2 = it2->get_element(); gf2 = it2->get_gf(); } - + it2++; } - + if(flag1 && flag2){ triangles.insert(element1); triangles.insert(element2); - + gf1->addQuadrangle(new MQuadrangle(a,b,c,d)); } } @@ -1757,7 +1758,7 @@ bool Recombinator::faces_statuquo(Hex hex){ bool c1,c2,c3,c4,c5,c6; MVertex *a,*b,*c,*d; MVertex *e,*f,*g,*h; - + a = hex.get_a(); b = hex.get_b(); c = hex.get_c(); @@ -1766,14 +1767,14 @@ bool Recombinator::faces_statuquo(Hex hex){ f = hex.get_f(); g = hex.get_g(); h = hex.get_h(); - + c1 = faces_statuquo(a,b,c,d); c2 = faces_statuquo(e,f,g,h); c3 = faces_statuquo(a,b,f,e); c4 = faces_statuquo(b,c,g,f); c5 = faces_statuquo(d,c,g,h); c6 = faces_statuquo(d,a,e,h); - + return c1 && c2 && c3 && c4 && c5 && c6; } @@ -1784,94 +1785,94 @@ bool Recombinator::faces_statuquo(MVertex* a,MVertex* b,MVertex* c,MVertex* d){ Tuple tuple1,tuple2; std::multiset<Tuple>::iterator it1; std::multiset<Tuple>::iterator it2; - - ok = 1; - + + ok = 1; + gf1 = NULL; gf2 = NULL; - + tuple1 = Tuple(a,b,c); - tuple2 = Tuple(c,d,a); - + tuple2 = Tuple(c,d,a); + it1 = tuples.find(tuple1); it2 = tuples.find(tuple2); - + flag1 = 0; flag2 = 0; - + while(it1!=tuples.end()){ if(tuple1.get_hash()!=it1->get_hash()){ break; } - + if(tuple1.same_vertices(*it1)){ flag1 = 1; gf1 = it1->get_gf(); } - + it1++; } - + while(it2!=tuples.end()){ if(tuple2.get_hash()!=it2->get_hash()){ break; } - + if(tuple2.same_vertices(*it2)){ flag2 = 1; gf2 = it2->get_gf(); } - + it2++; } - + if(flag1 && flag2){ if(gf1!=gf2){ ok = 0; } } - + tuple1 = Tuple(a,b,d); - tuple2 = Tuple(b,c,d); - + tuple2 = Tuple(b,c,d); + it1 = tuples.find(tuple1); it2 = tuples.find(tuple2); - + flag1 = 0; flag2 = 0; - + while(it1!=tuples.end()){ if(tuple1.get_hash()!=it1->get_hash()){ break; } - + if(tuple1.same_vertices(*it1)){ flag1 = 1; gf1 = it1->get_gf(); } - + it1++; } - + while(it2!=tuples.end()){ if(tuple2.get_hash()!=it2->get_hash()){ break; } - + if(tuple2.same_vertices(*it2)){ flag2 = 1; gf2 = it2->get_gf(); } - + it2++; } - + if(flag1 && flag2){ if(gf1!=gf2){ ok = 0; } } - + return ok; } @@ -2405,7 +2406,7 @@ void Supplementary::execute(GRegion* gr){ rearrange(gr); statistics(gr); - + modify_surfaces(gr); } @@ -2505,7 +2506,7 @@ void Supplementary::merge(GRegion* gr){ threshold = 0.15; if(prism.get_quality()<threshold){ break; - } + } a = prism.get_a(); b = prism.get_b(); @@ -2532,7 +2533,7 @@ void Supplementary::merge(GRegion* gr){ } } if(!flag) continue; - + if(!valid(prism,parts)){ continue; } @@ -2552,7 +2553,7 @@ void Supplementary::merge(GRegion* gr){ if(!faces_statuquo(prism)){ continue; } - + //printf("%d - %d/%d - %f\n",count,i,(int)potential.size(),prism.get_quality()); quality = quality + prism.get_quality(); for(it=parts.begin();it!=parts.end();it++){ @@ -2571,7 +2572,7 @@ void Supplementary::merge(GRegion* gr){ opt.resize(gr->tetrahedra.size()); opt = gr->tetrahedra; gr->tetrahedra.clear(); - + for(i=0;i<opt.size();i++){ element = (MElement*)(opt[i]); it2 = markings.find(element); @@ -2579,7 +2580,7 @@ void Supplementary::merge(GRegion* gr){ gr->tetrahedra.push_back(opt[i]); } } - + printf("prisms average quality (0->1) : %f\n",quality/count); } @@ -2628,25 +2629,25 @@ void Supplementary::build_tuples(GRegion* gr){ GFace* gf; std::list<GFace*> faces; std::list<GFace*>::iterator it; - + tuples.clear(); triangles.clear(); faces.clear(); - + faces = gr->faces(); - + for(it=faces.begin();it!=faces.end();it++) { gf = *it; - + for(i=0;i<gf->getNumMeshElements();i++){ element = gf->getMeshElement(i); - - if(element->getNumVertices()==3){ + + if(element->getNumVertices()==3){ a = element->getVertex(0); b = element->getVertex(1); c = element->getVertex(2); - + tuples.insert(Tuple(a,b,c,element,gf)); } } @@ -2663,35 +2664,35 @@ void Supplementary::modify_surfaces(GRegion* gr){ std::vector<MElement*> opt; std::list<GFace*>::iterator it; std::set<MElement*>::iterator it2; - + for(i=0;i<gr->getNumMeshElements();i++){ element = gr->getMeshElement(i); - + if(element->getNumVertices()==6){ - a = element->getVertex(0); - b = element->getVertex(1); - c = element->getVertex(2); - d = element->getVertex(3); - e = element->getVertex(4); - f = element->getVertex(5); - + a = element->getVertex(0); + b = element->getVertex(1); + c = element->getVertex(2); + d = element->getVertex(3); + e = element->getVertex(4); + f = element->getVertex(5); + modify_surfaces(a,d,e,b); modify_surfaces(a,d,f,c); modify_surfaces(b,e,f,c); } } - + faces = gr->faces(); - + for(it=faces.begin();it!=faces.end();it++) { gf = *it; - - opt.clear(); - + + opt.clear(); + for(i=0;i<gf->getNumMeshElements();i++){ element = gf->getMeshElement(i); - + if(element->getNumVertices()==3){ it2 = triangles.find(element); if(it2==triangles.end()){ @@ -2699,13 +2700,13 @@ void Supplementary::modify_surfaces(GRegion* gr){ } } } - + gf->triangles.clear(); - + for(i=0;i<opt.size();i++){ gf->triangles.push_back((MTriangle*)opt[i]); } - } + } } void Supplementary::modify_surfaces(MVertex* a,MVertex* b,MVertex* c,MVertex* d){ @@ -2715,95 +2716,95 @@ void Supplementary::modify_surfaces(MVertex* a,MVertex* b,MVertex* c,MVertex* d) Tuple tuple1,tuple2; std::multiset<Tuple>::iterator it1; std::multiset<Tuple>::iterator it2; - + gf1 = NULL; - gf2 = NULL; - + gf2 = NULL; + tuple1 = Tuple(a,b,c); - tuple2 = Tuple(c,d,a); - + tuple2 = Tuple(c,d,a); + it1 = tuples.find(tuple1); it2 = tuples.find(tuple2); - + flag1 = 0; flag2 = 0; - + while(it1!=tuples.end()){ if(tuple1.get_hash()!=it1->get_hash()){ break; } - + if(tuple1.same_vertices(*it1)){ flag1 = 1; element1 = it1->get_element(); gf1 = it1->get_gf(); } - + it1++; } - + while(it2!=tuples.end()){ if(tuple2.get_hash()!=it2->get_hash()){ break; } - + if(tuple2.same_vertices(*it2)){ flag2 = 1; element2 = it2->get_element(); gf2 = it2->get_gf(); } - + it2++; } - + if(flag1 && flag2){ triangles.insert(element1); triangles.insert(element2); - + gf1->addQuadrangle(new MQuadrangle(a,b,c,d)); } - + tuple1 = Tuple(a,b,d); - tuple2 = Tuple(b,c,d); - + tuple2 = Tuple(b,c,d); + it1 = tuples.find(tuple1); it2 = tuples.find(tuple2); - + flag1 = 0; flag2 = 0; - + while(it1!=tuples.end()){ if(tuple1.get_hash()!=it1->get_hash()){ break; } - + if(tuple1.same_vertices(*it1)){ flag1 = 1; element1 = it1->get_element(); gf1 = it1->get_gf(); } - + it1++; } - + while(it2!=tuples.end()){ if(tuple2.get_hash()!=it2->get_hash()){ break; } - + if(tuple2.same_vertices(*it2)){ flag2 = 1; element2 = it2->get_element(); gf2 = it2->get_gf(); } - + it2++; } - + if(flag1 && flag2){ triangles.insert(element1); triangles.insert(element2); - + gf1->addQuadrangle(new MQuadrangle(a,b,c,d)); } } @@ -3258,18 +3259,18 @@ bool Supplementary::faces_statuquo(Prism prism){ bool c1,c2,c3; MVertex *a,*b,*c; MVertex *d,*e,*f; - + a = prism.get_a(); b = prism.get_b(); c = prism.get_c(); d = prism.get_d(); e = prism.get_e(); f = prism.get_f(); - + c1 = faces_statuquo(a,d,f,c); c2 = faces_statuquo(a,d,e,b); c3 = faces_statuquo(b,c,f,e); - + return c1 && c2 && c3; } @@ -3280,94 +3281,94 @@ bool Supplementary::faces_statuquo(MVertex* a,MVertex* b,MVertex* c,MVertex* d){ Tuple tuple1,tuple2; std::multiset<Tuple>::iterator it1; std::multiset<Tuple>::iterator it2; - - ok = 1; - + + ok = 1; + gf1 = NULL; gf2 = NULL; - + tuple1 = Tuple(a,b,c); - tuple2 = Tuple(c,d,a); - + tuple2 = Tuple(c,d,a); + it1 = tuples.find(tuple1); it2 = tuples.find(tuple2); - + flag1 = 0; flag2 = 0; - + while(it1!=tuples.end()){ if(tuple1.get_hash()!=it1->get_hash()){ break; } - + if(tuple1.same_vertices(*it1)){ flag1 = 1; gf1 = it1->get_gf(); } - + it1++; } - + while(it2!=tuples.end()){ if(tuple2.get_hash()!=it2->get_hash()){ break; } - + if(tuple2.same_vertices(*it2)){ flag2 = 1; gf2 = it2->get_gf(); } - + it2++; } - + if(flag1 && flag2){ if(gf1!=gf2){ ok = 0; } } - + tuple1 = Tuple(a,b,d); - tuple2 = Tuple(b,c,d); - + tuple2 = Tuple(b,c,d); + it1 = tuples.find(tuple1); it2 = tuples.find(tuple2); - + flag1 = 0; flag2 = 0; - + while(it1!=tuples.end()){ if(tuple1.get_hash()!=it1->get_hash()){ break; } - + if(tuple1.same_vertices(*it1)){ flag1 = 1; gf1 = it1->get_gf(); } - + it1++; } - + while(it2!=tuples.end()){ if(tuple2.get_hash()!=it2->get_hash()){ break; } - + if(tuple2.same_vertices(*it2)){ flag2 = 1; gf2 = it2->get_gf(); } - + it2++; } - + if(flag1 && flag2){ if(gf1!=gf2){ ok = 0; } } - + return ok; } @@ -3678,7 +3679,7 @@ void PostOp::execute(GRegion* gr,bool flag){ } statistics(gr); - + modify_surfaces(gr); } @@ -3758,7 +3759,7 @@ void PostOp::pyramids1(GRegion* gr){ opt.resize(gr->tetrahedra.size()); opt = gr->tetrahedra; gr->tetrahedra.clear(); - + for(i=0;i<opt.size();i++){ element = (MElement*)(opt[i]); it = markings.find(element); @@ -3831,7 +3832,7 @@ void PostOp::pyramids2(GRegion* gr){ opt1.resize(gr->tetrahedra.size()); opt1 = gr->tetrahedra; gr->tetrahedra.clear(); - + for(i=0;i<opt1.size();i++){ element = (MElement*)(opt1[i]); it = markings.find(element); @@ -3844,7 +3845,7 @@ void PostOp::pyramids2(GRegion* gr){ opt2.resize(gr->pyramids.size()); opt2 = gr->pyramids; gr->pyramids.clear(); - + for(i=0;i<opt2.size();i++){ element = (MElement*)(opt2[i]); it = markings.find(element); @@ -4160,25 +4161,25 @@ void PostOp::build_tuples(GRegion* gr){ GFace* gf; std::list<GFace*> faces; std::list<GFace*>::iterator it; - + tuples.clear(); triangles.clear(); faces.clear(); - + faces = gr->faces(); - + for(it=faces.begin();it!=faces.end();it++) { gf = *it; - + for(i=0;i<gf->getNumMeshElements();i++){ element = gf->getMeshElement(i); - - if(element->getNumVertices()==3){ + + if(element->getNumVertices()==3){ a = element->getVertex(0); b = element->getVertex(1); c = element->getVertex(2); - + tuples.insert(Tuple(a,b,c,element,gf)); } } @@ -4194,32 +4195,32 @@ void PostOp::modify_surfaces(GRegion* gr){ std::vector<MElement*> opt; std::list<GFace*>::iterator it; std::set<MElement*>::iterator it2; - + for(i=0;i<gr->getNumMeshElements();i++){ element = gr->getMeshElement(i); - + if(element->getNumVertices()==5){ - a = element->getVertex(0); - b = element->getVertex(1); - c = element->getVertex(2); - d = element->getVertex(3); - e = element->getVertex(4); - + a = element->getVertex(0); + b = element->getVertex(1); + c = element->getVertex(2); + d = element->getVertex(3); + e = element->getVertex(4); + modify_surfaces(a,b,c,d); } } - + faces = gr->faces(); - + for(it=faces.begin();it!=faces.end();it++) { gf = *it; - - opt.clear(); - + + opt.clear(); + for(i=0;i<gf->getNumMeshElements();i++){ element = gf->getMeshElement(i); - + if(element->getNumVertices()==3){ it2 = triangles.find(element); if(it2==triangles.end()){ @@ -4227,13 +4228,13 @@ void PostOp::modify_surfaces(GRegion* gr){ } } } - + gf->triangles.clear(); - + for(i=0;i<opt.size();i++){ gf->triangles.push_back((MTriangle*)opt[i]); } - } + } } void PostOp::modify_surfaces(MVertex* a,MVertex* b,MVertex* c,MVertex* d){ @@ -4243,95 +4244,95 @@ void PostOp::modify_surfaces(MVertex* a,MVertex* b,MVertex* c,MVertex* d){ Tuple tuple1,tuple2; std::multiset<Tuple>::iterator it1; std::multiset<Tuple>::iterator it2; - + gf1 = NULL; - gf2 = NULL; - + gf2 = NULL; + tuple1 = Tuple(a,b,c); - tuple2 = Tuple(c,d,a); - + tuple2 = Tuple(c,d,a); + it1 = tuples.find(tuple1); it2 = tuples.find(tuple2); - + flag1 = 0; flag2 = 0; - + while(it1!=tuples.end()){ if(tuple1.get_hash()!=it1->get_hash()){ break; } - + if(tuple1.same_vertices(*it1)){ flag1 = 1; element1 = it1->get_element(); gf1 = it1->get_gf(); } - + it1++; } - + while(it2!=tuples.end()){ if(tuple2.get_hash()!=it2->get_hash()){ break; } - + if(tuple2.same_vertices(*it2)){ flag2 = 1; element2 = it2->get_element(); gf2 = it2->get_gf(); } - + it2++; } - + if(flag1 && flag2){ triangles.insert(element1); triangles.insert(element2); - + gf1->addQuadrangle(new MQuadrangle(a,b,c,d)); } - + tuple1 = Tuple(a,b,d); - tuple2 = Tuple(b,c,d); - + tuple2 = Tuple(b,c,d); + it1 = tuples.find(tuple1); it2 = tuples.find(tuple2); - + flag1 = 0; flag2 = 0; - + while(it1!=tuples.end()){ if(tuple1.get_hash()!=it1->get_hash()){ break; } - + if(tuple1.same_vertices(*it1)){ flag1 = 1; element1 = it1->get_element(); gf1 = it1->get_gf(); } - + it1++; } - + while(it2!=tuples.end()){ if(tuple2.get_hash()!=it2->get_hash()){ break; } - + if(tuple2.same_vertices(*it2)){ flag2 = 1; element2 = it2->get_element(); gf2 = it2->get_gf(); } - + it2++; } - + if(flag1 && flag2){ triangles.insert(element1); triangles.insert(element2); - + gf1->addQuadrangle(new MQuadrangle(a,b,c,d)); } } @@ -4463,24 +4464,24 @@ void PostOp::mean(const std::set<MVertex*>& Ns,MVertex* mid,const std::vector<ME } iterations = iterations + j; - + for(j=0;j<6;j++){ flag = 0; - + for(i=0;i<movables.size();i++){ if(movables[i]->gammaShapeMeasure()<0.2){ flag = 1; } } - + if(!flag){ break; } - + x = 0.1*init_x + 0.9*mid->x(); y = 0.1*init_y + 0.9*mid->y(); z = 0.1*init_z + 0.9*mid->z(); - + mid->setXYZ(x,y,z); } diff --git a/Plugin/HomologyPostProcessing.cpp b/Plugin/HomologyPostProcessing.cpp index aa9f95bf1d..3d3cb24baf 100644 --- a/Plugin/HomologyPostProcessing.cpp +++ b/Plugin/HomologyPostProcessing.cpp @@ -107,7 +107,7 @@ bool GMSH_HomologyPostProcessingPlugin::parseStringOpt int GMSH_HomologyPostProcessingPlugin::detIntegerMatrix (std::vector<int>& matrix) { - int n = sqrt(matrix.size()); + int n = sqrt((double)matrix.size()); fullMatrix<double> m(n,n); for(int i = 0; i < n; i++) for(int j = 0; j < n; j++) @@ -119,7 +119,7 @@ int GMSH_HomologyPostProcessingPlugin::detIntegerMatrix bool GMSH_HomologyPostProcessingPlugin::invertIntegerMatrix (std::vector<int>& matrix) { - int n = sqrt(matrix.size()); + int n = sqrt((double)matrix.size()); fullMatrix<double> m(n,n); for(int i = 0; i < n; i++) for(int j = 0; j < n; j++) diff --git a/contrib/Chaco/util/smalloc.c b/contrib/Chaco/util/smalloc.c index d079c7015b..08ede95163 100644 --- a/contrib/Chaco/util/smalloc.c +++ b/contrib/Chaco/util/smalloc.c @@ -33,7 +33,7 @@ unsigned int n; /* number of bytes to be allocated */ if (n == 0) { printf("ERROR: Non-positive argument to smalloc (%u).\n", n); if (Output_File != NULL) { - fprintf(Output_File, + fprintf(Output_File, "ERROR: Non-positive argument to smalloc (%u).\n", n); } bail((char *) NULL, 1); @@ -44,7 +44,7 @@ unsigned int n; /* number of bytes to be allocated */ if (ptr == NULL) { printf("Program out of space while attempting to allocate %u. Sorry!\n", n); if (Output_File != NULL) { - fprintf(Output_File, + fprintf(Output_File, "Program out of space while attempting to allocate %u. Sorry!\n", n); } bail((char *) NULL, 1); @@ -201,7 +201,7 @@ unsigned int n; /* desired size of new allocation */ if (p == NULL) { printf("Program out of space while attempting to reallocate %u.\n", n); if (Output_File != NULL) { - fprintf(Output_File, + fprintf(Output_File, "Program out of space while attempting to reallocate %u.\n", n); } bail((char *) NULL, 1); @@ -258,7 +258,7 @@ unsigned int n; /* desired size of new allocation */ if (p == NULL && DEBUG_MEMORY > 0) { printf("WARNING: Program out of space while attempting to reallocate %u.\n", n); if (Output_File != NULL) { - fprintf(Output_File, + fprintf(Output_File, "WARNING: Program out of space while attempting to reallocate %u.\n", n); } } @@ -291,7 +291,8 @@ char *ptr; } else { *prev = dbptr->next; - bytes_used =- dbptr->size; + //bytes_used =- dbptr->size; + bytes_used -= dbptr->size; // ??? GMSH ??? free((char *) dbptr); } } diff --git a/contrib/HighOrderMeshOptimizer/OptHomRun.cpp b/contrib/HighOrderMeshOptimizer/OptHomRun.cpp index 0cc9e087fa..7efd16762b 100644 --- a/contrib/HighOrderMeshOptimizer/OptHomRun.cpp +++ b/contrib/HighOrderMeshOptimizer/OptHomRun.cpp @@ -1,6 +1,7 @@ //#include <fenv.h> #include <stdio.h> #include <sstream> +#include <iterator> #include <string.h> #include "OptHomRun.h" #include "GModel.h" diff --git a/contrib/onelab/OnelabClients.cpp b/contrib/onelab/OnelabClients.cpp index cfe9ce40ec..e79c8c6223 100644 --- a/contrib/onelab/OnelabClients.cpp +++ b/contrib/onelab/OnelabClients.cpp @@ -446,7 +446,7 @@ void localSolverClient::FixExecPath(const std::string &in) setCommandLine(cmd); } -#if not defined(WIN32) +#if !defined(WIN32) //if(split[0].find("elmerfem") != std::string::npos){ if(!split[1].compare("ElmerSolver") && split[2].empty() && split[0].size()){ std::string fileName = getWorkingDir() + getName() + ".sh"; @@ -504,7 +504,7 @@ bool localSolverClient::checkCommandLine(){ success = checkIfPresent(getCommandLine()); // resolve a possible linux link -#if not defined(WIN32) +#if !defined(WIN32) if(!success){ char cbuf [1024]; FILE *fp; @@ -619,7 +619,7 @@ bool remoteClient::checkCommandLine(const std::string &commandLine){ success=checkIfPresentRemote(commandLine); // resolve a possible linux link -#if not defined(WIN32) +#if !defined(WIN32) if(!success){ char cbuf [1024]; FILE *fp; @@ -1334,7 +1334,7 @@ bool chmod(std::string fileName){ #include <sys/types.h> -#if not defined WIN32 +#if !defined(WIN32) #include <unistd.h> #include <pwd.h> std::string getUserHomedir(){ -- GitLab