# 2.2. Procedure and Region

Explicit dynamics analyses use a Presto procedure and region. The Presto procedure scope is nested within the SIERRA scope, and the Presto region scope is nested within the procedure scope (see Section 1.3 for more information about scope). To create the scopes for the Presto procedure and Presto region for an explicit dynamics analysis, use the following commands:

    BEGIN PRESTO PROCEDURE <string>procedure_name

      PRINT BANNER INTERVAL = <integer>print_banner_interval(MAX_INT)
      STOP AFTER INITIAL WRITE

      #
      # TIME CONTROL command block
      #
      BEGIN PRESTO REGION <string>region_name
        #
        # command blocks and command lines that appear in the
        # region scope
        #
      END [PRESTO REGION <string>region_name]
    END [PRESTO PROCEDURE <string>procedure_name]

The `PRINT BANNER INTERVAL` line command sets the number of output lines to print before re-printing the column headings. The default value is set to the maximum allowed integer value. This means that the banner will be printed to the log file one time by default.

This command will be ignored in a solution control analysis that contains a presto region. For that case use the `PRINT BANNER INTERVAL FOR SOLUTION CONTROL` line command within a `TIME CONTROL` command block. See Section 3.1.6 for use of the `PRINT BANNER INTERVAL FOR SOLUTION CONTROL` line command.

The `STOP AFTER INITIAL WRITE` line command ends the procedure after initialization. This tool can be useful in an analysis with restart.

Implicit analyses follow a similar structure, but use an Adagio procedure and region. The following example shows the structure of an input file for an implicit analysis:

    BEGIN ADAGIO PROCEDURE <string>procedure_name
      #
      # TIME CONTROL command block
      #
      BEGIN ADAGIO REGION <string>region_name
        #
        # command blocks and command lines that appear in the
        # region scope
        #
      END [ADAGIO REGION <string>region_name]
    END [ADAGIO PROCEDURE <string>region_name]

For both implicit and explicit analyses, the `TIME CONTROL` command block appears within the `PRESTO PROCEDURE` or `ADAGIO PROCEDURE` command block but outside of the `PRESTO REGION` or `ADAGIO REGION` command block. These three command blocks (procedure, time control, and region) are discussed below.

Many command blocks and command lines fall within the region scope. These command blocks and command lines are described in other sections of this document.

## 2.2.1. Procedure

The analysis time, from the initial time to the termination time, is controlled within the procedure scope defined by the `PRESTO PROCEDURE` or `ADAGIO PROCEDURE` command block. For explicit dynamic analyses, the command block begins with an input line of the form:

    BEGIN PRESTO PROCEDURE <string>procedure_name

and is terminated with an input line of the following form:

    END [PRESTO PROCEDURE <string>procedure_name]

Implicit analyses use an Adagio procedure, which starts with the following line:

    BEGIN ADAGIO PROCEDURE <string>procedure_name

and ends with the following line:

    END [ADAGIO PROCEDURE <string>procedure_name]

The string `procedure_name` is the name for the procedure.

## 2.2.2. Time Control

Within the procedure scope, there is a `TIME CONTROL` command block. This command block lets the user set the initial time and the termination time for an analysis. This block also allows the user to control the size of the time step. The time step is controlled in different ways for explicit and implicit analyses, as explained below.

### 2.2.2.1. Explicit Dynamic Time Control

When Sierra/SM is used to run explicit transient dynamics analyses, it must run at a time step that is less than the critical time for the problem at any given instant. Typically, this global critical time step is based on a critical time step estimate calculated for each element. With the `TIME CONTROL` command block, the user can set an initial time step, scale the element-based time step estimate, and control the growth of the element-based estimate for the critical time step.

In addition to the element-based method for estimating the critical time step, Sierra/SM offers other methods for estimating the critical time step. One approach for estimating the critical time step is to calculate the maximum eigenvalue for the model. Two methods are implemented for calculating the maximum eigenvalue: the Lanczos method and the power method. A second approach for estimating the critical time step is to use a node-based method. The command blocks for implementing these various methods (maximum eigenvalue calculation and node-based) are in the region scope. There is also a mass-scaling technique that will influence the magnitude of the critical time step. If you use the mass-scaling technique, you must use the node-based method to obtain a critical time step estimate.

The estimation of the time step is a key part of any explicit Sierra/SM analysis. Time step determination and control is discussed in detail in Section 3 of this document. The `TIME CONTROL` command block with its associated command lines are described in detail in Section 3. Consult Section 3 to determine how to specify command lines associated with the `TIME CONTROL` command block and how the `TIME CONTROL` command block fits into the overall scheme for time step control in explicit transient dynamics. Also see Section 3 to learn about the other methods for estimating the critical time step and the mass-scaling technique.

### 2.2.2.2. Implicit Time Control

When running implicit dynamic or quasistatic analyses with Sierra/SM a solver is used to find a converged solution at every time step. The time steps can be arbitrarily large, although errors due to time discretization are larger with larger time steps. In addition, for nonlinear problems, it is often more difficult to obtain a converged solution with large time steps. The time step size is controlled by the user, although Sierra/SM has a capability to optionally modify the time step based on the effort required by the nonlinear solver.

The `TIME CONTROL` block contains the basic commands used to control the time step size. To use adaptive time stepping, an `ADAPTIVE TIME STEPPING` command block is placed in the Adagio region scope. In addition, for all implicit analyses, commands to control the solver are required in the Adagio region scope. The details of the commands related to time stepping and the nonlinear solver are documented in Section 4.

## 2.2.3. Region

Individual time steps are controlled within the region scope. For explicit analyses, the region scope is defined by a `PRESTO REGION` command block that begins with an input line of the form

    BEGIN PRESTO REGION <string>region_name

and is terminated with an input line of the following form:

    END [PRESTO REGION <string>region_name]

Implicit analyses define the region scope using a `ADAGIO REGION` command block that begins with the following line:

    BEGIN ADAGIO REGION <string>region_name

and is terminated by the following line:

    END [ADAGIO REGION <string>region_name]

The string `region_name` is the name for this region.

The region, as indicated previously, determines what happens at each time step. In the procedure, we set the begin time and end time for the analysis. Time is incremented in the region. It is in the region where we set information about what occurs at various time steps. The output of results, for example, is set by command blocks in the region. If we want results output at certain times or certain steps in the analysis, this information is set in command blocks in the region. The region also contains command blocks for the boundary conditions. A boundary condition can have a time-varying component. The region determines the value of the component for the current time step.

Two of the major types of command blocks, those for results output and boundary conditions, have already been mentioned. Other major types of command blocks in the region are those for restart control and contact. The region is also where the user selects the analysis model (finite element mesh). For implicit analyses, the command blocks for the solver are in the region. These blocks are discussed in Section 4.

The region makes use of information in the procedure and the SIERRA scope. For example, the specific element type used for an element block in the analysis model is defined in the SIERRA scope. This information about the element type is collected into an analysis model. The region then references this analysis model. As another example, the boundary condition command blocks can reference a function. The function will be defined in the SIERRA scope.