title: How to set up sympy to perform standard differential geometry tasks?
body: <p>I'm an engineering student. Pretty much all math I have to do is something in R2 or R3 and concerns differential geometry. Naturally I really like sympy because it makes my calculations reusable and presentable.</p>
  
  <p>What I found:</p>
  
  <p>The thing in sympy that comes closeset to what I know functions as, which is as mapping of scalar or vector values to scalar or vector values, with a name and connected to an expressions seems to be something of the form</p>
  
  <pre><code>functionname=sympy.Lambda(Variables in tuple, Expression)
  </code></pre>
  
  <p>or as an example</p>
  
  <pre><code>f=sympy.Lambda((x),x+1)
  </code></pre>
  
  <p>I also found that sympy has the diffgeom module that defines Manifolds, Patches and can then perform some operations on functions without expressions or points. Like translating a point in a coordinate system to the same point in a different, linked coordinate system. </p>
  
  <p>I <strong>haven't</strong> found a way to perform those operations and transformations on functions like those above. Or to define something in the diffgeom context that performs like the Lambda function.</p>
  
  <p>Examples of what I'd like to do:</p>
  
  <pre><code>scalarfield f (x,y,z) = expression
  
  grad (f) = ( d expression / dx , d expression / dy , d expression / dz)^T
  
  vectorfield v (x,y,z) = ( expression 1 , expression 2 , expression 3 )^T
  
  I'd then like to be able to integrate the vectorfield over bodies or curves.
  </code></pre>
  
  <ul>
  <li>Do these things exist and I haven't found them? </li>
  <li>Are they doable with diffgeom and I didn't understand it? </li>
  <li>Would I have to write this myself with the backbones that sympy already provides?</li>
  </ul>