13.2.1. Animation Types

13.2.1.1. Sweep Animation

The Sweep Animation option provides a means to automatically sweep objects across their defined range to visualize the data throughout the domain. Planes, isosurfaces, turbo surfaces, streamlines, and particle tracks can all be animated with the Quick Animator.

To activate the Quick Animator, right-click an object in the 3D Viewer and select Animate, or open Tools > Animation and select Sweep Animation.

Use the slider to select the number of frames per animation loop. The more frames you add, the more positions the animating object will go through. The number of frames increases logarithmically as you move the slider toward the Slow end.

You can animate as many objects, of any type, as you want. Just select the objects in the list and click Play  ; all selected objects will animate.

To stop an animation in progress, click Stop  . The objects will return to the state they were in before the animation began.

You can specify a number of repetitions (raise the Repeat forever   button to enable the Repeat field).

You can create an animation in any of a variety of formats by selecting the Save Movie option, specifying the Format, and providing a filename. Select the Options button to select video creation and quality options, just as for keyframe animations.


Note:  The Windows Media Video (WMV), AVI, and MPEG4 format options all use MPEG-4 encoding, so you will need a player that supports MPEG-4 to view animations in those formats.


13.2.1.1.1. Animating Planes

An animated plane will be shifted in a direction normal to its surface.

If the Bounce option is selected (default), the plane will move to the positive limit, and then in reverse to the negative limit, and then repeat, moving to the positive limit again. If the Loop option is selected, the plane will move to the positive limit, and then jump to the negative limit (in one frame), and then start moving to the positive limit again.

Depending on the shape of the domain relative to its bounding box and the plane orientation, the animating plane may disappear for a number of frames at the ends of its ranges.

13.2.1.1.2. Animating Isosurfaces

Isosurface value is modified to traverse through the entire variable range.

If the Bounce option is selected (default), the isosurface value is increased to its maximum value, and then decreased to its minimum value, and repeated. If the Loop option is selected, the isosurface value is increased to its maximum value, then set to its minimum value (in one frame), and then increased to its maximum value again.

13.2.1.1.3. Animating Turbo Surfaces

Depending on the surface type, Span, Streamwise Location or Theta value will be modified to sweep through its respective range.


Note:  Sweep animation will not work if a Turbo Surface is defined using the Cone option.


13.2.1.1.4. Animating Streamlines and Particle Tracks

Streamlines and Particle Tracks symbols are shifted along the lines.

By default, the symbol shape, interval, and size are overridden by the animation routines. If you want to change these settings, click the Options… button. To use symbol settings from the original object, clear the Override Symbol Settings check box.

The Spacing option specifies the interval at which to start a new batch of symbols. For example, with a spacing of 0.6, the symbols animating on the object will move 60% of the way along the lines, at which point another group of symbols will start at the beginning of the line. With a spacing of 1.0, all symbols will travel to the end of their lines before a new group of symbols starts at the beginning.

13.2.1.1.5. Animating Mesh Deformation Scaling

The Deformation scaling factor is animated from Undeformed to the current scaling factor. If the current scaling is set to Undeformed, the animation goes from Undeformed to True Scale.

13.2.1.2. Timestep Animation

The Timestep Animation option enables you to create an animation by stepping through timesteps, allowing you to easily animate results.

To put the Animation dialog box in Timestep Animation mode, set Type to Timestep Animation.

In addition to some of the standard buttons such as Play and Stop on the Animation dialog box, there are additional buttons:

  •  , go back one timestep.

  •  , go forward one timestep.

The Control By option determines which variable will be available to define the extents of the animation. There are 3 options:

  • Timestep: Uses timesteps to define the animation. You can use the Timestep Selector ( ) to select specific timesteps.

  • Time: Uses time to define the animation, and is only available for transient simulations.

  • Crank Angle: Uses crank angle to define the animation, and is only available for IC Engine simulations.

Select Specify Range for Animation to specify the start and end points of the animation (based on the variable chosen for Control By), otherwise CFD-Post will animate every timestep available.

