Plot periodic minimal surface from Weierstrass representation
I want to plot the Schwarz P-(rimary) surface using its Weierstrass representation. Here is the code:
var('rho,a,w') R=(w*(w^6+7/4*sqrt(2)*w^3-1))^(1/2) # R=-I*w^2 theta=0 Phi_1=((1-w^2)/R).integrate(w) Phi_2=(I*(1+w^2)/R).integrate(w) Phi_3=(2*w/R).integrate(w) def FF1(rho,a): return real_part(exp(I*theta)*Phi_1(w=rho*exp(I*a))) def FF2(rho,a): return real_part(exp(I*theta)*Phi_2(w=rho*exp(I*a))) def FF3(rho,a): return real_part(exp(I*theta)*Phi_3(w=rho*exp(I*a))) parametric_plot3d([FF1,FF2,FF3],(rho,0.001,1),(a,0.001,pi/3-0.001))
The range of plot is chosen to avoid any singular points, otherwise there will be a division-by-zero error. The commented line is a test for helicoid, which works very well. However, for P-surface, it returns the following warning:
.../sage/local/lib/python2.7/site-packages/sage/repl/rich_\ output/display_manager.py:590: RichReprWarning: Exception in _rich_repr_ while displaying object: 'sage.rings.complex_double.ComplexDoubleElement' object has no attribute 'variables' RichReprWarning, Graphics3d Object
And no graphics displayed.