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가 자동으로 실행되면서 해석된 결과를 보여줄 수 있게 된다.