Motion Type

Overview

There are nine options for defining motion in a moving body.

Rotation

Objects that spin with a user-defined rate about a fixed axis of rotation.

Download Sample File: Rotation Speed

Ramp Time Mode

s | Ramp time for the motion to achieve full speed. The ramp is a quarter sine wave that, over the time period defined by ramp time, gradually increases the motion rate from zero to the user-defined steady state value. This feature is particularly useful in high viscosity fluids, which the shock of abrupt motion can lead to excessively large (non-physical and instability inducing) forces on the impeller blade.

Auto

Creates a ramp that has a duration of 100 simulation timesteps.

Off

No ramp time.

Custom

Customize the duration of ramp time for the motion to achieve full speed.

Ramp Time

s | Time for the motion to achieve full speed.

Rotation Speed UDF

rpm | This UDF defines the time-evolution of the rotational speed about the (fixed) rotation axis. Values may be positive or negative. The direction of rotation is indicated by the arrow drawn around the rotation axis in the viewing panel. This is a System UDF.

Motion Modifier Option

The rotation axis can be made to move with time via four motion modifiers. These motions are superimposed on the rotation. The motion modifier can also be disabled.

Disabled

Rotation only.

Azimuthal Orbit

Rotation plus orbit around a fixed axis.

Axial Reciprocate

Rotation plus axial reciprocation.

Radial Oscillate

Rotation plus oscillation perpendicular to the axis of rotation.

Axial Translate

Rotation plus constant linear translation along the axis of rotation.

Translation Cyclic

Objects that oscillate at a user-defined frequency along a fixed translational axis.

../../../_images/translation-cyclic.gif

This is defined by the cosine expression:

\[a(t) = A \cos \left( \frac{2\pi t}{T} +\phi \right)\]
  • a(t): Axial position, meters

  • A: Amplitude, meters

  • T: Period of oscillation, seconds

  • \(\phi\): Initial displacement, radians

Translation Motion Amplitude

m | Amplitude of the translational motion.

Translation Motion Period

s | Time period of the translational motion cycle. For translational oscillations, this value defines the period of the back-and-forth motion. The direction of the motion is defined by the motion axis vector.

Translation Motion Initial Angle

rad | Initial displacement of object within cycle.

Flux Surface

Flux surfaces impose a velocity boundary condition on the fluid. This boundary condition can be composed of rotational and translational components. For rotational components, the flux rotation speed describes the azimuthal velocity of the fluid along the flux surface. This can be a user-defined function of time. For translational velocities, there is a user-defined flux surface speed. This defines the translational speed imposed on the fluid along the flux surface.

Download Sample File: Flux Rotation and Surface Speed

Flux Rotation Speed UDF

rpm | This UDF defines the time-evolution of the rotational speed about the (fixed) rotation axis. Values may be positive or negative. This UDF adds a tangential velocity, vt, to the linear fluid velocity discharged by the flux surface. This functionality can be used to add a rotational component to flow leaving the flux surface. The magnitude of vt along the surface is computed from vt=2π60ωr, wher ω is the user-defined rotation speed in rpm, and r is the perpendicular distance of a point along the surface to the motion axis. The direction of rotation is indicated in the arrow drawn around the rotation axis in the viewing panel. This is a System UDF.

Flux Surface Speed UDF

m/s | This UDF defines the linear velocity imposed on the fluid along the flux surface. Fluid flow is perpendicular to the flux surface, as defined by the motion axis vector. This is a System UDF.

Translation

Move the child geometry at a set user-defined velocity.

Download Sample File: Speed

Ramp Time Mode

s | Ramp time for the motion to achieve full speed. The ramp is a quarter sine wave that, over the time period defined by ramp time, gradually increases the motion rate from zero to the user-defined steady state value. This feature is particularly useful in high viscosity fluids, which the shock of abrupt motion can lead to excessively large (non-physical and instability inducing) forces on the impeller blade.

Auto

Creates a ramp that has a length of 100 simulation time steps.

Off

No ramp time.

Custom

Customize the duration of ramp time for the motion to achieve full speed.

Ramp Time

s | Time for the motion to achieve full speed.

Speed UDF

m/s | This UDF defines the speed of the moving object as it translates along the motion axis vector. This speed, when multiplied by the axis vector, defines the velocity. For moving surface, this parameter defines the constant linear velocity. The direction of motion is defined by the motion axis vector. This is a System UDF.

Ball Joint

An object pivots in a manner similar to a ball joint where the pivot is defined by a vector whose direction changes over time. While the geometry is allowed to pivot in any direction, there is no rotation about the direction vector. There are a few setup requirements for this motion: (1) the geometry must be positioned so that the point about which pivoting occurs matches the motion axis point; (2) the geometry must be rotated so that it matches the direction vector at time 0; and (3) the motion axis vector must point in the direction of the center of the ball joint.

