[Gmsh] Swaping the orientation of the triangles in Transfinite Surfaces (with Alternate)

Christophe Geuzaine cgeuzaine at ulg.ac.be
Thu Jul 11 10:52:28 CEST 2013


Thanks for the patch! It's in SVN r16185.

On 10 Jul 2013, at 13:13, Jose Paulo Moitinho de Almeida <moitinho at civil.ist.utl.pt> wrote:

> Hello
> 
> Please find attached a patch to implement the AlternateLeft and AlternateRight 
> options in transfinite surfaces.
> 
> It would be apparently sufficient to change Gmsh.y and 
> Mesh/meshGFaceTransfinite.cpp, but I also updated the related comments in 
> Geo/GFace.h and Geo/Geo.h 
> 
> The documentation needs updating (also one line?)
> 
> The geo files (with very imaginative names!) that I used for testing are 
> included. I also played with "demos/transfinite.geo", by not recombining and by 
> specifying the orientation and it seems to "do what is says".
> 
> Something else that I missed?
> 
> Regards
> 
> ZP
> 
> On Tuesday 09 July 2013, Christophe Geuzaine wrote:
>> On 16 May 2013, at 18:40, Jose Paulo Moitinho de Almeida 
> <moitinho at civil.ist.utl.pt> wrote:
>>> I wanted to create a triangular Transfinite Surface mesh , but was not
>>> able to control the position of the initial triangle created by gmsh
>>> (the corners always have only element, as in 1.png).
>>> 
>>> After looking at the code I swapped the logic in
>>> Mesh/meshGFaceTransfinite.cpp from
>>> 
>>>               ((i % 2 == 0 && j % 2 == 1) ||
>>> 
>>>                (i % 2 == 1 && j % 2 == 0)))){
>>> 
>>> to
>>> 
>>>               ((i % 2 == 0 && j % 2 == 0) ||
>>> 
>>>                 (i % 2 == 1 && j % 2 == 1)))){
>>> 
>>> and managed to obtain the result that I wanted (in 2.png).
>>> 
>>> Is there an easier way to achieve this?
>>> 
>>> If there isn't, it would not be too complicated to include an additional
>>> option to Transfinite Surface, so that instead of "Left, Right and
>>> Alternate" we could opt between  "Left, Right AlternateLeft and
>>> AlternateRight", with Alternate still legal and equivalent to the
>>> current option.
>>> 
>>> I should be able to propose a patch (not now...), but before I start
>>> opinions are welcome.
>> 
>> Hi Jose - That's a good idea: send a patch and I will merge it.
>> 
>>> Regards
>>> 
>>> ZP
>>> 
>>> PS: I also considered the idea of adding an additional option, which
>>> would create a mesh where both diagonals are always inserted, so that
>>> using
>>> 
>>> Transfinite Line{1,2,3,4} = 2;
>>> Transfinite Surface {6} = {1, 2, 3, 4} "OtherNewOption";
>>> 
>>> in the attached file, would result in 3.png.
>>> 
>>> I understand that an additional set of vertices is needed, and this is
>>> not so immediate. Would it be too complicated to include them in the
>>> code?
>>> <square.geo><1.png><2.png><3.png>_______________________________________
>>> ________ gmsh mailing list
>>> gmsh at geuz.org
>>> http://www.geuz.org/mailman/listinfo/gmsh
> 
> <SwapTris.patch><square.geo><squareAL.geo><squareAR.geo><squareL.geo><tri.geo><squareR.geo><triAL.geo><triAR.geo><triL.geo><triR.geo>

-- 
Prof. Christophe Geuzaine
University of Liege, Electrical Engineering and Computer Science 
http://www.montefiore.ulg.ac.be/~geuzaine