You can expand the Advanced Frame Selection Controls panel if you want more control over which timesteps will be used to create the animation. The options are dependent on the case:

  • All Timesteps In Range: Uses every timestep available to create the animation between the specified range (or every timestep in CFD-Post if no range has been specified).

  • Specified Number of Frames: Enables you to specify the # of Frames and also their Spacing. You can space the frames by Equal In Timestep, Equal In Time (for transient cases), or Equal In Crank Angle (for IC Engine cases). When using this option, CFD-Post creates the animation using the start and end points of animation (either user specified or, by default, every timestep) and divides the animation according to the# of Frames. CFD-Post then creates the animation using the timesteps that are nearest to the division points (be they based on timestep, time, or crank angle depending on the Spacing option). The result may include duplicate timesteps if the specified frame interval is smaller than the interval between the available timesteps. These will not be seen when viewing the animation in CFD-Post but will exist in any generated video file.

  • Specified Time Interval: Only available for transient simulations. Frames are included at the specified Interval between the start and end points of the animation. Similar to the Specified Number of Frames option, CFD-Post creates the animation using the timesteps nearest to the time values generated using the specified interval. The result may include duplicate timesteps if the specified frame interval is smaller than the interval between the available timesteps. These will not be seen when viewing the animation in CFD-Post but will exist in any generated video file.

  • Specified Crank Angle Interval: only available for IC Engine simulations. Uses the same behavior as Specified Time Interval except that it uses the crank angle variable instead of time variable.

  • Specified Timestep Interval: Uses the same behavior as Specified Timestep Interval except that it uses the timestep variable instead of the time variable.

You can specify a number of repetitions (raise the Repeat forever   button to enable the Repeat field).

You can create an animation in any of a variety of formats by selecting the Save Movie option, specifying the Format, and providing a filename. Select the Options button to select video creation and quality options, just as for keyframe animations.

13.2.1.3. GPU Accelerated Animation

The GPU Accelerated Animation option enables you to create animations using graphics card GPU acceleration. Such animations cycle with a relatively high frame rate.

To use GPU Accelerated Animation:

  1. Ensure that preference Enable GPU Shader Rendering is selected.

    For details, see Advanced.

  2. In the Animation dialog box, set Type to GPU Accelerated Animation.

  3. Set Animation Type to Sweep or Transient.

    Certain objects are eligible to be animated for each type. For example, streamlines that use the Animated Time coloring mode are eligible to be animated using the Sweep animation type, whereas objects colored using Fourier coefficients (from a transient blade row case) are eligible to be animated using the Transient animation type. Any objects not eligible to be animated, or not selected for animation, remain frozen during an animation.

  4. In the list, select objects to animate, such as:

    • Turbo surfaces from a transient blade row case, colored by a variable

    • Surfaces colored by an expression

    • Streamlines that use the Animated Time option.


    Note:  For any given object to be eligible for GPU Accelerated Animation, the details view for all associated domains must show, on the Data Instancing tab, that exactly 1 instance is set.

    If you want to show multiple instances of an object, go to the details view of each associated domain and, on the Instancing tab, set the number of graphical instances. For objects that display TBR results, graphical instancing, as set in the domain details view on the Instancing tab, acts like data instancing would without GPU acceleration, in the sense that variables are not simply copied to new instances but are instead calculated for each instance using a Fourier series.


  5. Click Play or Stop to start or stop the animation.

    Note that the animation plays in a loop until you click Stop.

  6. You can change the animation speed using the Playback Time slider.

  7. You can change the Phase Positon (that is, the phase position within the common period) of the selected objects.

When using GPU Accelerated Animation, the following limitations apply:

  • Vectors are not animated or colored.

  • Any object that is colored using an expression should use a user defined range for coloring because the local and global ranges defined by CFD-Post for such expressions might not reflect the true variable ranges.

  • Numerical error can differ between CPU rendered images and GPU rendered images. Use best practices to reduce numerical error when formulating CEL expressions to color GPU rendered objects.

  • For transient blade row results, accuracy of the graphics (in particular, accuracy of the variable values by which objects may be colored) depends on the number of Fourier coefficients used to calculate variable values. You can adjust this number by the environment variable CFDPOST_GPU_ANIMATION_TBR_MAXIMUM_FOURIER_COEFFICIENT_PAIRS. For details, see Advanced.

  • GPU Accelerated Animation does not support objects that have more than one data instance, as set in the domain details view on the Data Instancing tab. Instead, simply set the number of instances on the Instances tab; with preference Enable GPU Shader Rendering selected, the resulting instances are each calculated from a Fourier series, yielding instancing much like data instancing would without the preference selected.

  • Your graphics card and its drivers must be sufficiently recent and capable of using OpenGL shaders.

  • Text objects are not updated, including those with embedded auto-annotation.

  • Coloring by a CEL expression has the following limitations:

    • For transient blade row results, the expression cannot contain more than one variable and cannot be used for a Sweep animation for any surface objects.

    • The following parts of a CEL expression are evaluated only once, at the current time step, and are then held constant throughout the entire animation:

      • Any user CEL function of type User Function (a user CEL function driven by an existing user CEL routine object)

      • Any location-dependent function, such as areaAve

    • The Current Time Step and Current Phase Position expressions are evaluated only once, at the current time step, and are then held constant throughout the entire animation.

    • User functions within the CEL expression must return a single value.

    • CEL functions besselJ and besselY are not supported for use in GPU rendering.

