Loading [MathJax]/jax/output/HTML-CSS/jax.js

First time here? Check out the FAQ!

Ask Your Question
1

Curl in 2D Manifolds

asked 6 years ago

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()
cv.display()

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

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

Preview: (hide)

1 Answer

Sort by » oldest newest most voted
3

answered 6 years ago

eric_g gravatar image

updated 6 years ago

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 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
Preview: (hide)
link

Comments

Thanks Eric.

danielvolinski gravatar imagedanielvolinski ( 6 years ago )

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

Stats

Asked: 6 years ago

Seen: 908 times

Last updated: May 13 '18