14. Step result
Commands for managing analyzed results include *PostStep
, *History
, *PostHistory
, and *HDB
.
*History
Outputs the history results during analysis for the target step.
*History, Name=history_file
step1, step2, ...
scalarField@target|sensorName, ...
...
Keyword line
- Name=name: Name created by the
*History
and*PostHistory
commands. Must be unique. A file namedname.csv
is generated. If<DB>
is included in the name, it is replaced with the current DB name (name of the input file without the extension).
First dataline
- step1, step2, ...: Target analysis steps
Second dataline and subsequent datalines
-
scalarField@target: Scalar field name and target
- scalarField: Fields with subcomponents are specified as D.X, FN.Y, SF.X, SE.X, S.11, E.33, etc., while scalar fields like PEEQ are applied directly.
- target: Node or element for output. For fields defined at nodes, target can be a node number, node number pattern, or nset. For fields defined at elements, target can be
elements-elementPoint
,elements-C{cellId}-pointId
, etc., whereelements
can be an element number, pattern, or elset.
-
sensorName: Name of the sensor for output
The *History
command saves individual components of node or element-level fields in a time-based history file. For sensors, the scalar value defined in the sensor is used. For scalarField@target
, both the scalar field name and target location must be specified. scalarField
is divided into node and element fields.
For Node Fields
- Specified as
field.sub@nodes
. nodes
can be a node ID, nset, or node number pattern (e.g.,startNodeId:endNodeId:spacing
).- The following fields are available: D, V, A, FN, FE, FK, FC, FM.
- D : Displacement, D = [X, Y, Z, RX, RY, RZ, P, T, Mag]
- V : Velocity, V = [X, Y, Z, RX, RY, RZ, P, T, Mag]
- A : Acceleration, A = [X, Y, Z, RX, RY, RZ, P, T, Mag]
- FN : Externally applied nodal force (external force), FN = [X, Y, Z, RX, RY, RZ, P, T, Mag]
- FE : Equivalent nodal force (external force), FE = [X, Y, Z, RX, RY, RZ, P, T, Mag]
- FK : Restoring force (internal force), FK = [X, Y, Z, RX, RY, RZ, P, T, Mag]
- FC : Damping force (internal force), FC = [X, Y, Z, RX, RY, RZ, P, T, Mag]
- FM : Internal force (internal force), FM = [X, Y, Z, RX, RY, RZ, P, T, Mag]
- Subcomponents include characters such as X, Y, Z, RX, RY, RZ, W, P, T, representing degrees of freedom or computed values:
- X, Y, Z: Translational degrees of freedom in X, Y, Z directions
- RX, RY, RZ: Rotational degrees of freedom in RX, RY, RZ directions
- P: Pressure degree of freedom (acoustic element only)
- T: Temperature degree of freedom (reserved)
- Mag: Magnitude of X, Y, Z degrees of freedom (computed as the vector magnitude)
Examples:
D.X@1
: X displacement at node 1D.Mag@10
: Magnitude of X, Y, Z degrees of freedom at node 10 (computed as the vector magnitude)FN.RX@slab
: RX direction external nodal force for the nsetslab
For Element Fields
- If subcomponents exist, the format
field.sub@elements-elementPoint
is used; if no subcomponents, usefield@elements-elementPoint
. -
The following lists applicable field names and their subcomponents:
BSF
= [Nx My Mz Vy Vz T] , beam section forcesBSE
= [Ex Ky Kz Gxy Gxz Hx] , beam section deformationBST
= [T0 Ty Tz] , beam section temperatureSSF
= [Nx Ny Nxy Mx My Mxy Vx Vy] , shell section forcesSSE
= [Ex Ey Gxy Kx Ky Kxy Gxz Gyz], shell section deformationSST
= [T0 Tz] , shell section temperatureISF
= [X Y Z] , interface section forcesISE
= [X Y Z] , interface section deformationSF
= [X Y Z RX RY RZ] , spring forcesSE
= [X Y Z RX RY RZ] , spring deformationDF
= [X Y Z RX RY RZ] , damping forcesDE
= [X Y Z RX RY RZ] , damping deformation rateS
= [11 22 33 12 23 31 P1 P2 P3 Mises], stressE
= [11 22 33 12 23 31 P1 P2 P3], mechanical strainPE
= [11 22 33 12 23 31 P1 P2 P3], plastic strainSB
= [11 22 33 12 23 31 P1 P2 P3], back stressPEEQ
, Equivalent plastic strainPEEQT
, Tensile equivalent plastic strainPEEQC
, Compressive equivalent plastic strainT
, Material temperature (note: nodal temperature is defined as D)ECUN
, Last compressive loading strain from origin of hfUConcreteETUN
, Last tensile loading strain from origin of hfUConcreteTIME
, Material timeECR
, Creep strainESH
, Shrinkage strainEP
, PressureEW
, Volumetric strainSPF
, Stiffness proportional factor in ModelUpdatingMPF
, Mass proportional factor in ModelUpdating
-
elements
can be specified as an element ID, elset, or element number pattern (e.g.,startElementId:endElementId:spacing
).BSF.Mz@10-1
: Mz beam section force at element 10, section point 1SF.X@3:9:3-1
: X component of spring force at elements 3, 6, and 9, section point 1SSF.Mx@slab-1
: Mx shell section force atslab
elset, section point 1S.11@3-1
: 11 stress component at element 3, section point 1S.Mises@1-1
: Mises stress at element 1, section point 1PEEQ@10-5
: Equivalent plastic strain at element 10, section point 5
-
For beam elements, material points within a cross-section (section points) can be specified using
CellId-pointId
for fields like stress or strain. -
For shell elements, additional notation
T/B/LayerId
is used to indicate the top/bottom of a homogeneous section or a specific layer ID in a complex section.S.11@1-1-2-10
: For beam elements, S.11 at element 1, integration point 1, Cell 2, pointId 10E.11@2-2-1-3
: For beam elements, E.11 at element 2, integration point 2, Cell 1, pointId 3S.Mises@10-2-T
: Mises stress at shell element 10, integration point 2, top layer (homogeneous section)E.12@11-3-2
: E.12 strain at shell element 11, integration point 3, layer 2 (complex section)PEEQ@101-4-B
: PEEQ at shell element 101, integration point 4, bottom layer
Example
*Step, Type=Static, Name=Case1
...
*Step, Type=Dynamic, Name=Case2
...
*History, Name=out # The generated file is created as `out.csv`.
Case1, Case2
D.X@10 # D.X at node 10
FK.X@10 # FK.X at node 10
FN.X@10 # FN.X at node 10
A.X@center_line # A>X at all nodes of center_line
BSF.Nx@11-1 # BSF.Nx at 1st element point of element 11
BSF.Mz@beamset-1 # BSF.Mz at 1st element point of all elements of beamset
S.11@11-1-10-2 # S.11 on cell 10, cell point 2 at at 1st element point of element 11
*History, File=<DB>-D # The generated file can be created as "`DB_name`-D.csv".
Case1, Case2
D.X@12 # D.X at node 10
*PostHistory
After the analysis is complete (after the .hdb
file is generated), history results for the target step are obtained and output.
*PostHistory, Name=name
step1, step2, ...
scalarField@target|sensorName, ...
...
The command format is the same as *History
, except for the command name.
*History
obtains history data during the analysis, while *PostHistory
retrieves history data from the data specified by *Output
after the analysis is complete. Therefore, *History
can obtain history data for any data existing in the analysis model, even if it is not specified in *Output
. However, *PostHistory
is limited to data specified by *Output
.
*PostStep
Combines results from new analysis steps using the analysis results.
*PostStep, OrphanHDB=On|Off, Name=name
tagertElset, ...
targetField, ...
frameExpression, C=...
...
Keyword line
- Name=name: Name of the analysis
- OrphanHDB=On|Off: Specifies whether to create a separate
.hdb
file containing only the ResultStep corresponding to the PostStep result. Default is Off. If set to On, a separate.hdb
file named after the*PostStep
(e.g.,name.h5.hdb
) will be created containing only the relevant ResultStep.
First dataline
- targetElset: Target elset
Second dataline
- targetField: Target field or sensor, such as SF, S, or D.
Third dataline and subsequent lines
- frameExpression: Rule for generating frames, e.g.,
L1.MAX
,0.8*L1.MAX + 0.8*L2.MIN
,DC.2
- C=...: Specifies maximum and minimum conditions for
targetField
whenMIN
orMAX
is used inframeExpression
. If not specified, the maximum and minimum for each field are calculated individually.
The rule for generating frames is a linear combination in the format factor*step.frame
. Here, factor
is a numerical value, and step
is the name of the ResultStep used. When factor
is 1, it can be omitted. The frame
can be a frame number (1-based) or keywords like min
, max
, or last
, where min
refers to the minimum value across all frames, max
to the maximum value, and last
to the last frame. Note that the ResultStep name is case-sensitive, while min
, max
, and last
are not.
- `1.2*DC.1 + 1.8*DL.1`: Result of adding 1.2 times the first frame of the DC step and 1.8 times the first frame of the DL step.
- `1.2*L1.max`: Result of finding the maximum value across all frames in the L1 step and multiplying it by 1.2.
- `DC.2 + EQ.max`: Sum of the second frame value in the DC step and the maximum value in the EQ step.
- `DC.last + DW.last`: Sum of the last frame values in the DC and DW steps.
*HDB
Reads data from the `.hdb' file.
*HDB, File=hdbfile
Keyword line
- File=hdbfile:
.hdb
file name
The *HDB
command is used to read an existing HDB file when an analysis has already been performed and the HDB results need to be updated through commands like *PostStep
. The *HDB
command must be the first command in the file and can be used only once. After reading the HDB, the following commands can be used to modify it:
*NSET
: Only available for creating a new nset*ELSET
: Only available for creating a new elset*Info
: Only available for creating new information*PostStep
*PostHistory
Example
*HDB, File=bridge.text.hdb
*PostStep, Name=LL
myslab1, myslab2 # target elements
BSF, D # target Field
L1.MAX # frame 1
L2.max # frame 2
0.8*L1.MAX + 0.8*L2.MAX # frame 3
L1.min # frame 4
L2.MIN # frame 5
0.8*L1.MIN + 0.8*L2.MIN # frame 6
*PostStep, Name=LimitState
myslab1, myslab2 # target elements
BSF, SSF, S, D # target scalar fields
1.2*DC.2 + 1.8*LL.max, C=BSF.2, SSF.1
1.2*DC.2 + 1.8*LL.min, C=D.MAG
DC.2 + LL.MAX + EQ.MAX
DC.2 + LL.MIN + EQ.MIN
*PostHistory, File=<DB>-D # The generated file is created as "`DB_name`-D.csv".
Case1, Case2
D.X@12 # D.X at node 10
The *PostStep
command manipulates result values for ResultStep's created within the .hdb
file after executing a *Step
command. Therefore, it must be placed after the *Step
command.
Example
# Dead load case
*Step, TYPE=Static, Name=DC
...
# Live Load : Lane 1
*Step, TYPE=Static, Quasi, Name=L1
...
# Live Load : Lane 2
*Step, TYPE=Static, Quasi, Name=L2
...
# Earthquake
*Step, TYPE=Dyanamic, Name=EQ
...
*PostStep, OraphanHDB=On, Name=LL # Generates LL.h5.hdb or LL.text.hdb additionally.
myslab1, myslab2 # target elements
BSF, D # target Field
L1.MAX # frame 1
L2.max # frame 2
0.8*L1.MAX + 0.8*L2.MAX # frame 3
L1.min # frame 4
L2.MIN # frame 5
0.8*L1.MIN + 0.8*L2.MIN # frame 6
*PostStep, Name=LimitState
myslab1, myslab2 # target elements
BSF, SSF, S, D # target scalar fields
1.2*DC.2 + 1.8*LL.max, C=BSF.2, SSF.1
1.2*DC.2 + 1.8*LL.min, C=D.MAG
DC.2 + LL.MAX + EQ.MAX
DC.2 + LL.MIN + EQ.MIN