D3PLOT 22.1

SET_STATES > Selecting the States to Be Animated

SET_STATES > Selecting the states to be animated

By default all states are selected for animation. You can select from the pre-programmed Every n options here, or use Custom... to define more precisely what is to be animated.

The ALL_STATES and Every nn options will apply to all windows with active W n tabs in this panel.

Where multiple models are present the Custom... states can only be selected for one model at a time. You should set the W n tabs to the window(s) of this model first: attempting to select custom states for multiple models will generate warnings.

Interpolating animations by time

Normally animations are drawn at the states defined in your database(s), but it is possible to interpolate by time between states: both to get a smoother progression through a sequence with too few states, and also to match multiple models with dissimilar output frequencies. This is described under "custom" animation BY_TIME... below.

Animating Static and Eigenvalue (modeshape) analyses

This section assumes the normal case of a transient analysis producing a series of states at successive times. However it is also possible to animate a single static or eigenvalue state by cycling it through 0 - 360 degrees. This is described in Animating static and eigenvalue (modal) analyses.

Custom animation definition

You can select any permutation of states from the STATE LIST menu. (In this example states 7, 8, 11, 12 have been de-selected.)

(DE-)SELECT_ALL (De-)selects all states in the STATE LIST menu.

SHOW_TIMES

Lists all available states in the database file.

LIST_SELECTED

Lists more details about the currently selected states.

BY_STATE...

Allows you to select states via <start> <increment> <end> syntax. (Convenient for models with very many states.)
BY_TIME ... Interpolating between states by defining time intervals.

Note that this "custom" panel can only apply to one model at a time. When multiple models are present it will be restricted to the window(s) of a single model.



How models with dissimilar states are animated

The examples above consider the case of only one model. Where two or more models exist it is possible that they will have a different number of states, at different time intervals.

Consider the following example of two models with dissimilar states:

Model 1 states

  1. T = 0.000
  2. T = 0.100
  3. T = 0.200
  4. T = 0.300
  5. T = 0.400
  6. T = 0.500
  7. T = 0.600
  8. T = 0.700
  9. T = 0.800
  10. T = 0.900
  11. T = 1.000

Model 2 states

  1. T = 0.000
  2. T = 0.200
  3. T = 0.400
  4. T = 0.600
  5. T = 0.800
  6. T = 1.000

The SELECT STATES menu in this example will now show how the states align by frame, as follows:

Animation sequence when models have dissimilar numbers of states

In this situation a model with fewer states waits until the one with more states has finished its sequence before looping back to zero. Using the example models above we now get:

Frame

Model 1 shows

  • T = 0.000
  • T = 0.100
  • T = 0.300
  • T = 0.400
  • T = 0.500
  • T = 0.600
  • T = 0.700
  • T = 0.800
  • T = 0.900
  • T = 1.000
  • T = 0.000 <= Loop back to state 1
  • T = 0.100
  • T = 0.200

Model 2 shows

  • T = 0.000
  • T = 0.200
  • T = 0.400
  • T = 0.600
  • T = 0.800
  • T = 1.000
  • T = 1.000 < = Hold last state
  • T = 1.000 < = Hold last state
  • T = 1.000 < = Hold last state
  • T = 1.000 < = Hold last state
  • T = 0.000 < = Loop back to state 1
  • T = 0.200
  • T = 0.400

Note that the "holding" operation in M2 is based on state number, not time.

This "hold last state" logic applies whether the dissimilar models are in the same or different windows. (This is a change of behaviour in D3PLOT V92, in previous versions there was no synchronisation between windows, and models were only "held" if they were in the same window.)

What the "clock" in a graphics window shows with two or more models in a window

Where there is only one model in a window then there is no ambiguity, and the clock at the bottom right shows the current state's time.

Where there are two or more models in a window then the clock shows:

  • max (Time of M1, Time of M2, ...)
  • If the times in the multiple models do not match within 0.1% then the clock's colour is inverted, typically black on white.

Synchronising animations by state across multiple windows

From D3PLOT 9.2 onwards, animation in multiple windows is aligned by state number. Thus all animations will start at state #1, and step forwards together through states #2, #3, .. #n. If a window has fewer states than one or more other windows it will wait at its last state until the window with the highest number of states has reached its end, then they will all loop back to state #1 together.

The STATE NUMBER slider will set the selected state for all active windows (here W1 .. W4 ), stopping animation if it is currently running.

If you subsequently restart animation with the master PLAY > button in this panel then all windows will commence from the same state and, if they have the same number of frames, will remain synchronised.


Synchronising animations by state when windows have different numbers of states

If they do not have the same number of states, or their states have different time intervals, animations across multiple windows may fall out of step in terms of "true" analysis time.

