Ask Your Question

Curl in 2D Manifolds

asked 2018-05-13 10:42:57 +0200

danielvolinski gravatar image

I'm using SageMath 8.2 on a Windows 10 Native with Jupyter Notebook.

I noticed curl is not defined in a 2D manifold, why is that?

E = Manifold(2, 'E', structure='Riemannian')
cartesian.<x,y> = E.chart()
E.metric()[:] = identity_matrix(2)

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

ValueError: the curl is not defined in dimension lower than 3

Reference: The Divergence and Curl of a Vector Field In Two Dimensions

edit retag flag offensive close merge delete

1 Answer

Sort by ┬╗ oldest newest most voted

answered 2018-05-13 11:58:31 +0200

eric_g gravatar image

updated 2018-05-13 12:44:31 +0200

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 $\mathbb{R}^3$. 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 $\mathrm{curl}\ v = *(\mathrm{d}v^\flat)$; this would lead a scalar field (not a vector field!) and I 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)
        return v.curl()


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


Scalar field on the 2-dimensional Riemannian manifold E

A nonzero curl is obtained as follows:

v[:] = -y , x

It results in

edit flag offensive delete link more


Thanks Eric.

danielvolinski gravatar imagedanielvolinski ( 2018-05-13 19:16:11 +0200 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower


Asked: 2018-05-13 10:42:57 +0200

Seen: 570 times

Last updated: May 13 '18