본문 바로가기

OpenFOAM/OpenFOAM 기본

[OpenFOAM 기본] OpenFOAM 개요 및 기본

일본어 원문링크


작성일 : 2014년  4월 20일
번역일 : 2016년  2월    1


크롬 브라우저로 보시는 것을 권장해 드립니다.





미번역된 페이지들은 일본어 원본 링크 되어있습니다. 

댓글달아주시면 우선적으로 번역하도록 하겠습니다.



 ----- OpenFOAM 소스코드를 다루는 문법 기본 ----
-

OpenFOAM 소스코드를 다루는 문법 기본으로 이동

 ------------------------------------------------------------

 ------ OpenFOAM 배경이론 간단정리 시리즈 ------

OpenFOAM 배경이론 간단정리 목차로 이동

 ------------------------------------------------------------

 ------ OpenFOAM 소스코드 파해치기 시리즈 ------

OpenFOAM 소스코드 파해치기 목차로 이동

 ------------------------------------------------------------





  들어가기 


OpenFOAM의 개요 및 기본 구조, 계산순서에 대해



  기준 OpenFOAM 버전 


OpenFOAM 2.3.0



  OpenFOAM 해석 순서도(Overview)




 

 

  계산 순서 


OpenFOAM은 아래와 같은 계산 순서를 가진다.

 


해석대상의 조건이 결정되었다면 보통 우선적으로 격자생성을 수행한다. 격자는, 적절한 격자생성기(상용솔버에 번들로 있는 것이나 각 사용 솔버에 대응하는 격자생성 전용 프로그램 등)이 있으면 작성 후 OpenFOAM용으로 변환하는것이 가장 효율적이다. 상용격자생성기가 아니라면 OpenFOAM에 포함되어있는 것(blockMesh, snappyHexMesh 등)을 이용하거나, 오픈소스 격자생성기(Salome 등)을 사용한다.(이하 더 자세한 OpenFOAM용 격자생성 을 참조).



최종적으로 얻어진 결과에 대한 평가에는, OpenFOAM에 포함된 paraFoam(ParaView)를 사용한다(ParaView의 사용방법에 대해서는 ParaView 입문을 참조). 상용의 후처리 프로그램도 사용가능하다.



  계산조건의 설정 


OpenFOAM의 계산조건의 설정은 아래의 순서에 따른다.



Solver의 선택

OpenFOAM은 유체해석솔버가 아닌 유체해석 솔버개발용 툴이지만 표준 솔버를 몇가지 제공하고 있다. 하나의 솔버를 기준으로 문제에 맞추어 옵션을 설정하는 일반적인 유체해석솔버와는 달리, 문제에 따라 그에 맞는 솔버를 선택해야 한다(만약 적당한 것이 없다면 직접 개발해야 한다).

표준솔버의 코드는 $FOAM_SOLVERS 에 있다. 솔버는 카테고리별로 나누어져 있으며, 그 카테고리에 해당하는 폴더 안에 들어 있다.

대표적인 솔버는 아래와 같다.

basic : 기본

    • laplacianFoam : 확산방정식솔버
    • potentialFoam : 포텐셜유동솔버
    • scalarTransportFoam : 스칼라수송방정식솔버
incompressible : 비압축성유동

    • icoFoam : 비정상층류해석솔버
    • simpleFoam : 정상난류해석솔버(SIMPLE법)
    • pisoFoam : 비정상난류해석솔버(PISO법)
    • pimpleFoam : 비정상난류해석솔버(PIMPLE=PISO+SIMPLE법)
heatTransfer : 열유동

    • buoyantBoussinesqSimpleFoam : 정상열유동해석솔버(Boussinesq 근사)
    • buoyantBoussinesqPimpleFoam : 비정상열유동해석솔버(Boussinesq 근사)
    • buoyantSimpleFoam : 정상열유동해석솔버
    • buoyantPimpleFoam : 비정상열유동해석솔버
multiphase : 다상유동

    • interFoam : VOF법을 이용한 2상유동해석솔버
    • multiphaseInterFoam : VOF법을 이용한 다상유동해석설보


표준 솔버의 상세한 리스트는 유저가이드를 참조.


아래 자주 사용되는 솔버에 대한 선택순서를 나타내 보았다.


케이스 설정

OpenFOAM에서 계산조건의 설정(케이스)는 하나의 파일이 아닌 하나의 폴더로 되어 있으며 그 안에 다양한 계산조건을 기술하는 파일들이 위치하고 있다. 이 파일들은 텍스트 에디터로 편집해서 설정한다. 필요한 파일들을 모두 직접 준비하는것은 어렵지만, 표준 솔버에 대응하는 예제 케이스(튜토리얼케이스)가 $FOAM_TUTORIALS에 포함되어 있으므로, 보통 그것을 복사해 사용하거나 참고하여 케이스를 작성한다.

케이스폴더에는 아래와 같은 파일, 폴더가 포함된다.

  constant 폴더

격자나 물성치, 난류모델 등의 설정을 포함하는 폴더. 아래의 파일, 폴더를 가진다.
- polyMesh
격자정보를 보관하는 폴더
- transportProperties, thermophysicalProperties
물성치 설정 파일. 솔버에 따라 필요한 파일이 다르다.
- g
중력 설정 파일. 부력 등을 고려할때 필요
- turbulenceProperties, RASProperties, LESProperties
난류모델의 설정파일. 정상해석솔버는 RASProperties, 비정상해석솔버는 turbulenceProperteis에서 설정한다. 후자는 RAS를 사용할지 LES를 사용할지에 따라 별도의 RASProperteis, LESProperties를 각각 필요로 한다.

  0 폴더

필드(유체장) 변수의 설정파일(예를 들면, 유속 U, 압력 p, 온도 T 등)을 포함하는 폴더. 필드파일에서 경계조건과 초기값을 설정한다. 0은 초기시각을 의미하며, 계산 중, 같은 형식으로 계산결과파일을 포함하는 폴더가 각각 출력시각의 이름으로 생성된다.

  system 폴더

계산을 제어하는 설정파일을 가지는 폴더. 아래와 같은 파일들을 포함한다.
- fvSchemes
이산화스킴을 설정하는 파일
- fvSolution
대수방정식 솔버의 설정과 SIMPLE법 등의 설정을 포함하는 파일
- controlDict
계산의 제어를 설정하는 파일. 계산의 종료시각이나 시간스텝의 크기, 결과의 출력타이밍 등을 설정할 수 있다.

설정파일의 서식에 대해서는 OpenFOAM 설정파일의 형식을 참조.

계산조건의 상세설정 방법에 대해서는 아래의 문서 참조.




  계산 수행 


OpenFOAM의 계산은 케이스 폴더내에서 솔버를 실행시키면 된다. 예를 들어 simpleFOAM을 솔버로 사용할경우, 케이스 폴더로 이동하여, 아래와 같은 명령어를 넣으면 된다.

$ simpleFOAM


상세한 방법에 대해서는 솔버 실행 을 참조.



 ------ OpenFOAM 소스코드 파해치기 시리즈 ------

OpenFOAM 소스코드 파해치기 목차로 이동

 ------------------------------------------------------------