2015년 4월 16일 목요일

Open Source CAE Toolchain 4 - Z88 Aurora



2011년인가 즈음에 Z88 이라는 FEM 솔버가 있다는 걸 알았었다.




TUI 환경에서 갑갑하게 시간낭비 하면서 바운더리 컨디션 설정해 줘야 하는 식의
그저 그런 것이리라 생각을 했었는데, 
웬걸 알고보니 GUI 도구에 상당히 심혈을 기울이고 있는 걸 보고 인상 깊었었다.

Aurora는 바로 그 GUI 프로그램의 이름이다.
Pre & Post Processor 역할을 하고, Z88 Solver 역시 안에 집어넣었다.

이후 2012년도에 V2가 나왔다.
바로 깔아서 써 봤는데, 아직 완성도가 그다지 높지 못했다.
조금만 3D 데이타의 형상이 복잡해져도
읽어들이는데 실패해 버리거나,
매쉬를 만드는데 성공하지 못할 확률이 매우 높았다.
그래픽 역시 상당히 허접해 보였다.
매쉬가 조금만 많아져도 화면이 버벅대서 도저히 작업이 되질 않았다.
Quadro 그래픽 카드를 사용하는 고사양 PC인데도 그랬다.

하지만 이 툴은 몇가지 상당히 인상깊은 점이 있었다.



독일 바이로이트 대학교의 프랭크 리그라는 교수가 만들었다는데
1985년도부터 포트란으로 시작했다고 한다.
90년대 접어들어서는 큰 결심을 했는지, C로 전체 코드를 새로 짜기 시작했다.

아마 기존의 포트란으로는 다른 FEM 툴과
차별화하기 힘들었기 때문이 아니었을까 싶기도 하다.

90년대~2000년대에 걸쳐서 CAE 시장 상황은
고가의 상업용 툴이 완전히 장악하고 있었다.

수천만원~수억원짜리 툴이 아니면 쓸만한게 없었고
컴퓨터 성능도 제대로 해석 하려면 워크스테이션급 이상이 필요했다.
PC에서 해석한다 그러면 간단한 연습용 코드를 짜서 공부하는 용도 정도였을 것이다.


상업용 툴은 완성도가 매우 높기 때문에
일개 대학 교수 혼자서 뭘 해서 시장에 파문을 일으키기는 힘들다.

하지만 상업용 툴에는 기술 외적으로 치명적인 문제가 있었다.

바로 너무 비싸다는 점이다.

자동차 회사, 중공업 회사 따위의 대기업들만 상대하다 보니
엄청난 고가격으로 판매했고
유지보수 및 교육등으로 고수익을 올렸다.

하지만 FEA가 필요한게 대기업 엔지니어들만 필요한건가??

심히 의문이었다.



중소기업 엔지니어들은 엔지니어도 아닌가....?

가격과 사후지원 등 모든 부분에서 맞지 않는 상황이 되었다..

결국 대안은 오픈소스 툴이 되었고
사용하기 좀 불편하거나, 완성도가 낮거나, 배우기 어렵거나 한 부분들은
좀 더 노력해서 공부하면서 써먹어야겠다는 패러다임이 생겼다.

또 상용 툴 중에서도 후발주자들은 저가 정책을 펴기 시작했다.

국산 툴인 Recurdyn, DAFUL, MidasNFX 같은 것들은
기존의 다른 것들보다 상당히 저렴하다.
또 CAD 툴 안에 내장시켜서 간단히 사용할 수 있게도 만들어내기 시작했다.


하지만 저가형 툴의 가격조차 부담스럽다면??

연매출 300억 미만 규모의 중소기업 정도라면 솔직히 가격 부담을 하게 될 것이다.
이런 규모의 업체들은 직원들 월급주고 이것저것 빼고 나면
사실상 회사 지탱해 나가기 급급하기 때문이다.

이런 제조업체의 설계 엔지니어들을 위해서는
오픈소스 이외에 대안이 없다고 본다.



