http://dx.doi.org/10.3938/NPSM.69.69
HTML5 Simulation of Ideal Gas Kinetic Theory by Using the 2-Dimensional Hard Sphere Collision Model
Wonkun Oh
∗Department of Physics Education, Chungbuk National University, Cheongju 28644, Korea (Received 4 December 2018 : revised 18 December 2018 : accepted 19 December 2018)
The purpose of this study is to simulate the dynamical process of an ideal gas due to the collision of N hard spheres by using JavaScript in the HTML5-based web environment. The simulation is performed by assigning a position, velocity, color, mass, and radius as the main attributes of hard spherical object corresponding to these of an ideal gas particle; then, each sphere was allowed to move freely and interact at a given initial temperature. As a result, various phenomena, such as Brownian motion, diffusion, explosion, and the mixing of different molecules according to the mass of the particles and the initial temperature, could be explained by applying the ideal gas model.
PACS numbers: 01.40.Fk
Keywords: Ideal gas, Simulation, HTML5
강체구의 고전적 2차원 충돌 모형에 의한 이상기체 HTML5 시뮬레이션
오원근
∗충북대학교 물리교육과, 청주 28644, 대한민국
(2018년 12월 4일 받음, 2018년 12월 18일 수정본 받음, 2018년 12월 19일 게재 확정)
HTML5 기반의 웹환경에서 javascript를 이용하여 N개의 강체구 충돌에 의한 이상기체의 동역학적 과정을 시뮬레이션으로 구현하는 것이 본 연구의 목적이다. 시뮬레이션은 위치, 속도, 색, 질량, 반지름 등을 주요한 속성으로 하는 강체구 객체를 만들어 이상기체 입자에 대응시킨 후, 각 강체들이 주어진 초기 온도 조건에서 자유롭게 유동하면서 상호작용하도록 구현하였다. 그 결과 입자들의 질량, 초기 온도 등의 조건에 따라서 브라운 운동, 확산, 폭발, 혼합 등 이상기체의 모형을 확대하여 설명할 수 있는 다양한 현상들을 시뮬레이션을 통해 관찰할 수 있다.
PACS numbers: 01.40.Fk
Keywords: 이상기체, 시뮬레이션, HTML5
∗E-mail: [email protected]
This is an Open Access article distributed under the terms of the Creative Commons Attribution Non-Commercial License (http://creativecommons.org/licenses/by-nc/3.0) which permits unrestricted non-commercial use, distribution, and reproduction in any medium, provided the original work is properly cited.
I. 서 론
이상 기체는 기체의 성질을 이해하고, 물질의 상태변화, 열역학적 기초 개념 등을 학습하기 위한 가장 기본적인 개 념으로서 중등학교 교육과정에서 도입되어 있으며, 대학의 기초 물리학에서도 중심적으로 다루어지고 있는 내용이다.
이러한 이상 기체에 대한 고전적 이해를 위해서는 대개 작은 강체구의 충돌을 동한 동역학적 모형이 자주 사용된다 [1].
고전적 관점에서 상호작용하지 않는 기체 입자들의 강 체구 충돌 모형은 에너지 등분배, 기체 내부의 압력에 대한 거시적 관계 도출 등의 내용을 설명하는데 활용할 수 있고, 이를 바탕으로 이상기체 상태 방정식을 유도하거나 온도, 엔 트로피 등 기초 열역학적 개념을 설명하는 곳에도 유용하게 사용될 수 있다 [2]. 그러나 이러한 이상 기체 관련 개념에 대한 이론적 설명을 위하여 많은 중등학교 과학교과서에서 작은 강체구들의 충돌로 묘사하면서도 실제로는 이를 시각 적으로 보여주는 적절한 동적 모형이나 동영상들이 충분히 활용되지 못하는 실정이다. 이 때문에 학생들이 실제로 관찰을 통하여 이상기체에 대한 개념을 형성하는데 도움을 받기 어렵다 [3]. 또한 기체 분자들의 확산, 혼합, 폭발 등 다양한 현상들도 이상기체의 운동에 대한 이해를 바탕으로 학습되는 것이 도움이 되지만, 현실적으로는 그러한 연계 학습이 수행되지 못하여 결과적으로 학생들은 이러한 개념 에 대한 학습이 충분하지 못하고 심지어 교사들의 이해도 충분하지 않다는 것도 보고되고 있다 [4].
임의의 N개의 강체구의 충돌 모형을 이용한 이상기체의 고전적 묘사는 당구공 충돌과 같은 2개의 강체구 충돌 모형 을 확대하여, 충돌하는 입자들의 개수를 늘이는 알고리듬을 통하여 구현하는 것이 가능하다. 그러나 이러한 과정에서 충돌에 관여하는 N개 입자들의 관계가 N 제곱에 비례하여 늘어난다. 이 때문에, 결과적으로 이러한 시뮬레이션은 컴퓨터에 굉장한 계산의 부담으로 나타나서 적절한 시뮬레 이션의 구현이 쉽지 않은 것으로 평가되고 있다 [5]. 따라서 전통적으로는 이러한 고전적 충돌을 직접 계산하여 구현하 는 것보다는 계산의 부담을 줄이기 위하여 볼츠만 분포에 따른 몬테카를로 시뮬레이션의 방법 등으로 이상 기체 관련 모형 연구가 수행되는 경우가 많다 [6–8]. 그러나 교육에 필요한 적절한 시각적 효과를 연출하는데 필요한 정도의 규모에서는 고전적 충돌 모형을 통한 직접적 시뮬레이션을 구현하는 것이 학생들의 개념 수준에서 충돌에 대한 이론적 이해와 시각적 이해를 통합시켜 개념적 연계성을 높이는데 도움이 된다. 이전의 연구에서 교육용 시뮬레이션의 구 현이 쉬운 HTML5와 javascript를 이용한 강체구의 충돌 시뮬레이션이 제시된 바 있다 [9]. 따라서 이를 활용하여 알고리듬을 확장하면 다중 강체구의 충돌 과정을 통하여
Fig. 1. (Color online) The angle between the relative orientation vector of the two hard spheres and the screen coordinate.
이상 기체의 거동에 대한 고전 동역학적 시뮬레이션 구현이 가능하다.
본 연구에서는 이러한 HTML5 를 이용하여 Web 에서 학생들이 이상기체에 대한 개념을 쉽게 학습하도록 도울 수 있는 2차원 강체의 충돌 모형에 기초한 시뮬레이션을 구현하고, 이를 바탕으로 브라운 운동, 맥스웰-볼츠만 분포, 기체의 확산과 혼합 등을 시각적으로 이해시키는데 잘 적용 될 수 있음을 보이고자 한다.
II. 연구 방법
1. N 강체구의 충돌 구현
강체구 충돌을 통한 이상기체 모형은 2개의 강체구에 대한 충돌 시뮬레이션을 N개 강체구의 충돌로 확장하여 구현할 수 있다. 두 강체구의 충돌 연산처리는 우선 주어진 프레임에서 각 구의 위치와 운동량을 구하고, 이에 따라 다 음 프레임에서 위치와 운동량 변화를 계산하여 충돌 여부를 판단하고, 충돌이 발생하면 그에 따른 위치와 운동량 변화를 새로운 값으로 설정하는 과정이다. 충돌하는 두 강체구 A, B의 운동량 벡터 ⃗PA, ⃗PB를 상호 접근 방향벡터에 대하여 평행성분과 수직 성분으로 분해하고, 이를 바탕으로 충돌 전후의 운동량 변화를 구한다. 이 때 수평 성분은 강체의 탄성 충돌에 대한 운동량 보존과 에너지 보존을 이용하여 고전적으로 계산되며, 수직 성분은 충돌 전후에 변화가 없 음을 이용하여 구할 수 있다 [9]. 이러한 계산을 통하여 두 강체구가 다음 프레임 화면상에서 충돌 후 새로운 위치로 구현될 수 있다.
이러한 연산처리가 끝나면 강체구를 스크린에 구현해야 한다. 충돌 과정에서는 두 강체구의 질량 중심을 연결하 여 결정된 방향벡터 기준계를 사용하였으므로, 강체구의 스크린 표현을 위해서는 두 강체구가 접근하는 방향 벡터 좌표계와 스크린 기준좌표계 사이에 변환이 필요하다. 충돌
Fig. 2. (Color online) The hard spheres generated on the screen with different colors and radii (N = 50).
연산에서 구해진 강체구의 새로운 운동량 벡터는 다시 스크 린 좌표계에 대하여 수직 성분과 수평 성분으로 분해되어 충돌 후 다음 위치를 결정하는데 사용된다 (Fig. 1).
N 개의 강체구를 연산처리하기 위하여 각각의 강체구 는 javascript 객체로 설정하고, 이를 N개의 원소를 가진 배열 변수에 포함시켜 시뮬레이션 대상 객체로 구현한다.
javascript에서 객체는 객체변수와 데이터가 연계되어 정의 되므로 대체로 다음과 같은 형태를 가진다.
var object = {variable1: data1, variable2: data2, ...}
이를 이용하여 각 강체구는 x 및 y 좌표, 속도, 질량 등의 역 학적 속성과 화면 구현에 필요한 반지름, 색깔 등의 속성을 객체변수로 포함한 단일 객체로 정의된다.
var Balls = { x: X_init, y: Y_init, R: radius, s: speed_init, dir: speed_dir, VX: VX_init, VY: VY_init, m: mass, c: getRndColor(), idx: index_X }
시뮬레이션의 다양성을 위하여 random( ) 함수를 이용해서 각 강체구의 질량을 적당한 범위에서 무작위로 발생시키고, 반지름의 크기는 질량에 비례하여 설정한다.
mass = Math.floor(Math.random()*3)+1;
radius = Math.floor(Math.pow(mass/10, 1/3)*10);
마찬가지 방법으로 무작위로 공의 초기 위치와 속도, 색깔 등을 발생시켜 화면 내에서 이상기체의 초기 상태를 구현하게 한다. 이때 기체 입자가 스크린에서 분포되는 초기 범위를 x_range와 x_start 등의 값을 조절하여 화면의 원하는 위치에 놓이도록 선택할 수 있다 (Fig. 2).
X_init = Math.floor(Math.random()*x_range + x_start);
Y_init = Math.floor(Math.random()*y_range + y_start); // 강체구의 초기 위치 speed_init = Math.floor(Math.random()*temp);
speed_dir = (Math.random()*3.14); // 강체구의 초기 속도
특히 초기 속도를 결정할 때, temp 변수의 값을 바꾸면 강체구의 초기 속도를 조절 가능하다. 이를 이용하면 이상기체의 초기 온도에 따른 동역학적 효과를 시뮬레이션에서 구현할 수 있다.
VX_init = Math.floor(speed_init*Math.cos(speed_dir));
VY_init = Math.floor(speed_init*Math.sin(speed_dir)); // 강체구의 초기 속력 function getRndColor() {
var r = 255*Math.random()|0, g = 255*Math.random()|0, b = 255*Math.random()|0;
return ’rgb(’ + r + ’,’ + g + ’,’ + b + ’)’; // 강체구의 색깔
이러한 구현 방법은 3체문제의 2차원 충돌에 대한 기존연구 [10]에서 사용한 방법과 같다. 정의된 객체는 배열 변수에
Fig. 3. (Color online) The user interface of the screen for the simulation (All menu buttons are written in Korean letters).
원소를 추가하는 push() method를 이용하여 전체 강체구 를 포함하는 배열 변수인 balls[N] 의 원소로 포함시켜, 화 면에서 N개의 강체구로 구현할 수 있다. 따라서 특정한 k 번째 강체구의 위치를 추적하기 위해서는 해당 원소의 위치 데이터를 구하면 된다.
x = balls[k].x;
y = balls[k].y;
각 강체구의 충돌을 통한 이상기체의 거동은 강체구 객체 들 간의 상호 충돌을 순차적으로 계산하여 구현한다. 상호 충돌을 통하여 변하는 객체변수는 속도와 좌표이므로, i 번째 강체구가 (i + 1) 부터 N 까지 순차적으로 충돌하는지 검사하고 이후에 속도와 좌표 값이 바뀌는지 판단한다. 그 바뀐 결과를 강체구 객체 변수에 새로 대입하게 하여 매 프레임마다 강체구의 위치변화를 새로 구현하면, 정해진 시간 간격을 따라 프레임이 전환되는 애니메이션으로 이상 기체의 움직임을 구현할 수 있다.
강체구 충돌을 이용한 시뮬레이션에서 활용해야 하는 주요한 변수로는 이상기체의 밀도를 나타내는 강체구의 수, 초기 범위, 초기 온도 (또는 속도), 애니메이션 구현을 위한 프레임 수, 화면 크기 등을 들 수 있다. 이러한 내용들은 텍스트 입력창과 버튼을 이용한 사용자 인터페이스로 구현
하여 필요시 실험자가 원하는 값을 입력할 수 있게 디자인 하였다 (Fig. 3).
2. 맥스웰 볼츠만 분포와 구역 나눔 계산
1) 맥스웰 볼츠만 분포 계산 및 구현
강체구 입자들은 매 화면 프레임이 바뀔 때마다 매 순간 속도가 변하기 때문에 입자들의 속도 분포는 특정한 시점 또는 프레임을 규정하여 계산하여야 한다. 이를 위하여 javascript에서 객체 배열로 정의된 강체구의 여러 속성 중 에서 속도 부분의 속성만을 뽑아서 특정 시점에서 새로운 배열에 할당하는 것이 방법을 채택한다. 이러한 코드는 다음과 같다.
if(frame == 100) {
var speed = Math.sqrt(ball.VX*ball.VX + ball.VY*ball.VY);
speedDist.push(speed);
}
speedDist[ ] 는 100번째 프레임이 될 때 전체 강체구의 속 도 성분만 추출해서 만든 새로운 배열로서, 이 배열을 속도 크기대로 재정렬하면 해당 프레임에서 속도의 최댓값과 최솟값을 구할 수 있다. 속도 분포도를 구하기 위한 구간 간격은 이러한 최댓값과 최소값의 차이를 구간 수로 나누어 결정한다. 그 다음, 각 강체구에 대하여 속력이 어느 구간에 해당하는지 판단하여 그 때마다 해당 구간의 빈도 배열 K[ ] 의 값을 1씩 증가시키면 그 구간에 해당되는 속력을 가진 강체구의 빈도를 구할 수 있다.
var Max = speedDist[speedDist.length-1];
var min = speedDist[0];
var xwidth = (Max-min)/20; // 속도 분포 구간 간격 설정 var K= [ ]; // 각 구간별 빈도 배열
for(var k=0; k<20;k++){K[k]=0;} // 빈도 배열 초기화 for (var n = 0;n<20;n++){
for(var i=0; i<speedDist.length; i++){
if(speedDist[i]>xwidth*n && speedDist[i]<xwidth*(n+1)){ K[n]+=1; } // 빈도 계산 }
}
Fig. 4. (Color online) Maxwell-Boltzmann distribution of ideal gas.
이렇게 계산된 분포를 화면에 구현하기 위해서는 스크린 좌표계의 구조를 고려하여 분포 그래프가 표현되도록 설 계해야 한다. 스크린 좌표계에서는 화면 아래로 갈수록 y 값이 증가하므로, 통상의 그래프 표현처럼 가장 아랫부분 의 빈도가 0이되고 빈도값이 커질수록 막대그래프가 위로 올라가기 위해서는 y의 최대값을 결정한 후 K[ ] 를 빼는 방법으로 막대 그래프의 좌표를 설정해야 한다.
var Y[ ] = ymax – k[ ]; //
속도 분포도의 막대 그래프 길이 설정
이러한 방법을 사용하면 Fig. 4와 같이 이상기체 입자들의 속도에 대한 맥스웰 볼츠만 분포를 그림으로 나타낼 수 있다.
2) 구역 나눔 계산
시뮬레이션에 도입하는 강체구의 개수가 늘어날수록 매 프레임마다 충돌에 의한 상호작용의 계산 시간이 늘어난다.
강체구의 수를 n이라 할 때, 1번 구부터 n번째 구까지 충돌 상호작용을 모두 판단하고 계산 처리하는 시간은 n2이상으 로 비례하여 증가한다. 이러한 계산처리 부담을 줄이기 위 해서는 전체 캔버스 구역을 일정한 N개의 지역으로 분할한 후, 각 구역 내에 있는 강체구끼리만 충돌 상호작용을 판단 처리하게 하는 방법이 유효하다. 이렇게 하면 전체적인 계 산 처리 용량이 단일 구역에 비하여 약 1/N 정도 줄어들게 되어 시뮬레이션의 속도를 그만큼 증가시킬 수 있다.
우선 구역별 계산을 위하여 좌표에 따른 구역의 위치를 나타내는 지표변수 idx를 강체구의 속성에 선언한다. 이후 강체구의 x의 좌표를 가로축 분할의 수 Nx로 나누어 정수의 몫을 취하면 0부터 (Nx-1) 까지 N개의 구역 번호에 각 공의 지표를 할당할 수 있다. 공의 y좌표를 세로축 분할의 수 Ny
Fig. 5. (Color online) The divisions of the screen for the seperated calculations.
로 나눈 후, 여기에 Nx를 곱하여 idx 값에 부과하면 모든 구역을 0부터 (N-1) 까지 일련번호로 부여할 수 있다.
ball.idx = Math.floor(ball.x / divX)
+ divNx * Math.floor(ball.y / divY);
이렇게 한 다음, 구역 번호와 개수를 포함한 새로운 2차원 배열 변수 nBalls[ ][ ] 를 설정하여, 매 프레임마다 각 공을 구역별로 할당하여 주면 항상 구역 번호가 같은 배열 내에 서만 충돌 상호작용을 계산하도록 설정할 수 있다 (Fig. 5).
III. 연구 결과
1. 충돌 구현 결과
이상기체 입자들을 좁은 구역에 속박시켜 놓으면 온도 조건에 따라 유동하면서 서로 충돌하는 상호작용을 거듭한 다. 따라서 이러한 이상기체의 거동을 강체구의 움직임으로 시뮬레이션하면 입자의 초기 위치와 온도 (또는 초기속도) 설정에 따른 확산 현상이나 매질 내의 브라운 운동을 관 찰할 수 있고, 특히 강체구를 좁은 공간에 모아 놓은 초기 조건에서 폭발 현상을 관찰하거나 서로 분리된 두 기체의 혼합 등을 관찰하는데 활용할 수 있다.
1) 브라운 운동
기체 입자들 중에서 특정한 한 입자를 추적하는 시뮬레 이션을 구현하면 다음과 같은 브라운 운동을 볼 수 있다. 이 상기체의 초기 온도를 동일하게 한 조건에서 기체 입자들의 평균 질량보다 30배 정도 무거운 부유 입자를 놓아두면 이 부유입자는 기체 입자들과 무작위 충돌을 겪으면서 브라운 운동을 하는 경로를 나타낸다. 이때 이상기체의 밀도가
Fig. 6. (Color online) The Brownian motions according to the particle numbers (N = 50, 100, 200, 500, 1000).
Fig. 7. (Color online) The Brownian motions according to the temperatures (Temperature factor t = 5, 10, 50, 100, 200).
Fig. 8. (Color online) The comparison of explosions of ideal gases of the same density according to the initial temper- ature factor (Captures were taken after 15 frame passed).
Fig. 9. (Color online) The comparison of explosions of ideal gases of the same initial temperature factor while the initial density varies (Captures were taken after 15 frames passed; N = 1 000, 2 000, 5 000, 10 000, 20 000).
증가할수록 부유입자의 평균 자유행로 (mean free path) 는 더 작아지고, 경로도 훨씬 불규칙해짐을 알 수 있다. 또한 밀도가 클수록 부유 입자는 좁은 구역에서 많은 충돌을 겪으 면서 속박되어, 결과적으로는 쉽게 다른 지역으로 이동하지 못한 채 좁은 영역에서만 부유할 확률이 높다는 것도 알 수 있다 (Fig. 6).
동일한 밀도에서 초기 온도를 다르게 한 경우의 브라운 운동의 경우에도 부유 입자의 유동 경로가 달라짐을 관찰할 수 있다. 초기 온도변수가 작은 상태에서는 기체 입자들의 유동이 느리고 에너지가 작아서 부유 입자의 평균 자유행로 가 충분히 크다. 그러나 초기 온도변수가 커질수록 기체와
부유 입자의 충돌이 늘어나고, 이에 따라서 부유 입자의 유동은 훨씬 더 불규칙한 경로를 나타내게 된다 (Fig. 7).
2) 확산 및 폭발 현상
가. 초기 온도에 따른 차이 (15프레임 후)
이상기체의 밀도를 일정하게 좁은 공간에 유지시킨 상태 에서 초기 온도에 따른 급격한 진공 중 확산 및 폭발 현상 차이를 비교할 수 있다. Fig. 8, 9를 보면 초기 상태에서 좁은 공간에 모여 있던 기체 입자들이 시간에 따라 주변 진공으로 확산되는데, 초기 온도 변수에 따라 달라짐을 볼
Fig. 10. (Color online) The Maxwell-Boltzmann distributions according to the masses at the same temperature (Mass factor m = 5, 20, 100, 500).
Fig. 11. (Color online) Maxwell-Boltzmann distributions according to the temperature at the same mass (Temperature factor t = 10, 20, 100, 1000).
Fig. 12. (Color online) The formation of bubbles by small light particles in a heavy medium (initial vs. later).
수 있다. 초기 온도 변수가 커질수록 같은 시간이 경과함에 따라 폭발적으로 확산함을 알 수 있다.
이때 입자들의 속도는 충돌 과정에서 서로 에너지를 교 환하면서 분배되는 과정을 거쳐서 맥스웰-볼츠만 분포를 이루게 된다. 이러한 과정을 100 프레임 진행된 후에 관찰한 결과는 Fig. 10과 같다. 입자의 질량을 크게 할수록 분포 의 형태는 이론이 예측하는 바와 같이 속도가 작은 영역에 치우치고, 질량이 작을수록 분포 영역이 넓어진다. 온도에 따른 맥스웰 볼츠만 분포의 비교는 Fig. 11과 같다. 온도가 높아질수록 입자의 속도는 고른 분포를 보이게 된다.
나. 고밀도 매질 내에서 기체 버블 형성 및 두 기체 간의 혼합
일반적으로 물과 같은 액체 매질은 인력에 의한 상호작용 으로 응집력이 존재하고, 이 힘이 매질 내에 존재하는 기체 에 의한 버블 형성을 돕는다. 그러나 본 시뮬레이션에서도 질량비가 매우 크게 차이나는 두 매질 입자계를 섞어 놓고, 상대적으로 질량이 작은 강체구의 밀도와 초기 온도를 크게
설정하면, 액체 매질 입자 간의 상호작용이 존재하지 않는 조건에서도 매질 내에서 기체 입자들이 폭발적으로 팽창 하면서 버블을 형성하는 것과 유사한 가상 실험을 일정한 시간 범위에서 구현할 수 있다 (Fig. 12). 한편 입자들의 질량차가 아주 크지 않은 두 기체를 분리시켜 놓은 초기 상 태에서 시간이 지나면 입자들의 자유 거동에 의하여 혼합이 일어나는 과정을 관찰할 수 있다 (Figs. 13, 14).
3) 시뮬레이션 알고리듬 개선 – 구역 나눔 계산 효과 시뮬레이션에 도입하는 강체구의 개수가 늘어날수록 증 가하는 계산 부담을 줄이기 위해서 전체 캔버스 구역을 일 정한 N개의 지역으로 분할한 후, 각 구역 내에 있는 강체구 끼리만 충돌 상호작용을 판단 처리하게 하는 알고리듬으로 시뮬레이션의 속도를 증가시킬 수 있다.
이러한 알고리듬의 효과를 알아보기 위하여 n = 5000 으로 설정한 후, 계산 구역의 수를 확대함에 따라 20프레임 까지 처리 시간을 비교한 결과는 Fig. 15와 같다. 구역의 수를 N = 1로 했을 때는 계산의 지연이 매우 커서 약 134 초 정도 걸렸지만, N = 400 정도로 확대한 후에는 20프레 임까지 처리 시간이 43초 정도로 줄어드는 것을 볼 수 있다.
확산이 진행되어 입자들이 스크린 전체로 퍼져나갈수록 구 역을 나누어 계산하는 효과는 더 확대되어, 훨씬 매끄러운 시뮬레이션을 관찰할 수 있다.
Fig. 13. (Color online) Mixing of particles according to the temperature level (Temperature factor t = 5, 10, 20, 50, 100).
Fig. 14. (Color online) Mixing of particles according to the mass ratio (Mass factor m = 4, 10, 20, 40, 100).
Fig. 15. (Color online) The comparisons of calculations (Division = 1, 16, 64, 400).
IV. 결론 및 시사점
HTML5 기반의 웹환경에서 javascript를 이용하여 N개 의 강체구 충돌에 의한 이상기체의 동역학적 과정을 시뮬레 이션으로 구현하는 것이 본 연구의 목적이다. 시뮬레이션은 위치, 속도, 색, 질량, 반지름 등을 주요한 속성으로 하는 강체구 객체를 만들어 이상기체 입자에 대응시킨 후, 각 강체들이 주어진 초기 온도 조건에서 자유롭게 유동하면서 상호작용하도록 구현하였다. 그 결과 입자들의 질량, 초기 온도 등의 조건에 따라서 브라운 운동, 확산, 폭발, 혼합 등 이상기체의 모형을 확대하여 설명할 수 있는 다양한 현상들을 시뮬레이션을 통해 관찰할 수 있었다. 이러한 시뮬레이션은 학생들이 관련 개념을 학습하는 것을 돕기 위한 교사의 교수학습 자료로 활용할 수도 있으며, 실제로 학생들이 스스로 이러한 시뮬레이션을 구현하게 함으로써 동역학의 주요 개념 뿐 아니라 열역학 관련 개념을 이해하는 데에도 도움을 줄 수 있을 것으로 예상된다. 향후 각 입자 간의 인력에 의한 상호작용을 고려한 시뮬레이션을 구현 하면, 이상기체 뿐 아니라 실제 기체의 거동을 고전적으로 이해하는 학습 자료로 활용할 수 있을 것으로 생각한다.
REFERENCES
[1] J. K. Lee, J. A. Barker and F. F. Abraham, J.
Chem. Phys. 58, 3166 (1973).
[2] M. L. Aiello-Nicosia and R. M. Sperandeo-Mineo, Eur. J. Phys. 6, 148 (1985).
[3] M. Hur, H. Jeon and S. Paik, J. Korean Chem. Soc.
52, 73 (2008).
[4] M. Y. Hur and S. Paik, J. Korean Chem. Soc. 53, 585 (2009).
[5] D. V. Schroeder, Am. J. Phys. 83, 210 (2015).
[6] D. I. Pullin, J. Comput. Phys. 34, 231 (1980).
[7] F. J. Alexander and A. L. Garcia, Comput. Phys.
11, 588 (1997).
[8] B. P. B. Hoomans, J. A. M. Kuipers, W. J. Briels and W. P. M. van Swaaij, Chem. Eng. Sci. 51(1), 99 (1996).
[9] W. Oh, New Phys.: Sae Mulli 65, 479 (2015).
[10] W. Oh, New Phys.: Sae Mulli 66, 1426 (2016).