You can specify a number of repetitions (raise the Repeat forever   button to enable the Repeat field).

You can create an animation in any of a variety of formats by selecting the Save Movie option, specifying the Format, and providing a filename. Select the Options button to select video creation and quality options, just as for keyframe animations.

13.2.1.4. Keyframe Animation


Note:  The Windows Media Video (WMV), AVI, and MPEG4 format options all use MPEG-4 encoding, so you will need a player that supports MPEG-4 to view animations in those formats.


In CFD-Post, you can make animations based on keyframes. Keyframes define the start and end points of each section of animation. Keyframes are linked together by drawing a number of intermediate frames, the number of which is set by the # of Frames field in the Animation dialog box.

The basic approach to creating an animation sequence is to configure the problem in a particular state and then save this state as a keyframe. Next, change one or more aspects of the problem state. For example, change the viewer orientation by rotating the viewer object. You can then save this state as a second keyframe.

Animations are created by linearly interpolating the change in state of the viewer position between keyframe states. By default, 10 frames are created between keyframe states, but this is easily adjustable. If the camera position changes between keyframes, the view is interpolated between the two positions at each frame.

Every option and button that is accessible when Animation is active will increment by one linearly for each of the frames between the two states. For example, if one keyframe has 10 contour levels, and the next has 20 contour levels, then the number of contour levels will increment by one for each of the ten frames between the two states. Objects that are binary in state are toggled at the end of the keyframe sequence (for example, the visibility of an object). Animations can also be created using the different timesteps in a transient run.


Note:  If you have 2 keyframes with 10 frames between them, there are a total of 11 steps from one keyframe to the next.


13.2.1.4.1. Creating an Animation

The basic steps to creating an animation are as follows:

  1. Once you have manipulated the user interface into a chosen start position, click New   to set the current state as Keyframe 1.

  2. The keyframe becomes visible in the Keyframe Creation and Editing window.

  3. Change the viewer and/or object parameters to obtain the second required state and click New   to create Keyframe 2.

  4. When you click a keyframe to highlight it, the other options to the right of the keyframe list become active.

  5. To display the highlighted keyframe in the viewer, click Edit Keyframe   or double-click the keyframe itself. To apply changes in the viewer to the highlighted keyframe, click Set Keyframe  . If more than 2 keyframes exist and you want to change their order, you can move a keyframe up and down by clicking on the blue arrows. To delete a keyframe, click Delete  .

  6. To set the number of intermediate interpolated frames, click a keyframe and set the value in the # of Frames box.

    After a second keyframe has been created, additional playback options are made available.

  7. The looping option enables you to specify whether you want the animation to play in one direction during each repeat or play forwards and backwards. For example, selecting Repeat of 3 on the Loop setting will play the animation three times, jumping from the last keyframe back to the first at the end of the first two cycles. Selecting Bounce for the same number of repeats will cause the animation to play forwards, and then backwards before playing forwards once more.

    With the Repeat option, you specify how often the animation repeats before stopping. By default the Repeat forever   button is selected, so the animation will repeat continuously until you click Stop  .

  8. The Animate Camera feature toggles whether the camera position is moved (interpolated) with the animation.

    If it is switched off, all objects, except for the camera positions, are animated.

13.2.1.4.2. Animating Expressions

There is a limitation with respect to the animating of expressions. If the value of a parameter of an object is set to an expression, that expression is evaluated at the keyframes, but those values are not interpolated to obtain values at the frames between the keyframes. Thus, after the value of the parameter is determined for the first keyframe, that value does not change for the intermediate frames until it is recalculated at the next keyframe, which causes the animation to be unexpectedly discontinuous.