미분방정식을 수치해석적으로 푸는 문제는 1768년 오일러가 처음 시작했습니다. 당시 오일러의 아이디어는 "오일러의 방법"이라고 알려져 있습니다. 다음은 1900년대 초기까지 시대별로 개발되어 온 미분방정식의 연표입니다.


발표연대 개발자 발표내용
1768 Leonhard Euler Euler Method
1824 Augustin Louis Cauchy 오일러 방법의 수렴 가능성 증명, implicit Euler Method 발표
1855 John Couch Adams Multistep Method
1895 Carl Runge Runge-Kutta Method
1905 Martin Kutta fourth-order Runge-Kutta Method
1910 Lewis Fry Richardson extrapolation method(Richardson extrapolation)


이런 기본 방법들 위에서 1930-1940 사이에 -- 누구라고 딱히 한정할 수는 없지만 -- 유한요소법(Finite Element Method)이 개발됩니다. 이 방법에 의해 열이나 기체의 확산에 관한 연구가 많이 이루어졌습니다. 무엇보다 인기있었던 주제는 Navier-Stokes Equation으로, 지금도 활발히 연구가 되고 있습니다. 이 방법을 적용하기 위해서는 아래 그림과 같이 계산이 이루어지는 공간을 적절히 잘라내야 했는데, 이 기법에서 여러 가지 아이디어들이 연구되어 왔습니다. 1973년에는 William Gilbert Strang과 George J. Fix에 의해 수학적인 배경이 정리가 되었고, 2004년에는 I. M. Smith에 의해 프로그램 가이드라인이 책으로 정리가 되었습니다.(Programming the Finite Element Method, 현재는 공저자들이 추가되어 개정되고 있습니다.)


Example of Mesh, Aquired from https://commons.wikimedia.org/wiki/File:Example_of_2D_mesh.png#/media/File:Example_of_2D_mesh.png


컴퓨터가 발전하고 풀어야 할 문제가 복잡해져가면서 위 그림에서 보이는 Mesh를 설정하는 데 대한 고민이 생겨났습니다. 충격파나 강한 중력장 내에서 Navier-Stokes Equation, Einstein Equation의 해가 시간에 따라 변하는 과정에서 먼저 설정해둔 Mesh로는 충분히 정밀한 결과를 얻기 힘든 상황이 발생했습니다. 그렇다고 무작정 촘촘하게 계산하다가는 계산속도나 컴퓨터 리소스에 문제가 생길 수 있었죠. 이 문제를 해결하기 위해 1989년 Marsha Berger, Joseph Oliger, Phillip Colella는 Adaptive Mesh Refinement(AMR)라는 알고리즘을 개발했습니다. 이 알고리즘의 응용의 한 예로 아래와 같은 멋진 동영상을 보실 수 있습니다.



이 알고리즘은 우주물리에 처음으로 적용되어 아인슈타인 방정식의 새로운 특성을 발견하는 등 성공적인 결과를 얻었습니다. 이 알고리즘에서 grid를 제어하는 방법은 여러 가지가 있고 지금도 새로운 방법이 많이 연구되고 있는데, 그 중에는 metric tensor를 이용해서 정밀도를 높이는 방법도 있습니다. 관심있으신 분은 다음 논문을 참고하세요.


Visualizing Mesh Adaptation Metric Tensors


+ Recent posts