Parametric study#

This example shows how to use PyAdditive to perform a parametric study. You perform a parametric study if you want to optimize additive machine parameters to achieve a specific result. Here, the ParametricStudy class is used to conduct a parametric study. While not essential, the ParametricStudy class provides data management features that make the work easier.

Units are SI (m, kg, s, K) unless otherwise noted.

Perform required imports and create a study#

Perform the required import and create a ParametricStudy instance.

import numpy as np
import pandas as pd

from ansys.additive.core import Additive, SimulationStatus, SimulationType
from ansys.additive.core.parametric_study import ColumnNames, ParametricStudy

Select a material for the study#

Select a material to use in the study. The material name must be known by the Additive service. You can connect to the Additive service and print a list of available materials prior to selecting one.

additive = Additive()
print("Available material names: {}".format(additive.materials_list()))
material = "IN718"
Available material names: ['AlSi10Mg', 'Al357', 'CoCr', 'IN718', 'IN625', '316L', '17-4PH', 'Ti64']

Create the study#

Create the parametric study with a name and the selected material.

study = ParametricStudy("demo-study", material)

Get the study file name#

The current state of the parametric study is saved to a file upon each update. You can retrieve the name of the file as shown below. This file uses a binary format and is not human readable.

print(study.file_name)
/home/runner/work/pyadditive/pyadditive/examples/demo-study.ps

Create a single bead evaluation#

Parametric studies often start with single bead simulations to determine melt pool statistics. Here, the generate_single_bead_permutations() method is used to generate single bead simulation permutations. The parameters for the generate_single_bead_permutations() method allow you to specify a range of machine parameters and filter them by the P/V ratio. Not all the parameters shown are required. Optional parameters that are not specified use default values defined in the MachineConstants class.

# Specify a range of laser powers. Valid values are 50 to 700 W.
initial_powers = np.linspace(50, 700, 7)
# Specify a range of laser scan speeds. Valid values are 0.35 to 2.5 m/s.
initial_scan_speeds = np.linspace(0.35, 2.5, 5)
# Specify powder layer thicknesses. Valid values are 10e-6 to 100e-6 m.
initial_layer_thicknesses = [40e-6, 50e-6]
# Specify laser beam diameters. Valid values are 20e-6 to 140e-6 m.
initial_beam_diameters = [80e-6]
# Specify heater temperatures. Valid values are 20 - 500 C.
initial_heater_temps = [80]
# Restrict the permutations within a range of P/V ratios. The P is for laser power
# and the V is for velocity, which is the laser scan speed.
min_pv_ratio = 80
max_pv_ratio = 400
# Specify a bead length in meters.
bead_length = 0.001

study.generate_single_bead_permutations(
    bead_length=bead_length,
    laser_powers=initial_powers,
    scan_speeds=initial_scan_speeds,
    layer_thicknesses=initial_layer_thicknesses,
    beam_diameters=initial_beam_diameters,
    heater_temperatures=initial_heater_temps,
    min_pv_ratio=min_pv_ratio,
    max_pv_ratio=max_pv_ratio,
)
36

Show the simulations as a table#

The data_frame() method returns a DataFrame object that can be used to display the simulations as a table. Here, the head() method is used to display all the rows of the table.

