This post provides a summary of all mathematical types of expression implemented in the diffgeom module. I have chosen not to mention any python classes or other implementation details at all. This table shows how an object expected by the user to be of certain mathematical type operates on another object. If the expectations of a user familiar with differential geometry do not meet the actual implementation, this is a bug in the implementation.
|point||scalar field||vector field||1-form field||higher form field|
|The Operator||scalar field||scalar||NA||NA||NA||NA|
|vector field||NA||scalar field||NA||NA||NA|
|1-form field (linear combination of differentials of scalar fields)||NA||NA||scalar field||NA||NA|
|higher form field (linear combination of tensor products of lower form fields)||NA||NA||it takes a tuple of vector fields and returns a scalar field||NA||NA|
|commutator of vector fields||Behaves as a regular vector field.|
|Lie derivative (the argument is "called" on construction time)||NA||You specify the object to be derived on creation. The Lie derivative of any object is an object of the same type.|