SHM과 setFields 질문입니다.

Main Forums Solver SHM과 setFields 질문입니다.

This topic contains 6 replies, has 4 voices, and was last updated by  ethanOh 3 years, 1 month ago.

Viewing 7 posts - 1 through 7 (of 7 total)
  • Author
    Posts
  • #1115
    Fine
    Fine
    Participant

    안녕하세요.
    저는 이번에 interfoam 솔버를 이용해서 Ca(capillary) numbers에 따른 homogeneous porous medium 에서의 유동 변화를 분석하려고 합니다.
    (직사각형 판 형상의 top으로 oil이 주입되어서 아래로 흘러내리는 유동입니다.)
    먼저, Blender를 이용해서 형상파일은 만들었는데, openFOAM으로 이를 구현하는데서 문제가 생기네요.
    일단 Error code는 첨부할테니 좋은 의견들 부탁드립니다.

    --> FOAM Warning :
    From function void setCellFieldType(const fvMesh& mesh, const labelList& selectedCells,Istream& fieldValueStream)
    in file setFields.C at line 124
    Field alpha.air not found
    Setting field region values
    Adding cells with center within boxes 1((-0.25 7.865 -0.55) (7.85 8.125 0.55))
    --> FOAM Warning :
    From function void setCellFieldType(const fvMesh& mesh, const labelList& selectedCells,Istream& fieldValueStream)
    in file setFields.C at line 124
    Field alpha.air not found
    #1117
    ant8si
    ant8si
    Participant
    --> FOAM Warning :
    From function void setCellFieldType(const fvMesh& mesh, const labelList& selectedCells,Istream& fieldValueStream)
    in file setFields.C at line 124
    Field alpha.air not found
    Setting field region values
    Adding cells with center within boxes 1((-0.25 7.865 -0.55) (7.85 8.125 0.55))
    --> FOAM Warning :
    From function void setCellFieldType(const fvMesh& mesh, const labelList& selectedCells,Istream& fieldValueStream)
    in file setFields.C at line 124
    Field alpha.air not found

    위 에러 코드를 보니 일단 alpha.air 파일이 time 디렉토리 안에 없는거 같네요. 이를 0폴더 내부에 추가해주셔야 되요.
    간단하게 SHM과 setFiedls에 대해서 설명해드리자면, SHM은 mesh generator 로서 격자를 생성해주는 역할을 합니다. 하지만, SHM이 필드 데이터는 생성해주지 않기 때문에,
    따로 저희는 0 디렉토리 내부에 initial condition과 boundary condition에 대한 정보들을 준비해줘야합니다. 이 준비가 되고 나면 이 필드 데이터들을 기반으로 해서
    setFiedls가 동작하여 이 내용을 수정해주는 역할을 하게됩니다.
    이 흐름에 맞춰서 디렉토리를 정리해보세요!

    #1119
    Fine
    Fine
    Participant

    답변 감사합니다.
    0 디렉토리 구성은 일단 말씀해주신대로 수정했습니다. alpha.air 도 확인했고요.
    근데, 이해가 잘 안되는게 지금 SHM이 실행되고 나면 time step이 여러개가 생겨서 일단 내용들을 전부다 0 디렉토리 안에 넣어서 실행하고있는데, 잘 안되네요.
    이 time step 들이 무엇을 의미하는지 좀 알 수 있을까요?

    #1121

    Prodo
    Participant

    안녕하세요.
    위의 질문에 대한 답변을 요약해드리자면, SHM은 크게 세가지 단계로 실행되게 됩니다.
    castellated / snapping / add layers 세가지로 나뉘게 되는데, 이는 snappyHexMeshDict의 최상단에서 실행여부를 결정하게 됩니다.
    각각이 실행되면서 각각의 time step을 생성하고, SHM이 실행되면서 3개의 time step이 생성되게 되는 것입니다.
    현재 Fine님 께서 하시는 것 처럼 setFields를 사용하시기 위해서는 이를 최종 격자(add layers 까지 실행된 격자)로 겹쳐 저장해야 하기 때문에,
    overwrite option을 추가해주시면 됩니다.

    code :
    snappyHexMesh -overwrite

    #1125
    Fine
    Fine
    Participant

    Prodo 님 답변 감사합니다. 위의 분들이 말씀해주신대로 따라하니까 좀 많이 진척이 됬습니다.
    일단, 지금 snappyHexMesh -overwrite로 SHM 을 실행하였고, 새로 생성된데이터를 0파일에 옮겼습니다. 하지만, 에러가 나네요.
    먼저, 제 디렉토리(fixedWalls)내부에 stl 파일을 넣었습니다. 그러고는 아래과 같이 geometry로 등록하였습니다.

    geometry
    {
    lunati.stl
    {
    type triSurfaceMesh;
    name fixedWalls;
    }
    }

    그런데, SHM 후에 setFields를 실행시키자 문제가 생기네요.

    Error code:

    "--> FOAM FATAL IO ERROR:
    Cannot find patchField entry for fixedWalls".

    고수님들의 지도 부탁드립니다.

    #1126
    ant8si
    ant8si
    Participant

    Quote:

    일단, 지금 snappyHexMesh -overwrite로 SHM 을 실행하였고, 새로 생성된데이터를 0파일에 옮겼습니다.

    격자 정보는 0 디렉토리에 담는게 아니라, constant / polymesh 디렉토리에 담는것입니다. 지금 error내용을 보니까 boundary condition이 제대로 지정이 안되신거 같네요.
    0 디렉토리 안에 있는 BC들을 한번 더 확인해보세요.
    그리고 아직 오픈폼 디렉토리의 구조나 실행과정이 안익숙하시다면, 쉬운 예제부터 하나씩 해보시는 것을 추천합니다. 처음부터 어려운 것으로 하면 너무 힘들 수 있어요.

    #1133

    ethanOh
    Participant

    ant8si 님의 의견에 덧붙이자면 SHM 실행하면 constant/polyMesh/boundar파일에서 이름을 확인하거나
    checkMesh 명령어를 사용하여 boundary 이름을 확인해야 합니다.
    제 경험으로는 stl파일 이름이 설정하신 name 앞에 붙어서 lunari_fixedWalls 라는 이름으로 생기는 경우가 있습니다.
    SetField의 경우 0 폴더의 파일들을 읽어서 실행하게 되기 때문에 0폴더 안에 변수안에 boundary 이름도 constant/polyMesh/boundary파일 안에 있는 boundary이름과
    똑같이 설정되어 있어야 실행이 됩니다.

Viewing 7 posts - 1 through 7 (of 7 total)

You must be logged in to reply to this topic.