Skip to content

14. 해석 결과 관리

해석된 결과를 관리하는 명령으로 *PostStep, *History, *PostHistory, *HDB 등이 있다.

*History

대상 step을 대상으로 해석을 수행 중 이력(history) 결과를 출력한다.

*History, Name=history_file
 step1, step2, ...
 scalarField@target|sensorName, ...
 ...
Keyword line
  • Name=name: *History*PostHistory 명령에서 생성하는 명칭. 중복될 수 없음. 이 이름으로 name.csv 파일이 생성됨. 이름에 이 포함되는 경우 현재의 DB 이름(입력파일에서 확장자를 뺀 이름)으로 파일 이름이 생성됨.
First dataline
  • step1, step2, ...: 대상 해석 스텝
Second dataline and subsequent datalines
  • scalarField@target: 스칼라 필드 명칭과 대상

    • scalarField: 하위 성분을 갖는 필드는 D.X, FN.Y, SF.X, SE.X, S.11, E.33 등의 형태이고, PEEQ 같은 스칼라 필드는 그대로 적용
    • target: 필드를 출력할 절점 또는 요소. 절점에서 정의되는 필드의 경우 절점번호, 절점번호패턴, 절점집합이 가능하며, 요소에서 정의되는 필드의 경우 elements-elementPoint, elements-C{cellId}-pointId 등과 같다. 여기에서 elements는 요소번호, 요소번호패턴, 요소집합이 가능하다.
  • sensorName: 출력한 센서 명칭

*History 명령은 절점의 성분이나, 요소 단위 필드의 개별 성분을 시간에 따른 히스토리 파일로 저장한다. sensor인 경우 센서에서 정의한 스칼라 값이 사용된다. scalarField@target의 경우 스칼라 필드 명칭과 드불어 대상 위치를 지정해야 한다. scalarField는 절점 필드와 요소 필드로 구분된다.

절점 필드의 경우
  1. field.sub@nodes 형태로 지정한다.
  2. nodes는 절점번호(nodeId), 절점집합(nset), 절점번호패턴(startNodeId:endNodeId:spaciang)이 올 수 있다.
  3. field로는 D, V, A, FN, FE, FK, FC, FM이 가능하다.
    • D : 변위, D=[X, Y, Z, RX, RY, RZ, P, T, Mag]
    • V : 속도, V=[X, Y, Z, RX, RY, RZ, P, T, Mag]
    • A : 가속도, 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. sub에는 X, Y, Z, RX, RY, RZ, W, P, T 등의 자유도와 이들로부터 계산된 값을 의미하는 문자가 올 수 있다. 그 의미는 다음과 같다.
  5. X, Y, Z : X, Y, Z 방향 병진 자유도
  6. RX, RY, RZ : RX, RY, RZ 방향 회전 자유도
  7. P : Pressure 자유도( Acoustic element only )
  8. T : 온도 자유도( reserved )
  9. Mag : X, Y, Z 자유도의 크기

  • D.X@1 : 1번 절점의 X displacement
  • D.Mag@10 : 10번 절점의 X,Y,Z 자유도의 크기 (벡터의 크기로 계산)
  • FN.RX@slab : slab 절점 집합의 RX 방향 external nodal force
요소 필드의 경우
  1. 하위 성분이 존재하는 경우에는 field.sub@elements-elementPoint, 하위 성분이 없는 경우네는 field@elements-elementPoint 등의 형식이 적용된다.
  2. 다음은 적용가능한 필드의 명칭과 그 하위 성분을 나열한 것이다.

    • 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에는 요소번호(elementId), 요소집합(elset), 요소번호패턴(startElementId:endElementId:spaciang)이 올 수 있다.

    • BSF.Mz@10-1:
    • SF.X@3:9:3-1
    • SSF.Mx@slab-1
    • S.11@3-1
    • S.Mises@1-1
    • PEEQ@10-5
  4. 특수한 경우인 보요소에서 단면내 재료점(section point)에서 응력이나 변형률 같은 재료점의 상태를 보는 경우에는 CellId-pointId가 사용된다.

  5. 특수한 경우인 쉘요소에서 단면내 재료점(section point)에서 응력이나 변형률 같은 재료점의 상태를 보는 경우에는 T/B/LayerId 형태가 추가된다. T/B는 균질단면(homogeneous section)에서 상단, 하단을 의미한다. LayerId는 복합단면(complex section)에서 주어진 적층 번호이다.

    • S.11@1-1-2-10 : 보요소, 1번 요소, 1번 적분점, 2번 Cell의 pointId 10에서의 S.11
    • E.11@2-2-1-3 : 보요소, 2번 요소, 2번 적분점, 1번 Cell의 pointId 3에서의 E.11
    • S.Mises@10-2-T : 쉘요소, 10번 요소, 2번 적분점, 상단에서의 Mises 응력 (Homogeneous 단면)
    • E.12@11-3-2 : 쉘요소, 11번 요소, 3번 적분점, 2번 layer의 E.12 변형률 (Complex 단면)
    • PEEQ@101-4-B : 쉘요소, 101번 요소, 4번 적분점, 하단에서의 PEEQ