df = study.data_frame()
pd.set_option("display.max_columns", None)  # show all columns
df.head(len(df))
Iteration Priority Type ID Status Material Heater Temp (C) Layer Thickness (m) Beam Diameter (m) Laser Power (W) Scan Speed (m/s) Laser Power/Scan Speed (J/m) Start Angle (degrees) Rotation Angle (degrees) Hatch Spacing (m) Stripe Width (m) Heat Source Ring Mode Index Energy Density (J/m^3) Single Bead Length (m) Single Bead Thermal History Flag Single Bead Thermal History Interval (steps) Build Rate (m^3/s) Melt Pool Width (m) Melt Pool Depth (m) Melt Pool Length (m) Melt Pool Length/Width Melt Pool Ref Width (m) Melt Pool Ref Depth (m) Melt Pool Ref Depth/Width Porosity Size X (m) Porosity Size Y (m) Porosity Size Z (m) Relative Density Micro Min X (m) Micro Min Y (m) Micro Min Z (m) Micro Size X (m) Micro Size Y (m) Micro Size Z (m) Micro Sensor Dim (m) Cooling Rate (K/s) Thermal Gradient (K/m) Micro Melt Pool Width (m) Micro Melt Pool Depth (m) Random Seed XY Average Grain Size (microns) XZ Average Grain Size (microns) YZ Average Grain Size (microns) Error Message
0 0 1 SimulationType.SINGLE_BEAD sb_0_RSZ0wQ SimulationStatus.NEW IN718 80 0.00004 0.00008 50.0 0.35 142.857143 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1 0 1 SimulationType.SINGLE_BEAD sb_0_LHUk3F SimulationStatus.NEW IN718 80 0.00005 0.00008 50.0 0.35 142.857143 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2 0 1 SimulationType.SINGLE_BEAD sb_0_DkydMM SimulationStatus.NEW IN718 80 0.00004 0.00008 158.333333 0.8875 178.403756 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
3 0 1 SimulationType.SINGLE_BEAD sb_0_pZdHDJ SimulationStatus.NEW IN718 80 0.00005 0.00008 158.333333 0.8875 178.403756 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
4 0 1 SimulationType.SINGLE_BEAD sb_0_qRTpV3 SimulationStatus.NEW IN718 80 0.00004 0.00008 158.333333 1.425 111.111111 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
5 0 1 SimulationType.SINGLE_BEAD sb_0_ysuMqV SimulationStatus.NEW IN718 80 0.00005 0.00008 158.333333 1.425 111.111111 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
6 0 1 SimulationType.SINGLE_BEAD sb_0_3F7rfD SimulationStatus.NEW IN718 80 0.00004 0.00008 158.333333 1.9625 80.679406 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
7 0 1 SimulationType.SINGLE_BEAD sb_0_QFU6mg SimulationStatus.NEW IN718 80 0.00005 0.00008 158.333333 1.9625 80.679406 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
8 0 1 SimulationType.SINGLE_BEAD sb_0_rFJQO6 SimulationStatus.NEW IN718 80 0.00004 0.00008 266.666667 0.8875 300.469484 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
9 0 1 SimulationType.SINGLE_BEAD sb_0_HSpfZ4 SimulationStatus.NEW IN718 80 0.00005 0.00008 266.666667 0.8875 300.469484 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
10 0 1 SimulationType.SINGLE_BEAD sb_0_TDA1EX SimulationStatus.NEW IN718 80 0.00004 0.00008 266.666667 1.425 187.134503 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
11 0 1 SimulationType.SINGLE_BEAD sb_0_6pCbP3 SimulationStatus.NEW IN718 80 0.00005 0.00008 266.666667 1.425 187.134503 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
12 0 1 SimulationType.SINGLE_BEAD sb_0_A8VKYR SimulationStatus.NEW IN718 80 0.00004 0.00008 266.666667 1.9625 135.881104 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
13 0 1 SimulationType.SINGLE_BEAD sb_0_jHvVnY SimulationStatus.NEW IN718 80 0.00005 0.00008 266.666667 1.9625 135.881104 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
14 0 1 SimulationType.SINGLE_BEAD sb_0_ODq8p7 SimulationStatus.NEW IN718 80 0.00004 0.00008 266.666667 2.5 106.666667 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
15 0 1 SimulationType.SINGLE_BEAD sb_0_BsJzJx SimulationStatus.NEW IN718 80 0.00005 0.00008 266.666667 2.5 106.666667 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
16 0 1 SimulationType.SINGLE_BEAD sb_0_XHRDnV SimulationStatus.NEW IN718 80 0.00004 0.00008 375.0 1.425 263.157895 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
17 0 1 SimulationType.SINGLE_BEAD sb_0_9gRrDI SimulationStatus.NEW IN718 80 0.00005 0.00008 375.0 1.425 263.157895 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
18 0 1 SimulationType.SINGLE_BEAD sb_0_H5uGOU SimulationStatus.NEW IN718 80 0.00004 0.00008 375.0 1.9625 191.082803 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
19 0 1 SimulationType.SINGLE_BEAD sb_0_0rFBLq SimulationStatus.NEW IN718 80 0.00005 0.00008 375.0 1.9625 191.082803 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
20 0 1 SimulationType.SINGLE_BEAD sb_0_4YS6df SimulationStatus.NEW IN718 80 0.00004 0.00008 375.0 2.5 150.0 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
21 0 1 SimulationType.SINGLE_BEAD sb_0_i7hZOa SimulationStatus.NEW IN718 80 0.00005 0.00008 375.0 2.5 150.0 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
22 0 1 SimulationType.SINGLE_BEAD sb_0_yJYYC1 SimulationStatus.NEW IN718 80 0.00004 0.00008 483.333333 1.425 339.181287 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
23 0 1 SimulationType.SINGLE_BEAD sb_0_syoDZF SimulationStatus.NEW IN718 80 0.00005 0.00008 483.333333 1.425 339.181287 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
24 0 1 SimulationType.SINGLE_BEAD sb_0_P8ASrq SimulationStatus.NEW IN718 80 0.00004 0.00008 483.333333 1.9625 246.284501 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
25 0 1 SimulationType.SINGLE_BEAD sb_0_6krqDF SimulationStatus.NEW IN718 80 0.00005 0.00008 483.333333 1.9625 246.284501 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
26 0 1 SimulationType.SINGLE_BEAD sb_0_lEN9OF SimulationStatus.NEW IN718 80 0.00004 0.00008 483.333333 2.5 193.333333 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
27 0 1 SimulationType.SINGLE_BEAD sb_0_clVaZp SimulationStatus.NEW IN718 80 0.00005 0.00008 483.333333 2.5 193.333333 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
28 0 1 SimulationType.SINGLE_BEAD sb_0_7P2y4t SimulationStatus.NEW IN718 80 0.00004 0.00008 591.666667 1.9625 301.4862 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
29 0 1 SimulationType.SINGLE_BEAD sb_0_z1Vpq2 SimulationStatus.NEW IN718 80 0.00005 0.00008 591.666667 1.9625 301.4862 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
30 0 1 SimulationType.SINGLE_BEAD sb_0_7bI7Hf SimulationStatus.NEW IN718 80 0.00004 0.00008 591.666667 2.5 236.666667 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
31 0 1 SimulationType.SINGLE_BEAD sb_0_MpD7wh SimulationStatus.NEW IN718 80 0.00005 0.00008 591.666667 2.5 236.666667 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
32 0 1 SimulationType.SINGLE_BEAD sb_0_LPQseH SimulationStatus.NEW IN718 80 0.00004 0.00008 700.0 1.9625 356.687898 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
33 0 1 SimulationType.SINGLE_BEAD sb_0_cI3dGS SimulationStatus.NEW IN718 80 0.00005 0.00008 700.0 1.9625 356.687898 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
34 0 1 SimulationType.SINGLE_BEAD sb_0_jcKl3t SimulationStatus.NEW IN718 80 0.00004 0.00008 700.0 2.5 280.0 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
35 0 1 SimulationType.SINGLE_BEAD sb_0_i5eTpp SimulationStatus.NEW IN718 80 0.00005 0.00008 700.0 2.5 280.0 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN


Skip some simulations#

If you are working with a large parametric study, you may want to skip some simulations to reduce processing time. To do so, set the simulation status to SimulationStatus.SKIP which is defined in the SimulationStatus class. Here, a DataFrame object is obtained, a filter is applied to get a list of simulation IDs, and then the status is updated on the simulations with those IDs.

df = study.data_frame()
# Get IDs for single bead simulations with laser power below 75 W.
ids = df.loc[
    (df[ColumnNames.LASER_POWER] < 75) & (df[ColumnNames.TYPE] == SimulationType.SINGLE_BEAD),
    ColumnNames.ID,
].tolist()
study.set_simulation_status(ids, SimulationStatus.SKIP)
print(study.data_frame()[[ColumnNames.ID, ColumnNames.TYPE, ColumnNames.STATUS]])
             ID                        Type                 Status
