AdditiveFOAM Release v2.0.0#95
Conversation
* added refinement model * fixup: still need helper functions for moving beam * fixup * remove DTI * Replace segment class with more flexible pathVector class * first target volume refinement attempt * fixup * removed commented query functions from pathVector * removed commented query functions from pathVector * revert thermopath * revert time step
* added refinement model * fixup: still need helper functions for moving beam * fixup * remove DTI * Replace segment class with more flexible pathVector class * first target volume refinement attempt * fixup * removed commented query functions from pathVector * removed commented query functions from pathVector * revert thermopath * revert time step
Add a new nLightAFX heat source model for representing characterized nLight AFX beam profiles as a linear combination of inner and outer Gaussian-ring components. The model reads user-specified beam-shape parameters from inner and outer subdictionaries, including radius, sigma, and projected-Gaussian axial closure coefficients. The implementation uses the existing AdditiveFOAM moving heat source transient-depth logic with a single shared heat source depth. Each ring component is independently normalized using the closed-form radial and axial integrals, while the combined source applies alpha as the outer-ring power fraction. This avoids hard-coded AFX mode tables in the source code. ORNL-characterized AFX mode parameters are provided through the nLightAFX.cfg include file, so users can select a characterized mode in the heat source dictionary without editing or recompiling the model.
Add a tutorial demonstrating the tabulated heat source model with a uniformly spaced ASCII beam profile. The example uses a four-ring overlapping Gaussian beam shape stored in constant/beamProfile.txt and applies the projected axial distribution through the tabulated heat source coefficients. The README documents the required table format, coefficient dictionary, normalization behavior, and the geometry of the example four-ring beam profile. The tabulated distribution is normalized as a relative planar shape, while the total applied power remains controlled by the scan path.
…ction object has not been extensively tested and the introduction of new mesh states and cell maps may cause issues. We also don't support mesh distibution.
…coding style guide: whitespace, line endings, tabs, selected spacing rules, and optional/manual 80-column checks. It does not replace human review for OpenFOAM-specific stream formatting, mathematical expression layout, documentation style, or semantic C++ coding-practice rules.
…t sure that we have implemented CorrectPhi correctly. It should be avoided for now
| const pointField& points = mesh_.points(); | ||
|
|
||
| treeBoundBox beamBb |
There was a problem hiding this comment.
I get a incomplete type compile error:
error: variable ‘Foam::treeBoundBox beamBb’ has initializer but incomplete type
I think this is due to a missing #include "treeBoundBox.H", but it isn't clear to me why it wasn't an issue before. Maybe a change in a different file? Anyway adding the include statement to the top of this file fixed it for me.
There was a problem hiding this comment.
I have seen this issue with OpenFOAM-13, but don't get this error when building with the current commit. It doesn't hurt to add the header to be safe.
…into a pre-commit action
* update ORNL copyright
| \\/ M anipulation | | ||
| ------------------------------------------------------------------------------- | ||
| Copyright (C) 2023 Oak Ridge National Laboratory | ||
| Copyright (C) 2023-2026 Oak Ridge National Laboratory |
There was a problem hiding this comment.
We mostly don't update dates in other codes anymore. There's no requirement to keep these headers, to keep dates in the headers, or to keep detailed track of which files changed when. But of course down to preference
Draft PR for AdditiveFOAM v2.0.0.0