2012년 12월 13일 목요일

Elmer를 이용한 FEA 연습

Elmer를 이용한 FEA 연습


Elmer는 핀란드의 CSC 연구소 (과학 IT 센터)에서 개발한
오픈소스 멀티피직스 시뮬레이션 소프트웨어이다.
(참고 : http://www.csc.fi/english/pages/elmer )

열,유체,선형변형,비선형변형 등이 한번에 다 된다.
(멀티바디가 되는지는 아직 확실히 확인은 못 해 봤다.)


http://en.wikipedia.org/wiki/Elmer_the_Patchwork_Elephant
Elmer라는 이름은 위 그림동화책의 주인공 코끼리 이름이라고 한다.
유럽 쪽에서는 꽤 유명한 동화책 시리즈인가 보다.


이 코끼리는 알록달록하게 분할된 헝겊조각으로 이루어져 있어서,
Mesh 작업을 반드시 해야 하는 
유한요소해석 소프트웨어 이름으로 적절하다고 생각했나 보다.

바운더리 구분을 하도록 표시 옵션을 줬을 때의 모습
실제로, Elmer에서 모델을 불러들인 후, 
뷰 옵션에서 바운더리별로 자동 구분하도록 해 주는 옵션을 줘 보니깐
진짜 "알록달록한 헝겊조각으로 된 코끼리 엘머"의 모습과 흡사하다.


아무튼 이것을 설치하는 방법은 우분투 계열 리눅스에서는 극히 간단하다.
왜냐면 우분투의 기본 저장소에 이 소프트웨어가 이미 등록되어 있기 때문에
별도의 저장소를 등록해 줄 필요도 없이
그냥 소프트웨어 센터에서 elmer를 찾은 다음에 깔기만 하면 된다.

대부분의 오픈소스 CAE 소프트웨어들이 설치하는데 꽤 까다롭다는 점을 생각하면
아주 고마운 일이다.

최근에 버전업이 되면서, GUI도 정말 직관적으로 잘 만들어진 것 같다.
한마디로 정말 심플하다.

(물론 정말 제대로 발본색원해서 쓰려면 GUI에 의존하면 안되고, 코딩을 해야 겠지만)


아무튼 시험삼아 모델을 하나 불러들여서 디폴트로 해석을 하나 해 봤다.
튜토리얼 문서들은 영어로 잘 되어 있는 것 같은데, 아직 GUI 환경을 제대로 이용한 튜토리얼은 안 나와 있는 듯 하다. (GUI 버전업이 된지 얼마 안 되었기 때문일 것이다 아마...) 
때문에 튜토리얼은 무시하고 그냥 통빡(?)으로 넘겨짚기 신공 발휘해서 그냥 해 봤다.


기어 모델 STEP 파일을 불러들인다.


전에 모델링 해 뒀던 것들 중에서, 적당한 난이도(?)를 가진 형상의 모델을 하나 불러들여 보았다.  인볼류트 기어 치형이 수십개 있고, 각 면도 플라스틱 사출성형을 고려하여 빼기구배가 0.5도씩 들어가 있기 때문에, 파일 용량에 비해서 연산량이 좀 될 수 있는 형상이다.
실무에서 해석이 필요한 것들은 대체로 이정도 수준이므로 테스트에 적절하다고 생각된다.

이것을 불러들이면, 위 그림과 같이 깔끔하게 모델이 불러들여와 진다.
그리고 시키지도 않았는데(?) 자기가 혼자 Mesh 작업에 제멋대로 돌입한다.
Mesh 작업을 이런식으로 지 멋대로 시작하는 구성은 난생 처음 봤다.
자신있다 이건가....

Mesh 작업 완료 상태


약간의 시간이 소요된 후, Mesh 작업이 완료되었다.
Elmer에서 구현된 Mesh 툴의 성능은 굉장히 선진적인 것이 아닌가 싶다.
왜냐면, 기존의 일반적인 Mesh 툴들은 보통, 형상에 따라 밀도를 저렇게 자기가 지능적으로 배분해서 알아서 저렇게 깔끔하게 내보여주지는 않기 때문이다.

저 모델을 그대로 Salome-Meca 및 GMSH 같은걸로 해 봤는데, 
Elmer 처럼 이쁘게 절대로 안나온다.  에러나 뱉아내지 않으면 다행이다.
(NetGen 같은 제네레이터를 사용)
때문에 일일이 손을 봐 줘서 에러가 없도록 땜빵해 주거나 세심하게 옵션을 조정해 줘야 하는데, Elmer의 Mesh 툴은 그보다 한차원 더 편하게 해 주는 듯 싶다.

(물론 Elmer에서도, 형상 복잡도에 따라 이 자동화 작업이 실패하기 때문에 옵션을 손 봐줘야 할 때가 많을 것이다.  자동 Mesh 작업 이후에 좀 더 손 봐 줄 수 있는 약간의 편집 기능도 있다.)

아무튼 Mesh 단계는 이렇게 편하게 넘어가고....


그 다음에 모델 설정을 해 준다.
메뉴에서 순서대로 그냥 임의의 것들을 디폴트로 넣어준다.
지배방정식(Equation), 재질(Material), 외력(Body Force), 초기조건(Initial Condition), 경계조건(Boundary Condition) 등등.
이들 각각의 모델 설정을 해 줄 때 탭으로 각각의 피직스(Physics)를 선택해주고 설정 가능하다.

헬름홀쯔 방정식, 정적 열전도, 열전달 방정식, 점탄성변형 평면, 선형 점탄성변형, Saveline, 나비에-스토크 방정식, 확산방정식, K-입실론, ...  레이놀즈 방정식, 뿌아종-볼츠만 방정식 까지.

열,유체,고체 전부 멀티피직스로 한번에 처리 가능도록 구성해 놨다.

일단 다른 옵션을 다 죽여놓고,
선형 점탄성 변형(Linear Elastic) 기능만 체크해서 해석해 보기로 하였다.


노드,서피스,바운더리 등등에 대한 넘버링을 확인 가능하다.

뷰 옵션을 잘 보면, 노드/서피스/바운더리 등에 각각 메겨져 있는 넘버를 확인할 수 있도록 표시되는 옵션이 있다.  이 옵션을 켜면 숫자들이 확 뜨는데, 화면이 갑자기 버벅댄다...
숫자가 너무 많으므로 보고 싶은 부분을 확대한 다음 옵션을 켜서 확인하는 정도가 적절하지 않나 싶다.
특정 바운더리를 확인하고 싶다면, 원하는 표면에 마우스를 올려놓고 더블클릭 해 주면
0.5초 정도의 딜레이 후에 빨간색으로 선택이 된다.  창 아래쪽에는 해당 바운더리의 넘버가 역시 표시되므로, 모델 설정시 바운더리 컨디션을 정해 줄 때, 힘을 줄 바운더리를 골라서 체크해 줄 때 이걸 참고해서 선택하면 되는 것 같다.


아무튼 이제 모델 설정이 되었다 싶으면, 메뉴에 Sif를 Generate 해 준다.
여기서 생성되는 텍스트파일이 바로 Elmer Solver에 지령을 내려주는 것이다.
GUI 덕분에 이 텍스트 지령을 일일이 코딩해 주는 삽질을 많이 줄여준 것이다.

상용 CAE 소프트웨어들은 이런 사용자편의성을 많이 배려하고 있지만,
아직 오픈소스 CAE 소프트웨어들은 이런 부분이 약한 편이다.
현대중공업에서 과감하게 도입했다는 OpenFOAM 같은 유체역학 솔버만 봐도
해석 전문 엔지니어가 날밤새서 몇달 공부한 다음에 겨우 코딩해서 뭔가 해 보는 정도이니...

그런 점에서 Elmer의 GUI 제공은 정말 고맙다.

프랑스의 Salome GUI 툴의 경우도 잘 만들어지긴 했지만, Elmer 처럼 심플하지는 못하므로
초보자가 접근하기에는 Elmer 쪽이 훨씬 더 나은 것 같다.


아무튼 Sif를 만들어준 후, Start Solver 버튼을 눌러서 해석을 시작해 준다.
물론 해석 시작 전에, 현재까지의 것을 저장해 주었다..
해석 하다가 뻗어버릴지 모르니..

해석이 시작되면 컨버전스(수렴) 히스토리 그래프가 떠서, 해석 상태를 보여준다.
이게 의미하는 바는 잘 모름. (=,.=);
아마 해답을 찾기 위해 수렴을 해 들어가야 하는데 각 아이터레이션 단계마다 보여주는 수렴 정도를 나타내는 것 같다.  자세한 내용은 방정식을 꿰뚫고 있어야 이해 가능할 듯.


컨버전스(수렴) 히스토리

그리고 솔버 로그창도 띄워서 상태를 본다.
대충 보니, 변형량 계산하는데 아이터레이션을 스무번 정도 하는 것 같다.
솔버 옵션에서는 일단 싱글CPU로 설정해 놨기 때문에, 코어 4개의 i5 CPU의 풀파워를 내지는 않고 1개의 코어만 사용한다.  그럼에도 불구하고 노트북의 냉각팬은 풀파워(?)로 시끄럽게 돌아간다.

솔버 로그


모델이 좀 복잡한 형상이라 그런지, 생각보다 시간이 꽤 걸린다.


솔버 연산 완료!

완료되고 나서 소요시간을 보니, 대충 34분 정도 걸렸다.
노드 개수가 많으니 어쩔 수 없나보다.
멀티피직스로 다른 물리량까지 같이 계산 했다가는 밤 샐 기세....


아무튼 다 됐으니, 화면에 뿌려본다.
Elmer가 제공하는 포스트 프로세싱은 2가지 다른 종류인 것 같다.
자체 포스트 프로세서 화면은 띄워보니 너무 촌스러워서(ㅠㅠ) 그냥 넘어가고,
메뉴에 VTK 포스트 프로세서가 따로 있길래 그걸로 띄워 보았다.




모델의 피쳐, 좌표계 표시, 범례 바 표시 옵션을 줌


역시 VTK라서 그런지 화면이 이쁘게 나온다.
폰미세스 응력 위주로 여러 표현 옵션을 줘 가면서 얼마나 이쁜지(?) 봤다.

등고선 표시
변형량 벡터 표시 (색깔은 폰미세스 응력)
아이소 서피스 - 내부 응력 표시
폰미세스 응력
폰미세스 응력, 변형량 벡터 함께 표시

메쉬 선이랑 함께 표시

관심있는 응력집중 부위 관찰


이상의 결과를 예쁘게 그림 캡춰하고, 결과도 저장하고 했다.
지금은 스태틱한 해석 옵션을 줬기 때문에 정지그림밖에 없지만, 
해석하기 전에 트랜지언트 옵션을 주면 애니메이션도 가능한 것 같다.


 * 결론

(1) 아무 문서도 보지 않은 상태에서, 그냥 직관적으로 모델을 어찌어찌 불러들여 해석시켜보는 것이 가능할 정도로 사용법이 쉽다.  (물론 제대로 하려면 공부를 좀 해야 함)

(2) 꽤 안정적인 느낌이다.  그리고 깔끔하고 이쁘다.

(3) Mesh 작업에서 골머리 썩히는 부분이 많이 줄었다.

(4) 다만, 디폴트 상태에서는 Mesh가 상당히 촘촘하게 되는 경향이 있으므로, 그대로 해석 시켜버리니까 해석시간이 꽤 오래 걸린다.  시간 단축을 위해서는 Mesh 옵션을 조정해 주면서 감을 잡아 나가야 할 것 같다.

(5) 우리나라에서 이것을 사용해서 실무에 적용하는 엔지니어가 존재하는지 궁금하다.

(6) 한국에서 이걸 많이 사용해서 튜토리얼이나 예제가 많아졌으면 좋겠다.

(7) 전문적인 해석 엔지니어가 아닌, 설계 엔지니어가 작업 중에 의심나는 부위에 대한 간단한 해석을 신속하게 할 수 있는 용도로 사용하기에도 좋지 않을까 하는 생각이 든다.  일단 쉬우니까...



댓글 없음:

댓글 쓰기