객체 지향 언어를 이용한 통합 환경 플라즈마 시뮬레이터 개발

  • 발행 : 2013.08.21

초록

플라즈마 시뮬레이션을 수행하기 전에 현 컴퓨터의 계산 능력범위 내에서 물리적으로 타당하게 설명할 수 있는 수치 해석 방법을 먼저 정한다. 예를 들면, 가스 반응이 많고 각 가스 반응 중에 중요가스 반응을 빠르고 선택적으로 선별하고자 할 때, 혹은 외부 입력 변화에 따른 플라즈마 종의 온도 또는 밀도를 대략적으로 파악하고자 할 때는 공간적인 분포를 고려하지 않는 0차원 global 모델링을 이용한다. 압력이 높고 충돌이 빈번한 경우에는 플라즈마를 유체적인 관점에서 기술이 가능하므로, 볼츠만 방정식에서 속도에 관한 0차, 1차, 2차 모멘텀을 이용하여 유도된 유체 방정식을 이용한다. 반대로 압력이 낮고 충돌이 거의 없는 경우에는 플라즈마 입자를 개별적으로 추적하는 입자 전산 모사 방법을 이용한다. 지금까지는 앞에서 언급한 예와 같이, 개별 플라즈마 상태에 맞는 시뮬레이션 코드를 각각 만들어야 했고, 각 코드를 개별적으로 유지 보수해야 했다. 하지만, 개별적으로 코드를 유지 보수를 해야 할 경우에는, 동일한 기능을 하는 함수를 반복적으로 각 코드에 입력해야 하는 불편함이 따르고, 각 수치해석 방법의 장점을 모은 하이브리드 방법과 같은 전사모사를 개발할 때 각 기능을 통합해야 하는 어려움이 따른다. 또한 지금까지 개발된 대부분의 플라즈마 코드는 외부 입력에 대해 유연하지 못한 대처로 새로운 가스 반응을 추가하거나 새로운 수치해석 방법을 추가할 경우에는 코드를 전체적으로 수정해야 하는 어려움이 있었다. 따라서 코드를 통합적으로 관리할 수 있고, 외부 입력에 대해 유연하게 대처할 수 있는 시뮬레이터가 필요했다. 여기에서는 객체 지향 언어인 C++ 언어를 이용하여, 사용자 입력에 대해 유연하게 대처할 수 있고, 복잡한 화학 반응을 특정 수치 해석 방법에 상관없이 통합적으로 관리할 수 있는 코드를 개발하였다.

키워드