아무튼 그 중에 Z88 Aurora는 ...

2012년 당시에만 해도 불안정하고,
또 GUI 툴인 Aurora 같은 경우에 리눅스 버전은 아예 없고 윈도우용만 있었다.

실무에 사용하기에 좀 문제가 있었다.


그런데 바로 며칠전인 2015년 4월 8일에 V3 버전이 새로 공개되었다.


바로 깔아서 확인해 보니깐
엄청난 발전이 그동안 있었다는 걸 알 수 있었다.


일단 기존에 선형해석만 되던걸, 이제는 상당한 수준의 비선형 해석까지 가능하다.
재료 비선형, 초탄성, 대변위 뭐 이딴 것들 전부 된다.
(아 물론 물성치나 이런건 어느정도 사용자가 설정해서 보완해 줘야 되지만)

단지 접촉 비선형만 안되는 정도다.


게다가 내장된 Netgen, Tetgen의 셋팅도 상당히 보완했는지...
왠만한 3D 데이타는 큰 문제없이 매쉬 만들어 내는데 잘 성공한다.

(물론 여전히 GMSH 보다는 성공 확률이 낮으므로,
좀 복잡해서 잘 안된다면 GMSH에서 만든 다음
.stl 파일로 저장해서 읽어들여도 된다.)


해석 속도는 개인적으로 좀 놀랐다.
전통적인 포트란 LAPACK 같은 것을 사용하는 Elmer보다
훨씬 빠르다.

거의 순식간에 해석이 완료된다.
속도 자체는 상용툴 수준에 육박한다는 느낌이다.
(물론 거대한 데이타를 넣으면 안정성이 떨어져서 뻗어버릴지도 모르지만)


또 Elmer 자체 내장된 Equation에는 Modal 해석 같은건 안되는데
Z88은 기본으로 들어 있으므로 이 부분도 보완이 된다.


즉 Elmer로는 선형탄성해석 정도만 현실적으로 가능한데
Z88을 이용해서 비선형해석 및 모달해석 까지 커버되는 것이다.

상호보완적으로 사용해도 좋겠다는 생각이 든다.


특히 Z88 Aurora V3는 윈도우용 뿐만 아니라
맥, 리눅스 용으로도 잘 컴파일되어 제공된다.



아무튼 GUI가 좀 독일 스럽게 단순무식한 느낌이 들지만
의외로 굉장히 효율적이다.

특히 처음 띄우면 나오는 SPIDER라는 별도창 도구모음이 있는데
이걸로 순서대로 따라가면 작업이 다 끝난다.
설명서 보고 한 번만 따라해 보면 
다음부터는 그냥 혼자 하면 되는 수준으로 쉽다.




일단 해석한 예를 한 번 들어보겠다...
이제까지 한 것과 동일한 모델을 가지고 한다.



처음에 프로젝트 시작하면
어떤 디렉토리를 찾아들어가서
그 디렉토리를 작업 디렉토리로 삼도록 Aurora가 강제한다.

게다가 그 디렉토리는 완전히 텅텅 비어 있어야 한다!
안 그러면 경고 메시지가 나오면서 그 디렉토리를 비우라고 강요한다.

왜 이렇게 만들었을까???

독일 사람 답게
쓸데없는 파일이 너저분하게 작업디렉토리를 차지하는
꼴을 못 봐서 그럴 것이라고 추측된다.

강제로 사람한테 파일 정리 시키는 프로그램이다.
아무튼 빈 작업디렉토리를 프로젝트 장소로 삼으면 일단 빈 화면이 떡 나타난다.
거기에 이제 3D 데이타를 Import 시키면 되는 거다.

.stp 파일을 불러들이면,
내부적으로 .stl 파일로 변환한 다음에
화면에 그걸 띄워서 보여준다.

문제는 .stp --> .stl 변환 과정에서
모델에 결함이 생길 가능성이 있는 것이다.