The remedy is to animate by explicit time interval, rather than by state number. This is done by interpolating "By Time" as follows:

Use ANIM > SET_STATES > Custom... to map the detailed state selection panel:

Then truncate the number of states in all windows so that they all have the same number of states. In this example it has been limited to 12states.

BY_TIME... Synchronising animation by time across dissimilar models

The "by state" animation behaviour above is the default, chosen because it is simple and minimises memory usage, but it has disadvantages when models with different state time intervals are processed.

It is possible to interpolate between states and so to animate by user-defined time interval, which has the side-effect of synchonising models with dissimilar state times. This is done by using the BY_TIME... option. (Interpolation can be used on single models as well, usually to give a smoother animation, although this is less common.)

You define

<start time>
<time interval>
<end time>

And D3PLOT will interpolate states as required to achieve the specified intervals.

Interpolation is performed using a simple linear factor on the two "real" states that bound the required time.

You can control animation on a per frame basis using the slider and associated controls at the top of the window, exactly as described in Basic Animation Controls above.

Controlling the display (statically) "by state".

To display the results (statically) at a "true" state while interpolating animations by time you need to revert to selecting the required state in the state control box.

This does not change animation back to "by state" mode, it simply reverts temporarily to showing the image at the time selected.

To revert to controlling animation by state, rather than by interpolated time, use any of the methods above to select states (eg ANIM > SET_STATES )

During interpolated animation by "time" the state box controls will always allow you to revert to showing a "true" state, not an interpolated one.

How interpolation by time affects output elsewhere in D3PLOT

Interpolation by time affects the following other parts of the code:

  • WRITE output will be given at the currently interpolated time.
  • DEFORM options that use nodal coordinates ( SHIFT_DEFORMED, FIX_NODE, REFERENCE_NODE(s) ) will use the interpolated coordinates of the relevant nodes.
  • CUT_SECTIONs that follow nodes will likewise use the interpolated coordinates.
  • UTILITIES, MEASURE by node will report geometry from interpolated nodal coordinates.

However note that interpolation by time does not affect the following:

  • XY_DATA will still only report points at the time values of "true" states.
Warning: Interpolated values should be treated with care

Linear interpolation tends to underestimate values between points on a smoothly varying, low frequency curve, and to give wildly inaccurate results on a curve which is high frequency relative to its sampling interval. This is acceptable for visual purposes during animation, but should be treated with caution if "written" values are to be extracted for subsequent use.

This is demonstrated by the following two plots:

Interpolation of a low frequency curve

In this case the green shaded areas show how the linearly interpolated results (red) underestimate the true values (black).


Interpolation of a high frequency curve

In this case, where the frequency of the curve is high relative to the sampling interval it is clear that linear interpolation (as well as the original points) will miss significant values.

Warning: Interpolation can be memory intensive

Interpolation by time requires more memory (to hold the interpolated data for display) which, combined with the memory required to hold multiple models, can result in machine memory becoming exhausted. It is better to make sure that models being compared have near identical output intervals, as this greatly simplifies post-processing.

Animation "frames" (as distinct from states)

The situation can arise in which the images to be animated are not explicit "states" in the database. This happens when:

  • Transient analyses are animated at interpolated times. (eg BY_TIME... as described above)
  • A single loadcase of a static (ex-Nastran) analysis is animated in modeshape form.
  • An eigenvalue (ex-Nike/Dyna or Nastran) modeshape is animated.

(For more on static and eigenvalue animation see Animating Static and Eigenvalue (Modal) Analyses )

To handle this D3PLOT has the concept of animation "frames":

  • Each image in an animation is a frame, regardless of its origin.
  • In the normal (not interpolated) transient case there is an exact equivalence between animated states and frames.
  • In other (interpolated, modeshape) cases there will be at least two frames in an animation, but usually many more.

How does this affect you? Not very much, you only need to know the following:

  • The slider and other positioning controls at the top of the graphics window operate on "frames" not explicit states, although in most cases these are the same.

    Therefore in cases where you are animating something other than ALL_STATES the effects of scrolling this slider (which navigates frames) and the state slider in the State Display box (which navigates states) will be different.

  • You cannot stop an animation at a frame that is interpolated between explicit states.

    D3PLOT will not permit you to operate statically on interpolated frames from a transient analysis. This is because such results are potentially misleading: linear interpolation through non-linear data is inherently inaccurate. When you STOP an interpolated animation the current (static) state will be the one with the time closest to when you stopped the animation.

  • Interpolated animations can be a bit slower than those at explicit states.

    Because you might choose a very large number of interpolated states D3PLOT does not store interpolated data for each frame, although interpolated coordinates are stored if space is available. Therefore there is a slight overhead as interpolated results are calculated "on the fly" during animation in these modes.