生物熱仿真(3):由一維到三維壶栋,由一般到特殊

前言

如題,本章主要準(zhǔn)備講解的是:基于蒙特卡洛(MC)和pennes模型的三維生物熱傳導(dǎo)的具體理論原理和實現(xiàn)普监。預(yù)計這章寫完可以開始寫基于CUDA的GPU運算加速(大概)贵试。

附上前文鏈接:

生物熱仿真(1):無生命材料的熱傳導(dǎo)簡析

生物熱仿真(2):蒙特卡洛一維仿真

理論

從傅里葉到pennes

生物熱仿真(1):無生命材料的熱傳導(dǎo)簡析中提到的一維傅里葉熱傳導(dǎo)經(jīng)典公式如下:

\frac{\partial T}{\partial t}=\alpha \frac{\partial^{2} T}{\partial x^{2}} \tag{1}

(1)中假設(shè)了\alpha是均勻的琉兜,將此式拓展到三維可得到:

\frac{\partial T}{\partial t}=\alpha \nabla^2 T \tag{2}

其中有\alpha = k/\rho c,并且\alpha不一定均勻毙玻,所以上式也可寫為:

\rho c \frac {\partial T}{\partial t}=\nabla (k \nabla T) \tag{2*}

為式(2^*)添加血液(blood)傳熱項Q_b代謝(metabolism)產(chǎn)熱項Q_m豌蟋,得到pennes模型[1]的傳熱式:

\rho c \frac{\partial T}{\partial t}=\nabla (k \nabla T) + Q_b + Q_m \tag{3}

pennes模型屬于生物傳熱的最經(jīng)典模型之一,在許多相關(guān)研究中都有用到桑滩,例如低溫外科手術(shù)方面的Lisa X[2]梧疲,腫瘤加熱治療方面的李和杰[3],在微波溫?zé)嶂委煼矫娴?em>Thamire[4]等人运准,均使用pennes模型作為傳熱仿真的理論基礎(chǔ)幌氮。

pennes模型具體說明

在pennes模型中,有:
Q_{\mathrm胁澳}=W_{\mathrm该互} C_{p, \mathrm}\left(T_{\mathrm{a}}-T\right), \tag{4}
其中W_{\mathrm韭畸}為體積血液灌注率(kg/m^{3} \cdot s)宇智,對于此參數(shù)的選擇尚無特別好的結(jié)論;C_{p, \mathrm陆盘}為血液比熱容普筹;T_{\mathrm{a}}為動脈血液溫度,一般可設(shè)為體核溫度(37度)隘马。

