differential operators : nabla(u, x), laplacian(u, x),
diff(u, a, x)
 
nabla  =  e1*d/dx  +  e2*d/dy  +  e3*d/dz
nabla² = Laplacian
 
nabla :       vector derivative:  acts algebraically as a vector :
 
1. if multiplied by a scalar field f,  return the vector field       nabla f    ~ gradient(f)
 
2. inp it with a vector field f, return the scalar field  nabla . f     ~  divergence(f)
 
3. outp it with f, return the vector field nabla ^ f     ~  curl(f)
 
nabla f = nabla . f + nabla ^ f
 
nabla(u,x) :
 
<nabla(f,x)>1     ->  gradient(f)                  (a vector)
<nabla(f,x)>0     ->  divergence(f)              (a scalar)
<nabla (f,x)>2    ->  curl(f)                        (a bivector. To get a vector like the classical curl, take the dual)
 
nabla(nabla(f,x),x)  ->  laplacian(f)  
 
ex1 : x = x1*e1 + x2*e2 + x3*e3
nabla(x,x) = 3e0
#   xx = x² -->  a scalar function
xx = gp(x,x)
#   nabla(xx,x) = gradient(xx)                                                        
nabla(xx,x) = 2x1*e1 + 2x2*e2 + 2x3*e3  
nabla(nabla(xx,x), x) = 6  -> laplacian(xx)
 
ex2 :  x = x1*e1 + x2*e2 + x3*e3
xy = x1*sin(x2)*e1 + x2*cos(x1)*e2
nabla(xy,x) = (cos(x1) + sin(x2))*e0 + (x2sin(x1) + x1cos(x2))*e12
#  nabla xy = nabla . xy + nabla ^ xy =  divergence(xy)*e0 + curl(xy)*e12
grade0 = divergence   = cos(x1) + sin(x2)
grade2 = curl               = x2sin(x1) + x1cos(x2)
 
ex3 :  x = x1*e1 + x2*e2 + x3*e3
ax = cabs(x)
nabla(ax*e0,x) = x/cabs(x)    with cabs(x) = sqrt(x1^2 + x2^2 + x3^2)
ax3 = abs1(x)^3
nabla(ax3*e0,x) = 3abs1(x) x1*e1 + 3abs1(x)  x2*e2 + 3abs1(x) x3*e3
 
FUNCTIONS
products
grade
involutions
dual
geometry
usual  functions
diff.  operators
utilities