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
- 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 13th 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 some point of a successful nonlinear analysis and append new
nonlinear subcases in continuation.
Example:
If a 3-subcase model with RESTARTW completed successfully, but now you want to replace subcase 3 with a different subcase and also add a new subcase 4. Then you can revise the 3-subcase model by adding subcase 4 and make required changes to subcase 3.
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 (beginning of subcase 3) and both revised 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 13th increment of Subcase 2. If you want to restart the run, but now you want to discard the rest of the load history of subcase 2, from the restart point, then use the TERMI option.
If the increment at which the subcase 2 was terminated is increment 13, use:RESTARTR = TERMI,originaljob_sub2_inc0013
This will abandon the remaining load history from the restarting point for subcase 2, and subcase 3 will now append to the restarting point. So subcase 3 is now a different loading path.
When TERMI is specified, OptiStruct will abandon the remaining load history from the restarting point (original run). And then 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].
If the run gets terminated at 1.3s of 2nd subcase, with TERMI, the remaining load history from [1.3s – 2s] for subcase 2, will be abandoned. And subcase 3 will now append to the restarting point (1.3s) and then [1.3 – 2.3s] is the range of total time for the restarted subcase 3. This subcase 3 is now essentially a different loading path (with original loading of subcase 3, but starting from nonlinear state/restarting point of 1.3s).
If TERMI is not specified, OptiStruct will continue to finish [1.3 – 2s] of subcase 2 and then continue to [2 – 3s] of subcase 3.
The restart analyses with and without TERMI generally lead to different loading paths and different results.
- 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) |
- In an original job with RESTARTW command defined in the input deck, OptiStruct writes one restart model information file (*.rmd) 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) and a restart analysis information file (*.rnl) to retrieve the data needed for restart.
- 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.).
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.