콘텐츠로 이동

출력·리스타트

해석 결과는 그대로는 메모리상에 존재하므로 후처리, 가시화, 복원·재개를 위해 적절한 파일로 출력할 필요가 있다. 각 용도에 따라 파일 형식·출력 항목·출력 빈도가 다르므로 FrontISTR에서는 여러 출력 계통을 구분하여 사용한다.

FrontISTR의 출력은 해석값을 저장하는 결과 파일(!WRITE,RESULT), 가시화에 사용하는 가시화 파일(!WRITE,VISUAL), 해석 상태를 저장하는 리스타트 파일(!RESTART)의 3개 계통으로 구성된다. 결과 파일과 가시화 파일에 포함할 물리량은 각각 !OUTPUT_RES!OUTPUT_VIS로 선택한다.

기능 개요

출력 설정은 다음 3개 축을 나누어 생각하면 정리하기 쉽다.

주요 입력 역할
출력 대상 !WRITE,RESULT, !WRITE,VISUAL, !RESTART 결과를 어떤 용도의 파일로 저장할지 결정한다.
출력 변수 !OUTPUT_RES, !OUTPUT_VIS 결과 파일 또는 가시화 파일에 포함할 물리량을 결정한다.
출력 빈도 FREQUENCY 몇 스텝마다 파일에 기록할지 결정한다.

!WRITE,RESULT는 결과 파일을 활성화하고 !OUTPUT_RES에서 출력 변수를 지정한다. !WRITE,VISUAL은 가시화 파일을 활성화하고 !OUTPUT_VIS에서 가시화로 전달할 변수를 지정한다. 어느 쪽도 FREQUENCY로 출력 간격을 제어할 수 있다. !WRITE는 단일 카드이며 RESULT / VISUAL / FEMAP은 출력 대상을 선택하는 매개변수로 함께 존재할 수 있다.

!OUTPUT_RES!OUTPUT_VIS의 데이터 행에는 출력 변수명과 ON / OFF를 열거한다. GROUP을 지정하면 출력 대상을 그룹 단위로 한정할 수 있다. 구체적인 입력 형식과 지정 가능한 데이터 행은 키워드 레퍼런스를 참조한다.

!RESTART는 결과 파일이나 가시화 파일과 별도로 해석 상태 자체를 저장한다. 리스타트 파일은 해석을 중단한 후 동일한 상태에서 재개하기 위해 사용한다.

출력 선택 방법

출력은 먼저 확인하려는 목적에 따라 선택한다. 수치값을 후처리나 다른 해석에 사용할 경우 결과 파일을 선택하고, 형상이나 분포를 가시화 도구에서 확인할 경우 가시화 파일을 선택한다. 해석을 도중부터 재개해야 하는 경우에는 일반 결과 출력과 별도로 리스타트 파일을 활성화한다.

목적 선택할 출력 주요 지정
해석값을 저장하여 후처리·비교·다른 해석에 이용 결과 파일 !WRITE,RESULT!OUTPUT_RES
ParaView 등에서 분포나 변형 형상을 확인 가시화 파일 !WRITE,VISUAL, !OUTPUT_VIS, !VISUAL
장시간 해석을 도중부터 재개 리스타트 파일 !RESTART
출력 용량을 줄임 필요한 변수만 출력 !OUTPUT_RES / !OUTPUT_VISON / OFFFREQUENCY

대규모 해석에서는 기본 출력 상태로 모든 스텝을 저장하면 결과 파일과 가시화 파일의 용량이 커진다. 필요한 물리량만 ON으로 하고 확인에 불필요한 양은 OFF로 한다. 시간이력을 세밀하게 추적할 필요가 없는 경우에는 FREQUENCY를 크게 하여 출력 간격을 넓힌다.

출력 변수는 "확인할 물리량", "저장 대상", "빈도" 순으로 결정하면 좋다. 예를 들어 응력 분포를 ParaView에서 확인하려면 가시화 파일을 활성화하고 NSTRESSNMISES!OUTPUT_VIS에서 선택한다. 접촉력을 수치로 후처리하려면 결과 파일을 활성화하고 CONTACT_NFORCE 등을 !OUTPUT_RES에서 선택한다.

