# Output: Results

Command ElementThe ResOutput command defines options for output files to be generated by MotionSolve.

## Format

<ResOutput
{     mrf_file               = { "TRUE" | "FALSE" }
abf_file               = { "TRUE" | "FALSE" }
plt_file               = { "TRUE" | "FALSE" }
abf_unique_time        = { "FIRST" | "LAST"  | "ALL" }
plt_unique_time        = { "FIRST" | "LAST"  | "ALL" }
angle_type             = { "YPR" | "EULER_ANGLES" }
flex_vel_acc_output    = { "TRUE" | "FALSE" }
contact_gra_output     = { "TRUE" | "FALSE" }
cof_file               = { "TRUE" | "FALSE" }
capture_max_pd         = { "TRUE" | "FALSE" }
req_comment_only       = { "TRUE" | "FALSE" }
dzero                  = { "TRUE" | "FALSE" }
vzero                  = "real"
azero                  = "real"
fzero                  = "real"
}
/>

## Attributes

mrf_file
"TRUE" creates a MRF file, "FALSE" does not. When not specified, the default is TRUE.
abf_file
"TRUE" creates an ABF file, "FALSE" does not. When not specified, the default is "TRUE".
abf_unique_time
Controls which result is written to the ABF file when there are more than one result data at a single time step. 8
Choose from "FIRST", "LAST" or "ALL". The default is "ALL".
"FIRST"
The first of the two results is written to the ABF file.
"LAST"
The last of the two results is written to the ABF file. This is the default value.
"ALL"
Both results are written to the ABF file.
plt_file
"TRUE" creates a PLT file, "FALSE" does not. When not specified, the default is "FALSE".
plt_unique_time
Controls which result is written to the PLT file when there are more than one result data at a single time step. 8
Choose from "FIRST", "LAST" or "ALL". The default is LAST.
"FIRST"
The first of the two results is written to the PLT file.
"LAST"
The last of the two results is written to the PLT file. This is the default value.
"ALL"
Both results are written to the PLT file.
angle_type
Select from "EULER_ANGLES" or "YPR" (Yaw, pitch and roll angles). When not specified, the default is Body Fixed 3-1-3 "EULER_ANGLES".
flex_vel_acc_output
Select from "TRUE" or "FALSE" to enable or disable velocity and acceleration output for flexible bodies during a MotionSolve run. When not specified, the default is "FALSE".
dzero
Output displacements less than the specified value are set to be equal to zero. The specified value must be greater than zero. When not specified, dzero defaults to 1.0E-12.
vzero
Output velocities less than the specified value are set to be equal to zero. The specified value must be greater than zero. When not specified, vzero defaults to 1.0E-12.
azero
Output accelerations less than the specified value are set to be equal to zero. The specified value must be greater than zero. When not specified, azero defaults to 1.0E-12.
fzero
Output forces less than the specified value are set to be equal to zero. The specified value must be greater than zero. When not specified, fzero defaults to 1.0E-12.
contact_gra_output
Select from "TRUE" or "FALSE" to enable or disable contact force vector animation in the .h3d file. When not specified, the default is "TRUE".
cof_file
This parameter determines if the contact summary table information is written to the log file and a *.cof ASCII file on disk. Set this to "FALSE" to disable the contact overview table output. 9
The default is "TRUE"
capture_max_pd
When capture_max_pd is set to "TRUE", MotionSolve monitors and reports the maximum penetration for colliding bodies in between two output steps as defined by the print_interval. 10
The default for capture_max_pd is "FALSE"
req_comment_only
This flag controls how the output request names are written to the MRF and ABF files. 11

## Example

<ResOutput
mrf_file            = "TRUE"
abf_file            = "FALSE"
plt_file            = "FALSE"
angle type          = "YAW_PITCH_ROLL"
flex_vel_acc_output = "TRUE"
contact_gra_output  = "TRUE"
/>

1. MRF stands for MotionView Results File. This is a binary file. The solver post-processing module that creates various files such as the PLT file and the H3D output file uses an MRF file as input.
2. ABF stands for Altair Binary Format. This file format is optimized for fast plotting of very large data sets. The solver post-processing module generates it after a simulation is completed.
3. PLT stands for plot. It is an ASCII file. Its content is quite similar to the Adams REQ file. The main purpose of this ASCII file is to transfer loads from MotionSolve to the Load Summary utility, which then exports them to FEA software for fatigue analysis. The solver post-processing module generates it after a simulation is completed.

The contents of the PLT file may also be plotted in HyperGraph; however, we recommend that you use the ABF for plotting.

4. For any given contact definition, normal and tangential forces for each of the contact locations are optionally saved in the MotionSolve H3D output file. These forces can subsequently be viewed for each time frame in the simulation in HyperView. The contact_gra_output attribute enables this feature.
5. "EULER_ANGLES" in ANGLE_TYPE refers to the B 3 1 3 variation of Euler Angles.
6. "YPR" in ANGLE_TYPE refers to the B 3 2 1 variation of Euler Angles.
• Classical Mechanics, Herbert Goldstein, Addison-Wesley Pub. Co., 1980, ISBN 0201029189, 978020102918.
• Spacecraft Dynamics, Thomas R. Kane, Stanford University, Peter W. Likins, Lehigh University, David A. Levinson, Lockheed Palo Alto Research Laboratory. Copyright 2005 by the authors.
8. In certain cases, there may be more than one result available at a single data point. For example, consider the following simulation scenario:
<Simulate
analysis_type            = "Static"
end_time                 = "0.2"
num_step                 = "2"
/>
<Simulate
analysis_type            = "Static"
end_time                 = "0.4"
num_step                 = "2"
/>

