ORNL/AdditiveFOAM: Release 2.0.0
Description
AdditiveFOAM 2.0.0 is a major release built for OpenFOAM-14. It introduces a general projected heat- source framework, measured beam-profile tooling, automated heat-source calibration, predictive mesh refinement, and substantially expanded tutorials and documentation.
Important: AdditiveFOAM 2.0.0 requires OpenFOAM-14. Existing 1.x cases must migrate their heat-source dictionaries to the new nested model interface.
Highlights
- Ported AdditiveFOAM and its build, solver, utilities, function objects, tests, and tutorials to OpenFOAM-14.
- Added a general projected heat-source model composed of selectable planar profiles and axial projections.
- Added super-Gaussian, nLight AFX, and tabulated planar profiles with exponential axial projection.
- Added rotated elliptical analytic profiles and selectable e2 or secondMoment radius definitions.
- Added profile normalization, centroid, covariance, azimuth, and principal-axis D4Sigma metrics.
- Added configurable area-equivalent, major-axis, or minor-axis D4Sigma width references and constant or isotherm depth references.
- Added model-specific integration bounds that retain a specified tolerance of analytical source power.
- Added predictive dynamic-refinement strategies, including the targetCellLoad model.
- Added reusable AlSi10Mg, IN625, SS316L, and nLight AFX configuration files.
Heat-source calibration
The new calibrateHeatSource workflow calibrates the projected axial closure directly against measured melt-pool depths. It includes:
- Resumable simulation caching and provenance fingerprints.
- Adaptive response-curve construction.
- Deterministic posterior quadrature for local parameter inference.
- Propagation of local uncertainty through the global robust fit.
- Bootstrap uncertainty bands.
- CSV summaries and PDF reports.
- A complete SS316L calibration tutorial using a measured tabulated beam profile.
Python 3.10–3.12 and the pinned packages in requirements.txt are required only for calibration and plotting utilities.
Beam-profile utilities
- Added primesToAdditiveFoam for converting PRIMES CSV exports to normalized AdditiveFOAM profiles.
- Added reconstruction of the PRIMES calculation ROI, coordinate-preserving cropping, and converted- versus-reported beam statistics.
- Added tabulatedProfileInfo for reporting profile integral, centroid, D4Sigma, and azimuth.
- Tabulated profiles now derive their normalization, support, and reference dimensions directly from the profile table.
Correctness and reliability
- Made heat sources one-sided and consistent with their analytical normalization.
- Synchronized source depth, shape parameters, normalization, and bounds before beam subcycling.
- Preserved the active-power fraction when a solver step crosses the end of a scan path.
- Restricted transient isotherm-depth calculations to source support below the beam plane.
- Corrected projected-source bounds and a modified super-Gaussian endpoint singularity.
- Preserved explicitly configured Kelly aspectRatioSwitch values and applied etaMin as a lower bound.
- Corrected thermodynamic-path bracketing, refinement updates, MRF flux handling, and boundary initialization.
Tutorials and workflows
Expanded or updated tutorials for:
- AMB2018-02-B
- Multi-beam processing
- Multi-layer powder-bed fusion
- nLight AFX beam profiles
- Tabulated PRIMES profiles
- Projected heat-source calibration
Helper scripts for layer execution, reconstruction, absorbed-power plotting, melt-pool dimensions, and solidification data are now available through the AdditiveFOAM bin directory.
Upgrading from 1.x
- Source OpenFOAM-14 before sourcing AdditiveFOAM/etc/bashrc, then rebuild with ./Allwmake.
- Replace legacy *Coeffs dictionaries with nested absorption, heatSource, profile, projection, and refinement dictionaries containing a model entry.
- Select projected Gaussian, nLight AFX, and tabulated profiles through heatSource { model projected; }.
- Replace projected coefficients A and B with nSlope and nIntercept.
- Specify analytic radius as a two-dimensional value and depth separately.
- Remove manually supplied lateral dimensions from tabulated profiles.
- Update scripts that referenced the former multi-layer utility locations to use the commands in bin.
Full changelog: 1.2.0…2.0.0 (https://github.com/ORNL/AdditiveFOAM/compare/1.2.0...2.0.0)
Files
ORNL/AdditiveFOAM-2.0.0.zip
Additional details
Related works
- Is supplement to
- Software: https://github.com/ORNL/AdditiveFOAM/tree/2.0.0 (URL)
Software
- Repository URL
- https://github.com/ORNL/AdditiveFOAM