출력 가능한 물리량

출력 변수는 구조 해석, 동적 해석, 열 해석, 접촉 해석, 요소 고유 결과 및 식별용 메타 정보로 나뉜다. 아래 표는 주요 변수명과 형식, 사용하는 해석 종류를 정리한 것이다. 변수명의 전체 목록과 데이터 행 형식은 !OUTPUT_RES!OUTPUT_VIS를 참조한다.

구분 변수명 형식 주요 해석 종류 내용
구조 해석 기본량 DISP, ROT, REACTION 벡터 정적 해석, 동적 해석 변위, 회전, 절점 반력. ROT는 회전 자유도를 갖는 요소에서 유효하다.
응력 NSTRESS, ESTRESS, ISTRESS 대칭 텐서 구조 해석 절점 평균 응력, 요소 응력, 적분점 응력.
Mises 응력·주응력 NMISES, EMISES, PRINC_NSTRESS, PRINC_ESTRESS, PRINCV_NSTRESS, PRINCV_ESTRESS 스칼라, 벡터 구조 해석 Mises 응력, 주응력값, 주응력 방향.
변형률 NSTRAIN, ESTRAIN, ISTRAIN 대칭 텐서 구조 해석 절점 변형률, 요소 변형률, 적분점 변형률.
소성·열 변형률 PL_ISTRAIN, PL_ESTRAIN, TH_NSTRAIN, TH_ESTRAIN, TH_ISTRAIN 스칼라, 대칭 텐서 비선형 구조 해석, 열응력 해석 등가소성변형률, 열변형률.
주변형률 PRINC_NSTRAIN, PRINC_ESTRAIN, PRINCV_NSTRAIN, PRINCV_ESTRAIN 스칼라, 벡터 구조 해석 주변형률값, 주변형률 방향.
동적 해석 VEL, ACC 벡터 동적 해석 절점 속도, 절점 가속도.
열 해석 TEMP 스칼라 열전도 해석 절점 온도. 열 해석의 결과 파일·가시화 파일에서는 온도장으로 출력된다.
접촉 CONTACT_NFORCE, CONTACT_FRICTION, CONTACT_RELVEL, CONTACT_STATE, CONTACT_NTRACTION, CONTACT_FTRACTION 벡터, 스칼라 접촉 해석 접촉 법선력, 마찰력, 상대 미끄럼 속도, 접촉 상태, 단위 면적당 접촉력.
보 요소 BEAM_NQM 12성분값 보 요소를 포함하는 구조 해석 보 요소의 단면 내력.
식별·상태 NODE_ID, ELEM_ID, SECTION_ID, MATERIAL_ID, ELEMACT, YIELD_RATIO 스칼라 구조 해석, 가시화 절점·요소·섹션·재료의 식별 정보, 요소 활성화 상태, 항복비. ELEMACT는 유효한 요소에서 1, 무효(비활성화) 요소에서 0을 출력한다.
셸 보조 정보 SHELL_LAYER, SHELL_SURFACE 스칼라 셸 요소를 포함하는 구조 해석 셸 층별 출력 및 셸 표면을 식별하는 보조 정보.

기본적으로 DISP, ROT, NSTRESS, NMISESON이다. 단, 실제로 의미 있는 값이 출력되는지는 해석 종류, 요소 종류, 재료 모델, 접촉 설정에 따라 달라진다. 예를 들어 VELACC는 동적 해석에서 사용하고, CONTACT_*는 접촉 해석에서 접촉 정보가 생성되는 경우에 사용한다.

셸 층별 출력

셸 요소는 두께 방향으로 여러 적분점 또는 층을 가지므로 같은 요소 안에서도 층이나 표면에 따라 응력·변형률 값이 다르다. 일반적인 절점 평균값이나 요소값만으로는 어느 층·어느 면의 값인지 구분하기 어렵다.

