One homogenization pipeline for microstructures from Abaqus/CAE, Gmsh, microgen and TexGen

Posted a new example on homogenizing microstructures that come from different modeling tools with a single sgio + SwiftComp pipeline, and comparing their elastic anisotropy on one scale.

What it covers:

  • Four microstructures, one per builder: hexagonal honeycomb (Abaqus/CAE, 2D SG), UD composite with random fibres (GmshModel, 2D SG), Schwarz-P TPMS sheet (microgen, 3D SG) and 2×2 plain weave (TexGen, 3D SG)
  • Two hand-over formats:
    • Abaqus .inp decks with per-element material orientations. The honeycomb uses a discrete orientation along each wall, and the TexGen weave stores voxel yarn directions in an .ori file that sgio follows from the *Distribution line.
    • Gmsh .msh meshes plus an SG manifest (.sg.json) that sets the SG dimension, the model space and the physical group → material binding
  • One code path for every case: sgio.convert(...) to a SwiftComp SG, sgio.run("swiftcomp", ..., "h"), then sgio.read_output_model for the 6×6 effective stiffness and the density. Only the input format and the SG dimension change.
  • Postprocessing on C and ρ alone: directional Young’s modulus surfaces and the energy-ratio-based measure of elastic anisotropy (Fang et al., PRL 2019) for all 32 cases (geometry parameter ranges × two material sets)

The folder includes the homogenization outputs, so rerunning the postprocessing and the figures only needs uv. The workflow/ folder has the builder scripts and the sgio/SwiftComp driver if you want to rebuild everything. Each builder gets its own Python environment because the tools’ requirements conflict, and the article notes the version pins and workarounds this needed.

If you have microstructures from another tool, the SG manifest route (mesh + JSON) is the easiest way to bring them into SwiftComp.

Full example, code and interactive figures: