본문 바로가기

夢想(얼토당토않은상상)

2004년 열전달 팀프로젝트 - 신문지 effect solver


2004년 열전달 수업에서 3인 1조로 프로젝트를 수행해야했다.


자유주제로, 열전달 현상에 대해 계산하는 프로그램을 만들기만 하면 됐는데,


우리조는 평범한 건 싫다~! 뭔가 기발한 아이디어가 없을까?.......라며 회의를 하다가


다른 조들이 대체로 기계시스템의 열전달 현상에 대해 프로젝트를 진행하는 것을 보고


'사람'을 가지고 해보자! 라는 결론을 내렸다.



그래서 나온게, 노숙자들이 신문지로 겨울을 나는 전략에 대해 열전달 관점에서의 접근이었다. 


이름하여 신문지 effect solver!


일단, 체온이 298 K 이하로 내려가면 사망에 이르는 것으로 설정하고 과연 몇장의 신문지를 덮고 자야 생존할 수 있는지에 대해


고찰해보기로 했다.




코드는 전부다 View 클래스에 때려박았다. -0-


계산에 사용된 열전달 식의 코드는 대충 이런형태이다....



double CHeatTransferProjView::GetH_0_(double m_temp)

{

double m_extra = 0;

m_extra = GetK_val(m_temp) * (0.664) * pow((_FLUID_VEL * 0.4 / GetNu_val(m_temp)) , 0.5) * pow(_PR_VAL , 1/3 ) / _WIDTH;

//m_extra = 0.0261 * 0.664 * pow((0.4 / (14.77 * pow(10, -6))),0.5) * pow(0.69, 1/3) / 0.4;

return m_extra;

}


double CHeatTransferProjView::GetH_1_(double m_temp,double m_body_temp)

{

double m_extra = 0;

//m_extra = (GetK_val(m_temp) / _AIR_GAP) * ( 0.68 + 0.67* pow(        ( (1/m_temp)*(m_body_temp-m_temp) * 9.81 * pow(_AIR_GAP,3) / pow(GetNu_val(m_temp),2)  ) * _PR_VAL * pow( 1+  pow(0.492/_PR_VAL , 9/16 ) , -16/9)       , 0.25  ) );

m_extra = (GetK_val(m_temp) / _AIR_GAP) * (0.68 + 0.67 * pow (       ( (m_body_temp-m_temp) * 9.81 * pow(_AIR_GAP , 3) / (m_temp * pow( GetNu_val(m_temp) , 2 ) ) ) * _PR_VAL * pow( 1 + pow( 0.492 / _PR_VAL , 9/16) , -16/9 )    , 0.25    ) );

return m_extra;


}


double CHeatTransferProjView::GetK_val(double m_temp)

{

double m_extra = 0;

m_extra = 0.0249 + (m_temp - 270) * (0.0261 - 0.0249) / 20;

return m_extra;

}


double CHeatTransferProjView::GetNu_val(double m_temp)

{

double m_extra = 0;

m_extra = (13.06 * pow(10.0, -6)) + (m_temp - 270) * ((14.77 - 13.06) * pow(10.0, -6)) / 20 ;

return m_extra;

}


double CHeatTransferProjView::Get_Resist(double m_h0, double m_h1)

{

double m_extra = 0;

m_extra = (1 / ( m_h0 * _AREA_0 ) ) + ( ( _THICK_L / (_COND_K * _AREA_0 ) ) + (1 / (m_h1 * _AREA_1) ) ) * m_paper_num ;

return m_extra;

}


double CHeatTransferProjView::Get_Q_(double resist, double delta_temp)

{

double m_extra = 0;

m_extra = delta_temp / resist;

return m_extra;

}


분명히 프로젝트 할 때는 저게 무슨 의미였는지 다 알았을텐데

지금 보니 뭐가 뭔지 하나도 모르겠다.

역시 인간은 망각의 동물이다.





프로그램 첫 화면 로고의 모델은....공개하지 않겠습니다. (형님~! 잘 지내고 계신지...)





다이얼로그를 열면 몇가지 설정이 가능하다. 덮고 잘 신문지 장수, 외부온도 등.






먼저 신문지 1장만 덮고, 영하 3도의 추위속에서 6시간 동안 주무시면......



죽습니다. (=0=)






신문지를 2장으로 늘려볼까요?



네~ 아슬아슬하게 생존!


하지만, 보통 8시간 정도 잔다고 생각했을 때, 신문지 최소 3장은 있어야 겨울나기가 가능하다는 결론을 내릴 수 있었습니다.






프로젝트 마감일 전날에 인터페이스를 짜느라 생긴건 허접하긴 한데, 발표 당일 저 '凍死' 뜨는거에 교수님과 학생들 모두 웃었던 기억이 난다.


엉뚱한 생각 하면서 살았던 그 시절이 그립기도 하고....^^


저게 무려 10년전 일이라니. 경악할 노릇이다. 허허허....