Multilayer Simulation


Multilayer simulation is a step-by-step cycle of powder depostion and particle bed fusion.

In KiSSAM, each layer requires a separate simulation setup. It is recommended to create a directory for each layer, prepare JSON file in each directory.

The first layer is manufactured over a flat substrate. For each next layer, we require

  • The geometry output of the previous layer as the starting geometry

  • The powder that is deposited on the surface that was produced in the previous layer

In short, after the simulation of the previous layer is finished, we need to:
  • clean up the geometry of the previous layer;

  • convert the geometry of the previous layer to the triangulated surface for the powder deposition;

  • simplify the surface for the powder deposition simulation;

  • configure the simulation of the next layer of powder particles deposition and run it;

  • insert the geometry of the previous layer and the new powder layer into the simulation setup of the next layer.

Preparation of the next layer

The geometry of the melted layer is in geometry.vdb file of the previous layer simulation.

First, let us clean up the geometry and put it in the directory for the next layer simulation (Layer1).

/opt/KiSSAM/scripts/removeIsolated.x geometry.vdb sim_geometry.vdb

The sim_geometry.vdb is generated. Create a directory for the next layer simulation. Copy the sim_geometry.vdb into the directory. You can also copy the JSON file of the previous layer, since many simulation parameters are often the same.

The powder gereration software works with 3D triangulated surface, but sim_geometry.vdb contains volume data. To generate triangulated surface, run

/opt/KiSSAM/scripts/vdb2stl.x sim_geometry.vdb surface.stl

The surface.stl file is generated.

The surface resolution is high. To make the powder deposition software run faster, the surface is simplified with the script

/share/scripts/ surface.stl

The surface-decimated.stl file is generated. Let us include it in the powder generation.

In the JSON file,

"Substrate": {
    "initGeometryVDBfile": "sim_geometry.vdb",
"PowderBedGenerator": {
    "GroundSurface": "surface-decimated.stl",

The newly generated surface-decimated.stl is used as the substrate for powder generation.

Do not forget to add the platform step value to the knife position in the powder generator settings.

Launch the powder generation script:

/share/bin/PowDEM layer1.json -n

The spheres.dat is generated.

Launch rasterization script:

/opt/KiSSAM/scripts/rasterizeSpheres.x 3 spheres.dat

The init_spheres.vdb is generated. 3 is the mesh step in the simulation by default. It should be the same as the one used in the KiSSAM simulation in the NumericalParams.dr field (see JSON file description).

Simulation setup

The geometry of the previous layer and the new generated powder should be included in the generation.

"Powder": {
    "initSpheresVDBfile": "init_spheres.vdb",
"Substrate": {
    "initGeometryVDBfile": "sim_geometry.vdb",

It may be necessary to change scanning strategy.

Powder Layer Thickness and Platform step

In the simulation of every subsequent layer, the knife position should be increased by the value of the platform step. Initially, powder layer thickness is equal to the distance between flat substrate and knife position. However, the melted surface height is uneven, and powder thickness varies. To account for this, we recommend to set double the value of the platform step on the first layer.

Here, for the simulation with platform step equal to 40 μm, we set the knife 80 μm over the substrate:


The surface is melted with laser and solidified:


The knife is raised 40 μm and the next layer of powder is deposited:


Note that the powder thickness varies from 0 to \(>120\) μm.