AdditiveFOAM icon indicating copy to clipboard operation
AdditiveFOAM copied to clipboard

nLight Beam Class

Open kincaidkc opened this issue 1 year ago • 2 comments

This pull request implements a new heat source model for the nLight AFX-1000 laser system [1, 2] which produces a combined Gaussian spot and ring power distribution. A mathematical representation for this beam profile was developed by J. Coleman and B. Stump and integrated into the AdditiveFOAM heatSourceModel class. The combination of profiles results in two separate normalization factors, which is not strictly compatible with the existing heatSourceModel implementation. To achieve correct integration, the nLight::V0() function returns a unit value and the volume normalization is moved into the nLight::weight() function. To maintain compatibility with the transient heat source depth capability and minimize calls to Foam::tgamma, the normalization factors for the spot As_ and ring Ar_ calculated once in the nLight constructor, omitting the beam depth. Depth information is included at the end of the weight calculation, at which point it is taken directly from the dynamically updated dimensions_ variable.

The residual values of the heat source integration were monitored to ensure correct implementation of the model. With the mesh size and sub-grid integration points specified in the included tutorial, a residual greater than 0.96 is achieved, indicating satisfactory results. Representative temperature and power profiles for this heat source are shown below.

Screenshot from 2024-02-08 15-26-44 Screenshot from 2024-02-08 15-25-56

[1] https://www.nlight.net/programmable-rackmount-single-mode-fiber-lasers

[2] Grünewald, J., Gehringer, F., Schmöller, M., & Wudy, K. (2021). Influence of Ring-Shaped Beam Profiles on Process Stability and Productivity in Laser-Based Powder Bed Fusion of AISI 316L. Metals, 11(12), 1989. https://doi.org/10.3390/met11121989

kincaidkc avatar Feb 08 '24 20:02 kincaidkc

Since the only change to the AMB2018-02-B tutorial is the heatSourceDict file. Can you either make a folder called heatSourceExamples in AMB2018-02-B/constant

colemanjs avatar Feb 09 '24 20:02 colemanjs

Since the only change to the AMB2018-02-B tutorial is the heatSourceDict file. Can you either make a folder called heatSourceExamples in AMB2018-02-B/constant

Added example of nLight profile to the AMB2018-02-B heatSourceDict, consistent with other OpenFOAM tutorials with multiple model options. Removed dedicated nLight tutorial.

kincaidkc avatar Feb 19 '24 16:02 kincaidkc