(구)boymin
열역학 과정 시뮬레이터 본문
지난번 지2의 중력장 프로그램 포스팅에서 잠깐 언급했듯이,
3학년이 되면서 물2와 지2를 고르게 되었다.
물2를 처음 골라 수업을 들을 때 들었던 생각은,
'아, 괜히 골랐다...f-word'였다.
물1에서의 공식들은 대부분
'특정 조건'을 걸고 제한된 범위에서 추려낸 공식의 느낌 이었다면,
물2에서는 이런 특정 조건들을 하나하나 풀어가며 공식을 점차 넓혀가는 느낌이었다.
그러다보니 이해해야할 내용과 공식들은 기하급수적으로 늘어갔고,
대부분의 아이들이 그러했듯 나도 물2를 거의 놓다싶이 하였다.
(그치만 애들이 다 점수가 낮아서 조금밖에 공부를 안했음에도 2등급을 받았다...ㅋ)
특히나 열역학 부분은,
물1 끝부분에 나왔었는데,
2학년 당시 기말고사 범위 밖이라 아예 공부를 안했었다.
그래서 다른 부분들은 물1에서 어느정도 했었던 것들이라 조금이나마 이해가 갔었는데,
열역학부분은 아예 새로하다보니 하나도 이해를 못한채 수업이 지나갔었다.
그래서, 1학기 2차 지필평가를 공부할 때,
전기파트보다는 열역학 부분을 위주로 공부하게 되었다.
전기파트는 물1에서도 쉽게 풀었던 부분이라 어느정도 자신이 있었기 때문이다.
(그리곤 전기파트는 다틀리고 열역학부분만 맞췄다고 한다...)
열역학을 공부하면서,
열역학의 대부분의 내용 및 문제들이
P*V = n*R*T
Q = U + W
U = 3/2*n*R*T
W = P*V
등의 공식들을 위주로 뻗어나가고 있음을 알게 되었고,
저 공식들만 제대로 알고 있어도 많은 문제들을 풀 수 있었다.
그러면서,
실제로 겉으로 보기엔 되게 어려워보여도,
조금만 공부하면 그리 어렵지않고,
오히려 한 번만 이해하면 손쉽게 다가갈 수 있는 개념이었다는 것을 느끼게 되었다.
나도 그러했듯이 대개 많은 아이들이 물2를 포기한 이유는
쓱 보기엔 어려워보이는 공식과 개념들이 많아 시작하기도 전에 선부터 그어버려서라고 생각된다.
영어 말고는 눈에 보이는 것도 없는 모호한 공식들이,
한 개념에서만 서너 개씩 튀어나와 겁을 주는 것이 원인이라고 생각했다.
그래서 나는 열역학 공식 및 개념들이 작용하는 과정을
실제로 눈에 보이는 환경에서 그 값들을 조절해보며 익히면
훨씬 쉽고 재미있게 공부하고 다가갈 수 있을 것이라 생각하였다.
그래서 만들게 된 프로그램이 이 열역학 과정 시뮬레이터다. (이름만 쓸데없이 거창하다...)
(두둥)
프로그램은 늘 그랬듯이, 간단하게 눈에 보이는 환경을 제작할 수 있는 GameMakerStudio 2로 제작하였다.
언젠가 엔진의 도움 없이 C++과 윈도우API로 프로그램을 제작해보는게 현재의 목표이다.
간단하게 설명을 하면,
우측의 버튼 3개는 순서대로 압력, 부피, 온도를 고정시킬 수 있는 버튼이다.
이는 열역학과정의 등압과정, 등적과정, 그리고 등온과정을 시뮬레이션해줄 수 있도록 해준다.
세 버튼 중 어느 하나라도 눌려있어야 시뮬레이션을 진행할 수 있으며,
세 버튼 중에는 하나의 버튼만 누를 수 있다. 두 번째 버튼을 누르는 순간 이전의 버튼이 취소된다.
좌측 하단의 버튼들은 순서대로
현재 이상 기체의 압력, 부피, 그리고 온도 값을 보여주며,
해당 값이 우측 버튼으로 고정되어있지 않다면 상 하의 조절버튼으로 값을 조절할 수 있다.
이 때, 한 값이 바뀌면 PV = nRT 공식에 따라 다른 값도 바뀌게 된다.
좌측 상단의 값들은 순서대로
압력 고정 여부
부피 고정 여부
온도 고정 여부
압력 값
부피 값
온도 값
Q 값
U 값
W 값
을 나타낸다.
가운데의 사각형은 이상 기체의 모습을 시각적으로 나타낸다.
부피가 커질 수록 사각형의 크기가 커지고,
압력에 따라 사각형 테두리의 alpha(투명도)값이,
온도에 따라 사각형 내부 붉은색의 alpha(투명도)값이 결정된다.
이는 어려워보이는 공식들을 실제로 한 눈에 알아볼 수 있게 하기 위한 방법이었다.
가운데의 빨간색 공은 이상 기체 분자를 나타낸다.
기체 분자는 화면을 떠다니게 되는데, 이는 속도를 나타낸다.
붉은 정도는 기체의 운동에너지를 나타낸다.
속도는 온도, 압력에 비례하고 부피에 반비례하게 나타나게 되며,
운동에너지는 오로지 온도에만 비례하게 나타난다.
모든 수치들이 실제의 공식과 항상 완벽하게 정확하게 나타나지는 않지만,
최대한 많은 경우에서 실제와 비슷하게 동작하도록 노력했고,
프로그램을 다뤄보는 과정에서 열역학 과정과 이상기체 분자의 운동론을 쉽게 접근할 수 있도록
최대한 시각 정보에서 다양한 정보를 얻을 수 있게 하여
자연스럽게 공식들에 다가갈 수 있도록 노력하였다.
계속해서 교과과목과 프로그래밍을 연계시키는 과정을 해보고 있는데,
처음 시작할 때에는
단지 나 자신만의 공부에 대한 흥미를 불러일으키고자 내가 좋아하는 프로그래밍과 연계시킨 것이었는데,
점차 다른 사람들에게 도움이 되기 위한 고민과 생각이 프로그램에 녹아드는 것 같다.
어쩌면 나는,
많은 사람들에게 도움이 되는 프로그래머가 되고 싶은 것일지도 모르겠다.
프로그램 파일이다.
너무 급하게 만들다보니 여러 수치들이 조금 불편할 수 있다.
가령, 이상기체의 투명도 값이 너무 안바뀐다던가, 하는 부분들 말이다.
'Programming > Program' 카테고리의 다른 글
영어 단어장 프로그램 (0) | 2018.07.28 |
---|---|
타원 그리기 프로그램 (1) | 2018.07.27 |
유전 시뮬레이션 2.0 [Simulation Of Heredity] (0) | 2018.03.15 |
유전 시뮬레이션 (Simulation of Heredity) (0) | 2018.03.14 |