Skip to content

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 named name.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., where elements 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
  1. Specified as field.sub@nodes.
  2. nodes can be a node ID, nset, or node number pattern (e.g., startNodeId:endNodeId:spacing).
  3. 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]
  4. Subcomponents include characters such as X, Y, Z, RX, RY, RZ, W, P, T, representing degrees of freedom or computed values:
  5. X, Y, Z: Translational degrees of freedom in X, Y, Z directions
  6. RX, RY, RZ: Rotational degrees of freedom in RX, RY, RZ directions
  7. P: Pressure degree of freedom (acoustic element only)
  8. T: Temperature degree of freedom (reserved)
  9. Mag: Magnitude of X, Y, Z degrees of freedom (computed as the vector magnitude)

Examples:

  • D.X@1: X displacement at node 1
  • D.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 nset slab
For Element Fields
  1. If subcomponents exist, the format field.sub@elements-elementPoint is used; if no subcomponents, use field@elements-elementPoint.
  2. The following lists applicable field names and their subcomponents:

    • BSF = [Nx My Mz Vy Vz T] , beam section forces
    • BSE = [Ex Ky Kz Gxy Gxz Hx] , beam section deformation
    • BST = [T0 Ty Tz] , beam section temperature
    • SSF = [Nx Ny Nxy Mx My Mxy Vx Vy] , shell section forces
    • SSE = [Ex Ey Gxy Kx Ky Kxy Gxz Gyz], shell section deformation
    • SST = [T0 Tz] , shell section temperature
    • ISF = [X Y Z] , interface section forces
    • ISE = [X Y Z] , interface section deformation
    • SF = [X Y Z RX RY RZ] , spring forces
    • SE = [X Y Z RX RY RZ] , spring deformation
    • DF = [X Y Z RX RY RZ] , damping forces
    • DE = [X Y Z RX RY RZ] , damping deformation rate
    • S = [11 22 33 12 23 31 P1 P2 P3 Mises], stress
    • E = [11 22 33 12 23 31 P1 P2 P3], mechanical strain
    • PE = [11 22 33 12 23 31 P1 P2 P3], plastic strain
    • SB = [11 22 33 12 23 31 P1 P2 P3], back stress
    • PEEQ , Equivalent plastic strain
    • PEEQT, Tensile equivalent plastic strain
    • PEEQC, Compressive equivalent plastic strain
    • T , Material temperature (note: nodal temperature is defined as D)
    • ECUN , Last compressive loading strain from origin of hfUConcrete
    • ETUN , Last tensile loading strain from origin of hfUConcrete
    • TIME , Material time
    • ECR , Creep strain
    • ESH , Shrinkage strain
    • EP , Pressure
    • EW , Volumetric strain
    • SPF , Stiffness proportional factor in ModelUpdating
    • MPF , Mass proportional factor in ModelUpdating
  3. 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 1
    • SF.X@3:9:3-1: X component of spring force at elements 3, 6, and 9, section point 1
    • SSF.Mx@slab-1: Mx shell section force at slab elset, section point 1
    • S.11@3-1: 11 stress component at element 3, section point 1
    • S.Mises@1-1: Mises stress at element 1, section point 1
    • PEEQ@10-5: Equivalent plastic strain at element 10, section point 5
  4. For beam elements, material points within a cross-section (section points) can be specified using CellId-pointId for fields like stress or strain.

  5. 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 10
    • E.11@2-2-1-3: For beam elements, E.11 at element 2, integration point 2, Cell 1, pointId 3
    • S.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 when MIN or MAX is used in frameExpression. 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