How to manipulate superelements with DMIGMOD in OptiStruct
Table of Contents
Models
The models used in this article can be found here: Models
Use Case
Superelements are a very useful technique to simplify complex models. There are several benefits to using them such as reducing computational cost and runtime, improved model management, and security.
To maximize the advantages of superelements, OptiStruct has the DMIGMOD feature which allows you to modify, manipulate, and move an existing H3D superelement within your residual model. A few application examples are the layout of battery packs, tyre-and-wheel assembly in a car, seats in a plane, and agricultural machinery sub-systems.
This article explores the use cases and applications of DMIGMOD.
Format and Definition
DMIGMOD is represented within OptiStruct by the following format:
Since it has multiple parameters and possible inputs, in this article we will highlight the most important ones. For a detailed description of each one of them, please refer to our documentation: https://help.altair.com/hwsolvers/os/topics/solvers/os/dmigmod_bulk_r.htm
- MTXNAME: Matrix name defined on ASSIGN,H3DDMIG
- SHF_____: All fields in the first line starting with the SHF prefix represent an ID shift for a particular entity of the superelement (grids, SPOINTs, elements, coordinate systems, …). This is useful if you need to simply renumber the superelement due to an ID conflict or if you plan to use the superelement several times in the residual model.
- GIDMAP + GIDn, GIDnA: Define mapped grid ID pairs. GIDMAP is to renumber the interface grid IDs such that they match the IDs used in the residual structure.
- RELOC + PAn, PBn: Use to reposition the superelement in the residual run, pointing grid ID pairs in the residual structure (PA1, PA2, PA3) and superelement (PB1, PB2, PB3). MIRROR flag can be used for reflecting the superelement.
- GRDTOL: Defines the tolerance settings between matching residual and superelement grids. The default tolerance setting is 1E-15, OptiStruct will error out if this value is violated.
Example and Validation
As an example, we will use the following model, which can be found at the beginning of this article:
The model consists of a modal analysis of a structure with four similar components attached to it that we will call instances (green, blue, purple, and gray components). These instances will be replaced by superelements with the DMIGMOD feature.
The process will be divided into 3 steps: running the full model as a reference, creating the superelement of only one instance (INST1), and running the reduced model with the superelement. To facilitate our job later, the interface nodes between the instances and the structure were renumbered as below:
Superelement Generation
In this step, we will create a superelement only for the green component (Instance 1). For that, there are no extra or special inputs necessary, as it is done in a traditional reduction. ASETs will be defined at interface nodes and CBN method will be used with CMSMETH load collector. MODEL card is created to recover results later in the residual run. Refer to 02_Superelement_INST1\superelement_inst1.fem in the attached zip for more details.
Residual Run with DMIGMOD
For the residual run, we will import the 01_Full_Mesh\baseline_full_mesh.fem and delete all four instances of the model:
The next step is to import the superelement generated of Instance 1 four times since we will replace all four instances with the same superelement. This can be done through the ASSIGN, H3DDMIG entry as follows:
Note that INST1, INST2, INST3, and INST4 are the matrix names that we will use to reference in DMIGMOD.
Now, INST1 superelement is the original one and does not require any modification. Using the DMIGMOD we will modify and reposition the other three superelements as follows:
For INST2:
The original nodes from the INST1 superelement need to be mapped with GIDMAP and then relocated with RELOC to INST2 position.
DMIGMOD | MTXNAME INST2 | SHFGID | SHFSPID | SHFSPID_F | SHFCID | SHFEID | SHFRID | |
+ | GIDMAP | GID1 101 | GID1A 201 | GID2 102 | GID2A 202 | GID3 103 | GID3A 203 |
|
+ | GIDMAP | GID4 104 | GID4A 204 |
|
|
|
|
|
+ | RELOC | PA1 201 | PA2 202 | PA3 203 | PB1 101 | PB2 102 | PB3 103 |
|
+ | GRDTOL | ERREXT WARN | TOLEXT 1E-1 |
|
|
|
|
|
For INST3 and INST4:
For the other two instances, the process is quite similar, adding only the MIRROR flag in RELOC line since we need to reflect them to the other side of the model.
DMIGMOD | MTXNAME INST3 | SHFGID | SHFSPID | SHFSPID_F | SHFCID | SHFEID | SHFRID | |
+ | GIDMAP | GID1 101 | GID1A 301 | GID2 102 | GID2A 302 | GID3 103 | GID3A 303 |
|
+ | GIDMAP | GID4 104 | GID4A 304 |
|
|
|
|
|
+ | RELOC | PA1 301 | PA2 302 | PA3 303 | PB1 101 | PB2 102 | PB3 103 | MIRROR |
+ | GRDTOL | ERREXT WARN | TOLEXT 1E-1 |
|
|
|
|
|
DMIGMOD | MTXNAME INST4 | SHFGID | SHFSPID | SHFSPID_F | SHFCID | SHFEID | SHFRID | |
+ | GIDMAP | GID1 101 | GID1A 401 | GID2 102 | GID2A 402 | GID3 103 | GID3A 403 |
|
+ | GIDMAP | GID4 104 | GID4A 404 |
|
|
|
|
|
+ | RELOC | PA1 301 | PA2 302 | PA3 303 | PB1 101 | PB2 102 | PB3 103 | MIRROR |
+ | GRDTOL | ERREXT WARN | TOLEXT 1E-1 |
|
|
|
|
|
In the deck, this will look like:
The solved model can be found in 03_Residual_DMIGMOD\residual_DMIGMOD.fem. In the .out file, it is possible to check if all superelements were successfully processed:
Validation with Full Mesh model
To validate the methodology and results, we can compare baseline_full_mesh.h3d with residual_DMIGMOD.h3d results.
Mode | Baseline Model - Full Mesh | Residual Model with DMIGMOD | Error (%) |
1 | 16.48 | 15.91 | 3.5% |
2 | 57.11 | 55.36 | 3.1% |
3 | 70.40 | 69.70 | 1.0% |
4 | 78.73 | 77.31 | 1.8% |
5 | 80.82 | 80.44 | 0.5% |
6 | 124.56 | 123.53 | 0.8% |
7 | 192.78 | 192.00 | 0.4% |
8 | 232.72 | 232.24 | 0.2% |
9 | 410.06 | 409.85 | 0.1% |
10 | 413.66 | 413.31 | 0.1% |
Useful links