This requires a UDF which defines the orientation of a three-dimensional unit vector with the arm connected to the ball joint. The unit vector, which is used to indicate a direction, is always dimensionless and always normalized to have a length of 1.0. Individual UDFs are defined for the x, y, and z components of the vector. This vector is defined with respect to the system basis vectors. The time-evolution of this unit vector describes the motion of the ball joint arm.

../../../_images/ball-joint.gif

Download Sample File: Ball Joint

Ball Joint Unit Vector X UDF

unitless | This UDF describes the time evolution of the X-component of the ball joint unit vector. This is a System UDF.

Ball Joint Unit Vector Y UDF

unitless | This UDF describes the time evolution of the Y-component of the ball joint unit vector. This is a System UDF.

Ball Joint Unit Vector Z UDF

unitless | Describes the time evolution of the Z-component of the ball joint unit vector. This is a System UDF.

Driven

This option is used to model a moving body that moves based on the forces acting on it from the fluid. The net force from the fluid on the moving body can be used to drive translational degrees of freedom (DOF), while net torques drive rotational DOFs. The term “driven” refers to DOFs that move based on forces/torques, whereas the term “prescribed” refers to DOFs that are predefined and do not depend on the forces/torques. Many suboptions are available, allowing for the selection of which DOFs are driven and which are prescribed.

../../../_images/driven.gif

Download Sample File: Driven

For driven DOFs, the mass (for translation) or the moment of inertia (for rotation) are required input parameters to solve the equations of motion. The “Moments” button in the toolbar can be used to automatically calculate the center of gravity, mass, and moment of intertia given the material density as an input. This calculation assumes a constant density throughout the geometry’s volume and that the geometry is a closed volume. For complex geometries, CAD software may produce more accurate analysis.

A 4th order Runge-Kutta integration scheme is used to integrate driven DOFs. In some simulations, the forces between the moving body and fluid can have high frequency numerical and physical oscillations. These oscillations can lead to instability in turbulent flows. In these situations, the ILES turbulence model is recommended because it filters out many of the high frequency pressure waves found in an LES solution. Lighter objects will be more difficult to keep stable since the same force will lead to larger accelerations.

Note that the driven motion may also be used to define motions that have no driven DOFs. This may be useful for motions that require expressing translational or rotational positions as a function of time.

Driven Motion

Driven Motion Mode

Driven motion refers to the combination of both translational and rotational movements of an object, where either or both can be predefined (prescribed) or governed by dynamic forces (driven). It can involve free movement in all directions, fixed axis rotation, or a combination of both, depending on the specified conditions.

Translation

The motion along each global axis (X, Y, Z) can be set to driven or prescribed motion using the “Driven Translation X/Y/Z” option. The object does not rotate.

Rotation 1 Axis

The object has a fixed axis of rotation while there is no translation. This axis of rotation is defined by the moving body’s motion axis point and motion axis vector. The rotation can be driven or prescribed, which is designated using the “Driven Rotation” option. If prescribed, set the following parameters:

Prescribed Translation Free Rotation

The object translates according to predefined expressions while rotation occurs freely in all directions.

Free 6 DOF

The object is allowed to freely rotate and translate in all directions.

Prescribed Translation Free Rotation 1 Axis

The object translates according to predefined expressions while rotation occurs about a fixed axis. This axis is defined by the moving body’s motion axis point and motion axis vector.

Deforming

Deforming meshes are the most flexible types of motion, but they require some advanced user input. You can employ a user-defined function or import a series of STL files that have to be generated externally.

Mesh Files

A series of STL files can be supplied here. Each file corresponds to the deforming geometry at a given time point. The solver will interpolate the mesh between the time points which are supplied by the user. The file names must contain the time—for example, “Deforming_Mesh_3.15.stl” for the file at 3.15 seconds. The number of vertices/edges/faces must not change over time.

../../../_images/deforming.gif

Download Sample File: Deforming Mesh STL


Deforming UDF

Deforming meshes are the most flexible types of motion but they require some advanced user input. They can do any kind of motion which can expressed as an equation. Use a small script to create a deforming mesh. You have to supply the initial geometry and specify the deformation over time.

Deformation UDF

m | This UDF defines the x, y, and z position of each point on the deforming surface as function of time. Three output variables must be defined within the UDF: floating point variables x, y, and z. These output variables represent the time-evolving positions of the points defining the moving surface. These can be can functions of the initial x, y, and z position of each point on the surface. All positions are defined relative to parent mount point.

This is a special type of local UDF which is applied to surface points (as opposed to voxels or particles). As such, only time, time step, global variables, and the initial positions are available for input variables. Local fluid properties and/or particle properties cannot be evoked in this UDF.

../../../_images/deforming-udf.gif

Download Sample File: Deforming Mesh UDF

Motion Table Displacement

The motion of the children geometry is computed from a user-provided motion table. The motion table defines the known displacements (relative to their initial position) of the children geometry at a series of user-defined time points. At runtime, the instantaneous translational positions and velocities of the children are calculated from this motion table using quadratic interpolation. Although the position and orientation values in the table must increase monotonically with time, the interval between points does not need to be constant.

