12월, 2020의 게시물 표시

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              heRhoThermo;     mixture      pureMixture;     properties    liquid ;     energy          sensibleInternalEnergy; } mixture {     H2O; }

계산영역 내부의 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              {               faceSet        <faceSetName>;          }     } ) -------------------------------------------------------------- faceZone으로부터 patch를 만들기 위해서는 createBaffles 유틸리티를 사용한다 . 이를 위해서는 system 폴더에 createBafflesDict 파일이 있어야하는데 다음과 같이 작성한다. --- createBafflesDict ------------------------------------- inte