BondLife
BondLifeFatigue Analysis Tool for Adhesive Joints

DOCUMENTATION / DEVELOPERS

BondLife Developer Guide

Technical orientation for developers extending BondLife desktop software and build pipeline.

Build Prerequisites

Install these tools before cloning the repository and opening the project in Qt Creator.

ToolRequirement
Operating SystemWindows 10 / 11 (64-bit)
Qt6.11.0 — download from qt.io/download-open-source
Qt Creator15.x — bundled with the Qt installer
CompilerMinGW-w64 13.x (64-bit) — select during Qt install
CMake3.16 or newer — bundled with Qt Creator
OpenGL3.3+ driver — required for mesh / adhesive GL widgets
Inno Setup6.x — required only to build the installer (.exe)
windeployqtIncluded with Qt — used by build_installer.bat
Inno Setup and windeployqt are only needed when packaging a release installer — not required for day-to-day development builds.

Architecture Overview

  • Qt Widgets desktop app with MainWindow as UI orchestrator.
  • ProjectModel encapsulates app state, import/persistence, and computation entry points.
  • Fatigue engine parses Abaqus stress reports and evaluates fatigue models.
  • LibraryManager merges default and user libraries and handles exports.
  • SimulationModelWidget uses a dedicated Abaqus parser for model/mesh browsing.

Build and Packaging

Build the Qt app in Release mode first.

Use installer/build_installer.bat to stage runtime dependencies with windeployqt and compile the Inno Setup installer.

The package includes executable, style fallback, and library JSON files required for runtime presets.

Keep runtime parsing behavior and calibration conventions synchronized between UI and fatigue engine.

Extension Points

Add a fatigue model

Extend enums/params in fatigue engine headers, implement evaluator logic, update model mapping, and expose UI parameters.

Extend project schema

Update save/load paths with migration defaults so existing .bondlife files remain backward compatible.

Add library categories

Introduce new merged maps and persistence/export behavior in LibraryManager.

Improve calibration

Build on Antelo calibration request/result structures and integrate UI changes in Model Calibration dialog.

Important Source Files

FileRole
BondLifeQt.proQt project dependencies and build config
main.cppApp entrypoint and global style loading
mainwindow.cpp / mainwindow.hMain workflow UI, actions, and signal wiring
projectmodel.cpp / projectmodel.hState model, import, persistence, analysis entry
fatigue/fatigueengine.cpp / .hStress parsing, invariants, scaling, life computation, calibration
librarymanager.cpp / .hPreset libraries merge/save/export
abaqus/abaqusparser.cpp / .hINP/RPT parser for simulation model view
widgets/simulationmodelwidget.cpp / .hAbaqus model explorer and mesh viewer host
installer/build_installer.batWindows packaging pipeline

GitHub Repository & Contributing

BondLife source code is hosted on GitHub. Contributions — bug fixes, new fatigue models, and documentation improvements — are welcome via pull requests.

Fork & Clone

Fork the repository on GitHub, then clone your fork locally and open BondLifeQt.pro in Qt Creator.

Coding Conventions

Follow Qt naming conventions. Add new fatigue models via the extension points described above. Keep fatigue engine logic decoupled from UI widgets.

Pull Requests

Open a PR against the main branch. Include a short description of the change and reference any related issue numbers.