글

Baram-v6 도커(Docker) 만들기

넥스트폼이 개발한 비압축성/열전달 해석을 위한 nextFoam을 사용하는 Graphic User Interface 프로그램인 Baram-v6의 도커를 만드는 방법이다. 앞의 글 'OpenFOAM 도커(Docker) 만들기'에서 만든 ut18-of6 이미지로부터 시작한다. 1. 도커 시작 > docker run --rm -it -v $PWD:/home/myDocker/hostUser -w /home/myDocker ut18-of6  터미널에서 홈 폴더에서 위의 명령을 실행하면 터미널이 우분투 18.04에 OpenFOAM-6이 설치된 환경이 된다. 여기에서 nextfoam, cfMesh, Baram GUI를 설치한다. GUI 동작을 위해 gtk, vtk, vte를 설치하고 몇 가지 그래픽 관련 라이브러리를 설치할 것이다. 왜 그런지 이유는 모르겠으나 도커에서 오픈폼 환경에 한가지 문제가 있다. 'echo $USER' 명령을 하면 아무것도 나타나지 않는다. 이 때문에 오픈폼의 환경 설정이 이상해지고 nextFoam 설치에 문제가 발생한다. 그래서 도커에서 /home/myDocker/.bashrc 파일에 'export USER=myDocker'라는 한줄을 오픈폼 환경 설정 앞줄에 추가해 준다. -------------------------------------------- ... export USER=myDocker source /opt/openfoam6/etc/bashrc ... -------------------------------------------- 그리고 ' source .bashrc '를 실행한다. 도커의 홈폴더(/home/myDocker)에 다음과 같이 몇 개의 폴더를 생성한다. > mkdir OpenFOAM > mkdir OpenFOAM/myDocker-6 > mkdir OpenFOAM/myDocker-6/src ...

OpenFOAM 도커(docker) 이미지 만들고 실행하기

1. 도커 설치 우분투에서는 docker-ce나 docker-io를 많이 사용하는 것 같다. 설치방법은 인터넷에 많이 나와 있어 쉽게 설치할 수 있으니 생략한다. 그런데 우분투 14.04에서는 두가지 모두 제대로 작동하지 않았다. 그래서 docker-engine을 설치했다. docker-engine의 설치는 아래의 사이트를 참고했다. https://zetawiki.com/wiki/%EC%9A%B0%EB%B6%84%ED%88%AC14_docker_%EC %84%A4%EC%B9%98 MS Windows는 버전이 10 professional은 docker for windows를 설치하고 10 home이나 7에서는 docker toolbox를 설치하면 된다. 쉽게 설치할 수 있다. 2. 우분투 18.04에 OpenFOAM-7이 설치된 도커 이미지 만들기 우분투 18.04 이미지에 software-properties-common, vim, make, ssh, sudo, wget 등을 설치하고,  openfoam7을 설치한다. 이 과정을 Dockerfile로 만들고 docker build 명령을  실행해서 이미지를 만든다. Dockerfile은 다음과 같다. -------------------------------------------------------------------------------------------- FROM ubuntu:bionic RUN apt-get update \ && apt-get install -y \ vim \ make \ ssh \ sudo \ wget \ software-properties-common ;\ rm -rf /var/lib/apt/lists/* RUN sh -c "wget -O - http://dl.openfoam.org/gpg.key | apt-key add -" ;\ add-apt-repository...

nextFoam 사용법 - 초기조건

system/settings/initialConditions 파일에서 설정한다. initialConditions 파일은 다음과 같다. ---------------------------------------------------- region0 {     flow     {         p            uniform 0;         U            uniform (0 0 0);         T            uniform 300;     }     turbulence     {         velocityScale   uniform 1;         turbIntensity    uniform 0.001;         viscosityRatio  uniform 10;     } } 압력은 101325 Pa을 기준으로 상대 압력을 입력한다.

nextFoam 사용법 - 경계조건

