Special-Purpose Techniques for Additive Manufacturing
Special-purpose techniques for common additive manufacturing
processes are described in this section.
The functionality in
Abaqus/Standard
for additive manufacturing processes simulation is developed on a user
subroutine infrastructure and keyword interface that provides a high degree of
control and customization.
Abaqus/Standard
provides very general capabilities for the simulation of additive manufacturing
processes using either thermomechanical or eigenstrain analyses (see
Thermomechanical Simulation of Additive Manufacturing Processes
and
Eigenstrain-Based Simulation of Additive Manufacturing Processes).
In addition, a number of special-purpose techniques are available for
simulation of common AM processes that do not require you to write user
subroutines. These techniques are implemented as "internal" user subroutines in
Abaqus
using the same user subroutine infrastructure and keyword interface. These
special-purpose techniques are accessed by using table collections with string
names starting with
"ABQ_" as is described in detail in
Special-Purpose Techniques for Additive Manufacturing.
Table collections with string names starting with
"ABQ_" are reserved for special-purpose techniques
and should not be used when programming your own user subroutines.
Abaqus/Standard
provides a collection of special-purpose techniques applicable to the
simulation of common additive manufacturing (AM) processes. You can use these
solutions to define:
Progressive element activation
in a structural or a thermal analysis to simulate controlled deposition of raw
materials. You can simulate a layer-upon-layer raw material deposition by a
recoater or roller blade used in powder bed–type processes and a bead type
deposition sequence for materials injected through nozzles used in directed
energy deposition processes.
Moving heat fluxes to model
laser-induced heating in a thermal analysis.
To activate these special-purpose techniques, you must define the pertinent
manufacturing process parameters in table collections that follow prescribed
conventions. The sections that follow describe these conventions. The table
collections must adhere to the naming conventions and include parameter and
property tables of predetermined types. You can refer to these table
collections from progressive element activation and/or distributed heat flux
definitions.
Abaqus
activates elements and applies heat fluxes automatically using the specified
process parameters.
Thermomechanical Analysis of Powder Bed–Type Additive Manufacturing Processes
In a powder bed–type AM process, such as
selective laser sintering (SLS) and
stereolithography (SLA), a single layer of raw
material is deposited by a recoater or a roller blade. Then, a high-powered
laser scans a single cross-section of the part over the layer of raw material
to fuse it with the previously laid layer underneath (see
Figure 1).
The layer-upon-layer raw material deposition is simulated by progressive
element activation in a structural or a thermal analysis, and the laser-induced
heating is simulated by a moving heat flux in a thermal analysis. This section
describes the special-purpose techniques and user subroutines that are
available to define the relevant process parameters for material deposition and
heat sources. These internal built-in user subroutines are accessed by starting
names and types with
"ABQ_" as described below.
Specifying Progressive Element Activation
The layer-by-layer deposition of raw material from a recoater or roller
blade is simulated using progressive element activation in a structural or a
thermal analysis. The following steps are required to define the deposition
process completely:
Define the motion of the center
point of the recoater in an event series following the convention for infinite
line toolpath-mesh intersection (see
Infinite Line Toolpath-Mesh Intersection).
Create a table collection with a
name that begins with
"ABQ_AM". The table collection must contain a
parameter table of type
"ABQ_AM.MaterialDeposition".
In the parameter table, include
a reference to the event series for the material deposition, and set the
deposition process type to
"Roller".
Refer to the table collection in
the progressive element activation.
Abaqus
activates elements automatically according to the specified material deposition
sequence.
Specifying a Concentrated Moving Heat Source
You can approximate the laser spot as a concentrated moving heat flux if the
size of the finite elements used in a thermal analysis is significantly larger
than the size of the laser spot (see
Figure 2).
The following steps are required to define the concentrated moving heat source
completely:
Define the scanning trajectory
and power of the laser in an event series following the convention for point
toolpath-mesh intersection (see
Point Toolpath-Mesh Intersection).
Create a table collection with a
name that begins with
"ABQ_AM". The table collection must contain a
parameter table of type
"ABQ_AM.MovingHeatSource".
In the parameter table, include
a reference to the event series for the point heat source and set the
heat source type to
"Concentrated".
Refer to the table collection in
the distributed load definition.
Abaqus
computes and applies moving heat fluxes to each element automatically according
to the specified scanning trajectory.
Specifying a Moving Heat Source with a Goldak Distribution
If the size of the finite elements used in a thermal analysis is comparable
to the size of the laser spot, the laser power can be distributed over a volume
based on the Goldak rule of laser energy distribution (see
Figure 3).
The following steps are required to define the moving heat source completely:
Define the trajectory of the
laser spot in an event series similar to the definition of the concentrated
moving heat source.
In the parameter table of type
"ABQ_AM.MovingHeatSource", include a
reference to the event series for the moving heat source, and set the
heat source type to
"Goldak".
Refer to the table collection in
the distributed load definition.
Abaqus
computes and applies the moving distributed heat fluxes automatically according
to the specified Goldak distribution and scanning trajectory.
Specifying a Moving Heat Source with a Uniform Distribution
If the size of the finite elements used in a thermal analysis is comparable
to the size of the laser spot, the laser power can be distributed uniformly
over a box-shaped volume. The following steps are required to define the moving
heat source completely:
Define the trajectory of the
laser spot in an event series similar to the definition of the concentrated
moving heat source.
In the parameter table of type
"ABQ_AM.MovingHeatSource", include a
reference to the event series for the moving heat source, and set the
heat source type to
"Uniform".
Thermomechanical Analysis of FDM- and LDED-Type Additive Manufacturing Processes
In a fusion deposition modeling (FDM)-type additive manufacturing process,
the raw material is injected through a nozzle onto a platform. The nozzle
traces the cross-section pattern for each layer with the raw material.
Materials are typically deposited layer-upon-layer until the build is complete.
The raw material can be deposited in a molten state and then hardens as it
cools. In some processes, such as laser direct energy deposition (LDED), the
raw material is injected in a powdered form and then heated in place by a laser
beam. This section describes the special-purpose techniques and user
subroutines that are available for these types of additive manufacturing
processes. These internal built-in user subroutines are accessed by starting
names and types with
"ABQ_" as described below.
Specifying Element Activation
The deposition of raw material from a moving nozzle is simulated using
progressive element activation in a structural or a thermal analysis. The
cross-section of the nozzle and the bead of the material being deposited are
assumed to be rectangular (see
Figure 4).
The following steps are required to define the deposition process completely:
Define the motion of the nozzle
in an event series.
In the parameter table of type
"ABQ_AM.MaterialDeposition", include a
reference to the event series for the nozzle motion, and set the
deposition process type to
"Bead".
In the parameter table of type
"ABQ_AM.MaterialDeposition.Bead", define the
process parameters, such as the height and width of the bead.
Refer to the table collection in
the progressive element activation.
Abaqus
activates elements automatically according to the specified nozzle trajectory.
Eigenstrain-Based Simulation of Powder Bed–Type Additive Manufacturing Processes
Eigenstrain-based simulation of powder bed–type processes can be simulated
using the following methods: the pattern-based method and the trajectory-based
method. In the trajectory based method, the path of the movement of the laser
spot is used to determine the time of activation of an element and the
eigenstrain to apply to the element at the time of its activation. In the
pattern-based method, a scan pattern, which represents an idealized motion of
the laser, is used to determine the time of activation of an element and the
eigenstrain to assign to that element (see
Scan Pattern–Mesh Intersection).
This section describes the special-purpose techniques and user subroutines that
are available for these types of additive manufacturing processes. These
internal built-in user subroutines are accessed by starting names and types
with
"ABQ_" as described below.
Specifying Element Activation and Eigenstrain Using the Pattern-Based Method
The following steps are required to use the pattern-based eigenstrain
method:
Create a table collection with a
name that begins with
"ABQ_EIG". The table collection must contain a
parameter table of type
"EigenStrain.Method" as well as the other
parameter tables listed below.
In the parameter table of type
"EigenStrain.Method", set the
activation type to
"PatternBased".
Define parameters of rectangular patches that make up a rectangular unit
cell (see
Scan Pattern–Mesh Intersection),
which is repeated to cover the cutting plane or a layer, in a parameter table
of type
"EigenStrain.PatternBased.Define". You can
define the following parameters: a local angle, ;
the extents of a patch
and ;
and a label of the parameter table defining an eigenstrain to apply to this
patch.
Define the six eigenstrain components in a parameter table of type
"EigenStrain.Define".
Define the build parameters (such as slice or layer thickness and build
coordinate system) in a parameter table of type
"EigenStrain.PatternBased.Activation".
Refer to the table collection in
the progressive element activation.
Visualization of a Scan Pattern
A scan pattern can be visualized over the part geometry by requesting
element solution-dependent field variables for output and plotting them as
contours over the finite element mesh. For a pattern-based eigenstrain
analysis, the first two element solution-dependent field variables are
internally set to the patch ID and scan region ID, respectively (see
Figure 5).
For a trajectory-based eigenstrain analysis, the first element
solution-dependent field variable is internally set to the rule ID.
Specifying Element Activation and Eigenstrain Using the Trajectory-Based Method
The following steps are required to use the trajectory-based method:
Create a table collection with a name that begins with
"ABQ_EIG". The table collection must contain a
parameter table of type
"EigenStrain.Method" as well as the other
parameter tables listed below.
In the parameter table of type
"EigenStrain.Method", set the
activation type to
"TrajectoryBased".
Define the six eigenstrain components in a parameter table of type
"EigenStrain.Define".
Define a scan rule by including a parameter table of type
"EigenStrain.TrajectoryBased.Rule.Define"
that refers to a parameter table defining an eigenstrain. All the scan rules
used in the analysis must be listed in a parameter table of type
"EigenStrain.TrajectoryBased.Rules". The
position index of the rule in this list is the rule ID number that is specified
as the first field in the event series of type
"SLM.HeatSourceTrajectory.RuleID".
You must include a parameter table of type
"ABQ_AM.MaterialDeposition" in the table collection
that you specify to activate elements in the step.
Tables of type
"ABQ_AM.MaterialDeposition",
"ABQ_AM.MovingHeatSource", and
"EigenStrain.TrajectoryBased.Activation" cannot refer
to the same event series in an analysis.
Deposition process type. Options are
"Roller" or
"Bead".
ABQ_AM.MaterialDeposition.Bead
You must include a parameter table of type
"ABQ_AM.MaterialDeposition.Bead" in the table
collection that you specify to activate elements in the step if the deposition
process type is
"Bead".
Direction of progressive material deposition layers. Options are
"X",
"Y", and
"Z" indicating the global
xg-, yg-, or
zg-direction.
Bead Height
Height (measured parallel to the stack direction) of the deposited
bead of material.
Activation Offset
Unused. Should be set to zero.
Deposition Position
Set to
"Above" ("Below") to
indicate that the deposited material bead is situated above (below) the path in
the stack direction.
ABQ_AM.MaterialDeposition.Advanced
Optionally, you can include a parameter table of type
"ABQ_AM.MaterialDeposition.Advanced" in the table
collection that you specify to activate elements in the step. If a table of
this type is not present, default values are used. However, if a table is
present, all fields must be explicitly defined. No field should be left blank.
Set to
"Full" to indicate that elements are activated and
their volume fractions set to one. Set to
"Partial" to indicate that elements are activated
when material deposits inside the element, and the volume fractions
progressively increase from the minimum volume fraction threshold to one as
more material deposits. Default value is
"Partial".
Min Volume Fraction Threshold
For activation type
"Partial", elements are considered to have at
least the minimum threshold volume fraction when any amount of material is
deposited inside the element. The minimum volume fraction threshold should be
set to a value between zero and one. For activation type
"Full", the minimum volume fraction threshold is
not used. Default value is zero.
Max Volume Fraction Threshold
For activation type
"Full", the maximum volume fraction threshold
indicates a volume fraction below which elements are kept inactive and above
which elements are activated with a volume fraction of one. For activation type
"Partial", the maximum volume fraction threshold
indicates a volume fraction above which element volume fractions are considered
to be one. Default value is one.
ABQ_AM.MovingHeatSource
You must include a parameter table of type
“ABQ_AM.MovingHeatSource” in the table collection for
moving heat flux.
Tables of type
"ABQ_AM.MaterialDeposition",
"ABQ_AM.MovingHeatSource", and
"EigenStrain.TrajectoryBased.Activation" cannot refer
to the same event series in an analysis.
Set to
“Concentrated” to indicate a point energy source,
to
“Uniform” to indicate that energy is distributed
inside a box shape of finite size, or to
“Goldak” to indicate that energy is distributed
over a three-dimensional space following an exponential expression given by
Goldak, et al. (see
Figure 3).
ABQ_AM.MovingHeatSource.Uniform
You must include a parameter table of type
“ABQ_AM.MovingHeatSource.Uniform” in the table
collection for moving heat flux if the energy distribution type is set to
“Uniform”. Parameters defined in this table indicate
lengths, offsets, and subdivisions of the box toolpath used in the
toolpath-mesh intersection module.
Number of subdivisions along the local
xl-direction.
SubDivY
Number of subdivisions along the local
yl-direction.
SubDivZ
Number of subdivisions along the local
zl-direction.
OffsetX
Component of the offset vector in the local
xl-direction.
OffsetY
Component of the offset vector in the local
yl-direction.
OffsetZ
Component of the offset vector in the local
zl-direction.
BoxLengthX
Length of the box in the local
xl-direction.
BoxLengthY
Length of the box in the local
yl-direction.
BoxLengthZ
Length of the box in the local
zl-direction.
ABQ_AM.MovingHeatSource.Goldak
You must include a parameter table of type
“ABQ_AM.MovingHeatSource.Goldak” in the table
collection for moving heat source if the energy distribution type is set to
“Goldak”. Parameters defined in this table indicate
parameters used in the Goldak expression of laser energy distribution (see
Figure 3).
It is assumed that material is deposited below the laser path defined by the
event series; therefore, you must choose
“Below” as the deposition position in the table of
type
"ABQ_AM.MaterialDeposition.Bead" for a bead-type
material deposition method.
Number of subdivisions along the local
xl-direction.
SubDivY
Number of subdivisions along the local
yl-direction.
SubDivZ
Number of subdivisions along the local
zl-direction.
OffsetX
Component of the offset vector in the local
xl-direction.
OffsetY
Component of the offset vector in the local
yl-direction.
OffsetZ
Component of the offset vector in the local
zl-direction.
a, b, cf, cr, ff, and fr
Parameters used in the Goldak energy distribution expression.
BoxSizeFactor
Unused. Should be set to one.
ABQ_AM.MovingHeatSource.Advanced
Optionally, you can include a parameter table of type
"ABQ_AM.MovingHeatSource.Advanced" in the table
collection for moving heat source. If a table of this type is not present,
default values are used. However, if a table is present, all fields must be
explicitly defined. No field should be left blank.
Set to
“True” to indicate that if part of the energy
distribution along a path segment is outside the external mesh boundary, the
power of the part of the energy distribution that is inside the mesh boundary
is proportionally increased to keep the total energy conserved. If set to
“False”, part of the energy distribution along a
path segment outside the external mesh boundary is lost. Default value is
“False”.
Control Increment Size
Unused. Should be set to
“False”.
Offset Type
Set to
“Relative” to indicate that the components of the
offset vector defined in the table
"ABQ_AM.MovingHeatSource.Uniform" are in terms of
half of the box lengths in the local x-l,
yl-, and
zl-directions, respectively. Set to
“Absolute” to indicate that the offset values are
absolute.
VectorX
Components of the vector in the global coordinate system indicating the
local xl-direction.
VectorY
Components of the vector in the global coordinate system indicating the
local yl-direction.
VectorZ
Components of the vector in the global coordinate system indicating the
local zl-direction.
Field Factor
Scaling factor that is multiplied to the first field of the event
series. Default value is one. Only used if the energy distribution type is set
to
“Goldak” or
“Uniform”.
Eigenstrain.Method
You must include a parameter table of type
"EigenStrain.Method" in the table collection. Only one
set of data can be defined.
Set to
“PatternBased” to indicate a scan pattern based on
an eigenstrain analysis. Set to
"TrajectoryBased" to indicate a trajectory-based
eigenstrain analysis.
Eigenstrain.Define
You must include a parameter table of type
"EigenStrain.Define" in the table collection.
Optionally, you can include multiple tables of this type. Each table must have
a unique label. Only one set of data is allowed in each table.
Set to
“Full” to indicate that elements are activated and
their volume fractions set to one. Set to
“Partial” to indicate that elements are activated
when material deposits inside the element and the volume fractions
progressively increase from the minimum volume fraction threshold to one as
more material deposits. Default value is
“Full”.
Min Volume Fraction Threshold
For activation type
"Partial", elements are considered to have at
least the minimum threshold volume fraction when any amount of material is
deposited inside the element. The minimum volume fraction threshold should be
set to a value between zero and one. For activation type
"Full", the minimum volume fraction threshold is
not used. Default value is zero.
Max Volume Fraction Threshold
For activation type
“Full”, the maximum volume fraction threshold
indicates a volume fraction below which elements are kept inactive and above
which elements are activated with a volume fraction of one. For activation type
“Partial”, the maximum volume fraction threshold
indicates a volume fraction above which element volume fractions are considered
to be one. Default value is one.
Averaging Technology
Unused.
Eigenstrain.PatternBased.Activation
You must include a parameter table of type
"EigenStrain.PatternBased.Activation" in the table
collection. Only one set of data must be defined.
Orientation of the build system I–J–K and its
origin.
Total/Step Time
Set to
"TotalTime" to indicate that the print start and
end times are in total time. Set to
"StepTime" to indicate that the print start and
end times are in step time.
Start Time, End Time
Print start and end times.
Eigenstrain.PatternBased.Define
You can include multiple parameter tables of type
"EigenStrain.PatternBased.Define" in the table
collection. Each table must have a unique label. Each table can have multiple
sets of data; each set defines one patch/island in a scan pattern.
Refers to the eigenstrain tensor that will be applied to this pattern
patch.
Local In-plane Rotation
Local in-plane rotation, ,
of the patch (in degrees).
Eigenstrain.PatternBased.ScanStrategy.Define
You can include multiple parameter tables of type
EigenStrain.PatternBased.ScanStrategy.Define in the
table collection. Each table must have a unique label. Each table can define
only one set of data.
Label of a table of type
EigenStrain.PatternBased.Define.
Relative Rotation Angle
Layer-to-layer (slice-to-slice) rotation angle,
.
Xmin, Ymin, Zmin, Xmax,
Ymax, Zmax
Extent of a scanning region.
Eigenstrain.PatternBased.Scanstrategies
You must include a parameter table of type
"EigenStrain.PatternBased.ScanStrategies" in the table
collection. The table can define multiple sets of data.
Label of a table of type
EigenStrain.PatternBased.ScanStrategy.Define. Sets
of data from this table define active strategies in the analysis.
Eigenstrain.PatternBased.Advanced
Optionally, you can include a parameter table of type
"EigenStrain.PatternBased.Advanced" in the table
collection. The table can define only one set of data.
Parameter Table Type Definition
PARAMETER TABLE TYPE, NAME="EigenStrain.PatternBased.Advanced", PARAMETERS=2
STRING, "SWEEP", "Activation Technique", , "SWEEP|LAYERBYLAYER",
STRING, "TRUE", "One Slice per Time Increment", , "TRUE|FALSE",
Description of Parameters
Activation Technique
Set to
"LAYERBYLAYER" to activate all elements of a
layer/slice simultaneously. Set to
"SWEEP" for progression of the element activation
front in the I-direction in a layer/slice.
One Slice per Time Increment
Set to
"TRUE" to control the time increment size
automatically such that an increment always ends when all elements of a
slice/layer are activated.
Eigenstrain.TrajectoryBased.Activation
You must include a parameter table of type
"EigenStrain.TrajectoryBased.Activation" in the table
collection. Only one set of data must be defined.
Tables of type
"ABQ_AM.MaterialDeposition",
"ABQ_AM.MovingHeatSource", and
"EigenStrain.TrajectoryBased.Activation" cannot refer
to the same event series in an analysis.
Name of an event series of type
"SLM.HeatSourceTrajectory.RuleID" describing the
trajectory of the toolpath.
Stack Direction
Direction of progressive material deposition layers. Options are
“X”,
“Y”, and
“Z”
indicating the global xg-,
yg-, or
zg-direction.
Bead Height
Height (measured parallel to the stack direction) of the deposited bead
of material.
Bead Width
Width (measured perpendicular to the stack direction) of the deposited
bead of material.
Deposition Position
Set to
“Above”
(“Below”) to indicate that the
deposited material bead is situated above (below) the path/trajectory in the
stack direction.
Eigenstrain.TrajectoryBased.Rule.Define
You can include multiple parameter tables of type
"EigenStrain.TrajectoryBased.Rule.Define" in the table
collection. Only one set of data must be defined. Each table must have a unique
label.
Parameter Table Type Definition
PARAMETER TABLE TYPE, NAME="EigenStrain.TrajectoryBased.Rule.Define", PARAMETERS=1
STRING, " ", "Label of an Eigenstrain.Define table" , , "
Description of Parameters
Label of an
Eigenstrain.Define table
Label of a table of type
Eigenstrain.Define.
Eigenstrain.TrajectoryBased.Rules
You must include a parameter table of type
"EigenStrain.TrajectoryBased.Rules" in the table
collection. Multiple sets of data can be defined. An integer rule ID that
starts from one is assigned internally to the sets of data defined in this
table. You must reference this rule ID from the event series that defines the
trajectory of the toolpath. See event series type
SLM.HeatSourceTrajectory.RuleID below.
Label of a table of type
EigenStrain.TrajectoryBased.Rule.Define. Multiple
Trajectory Rule Name parameters can be defined.
The list of these rule names constitutes the active rules in the analysis.
Event Series Type Reference
Slm.HeatSourceTrajectory.Ruleid
An event series of type
"SLM.HeatSourceTrajectory.RuleID" defines trajectories
of the toolpath and eigenstrain rule ID.
Event Series Type Definition
EVENT SERIES TYPE, NAME="SLM.HeatSourceTrajectory.RuleID", FIELDS=1
"Rule ID"
Description of Fields
Rule ID
Integer strain rule ID (see parameter table type
EigenStrain.TrajectoryBased.Rules above).
ABQ_AM.MaterialDeposition
An event series of type
"ABQ_AM.MaterialDeposition" defines trajectories of
the toolpath for material deposition.
Event Series Type Definition
EVENT SERIES TYPE, NAME="ABQ_AM.MaterialDeposition", FIELDS=1
"On/Off State"
Description of Fields
On/Off State
Set to 1 to indicate the "on" state or to 0 to indicate the "off" state
of the tool for the segment.
ABQ_AM.PowerMagnitude
An event series of type
"ABQ_AM.PowerMagnitude" defines trajectories of the
toolpath for the laser.
Event Series Type Definition
EVENT SERIES TYPE, NAME="ABQ_AM.PowerMagnitude", FIELDS=1
"Power Magnitude (unit of JT^-1)"
Description of Fields
Power Magnitude
Magnitude of the power of the laser for the segment.
Property Table Type Reference
ABQ_AM.AbsorptionCoeff
You can include a property table of type
"ABQ_AM.AbsorptionCoeff" in the table collection for
the distributed load definition to define the absorption coefficient of the
material for laser heating.