# How to calculate an area of a conformal map enclosed shape?

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]


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?

• Naughty naughty. Stack Exchange rather frowns on posting the same question on multiple sites - stackoverflow.com/questions/59358603/…. Pick one. Dec 16, 2019 at 17:01
• This is the correct site for this question Dec 16, 2019 at 18:38

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.

• 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 Dec 17, 2019 at 9:48
• 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}] Dec 17, 2019 at 12:41