Repository navigation
AdditiveFOAM 2.0.0
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 (1.2.0...2.0.0)