Automated FEA Post-Processing Pipeline for Subsea Equipment Qualification

Method notes for engineering and data workflows.

The challenge

Organise the inputs, calculations and reporting into a repeatable workflow with checks.

Our Approach

1

Workflow Analysis & Requirements Gathering

Define the post-processing workflow, data extraction patterns, code check calculations and reporting requirements. Record the input formats and equipment types before implementing the extraction steps.

2

NASTRAN Parser Development

Built a robust Python parser for NASTRAN .f06 and .op2 output files. The parser handles multiple solution sequences (SOL 101, 103, 106), extracts element stresses, nodal displacements, and reaction forces with automatic unit handling.

3

Code Check Engine Implementation

Implemented automated code checks for API 17D and DNV-OS-F101 requirements, including von Mises stress allowables, linearized stress calculations for pressure vessels, and fatigue screening assessments. All calculations are fully traceable with intermediate results documented.

4

Interactive Report Generation

Developed HTML report templates with Plotly-based interactive stress contour plots, tabular results with conditional formatting, and executive summaries with pass/fail indicators. Reports include all calculation backup for regulatory review.

5

Integration & Deployment

The pipeline uses a command-line interface to read a NASTRAN output folder and assemble reports.

Technical Implementation

Pipeline Architecture

The automation pipeline follows a modular architecture designed for maintainability and extensibility:

subsea-fea-pipeline/
-- parsers/
| -- nastran_f06.py # Text output parser
| -- nastran_op2.py # Binary output parser
| -- result_mapper.py # Element-to-component mapping
-- code_checks/
| -- api_17d.py # API 17D stress allowables
| -- dnv_os_f101.py # DNV pipeline code checks
| -- linearization.py # Stress linearization routines
-- reporting/
| -- html_generator.py # Report assembly
| -- plotly_viz.py # Interactive plots
| -- templates/ # Jinja2 report templates
-- main.py # CLI entry point

Key Technical Features

Code Check Implementation

Standard Check Type Implementation
API 17D Primary stress limits von Mises vs. allowable based on material grade and temperature
API 17D Local stress limits Peak stress evaluation at geometric discontinuities
DNV-OS-F101 Burst capacity Hoop stress check with safety factors per location class
DNV-OS-F101 Collapse capacity External pressure check with ovality effects
Combined Fatigue screening Stress range extraction for fatigue assessment triggering

Report Features

Generated HTML reports include:

Technologies & Tools

FEA Software: MSC NASTRAN, NX NASTRAN
Programming: Python 3.10+
Data Processing: pandas, numpy, scipy
Visualization: Plotly for interactive charts and contour plots
Reporting: Jinja2 templates for HTML generation
Binary Parsing: pyNastran for .op2 file handling
Deployment: PyInstaller for standalone executable distribution

Related methods

Summary

Review the inputs, assumptions and calculation results for the stated scope.

Engineering workflows ยท Technical articles

Use our data that is available. If you want help with any work, whether it is automation, AI automation or workflows, let us know.

Contact us support@aceengineer.com