Moving Mesh Question

Submitted by chewnins on Sat, 06/22/2013 - 07:16

Is there a way to combine a rotary and linear motion so that the axis of rotation moves with the mesh?

When I apply more than one fix move/mesh/gran I do not get the motion I am expecting. I think I need a way to update the rotation point so that after the linear motion the rotation axis origin is updated. Can this be done with a variable that is updated in a for loop with inputs from the linear motion parameters?

Any ideas about how I can set something like this up?

richti83's picture

richti83 | Sat, 06/22/2013 - 20:25

Hi chefnins,

make sure you are using different fix-names for the move-fixes.
Also keep in mind that rotation is non commutative.

Maybe this snipped will help you, it rotates a body arround the point 0 0 1 and aditionaly arround the yaw-(z)-axis:

variable omega1 equal 3.1415
variable omega2 equal -3.1415
fix rotcad1 all move/mesh mesh cad1 rotate/variable origin 0. 0. 1. axis 0. 1. 0. omega v_omega1 #rotate arround 0 0 1
fix rotcad2 all move/mesh mesh cad1 rotate/variable origin 0. 0. 0. axis 0. 1. 0. omega v_omega2 #rotate arround COM against rotcad1
fix rotcad3 all move/mesh mesh cad1 rotate/variable origin 0. 0. 0. axis 0. 0. 1. omega v_omega1 #rotate arround COM z-axis

It should work without /variable, but normely my rotational frequency is not constant (comes from a Multi-Body-System).


I'm not an associate of DCS GmbH and not a core developer of LIGGGHTS®
but I have 7 years user experience using LIGGGHTS®, ParaView and LINUX

hansmannb | Thu, 12/12/2013 - 15:36

i'm struggleing with the task to creat a common path for my mesh.
what i don't understand ist how the reference frames of the single move/mesh command are bent on eath other.

example task:
first move/mesh is a rotation in x/y-plane around z axis.
startposition mesh: 0 0 0
center of rotation: 1 0 0

second rotation should be a rotation around the longitudinal axis of the mesh. this axis should always be parallel to the vector of velocity of the first move/mesh command.

fix rot1 all move/mesh mesh cad rotate/variable origin 1 0 0 axis 0 0 1 omega v_omega
fix rot2 all move/mesh mesh cad rotate/variable origin 0 0 0 axis 0 1 0 omega v_omega

i thought that the coordinates and the axis of the second move/mesh command moving along as the mesh is moved by the first move command.
But in this case the 0 1 0 axis of the second command ist alway parallel to the global 0 1 0 axis.

what is my mistake?