재료공학자들은 다양한 실험을 통해 재료의 특성을 측정한다. 하지만, 재료의 특성을 측정하는 방법은 실험만 있는 것은 아니다. 컴퓨터를 이용한 시뮬레이션 역시 재료 연구에 중요한 역할을 해 왔다. 본 포스팅부터는 재료 시뮬레이션에 대해 간단히 소개하고, 재료 시뮬레이션이 실제로 어떻게 활용되는지 알아보도록 하겠다.
가장 먼저, 시뮬레이션이란 무엇일까? 많은 사람이 시뮬레이션이라는 단어는 알지만, 이를 명확히 설명하라고 하면 어려움을 겪는다. 사전적인 시뮬레이션의 의미는 모의실험이다. 좀 더 풀어서 설명하면, 실제와 유사한 가상의 환경 아래서, 실제 현상을 모사할 수 있는 모델 및 식을 가지고 하는 실험이다. 그리고 우리는 고등학교에서 이미 시뮬레이션을 해 보았다. 물리학 시험문제가 기억나는가? 10m 높이의 빌딩 위에서 10g의 공을 떨어뜨렸다. 이때 지면에 공이 도달하는 시점에서 공의 속도/가속도는 어떻게 되는가? 단, 공기 저항은 무시한다. 이러한 문제를 우리가 푼다고 하면, 우리는 연필과 종이로 시뮬레이션을 하는 셈이다. 이런 간단한 문제는 우리가 손으로도 쉽게 답을 구할 수 있지만, 우리가 좀 더 실제와 유사한 모의실험을 하기 위해 더욱 많은 조건을 고려하기 시작한다면(위 예를 기준으로 설명할 때, 공기 저항, 공 표면의 재질, 바람의 방향 등을 고려한다면) 손으로 답을 구하기는 점점 어려워질 것이다. 그런데 우리에게는 단순 계산을 정말 뛰어나게 수행할 수 있는 도구가 있다. 바로 컴퓨터다. 컴퓨터가 발명된 이후 기존에 손으로 하던 계산을 점차 컴퓨터로 대체하는 것은 자연스러운 흐름이 되었고, 그렇게 컴퓨터 시뮬레이션이 등장했다.
이제 우리에겐 복잡한 계산을 대신해줄 수 있는 컴퓨터가 생겼다. 그렇다면 이제는 어떤 시뮬레이션이든 쉽게 할 수 있을까? 다시 위의 예제를 생각해보자. 우리가 손으로 풀 수 있는 문제는, 사용하는 모델 또한 단순하다. 위 문제에서 우리는 공기 저항 등, 공의 움직임에 영향을 줄 수 있는 모든 요소는 무시한 채 뉴턴의 운동방정식 및 중력가속도만을 사용하여 문제를 푼다. 뉴턴의 운동방정식은 이미 잘 알려진 간단한 수식이기 때문에, 우리가 손으로 푸는 데 지장이 없다. 하지만, 공기 저항, 공 표면의 재질, 바람의 영향 등을 고려하기 시작하면 어떻게 될까? 공기 저항은 어떻게 고려해야 할까? 1) 단순히 일정 밀도의 공기를 가정하고 공이 움직이는 방향의 반대 방향으로 일정 세기의 힘을 가해 주면 될까? 2) 아니면 공기 분자를 일일이 우리의 환경에 집어넣고 실제로 공기 분자와 공의 충돌을 고려해야 할까? 공 표면의 재질은? 바람의 영향은? 예로 든 공기 저항에 대한 부분을 살펴보면, 1) 은 비교적 간단한 대신 실제 환경과는 아직도 거리가 좀 있을 것이고, 2) 를 구현한다고 하면 실제로 고려해야 하는 원자의 수는 수십만 개로도 모자랄 것이다. 아무리 우리 컴퓨터가 성능이 좋다고 한들 아직 이런 계산까지 하기는 어렵다. 이렇게, 일반적으로 우리가 특정 현상을 모사하는 '모델'을 구축하고 모델의 변화를 계산하기 위한 계산 방법을 결정할 때 모델 및 계산 방법의의 정확도와 계산 시간은 반비례하는 경향이 있다. 그리고 우리는 우리의 목적에 맞게 모델의 정밀도를 조절해야 한다.
재료 시뮬레이션도 마찬가지다. 재료 시뮬레이션을 할 때, 우리는 먼저 재료를 얼마나 자세히 구성할지 결정해야 한다. 가장 대표적인 선택지 세 가지로는 원자+전자 모델, 원자를 공으로 간주하는 모델 및 원자를 직접 모사하지 않고 재료를 3D Mesh 등으로 간접적으로 모사하는 모델이 있다. 앞에서 뒤로 갈수록 정확도는 떨어지지만 계산 속도가 빨라지고, 모델의 크기 및 시뮬레이션 시간을 늘릴 수 있다. 그다음으로는 어떤 계산 방법을 사용할지를 결정해야 한다. 똑같은 원자 모델을 사용하더라도 계산 방법에 따라 그 정확도 및 계산 속도에 차이가 날 수 있기 때문이다. 위에 예로 든 공기 저항을 보아도, 단순히 일정 세기의 힘을 가해 주는 계산 방법을 쓸 수도 있지만 공의 속도에 따라 공기의 마찰력을 변화시키는 등으로 계산 방법을 다르게 할 수 있다. 이 경우 고정값을 쓰는 것에 비해 속도는 좀 느려지겠지만 조금 더 현실적인 시뮬레이션이 가능할 것이다. 이 과정까지 마쳤다면 실제로 재료 시뮬레이션을 수행할 수 있다. 이 경우, 어떤 프로그램을 사용해서 시뮬레이션을 진행할 것인지, 그리고 시뮬레이션을 위해 어떤 컴퓨팅 자원을 사용할 것인지를 고려해야 한다. 시뮬레이션 시에는 우리 목적에 맞는 프로그램을 직접 만드는 방법도 있지만, 정말 간단한 시뮬레이션이 아니라면 시뮬레이션용 프로그램을 만드는 데만 연 단위의 시간이 걸리기 때문에 일반적으로는 이미 개발된 상용 프로그램을 사용한다. 다만, 상업적인 프로그램의 경우 라이선스 비용이 상당히 비싼 경우가 많아 재정에 여유가 없는 경우 오픈 소스 패키지를 사용하게 된다. 그다음 컴퓨팅 자원을 선택하게 되는데, 간단한 시뮬레이션의 경우 우리가 사용하는 노트북이나 데스크탑 등으로 계산을 돌리기도 하지만, 일반적으로는 여러 개의 CPU와 GPU를 병렬 연결하여 계산 효율을 높인 클러스터(슈퍼컴퓨터)를 사용한다. 이러한 슈퍼컴퓨터들은 보통 계산량 단위로 금액을 청구하게 된다.
이번 포스팅에서는 시뮬레이션의 정의 및 예제에 관해 설명하였고, 이를 바탕으로 재료 시뮬레이션에 대해서도 간단히 소개하였다. 하지만, 단순히 좋은 도구만 있으면 좋은 연구가 나오는 것이 아닌 만큼, 재료공학자들은 이 재료 시뮬레이션이라는 도구를 어떻게 사용할지 숙고해야 한다. 따라서, 다음 포스팅에서는 재료공학자들이 실제로 재료 시뮬레이션을 어떤 방식으로 활용하는지 알아보도록 하겠다.
'과학 > 재료공학' 카테고리의 다른 글
제일원리 계산 소개 (0) | 2022.06.16 |
---|---|
재료 시뮬레이션의 활용 방법 (0) | 2022.06.14 |
재료의 특성을 파악하기 위한 실험의 종류 (0) | 2022.06.12 |
재료공학에서 다루는 재료들의 제법(만드는 법) (0) | 2022.06.11 |
재료 공학의 응용 분야 (0) | 2022.06.10 |
댓글