system/settings/boundaryConditions 파일에서 설정한다. 설정할 수 있는 경계조건은 다음과 같다. (경계조건 추가 혹은 수정이 필요하면 ~/.OpenFOAM/6/API/boundaryTypes 을 수정하면 된다) Inflow/Outflow 경계조건 참고자료 다운로드하기 1. velocityInlet 적용 경계조건 - U : fixedValue - p : zeroGradient - T : fixedValue - k : NEXT::turbulentIntensityInletOutletTKE - epsilon : NEXT::viscosityRatioInletOutletTDR 설정 방법 type                     velocityInlet; U                         uniform (value_x value_y value_z); turbIntensity       uniform value; viscosityRatio     uniform value; ------------------------------------------------------------------ 2. surfaceNormalVelocityInlet 적용 경계조건 - U : NEXT::surfaceNormalVelocity - p : zeroGradient - T : fixedValue - k : NEXT::turbulentIntensityInletOutletTKE - epsilon : NEXT::viscosityRatioInletOutletTDR 설정 방법 type      ...

nextFoam 사용방법 - 수치해석 기법 설정

system/settings/numericConditions 파일에서 설정한다. 열전달을 포함한 비정상상태 솔버(buoyantPimpleNFoam)의 경우 numericConditions 파일은 다음과 같다. ---------------------------------------------------- .... solveFlow        yes; solveEnergy     yes; discretization {     time                firstOrder;     momentum     secondOrder;     energy            firstOrder;     turbulence      firstOrder; } relaxationFactors {     pressure          0.3;     momentum     0.7;     energy            1;     turbulence      0.7; } convergenceCriteria {     pressure           ( 0.05 0.001 );     momentum      ( 0.05 0.001 );     energy...

nextFoam 사용방법 - API

nextFoam은 오픈폼의 사용을 쉽게하기 위해 API를 제공한다. 사용법은 다음과 같다. 1. 해석 폴더의 생성 $ createCase -case <new folder name> <solver> 예) createCase -case test simpleNFoam - 터미널에서 위와 같이 입력하면 test라는 폴더가 생성되고 그 아래 system 폴더가 생성된다. system 폴더에는 controlDict 파일이 생성된다. -사용가능솔버 : simpleNFoam, pimpleNFoam, buoyantSimpleNFoam, buoyantPimpleNFoam, chtMultiRegionSimpleNFoam, chtMultiRegionPimpleNFoam 2. 격자 준비 만들어진 test 폴더로 이동해서 fluentMeshToFoam 혹은 ccm26ToFoam 등의 격자 변환 유틸리티를 실행하면 constant 폴더가 만들어지고 그 아래 polyMesh 폴더가 생성된다. 오픈폼 격자를 가져온다면 constant 폴더를 만들고 그 아래 polyMesh 폴더를 가져온다. 3. 해석에 필요한 파일 생성 $ createSettings - 터미널에서 createSettings를 실행하면 다음과 같은 파일들이 만들어 진다.(솔버가 simpleNFoam일 때) - constant/MRFProperties - constant/transportProperties - constant/turbulenceProperties - system/decomposeParDict - system/fvOptions - system/fvSchemes - system/fvSolutions - system/settings/boundaryConditions - system/settings/initialConditions - system/settings/numericConditions 4. 초기조건, 경계조건, 수치해석 기법 설정 ...

nextFoam이란

nextFoam은 (주)넥스트폼에서 openfoam5, openfoam6를 기반으로 OpenFOAM의 정확도, 안정성, 사용편의성 등을 향상시킨 소스코드입니다. Baram에서 사용하는 코드입니다. (주)넥스트폼의 홈페이지( http://nextfoam.co.kr/pd-Baram.php )에 Baram 패키지와 함께 공개되어 있습니다. 솔버 - simpleNFoam - pimpleNFoam - pimpleDyMNFoam - buoyantSimpleNFoam - buoyantPimpleNFoam - chtMultiRegionSimpleNFoam - chtMultiRegionPimpleNFoam 유틸리티 - createCase - createSettings - setConditions - decomposeNPar - reconstructNPar 관련 자료 1. Consistent Velocity Interpolation for SiMPLE and PIMPLE Algorith in Collocated Grid 2. 자연대류를 포함한 열전달 해석 솔버 개선 3. OpenFOAM 솔버의 문제점 및 해결 방안