Re: [請益] 暫態移動熱源
※ 引述《adiadiadi (笑一笑沒什麼)》之銘言:
: 各位好
: 最近在寫一個暫態二維的熱擴散方程式
: 小弟才疏學淺,在移動熱源的地方一直卡住
: 這熱源由雷射加熱(加熱寬度s)
: 每隔時間 tou 會在下一個間隔landa的位置加熱一次
^^^^^^^^^^^^^^^^^^^^^
這句話的意思是指,第二個tau加熱源位置與第一個tau加熱源位置相差lambda ??
換句話說,加熱源寬度為s的話
time < tau,加熱源位置是x=0~s
tau < time < 2*tau ,加熱源位置是x=s+lambda~s+lambda+s
2*tau < time < 3*tau ,加熱源位置是x=s+lambda+s+lambda~s+lambda+s+lambda+s
依此類推...
你的意思是這樣嗎?
如果只是要應付作業,我想應該都是用等大小的結構性網格
那麼最簡單的做法,修改一下上篇版友的CODE就好:
若dx是x方向上的網格大小
m1及m2分別是s與lambda佔據的網格數量,即m1=INT(s/dx), m2=INT(lambda/dx) ,
而dt是time step的話,令m3為tau佔據的dt數量,即m3=INT(tau/dt) ,
m1、m2、m3皆為整數資料型態
(我想應該很少人會設計dx無法整除s與lambda 和 dt無法整除tau吧@@)
DO t=1,Nstep
q_dot=0
N=t/m3 !注意t跟m3都是整數資料型態
q_dot( N*(m1+m2)+1 : N*(m1+m2)+m1 )=const
.
.
後面續接PDE SOLVER
.
.
ENDDO
如果我沒理解錯的話,應該這樣就可以了,當然其實是還有一些改良空間的
既然剛學FORTRAN,那要注意m1=s/dx、m2=lambda/dx、m3=tau/dt 這3個式子
因為這是浮點數運算完後 要轉換成整數型態,
FORTRAN是用無條件捨去,小心浮點數運算造成的誤差
以上
其實這跟FORTRAN真的是沒什麼關係....
但是數值方法跟科學計算好像PTT上也沒特定的討論版@@
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.218.94
推
04/16 09:11, , 1F
04/16 09:11, 1F
→
04/16 09:11, , 2F
04/16 09:11, 2F
討論串 (同標題文章)
Fortran 近期熱門文章
PTT數位生活區 即時熱門文章