\chapter{\caps{ABAQUS} to \caps{EXODUS} Translation} \label{chap:trans}

The \caps{ABAQUS} output file format is described in
Appendix~\ref{appx:abaqus}, and the \caps{EXODUS} database format is
described in Appendix~\ref{appx:exodus}. This section describes how an
\caps{ABAQUS} output file is translated into the \caps{EXODUS} format.

The \caps{EXODUS} title is copied from the \caps{ABAQUS} header record
(1922). 

The coordinates of the original nodes are copied from the \caps{ABAQUS}
nodal coordinate records (1901). A node which does not have a coordinate
record is still written to the \caps{EXODUS} database.
The coordinates of the generated nodes
are derived as explained in Section~\ref{intro:nodal}.
The generated nodes are added to the end of
the original node list, so that the node numbers of the original nodes
do not change.

The element block for each element is determined as explained in
Section~\ref{intro:element}.
There are no attributes for any element blocks.

The connectivity of the original elements is read from the \caps{ABAQUS} element
connectivity records (1900). 
An element which does not have a connectivity record is deleted from the
\caps{EXODUS} database.
The connectivity for the new elements is derived as explained in Section~\ref{intro:element}.
The new elements replace the original
elements so the element may be renumbered. 
The elements are also renumbered to group the 
elements by element block.

The element order map lists the elements in the order they were input,
with the new elements replacing each original element.

There are no node sets and no side sets.

Two \caps{QA} records are written: the first contain information about
the \caps{ABAQUS} run that created the output file and the second
describes the \caps{\PROGRAM} run. There are no information records
written. 

The \caps{EXODUS} database requires names for the coordinates, the
element blocks, and the variables, which the \caps{ABAQUS} output file does
not supply. 
The coordinates are named ``\cmd{C1}'', ``\cmd{C2}'', and
``\cmd{C3}'' to be consistent with the variable names. 
The element blocks are named ``\cmd{TRUSS}'' for \caps{1D} blocks,
``\cmd{QUAD}'' for \caps{2D} blocks, and ``\cmd{HEX}'' for \caps{3D} blocks.
The variable naming is explained below.

The time for each time step is copied from the total time in the
\caps{ABAQUS} time record (2000) at the start of each time step. 

\notetome{Mention modal record 1980}

There are no history variables and no global variables.

The nodal variables at the original nodes are copied from the
\caps{ABAQUS} nodal variable records (101..1000). The variables at the
generated nodes are the average of the variables at the original nodes
that define the new nodes.

The element variables at the original elements are read from the
\caps{ABAQUS} element variable records (1..100). The variables for the
generated elements are read from the input variables at the appropriate
integration points. The \caps{ABAQUS} Manual has a diagram of the
positions of the integration points for each element type. If a
non-transformed element has more than one integration point, the
variables for the element are averaged over all the points.

\section{Variable Naming} \label{trans:varnam}

The variables that are to be written to the \caps{EXODUS} database are
found by scanning the entire \caps{ABAQUS} output file for all the variable
records. The variables that are selected may be limited with the
\cmd{EVARS} and \cmd{NVARS} commands. Each variable is assigned a name
and a position in the \caps{EXODUS} database variable array. It is
assumed that each time step has the same variables. If a variable is
missing from the \caps{ABAQUS} output file, the output variable is set to
zero.

The element and nodal variables are assigned names according to the
record types associated with the variables. These names can be changed
by the code sponsor.

Element variables may include a section number for shell type variables.
The section number is included in the name only if any section number of
the variable is greater than one. All shell sections from the
\caps{ABAQUS} file are stored. The element records that have been named
are:
\begin{center} \begin{tabular}{||c|l|l|l||}
\hline
\multicolumn{1}{||c}{Record} &
\multicolumn{1}{|c}{Name} &
\multicolumn{1}{|c}{Section} &
\multicolumn{1}{|c||}{Variable} \\
\hline
11       & \cmd{SIG\param{n}}      & \cmd{SIG\param{n}S\param{ss}}
& Stress components \\
12       & \cmd{INV\param{n}}      & \cmd{INV\param{n}S\param{ss}}
& Stress invariants \\
14       & \cmd{ENRGYDY\param{n}}  & \cmd{ENDY\param{n}S\param{ss}}
& Energy densities \\
21       & \cmd{EPS\param{n}}      & \cmd{EPS\param{n}S\param{ss}}
& Total strain components \\
other    & \cmd{R\param{rr}X\param{n}}
& \cmd{R\param{rr}X\param{n}S\param{ss}} & \\
\hline
\end{tabular} \end{center}
where \param{n} is the number of the variable in the record, and
\param{ss} is the section number, and \param{rr} is the record type.

The nodal records that have been named are:
\begin{center} \begin{tabular}{||c|l|l||}
\hline
\multicolumn{1}{||c}{Record} &
\multicolumn{1}{|c}{Name} &
\multicolumn{1}{|c||}{Variable} \\
\hline
51       & \cmd{SIG\param{n}}      & Stress components at nodes \\
55       & \cmd{EPS\param{n}}      & Plastic strains at nodes \\
101      & \cmd{DISP\param{n}}     & Displacements \\
102      & \cmd{VEL\param{n}}      & Velocities \\
103      & \cmd{ACCEL\param{n}}    & Accelerations \\
104      & \cmd{FORCE\param{n}}    & Residual/reaction forces \\
201      & \cmd{TEMP\param{n}}     & Temperatures \\
other    & \cmd{R\param{rrr}X\param{n}} & \\
\hline
\end{tabular} \end{center}
where \param{n} is the number of the variable in the record and
\param{rrr} is the record type.

Note that element record types 51 through 58 are actually nodal
variables (in lower versions).
%%%They have a special first variable named ``\cmd{SECT}'',
%%%which is the section point.
