Schwarz-Christoffel transformation (circular version)


The complex-variables function

f(z)=0zk=1n(ζ-zk)αk-1dζ,

maps the closed unit discPlanetmathPlanetmath D¯={|z|1} in the complex plane conformally onto a polygonMathworldPlanetmathPlanetmath with n sides, interior anglesMathworldPlanetmath 0<αkπ<2π, and vertices f(zk). (The polygon is assumed to be not self-intersecting.) The parameters zk lie on the unit circle, and depend, generally in a complicated way, on the length of the sides of the polygon.

The fractional powers (ζ-zk)αk-1 serve to clamp up an arc of the circle into a pointy angle of measure αkπ. Indeed, the proof of the Schwarz-Christoffel formula shows that the function f can be decomposed near zk as

f(z)=f(zk)+(z-zk)αkgk(z),

where gk is an analytic functionMathworldPlanetmath with gk(zk)0. See Figure 1.

Figure 1: Mapping in a neighborhood of a boundary point

Note that the exponentPlanetmathPlanetmathPlanetmath is αk — not αk/2 — because the neigbourhood of a point zk in the domain space looks like a half-disc. For the same reason, the fractional power used in the formula is to be a single-valued branch continuousMathworldPlanetmath on the half-disc. Finally, the extra -1 exponents that appear in the integral representation for f come from the power ruleMathworldPlanetmathPlanetmath for differentiationMathworldPlanetmath.

0.1 Example: n=3

Figure 2 illustrates a mapping from the disc to a triangle (n=3). The contours are the approximate images, under f, of circles of radius 0<r1.

Figure 2: Image of a Schwarz-Christoffel mapping for a triangle
Figure 3: Corresponding contours of the domain

We describe the method used to compute the figure. Points in the domain D¯ are first parameterized as z=reiθ, with 0r1 and 0θ<2π ranging over a discrete grid, shown schematically in Figure 4. The integral defining the function f is path-independent, and a natural choice for the paths are rays emanating from the origin. When computing the integrals along each ray, we exploit the additivity of the complex path integral:

f((r+Δr)eiθ)=f(reiθ)+reiθ(r+Δr)eiθk=1n(ζ-zk)αk-1dζ,

so that f(z) is found by summing a previously-computed value and a new integral to be computed. And the new integral is computed using 32-point Gauss quadratureMathworldPlanetmath after reparameterizing the path with dζ=eiθdr.

Figure 4: Parameterization of the domain for computing f

The computation of the integrand

k=1n(ζ-zk)αk-1=exp(k=1n(αk-1)log(ζ-zk))

is straightforward, though we must be careful to respect the branch cuts prescribed above. The log function in most computer languages takes a branch cut on the negative axis. To get the single-valued branches we need in this situation, we must instead compute ζlog(ζ-zk) via the expression

ζlogizk+logζ-zkizk,

where izk is the direction of the tangentPlanetmathPlanetmathPlanetmath to the circle at the point zk.

Finally, after having obtained a discrete set of image points f(z) traced along each circle z=reiθ, the contours in the figure are obtained by interpolating a curved Bézier spline through the image points.

If a triangle is prescribed with the vertex locations, it is not immediately obvious what the parameters zk should be to obtain that triangle. In the examples here, we simply avoid this difficulty by arbitrarily choosing the parameters zk=e2πi(k-1)/n to be equally spaced on the unit circle, and hope that nice figures result.

The αk parameters are easily determined from the angles of the desired figure; they are, in this example:

α1=14,α2=12,α3=14.

0.2 Example: n=10

Figure 5 shows an example with n=10 points. The strategy for computing this figure is similarMathworldPlanetmath to that of the triangle.

The parameters for this star are (rounded to four decimal places):

α1=0.2422,α2=α1=1.3263,α3=α9=0.3026,
α4=α8=1.3026,α5=α7=0.2754,α6=1.3440.
Figure 5: Image of a Schwarz-Christoffel mapping for a star-shaped figure

0.3 Demonstration computer programs

  • http://svn.gold-saucer.org/repos/PlanetMath/SchwarzChristoffelTransformationCircularVersion/schwarz-christoffel.pyPython source code for producing images of the Schwarz-Christoffel transformation

  • http://svn.gold-saucer.org/repos/PlanetMath/SchwarzChristoffelTransformationCircularVersion/explanation.pyPython source code for the explanatory diagrams

References

Title Schwarz-Christoffel transformation (circular version)
Canonical name SchwarzChristoffelTransformationcircularVersion
Date of creation 2013-03-22 16:52:57
Last modified on 2013-03-22 16:52:57
Owner stevecheng (10074)
Last modified by stevecheng (10074)
Numerical id 8
Author stevecheng (10074)
Entry type Result
Classification msc 31A99
Classification msc 30C20