Moving Bodies

General Notes

Users have two options for defining moving surfaces in the model Both options are accessed from the Geometry->Add Moving Body menu.

  1. Import from file

  2. Create parametric geometry

Import from file

Import from file prompts the user to open an STL, STEP or IGES file (Manifold Solid [type 186]) containing a solid model of the moving object. The object need not contain continuous components, although portions of the geometry that extend beyond the lattice domain (i.e. shafts) will be trimmed by the solver prior to the first time-step iteration.

Whenever importing from file, users will be prompted to enter an “axis root” and an “axis unit vector”. The root and unit vector characterize the dynamics of the moving object. For example, when importing a spinning impeller, the axis root should be positioned at the center of the impeller hub, while the axis unit vector should point along the axis of rotation. When importing a translating object, the axis root should be the center of the object, and the axis unit vector should point in the direction of motion. For flux surfaces, the axis root should be the center of the object, and the axis unit vector should point in the direction of imposed flow.

Once defined, the axis of rotation will commute with any additional impeller rotation and/or translations applied to the moving object parent.


  • It is very helpful to center any moving object files about their local origin prior to importing them into the model. This positioning greatly simplifies selection of the axis root.

  • For rotating objects, it is very helpful to also align the rotation axis directly with the local x, y, or z-axis prior to import. This alignment selection greatly simplifies specification of the axis vector.

  • By default, the GUI will attempt to place the axis root at the volume centroid of imported file. If the volume centroid cannot be calculated, the default location will be the global domain origin.

Create parametric

This option allows users to build simple moving object geometries directly within the GUI. Users can also interactively modify the dimensions and parameters of these objects. When defining parametric geometry, the axis root is automatically defined as being placed at the center. The axis vector is automatically aligned with the +y axis, which is initially assumed to be the axis of rotation. The position and orientation of the object can be modified.

General Comments

Once a moving surface is imported or created, a right click on the moving surface component in the model listing allows users to move, rotate, and scale this geometry. Options also exist in this component menu to redefine the motion axis.


  • If users import a moving object that contains multiple co-moving features (e.g. a single shaft with multiple impellers attached to it), the force and torque values reported for this moving object will represent those for the entire assembly. The power number will also be reported for rotating equipment, although the value will be calculated using the maximum diameter of the assembly.

  • Choosing to import multiple objects as part of a single assembly, or choosing to load-in objects individually has no net effect on the fluid flow. The only effect will be in how the model discriminates between individual objects and reports individual forces and torques. This logic conveys to individual blades, which can be imported individually. In this way, users can extract time-dependant forces and torques on individual blades.

Internal Fluid Effects

M-Star CFD uses an immersed boundary method to model interactions between fluids and moving solids. Within this approach, fluid occupies both the interior and exterior of the moving solid, and appropriate body forces are applied near the boundary to enforce a no-slip boundary condition. Although the presence and behavior of the interior fluid does not affect flow and pressure outside the boundary, it can influence the total force and torque predicted to be acting on the immersed surface. The magnitude of the influence can calculated a priori and discounted from the force/torque calculations.


Reference Point

Reference mount point of the moving object, [template units]

This parameter defines the location of the moving object inside the bounding geometry.

Reference Axis

Reference axis direction, [unit vector]

This parameter defines the orientation of the moving object, relative to the bounding geometry coordinate system.

Immersed Boundary D

ImmersedBoundary diameter [Template Units].

Computed automatically when setting the motion axis unit vector. This value characterizes the diameter of the moving object.

Immersed Boundary T

ImmersedBoundary thickness [Template Units].

Computed automatically when setting the motion axis unit vector. This value characterizes the height of the moving object.

Ramp Time

Ramp time for the motion to achieve full speed [s].

Affects the following boundary types: RotationConstant, TranslationConstant, Flux Surface. 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.

Boundary Type
  • Rotation Constant: Objects that spin with a user-defined rate about a fixed axis of rotation

  • Translation Cyclic: Objects that linearly oscillate with a user-defined period about a fixed direction of motion.

  • Translation Constant: Objects that move at a constant, user-defined speed along a fixed direction of motion

  • Flux Surface: Objects that do not move but impose a constant user-defined velocity in a fixed direction along the surface (i.e. a momentum source)

  • Static: No motion, calculate surface forces.

  • CSVFile: Objects move with custom time-varying rotation and translation specified with a table in a CSV file. Two rotations are provided - one for before translation, the other for after. Rotations are specified in axis + angle representation where the angle should be in degrees and the axis does not need to be normalized as the code will do this internally. Translation should be provided in meters. See the example file demonstrating the format here.

