How do I use nabla operator with respect to reference coordination

Hi.
I’m using DOLFINx v0.8.0 and trying to caluculate gradient and divergence with respect to reference coordination (There is already a same post but it is not solved.).

Now, the position of a particle in the current coordination x is given by:

x(X,t)=X+u(X,t)

where X, u is the position of a particle in reference coordination and displacement vector respectively.
We already know that, if we want to use nabla operator with respect to x, ufl.div and ufl.grad are available.
However, it seems that there are no demos using nabla operator with respect to X. Is it available in DOLFINx?

Wouldn’t this be equivalent to calling

X = ufl.SpatialCoordinate(mesh)
u = Function(V)
x = X + u
dxdX= ufl.grad(x)

Hi, @dokken. Thank you for your reply.
I think

X = ufl.SpatialCoordinate(mesh)
u = Function(V)
x = X + u
dxdX= ufl.grad(x)

represents

\frac{\partial x}{\partial x}=1

because ufl.grad means \partial / \partial x.
What I want to know is,
Is there an ufl function of nabla operator with respect to X (“Hoge”)

f=Function(V)
dfdX=Hoge(f)

which means \partial / \partial X?

Sorry for my poor explanation. Looking forward to your responce.

grad(u) corresponds to the deformation gradient on the undeformed domain (i.e. The domain you solve for your displacement field on).

I read through the other post you referred to, and i dont agree with what he defines the grad(f) as.