Torus with one Enneper end and one catenoid end

<<Own`Mesh`

This is a 1-parameter family of surfaces

Weierstrass Data

phi2[z_]:=(((1/(Sqrt[z])) (1/(Sqrt[z-a])) (Sqrt[z-b]))/ρ);
phi1[z_]:=ρ (z^(-3/2)) (Sqrt[z-a]) (1/(Sqrt[z-b])) (((z-1))^2);

G[z_]:=(((-1+z) (Sqrt[-a+z]) ρ)/((Sqrt[z]) (Sqrt[-b+z])))

dh[z_]:=((-1+z)/z)

ω1[z_] :=( phi2[z]-phi1[z] )/2;
ω2[z_] :=I( phi2[z]+phi1[z])/2;
ω3[z_]:=dh[z]

Period Problem

tst[a_,b_]:=Im [NIntegrate[(((((-1+z))^2) (Sqrt[-a+z]) )/((z^(3/2)) (Sqrt[-b+z]))),{z,1/2,I,(a+b)/2}]]/Re[NIntegrate[(((((-1+z))^2) (Sqrt[-a+z]) )/((z^(3/2)) (Sqrt[-b+z]))),{z,a,b}]]+Im[NIntegrate[((Sqrt[-b+z])/((Sqrt[z]) (Sqrt[-a+z]) )),{z,1/2,I,(a+b)/2}]]/Re[NIntegrate[((Sqrt[-b+z])/((Sqrt[z]) (Sqrt[-a+z]) )),{z,a,b}]]

Plot[tst[a,-2],{a,-4,-2.1}]

FindRoot[tst[a,-.1],{a,-.5,-1.1}]

Precomputed Solutions

a=-2.803403494001886`;
b=-2.;

a=-1.545191011193059`;
b=-1;

a=-1.3191118215328552`;
b=-.8;

a=-1;(*!!!*)
b=-.5;

a=-0.6097472374538198`;
b=-.1;

ρ=1/Sqrt[Re[NIntegrate[(((((-1+z))^2) (Sqrt[-a+z]) )/((z^(3/2)) (Sqrt[-b+z]))),{z,a,b}]]/Re[NIntegrate[((Sqrt[-b+z])/((Sqrt[z]) (Sqrt[-a+z]) )),{z,a,b}]]]

Parametrize Surface

cp=1.I;

f0[w_]:=NIntegrate[{ω1[z],ω2[z],ω3[z]},{z,cp,w}];
δ0=f0[a];
f[w_]:=NIntegrate[{ω1[z],ω2[z],ω3[z]},{z,cp,w}]-δ0

n[w_]:=StereographicProjection[G[w]]

Change parameters below to tune the mesh

nx1=7;
nx2=4;
nx3=7;
ny=8;
xmin=.01;
xmax=5;
ϵ=0.00001;

{a0,b0}=Sort[{Abs[a],Abs[b]}];

Generate Surface

dm=PolarDomain[Exp[Union[NRange[Log[xmin],Log[a0],nx1],NRange[Log[a0],Log[b0],nx2],NRange[Log[b0],Log[xmax],nx3],SameTest->AlmostEqual]],NRange[ϵ,Pi-ϵ,ny]];

pr1=MeshPlot3D[{Re[f[x+I y]],n[x+I y]},{x,y},dm];

pr2 = MeshJoin[pr1,MeshReflect[pr1,Plane[{1,0,0}, 0]]];

pr3 = MeshJoin[pr2,MeshReflect[pr2,Plane[{0,1,0}, 0]]];

Show[gr = Mesh3DToGraphics3D[pr3]]