#--------------------------------------------------------------
#  
#   Sample code
#               -----trefoil
#
#--------------------------------------------------------------
aa= 3.0
bb= 1.5

r(x)= aa+sin(1.5*x)
x1(x)=r(x)*cos(x)
x2(x)=r(x)*sin(x)
x3(x)=bb*(sin(x*(x-12.5663706)/6.283185+0.5*pi)+sin(0.5*x +0.5*pi))

dx1(x)=1.5*cos(1.5*x)*cos(x)-sin(x)*(aa+sin(1.5*x))
dx2(x)=1.5*cos(1.5*x)*sin(x)+cos(x)*(aa+sin(1.5*x))
dx3(x)=bb*(((2.0*x-12.5663706)/6.283185)*cos(x*(x-12.5663706)/6.283185+0.5*pi)
	   +0.5*cos(0.5*x +0.5*pi))

norm0(x)= sqrt(dx1(x)**2 + dx2(x)**2 + dx3(x)**2);
fx1(x)= dx1(x)/norm0(x);
fx2(x)= dx2(x)/norm0(x); 
fx3(x)= dx3(x)/norm0(x);
norm1(x)= sqrt(dx1(x)**2 + dx2(x)**2);

e1(x)= dx2(x)/norm1(x);
e2(x)= -dx1(x)/norm1(x);
e3(x)= 0.0;

ee1(x)= -fx3(x)*e2(x);
ee2(x)= fx3(x)*e1(x);
ee3(x)= fx1(x)*e2(x)-e1(x)*fx2(x);

tx1(x,y) = x1(x) + 0.5*(e1(x)*cos(y) + ee1(x)*sin(y))
tx2(x,y) = x2(x) + 0.5*(e2(x)*cos(y) + ee2(x)*sin(y))
tx3(x,y) = x3(x) + 0.5*(ee3(x)*sin(y))


moo(x)= (x - floor(x/12.56637)*12.56637);
txx1(x,y) = x1(x) + 0.53*(e1(x)*cos(y) + ee1(x)*sin(y))
txx2(x,y) = x2(x) + 0.53*(e2(x)*cos(y) + ee2(x)*sin(y))
txx3(x,y) = x3(x) + 0.53*(ee3(x)*sin(y))

trefoil=surface{[tx1(x,y),tx2(x,y),tx3(x,y)][x=0:4.0*pi][y=-pi:pi][orient=-1]
	       [samp=200:10]}

trefmat=material{emi:0 0 0,diffu:0.413 0.352 0,specu:1.,1.,1.,shininess 114}

omiga= 0.53456775498654364
tref_flow=cur{[txx1(moo(x),omiga*x),txx2(moo(x),omiga*x),
	       txx3(moo(x),omiga*x)][x=0,60*pi][color=1]};

tref=object{ material trefmat;
	     trefoil
	       };
#--------------------------------------------------------------
plot tref tref_flow;

#--------------------------------------------------------------