In this case, at t=0.2s, there are two results - one from the last time step of the first quasi-static simulation ending at t=0.2s, and one from the first time step of the second quasi-static simulation starting at t=0.2s. The attributes plt_unique_time and abf_unique_time allow you to control which data is written to the PLT and ABF file, respectively.

Note: The MRF file, by default, always contains all the output data. For example, for the case above, it contains outputs from both the simulations at t=0.2s.
9. If the cof_file attribute is not set to "FALSE", MotionSolve writes out a contact overview table in the log file as well as to the disk in the form of a *.cof file.
In the contact overview table, for each contact force element, the following are listed:
• I and J graphic IDs
• Maximum penetration depth along with the time of maximum penetration
• Maximum contact force magnitude along with the time at which the maximum contact force was calculated

A sample contact overview table is shown here:

Contact Graphics
----------------
90000

"Model-Box 1"
90001

"Model-Sphere 1"
90021

"Model-Box 0"
Contact Overview (sorted by MAX_PD / MAX_FORCE)
-------------------------------------------------------------------------------
CONTACT    I_GRAPHIC  J_GRAPHIC  MAX_PD    (TIME)       MAX_FORCE (TIME)
-------------------------------------------------------------------------------
301001     90000      90021      9.994E-01 (1.798E-01)  7.429E+02 (1.798E-01)
301001     90000      90021      9.994E-01 (1.798E-01)  7.429E+02 (1.798E-01)
301001     90001      90021      6.844E-01 (4.192E-02)  4.289E+02 (4.192E-02)
301001     90001      90021      6.844E-01 (4.192E-02)  4.289E+02 (4.192E-02)

The *.cof is an ASCII file that contains, in addition to the above, the following information:

• Contact force element label and full label
• I and J graphic IDs labels and full labels
• Unit of length
• Unit of force
• Time the solver spent on computing each contact
10. MotionSolve writes result information to the MRF, PLT or ABF files at pre-defined output steps as specified by the print_interval, print_increment or other attributes. This means that the contact forces, velocities etc. will be reported at fixed intervals. To capture the contact dynamics in between this fixed interval, you have two choices:
• First, you can increase the frequency at which MotionSolve reports results from the simulation. However, if the output step size becomes smaller than the solver step size (hmax), the simulation will slow down, since the solver will now run at a maximum step size equal to the output step size. Additionally, running at a finer step size will generate more output data which may lead to an increase in your output file size.
• Alternatively, you may set capture_max_pd to "TRUE". With this, MotionSolve does the following:
• Between two consecutive output steps t1 and t2, monitor penetrations between all pairs of colliding bodies at all converged steps. Using this information, a maximum penetration for each pair of colliding bodies can be computed between t1 and t2
• If this maximum penetration is larger than the penetration computed at both t1 and t2, then add an additional output step in between t1 and t2, say t' such that t1 < t' < t2. This output frame at t' will contain information about the system's states at the time when the maximum penetration occurred between t1 and t2. If this penetration is smaller than the penetrations computed at either t1 or t2, then no extra output step is written to the result files.
Note: All non-contact related state information (such as Body information in the MRF, Post Requests in the ABF and PLT, etc.) are also written to the result files at the extra output time, if any.
• Thus by setting capture_max_pd = "TRUE", you can obtain additional information about the contact events in your model without reducing the output step size. This is useful when you do not know a-priori when the contact event will occur in your model.

Consider the simple example of a ball falling on the ground under gravity as illustrated below.

The output step is set to 0.01s, maximum solver step size is 0.001s and the model is simulated for 1s. Default parameters are used for the contact force definitions. Meshed representations are used for both geometries. The ball is expected to come into contact with the ground and bounce a few times before coming to rest on the ground.

The maximum penetration depth between the two bodies is monitored as an output signal. Figure 2 shows the maximum penetration depth plotted against time with capture_max_pd set to "TRUE" and "FALSE".

Zooming in on the first contact at ~0.2s (Figure 3), it can be seen that there is an additional output step at t=0.198s (blue curve). The maximum penetration depth (PD) at t=0.198s is greater than at t=0.19s or t=0.20s, which are the output steps. The same scenario is also observed at the second contact point, at t=~0.38s.

With capture_max_pd set to "FALSE" (red curve), these events when maximum penetration occurs will be omitted from the results as can be seen in the plots above.

11. By default, MotionSolve prefixes all the names of the output requests in the model with a three letter keyword, followed by the request ID. Since the request ID can change if the MotionView model is modified, this can lead to inefficiencies in the post-processing part of the design cycle. By setting req_comment_only to TRUE, MotionSolve does not write the request prefix to the MRF and ABF files. By doing this, the request names remain constant while plotting them in HyperGraph even if modifications are made to the MotionView model that alter the request IDs. As an example, see below:
<Post_Request
id                  = "70000005"
comment             = "rg1(Output Body1)"
type                = "MARKER_FORCE"
i_marker_id         = "30102080"
j_marker_id         = "30101080"
ref_marker_id       = "30101010"
/>