KnowMesh
← Back to search

Marcin Grabski

FEM Engineer — Abaqus Automation · Structural Analysis

Warsaw, Poland

FEM Engineer combining solid structural analysis skills with strong Python automation capabilities. Develops Abaqus scripting infrastructure that enables parametric studies, automated report generation, and integration of FEM results into design optimization and machine learning workflows. Works across Abaqus Standard and Explicit.

Expertise

  • Abaqus Python scripting
  • ODB post-processing
  • parametric model generation
  • Dakota optimization integration
  • FEM simulation databases for ML

Technologies

Abaqus Abaqus Python API Python Dakota HyperMesh Git Linux HPC pandas

Work History

2024-11

Built Abaqus simulation database for ML surrogate model training — 1200 analysis results with geometric parameters, material properties, load levels, and output quantities (max stress, displacement, life).

Challenge: HDF5 file format was chosen for the database to handle large numerical arrays efficiently. However, concurrent write access from multiple HPC jobs required careful file locking. Switched to individual per-job CSV files merged in a post-processing step.

Learned: For large simulation databases generated by parallel HPC jobs, write-then-merge is safer than concurrent shared file access. Each job writes to its own output file; a final merge step combines them. Simpler and more robust than distributed file locking.

Abaqus Python API Python pandas HDF5 Linux HPC

2024-05

Integration of Abaqus with Dakota optimization framework for shape optimization of disk bore geometry — minimize weight subject to max von Mises stress < yield / safety factor.

Challenge: Dakota's direct Abaqus interface uses file-based communication — Dakota writes parameter file, Abaqus reads and runs, Dakota reads result file. Race conditions occurred on shared NFS filesystem when multiple evaluations ran simultaneously.

Learned: File-based optimizer-simulator interfaces on shared filesystems need explicit job isolation: unique working directories per evaluation, explicit synchronization before result reading, and cleanup of temp files to avoid disk overflow.

Dakota Abaqus Python Linux HPC

2023-12

Automated report generation from Abaqus ODB files — extracts key results (max stress location and value, deformation, contact status), generates plots using matplotlib, compiles into PDF via ReportLab.

Challenge: Consistent extraction of 'max stress location' is harder than it sounds — results must be filtered to avoid singularities at boundary condition application points and at contact interfaces. Added automatic singularity detection based on local mesh refinement ratio.

Learned: Automated FEM result reporting requires singularity handling. Stress concentrations at constraints are numerical artifacts. A simple filter: if an element's stress is >3x its neighbors' average stress, flag it for manual review rather than reporting it as the maximum.

Abaqus Python API Python matplotlib ReportLab pandas

2023-08

Parametric cooling channel geometry generation for HPT blade — Python script creates Abaqus model geometry, mesh, and boundary conditions for 35 cooling hole diameter and pitch combinations.

Challenge: Parametric geometry generation in Abaqus/CAE Python API is fragile — small changes in part geometry can cause feature-based operations (cuts, fillets) to fail silently and produce wrong geometry. Validated each geometry against a reference mesh by checking element count and volume.

Learned: Parametric Abaqus models built with CAE Python API need geometric validation checks after each generation. Relying on job completion status alone is insufficient — a wrong geometry can produce a valid analysis with wrong results.

Abaqus Python API HyperMesh Python Linux HPC

2023-03

Built Python scripting framework for automated Abaqus job submission and ODB post-processing — reads parameters from CSV, generates input files, submits jobs, extracts stress/strain results from ODB files, outputs to structured CSV.

Challenge: Abaqus Python API uses a non-standard environment — many common Python packages (pandas, numpy) are not available in Abaqus's embedded Python. Had to run ODB opening inside Abaqus Python and pass extracted data to a separate standard Python process via JSON files.

Learned: Abaqus Python scripting requires awareness that the Abaqus Python interpreter is a different environment from system Python. Separate the ODB reading (inside Abaqus Python) from data processing (system Python) for maximum flexibility.

Abaqus Python API Python Linux HPC pandas