라벨이 OpenFOAM Tips인 게시물 표시

perfectFluid를 사용하여 물의 밀도를 온도의 함수로 나타내는 방법

 perfectFluid를 사용하면 밀도는 다음의 식으로 계산된다. rho = p / RT + rho0 위 식에서 R은 기체일 때는 기체상수이며, 액체일 때는 rho/(beta * T)가 된다. beta는 compressibility이다. 예) 25'C 물의 밀도는 997 kg/m3, compressibility는 4.609e-10 m2/N 이므로 R = 997  / (4.609e-10 * 298.15) = 7255 (ESI 버전의 튜토리얼에 있는 값) perfectFluid를 사용할 때 thermophysicalProperties는 다음과 같이 설정한다. ... thermoType {     type                              heRhoThermo;     mixture                       pureMixture;     equationOfState      perfectFluid;     ... } mixture {     ...     equationOfState     {          R          7255;          rho0     997;     } ... } 물인 경우 다음과 같이 간단하게 사용할 수도 있다. ... thermoType {     type    ...

계산영역 내부의 patch 사용법 - baffle, porousJump, fan

 계산영역 내부에 두께가 없는 경계면(patch)을 만들고 이를 이용해서 baffle, porous jump, fan 등에 사용할 수 있는 방법을 설명한다. 계산영역 내부에 경계면을 만들기 위해서는 같은 위치에 master와 slave라는 두 개의 면이 있어야하고 이 두 면은 cyclic 혹은 mappedWall이라는 polyPatchType으로 연결되어 있어야 한다. snappyHexMesh로 격자를 만든다면 원하는 위치에 faceZone을 만들어 주어야 한다. fluentMeshToFoam 유틸리티를 이용할 때는 -writeSets 옵션을 사용하면 interior면이 faceSet으로 만들어진다. faceSet은 topoSet 유틸리티를 이용해서 faceZone으로 만들어 준다. topoSetDict 파일은 다음과 같다. --- topoSetDict ------------------------------------------- actions (     {          name               <name>;          type                  faceZoneSet;          action               new;          source             setToFaceZone;          sourceInfo      ...

복사열전달이 포함된 문제에서 단열조건 사용 방법

 복사열전달을 무시하는 경우 단열 벽면 조건은 온도 T의 조건을 zeroGradient를 사용하면 된다. 그러나 복사열전달이 있는 경우 zeroGradient 조건을 사용하면 벽면의 온도에 복사열전달의 영향이 전혀 나타나지 않는다. 단열 조건은 total heat flux가 0이라는 조건이므로,  복사에 의한 heat flux(qr)이 포함된 전체 heat flux가 0이 되어야 한다. 따라서 zeroGradient 조건 대신 externalWallHeatFluxTemperature 조건을 사용하고 heat flux를 0으로 주어야 한다. 이 조건에서는 계산의 안정성을 위해 qr에 대한 relaxation factor를 사용할 수 있다. 다음과 같이 사용된다. 0/T file ... adiabaticWall { type                         externalWallHeatFluxTemperature; kappaMethod     fluidThermo; mode                       flux; // optional qr                              qr; // field name of radiative heat flux  qrRelaxation        0.9; // relaxation factor of qr q                 ...

kOmegaSST 모델에서 벽함수 사용하지 않는 방법

 kOmegaSST 모델을 사용할 때 벽함수를 사용하지 않으려면 0 폴더의 k, omega, nut 파일을 다음과 같이 설정하면 된다. 1. 0/k wing { type                fixedValue; value               uniform 0;   }   2. 0/omega wing { type             omegaWallFunction; Cmu               0.09; kappa              0.41; E                  1.0e20; // 매우 큰값 beta1            0.075; blended        false;  value            $internalField; }   3. 0/nut wing { type             nutLowReWallFunction; Cmu            0.09; kappa        ...

Paraview에서 Surface Oil Flow 그리는 방법

이미지
Paraview에서 Surface oil flow를 그리는 2가지 방법이다. 하나는 Stream tracer를 이용하는 방법이며 다른 하나는 Surface LIC(Line Integral Convolution) plugin을 이용하는 방법이다. 1. Stream trancer를 이용하는 방법 Surface oil flow in paraview 원하는 Surface에서 SurfaceVector를 만들고 MaskPoint를 생성한다. 그리고 [Stream Tracer With Custom Source] 필터에서 input은 SurfaceVector, source는 MaskPoint를 선택하면 된다.  surfaceVector를 만들 때 surface가 noSlip wall이면 input vector는 wallShearStress를 선택한다. 1) paraFoam을 실행하고 원하는 면을 선택하여 Surface를 그린다. 2) Filters 메뉴에서 [Surface Vectors]를 선택한다 - surfaceVectors1이 생성된다. - Select Input Vectors에서 wallShearStress를 선택한다.  - wallShearStress 필드 생성 방법 OpenFOAM의 standard solver는 wallShearStress를 생성하지 않기 때문에 postProcess를 이용해서   wallShearStress 필드를 생성해 주어야 한다. 터미널에서 해당 폴더로 이동해서 아래의 명령을 입력하면 생성된다. $ <solver> -postProcess -func wallShearStress <options> 예1) $ simpleFoam -postProcess -func wallShearStress -lastestTime 예2) $ mpirun -np 8 simpleFoam -postProcess -func wallShearStress -time 100:1000 -parallel   3)...