Good morning everyone,
I’m interesting in constructing the rotation matrix in the global coordinates. So I’d need the three rotation angles between the normal of the element and the three axis, x, y and z.
Using
n = ufl.FacetNormal(final_mesh)
x = ufl.SpatialCoordinate(final_mesh)
x_x = ufl.as_vector([x[0]])
x_y = ufl.as_vector([x[1]])
x_z = ufl.as_vector([x[2]])
theta = inner(x_x, n)
phi = inner(x_y, n)
psi = inner(x_z, n)
seems a bit naive …
As well as
x_x = ufl.as_vector([1, 0, 0])
x_y = ufl.as_vector([0, 1, 0])
x_z = ufl.as_vector([0, 0, 1])
theta = inner(x_x, n)
phi = inner(x_y, n)
psi = inner(x_z, n)
Do you have any hint ?