Rotation Speed

Rotation speed [rotations/minute]

Speed assigned to objects with rotation constant motion.

Per mixing convention, a positive RPM implies clockwise motion as viewed when looking into in the direction of gravity. A negative value will cause impeller to spin in the opposite direction.

Motion Option

The rotation axis can be made to move with time via three motion modifiers: (i) azimuthal orbit, (ii) axial reciprocate, and (iii) radial oscillate. These motions are superimposed on the rotation. Adding an azimuthal orbit produces a motion like the earth orbiting about the sun. Adding an axial reciprocate produces a motion like a spinning drill pulsing in-and-out of a bore hole. Adding a radial oscillate produces a motion similar to a spinning rotor bit cutting a slot.

  • Disabled

  • Azimuthal Orbit

  • Axial Reciprocate

  • Radial Oscillate

Orbit Speed

Orbit angular speed for use with the azimuthal orbit motion modifier [RPM]

The parameter defines the frequency of any orbital motion.

Orbit motion reference point [Templates Units]

Orbiting motion mount point for use with the azimuthal orbit motion modifier. The orbit axis is assumed to be parallel to the gravity vector, with a location defined by this reference point.

Axial Reciprocate Frequency

Axial reciprocate frequency for use with the axial reciprocate motion modifier [cycles/min]

The parameter defines the frequency of any axially reciprocating motion.

Axial motion is centered about the motion axis root in the direction of the axis unit vector. The position of the object, relative to the axis root, is defined by the cosine expression:

\[a(t) = A cos( \frac{2\pi}{60} f t +\phi)\]

where a is the axial reciprocation amplitude relative to the axis root and f is the axial reciprocate frequency, and phi is the initial angular position. Per the plot of this expression below, note that the initial axial displacement of the object is the user-defined displacement amplitude. The period of oscillation, T, is then defined as the inverse of the reciprocation frequency.

Axial Reciprocate Amplitude

Amplitude of any axially reciprocating motion [Templates Units]

Axial Reciprocate Initial Phase

Initial angular displacement [rad]

Radial Oscillation Direction

Direction in which to impose the radial oscillation [x, y or z]

Radial Oscillation Frequency

Radial oscillation frequency for use with the radial oscillation motion modifier [RPM]

The parameter defines the frequency of any radial oscillations.

Radial Oscillation Amplitude

Amplitude of any radial oscillation motion [Templates Units]

The parameter defines the frequency of any radial oscillations.

Translation Motion Amplitude

Translational motion displacement amplitude [Template Units]

For translational oscillations, this value defines the magnitude of the back-and-forth motion.

Translation Motion Period

Translational motion cycle period [s]

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.

Flux Surface Speed

Constant speed imposed by Flux Surface [m/s]

For flux surfaces, this parameter defines the imposed surface velocity. The direction of flow is defined by the motion axis vector.

Linear Fixed Velocity

Linear translation velocity [m/s]

For moving surface, this parameter defines the constant linear velocity. The direction of motion is defined by the motion axis vector.

Stop Fluid

Does this static boundary stop or block the fluid flow?

Stop Particles

Enables the this immersed boundary to stop particles

Fluid Structure Interactions

Extended Envelope

Follows the approach of Zeng and Michaelides in “The immersed boundary-lattice Boltzmann method for solving fluid-particles interaction problems”. Z. Feng, E. Michaelides, Journal of Computational Physics 2004,195:2,602-628

Triangle Intersection

Follows the approach of Wang et al. in “An efficient boundary condition-implemented immersed boundary-lattice Boltzmann method for simulation of 3D incompressible viscous flows”. X. Wang, C. Shu, J. Wu, and L. Yang, Computers & Fluids 2014,100,165-175

Both approaches give comparable time-averaged forces, torques, and fluid motion. The Triangle Intersection is faster, but tends to realize artificially large force and torque fluctuations.