위에 보이는 모델이 좋은 예인 것 같다.
화면에는 이상없는 것 처럼 보이는데,
기어 치형의 끝단 부분에서 면이 깨져서 결함이 생긴 것이다.

여기서 매쉬 만들기 들어가니깐 에러 나오고 실패한다.

결국 모델링을 단순하게 만들어 보면서 해도 잘 안되어서,
GMSH에서 미리 매쉬를 만든 다음 그것을 .stl 파일로 저장하고
이렇게 만들어진 .stl 파일은 Z88 Aurora에서 불려들였다.

역시 GMSH가 짱인 것 같다.



이렇게 GMSH에서 만든걸 불러들이니 이렇게 나온다.
Z88 Aurora는 어째 쉐이딩 상태보다 이렇게 검은색 선으로 나오는 화면이 더 좋은 것 같다.
마치 도면을 직접 보는 듯한 느낌이 들도록 선명하다.

흑백 화면을 선호하는 것은
전통적으로 기계공학 엔지니어의 성향인 것 같다.

(복사, 팩스보낼 때, 청사진으로 복제할 때 등에 대비해서
전통적으로 도면은 이렇게 검은색 선으로만 나타내도록 문화가 형성되어 왔다.
컬러 도면, 그레이 스케일로 그려진 도면은 원칙적으로 불량 도면이라고 선배들은 가르쳤다.)



아무튼...  상태 확인해 보고..



이제 여기서 그대로 Tetra 매쉬를 만들라고 시키면...
작업은 지 혼자 막 한다음 결과를 보여주는데 이전 상태와 다를 바 없게 된다.
엘리먼트 사이즈 조건이 다 충족되기 때문이겠지...



이제 경계조건을 줄 부위를 선택해서 이름도 지정해 주고..
(선택할 때는 CTRL 키를 누르고 마우스로 꼭 찝어줘야 된다.
또 선택할 때는 반드시 Node로 하는걸 추천한다.
Surface로 선택해서 해 보니, 거기에 경계조건 줄 때 버그가 있는지
선택된 서피스가 없다고 혼자 엉뚱한 소릴 한다.)

암튼 이런 순서는 매뉴얼 보고 따라하면 되므로
쓸데없는 설명은 생략...



재료 지정해 주고...



경계조건 잡아주고...



솔버 설정해 주고...
마지막으로 솔브 버튼 눌러서 실행한다.

Z88 Aurora GUI 뒤에 따로 떠 있는 터미널 화면에 보면
시간정보 등이 보이므로 언제 끝났는지 확인 가능하다.

끝나면 이제 Post-Processor로 들어가서 화면을 본다.



일단 경계조건에서, 힘을 준 이빨 부분을 보고...



이 부분의 응력을 본다.
위 화면은 응력 범위를 지정해서
응력이 크게 걸리는 부분만 보여지도록 한 것이다.




Z88 Aurora의 Post-Processor는 기능이 좀 미약하다.
물론 비주얼은 보시는 바와 같이 상당히 개성적이긴 하다.

문제는, Z88 Aurora의 해석결과 아웃풋 기능도 미약하다는 점이다.
아웃풋되는 데이타는, 변형된 상태로 얼려진 .stl 파일 뿐이다.

결국 이거라도 받아서 Paraview에서 띄워보았다.
응력이나 변형량 같은 정보는 전부 손실되었다.
(물론 데이타 테이블 가지고 프로그래밍 해 주면 되겠지만
실무 엔지니어가 그럴 시간이 없다.)



Paraview에서 본 모습이다.
변형전, 변형후 2가지 .stl 파일을 같이 불러서 비교해 본다.



이정도 확인 되는 수준.





이상 끝.

Z88 Aurora는 단순무식하지만
그 범위 내에서는 확실하다는 느낌이다.

발전가능성도 높다고 생각되며,
개발한 교수가 이걸로 장사하려는 생각도 없어 보인다.








댓글 없음:

댓글 쓰기