0   sb_0_RSZ0wQ  SimulationType.SINGLE_BEAD  SimulationStatus.SKIP
1   sb_0_LHUk3F  SimulationType.SINGLE_BEAD  SimulationStatus.SKIP
2   sb_0_DkydMM  SimulationType.SINGLE_BEAD   SimulationStatus.NEW
3   sb_0_pZdHDJ  SimulationType.SINGLE_BEAD   SimulationStatus.NEW
4   sb_0_qRTpV3  SimulationType.SINGLE_BEAD   SimulationStatus.NEW
5   sb_0_ysuMqV  SimulationType.SINGLE_BEAD   SimulationStatus.NEW
6   sb_0_3F7rfD  SimulationType.SINGLE_BEAD   SimulationStatus.NEW
7   sb_0_QFU6mg  SimulationType.SINGLE_BEAD   SimulationStatus.NEW
8   sb_0_rFJQO6  SimulationType.SINGLE_BEAD   SimulationStatus.NEW
9   sb_0_HSpfZ4  SimulationType.SINGLE_BEAD   SimulationStatus.NEW
10  sb_0_TDA1EX  SimulationType.SINGLE_BEAD   SimulationStatus.NEW
11  sb_0_6pCbP3  SimulationType.SINGLE_BEAD   SimulationStatus.NEW
12  sb_0_A8VKYR  SimulationType.SINGLE_BEAD   SimulationStatus.NEW
13  sb_0_jHvVnY  SimulationType.SINGLE_BEAD   SimulationStatus.NEW
14  sb_0_ODq8p7  SimulationType.SINGLE_BEAD   SimulationStatus.NEW
15  sb_0_BsJzJx  SimulationType.SINGLE_BEAD   SimulationStatus.NEW
16  sb_0_XHRDnV  SimulationType.SINGLE_BEAD   SimulationStatus.NEW
17  sb_0_9gRrDI  SimulationType.SINGLE_BEAD   SimulationStatus.NEW
18  sb_0_H5uGOU  SimulationType.SINGLE_BEAD   SimulationStatus.NEW
19  sb_0_0rFBLq  SimulationType.SINGLE_BEAD   SimulationStatus.NEW
20  sb_0_4YS6df  SimulationType.SINGLE_BEAD   SimulationStatus.NEW
21  sb_0_i7hZOa  SimulationType.SINGLE_BEAD   SimulationStatus.NEW
22  sb_0_yJYYC1  SimulationType.SINGLE_BEAD   SimulationStatus.NEW
23  sb_0_syoDZF  SimulationType.SINGLE_BEAD   SimulationStatus.NEW
24  sb_0_P8ASrq  SimulationType.SINGLE_BEAD   SimulationStatus.NEW
25  sb_0_6krqDF  SimulationType.SINGLE_BEAD   SimulationStatus.NEW
26  sb_0_lEN9OF  SimulationType.SINGLE_BEAD   SimulationStatus.NEW
27  sb_0_clVaZp  SimulationType.SINGLE_BEAD   SimulationStatus.NEW
28  sb_0_7P2y4t  SimulationType.SINGLE_BEAD   SimulationStatus.NEW
29  sb_0_z1Vpq2  SimulationType.SINGLE_BEAD   SimulationStatus.NEW
30  sb_0_7bI7Hf  SimulationType.SINGLE_BEAD   SimulationStatus.NEW
31  sb_0_MpD7wh  SimulationType.SINGLE_BEAD   SimulationStatus.NEW
32  sb_0_LPQseH  SimulationType.SINGLE_BEAD   SimulationStatus.NEW
33  sb_0_cI3dGS  SimulationType.SINGLE_BEAD   SimulationStatus.NEW
34  sb_0_jcKl3t  SimulationType.SINGLE_BEAD   SimulationStatus.NEW
35  sb_0_i5eTpp  SimulationType.SINGLE_BEAD   SimulationStatus.NEW

Run single bead simulations#

Run the simulations using the simulate_study() method. All simulations with a SimulationStatus.NEW status are executed.

additive.simulate_study(study)

View single bead results#

The single bead simulation results are shown in the Melt Pool Width (m), Melt Pool Depth (m), Melt Pool Length (m), Melt Pool Length/Width, Melt Pool Ref Width (m), Melt Pool Ref Depth (m), and Melt Pool Ref Depth/Width columns of the data frame. For explanations of these columns, see ColumnNames.

