next up previous contents index
Next: Misc Projects Up: Projects for Differential Geometry Previous: Project Refine

Project Diri

 

Project Diri combines the projects Build (8.2.4), Dual (8.2.7) and Refine (8.2.8), it allows to create in an easy way initial surfaces, to minimize them and to apply conjugation.

We use the CLP example from section 8.2.4.2, adding the project Diri with tex2html_wrap43572 , switching to the tex2html_wrap45324 object and reading in the CLP.bd input file with tex2html_wrap44662 from the option menu creates a sequence with five frames, three of them are shown in figure 8.18. Applying tex2html_wrap45002 and tex2html_wrap45004 removes the boundary edge between the two quadrilaterals and creates a single geometry with six straight boundary lines.

First we explain how to modify a single geometry to get a good initial surface for the minimization, handling sequences is discussed later. Select frame 3 (the one with the highest symmetry) either with the tex2html_wrap45332 input field or the arrows, you should see top left surface in figure 8.24.

The first method we use is "mollify-send" which smoothes the surface (in fact all frames of a Surface instance) by replacing each interior point by the average of its neighbours. Pressing tex2html_wrap45242 applies this method not only once -- this would only affect the points along the common edge of the two quadrilaterals -- but several (by default 10) times.

The second useful method is "equiangulate-send" which implements a Delaunay swap algorithm for surfaces in three-space (see 6.3.4.5 for further information). Be careful, the "swap-edges-send" method from the tr2d-edit project also implements a Delaunay swap algorithm but it can only handle flat triangulations, and like most methods from the tr2d-edit and grid-edit projects it doesn't support Surface instances. Now press tex2html_wrap45240 and again tex2html_wrap45242 to smooth the result from the "equiangulate-send" method, the resulting surface is shown in the middle of the top row in figure 8.24.

By now the triangulation is already better than it would get by just using the minimizing methods but obviously we need more triangles in the middle of the surface and especially at the two vertices where the quadrilaterals met.

   figure24687
Figure 8.24: Creating a triangulation for the CLP example. Starting with the two quadrilaterals (top left) and applying mollify, equiangulate and refine methods we get the initial surface for the minimization (bottom middle) which is almost identical to the minimized surface (bottom right).

These are the regions with the highest Gaussian curvature therefore we can use the curvature dependent refinement tex2html_wrap45246 tex2html_wrap45262 to insert triangles exactly were they are needed. Change the curvature ruler value to 0.25 to select some more edges and refine them with tex2html_wrap45344 . Applying tex2html_wrap45242 tex2html_wrap45240 twice and one more tex2html_wrap45242 to smooth the result of the refinement gives the top right surface of figure 8.24.

Refining the surface again with tex2html_wrap45344 inserts more triangles at the two vertices, now the triangulation is fine enough to allow "mollify-send" to also move the boundary points. Press tex2html_wrap45246 tex2html_wrap45242 and switch on the tex2html_wrap45358 checkbox (by changing the mollifies ruler value you could also change the number of times "mollify-send" is applied) and reset the display with tex2html_wrap45246 tex2html_wrap45246 . Now you get the bottom right surface in figure 8.24 by using tex2html_wrap45242 tex2html_wrap45240 twice and tex2html_wrap45242 again.

To remove the larger triangles at the boundary we use tex2html_wrap45246 tex2html_wrap45264 with a value of 0.2 and tex2html_wrap45344 tex2html_wrap45242 tex2html_wrap45240 tex2html_wrap45242 . One more refine step tex2html_wrap45246 tex2html_wrap45262 tex2html_wrap45344 and some final smoothing with tex2html_wrap45242 tex2html_wrap45240 twice and tex2html_wrap45242 gives the middle surface in the bottom row of figure 8.24, the initial surface for the minimization.

Now apply the minimization algorithm by pressing tex2html_wrap45192 several times (applying it five times yields the bottom right surface of figure 8.24). Even the first time the points only move very little since the initial surface already was close to the minimum! This is the case because "mollify-send" and "equiangulate-send" make the triangulation more regular and uniform, therefore they have a minimizing effect (see the minimality condition in section 8.2.7.1).

When you look at the frame sequence of the CLP Surface instance using the scene time ruler named Surface_Build "CLP" in the manag menu you will notice that the first and the last frame (times 0 and 1) still have the starting discretization, only "mollify-send" has been applied to them. At the second and fourth frame (times 0.25 and 0.75) the discretization changes to that of the third step (time 0.5) we have been working on.

Methods like "refine-send" and "equiangulate-send" which change the discretization of the triangulation they are applied to must also exist on class Surface to handle the discretization changes, if they were just applied to all triangulations of the sequence the interpolation wouldn't work afterwards. Of course all triangulations could be changed in the same way but this doesn't make much sense for example for the refine methods, see figure 8.26.

   figure24738
Figure 8.25: Local discretization change. Starting with a sequence of steps with identical discretizations (on the left) and applying a discretization changing method to step n results in a sequence with split objects at steps n - 1 and n + 1 (on the right).

Let's assume the steps n - 1, n, and n + 1 of a TimeStep sequence (which is used by Surface to store the triangulations) have the same discretization. If the discretization of step n is changed that one of the neighbour steps n - 1 and n + 1 has to be changed in the same way, otherwise these steps couldn't be interpolated with step n any longer. To prevent the spreading of the discretization change to the whole sequence the pre_object and post_object of the steps n - 1 and n + 1 are split and only the discretization of the post_object of step n - 1 and the pre_object of step n + 1 which are used for the interpolation with step n are changed, see figure 8.25. The old objects are still available as pre_object of step n - 1 and as post_object of step n + 1, they are used for the interpolation with steps n - 2 and n + 2. It doesn't matter if one of the steps is already split, for step n - 1 or n + 1 the splitting then is just skipped, if step n is split the two objects are handled in the same way but separately.

Each step that is split needs additional memory and makes the sequence more complex. Therefore the best way to handle sequences is to apply the mollify, equiangulate and refine methods only to every second frame, using an odd number of frames is also a good idea, then the methods can be applied to the first and the last frame. In the CLP example with five frames we can apply the methods to frames 1, 3 and 5 to get the surfaces shown in figure 8.26, the discretization then only changes at the frames 2 and 4.

   figure24753
Figure 8.26: Three minimized frames from the CLP sequence. Each frame has a different discretization that was created using the curvature dependent refinement method which refines triangles in regions of high Gaussian curvature.

Of course a single triangulation can be conjugated with the tex2html_wrap45202 button and viewed by changing the display method to "conjugate-disp", but to be able to reflect the conjugated surface all frames have to be computed and the current geometry of the Surface instance has to be changed with the task button to tex2html_wrap45206 . Pressing the tex2html_wrap44822 button allows to select boundaries for the reflection (see section 8.2.3.2), reflecting the minimized example surface twice gives the sequence in figure 8.27.

   figure24765
Figure 8.27: Conjugated and reflected surfaces from the CLP sequence.


next up previous contents index
Next: Misc Projects Up: Projects for Differential Geometry Previous: Project Refine

SFB 256 Universität Bonn and IAM Universität Freiburg

Copyright © by the Sonderforschungsbereich 256 at the Institut für Angewandte Mathematik, Universität Bonn.