2015년 4월 12일 일요일

Open Source CAE Toolchain 2


앞서의 글에서,
GMSH를 통해서 메쉬를 적절히 만들어내서 *.msh 포멧의 매쉬 파일을 만들어 주었다.
이걸 ELMER GUI에서 읽어들여서,
Equation, Material, Boundary Condition 따위를 줘서 Pre-Processing 작업을 다 마치고
Solve 시켜서 결과를 만들어내었다.
만들어진 데이타를 Visualization 하기 위해 ELMER GUI에 내장된 VTK Viewer로 보는데까지는 했다.
하지만 ELMER GUI의 내장된 Post-Processor는 기능이 미약해서 불만족스럽다.

특히 이번 같이, 힘을 줘서 변형된 상태를 관찰하고자 할 때는 변형된 모양으로 Deformation 해서 보여주는 기능이 없다.
그럼 외부의 강력한 Post-Processor 소프트웨어를 이용해 보자.
강하게 추천되는 것은 뭐니뭐니해도 Paraview다.

문제는 Elmer GUI에서 case.sif 셋팅파일을 자동을 만들어주는 디폴트 상태에서는, ELMER 전용의 아웃풋 파일인 case.ep만 만들어진다는 점이다.

Paraview는 *.ep 파일을 직접 읽어들이지 못하므로, 다른 포멧으로 출력해 줘야 한다.

*.vtu 포멧이 그것이다.
VTK 라이브러리 표준 포멧이라고 한다.
xml 형태로 새로 정리해서 제정한 것 같다.

다행히 ELMER는 *.vtu 포멧을 만들어낼 수 있다.
case.sif 파일에 다음의 구문을 그냥 복사해서 붙여넣고 같은 이름으로 덮어써 저장해 준다.



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





그리고 나서 다시  Run을 눌러서 Solve해 준다.

Solver의 번호가 2번으로 지정된 것은, 본 케이스의 경우에는 앞서 계산하는 Solver 1 밖에 없기 때문이다.
그리고 시간에 따라 Transition하는 것은 없기 때문에 그냥 달랑 하나의 파티셔팅만 나올 것이다.

"ResultOutputSolver"라는 녀석이 원하는 어떤 포멧으로 만들어내주는 펑션인가보다.
*.vtu 뿐만 아니라 다른 몇가지 포멧도 만들어낼 수 있나 본데 *.vtu만 있으면 일단 OK다.

만들어지는 파일 네임은 "case"로 지정되어 있고, 확장자는 "vtu"로 지정되어 있다.
그리고 바이너리 파일로 나오도록 되어 있다.
만들어지는 데이타의 정밀도는 "Single Precision"으로 되어 있으므로, 파일의 크기를 극적으로 줄이도록 되어 있다.  물론 아주 정확한 데이타를 뽑아내려면 이건 Faulse로 해 둬야 할 것 같다.
암튼 대충 뭐 그런 내용들이고 굳이 바꿀 이유가 없으므로 그대로 둔다.


암튼 Solve 작업이 끝나고 나서 프로젝트의 디렉토리를 보면
"case0001.vtu" 라는 파일이 만들어져 있음을 볼 수 있다.
본 케이스에서는 1.4메가 정도 사이즈로 나왔다.
"ResultOutputSolver" 라는 녀석에게 자동으로 번호 붙여주는 기능도 원래 들어있나 보다.

암튼 이제 *.vtu 파일을 만들었으니, 이걸 Paraview에서 그냥 읽어들이면 된다.
Paraview 사용법 설명은 생략한다.
뭐 별거 없더라...

대충 이것저것 만져주고 특히 "Warp by Vector" 기능을 사용하면 원하는 대로  Deformation된 결과를 얻을 수 있다.  물론 옵션에서 변형된 량을 크게 키워줘서 스케일을 준다.  본 경우에는 원체 준 힘이 작았기 때문에 5000000의 숫자를 넣어주었다.

그 결과 아래의 그림을 얻게 된다.



이제 훌륭한 Post-Processor로서 Paraview를 얻게 되었고, 다른 기능들도 이것저것 건드려 보면서 놀면 될 것 같다.  간지나게(?) 동영상을 만들려면 해석할 때 그냥 Static 으로 하지 말고 Transient하게 해서 여러개의 스냅샷을 얻어내면 될 것이다. 

기타  다른 Solver인 OpenFoam을 사용해서 CFD 해석을 한다던가 등등 여러가지 재미있는 일들도 가능할 것이다.


Open Source 해석 소프트웨어들이 참 많이 완성도가 올라가고 있다.
몇년 전만 해도 꿈도 못꾸던 고급 기능들이 하나씩 오픈소스 개발자들에 의해 정복되어가는 느낌이다.
아직 제대로 안 나온건 Hertz Contact 정도인가...

이런 일들이 가능했던 것은 자본의 힘은 절대 아니었던 것 같다.
소수의 개발자들이 자신의 직업인생의 상당부분을 투자하면서 짧게는 10년, 길게는 20년 정도 꾸준하게 업데이트해온 결과다.
우리나라 같은 경우에는 호흡이 너무 짧기 때문에 이런 식으로 일하는 엔지니어가 있으면 무능하다면서 바로 짤릴 것이다.  우리나라가 미국/독일/프랑스/핀란드/일본 같은 나라를 넘어설 수 없는 근본적인 이유이기도 하다.

오픈소스 소프트웨어가 발전하려면 엔지니어들에게 월화수목금금금 일시키면서 착취하는 구조에서는 불가능한 것 같다.
정부에서 소프트웨어 분야를 3년 안에 미국의 80%까지 따라잡는다고 대국민 사기를 치는 기사가 오늘 떴던데...
그런 화려해 보이는 정책들을 보면 정작 엔지니어라는 '사람'에 대한 언급은 전혀 없다는 걸 알 수 있다.
"기술"이라는 것의 실체는 특허권이나 공유되지 않는 죽은 기술보고서 따위에 있는게 아니고 엔지니어라는 사람 그 자체라는 것을 모르는 무지랭이들이 만든 허위의 정책이기 때문에 그렇다.



* 3줄 요약
Pre-Processor = GMSH
Solver = ELMER
Post-Processor = Paraview


댓글 없음:

댓글 쓰기