study.data_frame().head(len(study.data_frame()))
Iteration Priority Type ID Status Material Heater Temp (C) Layer Thickness (m) Beam Diameter (m) Laser Power (W) Scan Speed (m/s) Laser Power/Scan Speed (J/m) Start Angle (degrees) Rotation Angle (degrees) Hatch Spacing (m) Stripe Width (m) Heat Source Ring Mode Index Energy Density (J/m^3) Single Bead Length (m) Single Bead Thermal History Flag Single Bead Thermal History Interval (steps) Build Rate (m^3/s) Melt Pool Width (m) Melt Pool Depth (m) Melt Pool Length (m) Melt Pool Length/Width Melt Pool Ref Width (m) Melt Pool Ref Depth (m) Melt Pool Ref Depth/Width Porosity Size X (m) Porosity Size Y (m) Porosity Size Z (m) Relative Density Micro Min X (m) Micro Min Y (m) Micro Min Z (m) Micro Size X (m) Micro Size Y (m) Micro Size Z (m) Micro Sensor Dim (m) Cooling Rate (K/s) Thermal Gradient (K/m) Micro Melt Pool Width (m) Micro Melt Pool Depth (m) Random Seed XY Average Grain Size (microns) XZ Average Grain Size (microns) YZ Average Grain Size (microns) Error Message
0 0 1 SimulationType.SINGLE_BEAD sb_0_RSZ0wQ SimulationStatus.SKIP IN718 80 0.00004 0.00008 50.0 0.35 142.857143 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1 0 1 SimulationType.SINGLE_BEAD sb_0_LHUk3F SimulationStatus.SKIP IN718 80 0.00005 0.00008 50.0 0.35 142.857143 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2 0 1 SimulationType.SINGLE_BEAD sb_0_DkydMM SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 158.333333 0.8875 178.403756 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None 0.00014 0.00008 0.000407 2.909518 0.000102 0.00004 0.387364 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
3 0 1 SimulationType.SINGLE_BEAD sb_0_pZdHDJ SimulationStatus.COMPLETED IN718 80 0.00005 0.00008 158.333333 0.8875 178.403756 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None 0.000143 0.000083 0.000424 2.969351 0.000091 0.000033 0.357957 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
4 0 1 SimulationType.SINGLE_BEAD sb_0_qRTpV3 SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 158.333333 1.425 111.111111 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None 0.000123 0.000052 0.000432 3.522586 0.000066 0.000012 0.180992 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
5 0 1 SimulationType.SINGLE_BEAD sb_0_ysuMqV SimulationStatus.COMPLETED IN718 80 0.00005 0.00008 158.333333 1.425 111.111111 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None 0.000123 0.000056 0.000453 3.672324 0.000045 0.000006 0.13629 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
6 0 1 SimulationType.SINGLE_BEAD sb_0_3F7rfD SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 158.333333 1.9625 80.679406 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None 0.000111 0.000042 0.000451 4.055825 0.000023 0.000002 0.066085 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
7 0 1 SimulationType.SINGLE_BEAD sb_0_QFU6mg SimulationStatus.COMPLETED IN718 80 0.00005 0.00008 158.333333 1.9625 80.679406 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None 0.000111 0.000046 0.000485 4.374324 0.0 0.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
8 0 1 SimulationType.SINGLE_BEAD sb_0_rFJQO6 SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 266.666667 0.8875 300.469484 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None 0.000164 0.000144 0.000495 3.017293 0.000134 0.000104 0.774275 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
9 0 1 SimulationType.SINGLE_BEAD sb_0_HSpfZ4 SimulationStatus.COMPLETED IN718 80 0.00005 0.00008 266.666667 0.8875 300.469484 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None 0.000168 0.00015 0.000502 2.987421 0.000128 0.0001 0.785486 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
10 0 1 SimulationType.SINGLE_BEAD sb_0_TDA1EX SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 266.666667 1.425 187.134503 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None 0.00014 0.000086 0.000513 3.66501 0.000103 0.000046 0.442616 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
11 0 1 SimulationType.SINGLE_BEAD sb_0_6pCbP3 SimulationStatus.COMPLETED IN718 80 0.00005 0.00008 266.666667 1.425 187.134503 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None 0.000144 0.000089 0.000524 3.648296 0.000094 0.000039 0.410312 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
12 0 1 SimulationType.SINGLE_BEAD sb_0_A8VKYR SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 266.666667 1.9625 135.881104 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None 0.000129 0.00006 0.000534 4.142145 0.00008 0.00002 0.2555 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
13 0 1 SimulationType.SINGLE_BEAD sb_0_jHvVnY SimulationStatus.COMPLETED IN718 80 0.00005 0.00008 266.666667 1.9625 135.881104 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None 0.000132 0.000064 0.000547 4.157178 0.000067 0.000014 0.215802 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
14 0 1 SimulationType.SINGLE_BEAD sb_0_ODq8p7 SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 266.666667 2.5 106.666667 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None 0.000118 0.000049 0.000535 4.523908 0.000057 0.000009 0.163339 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
15 0 1 SimulationType.SINGLE_BEAD sb_0_BsJzJx SimulationStatus.COMPLETED IN718 80 0.00005 0.00008 266.666667 2.5 106.666667 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None 0.00012 0.000055 0.000547 4.5686 0.000039 0.000005 0.120028 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
16 0 1 SimulationType.SINGLE_BEAD sb_0_XHRDnV SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 375.0 1.425 263.157895 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None 0.000158 0.000126 0.000542 3.439127 0.000124 0.000086 0.696975 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
17 0 1 SimulationType.SINGLE_BEAD sb_0_9gRrDI SimulationStatus.COMPLETED IN718 80 0.00005 0.00008 375.0 1.425 263.157895 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None 0.000162 0.000133 0.00055 3.401133 0.000117 0.000083 0.703787 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
18 0 1 SimulationType.SINGLE_BEAD sb_0_H5uGOU SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 375.0 1.9625 191.082803 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None 0.000139 0.000089 0.000562 4.047508 0.000102 0.000049 0.480996 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
19 0 1 SimulationType.SINGLE_BEAD sb_0_0rFBLq SimulationStatus.COMPLETED IN718 80 0.00005 0.00008 375.0 1.9625 191.082803 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None 0.000143 0.000093 0.000571 4.00096 0.000094 0.000043 0.452533 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
20 0 1 SimulationType.SINGLE_BEAD sb_0_4YS6df SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 375.0 2.5 150.0 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None 0.000131 0.000066 0.000561 4.299853 0.000085 0.000026 0.303818 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
21 0 1 SimulationType.SINGLE_BEAD sb_0_i7hZOa SimulationStatus.COMPLETED IN718 80 0.00005 0.00008 375.0 2.5 150.0 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None 0.000134 0.00007 0.000569 4.240953 0.000074 0.00002 0.274189 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
22 0 1 SimulationType.SINGLE_BEAD sb_0_yJYYC1 SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 483.333333 1.425 339.181287 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None 0.000166 0.00017 0.000557 3.351041 0.000138 0.00013 0.944604 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
23 0 1 SimulationType.SINGLE_BEAD sb_0_syoDZF SimulationStatus.COMPLETED IN718 80 0.00005 0.00008 483.333333 1.425 339.181287 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None 0.000169 0.000179 0.000564 3.329164 0.000133 0.000129 0.964388 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
24 0 1 SimulationType.SINGLE_BEAD sb_0_P8ASrq SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 483.333333 1.9625 246.284501 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None 0.00015 0.000118 0.000577 3.845883 0.000118 0.000078 0.659114 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
25 0 1 SimulationType.SINGLE_BEAD sb_0_6krqDF SimulationStatus.COMPLETED IN718 80 0.00005 0.00008 483.333333 1.9625 246.284501 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None 0.000156 0.000123 0.000586 3.748451 0.000112 0.000073 0.656839 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
26 0 1 SimulationType.SINGLE_BEAD sb_0_lEN9OF SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 483.333333 2.5 193.333333 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None 0.000138 0.000091 0.000576 4.164058 0.000101 0.000051 0.504693 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
27 0 1 SimulationType.SINGLE_BEAD sb_0_clVaZp SimulationStatus.COMPLETED IN718 80 0.00005 0.00008 483.333333 2.5 193.333333 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None 0.000142 0.000095 0.000584 4.124311 0.000094 0.000045 0.476493 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
28 0 1 SimulationType.SINGLE_BEAD sb_0_7P2y4t SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 591.666667 1.9625 301.4862 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None 0.00016 0.000147 0.000587 3.676474 0.00013 0.000107 0.822492 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
29 0 1 SimulationType.SINGLE_BEAD sb_0_z1Vpq2 SimulationStatus.COMPLETED IN718 80 0.00005 0.00008 591.666667 1.9625 301.4862 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None 0.000163 0.000155 0.000594 3.642357 0.000124 0.000105 0.84971 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
30 0 1 SimulationType.SINGLE_BEAD sb_0_7bI7Hf SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 591.666667 2.5 236.666667 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None 0.000145 0.000113 0.000586 4.042671 0.000113 0.000073 0.643361 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
31 0 1 SimulationType.SINGLE_BEAD sb_0_MpD7wh SimulationStatus.COMPLETED IN718 80 0.00005 0.00008 591.666667 2.5 236.666667 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None 0.000149 0.000118 0.000593 3.982188 0.000107 0.000068 0.635871 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
32 0 1 SimulationType.SINGLE_BEAD sb_0_LPQseH SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 700.0 1.9625 356.687898 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None 0.000165 0.00018 0.000594 3.6044 0.000138 0.00014 1.01519 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
33 0 1 SimulationType.SINGLE_BEAD sb_0_cI3dGS SimulationStatus.COMPLETED IN718 80 0.00005 0.00008 700.0 1.9625 356.687898 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None 0.000168 0.00019 0.000599 3.571666 0.000133 0.00014 1.0519 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
34 0 1 SimulationType.SINGLE_BEAD sb_0_jcKl3t SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 700.0 2.5 280.0 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None 0.000152 0.000135 0.000593 3.90692 0.000122 0.000095 0.779679 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
35 0 1 SimulationType.SINGLE_BEAD sb_0_i5eTpp SimulationStatus.COMPLETED IN718 80 0.00005 0.00008 700.0 2.5 280.0 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None 0.000155 0.000143 0.000597 3.843721 0.000117 0.000093 0.795445 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None


