diff --git a/Mesh/meshGFace.cpp b/Mesh/meshGFace.cpp index f3159f3a1c5a264adf29738e7f9773cfcd20471d..854874116e948944535f8ab94f462342d4fbb2af 100644 --- a/Mesh/meshGFace.cpp +++ b/Mesh/meshGFace.cpp @@ -1334,7 +1334,7 @@ void deMeshGFace::operator() (GFace *gf) gf->meshStatistics.nbTriangle = gf->meshStatistics.nbEdge = 0; } -int debugSurface = -1; +int debugSurface = -100; void meshGFace::operator() (GFace *gf) { diff --git a/Plugin/Distance.cpp b/Plugin/Distance.cpp index 51755f901884abcb300e729976b14e3805396f17..ce734b21b9cd959e3775d16c595428c061c17323 100644 --- a/Plugin/Distance.cpp +++ b/Plugin/Distance.cpp @@ -27,7 +27,7 @@ StringXNumber DistanceOptions_Number[] = { {GMSH_FULLRC, "Point", NULL, 0.}, {GMSH_FULLRC, "Line", NULL, 0.}, {GMSH_FULLRC, "Face", NULL, 0.}, - {GMSH_FULLRC, "Computation", NULL, 0.}, + {GMSH_FULLRC, "Computation", NULL, -1.0}, //{GMSH_FULLRC, "Scale", NULL, 0.}, //{GMSH_FULLRC, "Min Scale", NULL, 1.e-3}, //{GMSH_FULLRC, "Max Scale", NULL, 1} @@ -53,9 +53,9 @@ std::string GMSH_DistancePlugin::getHelp() const "Define the elementary entities to which the distance is computed. If Point=0, Line=0, and Surface=0, then the distance is computed to the boundaries of the mesh (edges in 2D and faces in 3D)\n\n"; - "Computation=0 computes the geometrical distance (Warning: this is an euclidian distance and not the geodesic distance), and Computation=1 solves a PDE on the mesh\n\n"; + "Computation<0 computes the geometrical distance (Warning: this is an euclidian distance and not the geodesic distance), and Computation=a>0 solves a PDE on the mesh with the diffusion constant mu = bbox/a, with bbox being the max size of the bounding box of the mesh (paper Legrand 2006) \n\n"; - "Plugin(Distance) creates a new distance view."; + "Plugin(Distance) creates a new distance view and also saves the view in the fileName.pos file."; } int GMSH_DistancePlugin::getNbOptions() const @@ -85,7 +85,8 @@ PView *GMSH_DistancePlugin::execute(PView *v) int id_pt = (int) DistanceOptions_Number[0].def; int id_line = (int) DistanceOptions_Number[1].def; int id_face = (int) DistanceOptions_Number[2].def; - int type = (int) DistanceOptions_Number[3].def; + double type = (double) DistanceOptions_Number[3].def; + PView *view = new PView(); PViewDataList *data = getDataList(view); @@ -124,7 +125,7 @@ PView *GMSH_DistancePlugin::execute(PView *v) // Compute geometrical distance to mesh boundaries //------------------------------------------------------ - if (type == 0){ + if (type < 0.0 ){ for(unsigned int i = 0; i < entities.size(); i++){ GEntity* g2 = entities[i]; @@ -210,7 +211,7 @@ PView *GMSH_DistancePlugin::execute(PView *v) // Compute PDE for distance function //----------------------------------- - else if (type == 1){ + else if (type > 0.0){ #if defined(HAVE_SOLVER) @@ -257,7 +258,7 @@ PView *GMSH_DistancePlugin::execute(PView *v) } double L = norm(SVector3(bbox.max(), bbox.min())); - double mu = L/10; //28; + double mu = L/type; simpleFunction<double> DIFF(mu * mu), MONE(1.0); distanceTerm distance(GModel::current(), 1, &DIFF, &MONE); @@ -289,7 +290,7 @@ PView *GMSH_DistancePlugin::execute(PView *v) } lsys->clear(); - data->setName("distance GEOM"); + data->setName("distance PDE"); Msg::Info("Writing %d", fileName.c_str()); FILE * f4 = fopen(fileName.c_str(),"w");