看板 Fortran 關於我們 聯絡資訊
: http://imgur.com/TxeHaFC : : 這是一維的汙染物濃度擴散方程式 : u是速度 c是濃度 : E是擴散係數(延散係數) : P是衰減係數 : : : 我用台灣某條河川 做實地測驗、與跑程式模擬兩個結果 : 實地測驗得到的曲線 : 就是高斯分布那一種型態(從0→到濃度最高點→到終點濃度衰退為0) : : : 跑程式的話 : 依照各參數輸入 得到的結果卻是(0→濃度最高點→到終點仍然濃度最高點 沒衰退衰減過) : : → wohtp: 有圖嗎?你的初始條件和邊界條件是什麼? 10/10 10:36 : → wohtp: 終點是時間上的終點嗎?多遠? 10/10 10:39 您好 初始條件 我是假設開始的釋放點(0公尺處) 濃度為100ppb 邊界條件 我假設終點站是N 又C(N-1)=C(N+1) 所以濃度會一直無法下降 後來我改成C(N)=0 (距離是 0M~1600M) (時間設定是0分鐘~160分鐘) 但是 也是到後面快終點的時候 濃度才會降下來 我想得到的圖形是類似高斯分布這樣的 https://imgur.com/w11jVaI 但我實際得到的結果是https://imgur.com/vZSSWeh =.= 我想做的是 時變的系統 濃度隨時間變化的 不過現在卡關 我知道時不變系統怎麼做....不知道時變系統怎麼做 求高手幫忙解惑 薄酬2000P CC(I)=CC(I)+E*DT*(CC(I+1)-2*CC(I)+CC(I-1))/DX/DX-& U*DT*(CC(I+1)-CC(I-1))/2./DX-& DE*DT*CC(I) CC(N)=0 我的時不變系統是這樣寫 如果改成時變..我還在想要如何改 : → Vulpix: 聽起來除了沒衰退有點詭異外,一段時間後濃度最高點位置不 10/10 20:20 : → Vulpix: 變,這件事不是什麼大問題啊。當然視乎你的IC、BC、t。 10/10 20:22 : → wohtp: 我本來想說是邊界條件沒設對,擴散到最旁邊又被擋回來之類 10/11 10:21 : → wohtp: 但是發現他還有用手放進去衰減 10/11 10:22 : → wohtp: 最後沒有變成零就是數值做錯了,沒話好說 10/11 10:23 : → saltlake: 確定參數輸入正確? 跑的程式誰寫的? 10/11 11:17 ※ 編輯: Ecampus (125.230.93.84), 10/16/2017 00:59:26
perceval: 1.時變系統每次迭代要先記錄新的值,等所有的點都跑過了 10/16 05:32
perceval: 才更新 CC_new(I) = CC(I)+.... 10/16 05:32
perceval: 2.我會建議你先設計一個簡單的測試問題來檢查程式是否 10/16 05:33
perceval: 正確。可以先省略壓力項,找exact solution 測試 10/16 05:36
perceval: 比方說 https://tinyurl.com/y8ol3m8p 10/16 05:37
perceval: 另外你數值PDE(或是計算相關)背景不夠,建議修課或是找 10/16 05:39
perceval: 書好好念(比方說你dt要取多少才穩定) 10/16 05:40
Ecampus: 我試一下大大說的時變寫法看看 唉 當初沒好好學基本程式= 10/16 17:10
Ecampus: =.=導致現在的苦果 10/16 17:11
Ecampus: DT取0.1應該OK 10/17 00:32
roythepigmy: 大概看了一下你的原始碼,你的程式本來就是用來時變 10/20 00:38
roythepigmy: 系統的,似乎是一維連續釋放模式,因為C(1)程式執行 10/20 00:42
roythepigmy: 執行過程沒有變動過(是CC(1),筆誤sorry) 10/20 00:43
roythepigmy: 不過連續釋放模式CC(1)應該要是濃度最高的,你跑出 10/20 01:22
roythepigmy: 你跑出來的模型很奇怪,可能你有變動程式碼過的關係 10/20 01:23
roythepigmy: https://i.imgur.com/F2EvkVn.jpg 連續釋放模型的 10/20 01:30
roythepigmy: 污染峰應該會像圖1一樣隨時間變化,中間確實會降不來 10/20 01:31
roythepigmy: 你模型尺度和釋放時間沒配合好的話,OUTPUT數據繪製 10/20 01:32
roythepigmy: 起來會感覺怪怪的,如圖2,你如果用較小的模型去看 10/20 01:33
roythepigmy: 已經發展到T3的污染峰的話,看起來像是一條直線, 10/20 01:34
roythepigmy: 但如果只看發展到T2的污染峰,看起來就很親切了。 10/20 01:34
roythepigmy: 同理,如果你用如圖3的較大尺度觀察T3污染峰的話, 10/20 01:36
roythepigmy: 圖形似乎也正常多了。 10/20 01:36
roythepigmy: 建議以未修改的原始程式,先隨意調整END_X、TT, 10/20 01:43
roythepigmy: 甚至是速度項的UU(1)、UU(2),來試試看是否可產生類 10/20 01:43
roythepigmy: 似的圖形。 10/20 01:44
roythepigmy: 但調END_X時要注意3個Xstop的配合。 10/20 01:45
roythepigmy: 另外你把CC(N)設為0的話,那點會類似1個很強的sink, 10/20 01:49
roythepigmy: 所以你跑的圖形可看到CC(N)前幾點濃度被硬拉下來 10/20 02:01
roythepigmy: 又因為是1維模型,質量繞不過去那點,他表現得會像是 10/20 02:05
roythepigmy: 一個污染物抽出量一直在變化的井,目的是讓那點的 10/20 02:07
roythepigmy: 污染物質量(濃度)抽為0。 10/20 02:08
Ecampus: 好的 感謝Q_Q我來調整一下 10/23 00:19