# Requirements for Restarting

OptiStruct currently supports restart functionality for Nonlinear Analysis and Optimization. The following sections provide specific information regarding the procedure to implement restart.

## Restart of Nonlinear Analysis

- Traditional nonlinear restart
- Enhanced nonlinear restart (RMDX option on RESTARTW)

- Restart from the last point at which the initial run was
interrupted (for example, due to a power outage).
Example:

If a 3-subcase model with RESTARTW was interrupted due to power outage during the solution of subcase 2, after the 13^{th}increment, the following can be added to the model to restart it.`RESTARTR = originaljob_sub2_inc0013`

This will restart the model from the interruption point (end of increment 13), and the load history of Subcase 2 from increment 13 will be continued. - Restart from the end of a successful nonlinear analysis and append new
nonlinear subcases in continuation.
Example:

If a 2-subcase model with RESTARTW completed successfully, but now you want to add new subcases 3 and 4 for continuation of the loading path. The new subcases 3 and 4 are in the same chain of subcase continuation.

If the final increment of subcase 2 is increment 21, use:`RESTARTR = originaljob_sub2_inc0021`

This will restart the model from the end of subcase 2, and new subcase 3 and new subcase 4 will be run.Example:

If a 2-subcase model with RESTARTW completed successfully, but now you want to add new subcases 3 and 4 for continuation of the loading path. The new subcases 3 and 4 are in different chains of subcase continuation, but both continue from subcase 2.

If the final increment of subcase 2 is increment 21, use:`RESTARTR = originaljob_sub2_inc0021`

This will restart the model from the end of subcase 2, and new subcase 3 and new subcase 4 will be run. - Restart from some point of a nonlinear analysis, truncate the nonlinear
subcase at that point and append new nonlinear subcases in continuation.
(This can be accomplished using the TERMI option on
RESTARTR Bulk Data Entry).
Example:

If a 3-subcase model with RESTARTW was interrupted after the 13

^{th}increment of Subcase 2. If you want to restart the run, and discard the rest of the load history of subcase 2, and its subsequent subcase 3, from the restart point, use the TERMI option.If subcase 2 terminated at increment 13, use:`RESTARTR = TERMI,originaljob_sub2_inc0013`

This will abandon the remaining load history from the restarting point for subcase 2, and you can append revised subcase 3 and new subcase 4 to the restarting point for a revised loading path.

When TERMI is specified, OptiStruct will abandon the remaining load history from the restarting point (original run) and append new loading history continuing from the restarting point in the restart run.For the 3-subcase example, assuming the load histories (in total time) are:

1st Subcase → [0 – 1s], 2nd Subcase → [1 – 2s] and 3rd Subcase → [2 – 3s], the revised 3rd Subcase → [1.3 - 2.3s] and the new 4th Subcase → [2.3 – 3.3s].

If the run gets terminated at 1.3s of 2

^{nd}subcase, with TERMI, the remaining load history from [1.3s – 3s] for subcases 2 and 3 will be abandoned. The revised subcase 3 and new subcase 4 will now append to the restarting point (1.3s at subcase 2) for a revised loading path. - Restart from some point of a successful nonlinear analysis and append new
linear
STATSUB(BUCKLING/PRELOAD/BRAKE)
subcases. The linear
STATSUB(BUCKLING/PRELOAD/BRAKE)
subcases should reference the ending nonlinear subcase.
Example:

If a 3-subcase model with RESTARTW completed successfully, but now you want to add a new subcase 4, which is a Linear subcase with STATSUB(BUCKLING/PRELOAD/BRAKE).

If the final increment of subcase 3 is increment 25, use:`RESTARTR = originaljob_sub3_inc0025`

This will restart the model from the end of subcase 3 (beginning of subcase 4) and the new subcase 4 (linear subcase) will be run.Note: In this case, the STATSUB entry in linear subcase 4 should point to the final nonlinear subcase in the chain (which is subcase 3 for this example).

Run | Input Files | Output Files |
---|---|---|

Run 1 (Initial run) |
Run1.fem (With RESTARTW) |
Run1.out, Run1.h3d
and so on. Run1.rmd (model information file) Run1_subi_incj.rnl (analysis information file) |

Run 2 (Restarted from Run 1) |
Run2.fem (With RESTARTR and RESTARTW) Run1.rmd Run1_subi_incj.rnl |
Run2.out, Run2.h3d
and so on. Run2.rmd (model information file) Run2_subi_incj.rnl (analysis information file) |

Run 3 (Restarted from Run 2) |
Run3.fem (With RESTARTR and RESTARTW) Run2.rmd Run2_subi_incj.rnl |
Run3.out, Run3.h3d
and so on. Run3.rmd (model information file) Run3_subi_incj.rnl (analysis information file) |

