Rescale에서 Gnuplot을 사용하여 시뮬레이션 결과 자동화 및 시각화

그래프
배경
HPC 애플리케이션 실행을 담당하는 많은 엔지니어는 일반적으로 시뮬레이션을 모니터링하여 계산이 예상대로 진행되는지 확인하고, 솔루션 오류가 일반적인 엔지니어링 오류 임계값보다 낮은 시기를 확인하거나, 시뮬레이션 중인 물리적 현상의 무결성을 확인하는 데 집중합니다. 대부분의 상용 응용 프로그램은 그래픽 기반 인터페이스 내에서 이러한 유형의 데이터를 시각화하거나 플롯팅하는 형식을 제공하지만 플롯 옵션은 일반적으로 제한되어 있으며 플롯 자체가 매력적이지 않거나 다른 사람에게 결과를 제시하거나 문서화하는 데 적합하지 않습니다.
Gnuplot은 원래 과학자와 학생이 수학적 함수와 데이터를 대화형으로 시각화할 수 있도록 돕기 위해 만들어진 여러 플랫폼에 존재하는 휴대용 명령줄 기반 그래픽 유틸리티이지만 이후 많은 비대화형 사용을 지원하도록 성장했습니다. Gnuplot은 사용자가 플롯 생성을 자동화하고 훌륭한 플롯을 생성하는 데 도움이 되는 여러 가지 이점을 제공합니다. 사용자는 다양한 기능이나 데이터 세트에서 재사용할 수 있는 스크립트 또는 템플릿을 설정할 수 있습니다. 이러한 스크립트는 플롯의 형식을 지정하는 방법, 사용된 데이터를 구문 분석하는 방법 등을 정의할 수 있습니다. Gnuplot의 다용성은 그림에 표시된 예에서 강조됩니다. 1 을 통하여 5.

matlab_line_colors_2014
그림 1: 기본 Matlab R2014 선 색상으로 표시된 XNUMX차부터 XNUMX차까지의 Bassel 함수
클라인_병
그림 2: 클라인 병
world_color_3d (1)
그림 3: Natural Earth II 세계의 음영 기복 및 수역 플롯
등장방형_투영
그림 4: 세계의 정방형 투영
animate_bessel
그림 5: 베셀 함수 애니메이션

분석 설명
엔지니어와 과학자가 Rescale에서 자신의 시뮬레이션을 모니터링하는 데 도움이 될 수 있는 방식으로 Gnuplot을 사용하는 것을 시연하기 위해 출판에 적합한 결과 플롯을 생성하는 것 외에도 간단한 3D Reynolds-Averaged Navier-Stokes(RANS) 시뮬레이션을 다음을 사용하여 실행합니다. 스탠포드 대학의 구조화되지 않은(SU2) 오픈 소스, 유한 볼륨 솔버. CFD 시뮬레이션 전반에 걸쳐 모니터링되는 솔루션 잔차 및 공기 역학 계수 측정 항목 모두에 대해 Gnuplot을 사용하여 주기적으로 플롯이 생성됩니다. 사용자는 실행되는 동안 특정 시뮬레이션에 대한 작업 상태 페이지에서 새로 고쳐지는 플롯을 볼 수 있습니다.
프로세스는 먼저 플롯 형식이 정의되고 플롯 자체가 생성되는 Gnuplot 명령 또는 스크립트 파일을 정의하여 간략하게 설명됩니다. 이 Gnuplot 명령 파일 내에서는 Gnuplot이 명령 파일을 주기적으로 다시 읽도록 하는 간단한 명령문이 파일 끝에 추가됩니다. RANS 시뮬레이션이 실행되고 모니터 파일이 업데이트되면 Gnuplot은 솔버가 종료될 때까지 업데이트된 시뮬레이션 결과를 사용하여 새 플롯을 생성합니다.
이 예에서는 파일 SU2.gnu 사용.

재설정 # 포스트스크립트 터미널 포스트스크립트 설정 EPS 향상된 색상 크기 5.47,3.33 글꼴 ”Verdana, 12” 선폭 2 # 색상 정의 경계 선폭 설정 1.5 스타일 라인 1 설정 lc rgb '4dbeee' lt 1 lw 2 시안 스타일 라인 2 설정 lc rgb 'a2142f ' lt 1 lw 2 빨간색 세트 스타일 라인 3 lc rgb 'd95319' lt 1 lw 2 주황색 세트 스타일 라인 4 lc rgb 'edb120' lt 1 lw 2 노란색 세트 스타일 라인 5 lc rgb '77ac30' lt 1 lw 2 녹색 세트 스타일 line 6 lc rgb '0072bd' lt 1 lw 2 파란색 세트 스타일 line 7 lc rgb '7e2f8e' lt 1 lw 2 purple # 키 세트 키 하단 오른쪽 Left # 축 세트 스타일 line 11 lc rgb '808080' lt 1 세트 테두리 3 뒤로 ls 11 set tics nomirror out scale 0.75 # 그리드 세트 스타일 라인 12 lc rgb '808080' lt 0 lw 1 세트 그리드 백 ls 12 set xlabel 'Iteration' set ylabel 'Residual' set mxtics 2 set mytics 10 set 데이터파일 구분 기호 ”,” 형식 설정 '%g' 형식 설정 y '10 %.0s}' 출력 설정 'residuals.eps' 플롯 'history.plt' Every::4 u 1:12 t 'rho' wl ls 1, 'history.plt' Every::4 u 1:13 t 'x-mom' wl ls 2, 'history.plt' Every::4 u 1:14 t 'y-mom' wl ls 3, 'history.plt' Every::4 u 1:15 t 'z-mom' wl ls 4, 'history.plt' Every::4 u 1:16 t 'energy' wl ls 5, 'history.plt' Every::4 u 1:17 t ' nu' wl ls 6 set ylabel '양력 계수, CLift' 설정 형식 y '%g' 출력 설정 'lift.eps' 플롯 'history.plt' Every::4 u 1:2 t 'CLift' wl ls 1 set ylabel '항력 계수, CDrag' set 출력 'drag.eps' 플롯 'history.plt' Every::4 u 1:3 t 'CDrag' wl ls 2 set xlabel '양력 계수, CLift' set ylabel '양력 대 항력 비율, L/D' 출력 설정 'lift-drag.eps' 플롯 'lift-drag.dat' u 1:2 t 'L/D' wl ls 1 일시 중지 30 다시 읽기

