2015년 4월 16일 목요일

Open Source CAE Toolchain 5 - CFD with Elmer


Elmer GUI에 기본 제공되는 Equation 중에,
Navier-Stoke Equation이 있으므로 CFD 해석도 가능하다.

간단한 형상을 만들어서 CFD 해석하는 연습을 해 본다...

만약에 잘 되면 OpenFoam 같은 GUI도 없는 걸로
설치부터 환경 구성, 컨디션 설정 등등 까다롭게 삽질할 필요 없이
그냥 한 방에 간단한 문제는 해결 가능할 것이다.

3D 형상은 3D CAD 툴을 이용하여 간단하게 그렸다.
본 케이스에서는 PTC CREO를 사용하였지만,
사실 오픈소스 FreeCAD를 사용해서 그려도 아무 문제 없다.

그린 것을 .stp으로 저장한다.
FreeCAD에서는 .step 확장자로 저장되는데,
이 경우 GMSH 또는 Elmer에서 인식하지 못하므로
확장자 이름을 반드시 *.stp로 고쳐 써 준다.



그려진 모델을 GMSH에서 매쉬를 만든 모습이다.

이것은 GMSH를 사용하지 않고,
ElmerGUI에 내장된 ElmerGRID 툴을 사용해서 만든 모습이다.

아무거나 써도 상관없다.

본 예제에서는 두 번째 것을 사용했다.
(좀 더 성글게 만들었기 때문에)


해석 조건은 대략 아래와 같다.

Model의 Setup은 아무것도 건드리지 않고 디폴트 상태로 두었다.
디폴트는 Steady State이고, 시간에 따른 Transient는 없다.
그냥 정상상태의 스냅샷 하나만 얻어 보겠다는 거다.

Equation은 당연히 Navier-Stokes를 Active로 한다.

Material은 Water로 지정했다.

Boundary Condition은,
입구를 Inlet으로 이름을 짓고 적절히 속도를 상수로 줬다.
출구는 2개 있으므로 2가지 Outlet01,02 만들어서 역시 적절히 출구 속도를 줬다.
속도 대신 Pressure 가지고 줘도 재미있을 것이다.

벽면 부분을 위해서 Walls로 이름짓고 
Noslip wall BC = True
으로 체크해 줬다.

이름 그대로 벽면에 걸리는 슬립 즉 점성마찰계수를 무시한 거다.
좀 더 재미있는 모습을 관찰하려면 이걸 Uncheck하고
아래쪽에 Sip Coefficient 들을 적절히 주면 
더 아름다운 Stream Lines를 나중에 얻을 수 있을 것이다.

아무튼 간단히 하기 위해서 일단은 이렇게 줬다.

이제 각각의 면들을 하나하나 이들 조건을 부여해 줬다.

그리고...

case.sif 파일을 Generate 하고나서 편집으로 들어간 후
마지막에 Paraview로 결과 파일을 읽을 수 있도록


Solver 2
Exec Solver = after timestep
Equation = "result output"
Procedure = "ResultOutputSolve" "ResultOutputSolver"
Output File Name = "case"
Output Format = String "vtu"
Binary Output = True
Single Precision = True
Save Geometry Ids = True
End


문구를 삽입해 주고 case.sif로 저장해 줬다.

그리고 나서 Solve Run 했다.

한가지 문제가 있었는데, 
해석 속도를 향상시키기 위해 
Parellel Setting을 Check하고 Core를 4개 정도 줘 봤는데
안된다고 Fail이 난다.
그래서 이걸 죽이고 Single Core로 해석하도록 해 봤더니
잘 된다.

(Navier-Stokes는 Single CPU만 지원하나 보다.)

암튼 결과를 보기위해 이것저것 좀 손보면 이런 화면을 얻을 수 있다.



이쁘게 보이기 위해서 이것저것 겹친 모습

Color는 Pressure 정보를 가지고,
Arrow Vector는 Velocity이다.

Stream Line을 보이게 했는데 만족스럽게 다 보이게 하는데는 아직 좀 미숙하다.


Contour 단계를 늘려서 한 번 본다.


이제 Paraview를 열어서 case0001.vtu 파일을 열어 본다.





Paraview의 재미있는 기능 중에, 이 상태를 그대로 WebGL로 만들어내 주는 것이다.
만들어보니깐 *.html 파일과 함께 잡다한 파일들이 많이 만들어지는데,
*.html만 빼고 나머지 파일은 다 지워줘도 된다.

그냥 웹브라우저로 *.html 파일을 열어 보면 브라우저 상에서 3D 화면을 볼 수 있다.
만들어진 파일을 직접 한 번 보자.

https://www.googledrive.com/host/0B3VzdmodvgcINEMtRTA3SVVUM28/webgl_ex/2015017_pipe_elmer_webgl_paraview.html

이상 GMSH, ElmerGUI, Paraview를 통해서 간단한 CFD 해석이 가능하다는 점을 알게 됐다.



**** 여기서 수준을 더 높이려면 ****


다만 Multi-Phase 등 더 복잡한 CFD를 위해서는 역시 OpenFoam 같은게 필요할 것이다.

(OpenFoam은 현재 Binary Install을 직접 제공하지는 않는 것 같다.
직접 받아다가 컴파일해서 만들어야 되고 또 기본적으로 리눅스에서만 된다.
리눅스 특유의 특성상 그냥 컴파일 하는데만도 상당한 삽질이 필요할 가능성이 매우 크다.
무슨 라이브러리가 버전이 안맞네 어쩌네 하면서리...

컴파일 안하고 그냥 윈도우에서 쓸 수 있도록
Cygwin으로 환경구성해서 패키지로 제공하는 곳도 몇군데 있고
( FreeFoam 이라는 이름으로 소스를 포크해서 제공하는 곳도 있고,
또 체코의 해석 전문 중소기업에서 자기네가 쓰는걸 무료로 공개한 곳도 있다.
OpenFoam for Windows - http://www.cfdsupport.com/download-openfoam-for-windows.html  )

또 Cygwin에 의존하지 않고,
윈도우용으로 소스 자체를 손봐서 재컴파일해서 제공하는 곳도 있다.

BlueCFD Core라는 이름으로 제공하는데..
http://joomla.bluecape.com.pt/index.php?option=com_frontpage&Itemid=1&lang=en

무료 버전은 싱글코어 연산만 지원하는데 그냥 다운로드 받아다가 압축 풀어서 쓰면 된다.
윈도우 커맨드 창이 하나 시커멓게 뜨는데 거기다 대고
dir 같은 윈도우 시스템 명령어와, OpenFoam 명령어들을 쓰면 된다.

멀티코어 버전은 유로로 제공하는데
엄청 비싼줄 알았드만 가격이 50유로라고 한다.
우리나라 돈으로 6~7만원 정도다.

뭐 연습하는데는 싱글코어도 상관없으니 무료 버전이라도 좋다.

아무튼 리눅스로 삽질하기 귀챦고, 윈도우에서 간단히 깔아서 해 보려면
BlueCFD가 최선인 듯 하다.

이거 깔아서 예제 따라 해 봤더니 잘 된다.

하는 예제는 생략...






댓글 없음:

댓글 쓰기