Run | Input Files | Output Files |
---|---|---|

Run 1 (Initial run) |
Run1.fem (With RESTARTW) |
Run1.out, Run1.h3d
and so on. Run1.rmdx (full model information file) Run1_subi_incj.rnl (analysis information file) |

Run 2 (Restarted from Run 1) |
Run2.fem (With RESTARTR and RESTARTW) Run1.rmdx Run1_subi_incj.rnl |
Run2.out, Run2.h3d
and so on. Run2.rmdx (model information file) Run2_subi_incj.rnl (analysis information file) |

Run 3 (Restarted from Run 2) |
Run3.fem (With RESTARTR and RESTARTW) Run2.rmdx Run2_subi_incj.rnl |
Run3.out, Run3.h3d
and so on. Run3.rmdx (model information file) Run3_subi_incj.rnl (analysis information file) |

- In an original job with RESTARTW command defined in the input deck, OptiStruct writes one restart model information file (*.rmd or *.rmdx) and one or more restart analysis information files (*.rnl) for the nonlinear analysis increments.
- In a restart job with RESTARTR command defined in the input deck, OptiStruct reads a restart model information file (*.rmd or *.rmdx) and a restart analysis information file (*.rnl) to retrieve the data needed for restart.

- Traditional Restart
- The input decks of the original and restart runs should be identical except for the RESTARTR and RESTARTW commands. For the other use cases, the input deck of the restart run should include all the fully/partially analyzed nonlinear subcases and all the Bulk Data Entries in the input deck of the original run, and, definitions of the inherited nonlinear subcases and Bulk cards should not change; it may include new nonlinear subcases or linear STATSUB(BUCKLING/PRELOAD/BRAKE) subcases; and it may include new Bulk Data Entries listed below.
- Enhanced Restart
- The input decks of the restart run should only contain RESTARTR entry as the rest of the model is present in the .rmdx file. For the other use cases, the input deck of the restart run should include, along with RESTARTR entry, the new nonlinear subcases or linear STATSUB(BUCKLING/PRELOAD/BRAKE) subcases; and it may include new Bulk Data Entries listed below.

- SPCADD, SPC, SPC1
- LOADADD, FORCE
- DLOAD, TLOAD1, TLOAD2, RLOAD1, RLOAD2, DAREA
- NLPARM, NLADAPT, NLMON, NLOUT, TSTEPNL, TSTEP, SOLVTYP
- CNTSTB, MODCHG
- EIGRL, EIGRA, EIGRC
- FREQ, FREQ2
- TABLED1, TABLED2, TABLED3, TABLED4

## Restart of Optimization

It is possible to restart an OptiStruct optimization by using the
command line option `-restart`

(Run Options), by adding the
I/O Options Entry RESTART to the input file, or from the
OptiStruct panel in HyperMesh.

To restart an optimization, you will need information about the final iteration of the previous optimization run. This information is stored in the .sh file.

The `DESMAX` entry on the DOPTPRM Bulk Data Entry, in the
.fem file, specifies the maximum number of additional
iterations. To perform an analysis on the optimized structure, restart with
`DESMAX` set to 0. If
`DESMAX` is not defined, the default value of
`DESMAX` is assumed (30 iterations is the default value for
`DESMAX` unless topology manufacturing constraints are used, in
which case the default is 80 iterations).

- The number of design variables or design elements cannot be changed.
- It is invalid to restart with minimum member size control removed, if it was present in the original run.
- It is invalid to restart with checkerboard control turned on, if it was not activated in the original run. It is, however, acceptable to deactivate checkerboard control in the restart, if it was activated in the original run.
- It is invalid to restart with manufacturing constraints that differ from those of the original run.

The purpose of the restart functionality is for restarting with unconverged optimization runs or optimization runs that were terminated before completion (due to a power outage, machine crash, etc.).

Optimization restart is also supported for Level Set Topology Optimization.

Output files from a restart run are appended with the extension _rst#, where # is a 3 digit number indicating the starting iteration for the restart run. For example, filename_rst030.out is the .out file created when restarting filename.fem from iteration 30.

Iterations for the restart are numbered starting with the iteration number in the .sh file (the last iteration from the previous run).

You may manually append new .dens, .disp, and .strs files to old ones and post-process the combined files.

## Advanced Restart for Topology Optimization

You may require to restart a topology optimization from the previous optimization run, but with modified model data, for example – refining mesh in design domain, modifying the design space, changing the manufacturing constraints, and so on. Restarting topology optimization with modified mesh or configuration can be accomplished via the advanced restart option.

- DOPTPRM,TOPRST,ADVNOR option allows the restart run with modified mesh and/or configuration, while carrying over the penalty from the original run.
- DOPTPRM,TOPRST,ADVRES option allows the restart run with modified mesh and/or configuration with reset penalty.