명령 파일은 포스트스크립트 터미널이 사용되는 터미널 설정을 정의하는 것으로 시작됩니다. Gnuplot 내에서는 여러 터미널을 사용할 수 있으며, 사용 가능한 터미널은 Gnuplot 프롬프트에 "set Terminal"을 입력하여 나열할 수 있습니다. 일반적으로 문서 내에서 사용할 플롯을 생성할 때 포스트스크립트 터미널 옵션이 선호됩니다. 반면 웹 게시에 출력을 사용할 때는 svg 및 pngcairo 터미널이 선호됩니다. LATEX이나 TEX 문서 내에서 수학 공식이나 텍스트를 통합하는 옵션도 있습니다.
다음으로 솔루션 잔차와 관련된 단일 플롯에서 사용되는 여러 메트릭을 구별하는 데 도움이 되도록 색상이 있는 몇 가지 선 스타일이 정의됩니다. 키(또는 범례)는 오른쪽 하단에 배치되고 텍스트는 왼쪽 정렬됩니다. 축의 색상(회색)과 선 두께가 지정되고 틱에 대한 형식과 배치가 제공됩니다. 플롯의 형식 지정 옵션이 모두 구성되면 실제 데이터는 SU2의history.plt 파일을 사용하여 플롯됩니다. 여기서 시뮬레이션과 관련된 데이터는 시뮬레이션이 실행되는 동안 각 반복에 대해 출력됩니다.
Gnuplot에는 겉으로는 무한해 보이는 서식 옵션 배열이 포함되어 있습니다. 처음에는 옵션 수가 너무 많아서 원하는 대로 차트가 표시되도록 구성한 후에는 후속 차트를 변경할 필요가 거의 없습니다. 필요에 따라 특정 플롯을 만드는 데 사용되는 데이터나 기능을 업데이트하는 데 필요한 몇 줄만 편집할 수 있습니다. 따라서 이러한 명령 파일의 재사용성은 장기적으로 귀중한 시간을 절약하는 데 도움이 될 수 있습니다.
마지막 두 줄은 XNUMX초의 지연을 추가한 다음 Gnuplot에게 명령 파일을 다시 읽거나 실행하라는 메시지를 표시합니다. 데이터 소스 파일에 추가된 모든 데이터는 다음에 명령 파일이 실행될 때 플롯에 추가됩니다. 따라서 최신 변경 사항으로 플롯된 내용을 업데이트합니다.
Rescale에서는 제공된 명령 파일로 Gnuplot을 시작하고 해당 프로세스를 백그라운드에 배치하며 솔버를 실행하는 간단한 래퍼 스크립트만 있으면 됩니다. 또는 Rescale에서 작업을 설정할 때 소프트웨어 설정 페이지의 "명령" 필드에 이러한 별도의 명령을 추가할 수 있습니다. SU2를 사용한 이 특정 RANS 시뮬레이션 예의 경우 실행-su2 래퍼 스크립트가 사용되었으며 사용자 정의 스크립트를 생성하기 위한 예제로 사용될 수 있습니다.
시뮬레이션 솔루션
전체 작업 설정은 다음을 통해 복제하고 실행할 수 있습니다. 여기를 클릭하십시오. 시뮬레이션이 실행되는 동안 생성된 플롯의 예가 그림에 표시됩니다. 6 을 통하여 9.

잔차
그림 6: 솔루션 잔차 기록
리프트
그림 7: 양력계수(CLift) 기록
드래그
그림 8: 항력계수(CDrag) 기록
리프트 드래그
그림 9: 항력비(L/D) 대 양력 계수(CLift)의 플롯

요약
모델링되는 물리적 현상의 무결성을 확인하기 위해 HPC 애플리케이션에서 생성된 시뮬레이션의 후처리 및 결과 보고는 모든 엔지니어나 과학자에게 노동 집약적인 프로세스일 수 있습니다. Gnuplot은 출판에 적합한 매력적인 플롯 생성과 관련된 많은 작업을 자동화하는 비대화형 수단을 제공합니다. Rescale에서 Gnuplot은 모든 시뮬레이션에 액세스할 수 있으며 시뮬레이션이 실행되는 동안 중요한 특정 측정항목을 쉽게 시각화하고 모니터링할 수 있는 추가 이점을 제공합니다.
오늘 Rescale의 클라우드 기반 HPC 플랫폼에 대해 설명된 예를 시험해 보십시오!

비슷한 게시물