Save the study to a CSV file#

The parametric study is saved with each update in a binary format. For other formats, use the to_* methods provided by the DataFrame class.

study.data_frame().to_csv("demo-study.csv")

Import a study from a CSV file#

Import a study from a CSV file using the ParametricStudy.import_csv_study() method. The CSV file must contain the same columns as the parametric study data frame. The ParametricStudy.import_csv_study() method will return a list of errors for each simulation that failed to import and the number of duplicate simulations removed (if any). All other valid simulations will be added to the study.

study2 = ParametricStudy("demo-csv-study.ps", material)
errors = study2.import_csv_study("demo-study.csv")
study2.data_frame().head()
Iteration Priority Type ID Status Material Heater Temp (C) Layer Thickness (m) Beam Diameter (m) Laser Power (W) Scan Speed (m/s) Laser Power/Scan Speed (J/m) Start Angle (degrees) Rotation Angle (degrees) Hatch Spacing (m) Stripe Width (m) Heat Source Ring Mode Index Energy Density (J/m^3) Single Bead Length (m) Single Bead Thermal History Flag Single Bead Thermal History Interval (steps) Build Rate (m^3/s) Melt Pool Width (m) Melt Pool Depth (m) Melt Pool Length (m) Melt Pool Length/Width Melt Pool Ref Width (m) Melt Pool Ref Depth (m) Melt Pool Ref Depth/Width Porosity Size X (m) Porosity Size Y (m) Porosity Size Z (m) Relative Density Micro Min X (m) Micro Min Y (m) Micro Min Z (m) Micro Size X (m) Micro Size Y (m) Micro Size Z (m) Micro Sensor Dim (m) Cooling Rate (K/s) Thermal Gradient (K/m) Micro Melt Pool Width (m) Micro Melt Pool Depth (m) Random Seed XY Average Grain Size (microns) XZ Average Grain Size (microns) YZ Average Grain Size (microns) Error Message
0 0 1 SingleBead sb_0_DkydMM Completed IN718 80 0.00004 0.00008 158.333333 0.8875 178.403756 NaN NaN NaN NaN gaussian 0 NaN 0.001 False 10000 NaN 0.000140 0.000080 0.000407 2.909518 0.000102 0.000040 0.387364 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN <NA> NaN NaN NaN NaN
1 0 1 SingleBead sb_0_pZdHDJ Completed IN718 80 0.00005 0.00008 158.333333 0.8875 178.403756 NaN NaN NaN NaN gaussian 0 NaN 0.001 False 10000 NaN 0.000143 0.000083 0.000424 2.969351 0.000091 0.000033 0.357957 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN <NA> NaN NaN NaN NaN
2 0 1 SingleBead sb_0_qRTpV3 Completed IN718 80 0.00004 0.00008 158.333333 1.4250 111.111111 NaN NaN NaN NaN gaussian 0 NaN 0.001 False 10000 NaN 0.000123 0.000052 0.000432 3.522586 0.000066 0.000012 0.180992 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN <NA> NaN NaN NaN NaN
3 0 1 SingleBead sb_0_ysuMqV Completed IN718 80 0.00005 0.00008 158.333333 1.4250 111.111111 NaN NaN NaN NaN gaussian 0 NaN 0.001 False 10000 NaN 0.000123 0.000056 0.000453 3.672324 0.000045 0.000006 0.136290 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN <NA> NaN NaN NaN NaN
4 0 1 SingleBead sb_0_3F7rfD Completed IN718 80 0.00004 0.00008 158.333333 1.9625 80.679406 NaN NaN NaN NaN gaussian 0 NaN 0.001 False 10000 NaN 0.000111 0.000042 0.000451 4.055825 0.000023 0.000002 0.066085 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN <NA> NaN NaN NaN NaN


Load a previously saved study#

Load a previously saved study using the static ParameticStudy.load() method.

