Cold Dwell Fatigue of Titanium Alloys: History, Current State, and Aviation Industry Perspective [Supporting Software]
This is an unofficial "fork" of the package cited below, modified for headless execution on a Docker (Linux) environment. See Change Log for details about the current status and important modifications.
URL : https://rosap.ntl.bts.gov/view/dot/78565
Creator(s) : Pilchak, Adam;Fox, Kate;Payton, Eric;Wiedemann, Mirjam;Broderick, Tom;Delaleau, Pierre;Glavicic, Michael;Jenkins, Nigel;Ruppert, Jean-Manuel;Streich, Brian;Tsukada, Masayuki;Venkatesh, Vasisht;Woodfield, Andy;
Corporate Creator(s) : Pratt & Whitney;Materials Resources LLC;Rolls Royce Corp;University of Cincinnati;MTU Aero Engines;Air Force Research Laboratory (Wright-Patterson Air Force Base, Ohio);United States. Department of Transportation. Federal Aviation Administration;Safran Aircraft Engines;Safran Helicopter Engines;Honeywell Aerospace Engineering Advanced Technology;IHI Corp, Tokyo, Japan;GE Aerospace;
Corporate Contributor(s) : United States. Department of Transportation. Federal Aviation Administration. William J. Hughes Technical Center
Published Date : 2024-11-13
Automated routines were developed by a consortium of aerospace companies under Metals Affordability Initiative (MAI) programs to process and quantify microtexture in titanium. These routines were made available as part of the PW9 program for assessment and publicly released under PW24 program (2024). The tool is not intended to be perfect, but there is concensus among the industry that it appropriate for benchmark comparisons of materials and draw useful correlations for different processing routes, product forms, etc. The tool is provided “as is". Sse the software at your own risk. No warranties are provided as to performance, fitness for a particular purpose not outlined above, or any other warranties whether expressed or implied.
The routines use open-source software Dream3D (version 6.5)[*] to perform EBSD file cleanup and feature quantification. Additional post-processing scripts were developed in Python to compute additional metrics and automate data post-processing.
[*] The original version uses Dream3D 6.5.49 (Windows), this fork has been tested with 6.5.171 (Linux). See Change Log for details.
This tool has been publicly released (AFRL-2024-4080)
Clone this repository:
git clone https://github.com/UoMResearchIT/Cold-Dwell-Fatigue-of-Titanium-Alloys.git ./microtexture
cd ./microtextureUsing Docker (recommended)
To run the microtexture GUI:
# TEST_DATA will be mounted to /data in the container
export TEST_DATA=/path/to/my/data
docker compose up --buildTo run headless (command line):
docker buildx build . -t microtexture:latest
docker run --rm microtexture:latest --help
docker run --rm -v /path/to/my/data:/data microtexture:latest [OPTIONS] FILETip
If you only need the command line interface, consider using the cli branch of this repository, which has been streamlined for this purpose.
To run the DREAM3D GUI (e.g. for development of new pipelines):
docker compose -f docker-compose-dream3d-gui.yaml up --buildRequires Dream3D (version 6.5) and a python environment manager, e.g. uv:
export DREAM3D_PIPELINE_RUNNER=/path/to/Dream3D/PipelineRunner
uv sync
uv run python -m microtexture -hTo run the GUI:
uv run python -m microtexture gui-
Update pipelines to Dream3D 6.5.171
The packaged DREAM3D 6.5.171 did not complain when loading the original pipeline (developed for 6.5.49), but it would actually execute updated versions of all filters. The pipeline templates have been updated to reflect this. The only relevant changes seem to be:
- The new
ReadCtfDatafilter on the CTF pipeline has aDegreesToRadiansparameter, set to 0 to restore the original behavior. - The new
CAxisSegmentFeaturesfilter contains a bug fix related to grouping voxels with identical orientation values. The updated pipeline tends to detect slightly more MTRs across all classes. Differences for most summary metrics are in the order of 1%-2%.
- The new
-
Unit test, and bug fixes for CLI wrapper
-
Write markdown version of summary report
- Porting to a Linux environment, minor bug fixes, linting & cleanup.
- Configuration through
.env/yaml(see below) - Restructuring to fit canonical Python package layout
- Command line interface (independent from GUI)
- Simplified templating using Jinja2
- (Missing!) support for multiple files
- Post-processing (analysis) logic separated from GUI
- Support for multiple files in command line interface
- Single configuration file for both GUI and CLI
- Rewrite GUI as an interface to the command line tool
- Use Jinja2 templates for GUI as well
- Use the
postprocessmodule
- The GUI could do with some linting and refactoring for readability
- Unit tests