Finite Riemann

Matthias Weber
Indiana University
http://www.indiana.edu/~minimal

This minimal surface of genus 0 has two catenoidal ends and one planar end. 
     
 It comes in a 1-parameter family, where the parameter controls the angle between the (never parallel) ends.

<<Own`Mesh`

Parameters

t=.5; (*surface family parameter (controls angle between ends)*)
r1=-1;(* size of catenoidal end size*)
r2=4;(* size of planar end *)
nr1=3;(*number of r-lines for catenoidal ends*)
nr2=13;(*number of r-lines for planar end*)
nt=15;(*number of t-lines for all ends *)

Surface Data

G[z_]:=t(( (3+(z^2)))/(-1+(z^2)));
dh[z_]:=((3+(z^2))/(-1+(z^2)));

f[w_]:=Re[
{(w/(2 t))-((t w (-9+(w^2)))/(2 (-1+(w^2)))),
((I w (1+(((t^2) (-9+(w^2)))/(-1+(w^2)))))/(2 t)),
-2 I π+w+2 Log[-1+w]-2 Log[1+w]}
];

n[z_]:=StereographicProjection[G[z]];

Domain Setup

domain=RectangularDomain[Union[NRange[r1,0,nr1],NRange[0,r2,nr2]],NRange[0,Pi,nt]];

newdomain=MeshApply[Sqrt[1+E^#]&,domain];

Surface Patch Creation

fr1=MeshPlot3D[{f[x+I y],n[x+I y]},{x,y},newdomain];

fr3=MeshJoin[fr1,fr2];

gr=Mesh3DToGraphics3D[fr1];

Show[%];

Surface Build

fr2=MeshRotate[fr1,StraightLine[{0,0,0},{0,1,0}]];

fr3=MeshJoin[fr1,fr2];

gr=Mesh3DToGraphics3D[fr3];

Show[%]

fr4=MeshReflect[fr3,Plane[{0,1,0},0]];

fr5=MeshJoin[fr3,fr4];

gr=Mesh3DToGraphics3D[fr5];

Show[gr]