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=name
 step1, step2, ...
 sensorName|scalarField@target, ...
 ...
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 data line
  • step1, step2, ...: Target analysis steps
Second data line and subsequent data lines
  • sensorName: Name of the output sensor
  • scalarField@target: Name of the scalar field and its target. For fields with subcomponents, use forms such as D.X, FN.Y, SF.X, SE.X, S.11, E.33, etc. Scalar fields like PEEQ are applied as is. The format of target depends on whether it is a node field or an element field, as shown below.

    • scalarField@nodes: Node field
    • scalarField@elements-gpIndices: Element field defined at integration points
    • scalarField@elements-gpIndices-cellId: Element field defined within a cell at integration points
    • scalarField@elements-gpIndices-cellId-pointId: Element field defined at integration point–cell–point
    • Details
      • nodes: Target nodes specified by node ID, node ID pattern (start:end:spacing, start:end), or nset
      • elements: Target elements specified by element ID, element ID pattern (start:end:spacing, start:end), or elset
      • gpIndices: Integration point indices, or integration point index patterns (start:end:spacing, start:end). Integration point indices are 1-based, and last represents the final integration point index
      • cellId: Cell ID within an integration point. Represents layers defined with different materials in Beam/Interface/Spring elements. Exceptionally, in Shell elements, instead of a cell ID, B (bottom) and T (top) are used for homogeneous sections, and LayerId is used for laminated shells.
      • pointId: Material point ID within a cell. Used in Beam elements with meshed cells or layered cells, representing material points inside the cell

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 specifies the target nodes using node IDs, node ID patterns (start:end:spacing, start:end), or nsets. A node ID can be given either as an integer or as an expression enclosed in parentheses.
  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, P, T, Mag 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.X@2:8:2 : X displacement at nodes 2, 4, 6, 8
  • D.P@2:5 : Pressure P at nodes 2, 3, 4, 5
  • D.Mag@10 : Magnitude of X, Y, Z displacements at node 10 (computed as vector magnitude)
  • FN.RX@slab : RX-direction external nodal force for node set "slab"
  • D.X@2+5 : Equivalent to D.X@7
  • D.X@3*(4-1) : Equivalent to D.X@9
  • D.Z@1+2:9:3 : Equivalent to D.Z@3:9:3
For Element Fields
  1. In scalarField@target, the scalarField is expressed as field.sub when subcomponents exist, or simply as field when no subcomponents are present.
  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
    • 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 UGeneric material
    • ETUN , Last tensile loading strain from origin of UGeneric material
    • ITR = [A B N], interfacial traction
    • IRD = [A B N], interfacial relative displacement
    • 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. When expanded, scalarField@target can take the following forms: elements-gpIndices, elements-gpIndices-cellId, or elements-gpIndices-cellId-pointId.

  4. elements specifies the target elements using element IDs, element ID patterns (start:end:spacing, start:end), or element sets. An element ID can be given as an integer or as an expression enclosed in parentheses. gpIndices specify the target integration point indices, using either explicit indices or index patterns (start:end:spacing, start:end). Integration point indices are 1-based, and last refers to the final integration point index. gpIndices may also include expressions enclosed in parentheses. When using expressions in elements or gpIndices, note that the - operator can be confused with the hierarchy separator, so parentheses must be used appropriately.

  5. The format and examples for continuum elements are as follows:

    • scalarField@elements-gpIndices
    • examples
      • S.12@3-1 : element 3, integration point 1, field S.12
      • S.Mises@5-1:3 : element 5, integration points 1,2,3, field S.Mises
      • PEEQ@beam-1:last : beam element set, all integration points (1:last), field PEEQ
  6. The format and examples for beam elements are as follows:

    • scalarField@elements-gpIndices : element field defined at integration points
    • scalarField@elements-gpIndices-cellId-pointId : element field defined at integration point–cell–point
    • examples
      • BSF.My@3-1 : slab element set, element 3, integration point 1, field BSF.My
      • BSF.My@3:5-1 : elements 3 and 5, integration point 1, field BSF.My
      • BSF.Nx@slab-1 : slab element set, integration point 1, field BSF.Nx
      • S.11@1-1-2-10 : beam element, element 1, integration point 1, cell 2, pointId 10, field S.11
      • E.11@2-2-1-3 : beam element, element 2, integration point 2, cell 1, pointId 3, field E.11
      • BSF.Nx@10-1 : element 10, integration point 1, field BSF.Nx
      • BSF.Nx@(2+3)-1 : element 5, integration point 1, field BSF.Nx
      • BSF.Nx@(3*(4-1)+1)-2 : element 10, integration point 2, field BSF.Nx (parentheses required)
      • BSF.Nx@(5-2)-1 : element 3, integration point 1, field BSF.Nx (parentheses required)
  7. The format and examples for Spring and Interface elements are as follows. For Spring elements, gpIndex is always 1.

    • scalarField@elements-gpIndices : element field defined at integration points
    • scalarField@elements-gpIndices-cellId : element field defined within a cell at integration points
    • examples
      • SF.X@3-1 : element 3, first integration point, field SF.X
      • SE.X@1-1 : Spring element, element 1, gp=1 (always 1), field SE.X
      • SF.X@1-1 : Spring element, element 1, gp=1 (always 1), field SF.X
      • E.11@1-1-1 : Spring element, element 1, gp=1, cell 1, field E.11
      • ISD.11@1-1-1 : Spring element, element 1, gp=1, cell 1, field E.11
      • IRD.A@1-2 : Interface element, element 1, gp=2, field IRD.A
      • S.11@1-2-2 : Interface element, element 1, gp=2, cell 2 (direction B), stress S.11
  8. The format and examples for Shell elements are as follows:

    • scalarField@elements-gpIndices : element field defined at integration points
    • scalarField@elements-gpIndices-T/B/LayerId : element field defined within a cell at integration points. T/B indicate top and bottom of homogeneous sections, while LayerId refers to a specified layer number in laminated composite sections.
    • examples
      • S.Mises@10-2-T : Shell element, element 10, integration point 2, top surface, stress Mises (homogeneous section)
      • E.12@11-3-2 : Shell element, element 11, integration point 3, layer 2, strain E.12 (composite section)
      • PEEQ@101-4-B : Shell element, element 101, integration point 4, bottom surface, field PEEQ
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 data line
  • targetElset: Target elset
Second data line
  • targetField: Target field or sensor, such as SF, S, or D.
Third data line 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, OrphanHDB=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