Chen - Gackstatter  with k - fold dihedral symmetry

<<Own`Mesh`

Weierstraß Data

Use k >= 3

k=3;
exp=(k-1)/k;

fi1[z_]:=(1-z^2 )^exp/(z^exp);
fi2[z_]:= (z^exp)/(1-z^2 )^exp;

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

phi1[z_]:=-(((z^(1-exp)) Hypergeometric2F1[((1-exp)/2),-exp,1+((1-exp)/2),(z^2)])/(-1+exp));
phi2[z_]:=(((z^(1+exp)) Hypergeometric2F1[((1+exp)/2),exp,1+((1+exp)/2),(z^2)])/(1+exp));

om1[z_] := (-rho*phi1[z] + phi2[z]/rho)/2;

om2[z_] := I*(rho*phi1[z] + phi2[z]/rho)/2;

om3[z_] := z;

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

f[z_]:=Re[{om1[z],om2[z],om3[z]}]

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

Parametrization

r1=2.;
nr1=8;
nr2=8;
nt=15;

dm=RectangularDomain[NRange[0,1,nr1]⋃NRange[1,r1,nr2],NRange[0,Pi/2.,nt]];

ϵ=0.00000001;
polar[z_]:=Re[z]E^(I Im[z])+ϵ(1+I)

dm2=MeshApply[polar,dm];

Plotting

p1=MeshPlot3D[{f[x+I y],n[x+I y]},{x,y},dm2];

gr=Mesh3DToGraphics3D[p1];

p2=MeshJoin[p1,MeshRotate[p1,StraightLine[{0,0,0},f[I]]]];

p3=MeshJoin[p2,MeshReflect[p2,Plane[{0,1,0},0]]];

p4=MeshJoin@@Table[MeshRotateZ[p3,i 2Pi/k,0],{i,0,k-1}];

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