[Gmsh] fixed copyMesh(GEdge *from, GEdge *to, int direction)

Steffè Walter Walter.Steffe at thalesaleniaspace.com
Fri Oct 23 10:12:59 CEST 2015


I would like to spend a few more words to clarify the proposed patch.

In the original file the value of newu was defined by:


1)  double newu = (direction > 0) ? u : (from_u_max - u + from_u_min);

where from_u_min and from_u_max are the extremes of the parameter u associated whith the source edge.

In the corrected version the newu is defined by:


2)  double newu = (direction > 0) ? (u-from_u_min+to_u_min) : (from_u_max-u+to_u_min);

where  to_u_min is the lower extreme of the parameter u associated whith the destination edge.

It is evident the two expressions are equivalent if from_u_min = to_u_min.
The test cases built with gmsh internals geometrical tools probably satisfy this condition so you have never
encountered any problem with equation 1.

I have built a periodical structure (a grid of boxes) by cutting a brick with a number of parallel planes
(in all three directions x,y,z). The splitting was done using functions provided by the Salome library.
The result is a set of boxes, faces, edges that are related by a combination of the three basic translations
(m Delta X + n Delta Y + k Delta Z).
The corresponding (congruent) edges are parametrized in such a way that the relation from_u_min = to_u_min is not
respected so that the equation 1 gives a wrong result.

May you to replace equation 1 with equation 2 (as done by my patch) so that way the copyMesh function can
be used also in the latter (more general) case ?

Thanks
Walter Steffe




-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.geuz.org/pipermail/gmsh/attachments/20151023/ca4a00fe/attachment.html>