study3 = ParametricStudy.load("demo-study.ps")
study3.data_frame().head()
Iteration Priority Type ID Status Material Heater Temp (C) Layer Thickness (m) Beam Diameter (m) Laser Power (W) Scan Speed (m/s) Laser Power/Scan Speed (J/m) Start Angle (degrees) Rotation Angle (degrees) Hatch Spacing (m) Stripe Width (m) Heat Source Ring Mode Index Energy Density (J/m^3) Single Bead Length (m) Single Bead Thermal History Flag Single Bead Thermal History Interval (steps) Build Rate (m^3/s) Melt Pool Width (m) Melt Pool Depth (m) Melt Pool Length (m) Melt Pool Length/Width Melt Pool Ref Width (m) Melt Pool Ref Depth (m) Melt Pool Ref Depth/Width Porosity Size X (m) Porosity Size Y (m) Porosity Size Z (m) Relative Density Micro Min X (m) Micro Min Y (m) Micro Min Z (m) Micro Size X (m) Micro Size Y (m) Micro Size Z (m) Micro Sensor Dim (m) Cooling Rate (K/s) Thermal Gradient (K/m) Micro Melt Pool Width (m) Micro Melt Pool Depth (m) Random Seed XY Average Grain Size (microns) XZ Average Grain Size (microns) YZ Average Grain Size (microns) Error Message
0 0 1 SimulationType.SINGLE_BEAD sb_0_RSZ0wQ SimulationStatus.SKIP IN718 80 0.00004 0.00008 50.0 0.35 142.857143 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
1 0 1 SimulationType.SINGLE_BEAD sb_0_LHUk3F SimulationStatus.SKIP IN718 80 0.00005 0.00008 50.0 0.35 142.857143 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN
2 0 1 SimulationType.SINGLE_BEAD sb_0_DkydMM SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 158.333333 0.8875 178.403756 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None 0.00014 0.00008 0.000407 2.909518 0.000102 0.00004 0.387364 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
3 0 1 SimulationType.SINGLE_BEAD sb_0_pZdHDJ SimulationStatus.COMPLETED IN718 80 0.00005 0.00008 158.333333 0.8875 178.403756 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None 0.000143 0.000083 0.000424 2.969351 0.000091 0.000033 0.357957 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
4 0 1 SimulationType.SINGLE_BEAD sb_0_qRTpV3 SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 158.333333 1.425 111.111111 NaN NaN NaN NaN gaussian 0 None 0.001 False 10000 None 0.000123 0.000052 0.000432 3.522586 0.000066 0.000012 0.180992 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None


Create a porosity evaluation#

You can use the insights gained from the single bead evaluation to generate parameters for a porosity evaluation. Alternatively, you can perform a porosity evaluation without a previous single bead evaluation. Here, the laser power and scan speeds are determined by filtering the single bead results where the ratio of the melt pool reference depth to reference width is within a specified range. Additionally, the simulations are restricted to a minimum build rate, which is calculated as scan speed * layer thickness * hatch spacing. The generate_porosity_permutations() method is used to add porosity simulations to the study.

df = study.data_frame()
df = df[
    (df[ColumnNames.MELT_POOL_REFERENCE_DEPTH_OVER_WIDTH] >= 0.3)
    & (df[ColumnNames.MELT_POOL_REFERENCE_DEPTH_OVER_WIDTH] <= 0.65)
]

study.generate_porosity_permutations(
    laser_powers=df[ColumnNames.LASER_POWER].unique(),
    scan_speeds=df[ColumnNames.SCAN_SPEED].unique(),
    size_x=1e-3,
    size_y=1e-3,
    size_z=1e-3,
    layer_thicknesses=[40e-6],
    heater_temperatures=[80],
    beam_diameters=[80e-6],
    start_angles=[45],
    rotation_angles=[67.5],
    hatch_spacings=[100e-6],
    min_build_rate=5e-9,
    iteration=1,
)
15

Run porosity simulations#

Run the simulations using the simulate_study() method.

additive.simulate_study(study)

View porosity results#

Porosity simulation results are shown in the Relative Density column of the data frame.

