diff --git a/Geo/gmshLevelset.h b/Geo/gmshLevelset.h
index c0a8908c7a35132c872a110066ed4d42401fa56a..5f4ce2116e63e84c1cee31349b6758f86af6ad46 100644
--- a/Geo/gmshLevelset.h
+++ b/Geo/gmshLevelset.h
@@ -22,6 +22,7 @@
 #include "cartesian.h"
 #include "simpleFunction.h"
 
+
 #if defined(HAVE_POST)
 #include "PView.h"
 #include "OctreePost.h"
@@ -292,6 +293,21 @@ public:
   int type() const { return UNKNOWN; }
 };
 
+class gLevelsetSimpleFunction: public gLevelsetPrimitive
+{
+  simpleFunction<double> *_f;
+public:
+  gLevelsetSimpleFunction(simpleFunction<double> *f, int tag=1){
+    _f = f; 
+  }
+  ~gLevelsetSimpleFunction(){}
+  double operator () (const double x, const double y, const double z) const
+  {
+    return (*_f)(x,y,z);
+  }
+  int type() const { return UNKNOWN; }
+};
+
 class gLevelsetDistGeom: public gLevelsetPrimitive
 {
   cartesianBox<double> *_box;
diff --git a/benchmarks/centerlines/aorta_centerlines.geo b/benchmarks/centerlines/aorta_centerlines.geo
index dd0d76ec71b1225a7d2f82393f442e15472de38c..645bc2cf90969926931764f52ca9fcb76874a7de 100644
--- a/benchmarks/centerlines/aorta_centerlines.geo
+++ b/benchmarks/centerlines/aorta_centerlines.geo
@@ -1,10 +1,10 @@
-Mesh.Algorithm = 7; //(1=MeshAdapt, 2=Automatic, 5=Delaunay, 6=Frontal, 7=bamg, 8=delquad)
+Mesh.Algorithm = 8; //(1=MeshAdapt, 2=Automatic, 5=Delaunay, 6=Frontal, 7=bamg, 8=delquad)
 Mesh.Algorithm3D = 7; //(1=tetgen, 4=netgen, 5=FrontalDel, 6=FrontalHex, 7=MMG3D, 9=R-tree
 
-Mesh.LcIntegrationPrecision = 1.e-2;
+Mesh.LcIntegrationPrecision = 1.e-3;
 
-//Mesh.RecombineAll = 1;
-//Mesh.Bunin = 60;
+Mesh.RecombineAll = 1;
+Mesh.Bunin = 60;
 
 Merge "aorta2.stl";