Q_{m}=\left\{\begin{array}{ll}4,200 \mathrm{W} / \mathrm{m}^{3}, & x, y, z \notin \Omega_{t} \\ 42,000 \mathrm{W} / \mathrm{m}^{3}, & x, y, z \in \Omega_{t}\end{array}\right. \tag{5}

Q_m的計算依賴于具體的加熱方式太防,對于RF加熱常使用比吸收率(SAR)進(jìn)行計算;對于單純的傳導(dǎo)式加熱則可使用固定的代謝值進(jìn)行處理,例如Deng[5]使用式(5)作為膚下高度血管化腫瘤的代謝值酸员。

三維均勻熱傳導(dǎo)率物體的顯式差分迭代

將公式(3)中的溫度場設(shè)定為三維溫度場蜒车,并認(rèn)為導(dǎo)熱率不變,可得到如下形式的公式:

\frac{\partial T}{\partial t} = \alpha (\frac{\partial^{2} T}{\partial x^{2}} + \frac{\partial^{2} T}{\partial y^{2}} + \frac{\partial^{2} T}{\partial z^{2}}) + \frac{Q_b}{\rho c } + \frac{Q_m}{\rho c }, \tag{6}

根據(jù)公式(4)(5)幔嗦,上式可化為:
\frac{\partial T}{\partial t}= \alpha \nabla ^2 T+ \frac{W_{\mathrm酿愧} C_{p, \mathrm}}{\rho c } \left(T_{\mathrm{a}}-T\right) + \frac{Q_m}{\rho c } , \tag{7}

簡單整理邀泉,將常數(shù)項移到最右邊:

\frac{\partial T}{\partial t}= \alpha (\frac {\partial ^{2} T}{\partial x^{2}} + \frac{\partial^{2} T}{\partial y^{2}} + \frac{\partial^{2} T}{\partial z^{2}}) -\frac{W_{\mathrm嬉挡} C_{p, \mathrm}}{\rho c }T + Q, \tag{7'}

其中有 Q = \frac{Q_m}{\rho c } + \frac{W_{\mathrm汇恤} C_{p, \mathrm庞钢}}{\rho c }T_{\mathrm{a}},將上式如生物熱仿真(1):無生命材料的熱傳導(dǎo)簡析中進(jìn)行一樣的處理因谎,時間采用前向差分基括,空間采用中間差分,三維空間步長一致(\Delta x = \Delta y = \Delta z)财岔,并對其中無導(dǎo)數(shù)的T=T(x,y,z,t)使用
T = \beta T(x_{i},y_{j},z_{k}, t_{s+1}) + (1-\beta) T(x_{i},y_{j},z_{k}, t_{s}) \tag{8}
進(jìn)行松弛风皿,則對第s個時刻河爹,坐標(biāo)為(i,j,k)的位置的溫度迭代式為:
\begin{array}{c} \frac{T\left(x_{i}, y_{j}, z_{k}, t_{s+1}\right)-T\left(x_{i}, y_{j}, z_{k}, t_{s}\right)}{\Delta t}= \\ \frac{\alpha}{(\Delta x)^{2}}\left[T\left(x_{i+1}, y_{j}, z_{k}, t_{s}\right)+T\left(x_{i-1}, y_{j}, z_{k}, t_{s}\right)-2 T\left(x_{i}, y_{j}, z_{k}, t_{s}\right)\right] \\ +\frac{\alpha}{(\Delta x)^{2}}\left[T\left(x_{i}, y_{j+1}, z_{k}, t_{s}\right)+T\left(x_{i}, y_{j-1}, z_{k}, t_{s}\right)-2 T\left(x_{i}, y_{j}, z_{k}, t_{s}\right)\right] \\ +\frac{\alpha}{(\Delta x)^{2}}\left[T\left(x_{i}, y_{j}, z_{k+1}, t_{s}\right)+T\left(x_{i-1}, y_{j}, z_{k-1}, t_{s}\right)-2 T\left(x_{i}, y_{j}, z_{k}, t_{s}\right)\right] \\ -\frac{W_{\mathrm} C_{p, \mathrm桐款}}{\rho c}\left[\beta T\left(x_{i}, y_{j}, z_{k}, t_{s+1}\right)+(1-\beta) T\left(x_{i}, y_{j}, z_{k}, t_{s}\right)\right]+Q \end{array} \tag{9}
為了簡化上式咸这,使用如下定義:
X = (x_{i},y_{j},z_{k}), X_{1}^{r} = (x_{i+r},y_{j},z_{k}),\\ X_{2}^{r} = (x_{i},y_{j+r},z_{k}), X_{3}^{r} = (x_{i},y_{j},z_{k+r}), \tag{9.1}

F = \frac {\alpha \Delta t}{(\Delta x)^2}, W = \frac {W_{\mathrm} C_{p, \mathrm鲁僚}}{\rho c } \tag{9.2}

然后可得簡化式(m為維度炊苫,現(xiàn)在m=3):
T(X, t_{s+1})-T(X, t_{s}) = F\sum _{i=1}^{m}{ [ T(X_{i}^{+1},t_s)+T(X_{i}^{-1},t_s)-2T(X,t_s) ]}\\ -W\Delta t[\beta T(X,t_{s+1})+(1-\beta)T(X,t_{s})] + Q\Delta t \tag{10}
移項可得:
\begin {array}{l} (1+W \beta \Delta t) T\left(X, t_{s+1}\right)=[1-W(1-\beta) \Delta t-2 m F] T\left(X, t_{s}\right) \\ \quad+F \sum_{i=1}^{m}\left[T\left(X_{i}^{+1}, t_{s}\right)+T\left(X_{i}^{-1}, t_{s}\right)\right]+Q \Delta t \end {array} \tag{11}
最后可得迭代式:
\begin{array}{c} T\left(X, t_{s+1}\right)=\frac{1-W(1-\beta) \Delta t-2 m F}{1+W \beta \Delta t} T\left(X, t_{s}\right) \\ +\frac{F}{1+W \beta \Delta t} \sum_{i=1}^{m}\left[T\left(X_{i}^{+1}, t_{s}\right)+T\left(X_{i}^{-1}, t_{s}\right)\right]+\frac{Q \Delta t}{1+W \beta \Delta t} \end{array} \tag{12}
為了使所有的T(X,t)項的系數(shù)之和為1,從而符合MC方式的要求冰沙,對右邊提取公因式侨艾,首先設(shè) F_{1} = 1-W(1-\beta)\Delta t, F_{2}=1+W\beta \Delta t,可將上式化為:

\begin{array}{c} T\left(X, t_{s+1}\right)=\frac{F_{1}}{F_{2}}\left[\frac{F_{1}-2 m F}{F_{1}} T\left(X, t_{s}\right)\right. \\ \left.+\frac{F}{F_{1}} \sum_{i=1}^{m} T\left(X_{i}^{+1}, t_{s}\right)+\frac{F}{F_{1}} \sum_{i=1}^{m} T\left(X_{i}^{-1}, t_{s}\right)+\frac{Q \Delta t}{F_{1}}\right] \end{array} \tag{13}

從式(13)中可以看到拓挥,三維的顯式差分方程和一維差別不算很大唠梨,由s時刻的該位置和周圍位置的溫度,可以計算s+1時刻的溫度侥啤;另外当叭,基于pennes模型,多考慮了一項Q來代表代謝產(chǎn)熱和血流散熱的影響盖灸,更加適用于生物傳熱場景蚁鳖。

當(dāng)令W=0 時,有F_1=F_2, Q=0赁炎,上式會回歸為工程傳熱的三維公式醉箕,可見pennes模型和傳統(tǒng)模型是完全兼容的。

顯式差分的問題

使用MC方式計算式(13)徙垫,首先需要計算概率讥裤,各個位置的概率如下:

  • 原位置:1-\frac{6F}{F_1}
  • 鄰居位置:\frac{F}{F_1}

松弛因子為\beta=0.5,熱擴散率\alpha=0.432姻报,則有:

  • W = \frac{W_{\mathrm己英} C_{p, \mathrm}}{\rho c } = 0.0005 \mathrm{W} / \mathrm{m}^{3} \cdot K
  • F_1=1-0.0005\times0.5\times\Delta t=1-0.00025\Delta t
  • F=\frac{\alpha \Delta t}{(\Delta x)^2}=0.432\Delta t/(\Delta x)^2

為了維持差分穩(wěn)定性吴旋,需要滿足0 < \frac{F}{F_1} < \frac{1}{6}损肛,由于\Delta t常常小于1,所以只需要滿足F_1-6F>0即可荣瑟。

所以穩(wěn)定性條件為:[W(1-\beta) + \frac{6\alpha}{(\Delta x)^2}] \Delta t < 1荧关, 當(dāng)\Delta x較小時,\Delta t會被次方級的限制至一個非常小的空間褂傀。

例如,若我們使用0.1mm=0.0001m的空間步長加勤,則有
\Delta t < \frac{(\Delta x)^2}{2.592+0.00025(\Delta x)^2} \approx 3.8580e{-9}

隱式差分的迭代式

由于顯式已經(jīng)推導(dǎo)過仙辟,推導(dǎo)過程類似同波,迭代式為:
\begin{array}{l} T\left(X, t_{s+1}\right)=\frac{1-W(1-\beta) \Delta t}{1+2 m F+W \beta \Delta t} T\left(X, t_{s}\right)+\frac{Q \Delta t}{1+2 m F+W \beta \Delta t} \\ \quad+\frac{F}{1+2 m F+W \beta \Delta t} \sum_{i=1}^{m}\left[T\left(X_{i}^{+1}, t_{s+1}\right)+T\left(X_{i}^{-1}, t_{s+1}\right)\right] \end{array} \tag{12*}
然而,雖然隱式差分能克服一定的穩(wěn)定性問題叠国,但由于本身需要聯(lián)立求解未檩,對于多線程加速十分不友好。

P.S. 補充一個穩(wěn)定性分析

只要所有系數(shù)都大于0即可滿足MC方法下的穩(wěn)定性粟焊,即

  • 1-W(1-\beta)\Delta t > 0
  • 1+2mF+W\beta \Delta t > 0\beta >0, W>0時,恒滿足
  • F = \frac{\alpha \Delta t}{(\Delta x)^2} > 0 恒滿足

所以穩(wěn)定性條件可化為\Delta t < \frac{1}{W(1-\beta)}

\beta = 0.5, W=0.0005時冤狡,有\Delta t < 4000

可見由于不依賴于\Delta x\Delta t的取值空間得到了很大的改善

基于蒙特卡洛的求解思路-隨機游走

在調(diào)研了許多論文之后项棠,發(fā)現(xiàn)基于MC思路求解的方法往往基于隨機游走(Random Walk)進(jìn)行實現(xiàn)悲雳,其核心思路在于基于統(tǒng)計方法獲取內(nèi)部點和邊界點/初始點的溫度關(guān)系,從而實現(xiàn):邊界點迭代->內(nèi)部點跟隨進(jìn)行變化 這樣的過程香追。優(yōu)勢在于便于并行計算合瓢,計算量相對小等[6]但是透典,其概率的計算仍然基于有限差分晴楔,所以仍然需要滿足有限差分的穩(wěn)定性條件。

代碼實現(xiàn)

隨機游走算法描述

為了提高差分穩(wěn)定性峭咒,此處使用隱式形式的差分税弃。

//計算(x,y,z)位置, n次隨機游走的結(jié)果
double MonteCarlo::computeTempWithRandomWalk(int x, int y, int z, int n)
{
    // 計算各個方向的概率
    std::vector<double> probs = this->computeProbs(x,y,z);
    std::vector<double> interval = GlobalFun::getProbsInterval(probs);
    std::vector<std::vector<int>> neighs;
    GlobalFun::getNeighPos({x,y,z}, neighs, this->shape->getSize().toVectorInt());

    // 開始迭代
    int N = (n < 1) ? 1 : n;
    double result = 0.0;
    std::vector<int> cur_pos = {x, y, z};
    srand((unsigned)time(NULL));

    //判斷狀態(tài),流體不更新溫度
    if(this->shape->getState(x,y,z)==ShapeState::FLUENT){
        result = this->temp_3d[x][y][z];
    } else {
        for (int i = 0; i < N; ++i) {
            for (int s=0; s<this->curr_iterate_time; ++s) { 
                double rand_prob = rand() / double(RAND_MAX);
                for(int neigh_idx=0; neigh_idx<neighs.size(); ++neigh_idx){
                    if(rand_prob>=interval[neigh_idx] && rand_prob<=interval[neigh_idx+1]){
                        cur_pos = neighs[neigh_idx];
                    }
                }
            }
            result += this->temp_3d[cur_pos[0]][cur_pos[1]][cur_pos[2]];        
        }
        result /= N;
        //判斷鄰居凑队,如果為流體的鄰居则果,則使用牛頓冷卻定律先進(jìn)行低精度仿真
        for(std::vector<int> neigh : neighs){
            if(this->shape->getState(neigh[0],neigh[1],neigh[2])==ShapeState::FLUENT){
                double delta_temp = this->temp_3d[x][y][z] - this->fluent_value;
                if(delta_temp > 0.0){
                    result -= this->k*delta_temp*this->step;
                }
            }
        }
    }
    
    return result;
}

引用


  1. 劉 靜,王存誠顽决,等.生物傳熱學(xué)[M].北京:科學(xué)出版社.1997 ?

  2. Xu LX短条,Zhang At.,Sandison GA才菠,et al.A microscale model for prediction of the breast cancer cell damage during cryosurgery[C].ASME Summer Heat Transfer Conference茸时,July 20—23,2003 ?

  3. 李和杰赋访,劉 靜可都,張學(xué)學(xué),等.激光汽化活體生物組織的傳熱過程分析[J].航天醫(yī)學(xué)與醫(yī)學(xué)工程蚓耽,2002渠牲,1(2):103—107. ?

  4. Thamire CS.Bellary S.A numerical,study of microwave thermotherapy for benign prostatic hyperplasia [C]. ASME Summer Heat Transfer Co nference,July 20—23步悠,2003 ?

  5. Deng Z, Liu J. MONTE CARLO METHOD TO SOLVE MULTIDIMENSIONAL BIOHEAT TRANSFER PROBLEM[J]. Numerical Heat Transfer Part B-fundamentals, 2002, 42(6): 543-567. ?

  6. 王輝, 吳建國. 生物傳熱學(xué)及其醫(yī)學(xué)應(yīng)用[J]. 同濟大學(xué)學(xué)報:醫(yī)學(xué)版, 2004, 025(002):159-162. ?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末签杈,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌答姥,老刑警劉巖铣除,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異鹦付,居然都是意外死亡尚粘,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進(jìn)店門敲长,熙熙樓的掌柜王于貴愁眉苦臉地迎上來禾乘,“玉大人昼牛,你說我怎么就攤上這事圈暗∽尘拢” “怎么了?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵钳降,是天一觀的道長厚宰。 經(jīng)常有香客問我,道長遂填,這世上最難降的妖魔是什么铲觉? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮吓坚,結(jié)果婚禮上撵幽,老公的妹妹穿的比我還像新娘。我一直安慰自己礁击,他們只是感情好盐杂,可當(dāng)我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著哆窿,像睡著了一般链烈。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上挚躯,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天强衡,我揣著相機與錄音,去河邊找鬼码荔。 笑死漩勤,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的缩搅。 我是一名探鬼主播越败,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼硼瓣!你這毒婦竟也來了究飞?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎亿傅,沒想到半個月后霉祸,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡袱蜡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了慢宗。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片坪蚁。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖镜沽,靈堂內(nèi)的尸體忽然破棺而出敏晤,到底是詐尸還是另有隱情,我是刑警寧澤缅茉,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布嘴脾,位于F島的核電站,受9級特大地震影響蔬墩,放射性物質(zhì)發(fā)生泄漏译打。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一拇颅、第九天 我趴在偏房一處隱蔽的房頂上張望奏司。 院中可真熱鬧,春花似錦樟插、人聲如沸韵洋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽搪缨。三九已至,卻和暖如春鸵熟,著一層夾襖步出監(jiān)牢的瞬間副编,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工旅赢, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留齿桃,地道東北人。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓煮盼,卻偏偏與公主長得像短纵,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子僵控,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,086評論 2 355