df = study.data_frame()
df = df[df[ColumnNames.TYPE] == SimulationType.POROSITY]
df.head(len(df))
Iteration Priority Type ID Status Material Heater Temp (C) Layer Thickness (m) Beam Diameter (m) Laser Power (W) Scan Speed (m/s) Laser Power/Scan Speed (J/m) Start Angle (degrees) Rotation Angle (degrees) Hatch Spacing (m) Stripe Width (m) Heat Source Ring Mode Index Energy Density (J/m^3) Single Bead Length (m) Single Bead Thermal History Flag Single Bead Thermal History Interval (steps) Build Rate (m^3/s) Melt Pool Width (m) Melt Pool Depth (m) Melt Pool Length (m) Melt Pool Length/Width Melt Pool Ref Width (m) Melt Pool Ref Depth (m) Melt Pool Ref Depth/Width Porosity Size X (m) Porosity Size Y (m) Porosity Size Z (m) Relative Density Micro Min X (m) Micro Min Y (m) Micro Min Z (m) Micro Size X (m) Micro Size Y (m) Micro Size Z (m) Micro Sensor Dim (m) Cooling Rate (K/s) Thermal Gradient (K/m) Micro Melt Pool Width (m) Micro Melt Pool Depth (m) Random Seed XY Average Grain Size (microns) XZ Average Grain Size (microns) YZ Average Grain Size (microns) Error Message
36 1 1 SimulationType.POROSITY por_1_vs2ltt SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 158.333333 1.425 111.111111 45 67.5 0.0001 0.01 gaussian 0 27777777777.777775 NaN NaN NaN 0.0 NaN NaN NaN NaN NaN NaN NaN 0.001 0.001 0.001 0.959907 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
37 1 1 SimulationType.POROSITY por_1_acvfqj SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 158.333333 1.9625 80.679406 45 67.5 0.0001 0.01 gaussian 0 20169851380.042458 NaN NaN NaN 0.0 NaN NaN NaN NaN NaN NaN NaN 0.001 0.001 0.001 0.7966 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
38 1 1 SimulationType.POROSITY por_1_tSoFiY SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 158.333333 2.5 63.333333 45 67.5 0.0001 0.01 gaussian 0 15833333333.33333 NaN NaN NaN 0.0 NaN NaN NaN NaN NaN NaN NaN 0.001 0.001 0.001 0.666111 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
39 1 1 SimulationType.POROSITY por_1_rtfyZI SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 266.666667 1.425 187.134503 45 67.5 0.0001 0.01 gaussian 0 46783625730.994148 NaN NaN NaN 0.0 NaN NaN NaN NaN NaN NaN NaN 0.001 0.001 0.001 1.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
40 1 1 SimulationType.POROSITY por_1_efoBpn SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 266.666667 1.9625 135.881104 45 67.5 0.0001 0.01 gaussian 0 33970276008.492561 NaN NaN NaN 0.0 NaN NaN NaN NaN NaN NaN NaN 0.001 0.001 0.001 0.998938 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
41 1 1 SimulationType.POROSITY por_1_oTpqpH SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 266.666667 2.5 106.666667 45 67.5 0.0001 0.01 gaussian 0 26666666666.666664 NaN NaN NaN 0.0 NaN NaN NaN NaN NaN NaN NaN 0.001 0.001 0.001 0.936676 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
42 1 1 SimulationType.POROSITY por_1_NCYQlN SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 375.0 1.425 263.157895 45 67.5 0.0001 0.01 gaussian 0 65789473684.210526 NaN NaN NaN 0.0 NaN NaN NaN NaN NaN NaN NaN 0.001 0.001 0.001 1.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
43 1 1 SimulationType.POROSITY por_1_iKlR9r SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 375.0 1.9625 191.082803 45 67.5 0.0001 0.01 gaussian 0 47770700636.942673 NaN NaN NaN 0.0 NaN NaN NaN NaN NaN NaN NaN 0.001 0.001 0.001 1.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
44 1 1 SimulationType.POROSITY por_1_tpUNQT SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 375.0 2.5 150.0 45 67.5 0.0001 0.01 gaussian 0 37500000000.0 NaN NaN NaN 0.0 NaN NaN NaN NaN NaN NaN NaN 0.001 0.001 0.001 0.999999 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
45 1 1 SimulationType.POROSITY por_1_HhDrF4 SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 483.333333 1.425 339.181287 45 67.5 0.0001 0.01 gaussian 0 84795321637.426895 NaN NaN NaN 0.0 NaN NaN NaN NaN NaN NaN NaN 0.001 0.001 0.001 1.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
46 1 1 SimulationType.POROSITY por_1_IsyzpA SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 483.333333 1.9625 246.284501 45 67.5 0.0001 0.01 gaussian 0 61571125265.392769 NaN NaN NaN 0.0 NaN NaN NaN NaN NaN NaN NaN 0.001 0.001 0.001 1.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
47 1 1 SimulationType.POROSITY por_1_z27UwU SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 483.333333 2.5 193.333333 45 67.5 0.0001 0.01 gaussian 0 48333333333.333328 NaN NaN NaN 0.0 NaN NaN NaN NaN NaN NaN NaN 0.001 0.001 0.001 1.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
48 1 1 SimulationType.POROSITY por_1_NyXScs SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 591.666667 1.425 415.204678 45 67.5 0.0001 0.01 gaussian 0 103801169590.64328 NaN NaN NaN 0.0 NaN NaN NaN NaN NaN NaN NaN 0.001 0.001 0.001 1.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
49 1 1 SimulationType.POROSITY por_1_I8DelB SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 591.666667 1.9625 301.4862 45 67.5 0.0001 0.01 gaussian 0 75371549893.84288 NaN NaN NaN 0.0 NaN NaN NaN NaN NaN NaN NaN 0.001 0.001 0.001 1.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None
50 1 1 SimulationType.POROSITY por_1_B2e8G6 SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 591.666667 2.5 236.666667 45 67.5 0.0001 0.01 gaussian 0 59166666666.666664 NaN NaN NaN 0.0 NaN NaN NaN NaN NaN NaN NaN 0.001 0.001 0.001 1.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN None


Create a microstructure evaluation#

Here a set of microstructure simulations is generated using many of the same parameters used for the porosity simulations. The parameters cooling_rate, thermal_gradient, melt_pool_width, and melt_pool_depth are not specified so they are calculated. The generate_microstructure_permutations() method is used to add microstructure simulations to the study.

df = study.data_frame()
df = df[df[ColumnNames.TYPE] == SimulationType.POROSITY]

study.generate_microstructure_permutations(
    laser_powers=df[ColumnNames.LASER_POWER].unique(),
    scan_speeds=df[ColumnNames.SCAN_SPEED].unique(),
    size_x=1e-3,
    size_y=1e-3,
    size_z=1.1e-3,
    sensor_dimension=1e-4,
    layer_thicknesses=df[ColumnNames.LAYER_THICKNESS].unique(),
    heater_temperatures=df[ColumnNames.HEATER_TEMPERATURE].unique(),
    beam_diameters=df[ColumnNames.BEAM_DIAMETER].unique(),
    start_angles=df[ColumnNames.START_ANGLE].unique(),
    rotation_angles=df[ColumnNames.ROTATION_ANGLE].unique(),
    hatch_spacings=df[ColumnNames.HATCH_SPACING].unique(),
    iteration=2,
)
15

Run microstructure simulations#

Run the simulations using the simulate_study() method.

additive.simulate_study(study)

View microstructure results#

Microstructure simulation results are shown in the XY Average Grain Size (microns), XZ Average Grain Size (microns), and YZ Average Grain Size (microns) columns of the data frame. For explanations of these columns, see ColumnNames.

