4
$\begingroup$

I need to calculate the area of a conformal mapping closed shape on the complex plane that gives the perimeter. I have the following parameters:

α0 = 0.2; α1 = 1.0; α2 = -α1 - α0;
u0 = 0.5; u1 = 0.2; u2 = -0.4;β = 0.0;
ax = 1.0; τ = 1.0 I; ay = τ*ax;

And the following conformal map:

Z[u_] := 
α0*WeierstrassZeta[u - u0, WeierstrassInvariants[{ax, ay}]] +
α1*WeierstrassZeta[u - u1, WeierstrassInvariants[{ax, ay}]] +
α2*WeierstrassZeta[u - u2, WeierstrassInvariants[{ax, ay}]] + β;

with this I draw the following shape:

B1 = 
  ParametricPlot[{Re[Z[u*I + ax]], Im[Z[u*I + ax]]}, {u, -Im[ay], Im[ay]}, 
    PlotRange -> All]

enter image description here

So I have the perimeter of the enclosed shape, which is the conformal map. How can I extract the area of the shape on the complex plane, from the given perimeter numerically?

$\endgroup$
4
$\begingroup$

The conformal map part is unfortunately over my head, but see if the following might work to calculate the area enclosed by the perimeter of the enclosed shape:

ParametricRegion[Chop@{Re[Z[u*I + ax]], Im[Z[u*I + ax]]}, {{u, -Im[ay], Im[ay]}}]
Area@DelaunayMesh@MeshCoordinates@DiscretizeRegion@%

(* Out: 0.441419 *)

Here I generate a ParametricRegion from your own parametric plot specifications. I then discretize it, which gives a 1D mesh (the perimeter); I extract the points from that mesh, i.e. the points defining the perimeter, then construct a triangularization of that region (a DelaunayMesh), then calculate its area.

BTW, I am almost certain that there might be a more direct route, but it is escaping me at the moment.

|improve this answer|||||
$\endgroup$
  • $\begingroup$ The last line of your code gives me the error: "DiscretizeRegion::defbnds: Unable to compute bounds for the region. Using default bounds of {-1, 1} in all dimensions". And Out: 0.289069. It is not like yours $\endgroup$ – Tamuzd Dec 17 '19 at 9:48
  • $\begingroup$ I have made it, thank you very much. I have change the default of DiscretizeRegion from {-1,1} to {0.,0.01} so it is like this, b = ParametricRegion[{Re[Z[uI + ax]], Im[Z[uI + ax]]}, {{u, -Im[ay], Im[ay]}}]; A = Area@DelaunayMesh@MeshCoordinates@DiscretizeRegion[b, {0., 0.01}] $\endgroup$ – Tamuzd Dec 17 '19 at 12:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.