Skip to content

Home

apeGmsh mark

apeGmsh
LADRUÑO

Built on Gmsh

apeGmsh is a wrapper built on top of the (awesome) Gmsh Python API. It adds a set of abstractions over the main API to fit an intended structural-FEM workflow — parts, constraints, loads, masses, and an OpenSees bridge. You still have the full Gmsh API underneath whenever you need it.

Install

pip install "apeGmsh[all]"

The [all] extra pulls in the OpenSees bridge (via openseespy), the web viewer, and plotting — everything the tutorials use. Want just the modelling core? Drop the [all]. To track unreleased work, install from the repo instead:

pip install "apeGmsh[all] @ git+https://github.com/nmorabowen/apeGmsh.git@main"

A double-couple seismic source radiating through a solid block — solved and rendered by the 165-line script scripts/render_showcase/moment_tensor.py.

New here? Build a model in 10 minutes

The fastest way in is to build your first model →: a steel cantilever you solve and check against PL³/3EI, end to end, in under 40 lines. When you want the whole staircase — every tutorial and worked example in reading order, each with its verification check — it's on the learning path.

Where do you want to start?

  •   Tutorials


    Teach me, step by step.

    Hand-held journeys that end in a number you can trust. Start with your first model in 10 minutes.

  •   How-to recipes


    I know the basics — how do I X?

    Task-titled recipes: fix supports, apply a pressure, tie meshes, run a pushover, read a displacement, save & reload, compose modules.

  •   Concepts


    Help me build a mental model.

    The six ideas behind everything — session, composites, naming, FEMData, declare-then-resolve, the typed bridge — then the topic guides.

  •   Examples


    Show me a worked model.

    Recognizable structural problems — frames, modal, pushover — built end to end and checked against known answers.

  •   API reference


    Look up a method.

    Complete API surface — session composites, mesh, OpenSees bridge, parts, constraints, loads, masses, results, viewers.

What's new

  •   Section properties, in-process


    Draw any cross-section — built-up plates, an SRC column, a holed box — mesh the face, and read A, I, J, shear centre, warping and plastic moduli straight off it. Bind the analyzer to the bridge and the emitted deck always follows the drawn geometry.

    Compute section properties →

  •   Contact, declared like everything else


    g.constraints.contact(master, slave) puts node-to-segment or mortar contact — friction, mesh-tying, the lot — on the same declare-then-resolve pipeline as every tie and diaphragm.

    How constraints couple a model →

  •   Staged SSI, end to end


    Settle a soil column under gravity, freeze it, flip the boundary to absorbing, and shake the equilibrated state — the staged workflow that used to take a folder of hand-written decks.

    The staged SSI example →

  •   The docs are now a course


    Every tutorial and example sits on one ordered staircase, each rung checked against a known answer — and the showcase models now move.

    Walk the learning path →


Credits

Developed by: Nicolás Mora Bowen · Patricio Palacios · José Abell · Guppi

Part of José Abell's El Ladruño Research Group.


Citing apeGmsh

DOI

If apeGmsh contributed to published work, please cite it:

Mora Bowen, N., Palacios, P., Abell, J., & Guppi. apeGmsh: a structural-FEM wrapper around Gmsh with a snapshot FEM broker. Zenodo. https://doi.org/10.5281/zenodo.21815489

@software{apeGmsh,
  author    = {Mora Bowen, Nicolás and Palacios, Patricio and Abell, José and Guppi},
  title     = {apeGmsh: a structural-FEM wrapper around Gmsh with a snapshot FEM broker},
  year      = {2026},
  publisher = {Zenodo},
  doi       = {10.5281/zenodo.21815489},
  url       = {https://doi.org/10.5281/zenodo.21815489}
}

Which DOI?

The DOI above is the concept DOI — it always resolves to the most recent release, which is what you want when citing the software itself. To pin the exact version you ran, use that release's version DOI instead (v2.0.0 is 10.5281/zenodo.21815490).

License

apeGmsh is licensed under the GNU General Public License v3.0 or later.

GPL rather than a permissive license because apeGmsh builds on Gmsh, which is GPLv2+ — its linking exception covers only Netgen, METIS, OpenCASCADE and ParaView, not downstream API consumers. pygmsh is GPLv3+ for the same reason.

Note the GPL constrains distribution, not use: running apeGmsh internally, including on commercial engineering projects, carries no source-disclosure obligation.