본문 바로가기
OpenFOAM basic/Tip

OpenFOAM 해석 중 residual plot 확인 방법(funtionObjects)

by Owl flow 2024. 6. 11.
반응형

 

   오늘은 OpenFOAM functionObject 중에서 residual plot을 확인하는 방법에 대해 공부해 보려 해요.

 

residual plot 이란?

 

   fluent나 star CCM 등의 상용 프로그램을 사용할 때 해석을 진행할 때 residual plot이 출력되잖아요.

이 residual plot이 해석의 수렴성을 확인하는 하나의 지표가 되는데요.

   OpenFOAM에서는 터미널 창에만 출력이 되고 그레프로는 표현되지 않아요.

   그래서 functionObject로 각 변수(속도, 압력, 온도)의 residual을 파일로 출력하고 gnuplot을 사용하여 해석 중간에 그래프로 출력하려 해요.

   1. 해석 버전 : OpenFOAMv2306

   2. 적용된 functionObject

 

 

   위 그림은 제가 tutorial/incompresible/simpleFoam/pitzDaily를 수정해 봤어요.

   type은 우리가 사용할 functionObject이구요.

   lib은 OpenFOAM library 중 utilityFunctionObjects라는 library를 사용하는 것을 뜻하구요.

   writeControl은 functionObject이 실행되어 데이터를 쓰는 방식으로 매 timeStep에 파일로 출력하도록

설정했어요.

   region은 복합열전달해석(chtMultiRegionFoam)에 사용되는 옵션으로 여기는 하나의 region 밖에 없기 때문에 사용하지 않아요.

   fields​는 residual을 출력할 변수를 뜻해요.

 

residual plot 적용 방법

 

   먼저 residual plot을 사용하기 위해서는 gnuplot이라는 프로그램이 필요해요.

   OpenFOAM을 설치하면서 자동으로 설치되는 경우도 있고

   설치되어 있지 않다면 우분투인 경우 터미널 창을 실행하고

   sudo apt-get install gnuplot

   을 실행하면 gnuplot을 설치할 수 있어요.

   

   1. plot 파일 설명

 

   residual plot을 출력하기 위해 plot 파일을 설정해 줘야 해요.

   plot 파일 내용을 보면

   set logscale y는 y 축을 log 스케일로 표현하는 거구요.

   set xlabel과 ylabel은 각 축 방향의 제목을 뜻해요.

   plot은 경로 데이터를 읽을 x축 : y축의 열을 뜻하고 다음은 타이틀, 그래프를 line으로 표현한다는 것을 나타내요.

   솔버를 실행하면 postProcessing/residuals/0폴더에 solverInfo.dat 파일이 생성돼요.

   파일 내용은 아래와 같고요.

 

 

   "postProcessing/residuals/0/solverInfo.dat" using 1:11 title "Pressure" with line ls 1,\

   예로 압력의 residual 데이터를 확인해보면

   using 다음에 표현된 1은 time은 iteration을 뜻하구요.

   11은 11번째 열에 p_initial 값을 읽어 들이겠다는 뜻이에요.

   pause 1 은 1초정도 멈춘 후에 다음 행을 실행하는 거구요.

   reread 은 계속 파일을 로드하겠다는 명령어에요

※ 다른 변수를 출력하기 위해서는 solverInfo.dat파일을 확인하고 plot 파일에 plot에 추가로 넣어줘야 해요. 다른 솔버로 해석할 때 꼭 solverInfo.dat과 plot 파일을 확인해 주세요.

 

residual plot 적용 결과

 

   1. 격자를 만들고 솔버를 실행해요.

   2. 다른 창을 띄우고 gnuplot plot 을 실행하면 아래와 같은 그래프가 나오게 돼요.

 

pitzDaily.tar.gz
1.84MB

 

 

   위에 예제 파일 첨부해 놓았어요.

   확인해 보면 좋을 것 같아요.

 

결론

 

   오늘은 OpenFOAM functionObject 중에서 residual plot을 확인하는 방법에 대해 공부해 보려 해요.

   상용 프로그램에서 많이 봤던 그래프를 OpenFOAM에서 사용할 수 있으니 좋죠?

   이렇게 하는 방법 말고도 pyFoam을 이용하여 하는 방법이 있는데 설치 필요 없이 이렇게 설정하는 것도 간단히 설정할 수 있어 좋은 거 같아요.

   수렴성 확인을 위해 꼭 필요하지만 있으면 좋은 기능이니 한번 시도해 보는 것도 좋을 것 같아요.

   그럼 이만 오늘의 포스팅을 마칠게요.

   질문은 댓글로 달아주시고 오늘도 끝까지 읽어 주셔서 감사해요.


이미지 무단 도용을 금합니다.

copyright ⓒ 택이5 All rights reserved

 
728x90
반응형