54 real(kind=
rp),
intent(in) :: omega(3)
55 real(kind=
rp),
intent(in) :: ref_point(3)
59 type(
field_t),
pointer :: fu, fv, fw
60 real(kind=
rp) :: rx, ry, rz, cx, cy, cz
63 n = fields%item_size(1)
65 fu => fields%get_by_index(1)
66 fv => fields%get_by_index(2)
67 fw => fields%get_by_index(3)
69 do concurrent(i = 1:n)
71 rx = dof%x(i,1,1,1) - ref_point(1)
72 ry = dof%y(i,1,1,1) - ref_point(2)
73 rz = dof%z(i,1,1,1) - ref_point(3)
76 cx = (omega(2) * rz - omega(3) * ry)
77 cy = (omega(3) * rx - omega(1) * rz)
78 cz = (omega(1) * ry - omega(2) * rx)
81 fu%x(i,1,1,1) = fu%x(i,1,1,1) - (omega(2) * cz - omega(3) * cy)
82 fv%x(i,1,1,1) = fv%x(i,1,1,1) - (omega(3) * cx - omega(1) * cz)
83 fw%x(i,1,1,1) = fw%x(i,1,1,1) - (omega(1) * cy - omega(2) * cx)
subroutine, public vcross(u1, u2, u3, v1, v2, v3, w1, w2, w3, n)
Compute a cross product assuming vector components etc.