SHELL_LAYERON으로 하면 적층 셸의 각 층에 대해 +측과 -측의 결과를 구분하여 출력한다. 출력되는 응력·변형률 성분에는 층 번호와 면 측을 나타내는 식별자가 붙으므로 두께 방향 응력 분포나 층별 손상 평가에 이용할 수 있다.

SHELL_SURFACE는 셸의 윗면/아랫면 등의 표면을 식별하기 위한 보조 정보이다. 셸 층별 결과를 가시화하는 경우에는 SHELL_LAYER와 필요한 응력·변형률 변수를 활성화하고, 가시화 도구 측에서 대상 층 또는 표면에 대응하는 결과 성분을 선택한다.

셸 층별 출력은 출력 성분 수를 늘리므로 적층 수가 많은 모델에서는 파일 용량이 증가한다. 필요한 응력·변형률 변수로 한정하여 출력하는 것이 바람직하다.

출력 대상

결과 파일과 가시화 파일은 용도와 저장 형식이 다르다. 동일한 해석에서 둘 다 출력할 수도 있고 한쪽만 출력할 수도 있다.

결과 파일

결과 파일은 !WRITE,RESULT로 활성화한다. 해석 결과를 FrontISTR / HEC-MW의 결과 데이터로 저장하여 수치 후처리나 다른 해석에서의 읽기에 이용한다. 출력할 변수는 !OUTPUT_RES로 선택한다.

!WRITE,RESULT!WRITE 카드에 대한 RESULT 매개변수로 구현되어 있으며, 가시화나 FEMAP 출력과 나란히 출력 대상 선택지이다.

결과 파일에는 구조 해석에서는 변위, 응력, 변형률, 반력, 접촉 정보 등을, 열 해석에서는 온도장을 저장할 수 있다. 스텝별 출력 간격은 FREQUENCY로 지정한다. 구체적인 파일명, 배치, 실행 후 확인 방법은 실행 가이드를 참조한다.

결과 파일(확장자 .res)은 다음 구성을 갖는 텍스트 데이터이다. 맨 앞에 형식 버전과 주석, 이어서 전역 변수, 마지막으로 절점·요소별 출력 변수를 배열한다.

*fstrresult 2.0
*comment
<주석 행>
*global
<전역 변수 개수>
<전역 변수의 자유도>
<전역 변수 이름>
<전역 변수 값>
...
*data
<절점 수> <요소 수>
<절점 데이터 개수> <요소 데이터 개수>
<절점 데이터의 자유도> ...
<절점 데이터 이름>
...
<절점 데이터 값>
...
<요소 데이터의 자유도> ...
<요소 데이터 이름>
...
<요소 데이터 값>
...

로그 파일

로그 파일(확장자 .log)은 해석 후 항상 출력되는 요약 파일이다. 절점·요소별 물리량에 더하여 변위·변형률·응력 성분의 최대/최소값이 출력된다. 모드 해석에서는 고유값과 고유벡터 값이 출력된다. !WRITELOG 매개변수로 출력 내용을 제어할 수 있다. 파일명과 배치는 실행 가이드를 참조한다.

가시화 파일

가시화 파일은 !WRITE,VISUAL로 활성화한다. 메시와 결과 데이터를 가시화 도구용 형식으로 변환하여 출력한다. 출력할 변수는 !OUTPUT_VIS로 선택하고, 형식과 가시화 조건은 !VISUAL로 지정한다.

!WRITE,VISUAL은 독립 키워드가 아니라 !WRITE 카드에 대한 VISUAL 매개변수로 구현되어 있으며, !WRITE,RESULT / !WRITE,FEMAP과 동렬로 출력 대상을 전환한다(fistr1/src/common/fstr_ctrl_common.f90fstr_ctrl_get_WRITE).

가시화를 활성화하려면 !VISUAL 카드에서 가시화 서피스와 출력 형식을 최소한 지정해야 한다. 다음은 최소 데이터 세트이다.

!WRITE,VISUAL
!VISUAL,method=PSR
!surface_num=1
!surface 1
!output_type=VTK

