Up to Pisces Online Documentation
Find Singularity
Overview
The purpose of the Find Singularity utility is to compute the coordinates
and other information about a singular point on a level curve on a plane.
Planar singularities on a curve are special because the partial derivatives
of the function which defines the curve vanish at that point.
As a result, algorithms (such as the predictor corrector) that compute and
draw a level set curve have difficulty computing level set curves in the
neighbourhood of the singularity.
This planar singularity algorithm will compute information about singularities
and will draw level set curves near the singularities.
The planar singularity algorithm computes the coordinates of the singular
point by solving a system of linear equations.
The algorithm constructs the system of equations by inflating the equation
for the current model.
The algorithm also computes and draws a linear approximation to the level
set curve in the neighbourhood of the singularity.
The planar singularity algorithm displays the results on a graphics
output window.
The algorithm marks the singular point with a dot (colored red).
Also, the algorithm draws a linear approximation of the level set
in the neighbourhood of the singularity using line segments (colored green).
This is not a standard algorithm such as Predictor-Corrector or AGrid,
since it does not solve for level sets but only for singularities.
As a result, the algorithm is not installed in the usual manner and a
tcl file is required to define the user interface. The algorithm itself
is implemented in C and the appropriate procedures need to be defined to
make the C algorithm accessible by tcl/tk.
How it works
The purpose of the Singularity algorithm is to locate the singular
point or points on a level set curve. In order to do this the algorithm
works as follows:
- The user specifies the algorithm parameters by entering a
value in the appropriate text entry widget in the singularity panel.
The list below describes the purpose of each text entry.
- The planar singularity algorithm decomposes the domain into a uniform
grid with equal number of subdivisions in the X and Y directions (2D).
The algorithm uses the coordinates of the nodes of this grid in order to find
the singularities.
- The algorithm follows these steps:
initialize singularity array
for the number of singularities requested to find {
for each point on the grid of the domain {
estimate the null space vectors u and v
run the inflated solver to solve for x
check the bounds of the solution
evaluate the 2-jet coefficients at x
draw the singular point x
draw the 2-jet line segments
}
}
clean up singularity array
The main part of the algorithm is the "inflated solver". This procedure
uses the definition of the model and null space vectors to solve for
the coordinates (x,y) of the singular point.
Controlling Find Singulartiy from Pisces

The panel labels are in bold and the Tcl/Tk variables corresponding to
each entry are in square brackets.
- Number of Subdivisions [_sing_num_subd]
is the number of subdivisions for the domain (horz and vert)
- Number of Singularities [_sing_num_sing]
is the number of singularities to be found by the algorithm
- Maximum Iterations [_sing_iter_max]
is the number of maximum iterations in the algorithm's Newton step
- Divergence Limit [_sing_huge_dive]
is a large number indicating divergence from the solution
- Convergence Epsilon [_sing_epsi_conv]
is a small number indicating convergence to the solution
- Zero Epsilon [_sing_epsi_zero]
is a small number used as the threshold equivalent of zero
- Normal Form Delta [_sing_delta_norm]
is the basis length of the 2-jet line segments
To use the Singularity algorithm, following steps are required:
Starting up...
- Start up Pisces.
- Select a model (such as "Cubic2D" ).
- Select the graphics output device.
- Select an Algorithm such as "AGrid".
- Select the "Settings" Menu and select the "Output" panel.
- Set the "adds to last" option on.
- Push the "Go" button in the "AGrid" panel.
- The algorithm draws the level set.
Location...
- Select the "Utilities" menu and select "Find Singularities".
- The "Find Singularity" panel pops-up.
- Push the "Find" button.
- The singularity is marked with a red dot and green lines.
- Push the "Info" button.
- The "Singularity Info" panel pops up with info on the coord
and partial derivatives of the singularities.
Known Bugs
The variables used for this algorithm are not installed with the
postmaster. Instead they are C global and tcl global.
The info panel only shows info for one singularity at a time.
Bug Reports
software@geom.umn.edu
Algorithm Implemented By
Nicolas Vera
Acknowledgements
Thanks to Rick Wicklin for his help in developing this algorithm.
The algorithm uses the Givens rotation outlined in
Matrix Computations,
by Gene H. Golub and Charles F. Van Loan,
from The Johns Hopkins University Press,
1989
and the single value decomposition C procedure from
Numerical Recipes in C,
by William H. Press and Brian P. Flannery and
Saul A. Teukolsky and William T. Vetterling,
from Cambridge University Press,
1988
The Pisces Home Page
The Geometry Center Home Page
Comments to: pisces@geom.umn.edu
Created 6/7/1995 by Nicolas Vera
Converted to html on July 26, 1995 by Erik Streed
Last Modified: July 26, 1995
Copyright © 1995 by
The Geometry Center,
all rights reserved.