Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Conformal Mapping

  1. Sep 6, 2005 #1
    Hi everyone,

    Let me set the scene. I'm writing a program to model the flow of an ideal fluid around various singularities using the complex potential and then using conformal transformations to map boundaries into new shapes. It's very nearly done but one of the transformations (what appears to be the easiest one as well) is giving me grief.

    Here we go:

    w = Complex Number
    z = Complex Number
    U = Constant
    Zeta = Complex Number

    Let w = Uz

    This is simply uniform flow.

    I want to map z |-> z ^ (2/3) which should give me flow around a corner.

    Doing this I get W = Uz^(2/3)

    To get the velocity vector I take the conjugate of dw/dz

    i.e. u - iv = 2/3 * U * z^(-1/3)

    If I hard code this directly into my program, I get the right flow pattern.

    However, because my program has to cope with lots of different transformations not all so simple, it must work using the chain rule.

    For this I introduced the complex number zeta, which is simply z after it has been mapped.

    i.e. zeta = z ^ (2/3)

    The velocity is now given by dw/d(zeta). Using the chain rule...

    dw/d(zeta) = dw/dz * dz/d(zeta)

    If w = Uz, dw/dz = U
    & If zeta = z ^ (2/3), d(zeta)/dz = (2/3) * z ^ (-1/3)

    therefore dz/d(zeta) = 3/2 * z ^(1/3)

    & dw/d(zeta) = 3U/2 * z ^ (1/3)

    which does of course give a different velocity to the one calculated the other way. It seems that d(zeta)/dz is the inverse of what is required.

    Strangely though, this same method works for other transformations such as zeta = z + 1/z.

    I have spent about 1 and a half days now tracking the problem down to this and trying to work out what's wrong.

    Is there anybody there who can help?? Please.
  2. jcsd
  3. Sep 6, 2005 #2
    I may have just solved it (many hours {and a Tesco shift!} later). I think the problem may be this: yes, the transformation to transform uniform flow into flow around a corner is z |-> z ^ (2/3), but if I'm going to use the zeta method, z = zeta ^ (2/3), NOT (as I put above) zeta = z ^ (2/3). Then I progress as before and my 2 answers match up. I've just edited the code, compiled & run and I seem to be getting the right flow patterns. If I am correct it would explain why it seems to work for all other transformations, but not for this one. I will work through a couple of test environments tomorrow by hand and see the program gives the same answers.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook