Methodology
Background
The Eagar–Tsai model (1983) provides an analytical solution for the steady-state temperature field produced by a Gaussian laser beam moving at constant velocity over a semi-infinite solid. It is widely used in additive manufacturing and laser welding research to estimate melt pool geometry without the cost of full finite-element simulations.
References:
- T. W. Eagar and N.-S. Tsai, "Temperature Fields Produced by Traveling Distributed Heat Sources," Welding Journal (Research Supplement), December 1983, pp. 346-s–354-s.
- C integrand reformulation: Sasha Rubenchik, LLNL, 2015.
Assumptions
- Semi-infinite solid (no boundaries other than the top surface).
- Constant material properties evaluated at the liquidus temperature.
- Gaussian heat source with constant absorptivity.
- Steady-state moving source (the temperature field moves with the beam).
- No melt flow, vaporization, or latent heat effects.
Governing Equations
Thermal diffusivity
Material thermal diffusivity is computed from the three input properties:
where k is thermal conductivity (W/(m·K)), rho is density (kg/m³), and cp is specific heat (J/(kg·K)).
Non-dimensional parameter
The model uses a single non-dimensional parameter that captures the ratio of diffusive to advective transport:
where v is the scan velocity (m/s) and sigma = sqrt(2) * (d / 2) is the Gaussian width derived from beam diameter d.
Temperature prefactor
The overall temperature scale is set by:
where A is absorptivity and P is laser power (W).
Temperature field
The temperature at any point (x, y, z) in the frame co-moving with the beam is:
where T0 = 300 K is the ambient temperature and the integration variable t is a dimensionless time-like parameter.
Integrand
f(t, x, y, z, p) = 1 / ((4*p*t + 1) * sqrt(t))
* exp(-z^2 / (4*t) - (y^2 + (x - t)^2) / (4*p*t + 1))
The integrand is evaluated numerically using scipy.integrate.quad. For performance, the integrand is implemented as a C extension (_integrand_ext.c) and passed to QUADPACK as a LowLevelCallable, eliminating Python overhead on every function evaluation.
Melt Pool Extraction
The temperature field is evaluated on two planes:
- the x–y plane (z = 0, top surface) to obtain melt pool length and half-width,
- the x–z plane (y = 0, centerline) to obtain melt pool depth.
The melt pool boundary is the liquidus isotherm T = T_liquidus. The three dimensions are extracted as:
| Dimension | Definition |
|---|---|
| Length | Extent of T >= T_liquidus along x |
| Width | 2 × half-extent of T >= T_liquidus along y at the surface |
| Depth | Extent of T >= T_liquidus along z at the centerline |
If the melt pool reaches any domain boundary, the domain is automatically expanded and the computation is repeated (up to 20 iterations).