Handling Multiple Models and Multiple Windows
Handling multiple models and multiple windows
Where multiple windows exist on a single model there is no possibility for conflicts between windows when commands are applied. However when multiple models have been read in lots of potential problems arise, to name just a few:
- Models may have different numbers of states, at different times.
- Some models may contain data components that don't appear in others
- Models may contain different types of element
D3PLOT has to protect itself against internal conflicts arising from attempts to impose invalid settings on windows, and also has to allow the user to manipulate multiple model settings in a simple way. So the following rules apply where multiple, dissimilar models are current:
- Where a panel would apply an invalid setting to a model no action is taken. For example turning on spring labels in a model that contains no springs will have no effect. Note that the feedback in a menu panel is generally for the first active window, so to see the status of the 2nd or subsequent models it may be necessary to adjust the tabs so that the model in question is the "first active" one for that panel.
- The slider will show the highest state number of all the current models. If it is set to a state that doesn't exist in a given model then no action will occur in the windows of that model. Selecting state #n with this slider will make state #n in each window current, regardless of whether or not the times of this state in different models match.
- Contexts implying selection, e.g. , , , will force you to specify which model you plan to select from. The tabs in that panel which apply to other models will be deselected, and any attempt to select them will fail with "mixed model" error messages. Therefore you cannot pick or select from multiple models at the same time.
How models with dissimilar states are animated
By default models are animated in numerical state sequence, with no attempt being made to synchronise models or windows by time. A summary of behaviour is:
-
Multiple models in separate windows
Each window animates in step from frames 1 to <n>, but no window will "loop back" to frame 1 until the window with the greatest number of frames has finished. Therefore those windows with fewer frames will wait at the end of each cycle for the window with longest sequence to complete. This "stepping together" by frame does not take into account the clock time of each frame, so windows that are "in step" by frame number will not necessarily be synchronised in time.
-
Multiple models in the same window:
Each model in the window starts animating at state #1, and continues until the last state in that model is encountered. If one model has fewer states than another one then it remains at its last state until the other model reaches its last state. Then all models start in synchronisation at state #1 again. Again, synchronisation is "by frame" not "by time", so frames in different models may not have the same analysis time.
-
Synchronising models in time.
It is possible to interpolate between states, and by stipulating a fixed time interval you can synchronise animation of multiple models in time. This can be done both for models within a window, and for models across multiple windows.
This topic is covered in more detail under the command, which describes how to select what is to be animated.