SubModel in OptiStruct - Global/Local Zooming


Submodel technique is a powerful tool that can be used in many cases for structural models.
Submodel (or Local model) is based on using the displacements from a Global model, and map these to a small part of the original model, acting as boundary conditions for this new model.
The advantages of this approach are:
- after running the global model (with a coarse mesh), one can find out where the structure is more stressed, and then run only that region again with a finer mesh for a better representation;
- using submodel you can reuse a previous result (H3D file) and it is not necessary to re-run the whole model;
- multiple loadcases are supported;
- this can be used for later fatigue assessment, having a better representation on welds or other more detailed connections, that usually are not detailed in the global model;
The attached PDF file shows what are the steps for running a global-local model.
Also an example model is attached in the .zip file.
It used basically 3 main cards:
ASSIGN >> to load the initial global model H3D file
IMPORT(SUB = X) >> import the subcases from global to local
SPC (M) >> special SPC card to map the displacements (and optionally rotations) from the global model to the new local model.
An example with a 3 point bending plate.
Running first the global model (left), with the whole model, and then, later on, using the global H3D file as an input for the Local analysis (right).
Find more posts tagged with
Comments

Updating:
In HM/HW 2020.1 the SPC(M) option is already available and it is mcuh easier to create the submodel setup, with no need of editing the solver deck outside of HyperMesh. (see the updated attachment)

Thanks you for sharing this.
Example and illustrations are very helpful to understand the solution.

I don't understand what I supposed to do at the beginning. The part of the model should be remeshed and rest of the model should be deleted? Or what exactly?


I don't understand what I supposed to do at the beginning. The part of the model should be remeshed and rest of the model should be deleted? Or what exactly?
1) run your global model, and generate your H3D file
2) create the mesh only of the part that you want to study in detail (delete all the rest)
3) create the appropriate SPCM and IMPORT cards
4) run your submodel
Hope this clarifies.
My use case is where I have a large frame structure which I am simulating in the field scenario subjected various loads on the structure. For this I am doing inertia relief analysis. I am interested in doing the submodelling for local structure for quick iteration for mapping the stresses from global model.
Is the Option Initial stress works for Linear models in Optistruct. If yes I can connect with you by creating a support case on altair and explain my work flow



This should work as well for INREL condition. Look here a test. Shell beam with central force under bending and Inertia Relief. Displacements are mapped from the global model to the local model at the boundaries, and stresses match well.
This second test applies only a force at the beam end, similar to a cantilever beam,
but with no SPC. Then from global, I took the displacements and mapped into the local submodel. No force applied in the submodel, only enforced displacements coming from the global model h3d file.
Running your NAstran model in OptiStruct should be pretty straightforward.


Hello Adriano
Thanks for answering my Questions. Submodels are definitely are reducing the time and for quick design changes its helpful and also for locally refines the mesh and mapping the global boundaries to predict accuracy state
I have one last question . I took the Beam problem , solved as is the Global model. Instead of taking your submodel I took the part of the global model and solved for submodel as shown here. I also attached files for reference. Why the stress difference is observed when the model has same mesh in both models and even though interpolation displacement didn't change . I understand stress is more sensitive to mesh than displacement

Why the stress difference is observed in Global model though Submodel is dervied from global model in this case ?
i've opened your results and just adjusted the legend to be the exact same on both global and submodel. I've set maximum and mininum at the legends.
Submodel usually presents a higher local maximum value at the boundaries, related to mapping. So usually I would recommend ignoring stresses at the ends (SPC'd).
I'd say that althought they don't match identically (maybe even because we're not using rotations here) it is pretty decent.


@Adriano_Koga Please let me know ASSIGN ,OP2,1000,'Globl.op2' works too instead of H3DRES ???
is there any syntax for OP2.
In OptiStruct, the ASSIGN,OP2,... statement does it support importing results for submodeling ?
this is not supported as per the documentaiton > https://help.altair.com/hwsolvers/os/topics/solvers/os/assign_io_r.htm?zoom_highlight=assign
It might work if you convert the OP2 result file into H3D format by using the HVTRANS utility.
Never tested, but maybe it works..
thank you s much , I am looking for ASSIGN wrt OP2. The reason is From Global Model I can generate OP2/H3D output file.
When I perform Submodel, I must use H3D as the Input file as you mentioned ASSIGN doesn't support OP2.
From Submodel the output can be H3D/OP2. This output file has issues in reading other Fatigue solvers intermediate step we are reading the results from Global model with H3D.
I think there is a datablock issue here.
I can still read a Global Model Op2 in any fatigue solvers, but not the one from submodel
Really cool example, thanks for sharing!
Just a tip for anyone that will explore this feature (it's on your pdf file but I've had trouble in the past). If you have more than one Load Step you need to create one SPC load collector for each load step that will be analyzed with this approach.