From 4200953b57399f8779eaa00e60c110456858a836 Mon Sep 17 00:00:00 2001
From: Tristan Carrier Baudouin <tristan.carrier@uclouvain.be>
Date: Sat, 17 Aug 2013 16:33:17 +0000
Subject: [PATCH] The parametrization needs to be reconstructed after the 3D
 meshing.

---
 Geo/GFaceCompound.cpp | 4 ++++
 Geo/GFaceCompound.h   | 2 ++
 Mesh/directions3D.cpp | 5 +++++
 3 files changed, 11 insertions(+)

diff --git a/Geo/GFaceCompound.cpp b/Geo/GFaceCompound.cpp
index 39639edb15..0df3769d1e 100644
--- a/Geo/GFaceCompound.cpp
+++ b/Geo/GFaceCompound.cpp
@@ -1279,6 +1279,10 @@ GFaceCompound::~GFaceCompound()
  _deleteInternals();
 }
 
+void GFaceCompound::deleteInternals(){
+  _deleteInternals();
+}
+
 void GFaceCompound::_deleteInternals()
 {
   for (unsigned int i = 0; i < myParamVert.size(); i++)
diff --git a/Geo/GFaceCompound.h b/Geo/GFaceCompound.h
index 6e1b0e22f3..e086c40a65 100644
--- a/Geo/GFaceCompound.h
+++ b/Geo/GFaceCompound.h
@@ -178,6 +178,8 @@ class GFaceCompound : public GFace {
   GPoint intersectionWithCircle (const SVector3 &n1, const SVector3 &n2, const SVector3 &p,
 				 const double &d, double uv[2]) const;
 
+  void deleteInternals();
+	
  private:
   void _deleteInternals();
   mutable typeOfCompound _toc;
diff --git a/Mesh/directions3D.cpp b/Mesh/directions3D.cpp
index bba0a7b171..1c355b1d7c 100644
--- a/Mesh/directions3D.cpp
+++ b/Mesh/directions3D.cpp
@@ -13,6 +13,7 @@
 #include "MTetrahedron.h"
 #include "directions3D.h"
 #include "OS.h"
+#include "GFaceCompound.h"
 
 #if defined(HAVE_PETSC)
 #include "dofManager.h"
@@ -79,6 +80,10 @@ void Frame_field::init_face(GFace* gf){
   MElementOctree* octree;
   STensor3 m(1.0);
 
+  if(gf->geomType()==GEntity::CompoundSurface){
+    ((GFaceCompound*)gf)->deleteInternals();
+    ((GFaceCompound*)gf)->parametrize();
+  }
   backgroundMesh::set(gf);
   octree = backgroundMesh::current()->get_octree();
 
-- 
GitLab