Elmer 처음 둘러보기

배경지식

Elmer의 구성

  • ElmerGUI : GUI로 사용할 수 있도록 QT로 만든 일종의 쉘이다. 간단한 해석은 이 안에서 모두 가능하지만, 모든 기능을 다 지원하지는 못하므로 한계가 있다. 입문단계에서 매우 유용한 듯 하다. 디자인이 매우 간소하게 되어 있어 실행 실패 확률을 크게 낮추어준다.
  • ElmerSolver : 해석자(Solver)의 실행 명령이다. 실행할 때는 case.sif 파일에 설정된 내용을 자동으로 읽어들인 후 조건을 반영하여 해석이 실행된다.
  • ElmerGrid : 형상모델을 만들거나, 이미 존재하는 형상모델을 ElmerSolver에서 다룰 수 있는 매쉬 포멧으로 생성해주는 기능이 있다.
  • ElmerPost : ElmerGUI 안의 메뉴에서 기본적으로 실행된다. 해석결과를 가시화해준다. 업데이트가 중단된지 오래되었으며 기능상 한계가 있으나 간단히 결과를 확인하고자 할 때나 다른 가시화 툴이 마땅히 없을 때 유용하다.
  • ElmerVTK : ElmerPost와 별도로 만들어진 가시화 툴이다. 역시 ElmerGUI 안의 메뉴에서 실행된다. VTK 기반이다. 역시 기능상 한계가 있으나 간단히 결과확인 목적으로 유용하다.
  • MATC : Elmer 안에서 수식을 연산해 줄 필요가 있을 때 사용하는 내부적인 유틸리티이다. 자칭 '가난한 자의 Matlab'이라고 한다. 예를 들어 case.sif 파일 안에서 특정 변수값을 원하는 함수로 표현하고자 할 때, MATC 표현을 사용할 수 있다. 내부적으로 MATC 실행명령을 작동시켜 연산이 이루어지는 구조다.
  • ElmerF90 : Elmer 패키지 안에 내장된 약식의 Fortran 컴파일러다. 사용자가 자신이 원하는 특정한 해석자(Solver) 함수를 만들어서 해석에 직접 적용시키고자 할 때, Fortran Function으로 소스코드를 작성한 후 이걸로 곧바로 컴파일하고 나서 해석 과정에 직접 적용할 수 있다.

Elmer의 특성

  • 기본적으로 유한요소(Finite Element) 방법론에 기초하여 해석이 이루어진다. 예외는 입자(Particle) 해석기를 사용할 경우 뿐인 듯 하다.
  • 유한체적법, 유한차분법을 사용하지 않는 것 같은데 이때문에 유체해석에서 약간 불리한 듯 하다.
  • 그 대신 전체 해석 구조가 간결해지고 다중물리해석을 위한 데이타의 통일성을 가지기에는 유리한 듯 하다.

ElmerGUI

  • 입문단계에서는 우선 ElmerGUI 툴을 사용하여 GUI 환경에서 작업을 실시할 수 있다. 터미널에서 ElmerGUI라고 치면 실행된다.
  • ElmerGUI의 핵심 기능은 간단히 말해, 해석을 위한 입력파일인 case.sif 파일을 GUI를 통해 반자동으로 작성해 주는 것이다.
  • 어느정도 구조가 파악되고 익숙해지면 점차 ElmerGUI를 사용하지 않고 직접 case.sif 파일을 작성해서 커맨드로 바로 실행해서 해석하는 쪽이 편하게 될 것이다.
  • case.sif 파일이란, 해석을 위한 각종 조건들을 줄줄 적어준 설정파일이다. 텍스트 포멧이므로 직접 내용을 써넣어도 된다. 물론 사용되는 구문들은 매뉴얼을 보고 공부해가면서 파악해서 써야 한다. 구성이 나름 상당히 잘 정돈되어 있으므로 그렇게 어렵지는 않다.
  • Elmer의 모든 기능이 ElmerGUI로 다 구현되어 있지는 않으므로, 수준을 높인 응용 해석을 위해서는 어느 시점에서부터는 case.sif 파일을 직접 편집하는 방식을 취하게 될 것이다.

case.sif

  • 사실 굳이 파일 이름이 case.sif일 필요는 없다. 다만 이름을 이걸로 고정시켜 놓고 쓰면 이것저것 신경쓸 필요없이 일관되게 작업하기가 좋은 것 같다. 매번 파일이름 짓는 것도 고역이지 않은가...

ElmerSolver

  • ElmerSolver라고 명령을 치면, 자동적으로 현재 디렉토리 내에서 case.sif 파일을 찾아서 그 내용을 반영하여 해석을 실시하게 된다.
  • ElmerSolver case001.sif 라고 치면 현재 디렉토리 내에서 case001.sif 파일을 찾게 될 것이다.

ElmerGrid

  • ElmerGird 라고 명령을 치면, 옵션 사항에 대한 설명이 주루룩 나온다.
  • ElmerGrid 14 2 case.msh 라고 명령을 치면, case.msh 파일을 찾아내고, 이것이 Gmsh의 매쉬파일 포멧이라고 인식한 후(14), Elmer 전용 매쉬 파일 포멧(2)으로 변환하게 된다. 즉 다시말해 Gmsh 파일을 Elmer 파일로 변환해 주는 것이다.
  • ElmerGrid를 위한 전용 형상 정의 포멧은 *.grd인데, 물론 텍스트 포멧이고 그 문법은 매뉴얼을 참고하여 사용자가 직접 구성할 수 있다.
  • ElmerGrid가 만들어내는 Elmer 전용 매쉬 파일 포멧은 mesh.boundary, mesh.elements, mesh.header, mesh.nodes의 4개 파일이다. 하나의 형상을 정의하기 위해 왜 4개의 파일로 굳이 쪼개는 특수한 형태를 취했는지에 대해서 정확한 이유는 모르겠으나, 각 요소별로 정보를 나누다 보니까 아무래도 각 파일의 사이즈가 줄어들고 내부적으로 이리저리 다루기가 수월해서 그런 것 아닐까 추측된다.

ElmerPost

  • ElmerGUI의 메뉴 중에서 Run > Start ElmerPost를 선택하면 실행된다. 해석된 결과를 보여주며, 사용방법은 상당히 괴이하지만 가만히 들여다보면 대충 파악된다.

ElmerVTK

  • ElmerPost 보다는 좀 예뻐 보이지만 기능적으로 보면 좀 부족하다. 예를 들어 스트레스를 받아 변형된 형상을 보여주거나 하지는 못한다. 유체 해석 결과의 유선(Stream Line)을 보여주는 기능도 잘 안될 확률이 높다.
  • ElmerGUI의 메뉴 중에서 Run > Start ElmerVTK를 선택하면 실행된다. 해석된 결과를 보여주며, 사용방법은 매우 직관적이므로 별다른 설명이 필요없다.

ParaView

  • ElmerPost, ElmerVTK 말고 외부 가시화 툴로 ParaView를 ElmerGUI 상에서 직접 실행시킬 수 있도록 메뉴가 추가되어 있다.
  • ElmerGUI의 멘 중에서 Run > Start ParaView를 선택하면 ParaView가 자동으로 실행되면서 해석된 결과를 보여줄 수 있게 된다.
  • 단, 이때 ParaView는 반드시 시스템에 설치되어 있어야만 실행이 이루어진다.

ElmerGUI에서 STEP 파일 읽어들이기

ElmerGUI에서 Remesh 하기

ElmerGUI에서 Model 설정하고 case.sif 저장하기

ElmerGUI에서 Project 저장하기