\chapter{Introduction}

The \numbers\ program is a shell program which reads and stores data
from a finite element model described in the \exo\ database
format~\cite{EXODUS}.
Within this shell program are several utility routines which calculate
information about the finite element model.  The utilities currently
implemented in \numbers\ allow the analyst to determine:
\begin{itemize}
\item the volume and coordinate limits of each of the materials in the model;
\item the mass properties of the model;
\item the minimum, maximum, and average element volumes for each material;
\item the volume and change in volume of a cavity;
\item the nodes or elements that are within a specified distance from a
user-defined point, line, or plane;
\item an estimate of the explicit central-difference timestep for each
material;
\item the validity of contact surfaces or slidelines, that is, whether
two surfaces overlap at any point; and
\item the distance between two surfaces.
\end{itemize}

These utilities have been developed to automate and simplify some of the
tasks normally performed during an analysis.  The \numbers\ program
reads the finite element model and results from a file written in the
\exo\ binary file format which is used in the Engineering
Analysis Department at \SNLA.

The capabilities of \numbers\ have evolved during the past eighteen
months.  Originally, it was written solely to calculate the mass
properties of a body.  However, once the basic function of reading and
storing an \exo\ database was in place, it was realized that several
tasks that were usually performed manually could easily be implemented
in \numbers.  Tasks such as determining node and element numbers,
verifying contact surfaces, and others, are now performed more
efficiently and, hopefully, more accurately since the code performs the
repetitive calculations automatically.

Although the original reason for developing \numbers\ was to simply
calculate mass properties, the code now functions as an \exo\ shell that
can be easily extended by analysts who require specific calculations or
need to create information not currently available.  The analyst can
simply write a subroutine to perform their function, and insert it into
\numbers\ without worrying about the details of reading an \exo\
database and providing a user interface. For most cases, adding a
function to \numbers\ requires only writing the function subroutine,
adding the command name to the table of valid commands, and adding a few
statements to call the routine.

The remainder of this report is organized as follows.
Chapter~\ref{c:numerics} describes the numerical algorithms used by the
utility functions in \numbers.  A list of the commands and the command
syntax are presented in Chapter~\ref{c:commands}.
Chapter~\ref{c:examples} gives several examples of the use of the
utilities, and Chapter~\ref{c:conclude} concludes the report.  Three
appendixes are included.  Appendix~\ref{a:cmdsum} is a summary of the
command syntax for each of the commands.

The descriptions in the following chapters assume that the reader is
familiar with the \gen\ and \exo\ file formats and with the analysis,
preprocessing, and postprocessing codes used in the Engineering Analysis
Department at \SNLA.  Readers not familiar with these can check the
references at the end of this report for a list of the documentation for
these codes and file formats.