df = study.data_frame()
df = df[df[ColumnNames.TYPE] == SimulationType.MICROSTRUCTURE]
df.head(len(df))
Iteration Priority Type ID Status Material Heater Temp (C) Layer Thickness (m) Beam Diameter (m) Laser Power (W) Scan Speed (m/s) Laser Power/Scan Speed (J/m) Start Angle (degrees) Rotation Angle (degrees) Hatch Spacing (m) Stripe Width (m) Heat Source Ring Mode Index Energy Density (J/m^3) Single Bead Length (m) Single Bead Thermal History Flag Single Bead Thermal History Interval (steps) Build Rate (m^3/s) Melt Pool Width (m) Melt Pool Depth (m) Melt Pool Length (m) Melt Pool Length/Width Melt Pool Ref Width (m) Melt Pool Ref Depth (m) Melt Pool Ref Depth/Width Porosity Size X (m) Porosity Size Y (m) Porosity Size Z (m) Relative Density Micro Min X (m) Micro Min Y (m) Micro Min Z (m) Micro Size X (m) Micro Size Y (m) Micro Size Z (m) Micro Sensor Dim (m) Cooling Rate (K/s) Thermal Gradient (K/m) Micro Melt Pool Width (m) Micro Melt Pool Depth (m) Random Seed XY Average Grain Size (microns) XZ Average Grain Size (microns) YZ Average Grain Size (microns) Error Message
51 2 1 SimulationType.MICROSTRUCTURE micro_2_Ic466C SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 158.333333 1.425 111.111111 45 67.5 0.0001 0.01 gaussian 0 27777777777.777775 NaN NaN NaN 0.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0 0 0 0.001 0.001 0.0011 0.0001 NaN NaN NaN NaN <NA> 21.13181 30.67938 26.193013 None
52 2 1 SimulationType.MICROSTRUCTURE micro_2_oX8mTt SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 158.333333 1.9625 80.679406 45 67.5 0.0001 0.01 gaussian 0 20169851380.042458 NaN NaN NaN 0.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0 0 0 0.001 0.001 0.0011 0.0001 NaN NaN NaN NaN <NA> 19.680699 28.563266 21.035156 None
53 2 1 SimulationType.MICROSTRUCTURE micro_2_mU7POy SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 158.333333 2.5 63.333333 45 67.5 0.0001 0.01 gaussian 0 15833333333.33333 NaN NaN NaN 0.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0 0 0 0.001 0.001 0.0011 0.0001 NaN NaN NaN NaN <NA> 20.095597 17.494421 18.27452 None
54 2 1 SimulationType.MICROSTRUCTURE micro_2_CX5i1e SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 266.666667 1.425 187.134503 45 67.5 0.0001 0.01 gaussian 0 46783625730.994148 NaN NaN NaN 0.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0 0 0 0.001 0.001 0.0011 0.0001 NaN NaN NaN NaN <NA> 30.13632 44.664744 42.674848 None
55 2 1 SimulationType.MICROSTRUCTURE micro_2_SYgrpT SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 266.666667 1.9625 135.881104 45 67.5 0.0001 0.01 gaussian 0 33970276008.492561 NaN NaN NaN 0.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0 0 0 0.001 0.001 0.0011 0.0001 NaN NaN NaN NaN <NA> 27.968228 33.626764 31.854156 None
56 2 1 SimulationType.MICROSTRUCTURE micro_2_Obxcdi SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 266.666667 2.5 106.666667 45 67.5 0.0001 0.01 gaussian 0 26666666666.666664 NaN NaN NaN 0.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0 0 0 0.001 0.001 0.0011 0.0001 NaN NaN NaN NaN <NA> 24.096952 30.248392 24.062279 None
57 2 1 SimulationType.MICROSTRUCTURE micro_2_S8VucF SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 375.0 1.425 263.157895 45 67.5 0.0001 0.01 gaussian 0 65789473684.210526 NaN NaN NaN 0.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0 0 0 0.001 0.001 0.0011 0.0001 NaN NaN NaN NaN <NA> 29.207171 40.690284 37.753276 None
58 2 1 SimulationType.MICROSTRUCTURE micro_2_9PQ4Ke SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 375.0 1.9625 191.082803 45 67.5 0.0001 0.01 gaussian 0 47770700636.942673 NaN NaN NaN 0.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0 0 0 0.001 0.001 0.0011 0.0001 NaN NaN NaN NaN <NA> 25.678221 43.231607 36.40054 None
59 2 1 SimulationType.MICROSTRUCTURE micro_2_jNEc8h SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 375.0 2.5 150.0 45 67.5 0.0001 0.01 gaussian 0 37500000000.0 NaN NaN NaN 0.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0 0 0 0.001 0.001 0.0011 0.0001 NaN NaN NaN NaN <NA> 23.185617 25.294125 29.844985 None
60 2 1 SimulationType.MICROSTRUCTURE micro_2_J8b7SB SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 483.333333 1.425 339.181287 45 67.5 0.0001 0.01 gaussian 0 84795321637.426895 NaN NaN NaN 0.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0 0 0 0.001 0.001 0.0011 0.0001 NaN NaN NaN NaN <NA> 41.775071 48.447041 46.435733 None
61 2 1 SimulationType.MICROSTRUCTURE micro_2_eClPdf SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 483.333333 1.9625 246.284501 45 67.5 0.0001 0.01 gaussian 0 61571125265.392769 NaN NaN NaN 0.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0 0 0 0.001 0.001 0.0011 0.0001 NaN NaN NaN NaN <NA> 26.816293 32.114174 31.612913 None
62 2 1 SimulationType.MICROSTRUCTURE micro_2_bz8yxk SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 483.333333 2.5 193.333333 45 67.5 0.0001 0.01 gaussian 0 48333333333.333328 NaN NaN NaN 0.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0 0 0 0.001 0.001 0.0011 0.0001 NaN NaN NaN NaN <NA> 25.673281 39.683735 33.448157 None
63 2 1 SimulationType.MICROSTRUCTURE micro_2_gujoGz SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 591.666667 1.425 415.204678 45 67.5 0.0001 0.01 gaussian 0 103801169590.64328 NaN NaN NaN 0.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0 0 0 0.001 0.001 0.0011 0.0001 NaN NaN NaN NaN <NA> 35.880491 45.381882 54.694756 ls: cannot access '/proc/3392/fd/6': No such f...
64 2 1 SimulationType.MICROSTRUCTURE micro_2_uBmFQs SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 591.666667 1.9625 301.4862 45 67.5 0.0001 0.01 gaussian 0 75371549893.84288 NaN NaN NaN 0.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0 0 0 0.001 0.001 0.0011 0.0001 NaN NaN NaN NaN <NA> 38.583892 55.319487 52.283792 None
65 2 1 SimulationType.MICROSTRUCTURE micro_2_Ep3rDL SimulationStatus.COMPLETED IN718 80 0.00004 0.00008 591.666667 2.5 236.666667 45 67.5 0.0001 0.01 gaussian 0 59166666666.666664 NaN NaN NaN 0.0 NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 0 0 0 0.001 0.001 0.0011 0.0001 NaN NaN NaN NaN <NA> 28.86109 37.138295 37.330394 None


Total running time of the script: (63 minutes 31.072 seconds)

Gallery generated by Sphinx-Gallery