Within the motion table, changes in the position of the child geometry are defined at each time point using a Cartesian displacement vector. The root of this translation vector is the initial Motion Axis Point of the parent geometry.

Each motion table is defined as a multi-column table. Data between time points is estimated on-the-fly using quadratic interpolation. The motion data table supports Copy/Paste actions from Excel. Pressing the Edit button launches the motion table data.

Max Velocity

m/s | A user-provided reference velocity used to calculate the simulation time step. Approximate values are fine.

Motion Table Displacement Data

m | This is a four-column table that defines how the position of the child geometry changes over time. The first column represents time; the next three columns define the corresponding x, y, and z displacement of the object. All three displacements are defined relative to the parent object mount point.

../../../_images/motion-table.gif

Download Sample File: Motion Table Displacement

Motion Table Rotation

The motion of the children geometry is computed from a user-provided motion table. The motion table defines the known orientations of the children geometry at a series of user-defined time points. At runtime, the instantaneous rotational positions and velocities of the children are calculated from this motion table using quadratic interpolation. Although the position and orientation values in the table must increase monotonically with time, the interval between points does not need to be constant.

Within the motion table, changes in the orientation of the child geometry are defined at each time point using an axis-angle rotation. The root of each rotation vector is the initial Motion Axis Point of the parent geometry. The components of the rotation vectors, along with the corresponding rotation angle, are then user-specified.

Each motion table is defined as a multi-column table. Data between time points is estimated on-the-fly using quadratic interpolation. The motion data table supports Copy/Paste actions from Excel. Pressing the Edit button launches the motion table data.

Max Velocity

m/s | A user-provided reference velocity used to calculate the simulation time step. Approximate values are fine.

Motion Table Rotation Data

ra | This is a five-column table that defines how the orientation of the child geometry changes over time. The first column represents time; columns two, three, and four define the corresponding x, y, and z components of the rotation axis; and column five represents the corresponding rotation angle about this rotational axis. The origin of the rotation axis is the parent object’s mount point. The direction of rotation follows the right-hand rule.

Motion Table Displacement with Rotation

The motion of the children geometry is computed from a user-provided motion table. The motion table defines the known positions and orientations of the children geometry at a series of user-defined time points. At runtime, the instantaneous translational/rotational positions and velocities of the children are calculated from this motion table using quadratic interpolation. Although the position and orientation values in the table must increase monotonically with time, the interval between points does not need to be constant.

Within the motion table, changes in the position of the child geometry are defined at each time point using a Cartesian displacement vector. The root of this translation vector is the initial Motion Axis Point of the parent geometry. Changes in the orientation of the child geometry are defined at each time point using axis-angle rotations. The root of each rotation vector is the initial Motion Axis Point of the parent geometry. The components of the rotation vectors, along with the corresponding rotation angle, are then user-specified.

Each motion table is defined as a multi-column table. Data between time points is estimated on-the-fly using quadratic interpolation. The motion data table supports Copy/Paste actions from Excel. Pressing the Edit button launches the motion table data.

Max Velocity

m/s | A user-provided reference velocity used to calculate the simulation time step. Approximate values are fine.

Motion Table Displacement Rotation Data

m and ra | This is an eight-column table that defines how the orientation and position of the child geometry change over time. The first column represents time; columns two, three, and four define the corresponding x, y, and z components of the rotation axis; column five represents the corresponding rotation angle about this rotational axis; and columns six, seven, and eight define the corresponding x, y, and z displacement of the object. The origin of the rotation axis is the parent object’s mount point. The direction of rotation follows the right-hand rule. All three displacements are defined relative to the parent object mount point. The rotation operation (about the mount point) is performed prior to the displacement operation.

Download Sample File: Motion Table Displacement with Rotation

Important

  • Translations and rotations do not “accumulate” over time. The transformation at each time point is applied to the initial position and orientation of the geometry, not the previous position/orientation.


Reference Velocities

The reference velocity is used to compute the simulation time step. If the maximum velocity realized in the simulation exceeds this reference velocity, the Courant number should be reduced to maintain simulation stability. See this tutorial for more guidance.

For the following motion types, the reference velocity is computed directly:

Motion Type

Equation

Comment

Rotation

\(\pi {ND}\)

m/s | This is calculated from the maximum tip speed of the impeller, where N is the impeller speed (revolutions per second) and D is the impeller diameter (meters).

Translation Cyclic

\(\frac{2\pi A}{T}\)

m/s | This is calculated from the maximum translational speed of the object, where A is the amplitude of the oscillation (meters) and T is the period of oscillation (seconds).

Flux Surface

\(V_r\)

m/s | This is the velocity imposed by the flux surface.

Translation

\(V_r\)

This is the maximum velocity of the moving object.

For all other motion types, including motion with user-defined functions, the reference velocity is set to 1 meter/second by default.