Costa's Minimal Surface with Dihedral Symmetry

<<Own`Mesh`

Surface Parametrization

psi1[z_]:=n (z^(1/n)) Hypergeometric2F1[(1/(2 n)),1+(1/n),1+(1/(2 n)),(z^2)]

psi2[z_]:=((n (z^(2-(1/n))) Hypergeometric2F1[((-1+2 n)/(2 n)),1-(1/n),1+((-1+2 n)/(2 n)),(z^2)])/(-1+2 n))

rho=N[(Sqrt[(((4^(1/n)) Gamma[1-(1/(2 n))] Gamma[((1+n)/(2 n))])/(Gamma[1+(1/(2 n))] Gamma[((-1+n)/(2 n))]))])];

ω2[z_]:=(1/2) I (rho psi1[z]+((psi2[z])/rho));
ω1[z_]:=-(1/2) (rho psi1[z]-((psi2[z])/rho));
ω3[z_]:=(1/2) Log[(-1+z)/(1+z)];

f[z_] :=  Re[{ω1[z],ω2[z],ω3[z]}]

G[z_]:=-(z^((1-n)/n)) (((1-(z^2)))^(-(1/n)))

n0[z_]:=StereographicProjection[rho  G[z]]

Setting up the mesh

eps=10.^-12;

Choose dihedral symmetry n≥2

n=3;

nx1=10;
nx2=20;
ny=15;
m1=RectangularDomain[Union[NRange[-4.5,0,nx1],NRange[0,6,nx2],SameTest->AlmostEqual],NRange[0,Pi,ny]];

m2=MeshApply[Sqrt[1+E^#]+eps (1+I)&,m1];

Surface Plotting

mp1=MeshPlot3D[{f[x+I y],n0[x+I y]},{x,y},m2];

mp2=MeshJoin[mp1,MeshRotate[mp1,StraightLine[{-1.,-Tan[Pi/n/2.],0.`},{0,0,0}]]];

mp3=MeshJoin[mp2,MeshReflect[mp2,Plane[{0,1,0},0]]];

mp4=MeshJoin@@Table[MeshRotateZ[mp3,2Pi i/n,0],{i,0,n-1}];

Show[gl=Mesh3DToGraphics3D[mp4],Axes->True,AxesLabel->{x,y,z}]