Example
*Step, Type=Static, Name=Case1
 ...

*Step, Type=Dynamic, Name=Case2
 ...

*History, Name=out   # 생성되는 파일은 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  # 생성되는 파일은 “DB명칭”-D.csv로 생성
 Case1, Case2
 D.X@12    # D.X at node 10

*PostHistory

해석이 끝나(.hdb 파일이 생성된 후) 대상 step을 대상으로 이력(history) 결과를 구하여 출력한다.

*PostHistory, Name=name
 step1, step2, ...
 scalarField@target|sensorName, ...
 ...

명령의 양식은 명령어 명칭을 제외하고 *History와 동일함.

*History는 해석을 수행하면서 이력 데이터를 구하고, *PostHistory는 해석이 끝난후 *Output으로 지정한 데이터에서 이력데이터를 구한다. 따라서 *History*Output에서 지정한 필드가 아니더라고 그 해석 모델에 존재하는 데이터에 대한 이력 데이터를 얻을 수 있지반, *PostHistory는 그렇지 않다.

*PostStep

해석 결과를 이용해 새로운 해석 스텝 결과를 조합한다.

*PostStep, OrphanHDB=On|Off, Name=name
 tagertElset, ...
 targetField, ...
 frameExpression, C=...
 ...
Keyword line
  • __Name=name:__해석의 이름
  • OrphanHDB=On|Off: PostStep의 결과에 대응하는 ResultStep 만을 갖는 별도의 .hdb 파일을 생성할지를 지정. default는 Off. On이면 name.h5.hdb 등과 같은 *PostStep의 명칭과 같은 이름의 .hdb 파일에 대응하는 ResultStep만을 저장하여 생성해줌.
First dataline
  • targetElset: 대상이 되는 요소집합
Second dataline
  • targetField: SF, S, D 등과 같이 대상이 되는 필드 또는 센서.
Third dataline and subsequent lines
  • frameExpression: 생성할 프레임의 규칙. L1.MAX, 0.8L1.MAX+0.8L2.MIN, DC.2 등
  • C=...: frameExpression에 MIN, MAX가 존재하는 경우 targetField의 최대,최소 조건. 지정하지 않는 경우 개별 필드의 최대 최소가 계산됨

생성할 프레임 규칙은 factor step.frame 형태의 선형조합으로 작성한다. factor는 숫자이고, step은 사용한 ResultStep 이름이다. factor가 1인 경우에는 factor는 생략가능하다. frame은 프레임 넘버(1-based) 또는 min, max, last 등이 올 수 있다. min은 전체 프레임을 대상으로 최소값을 의미하고, max는 최대값을 의미한다. last는 마지막 프레임을 의미한다. ResultStep 이름인 step은 대소문자를 구분하나, min, max, last는 대소문자 구분을 하지 않는다.

- 1.2*DC.1 + 1.8*DL.1 : DC 스텝의 첫 번째 frame에 1.2 배, DL 스텝의 첫 번째 frame의 1.8배를 더한 결과
- 1.2*L1.max : L1 스템의 모든 프레임을 대상으로 최대값을 구하고 1.2배한 결과
- DC.2 + EQ.max : DC 스텝의 2번째 프레임 값과 EQ 스텝의 최대값을 더한 결과
- DC.last + DW.last : DC 스텝의 마지막 프레임 값과 DW 스텝의 마지각 프레임 값

*HDB

.hdb 파일을 읽어온다.

*HDB, File=hdbfile
Keyword line
  • File=hdbfile: .hdb 파일 명칭

*HDB 명령은 이미 해석을 수행하여 HDB 파일이 존재할 경우 *PostStep 등의 명령으로 .hdb 파일의 결과를 갱신하고자 할 때, .hdb 파일을 읽어오는 역할을 한다. *HDB 명령은 파일내에서 첫 번째 명령이고 한번만 사용할 수 있으며, 이후 다음의 명령을 통해 .hdb 파일을 수정할 수 있다.

  • *NSET : 새로운 절점집합 생성시에만 가능
  • *ELSET: 새로운 요소집합 생성시에만 가능
  • *Info : 새로운 정보 생성시에만 가능
  • *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  # 생성되는 파일은 “DB명칭”-D.csv로 생성
 Case1, Case2
 D.X@12    # D.X at node 10

*PostStep*Step 명령 수행 후 .hdb 파일내에 생성되는 ResultStep을 대상으로 결과값의 조작하게 된다. 따라서 *Step 명령 이후에 존재해야 한다.

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    # LL.h5.hdb 또는 LL.text.hdb 등을 추가로 생성
 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