계산영역 내부의 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 -------------------------------------

internalFacesOnly    true:
baffles
{
     <name>
    {
        type                     faceZone;
        zoneName           <faceZoneName> ;
        patchPairs
        {
            type                  mappedWall; // cyclic;
            sampleMode    nearestPatchFace;
        }
    }
}

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

baffle(두께가 없는 wall)을 만들기 위해서는 patchPairs에서 mappedWall을 설정하고 porousJump나 fan 조건을 사용하기 위해서는 cyclic을 설정한다.

'createBaffles -overwrite' 를 실행하면 <name>_master, <name>_slave라는 두 개의 patch가 만들어진다.


1. baffle 사용법

속도, 압력, 난류 등의 경계조건은 보통의 wall과 같이 주면 되며 온도의 경계조건은 다음과 같이 설정한다.

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

<patchName>
{
    type                       compessible::turbulentTemperatureCoupledBaffleMixed;
    //type                     NEXT::turbulentTemperatureCoupledBaffleMixed; // nextFoam을 사용할 때
    Tnbr                       T;
    thicknessLayers    (0.1 0.2 0.3 0.4); // option : list of thicknesses per layer [m]
    kappaLayers          (1 2 3 4); // option : list of thermal conductivity per layer [W/mK]
    kappaMethod        fluidThermo; //lookup; 
    kappa                    kappa;
    value                     uniform 300;
}

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


2. porous jump 사용법

속도, 난류 등은 cyclic 경계조건을 사용하고 압력은 다음과 같이 설정한다.

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

<patchName>
{
    type                porousBafflePressure;
    patchType       cyclic;
    length             0.05; // length of porous media [m]
    I                      -5; // inertial coefficient
    D                    -100; // Darcy coefficient
    value              uniform 0;
}

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


3. fan 경계조건 사용법 - 팬 성능곡선(U vs p)이 csv file로 주어질 때

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

<patchName>
{
    type                            fan;
    patchType                  cyclic;
    jumpTable                  csvFile;
    nHeaderLine              0; // number of headerlines of the csv file
    refColumn                 0; // U data의 column
    componentColumn    (1); // p data의 column
    separator                     ","; // U와 p의 구분 기호
    file                              "fancurve.csv" // 팬 성능곡선 파일 이름
    mergeSeparators        no;
    value                          uniform 0;
}

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

csv file은 다음과 같은 형식이면 된다.

--- fancurve.csv -----------------------------------------

0,50
1,40
2,30
3,20
...

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




댓글

이 블로그의 인기 게시물

BARAM 설치가이드(WINDOW)

BARAM 설치가이드(LINUX)