surface_num!surface 지정은 생략할 수 없다. 상세 형식과 이용 가능한 옵션은 !VISUAL을 참조한다.

주요 가시화 형식은 다음과 같다.

형식 용도
VTK ParaView 등에서 가시화에 사용한다.
AVS(UCD) AVS / UCD 형식의 가시화·데이터 교환에 사용한다.
BMP 가시화 결과를 이미지로 출력한다.
NEU FEMAP neutral 형식의 데이터 교환에 사용한다.

가시화 파일은 결과 파일보다 가시화 도구에서 직접 다루기 쉬운 반면, 선택한 형식이나 변수 수에 따라 용량이 증가한다. 대규모 모델에서는 표시에 필요한 변수만 !OUTPUT_VIS로 활성화한다.

리스타트

리스타트는 해석 중단 시점의 내부 상태를 저장하고 다음 실행 때 동일한 상태에서 계산을 재개하기 위한 기능이다. 일반 결과 파일이 후처리를 위한 출력인 데 반해 리스타트 파일은 솔버가 계산을 계속하기 위한 상태 저장이다.

!RESTART, FREQUENCY=nn이 양수인 경우 지정한 스텝 간격으로 리스타트 파일을 기록한다. n이 음수인 경우 실행 시작 시 기존 리스타트 파일을 읽어들이고, 그 후에는 절대값 |n|을 기록 간격으로 하여 리스타트 파일을 기록한다.

구조 해석의 리스타트에서는 현재 스텝, 서브스텝, 누적 스텝, 시각, 시간 증분, 하중 이력, 변위, 외력, 가우스점별 응력·변형률, 재료 내부 상태 변수, 접촉 상태 등을 저장한다. 동적 해석에서는 변위에 더해 속도·가속도, 변형률 에너지, 현재 시각, 시간 증분 등 시간 적분 재개에 필요한 동적 상태도 저장한다. 열 해석에서는 스텝 번호, 시각, 온도장을 저장하며, 읽을 때 온도장을 초기 상태로 복원한다.

정적 해석 리스타트의 기록 시점과 재개 동작

정적 해석(fstr_solve_NLGEOM)의 리스타트에는 기록 경로가 2개 있으며 재개 시 동작이 다르다.

  • 서브스텝 도중 기록: 서브스텝 루프 안에서 step_countFREQUENCY의 배수가 된 시점에 기록된다. 기록되는 시각 정보는 "현재 스텝의 시작 시각"으로 저장되며 이전 스텝분의 하중 목록이 수반된다.
  • 스텝 종단 기록: 각 로드 스텝의 서브스텝 루프가 완료된 직후 FREQUENCY의 배수인지 여부와 관계없이 항상 기록된다. 기록되는 시각 정보는 "스텝 종료 시각"으로 저장되며 해당 스텝분의 하중 목록이 수반된다.

읽을 때 FrontISTR는 기록된 "현재 시각"과 "기준 시각"이 일치하는지 여부로 스텝 완료 상태를 판정한다(fstr_Restart.f90fstr_read_restart).

기록 시 상태 재개 시 동작
서브스텝 도중 같은 스텝의 다음 서브스텝부터 계속한다. 기록 시점의 서브스텝 위치를 이어받아 남은 서브스텝 루프를 실행한다.
스텝 종단 다음 스텝의 첫 서브스텝부터 시작한다. cstep을 1 증가시키고 substep=1로 재설정한 뒤 이후 해석을 수행한다.

따라서 동일한 FREQUENCY 설정이라도 기록이 발생한 시점(서브스텝 도중/스텝 종단)에 따라 재개 후의 스텝 번호와 시각 기준이 달라진다는 점에 주의한다. 특히 스텝 종단 기록은 FREQUENCY 설정과 독립적으로 매 스텝 끝에서 반드시 수행된다.

동적 해석 리스타트의 기록 시점과 재개 동작

