Note
Go to the end to download the full example code.
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.
| 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.
| 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.
| 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)