# 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.