Static Irradiation of a Bare Plate#
This example simulates the static irradiation of a Ti6Al4V bare plate. It is based on the experimental work of Cunningham et al. [1] and includes the relevant phenomena involved in the laser powder bed fusion manufacturing process.
Features#
Solver:
lethe-fluid
Volume of fluid (VOF) and Heat Transfer (HT)
Unsteady problem with phase change handled by an adaptive BDF1 time-stepping scheme
Files Used in this Example#
All files mentioned below are located in the example’s folder (examples/multiphysics/static-irradiation
).
Parameter file:
2D/static-irradiation.prm
Mesh file:
mesh/bare-plate-2D.msh
Description of the Case#
Laser powder bed fusion is a manufacturing process using a laser to selectively melt and consolidate, layer-by-layer, a metal powder. Simply, it corresponds to 3D printing with a metal powder. The main laser-material interaction takes place at the melt pool scale where the flow dynamics involve multiple driving forces:
phase changes due to laser heating
surface tension effects due to the small scale of the melt pool
evaporative cooling and recoil pressure as temperature reaches the boiling point
In this example, we consider the static irradiation of Ti6Al4V bare plate (without powder) in a building chamber backfilled with Argon to study the melt pool dynamics. We simulate an irradiation of \(0.5 \;\text{ms}\) by a laser beam with a diameter of \(140\;\mu\text{m}\) and a power of \(156\;\text{W}\). The following figure shows the case setup, which is based on the experimental work of Cunningham et al. [1]
The dimensions (\(H, \Delta h\), and \(L\)) and the Dirichlet boundary condition values (\(u_{\text{in}}, T_\text{in}\), and \(T_\text{0}\)) are listed bellow.
Parameter |
Value |
Parameter |
Value |
\(H\) |
\(170\;\mu\text{m}\) |
\(u_{\text{in}}\) |
\(0.1\;\text{m s}^{-1}\) |
\(\Delta h\) |
\(20\;\mu\text{m}\) |
\(T_{\text{in}}\) |
\(298\;\text{K}\) |
\(L\) |
\(600\;\mu\text{m}\) |
\(T_{\text{0}}\) |
\(298\;\text{K}\) |
There are three phases involved in this simulation: solid and liquid Ti6Al4V, and Argon. The metal-gas interface is handled by the VOF solver, while the solid-liquid interface is obtained from the temperature field of the HT solver. Hence, this example models a two-fluid problem: fluid 0
corresponds to the Argon phase and fluid 1
is the metal (solid and liquid), for which the solid part corresponds to a infinitely viscous fluid.
Note
To improve the performance of the solvers, all dimensional quantities in this example are based on the SI system except for the reference length, which is taken as \(1\;\text{mm}\). This scaling helps the matrices to have better conditioning, as explained for the pressure scaling in the stabilization subsection.
Parameter File#
Simulation Control#
The time integration is handled by a first order backward differentiation scheme (bdf1
) with a maximum time-step of \(\Delta t = 1.9 \times 10^{-8} \; \text{s} < \Delta t_\sigma\) which corresponds to the capillary time-step constraint (see capillary wave example). We use adaptive time stepping with a maximum CFL of \(0.06\) to prevent instability resulting from the explicit coupling between the NS and HT solvers through the recoil pressure and evaporative cooling.
subsection simulation control
set method = bdf1
set time end = 0.0005
set time step = 1.9e-8
set adapt = true
set max cfl = 0.06
set max time step = 1.9e-8
set output name = static-irradiation
set output path = output/
set output frequency = 100
end
Multiphysics#
In the multiphysics
subsection, we enable both the VOF and HT solvers.
subsection multiphysics
set VOF = true
set heat transfer = true
end
Mesh and box refinement#
The coarse level mesh considered for this example is generated with Pointwise to enable the imposition of the inlet and outlet boundary conditions described in the figure above. It is then uniformly refined \(4\) times and box refinement is used to insure a well discretized metal-gas interface.
subsection mesh
set type = gmsh
set file name = ../mesh/bare-plate-2D.msh
set initial refinement = 4
end
subsection box refinement
subsection mesh
set type = dealii
set grid type = subdivided_hyper_rectangle
set grid arguments = 8,1 : 0,0.3925: 0.6,0.4675: false
end
set initial refinement = 3
end
Mesh Adaptation#
As the laser heats the metal-gas interface, a vapor depression forms and deepens, and the liquid-gas interface reaches the bottom boundary of the box refinement. Hence, we dynamically adapt the mesh using the temperature
as the refinement variable
to keep a well discretized interface. We choose \(7\) as the min refinement level
and \(4\) as the max refinement level
. The mesh is adapted each \(20\) iterations to reduce the computational cost by setting frequency = 20
. Note that the fraction coarsening
is set to \(0.0\) to avoid coarsening in the center of the melt pool, where the temperature gradient, used by the Kelly error estimator, is less important than at the liquid-gas interface.
subsection mesh adaptation
set type = kelly
set variable = temperature
set fraction type = fraction
set max refinement level = 7
set min refinement level = 4
set frequency = 20
set fraction refinement = 0.4
set fraction coarsening = 0.0
end
Boundary Conditions#
In the boundary conditions
subsection, we set the boundary conditions described in the figure above for the NS, HT, and VOF solvers. The following subsection boundary conditions
sets the NS boundary conditions:
subsection boundary conditions
set number = 6
subsection bc 0
set id = 2 # bottom wall
set type = noslip
end
subsection bc 1
set id = 5 # bottom part of the right wall
set type = noslip
end
subsection bc 2
set id = 6
set type = outlet # top part of the right wall
set beta = 0
end
subsection bc 3
set id = 7
set type = slip # top wall
end
subsection bc 4
set id = 4 # top part of the left wall
set type = function
subsection u
set Function expression = 100.0
end
subsection v
set Function expression = 0
end
end
subsection bc 5
set id = 3 # bottom part of the left wall
set type = noslip
end
end
In subsection boundary conditions heat transfer
, we set the boundary conditions for the HT solver:
subsection boundary conditions heat transfer
set number = 6
subsection bc 0
set id = 2 # bottom wall
set type = temperature
subsection value
set Function expression = 298
end
end
subsection bc 1
set id = 5 # bottom part of the right wall
set type = noflux
end
subsection bc 2
set id = 6 # top part of the right wall
set type = noflux
end
subsection bc 3
set id = 7 # top wall
set type = noflux
end
subsection bc 4
set id = 4 # top part of the left wall
set type = temperature
subsection value
set Function expression = 298
end
end
subsection bc 5
set id = 3 # bottom part of the left wall
set type = noflux
end
end
Note
We recover the id
of each boundary at the end of the mesh file generated with Pointwise (mesh/bare-plate-2D.msh
):
$PhysicalNames
6
1 2 "bottom"
1 3 "left_bottom"
1 4 "left_top"
1 5 "right_bottom"
1 6 "right_top"
1 7 "top"
$EndPhysicalNames
Here, the id
corresponds to the second column and we identify the corresponding boundary in the domain with the description given in the third column.
For the sake of brevity, we leave out the subsection boundary conditions VOF
because they all corresponds to no flux boundary conditions (none
). However, in the example’s parameter file, all boundary conditions are defined.
Initial Conditions#
In the initial conditions
subsection, we set the initial condition for all the solvers:
NS intial conditions are \(0.0\) for both velocity components and for the pressure
HT intial condition corresponds to a uniform temperature \(T_\text{0} = 298\;\text{K}\)
VOF intial condition allows us to described the metal and gas phases. The bottom part of the domain (\(y<430\;\mu\text{m}\)) corresponds to the Ti6Al4V metal phase (
fluid 1
), while Argon (fluid 0
) fills the top part.
subsection initial conditions
set type = nodal
subsection uvwp
set Function expression = 0; 0; 0
end
subsection temperature
set Function expression = 298
end
subsection VOF
set Function expression = if (y<0.43 , 1, 0)
end
end
Physical Properties#
The physical properties
subsection sets the material properties for the metal and gas phase. It is in this subsection that we activate the phase change by setting the solid and liquid properties for the metal phase, in the same fashion as in the Stefan problem and melting cavity examples. However, since we consider an alloy (TI6Al4V), the phase change occurs over a temperature range. Hence, the difference between the liquidus temperature
and solidus temperature
corresponds to the real temperature range in which the solid and liquid TI6Al4V coexist (mushy zone).
We also set in this subsection the reference surface tension coefficient of the metal-gas interface and its temperature derivative to simulate the Maragoni effect. Here, we consider a linear evolution of the surface tension coefficient with the temperature at the liquid-gas interface, and we neglect its effect at the solid-gas interface to avoid numerical instabilities. This is done by setting surface tension model = phase change
. We refer to the parameter guide Physical Properties for more details on this model.
subsection physical properties
set number of fluids = 2
subsection fluid 1
set density = 4.42e-6
set thermal conductivity = 2.88e4
set thermal expansion model = phase_change
set rheological model = phase_change
set specific heat model = phase_change
subsection phase change
set liquidus temperature = 1928.0
set solidus temperature = 1878.0
set viscosity liquid = 0.905
set viscosity solid = 9.05e4
set specific heat liquid = 1.126e9
set specific heat solid = 0.8e9
set latent enthalpy = 2.9e11
end
end
subsection fluid 0
set density = 1.784e-9
set thermal conductivity = 18
set kinematic viscosity = 56.1
set specific heat = 5.20e8
end
set number of material interactions = 1
subsection material interaction 0
set type = fluid-fluid
subsection fluid-fluid interaction
set first fluid id = 0
set second fluid id = 1
set surface tension model = phase change
set surface tension coefficient = 1.52
set reference state temperature = 1928.0
set temperature-driven surface tension gradient = -5.5e-4
set liquidus temperature = 1928.0
set solidus temperature = 1878.0
end
end
end
Laser parameters#
We defined the laser heat source in the laser parameters
subsection. In the present example, we are considering the irradiation of a bare plate. Thus, the laser only heats the metal-gas interface and we model this surface heat flux using the gaussian_heat_flux_vof_interface
laser model. We refer to the parameter guide Laser Heat Source for more details on this model.
subsection laser parameters
set enable = true
set type = gaussian_heat_flux_vof_interface
set power = 156e6
set absorptivity = 0.35
set beam radius = 0.07
set start time = 0
set end time = 0.002
set beam orientation = y-
subsection path
set Function expression = 0.3; 0.43
end
end
The laser is static in the middle of the domain at the metal-gas interface \(\vec{x} = [0.3, 0.43]\), hence its path
is independent of the time. Note that the \(y\) component of the path
is not relevant: the gaussian_heat_flux_vof_interface
model applies the laser heat flux at the metal-gas interface no matter its postion along the \(y\) axis. This allows us to model the effect of the interface deformation on the surface heat flux.
Evaporation#
The cooling and the recoil pressure due to a fast, out of equilibrium, evaporation are driving forces in the energy and momentum balances, respectively. We active both terms in the evaporation
subsection.
subsection evaporation
set evaporation mass flux model = temperature_dependent
set enable evaporative cooling = true
set enable recoil pressure = true
set evaporation coefficient = 0.82
set recoil pressure coefficient = 0.56
set evaporation latent heat = 8.9e12
set molar mass = 4.58e-2
set universal gas constant = 8.314e6
set boiling temperature = 3550.0
set ambient pressure = 101.325
end
In this example, we consider the model of Anisimov and Khokhlov [2] to compute the evaporative cooling \(q_\text{evap}\) and the recoil pressure \(p_\text{rec}\):
where \(\phi_\text{evap}=0.82\) and \(\psi_\text{evap}=0.56\) are the evaporation coefficient
and recoil pressure coefficient
, respectively, \(L_\text{vap}=8.9\times 10^{6}\;\text{Jkg}^{-1}\) is the evaporation latent heat
, \(M=4.58\times 10^{-2}\) is the molar mass
of the metal, \(R=8.314\;\text{Jmol K}^{-1}\) is the universal gas constant
and \(p_\text{sat}\) is the saturation pressure. The latter is computed according to:
where \(p_\text{atm}=101.325\;\text{kPa}\) is the ambient pressure
, and \(T_\text{boil}=3550\;\text{K}\) is the boiling temperature
.
Both terms are then applied at the liquid-gas interface using the Continuous Surface Force (CSF) model, as described for the surface tension in The Volume of Fluid (VOF) Method theory guide.
Non-Linear Solver#
The parameters for the non-linear system resolution of the three physiscs are set in the non-linear solver
subsection.
subsection non-linear solver
subsection fluid dynamics
set tolerance = 1e-4
set max iterations = 20
set verbosity = verbose
end
subsection heat transfer
set tolerance = 100
set max iterations = 20
set verbosity = verbose
end
subsection VOF
set tolerance = 1e-4
set max iterations = 20
set verbosity = verbose
end
end
We select the tolerances of the NS and HT non-linear solvers so that the norm of the velocity, pressure and temperature corrections make sense with the order of magnitude of the corresponding solution. For example, we set the tolerance on the residual of the HT solver to 100
, resulting in a maximal correction of \(\text{O}(1\times 10^{-3})\) on the temperature, which is \(\text{O}(1\times 10^{3})\):
--------------
Heat Transfer
--------------
Newton iteration: 0 - Residual: 1.985e+07
-Tolerance of iterative solver is : 1.985e+05
-Iterative solver took : 2 steps to reach a residual norm of 3.944e+04
alpha = 1 res = 1.583e+05 ||dT||_L2 = 71.89 ||dT||_Linfty = 15.46
Newton iteration: 1 - Residual: 1.583e+05
-Tolerance of iterative solver is : 1583
-Iterative solver took : 2 steps to reach a residual norm of 409.8
alpha = 1 res = 1074 ||dT||_L2 = 0.3355 ||dT||_Linfty = 0.103
Newton iteration: 2 - Residual: 1074
-Tolerance of iterative solver is : 10.74
-Iterative solver took : 2 steps to reach a residual norm of 5.567
alpha = 1 res = 5.47 ||dT||_L2 = 0.0111 ||dT||_Linfty = 0.001807
The linear solver tolerances are set accordingly.
Running the Simulation#
We call lethe-fluid
to launch the simulation by invoking the following command from the 2D
subdirectory:
Warning
Make sure to compile Lethe in Release mode and run in parallel using mpirun. This simulation takes \(\sim \, 24\) hours on \(12\) processes.
Results#
The following video shows on the left the temperature evolution in the metal, and on the right, the phase fraction evolution. We observe the melt pool, delimited by the black line, deepening and the formation of the vapor depression at the liquid-gas interface. This is often refered as a keyhole. It is caused by the recoil pressure, resulting from the fast out of equilibrium evaporation, and the Marangoni effect, driving melt alway from the melt pool center.
We also observe a air cushion forming at the triple-phase contact line. We assume it is linked to the fact that wetting is not modeled in the simulation. Thus, the implementation of a wetting model corresponds to a future addition in Lethe.