Skip to content

AdditiveFOAM Release v2.0.0#95

Open
colemanjs wants to merge 17 commits into
mainfrom
candidate-v2.0.0
Open

AdditiveFOAM Release v2.0.0#95
colemanjs wants to merge 17 commits into
mainfrom
candidate-v2.0.0

Conversation

@colemanjs
Copy link
Copy Markdown
Collaborator

Draft PR for AdditiveFOAM v2.0.0.0

colemanjs and others added 10 commits April 30, 2026 12:22
* 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.
@colemanjs colemanjs changed the title Candidate v2.0.0 AdditiveFOAM Release v2.0.0 Jun 4, 2026
@colemanjs colemanjs requested review from gknapp1 and kincaidkc June 5, 2026 14:33
@colemanjs colemanjs marked this pull request as ready for review June 5, 2026 14:34
const pointField& points = mesh_.points();

treeBoundBox beamBb
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants