vtpasquale / NASTRAN_CoFE

A finite element code for structural analysis. Written in MATLAB. Uses Nastran input format.
Other
56 stars 16 forks source link

Formalize superelement test cases #10

Closed vtpasquale closed 3 years ago

vtpasquale commented 5 years ago

Start by working with the existing superelement set test cases for cantilever bar. The following cases are tested:

Implement modal-frequency check cases. Duplicate for the truss216 structure.

vtpasquale commented 5 years ago

I spent some time considering options for creating/storing commercial Nastran verification data. This is what I found:

For now, the best choice is to keep the same process I've been using, which is reading output2 data using Femap and exporting csv data files from the Femap data table. The manual effort is done up front, which is annoying. An alternative choice would be to make punch files work.

vtpasquale commented 3 years ago

HDF5 format will be used for the verification data.

Part superelements have been implemented and are working for select test cases. The math for model reduction and model synthesis is not that hard - Guyan reduction and Hurty/Craig Bampton method have been implemented and work for simple test cases. Rubin method (CSET only, uncommon) and mixed boundary reduction (combined BSET and CSET, uncommon) have not been implemented yet.

The hardest parts with superelements are: (1) creating an architecture that supports them (this is effectively done), and (2) dealing with Nastran's input formatting for superelements. The latter may be, ironically, the hardest part. If you crack open a Nastran superelements user guide you will immediately realize that user has a plethora of options (in an enormously confusing way - not in a good way) to define their superelements. The absolute worst part is the semi-implicit nature in which the case control is handled across subcases and the set definitions dictate the dynamic reduction.

I think I've landed on a subset of features and options that work for me. However, if I could do it over again I wouldn't. I learned a lot, but these features add a layer of complexity to the architecture, and the implementation took a level of effort that is difficult to justify in retrospect.

Some superelement test cases are in the repository. More testing is needed and more documentation is needed to communicate the features and limitations to the user. I’m pausing superelement development for now and closing this specific task.