- #1
ChrisHarvey
- 55
- 0
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.
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.