ExtFEMIO
C++ IO support for various FEM exchange file formats (NASTRAN BDF, DNV Sestra FEM)
Install / Use
/learn @dnvgl/ExtFEMIOREADME
Table of Contents
<a id="org483e2ff"></a>
Supported FEM file formats
Not all functionality defined for the exchange file formats is supported. The supported subset is currently mainly defined by the functionality supported in GLFrame rspt. the BMF file format.
More detailed information on supported functionality can be found in
the according directories in the docs subdirectory.
<a id="orga70a97c"></a>
Unit system considerations
Unit systems used by the different systems are:
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> <colgroup> <col class="org-left" /> <col class="org-left" /> <col class="org-left" /> <col class="org-left" /> </colgroup> <thead> <tr> <th scope="col" class="org-left">Dimension \\ System</th> <th scope="col" class="org-left">Poseidon</th> <th scope="col" class="org-left">Nastran</th> <th scope="col" class="org-left">Sesam / GeniE</th> </tr> </thead> <tbody> <tr> <td class="org-left">L (Length Unit)</td> <td class="org-left">[m] for nodes</td> <td class="org-left">[m]</td> <td class="org-left">[m]</td> </tr> <tr> <td class="org-left"> </td> <td class="org-left">[mm] for plate thicknesses</td> <td class="org-left"> </td> <td class="org-left"> </td> </tr> <tr> <td class="org-left">M (Mass Unit)</td> <td class="org-left">[t]</td> <td class="org-left">[t]</td> <td class="org-left">[t]</td> </tr> <tr> <td class="org-left">ML/T² Force Unit)</td> <td class="org-left">[kN]</td> <td class="org-left">[kN]</td> <td class="org-left">[kN]</td> </tr> </tbody> </table>Yield stress is stored in [kN/m²] in Sesam / GeniE, but [N/mm²] in POSEIDON.
<a id="orge4b4d58"></a>
NASTRAN Bulk Data Format (BDF)
<a id="orgc55002e"></a>
BDF Cards supported
<a id="org5b9f41f"></a>
Bulk Data
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> <colgroup> <col class="org-left" /> <col class="org-left" /> <col class="org-left" /> <col class="org-left" /> <col class="org-left" /> </colgroup> <thead> <tr> <th scope="col" class="org-left"> </th> <th scope="col" class="org-left">**Name**</th> <th scope="col" class="org-left">**Description**</th> <th scope="col" class="org-left">**Read**</th> <th scope="col" class="org-left">**Write**</th> </tr> </thead> <tbody> <tr> <td class="org-left">General</td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> </tr> <tr> <td class="org-left"> </td> <td class="org-left">`MAT1`</td> <td class="org-left">Material definition</td> <td class="org-left">✓</td> <td class="org-left">✓</td> </tr> <tr> <td class="org-left"> </td> <td class="org-left">`MAT2`</td> <td class="org-left">Shell Element Anisotropic Material Property Definition</td> <td class="org-left">✓</td> <td class="org-left">✓</td> </tr> <tr> <td class="org-left"> </td> <td class="org-left">`GRID`</td> <td class="org-left">Grid nodes</td> <td class="org-left">✓</td> <td class="org-left">✓</td> </tr> </tbody> <tbody> <tr> <td class="org-left">Elements</td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> </tr> <tr> <td class="org-left"> </td> <td class="org-left">`CTRIA3`</td> <td class="org-left">3 node shaped shell elements</td> <td class="org-left">✓</td> <td class="org-left">✓</td> </tr> <tr> <td class="org-left"> </td> <td class="org-left">`CQUAD4`</td> <td class="org-left">4 node shaped shell elements</td> <td class="org-left">✓</td> <td class="org-left">✓</td> </tr> <tr> <td class="org-left"> </td> <td class="org-left">`CBEAM`</td> <td class="org-left">Complex beams <sup><a id="fnr.1" class="footref" href="#fn.1">1</a></sup></td> <td class="org-left">✓</td> <td class="org-left">✓</td> </tr> <tr> <td class="org-left"> </td> <td class="org-left">`CBAR`</td> <td class="org-left">Simple beams</td> <td class="org-left">✓</td> <td class="org-left">✓</td> </tr> <tr> <td class="org-left"> </td> <td class="org-left">`CROD`</td> <td class="org-left">Trusses</td> <td class="org-left">✓</td> <td class="org-left">✓</td> </tr> <tr> <td class="org-left"> </td> <td class="org-left">`CBUSH`</td> <td class="org-left">Generalized Spring-and-Damper Connection</td> <td class="org-left">✗</td> <td class="org-left">✓</td> </tr> </tbody> <tbody> <tr> <td class="org-left">Element</td> <td class="org-left">properties</td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> </tr> <tr> <td class="org-left"> </td> <td class="org-left">`PSHELL`</td> <td class="org-left">Properties for `CTRIA3`, and `CQUAD4`</td> <td class="org-left">✓</td> <td class="org-left">✓</td> </tr> <tr> <td class="org-left"> </td> <td class="org-left">`PBEAM`</td> <td class="org-left">Integral properties for `CBEAM`</td> <td class="org-left">✓</td> <td class="org-left">✓</td> </tr> <tr> <td class="org-left"> </td> <td class="org-left">`PBEAML`</td> <td class="org-left">Properties for `CBEAM` describing cross section</td> <td class="org-left">✓</td> <td class="org-left">✓</td> </tr> <tr> <td class="org-left"> </td> <td class="org-left">`PBAR`</td> <td class="org-left">Integral properties for `CBAR`</td> <td class="org-left">✓</td> <td class="org-left">✓</td> </tr> <tr> <td class="org-left"> </td> <td class="org-left">`PBARL`</td> <td class="org-left">Properties for `CBAR` describing cross section</td> <td class="org-left">✓</td> <td class="org-left">✓</td> </tr> <tr> <td class="org-left"> </td> <td class="org-left">`PROD`</td> <td class="org-left">Properties for `CROD`</td> <td class="org-left">✓</td> <td class="org-left">✓</td> </tr> <tr> <td class="org-left"> </td> <td class="org-left">`PBUSH`</td> <td class="org-left">Generalized Spring-and-Damper Property</td> <td class="org-left">✗</td> <td class="org-left">✓</td> </tr> </tbody> <tbody> <tr> <td class="org-left">Load</td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> </tr> <tr> <td class="org-left"> </td> <td class="org-left">`LOAD`</td> <td class="org-left">Load case combination</td> <td class="org-left">✓</td> <td class="org-left">✓</td> </tr> <tr> <td class="org-left"> </td> <td class="org-left">`FORCE`</td> <td class="org-left">Forces on Nodes</td> <td class="org-left">✓</td> <td class="org-left">✓</td> </tr> <tr> <td class="org-left"> </td> <td class="org-left">`MOMENT`</td> <td class="org-left">Moments on Nodes</td> <td class="org-left">✓</td> <td class="org-left">✓</td> </tr> <tr> <td class="org-left"> </td> <td class="org-left">`CONM1`</td> <td class="org-left">Concentrated Mass Element Connection, General Form</td> <td class="org-left">✗</td> <td class="org-left">✓</td> </tr> <tr> <td class="org-left"> </td> <td class="org-left">`CMASS2`</td> <td class="org-left">Scalar Mass Property and Connection</td> <td class="org-left">✓</td> <td class="org-left">✗</td> </tr> <tr> <td class="org-left"> </td> <td class="org-left">`CMASS4`</td> <td class="org-left">Scalar Mass Property and Connection to Scalar Points Only</td> <td class="org-left">✓</td> <td class="org-left">✗</td> </tr> <tr> <td class="org-left"> </td> <td class="org-left">`GRAV`</td> <td class="org-left">Acceleration or Gravity Load</td> <td class="org-left">✓</td> <td class="org-left">✓</td> </tr> </tbody> <tbody> <tr> <td class="org-left">Misc</td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> <td class="org-left"> </td> </tr> <tr> <td class="org-left"> </td> <td class="org-left">`ENDDATA`</td> <td class="org-left">Marker for end of input file</td> <td class="org-left">✓</td> <td class="org-left">✓</td> </tr> <tr> <td class="org-left"> </td> <td class="org-left">`PARAM`</td> <td class="org-left">Specifies values for parameters used in solution sequences or user written `DMAP` programs.</td> <td class="org-left">✓</td> <td class="org-left">✓</td> </tr> </tbody> </table><a id="org934fba6"></a>
Header Data
<table border="2" cellspacing="0" cellpadding="6" rules="groups" frame="hsides"> <colgroup> <col class="org-left" /> <col class="org-left" /> <col class="org-left" /> <col class="org-left" /> </colgroup> <thead> <tr> <th scope="col" class="org-left">**Name**</th> <th scope="col" class="org-left">**Description**</th> <th scope="col" class="org-left">**Read**</th> <th scope="col" class="org-left">**Write**</th> </tr> </thead> <tbody> <tr> <td class="org-left">`SOL`</td> <td class="org-left">Execute a Solution Sequence</td> <td class="org-left">✗</td> <td class="org-left">✓</td> </tr> <tr> <td class="org-left">`CEND`</td> <td class="org-left">End of Executive Control Delimiter</td> <td class="org-left">✗</td> <td class="org-left">✓</td> </tr> <tr> <td class="org-left">`TITLE`</td> <td class="org-left">Output Title</td> <td class="org-left">✗</td> <td class="org-left">✓</td> </tr> <tr> <td class="org-left">`ECHO`</td> <td class="org-left">Bulk Data Echo Request</td> <td class="org-left">✗</td> <td class="org-left">✓</td> </tr> <tr> <td class="org-left">`DISPLACEMENT`</td> <td class="org-left">Displacement Output RequesRelated Skills
openhue
349.7kControl Philips Hue lights and scenes via the OpenHue CLI.
sag
349.7kElevenLabs text-to-speech with mac-style say UX.
weather
349.7kGet current weather and forecasts via wttr.in or Open-Meteo
casdoor
13.3kAn open-source AI-first Identity and Access Management (IAM) /AI MCP & agent gateway and auth server with web UI supporting OpenClaw, MCP, OAuth, OIDC, SAML, CAS, LDAP, SCIM, WebAuthn, TOTP, MFA, Face ID, Google Workspace, Azure AD
