[Gmsh] Transform on Duplicata transforms the original

Christophe Geuzaine cag32 at case.edu
Sun Jan 8 02:24:50 CET 2006


Laurent Klinger wrote:
> Hello,
> 
> I'm new to gmsh. I would like to define two elliptical surfaces. 
> The first looks all right and is created with:
> 
> 
> a = 0.004;
> b = 0.002;
> lc = 0.001;
> Point(1) = { 0, 0, 0, lc };
> Point(100) = { a, 0, 0, lc };
> Point(101) = { 0, b, 0, lc };
> Point(102) = {-a, 0, 0, lc };
> Point(103) = { 0,-b, 0, lc };
> Ellipse(100) = { 100, 1, 100, 101 };
> Ellipse(101) = { 101, 1, 102, 102 };
> Ellipse(102) = { 102, 1, 102, 103 };
> Ellipse(103) = { 103, 1, 100, 100 };
> Line Loop(4) = { 100, 101, 102, 103 };
> Plane Surface(4) = { 4 };
> 
> 
> For the second one, I'm trying to rotate and translate the first one:
> 
> 
> to_rad = 3.141592654/180;
> Translate { -0.01, 0.01, 0 } 
>   { 
>      Rotate { {0, 0, 1}, {0, 0, 0}, 120*to_rad } 
>        { 
>           Duplicata { Surface {4}; } 
>        } 
>   }
> 
> 
> This results in two ellipses one over the other, while I thought
> that using Duplicata would avoid this. Note that the defining
> points of the first ellipse (1:103) are however not transformed.
> Trying to 2D-mesh this results in complete garbage. I tried to
> follow the syntax of paragraph 3.1.6 of the doc scrupulously.
> 
> What am I doing wrong?

I just looked into this, and the problem is due to the automatic removal
of duplicate entities that is performed by default after each
transformation. (The ellipse center for the duplicate curve is the same
as for the original one. After the rotation the automatic duplicate
removal leaves only one. The translation moves it, which completely
borks the first ellipse.)

I don't have a fix for this, apart for disabling the automatic duplicate
removal before the transformation, and forcing it back after:

Geometry.AutoCoherence = 0;

Translate { -0.01, 0.01, 0 }
{
   Rotate { {0, 0, 1}, {0, 0, 0}, 120*to_rad }
   {
     Duplicata { Surface {4}; }
   }
}

Coherence;
Geometry.AutoCoherence = 1;

Not pretty, but it works...

Christophe



> 
> Thanks for any help,
> 
>    laurent
> 
> 
> 
> _______________________________________________
> gmsh mailing list
> gmsh at geuz.org
> http://www.geuz.org/mailman/listinfo/gmsh
> 


-- 
Christophe Geuzaine
Assistant Professor, Case Western Reserve University, Mathematics
http://www.case.edu/artsci/math/geuzaine