Processing math: 100%

First time here? Check out the FAQ!

Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

I am not sure the curl of a vector field is well defined on a 2-dimensional manifold. The reference you mention actually deals with vector fields in R3. In dimension 2, one could define the curl by taking the Hodge dual of the exterior derivative of the 1-form that is associated to the vector field by metric, i.e. define curl v=(dv); this would lead a scalar field (not a vector field!) and I am not sure this is very useful.

click to hide/show revision 2
No.2 Revision

I am not sure the curl of a vector field is well defined on a 2-dimensional manifold. The reference you mention actually deals with vector fields in R3. In dimension 2, one could define the curl by taking the Hodge dual of the exterior derivative of the 1-form that is associated to the vector field by metric, i.e. define curl v=(dv); this would lead a scalar field (not a vector field!) and I am not sure don't know if this is very useful.

If you really need it, you can define a Python function like this:

def curl(v):
    if dim(v.domain()) == 2:
        g = v.domain().metric()
        return v.down(g).exterior_derivative().hodge_dual(g)
    else:
        return v.curl()

Then

v = E.vector_field(name='v')
v[:] = [-x, y^2]
cv = curl(v)
print(cv)
cv.expr()

yields

Scalar field on the 2-dimensional Riemannian manifold E
0

A nonzero curl is obtained as follows:

v[:] = -y , x
curl(v).expr()

It results in

2