시간이력 동적 해석의 리스타트도 서브스텝 도중 기록과 스텝 종단 기록을 구분한다. 서브스텝 도중에는 누적 서브스텝 수 step_countFREQUENCY의 배수가 된 시점에 기록되며, 스텝 종단에서는 FREQUENCY와 관계없이 해당 스텝의 마지막에 기록된다.

읽을 때는 저장된 스텝 번호, 서브스텝 번호, 누적 서브스텝 수에서 재개 위치를 복원한다. 현행 형식(restart_version >= 5)에서는 정적 해석과 공통 헤더를 사용하며 현재 시각, 시간 증분, Newton 반복 통계, 자동 증분 상태를 저장한다. 이에 따라 여러 !STEP과 자동 증분·cutback을 사용하는 동적 해석에서도 재개 후의 시간 기준과 시간 증분을 이어받을 수 있다. 구형 형식의 동적 해석 리스타트 파일도 일부 읽기 호환성을 갖지만, 신규 해석에서는 현행 형식을 사용한다.

리스타트 시 !STEP 카드 작성 방법

리스타트 재개 시 FrontISTR는 cnt 파일 내의 !STEP 카드를 "재개 후 실행할 스텝 열"로 읽고 항상 맨 앞(tot_step=1)부터 순서대로 처리한다. 읽어들인 리스타트 정보의 스텝 번호는 화면 표시의 누적 스텝 번호를 맞추는 데 사용되며 cnt의 !STEP 인덱스 자체에는 영향을 주지 않는다. 또한 현행 형식에서는 cnt의 각 !STEPstarttime에 리스타트 읽기 시 기준 시각분이 일괄 가산되어 재개 시각을 기준으로 한 타임라인에 맞춰진다.

따라서 리스타트 재개용 cnt는 다음 방침으로 준비한다.

중단 방식 cnt에 남길 !STEP 범위
서브스텝 도중 기록(스텝 미완료) 중단된 스텝을 맨 앞에 남긴다. 이후의 미실행 스텝을 계속 배열한다.
스텝 종단 기록(스텝 완료) 완료된 스텝은 삭제하고, 다음에 실행할 스텝부터 맨 앞에 배열한다.

어느 경우든 이미 완료된 스텝은 cnt에서 삭제하는 것이 원칙이다. starttime에는 리스타트 시각이 자동 가산되므로 cnt 측에서는 0을 기점으로(또는 상대적인 스텝 시작 시각으로) 작성하면 된다. 경계조건·하중 등의 참조는 남긴 !STEP 카드에 대응하는 분량만 cnt에 유지한다. 이 방침은 여러 !STEP을 사용하는 동적 해석 리스타트에서도 동일하다.

리스타트를 사용하는 전형적인 흐름은 다음과 같다.

  1. 첫 실행에서 !RESTART, FREQUENCY=n을 지정하여 리스타트 파일을 기록한다.
  2. 해석을 재개하는 실행에서는 !RESTART, FREQUENCY=-n을 지정한다.
  3. FrontISTR는 기동 시 리스타트 파일을 읽고 이후에는 n 스텝마다 새로운 상태를 기록한다.

리스타트 파일의 명명, 배치, 실행 시 지정 방법은 실행 가이드를 참조한다. 구버전 형식의 읽기도 일부 호환성이 있지만 신규 해석에서는 현행 버전 형식을 사용한다.

관련 항목

  • 순차 실행 — 해석 실행 시 파일 배치와 출력 확인의 기본.
  • !OUTPUT_RES, !OUTPUT_VIS — 결과 파일·가시화 파일에 출력할 변수 지정.
  • !WRITE — 결과 파일·가시화 파일·로그의 출력 활성화와 출력 빈도(RESULT / VISUAL / LOG / FEMAP 매개변수).
  • !VISUAL — 가시화 서피스·출력 형식 지정(최소 데이터 세트 예 포함).
  • !RESTART — 리스타트 파일 읽기·기록 지정.
  • 해석 종류 — 해석 종류별 주요 결과 항목.
  • 접촉·임베딩 — 접촉 출력의 의미와 접촉 상태의 취급.
  • 스텝 제어 — 출력 스텝이나 시간점과의 관계.