CGROW is a C++17 library, test suite, and graphical application for identifying fatigue crack-growth model parameters from experimental data. It uses constrained, derivative-free optimization to automate parameter determination while retaining explicit parameter bounds and fit diagnostics.
CGROW fits the Hartman–Schijve crack-growth relation across one or more stress-ratio (R) datasets:
The model represents the threshold region through ΔK_thr and the high-growth asymptote through
A (1 − R). CGROW identifies D, p, ΔK_thr, and A from the supplied measurements. It supports
both vertical log-space residuals and geometric distances to the model curve, making it useful when
uncertainty in both measured crack-growth rate and stress-intensity-factor range matters. Data and
parameter bounds remain the engineer's responsibility; fitted parameters should be assessed against
the experimental method and intended design application.
The implementation follows the approach proposed in Iliopoulos et al., International Journal of Fatigue 169 (2023), 107490.
DISTRIBUTION STATEMENT A. Approved for public release; distribution is unlimited.
- CMake 3.15 or newer
- A C++17 compiler (MSVC, Clang, or GCC)
- Qt 6 with Widgets, PrintSupport, Svg, SvgWidgets, and Test components (Qt 5 is also supported by the application build)
- Internet access on the first configuration, so CMake can fetch the pinned NLopt and CXXPlot dependencies
Tell CMake where Qt is installed when it cannot find it automatically. For example, in a Visual Studio developer PowerShell prompt:
cmake -S . -B build -DCMAKE_PREFIX_PATH="C:/Qt/6.11.1/msvc2022_64"
cmake --build build --config Release
ctest --test-dir build -C Release --output-on-failureOn Windows, the deployed GUI is at build/src/apps/cgrow/bin/Release/cgrow.exe. The CMake build
automatically runs windeployqt so the required Qt runtime files are placed beside the executable.
The self-contained console fitting example is built as cgrow_basic_fit; see
examples/basic_fit for its small library workflow.
If CGROW contributes to published work, cite the method paper:
Iliopoulos, A., Michopoulos, J. G., Jones, R., Kinloch, A. J., & Peng, D. (2023). A framework for automating the parameter determination of crack growth models. International Journal of Fatigue, 169, 107490. https://doi.org/10.1016/j.ijfatigue.2022.107490
@article{Iliopoulos2023CGROW,
author = {Iliopoulos, Athanasios and Michopoulos, John G. and Jones, Rhys and Kinloch, Anthony J. and Peng, Daren},
title = {A framework for automating the parameter determination of crack growth models},
journal = {International Journal of Fatigue},
volume = {169},
pages = {107490},
year = {2023},
doi = {10.1016/j.ijfatigue.2022.107490}
}CGROW is the work of federal employees and the relevant source code is in the public domain. Please read the license to ensure you can satisfy the authorization to use and distribute requirements.
Third party libraries included with CGROW have their own respective licenses. Distribution of derivative work need to satisfy those licenses as well. If you plan to use CGROW in a non open-source manner, you need to make arrangements with the individual copyright holders. More information can be found in the licenses folder.