空氣動(dòng)力學(xué)數(shù)值方法:格子玻爾茲曼方法(LBM):LBM在非牛頓流體中的應(yīng)用_第1頁(yè)
空氣動(dòng)力學(xué)數(shù)值方法:格子玻爾茲曼方法(LBM):LBM在非牛頓流體中的應(yīng)用_第2頁(yè)
空氣動(dòng)力學(xué)數(shù)值方法:格子玻爾茲曼方法(LBM):LBM在非牛頓流體中的應(yīng)用_第3頁(yè)
空氣動(dòng)力學(xué)數(shù)值方法:格子玻爾茲曼方法(LBM):LBM在非牛頓流體中的應(yīng)用_第4頁(yè)
空氣動(dòng)力學(xué)數(shù)值方法:格子玻爾茲曼方法(LBM):LBM在非牛頓流體中的應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩21頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

空氣動(dòng)力學(xué)數(shù)值方法:格子玻爾茲曼方法(LBM):LBM在非牛頓流體中的應(yīng)用1空氣動(dòng)力學(xué)數(shù)值方法:格子玻爾茲曼方法(LBM):LBM在非牛頓流體中的應(yīng)用1.1緒論1.1.1LBM方法的歷史背景格子玻爾茲曼方法(LatticeBoltzmannMethod,LBM)起源于20世紀(jì)80年代末,最初由FrancescoHiguera和Rapoport在研究流體動(dòng)力學(xué)問(wèn)題時(shí)提出。LBM結(jié)合了統(tǒng)計(jì)物理和流體動(dòng)力學(xué)的原理,通過(guò)模擬粒子在格子上的碰撞和傳輸過(guò)程,來(lái)求解流體的宏觀行為。這種方法在計(jì)算流體力學(xué)領(lǐng)域迅速發(fā)展,因其并行計(jì)算的高效性和處理復(fù)雜邊界條件的能力而受到青睞。1.1.2非牛頓流體的定義與分類非牛頓流體是指其粘性性質(zhì)不遵循牛頓流體的線性關(guān)系的流體。牛頓流體的粘性與剪切速率無(wú)關(guān),而非牛頓流體的粘性則可能隨剪切速率的變化而變化。非牛頓流體可以分為以下幾類:假塑性流體:粘度隨剪切速率增加而減小。脹流性流體:粘度隨剪切速率增加而增加。賓漢流體:在剪切應(yīng)力低于一定閾值時(shí),流體保持靜止,超過(guò)閾值后,粘度隨剪切應(yīng)力變化。粘彈性流體:流體的流動(dòng)不僅受到粘性力的影響,還受到彈性力的影響。1.2LBM在非牛頓流體中的應(yīng)用LBM應(yīng)用于非牛頓流體的模擬,主要通過(guò)調(diào)整和擴(kuò)展傳統(tǒng)的LBM模型來(lái)實(shí)現(xiàn)。傳統(tǒng)LBM基于Bhatnagar-Gross-Krook(BGK)碰撞模型,適用于牛頓流體。然而,對(duì)于非牛頓流體,需要引入更復(fù)雜的碰撞模型,如多項(xiàng)式碰撞模型或基于應(yīng)力張量的模型,以準(zhǔn)確描述流體的非線性粘性行為。1.2.1擴(kuò)展LBM模型多項(xiàng)式碰撞模型多項(xiàng)式碰撞模型通過(guò)在碰撞算子中引入多項(xiàng)式項(xiàng)來(lái)模擬非牛頓流體的粘性特性。例如,對(duì)于假塑性流體,可以使用冪律模型:μ其中,μ是粘度,μ0是參考粘度,γ是剪切速率,γ0是特征剪切速率,基于應(yīng)力張量的模型對(duì)于更復(fù)雜的非牛頓流體,如粘彈性流體,需要使用基于應(yīng)力張量的模型。這類模型通過(guò)引入額外的應(yīng)力張量方程來(lái)描述流體的彈性行為。例如,Oldroyd-B模型:?其中,σ是額外的應(yīng)力張量,u是流體速度,λ是松弛時(shí)間,ηp1.2.2LBM模擬示例Python代碼示例:LBM模擬假塑性流體importnumpyasnp

importmatplotlib.pyplotasplt

#LBM參數(shù)

nx,ny=128,128

nt=1000

tau=0.5

mu0=1.0

gamma0=1.0

n=0.5

#初始化速度和密度

u=np.zeros((nx,ny,2))

rho=np.ones((nx,ny))

#LBM權(quán)重和速度

weights=np.array([4/9,1/9,1/9,1/9,1/9,1/36,1/36,1/36,1/36])

velocities=np.array([[0,0],[1,0],[0,1],[-1,0],[0,-1],[1,1],[-1,1],[-1,-1],[1,-1]])

#邊界條件

defboundary_conditions(f):

#底部固定壁

f[:,0,1]=f[:,0,3]

f[:,0,5]=f[:,0,7]

f[:,0,6]=f[:,0,8]

f[:,0,4]=f[:,0,2]

#頂部固定壁

f[:,ny-1,1]=f[:,ny-1,3]

f[:,ny-1,5]=f[:,ny-1,7]

f[:,ny-1,6]=f[:,ny-1,8]

f[:,ny-1,4]=f[:,ny-1,2]

#LBM更新規(guī)則

deflbm_step(f):

#流動(dòng)

f_eq=np.zeros_like(f)

foriinrange(9):

f[i]=np.roll(f[i],velocities[i],axis=(0,1))

#計(jì)算密度和速度

rho=np.sum(f,axis=0)

u=np.zeros((nx,ny,2))

foriinrange(1,9):

u+=velocities[i]*f[i]

u/=rho

#計(jì)算剪切速率

grad_u=np.gradient(u)

gamma_dot=np.sqrt(grad_u[0][0]**2+2*grad_u[0][1]**2+grad_u[1][1]**2)

#計(jì)算粘度

mu=mu0*(1+(gamma_dot/gamma0)**(n-1))**((1-n)/2)

#碰撞

foriinrange(9):

f_eq[i]=weights[i]*rho*(1+3*np.dot(velocities[i],u)+9/2*np.dot(velocities[i],u)**2-3/2*np.dot(u,u))

f[i]-=(1/tau)*(f[i]-f_eq[i])

#應(yīng)用邊界條件

boundary_conditions(f)

returnf,rho,u

#初始化分布函數(shù)

f=np.zeros((9,nx,ny))

foriinrange(9):

f[i]=weights[i]*rho

#模擬循環(huán)

fortinrange(nt):

f,rho,u=lbm_step(f)

#可視化結(jié)果

plt.imshow(u[:,:,0],origin='lower',cmap='viridis')

plt.colorbar()

plt.show()代碼解釋上述代碼示例展示了如何使用LBM模擬假塑性流體。首先,我們定義了LBM的參數(shù),包括網(wǎng)格大小、模擬步數(shù)、松弛時(shí)間、參考粘度、特征剪切速率和流體指數(shù)。然后,我們初始化了速度和密度,以及LBM的權(quán)重和速度向量。在boundary_conditions函數(shù)中,我們應(yīng)用了底部和頂部固定壁的邊界條件。在lbm_step函數(shù)中,我們執(zhí)行了LBM的流動(dòng)、計(jì)算密度和速度、計(jì)算剪切速率、計(jì)算粘度、碰撞和再次應(yīng)用邊界條件的步驟。最后,我們通過(guò)循環(huán)調(diào)用lbm_step函數(shù)來(lái)模擬流體的流動(dòng),并使用matplotlib庫(kù)來(lái)可視化最終的速度場(chǎng)。1.2.3數(shù)據(jù)樣例在LBM模擬中,數(shù)據(jù)樣例通常包括網(wǎng)格大小、時(shí)間步長(zhǎng)、流體的物理屬性(如粘度、密度)以及邊界條件。例如,對(duì)于上述Python代碼示例,數(shù)據(jù)樣例可以是:網(wǎng)格大?。簄x=128,ny=128時(shí)間步長(zhǎng):nt=1000參考粘度:mu0=1.0特征剪切速率:gamma0=1.0流體指數(shù):n=0.5初始密度:rho=np.ones((nx,ny))初始速度:u=np.zeros((nx,ny,2))權(quán)重和速度向量:weights和velocities數(shù)組這些數(shù)據(jù)樣例構(gòu)成了LBM模擬的基礎(chǔ),通過(guò)調(diào)整這些參數(shù),可以模擬不同條件下的非牛頓流體行為。1.3結(jié)論LBM作為一種強(qiáng)大的數(shù)值方法,不僅適用于牛頓流體的模擬,通過(guò)適當(dāng)?shù)臄U(kuò)展和調(diào)整,也能有效地處理非牛頓流體的復(fù)雜流動(dòng)問(wèn)題。通過(guò)上述示例,我們可以看到LBM在模擬假塑性流體時(shí)的靈活性和效率。對(duì)于更復(fù)雜的非牛頓流體,如粘彈性流體,LBM同樣能夠提供準(zhǔn)確的模擬結(jié)果,但需要更復(fù)雜的模型和算法。2格子玻爾茲曼方法基礎(chǔ)2.1LBM的基本原理格子玻爾茲曼方法(LatticeBoltzmannMethod,LBM)是一種基于粒子模型的流體動(dòng)力學(xué)數(shù)值方法。它通過(guò)模擬流體中粒子的碰撞和傳輸過(guò)程,來(lái)求解流體動(dòng)力學(xué)方程。LBM的核心是Boltzmann方程,但在實(shí)際應(yīng)用中,為了簡(jiǎn)化計(jì)算,LBM使用了離散化的速度空間和時(shí)間空間。2.1.1離散化速度空間在LBM中,速度空間被離散化為有限個(gè)速度方向。例如,D2Q9模型在二維空間中使用9個(gè)速度方向,其中D表示空間維度,Q表示速度方向的數(shù)量。2.1.2離散化時(shí)間空間時(shí)間也被離散化,流體動(dòng)力學(xué)過(guò)程通過(guò)一系列離散時(shí)間步的迭代來(lái)模擬。在每個(gè)時(shí)間步,粒子從一個(gè)格點(diǎn)移動(dòng)到另一個(gè)格點(diǎn),然后進(jìn)行碰撞過(guò)程,更新粒子分布函數(shù)。2.1.3粒子分布函數(shù)粒子分布函數(shù)fix,t描述了在位置x和時(shí)間2.2LBM的離散化過(guò)程LBM的離散化過(guò)程包括兩個(gè)主要步驟:流體粒子的流(Streaming)和碰撞(Collision)。2.2.1流動(dòng)步驟在流動(dòng)步驟中,粒子分布函數(shù)fix,t沿著速度方向i移動(dòng)到新的位置x+Δt2.2.2碰撞步驟在碰撞步驟中,粒子分布函數(shù)通過(guò)碰撞算子進(jìn)行更新,通常使用的是Bhatnagar-Gross-Krook(BGK)碰撞算子。更新公式為:f其中,τ是松弛時(shí)間,fi2.2.3示例代碼下面是一個(gè)使用Python實(shí)現(xiàn)的LBM基本流動(dòng)和碰撞步驟的示例代碼:importnumpyasnp

#定義速度方向

e=np.array([[0,0],[1,0],[0,1],[-1,0],[0,-1],[1,1],[-1,1],[-1,-1],[1,-1]])

#初始化粒子分布函數(shù)

f=np.zeros((9,100,100))

#初始化流體密度和速度

rho=np.ones((100,100))

u=np.zeros((2,100,100))

#定義松弛時(shí)間

tau=0.7

#計(jì)算平衡態(tài)分布函數(shù)

deffeq(f,rho,u):

c_s2=1.0/3.0

u=u.reshape(2,-1,1)

cu=np.sum(u*e,axis=0)

u2=np.sum(np.square(u),axis=0)

feq=np.zeros_like(f)

foriinrange(9):

feq[i]=rho*(w[i]+w[i]*(3*cu[i]+9*c_s2*cu[i]*cu[i]-3*u2))

returnfeq

#定義權(quán)重

w=np.array([4/9,1/9,1/9,1/9,1/9,1/36,1/36,1/36,1/36])

#更新粒子分布函數(shù)

deflbm_step(f,rho,u):

f_eq=feq(f,rho,u)

f_prime=np.zeros_like(f)

foriinrange(9):

f_prime[i]=f[i,np.mod(e[i,0]+np.arange(100),100),np.mod(e[i,1]+np.arange(100),100)]

f[i]=f_prime[i]-1/tau*(f_prime[i]-f_eq[i])

rho=np.sum(f,axis=0)

u=np.sum(f[:,None,:,:]*e[None,:,:,None],axis=2)/rho[:,:,None]

returnf,rho,u

#進(jìn)行迭代

fortinrange(100):

f,rho,u=lbm_step(f,rho,u)2.3LBM的邊界條件處理在LBM中,邊界條件的處理至關(guān)重要,它直接影響到流體動(dòng)力學(xué)模擬的準(zhǔn)確性。常見的邊界條件處理方法包括:2.3.1反彈邊界條件在固體邊界上,粒子沿著入射方向反彈,這種處理方式稱為反彈邊界條件。它適用于無(wú)滑移邊界條件,即流體在固體邊界上的速度為零。2.3.2入口和出口邊界條件在入口,通常設(shè)定一個(gè)固定的流體分布函數(shù),以模擬流體的流入。在出口,可以使用自由流出邊界條件,即允許流體自由流出,不施加額外的力。2.3.3示例代碼下面是一個(gè)使用Python實(shí)現(xiàn)的LBM反彈邊界條件的示例代碼:defbounce_back(f,u,boundary):

f_prime=np.zeros_like(f)

foriinrange(9):

ifboundary[i]:

f_prime[i]=f[8-i,np.mod(e[i,0]+np.arange(100),100),np.mod(e[i,1]+np.arange(100),100)]

else:

f_prime[i]=f[i,np.mod(e[i,0]+np.arange(100),100),np.mod(e[i,1]+np.arange(100),100)]

returnf_prime

#假設(shè)boundary是一個(gè)布爾數(shù)組,表示哪些速度方向的粒子在邊界上反彈

boundary=np.array([False,True,False,True,False,True,False,True,False])

#更新粒子分布函數(shù),包括邊界條件處理

deflbm_step_with_boundary(f,rho,u,boundary):

f_eq=feq(f,rho,u)

f_prime=bounce_back(f,u,boundary)

f=f_prime-1/tau*(f_prime-f_eq)

rho=np.sum(f,axis=0)

u=np.sum(f[:,None,:,:]*e[None,:,:,None],axis=2)/rho[:,:,None]

returnf,rho,u

#進(jìn)行迭代,包括邊界條件處理

fortinrange(100):

f,rho,u=lbm_step_with_boundary(f,rho,u,boundary)通過(guò)以上介紹和示例代碼,我們可以看到LBM在處理流體動(dòng)力學(xué)問(wèn)題時(shí)的靈活性和效率。它通過(guò)粒子的流和碰撞過(guò)程,能夠有效地模擬流體的復(fù)雜行為,特別是在處理非牛頓流體時(shí),LBM能夠提供更準(zhǔn)確的模擬結(jié)果。3非牛頓流體模型3.1賓漢流體模型3.1.1原理賓漢流體模型適用于描述那些在一定剪切應(yīng)力下才開始流動(dòng)的流體,如牙膏、油漆等。在賓漢模型中,流體在剪切應(yīng)力低于屈服應(yīng)力時(shí)表現(xiàn)為固體,不發(fā)生流動(dòng);當(dāng)剪切應(yīng)力超過(guò)屈服應(yīng)力時(shí),流體開始流動(dòng),其粘度與剪切速率無(wú)關(guān),表現(xiàn)為牛頓流體。3.1.2內(nèi)容賓漢流體的應(yīng)力-應(yīng)變關(guān)系可以表示為:τ其中,τ是剪切應(yīng)力,γ是剪切速率,γ0是臨界剪切速率,τ0是屈服應(yīng)力,3.1.3示例在格子玻爾茲曼方法中,賓漢流體的模擬可以通過(guò)引入額外的力項(xiàng)來(lái)實(shí)現(xiàn),該力項(xiàng)在剪切應(yīng)力超過(guò)屈服應(yīng)力時(shí)生效。以下是一個(gè)使用Python和LBM模擬賓漢流體的簡(jiǎn)化示例:importnumpyasnp

fromlbmpyimportLBMConfig,BGKCollision,create_lb_method,create_lb_boundary_condition

#定義流體參數(shù)

yield_stress=1.0#屈服應(yīng)力

viscosity=0.01#粘度

critical_shear_rate=0.1#臨界剪切速率

#創(chuàng)建LBM配置

lbm_config=LBMConfig(stencil='D2Q9',collision=BGKCollision(viscosity=viscosity))

lb_method=create_lb_method(lbm_config)

#定義賓漢流體的額外力項(xiàng)

defbingham_force(u,tau):

shear_rate=np.sqrt(0.5*((np.gradient(u[0])**2+np.gradient(u[1])**2).sum(axis=0)))

ifshear_rate<critical_shear_rate:

return0

else:

return(shear_rate-critical_shear_rate)*yield_stress

#創(chuàng)建邊界條件

boundary_condition=create_lb_boundary_condition(lb_method,bingham_force)

#初始化流場(chǎng)

u=np.zeros((100,100,2))#流速場(chǎng)

rho=np.ones((100,100))#密度場(chǎng)

#進(jìn)行LBM迭代

for_inrange(1000):

f=lb_method.equilibrium(rho,u)

f=lb_method.stream_and_collide(f)

u,rho=lb_method.velocity_and_density(f)

u=boundary_condition.apply(u)3.2冪律流體模型3.2.1原理冪律流體模型適用于描述剪切稀化或剪切稠化流體,如油漆、血液等。冪律模型的剪切應(yīng)力與剪切速率的關(guān)系為:τ其中,K是流體的一致性系數(shù),n是流體的流動(dòng)指數(shù)。3.2.2內(nèi)容當(dāng)n<1時(shí),流體表現(xiàn)為剪切稀化;當(dāng)n>3.2.3示例在LBM中,冪律流體的模擬可以通過(guò)調(diào)整碰撞算子的松弛時(shí)間來(lái)實(shí)現(xiàn),松弛時(shí)間與流體的粘度有關(guān)。以下是一個(gè)使用Python和LBM模擬冪律流體的簡(jiǎn)化示例:importnumpyasnp

fromlbmpyimportLBMConfig,BGKCollision,create_lb_method

#定義流體參數(shù)

k=1.0#一致性系數(shù)

n=0.5#流動(dòng)指數(shù)

viscosity=k*(1-n)/(3*n)

#創(chuàng)建LBM配置

lbm_config=LBMConfig(stencil='D2Q9',collision=BGKCollision(viscosity=viscosity))

lb_method=create_lb_method(lbm_config)

#初始化流場(chǎng)

u=np.zeros((100,100,2))#流速場(chǎng)

rho=np.ones((100,100))#密度場(chǎng)

#進(jìn)行LBM迭代

for_inrange(1000):

f=lb_method.equilibrium(rho,u)

f=lb_method.stream_and_collide(f)

u,rho=lb_method.velocity_and_density(f)3.3Carreau流體模型3.3.1原理Carreau流體模型是一種更復(fù)雜的非牛頓流體模型,它考慮了流體的剪切稀化和恢復(fù)粘度的特性。Carreau模型的剪切應(yīng)力與剪切速率的關(guān)系為:τ其中,μ0是零剪切速率下的粘度,μ∞是無(wú)限剪切速率下的粘度,λ是時(shí)間常數(shù),3.3.2內(nèi)容Carreau模型能夠更準(zhǔn)確地描述流體在不同剪切速率下的行為,特別是在剪切稀化后粘度恢復(fù)的過(guò)程。3.3.3示例在LBM中,Carreau流體的模擬可以通過(guò)引入非線性的粘度關(guān)系來(lái)實(shí)現(xiàn)。以下是一個(gè)使用Python和LBM模擬Carreau流體的簡(jiǎn)化示例:importnumpyasnp

fromlbmpyimportLBMConfig,BGKCollision,create_lb_method

#定義流體參數(shù)

mu_0=0.1#零剪切速率下的粘度

mu_inf=0.01#無(wú)限剪切速率下的粘度

lambda_=1.0#時(shí)間常數(shù)

n=0.5#流動(dòng)指數(shù)

#定義Carreau粘度函數(shù)

defcarreau_viscosity(shear_rate):

returnmu_inf+(mu_0-mu_inf)*(1+(lambda_*shear_rate)**2)**((n-1)/2)

#創(chuàng)建LBM配置

lbm_config=LBMConfig(stencil='D2Q9',collision=BGKCollision(viscosity=carreau_viscosity))

lb_method=create_lb_method(lbm_config)

#初始化流場(chǎng)

u=np.zeros((100,100,2))#流速場(chǎng)

rho=np.ones((100,100))#密度場(chǎng)

#進(jìn)行LBM迭代

for_inrange(1000):

f=lb_method.equilibrium(rho,u)

f=lb_method.stream_and_collide(f)

u,rho=lb_method.velocity_and_density(f)

shear_rate=np.sqrt(0.5*((np.gradient(u[0])**2+np.gradient(u[1])**2).sum(axis=0)))

lb_method.collision.viscosity=carreau_viscosity(shear_rate)請(qǐng)注意,上述示例代碼是高度簡(jiǎn)化的,實(shí)際應(yīng)用中需要更復(fù)雜的邊界條件和流場(chǎng)初始化。此外,Carreau粘度函數(shù)的計(jì)算需要在每次迭代中更新,以反映流體的非線性行為。4LBM在非牛頓流體中的應(yīng)用4.1LBM模擬賓漢流體的步驟4.1.1賓漢流體簡(jiǎn)介賓漢流體(Binghamfluid)是一種典型的非牛頓流體,其流動(dòng)特性在靜止或低剪切速率下表現(xiàn)為塑性,即需要一定的剪切應(yīng)力才能開始流動(dòng),而一旦開始流動(dòng),其行為類似于粘性流體。4.1.2LBM模擬步驟在使用LBM模擬賓漢流體時(shí),主要步驟包括:初始化參數(shù):設(shè)定流體的物理參數(shù),如密度、粘度、屈服應(yīng)力等。流體動(dòng)力學(xué)方程的離散化:將連續(xù)的流體動(dòng)力學(xué)方程轉(zhuǎn)換為L(zhǎng)BM的離散形式。碰撞與流步:執(zhí)行LBM的碰撞和流步,更新流體的速度和壓力分布。非牛頓流體效應(yīng)的引入:通過(guò)修改碰撞算子或引入額外的力項(xiàng)來(lái)模擬賓漢流體的非線性流動(dòng)行為。邊界條件處理:應(yīng)用適當(dāng)?shù)倪吔鐥l件,如無(wú)滑移邊界條件或壓力邊界條件。結(jié)果分析:分析模擬結(jié)果,如速度場(chǎng)、壓力場(chǎng)和剪切應(yīng)力分布。4.1.3示例代碼以下是一個(gè)使用Python和LBM模擬賓漢流體的簡(jiǎn)化示例:importnumpyasnp

importmatplotlib.pyplotasplt

#定義LBM參數(shù)

nx,ny=100,100

rho=np.ones((nx,ny))

u=np.zeros((2,nx,ny))

tau=0.5

yield_stress=0.1

#定義LBM速度分布函數(shù)

deff_eq(i,u,rho):

c=np.array([[-1,0],[1,0],[0,-1],[0,1],[0,0]])

cu=np.dot(c[i],u)

returnrho*(1/20)*(1+3*cu+4.5*cu**2-1.5*np.sum(u**2))

#定義LBM碰撞算子

defcollide(f,u,rho):

f_eq_=np.array([f_eq(i,u,rho)foriinrange(5)])

returnf-(1/tau)*(f-f_eq_)

#定義LBM流步

defstream(f):

c=np.array([[-1,0],[1,0],[0,-1],[0,1],[0,0]])

f_new=np.zeros_like(f)

foriinrange(5):

f_new[(i+1)%4]=f[i]

f_new[i]=np.roll(f[i],c[i],axis=(0,1))

returnf_new

#定義賓漢流體的非線性效應(yīng)

defbingham_force(u,yield_stress):

mu=1.0

du=np.gradient(u)

tau=mu*(du[0]**2+du[1]**2)**0.5

returnnp.where(tau>yield_stress,(tau-yield_stress)*u/tau,0)

#主循環(huán)

f=np.array([np.zeros((nx,ny))for_inrange(5)])

fortinrange(1000):

#碰撞

f=collide(f,u,rho)

#流步

f=stream(f)

#更新速度和密度

u=np.sum(f*np.array([[-1,0],[1,0],[0,-1],[0,1],[0,0]]),axis=0)/rho

rho=np.sum(f,axis=0)

#引入賓漢流體效應(yīng)

f+=bingham_force(u,yield_stress)

#可視化結(jié)果

plt.imshow(np.sqrt(u[0]**2+u[1]**2),cmap='hot',interpolation='nearest')

plt.colorbar()

plt.show()4.1.4代碼解釋此代碼示例展示了如何使用LBM模擬賓漢流體的基本框架。首先,初始化了流體的密度和速度分布,然后定義了LBM的速度分布函數(shù)、碰撞算子和流步。特別地,bingham_force函數(shù)用于引入賓漢流體的非線性效應(yīng),通過(guò)計(jì)算剪切應(yīng)力并根據(jù)屈服應(yīng)力調(diào)整流體的內(nèi)部力。最后,通過(guò)主循環(huán)執(zhí)行碰撞和流步,更新流體狀態(tài),并使用matplotlib可視化最終的速度分布。4.2LBM模擬冪律流體的案例分析4.2.1冪律流體簡(jiǎn)介冪律流體(Power-lawfluid)是另一類非牛頓流體,其粘度與剪切速率的關(guān)系遵循冪律關(guān)系,即粘度隨剪切速率的增加而變化。冪律流體的流動(dòng)行為可以用以下方程描述:τ其中,τ是剪切應(yīng)力,K是流體的一致性系數(shù),n是流體的流動(dòng)指數(shù)。4.2.2案例分析假設(shè)我們正在模擬一個(gè)冪律流體在管道中的流動(dòng),流體的一致性系數(shù)K=0.5,流動(dòng)指數(shù)4.2.3示例代碼以下是一個(gè)使用Python和LBM模擬冪律流體的簡(jiǎn)化示例:importnumpyasnp

importmatplotlib.pyplotasplt

#定義LBM參數(shù)

nx,ny=100,100

rho=np.ones((nx,ny))

u=np.zeros((2,nx,ny))

tau=0.5

K=0.5

n=0.7

#定義LBM速度分布函數(shù)

deff_eq(i,u,rho):

c=np.array([[-1,0],[1,0],[0,-1],[0,1],[0,0]])

cu=np.dot(c[i],u)

returnrho*(1/20)*(1+3*cu+4.5*cu**2-1.5*np.sum(u**2))

#定義LBM碰撞算子

defcollide(f,u,rho):

f_eq_=np.array([f_eq(i,u,rho)foriinrange(5)])

returnf-(1/tau)*(f-f_eq_)

#定義LBM流步

defstream(f):

c=np.array([[-1,0],[1,0],[0,-1],[0,1],[0,0]])

f_new=np.zeros_like(f)

foriinrange(5):

f_new[(i+1)%4]=f[i]

f_new[i]=np.roll(f[i],c[i],axis=(0,1))

returnf_new

#定義冪律流體的非線性效應(yīng)

defpower_law_force(u,K,n):

mu=1.0

du=np.gradient(u)

tau=mu*(du[0]**2+du[1]**2)**0.5

returnK*(tau**(n-1))*u

#主循環(huán)

f=np.array([np.zeros((nx,ny))for_inrange(5)])

fortinrange(1000):

#碰撞

f=collide(f,u,rho)

#流步

f=stream(f)

#更新速度和密度

u=np.sum(f*np.array([[-1,0],[1,0],[0,-1],[0,1],[0,0]]),axis=0)/rho

rho=np.sum(f,axis=0)

#引入冪律流體效應(yīng)

f+=power_law_force(u,K,n)

#可視化結(jié)果

plt.imshow(np.sqrt(u[0]**2+u[1]**2),cmap='hot',interpolation='nearest')

plt.colorbar()

plt.show()4.2.4代碼解釋此代碼示例展示了如何使用LBM模擬冪律流體。與賓漢流體的模擬類似,我們首先初始化了流體的密度和速度分布,然后定義了LBM的速度分布函數(shù)、碰撞算子和流步。power_law_force函數(shù)用于計(jì)算冪律流體的內(nèi)部力,根據(jù)剪切應(yīng)力和流動(dòng)指數(shù)調(diào)整流體的粘度。通過(guò)主循環(huán)執(zhí)行碰撞和流步,更新流體狀態(tài),并使用matplotlib可視化最終的速度分布。4.3LBM在Carreau流體中的應(yīng)用與挑戰(zhàn)4.3.1Carreau流體簡(jiǎn)介Carreau流體是一種復(fù)雜的非牛頓流體,其粘度隨剪切速率的變化而變化,但與冪律流體不同,Carreau流體的粘度變化更為平滑,通常用于描述聚合物溶液的流動(dòng)行為。4.3.2LBM應(yīng)用在LBM中模擬Carreau流體,需要對(duì)碰撞算子進(jìn)行修改,以反映流體粘度隨剪切速率變化的特性。這通常涉及到在碰撞算子中引入額外的項(xiàng),以模擬流體的非線性流動(dòng)行為。4.3.3挑戰(zhàn)模擬Carreau流體的主要挑戰(zhàn)在于準(zhǔn)確地描述其復(fù)雜的粘度變化特性。這可能需要更復(fù)雜的數(shù)學(xué)模型和更精細(xì)的網(wǎng)格劃分,以捕捉流體在不同剪切速率下的行為。4.3.4示例代碼由于Carreau流體的復(fù)雜性,其LBM模擬通常需要更高級(jí)的數(shù)學(xué)處理和更復(fù)雜的代碼實(shí)現(xiàn),這里不提供具體的代碼示例,但可以概述其主要步驟:初始化參數(shù):設(shè)定流體的物理參數(shù),如密度、初始粘度、剪切速率指數(shù)等。定義Carreau流體的粘度模型:根據(jù)Carreau流體的數(shù)學(xué)模型,定義一個(gè)函數(shù)來(lái)計(jì)算流體的粘度。修改LBM碰撞算子:在碰撞算子中引入Carreau流體的粘度模型,以反映流體的非線性流動(dòng)行為。執(zhí)行LBM模擬:使用修改后的碰撞算子執(zhí)行LBM的碰撞和流步,更新流體狀態(tài)。結(jié)果分析:分析模擬結(jié)果,如速度場(chǎng)、壓力場(chǎng)和粘度分布。4.3.5結(jié)論LBM在模擬非牛頓流體,如賓漢流體、冪律流體和Carreau流體時(shí),提供了一種有效且直觀的方法。通過(guò)適當(dāng)修改碰撞算子和引入非線性效應(yīng),可以準(zhǔn)確地模擬這些流體的復(fù)雜流動(dòng)行為。然而,對(duì)于更復(fù)雜的流體模型,如Carreau流體,LBM的模擬可能需要更高級(jí)的數(shù)學(xué)處理和更精細(xì)的網(wǎng)格劃分,以確保結(jié)果的準(zhǔn)確性。5數(shù)值模擬與結(jié)果分析5.1非牛頓流體LBM模擬的設(shè)置與運(yùn)行在格子玻爾茲曼方法(LBM)中模擬非牛頓流體,首先需要理解非牛頓流體的特性,即其粘度不是常數(shù),而是隨剪切速率變化的。LBM通過(guò)離散化連續(xù)的玻爾茲曼方程,使用粒子分布函數(shù)在格子上進(jìn)行更新,來(lái)模擬流體動(dòng)力學(xué)行為。對(duì)于非牛頓流體,LBM需要引入額外的模型來(lái)描述粘度的變化。5.1.1設(shè)置LBM模擬定義流體模型:選擇合適的非牛頓流體模型,如賓漢模型、冪律模型或卡森模型。以冪律模型為例,其粘度與剪切速率的關(guān)系為:μ其中,μ0是參考粘度,γ是剪切速率,γ0是參考剪切速率,初始化參數(shù):設(shè)定模擬區(qū)域的大小、邊界條件、初始流體分布、參考粘度、參考剪切速率和流體指數(shù)。編寫LBM更新規(guī)則:在Python中,可以使用NumPy庫(kù)來(lái)高效處理數(shù)組操作。下面是一個(gè)簡(jiǎn)單的LBM更新規(guī)則的示例代碼:importnumpyasnp

#定義流體參數(shù)

mu_0=0.01#參考粘度

gamma_0=1.0#參考剪切速率

n=0.7#流體指數(shù)

#初始化粒子分布函數(shù)

f=np.zeros((9,N,N))

#LBM更新規(guī)則

deflbm_update(f,u,rho,dt):

#計(jì)算流體速度和密度

u=np.sum(f*np.array([[0,0],[1,0],[0,1],[-1,0],[0,-1],[1,1],[-1,1],[-1,-1],[1,-1]],dtype=float),axis=0)/rho

rho=np.sum(f,axis=0)

#更新粒子分布函數(shù)

foriinrange(9):

f[i]=f[i]-dt*(f[i]*(np.array([0,1,0,-1,0,1,-1,-1,1])[i]-u[0])*(np.array([0,0,1,0,-1,1,1,-1,-1])[i]-u[1]))+dt*(1-rho)*(np.array([1,1,1,1,1,2,2,2,2])[i]-rho)

#應(yīng)用非牛頓流體粘度模型

mu=mu_0*(np.sqrt(np.sum(np.square(u)))/gamma_0)**(n-1)

#應(yīng)用邊界條件

#...

returnf,u,rho,mu

#運(yùn)行模擬

fortinrange(T):

f,u,rho,mu=lbm_update(f,u,rho,dt)這段代碼展示了如何在LBM框架下更新粒子分布函數(shù),并計(jì)算流體速度、密度和粘度。注意,實(shí)際應(yīng)用中需要根據(jù)具體問(wèn)題調(diào)整邊界條件和流體模型。5.1.2運(yùn)行LBM模擬運(yùn)行LBM模擬涉及迭代更新粒子分布函數(shù),直到達(dá)到穩(wěn)定狀態(tài)或完成預(yù)定的迭代次數(shù)。在每次迭代中,都需要計(jì)算流體速度、密度和粘度,并應(yīng)用邊界條件。5.2結(jié)果分析與后處理技術(shù)LBM模擬完成后,需要對(duì)結(jié)果進(jìn)行分析,以提取流體動(dòng)力學(xué)信息,如速度場(chǎng)、壓力場(chǎng)和剪切應(yīng)力分布。此外,后處理技術(shù)可以幫助可視化這些數(shù)據(jù),以便于理解和解釋。5.2.1分析速度場(chǎng)速度場(chǎng)是LBM模擬中最基本的輸出之一??梢允褂靡韵麓a來(lái)分析和可視化速度場(chǎng):importmatplotlib.pyplotasplt

frommatplotlibimportcm

#可視化速度場(chǎng)

defplot_velocity_field(u):

plt.figure()

plt.quiver(u[0],u[1],scale=10)

plt.colorbar()

plt.title('速度場(chǎng)')

plt.show()

plot_velocity_field(u)5.2.2分析壓力場(chǎng)壓力場(chǎng)的分析通常涉及求解連續(xù)性方程和動(dòng)量方程。在LBM中,壓力可以通過(guò)密度計(jì)算得出,因?yàn)閮烧咧g存在直接關(guān)系。下面是一個(gè)分析壓力場(chǎng)的示例代碼:#計(jì)算壓力場(chǎng)

p=c_s**2*rho

#可視化壓力場(chǎng)

defplot_pressure_field(p):

plt.figure()

plt.imshow(p,cmap=cm.viridis)

plt.colorbar()

plt.title('壓力場(chǎng)')

plt.show()

plot_pressure_field(p)5.2.3分析剪切應(yīng)力分布剪切應(yīng)力是流體動(dòng)力學(xué)中的重要參數(shù),特別是在非牛頓流體中??梢酝ㄟ^(guò)計(jì)算速度梯度來(lái)間接獲得剪切應(yīng)力。下面是一個(gè)分析剪切應(yīng)力分布的示例代碼:#計(jì)算剪切應(yīng)力分布

defcalculate_shear_stress(u):

du_dx=np.gradient(u[0],axis=1)

du_dy=np.gradient(u[0],axis=0)

dv_dx=np.gradient(u[1],axis=1)

dv_dy=np.gradient(u[1],axis=0)

shear_stress=mu*(du_dy+dv_dx)

returnshear_stress

shear_stress=calculate_shear_stress(u)

#可視化剪切應(yīng)力分布

defplot_shear_stress(shear_stress):

plt.figure()

plt.imshow(shear_stress,cmap=cm.viridis)

plt.colorbar()

plt.title('剪切應(yīng)力分布')

plt.show()

plot_shear_stress(shear_stress)5.3模擬結(jié)果的驗(yàn)證與校準(zhǔn)驗(yàn)證LBM模擬結(jié)果的準(zhǔn)確性是至關(guān)重要的。這通常涉及將模擬結(jié)果與實(shí)驗(yàn)數(shù)據(jù)或理論預(yù)測(cè)進(jìn)行比較。校準(zhǔn)過(guò)程則可能需要調(diào)整模擬參數(shù),以確保模擬結(jié)果與實(shí)際數(shù)據(jù)一致。5.3.1驗(yàn)證模擬結(jié)果驗(yàn)證模擬結(jié)果可以通過(guò)以下步驟進(jìn)行:選擇驗(yàn)證標(biāo)準(zhǔn):確定要驗(yàn)證的物理量,如速度、壓力或剪切應(yīng)力。獲取實(shí)驗(yàn)數(shù)據(jù)或理論預(yù)測(cè):收集與模擬條件相匹配的實(shí)驗(yàn)數(shù)據(jù)或理論預(yù)測(cè)。比較模擬結(jié)果與數(shù)據(jù):使用統(tǒng)計(jì)指標(biāo)(如均方根誤差或相關(guān)系數(shù))來(lái)量化模擬結(jié)果與實(shí)驗(yàn)數(shù)據(jù)或理論預(yù)測(cè)之間的差異。5.3.2校準(zhǔn)模擬參數(shù)如果模擬結(jié)果與實(shí)驗(yàn)數(shù)據(jù)或理論預(yù)測(cè)不一致,可能需要調(diào)整模擬參數(shù)。這通常是一個(gè)迭代過(guò)程,涉及以下步驟:識(shí)別參數(shù):確定哪些參數(shù)可能影響模擬結(jié)果。調(diào)整參數(shù):根據(jù)驗(yàn)證結(jié)果,調(diào)整參數(shù)值。重新運(yùn)行模擬:使用調(diào)整后的參數(shù)重新運(yùn)行模擬。重復(fù)驗(yàn)證:再次驗(yàn)證模擬結(jié)果,直到達(dá)到滿意的精度。通過(guò)遵循上述步驟,可以有效地設(shè)置和運(yùn)行LBM模擬,分析模擬結(jié)果,并驗(yàn)證其準(zhǔn)確性,從而在非牛頓流體動(dòng)力學(xué)研究中獲得有價(jià)值的見解。6高級(jí)主題與研究進(jìn)展6.1LBM在復(fù)雜幾何中的應(yīng)用6.1.1原理格子玻爾茲曼方法(LBM)在處理復(fù)雜幾何形狀的流體動(dòng)力學(xué)問(wèn)題時(shí)展現(xiàn)出獨(dú)特的優(yōu)勢(shì)。傳統(tǒng)數(shù)值方法如有限元或有限體積法在處理復(fù)雜邊界條件時(shí)需要精細(xì)的網(wǎng)格劃分,這不僅增加了計(jì)算成本,還可能引入網(wǎng)格依賴性誤差。相比之下,LBM基于格子點(diǎn)的離散化,能夠更自然地適應(yīng)復(fù)雜幾何,通過(guò)邊界條件的特殊處理,如“半格子”(half-way)邊界條件,實(shí)現(xiàn)對(duì)流體流動(dòng)的準(zhǔn)確模擬。6.1.2內(nèi)容在復(fù)雜幾何中應(yīng)用LBM,關(guān)鍵在于如何處理邊界。邊界條件的設(shè)定直接影響模擬的準(zhǔn)確性和穩(wěn)定性。例如,對(duì)于固體壁面,通常采用“反彈”(bounce-back)邊界條件,即流體粒子在遇到壁面時(shí),沿著入射方向反彈回去,以此來(lái)模擬無(wú)滑移邊界條件。示例假設(shè)我們有一個(gè)二維LBM模擬,其中包含一個(gè)復(fù)雜的幾何形狀,如一個(gè)繞流的圓柱體。下面是一個(gè)簡(jiǎn)化版的LBM代碼示例,用于處理圓柱體邊界:#導(dǎo)入必要的庫(kù)

importnumpyasnp

#定義LBM參數(shù)

nx,ny=100,100#網(wǎng)格大小

omega=1.5#放松時(shí)間

rho=np.ones((nx,ny))#密度分布

u=np.zeros((2,nx,ny))#速度分布

#初始化流體分布函數(shù)

f=np.zeros((9,nx,ny))

#圓柱體邊界

cylinder=np.zeros((nx,ny),dtype=bool)

radius=10

center=(50,50)

foriinrange(nx):

forjinrange(ny):

if(i-center[0])**2+(j-center[1])**2<radius**2:

cylinder[i,j]=True

#LBM主循環(huán)

fortinrange(1000):

#流體粒子流

foriinrange(9):

f[i,1:nx-1,1:ny-1]=np.roll(f[i,1:nx-1,1:ny-1],lattice[i],axis=(0,1))

#處理邊界

foriinrange(9):

iflattice[i][0]==0andlattice[i][1]==0:continue

f[i,cylinder]=f[i,cylinder]-(f[i,cylinder]-equilibrium[i](rho[cylinder],u[:,cylinder]))

#碰撞

f_eq=equilibrium(f)

f-=(1.0/omega)*(f-f_eq)

#更新密度和速度

rho=np.sum(f,axis=0)

u=np.zeros((2,nx,ny))

foriinrange(9):

u+=lattice[i]*f[i]

u/=rho

#注意:上述代碼僅為示例,未包含完整的LBM實(shí)現(xiàn)細(xì)節(jié)。6.1.3描述在上述示例中,我們首先定義了LBM的基本參數(shù),包括網(wǎng)格大小、放松時(shí)間、密度和速度分布。接著,我們初始化了流體分布函數(shù)f。然后,我們定義了圓柱體的邊界,通過(guò)一個(gè)布爾數(shù)組cylinder來(lái)標(biāo)記圓柱體的位置。在LBM的主循環(huán)中,我們首先執(zhí)行流體粒子的流過(guò)程,然后處理圓柱體邊界上的反彈條件,最后進(jìn)行碰撞步驟和更新密度與速度。6.2多相非牛頓流體的LBM模擬6.2.1原理非牛頓流體,如血液、油漆或聚合物溶液,其粘度不是常數(shù),而是依賴于剪切速率。在LBM中,通過(guò)引入額外的分布函數(shù)或修改碰撞算子,可以模擬非牛頓流體的特性。對(duì)于多相流,LBM通過(guò)相場(chǎng)方法或顏色格子模型來(lái)區(qū)分不同流體相,從而實(shí)現(xiàn)對(duì)界面的追蹤和流體動(dòng)力學(xué)的模擬。6.2.2內(nèi)容在多相非牛頓流體的LBM模擬中,關(guān)鍵在于如何準(zhǔn)確地描述界面和流體的非線性行為。相場(chǎng)方法通過(guò)引入一個(gè)連續(xù)的標(biāo)量場(chǎng)來(lái)表示不同相,而顏色格子模型則使用二進(jìn)制變量來(lái)區(qū)分相。非牛頓流體的粘度可以通過(guò)引入剪切速率依賴的粘度模型來(lái)模擬,如Carreau或Cross模型。示例下面是一個(gè)使用相場(chǎng)方法模擬兩相非牛頓流體的簡(jiǎn)化LBM代碼示例:#導(dǎo)入必要的庫(kù)

importnumpyasnp

#定義LBM參數(shù)

nx,ny=100,100#網(wǎng)格大小

omega=1.5#放松時(shí)間

rho=np.ones((2,nx,ny))#兩相密度分布

u=np.zeros((2,2,nx,ny))#兩相速度分布

phi=np.zeros((nx,ny))#相場(chǎng)

#初始化流體分布函數(shù)

f=np.zeros((9,2,nx,ny))

#非牛頓流體粘度模型

defviscosity(phi):

#假設(shè)phi=0表示第一相,phi=1表示第二相

#第一相為牛頓流體,第二相為非牛頓流體

mu1=1.0

mu2=1.0+0.5*np.sqrt(np.sum(u[1]**2,axis=0))#簡(jiǎn)化非牛頓粘度模型

returnmu1*(1-phi)+mu2*phi

#LBM主循環(huán)

fortinrange(1000):

#流體粒子流

foriinrange(9):

forphaseinrange(2):

f[i,phase,1:nx-1,1:ny-1]=np.roll(f[i,phase,1:nx-1,1:ny-1],lattice[i],axis=(1,2))

#處理邊界和相場(chǎng)

#...

#碰撞

f_eq=equilibrium(f)

f-=(1.0/omega)*(f-f_eq)

#更新密度、速度和相場(chǎng)

forphaseinrange(2):

rho[phase]=np.sum(f[:,phase],axis=0)

u[phase]=np.zeros((2,nx,ny))

foriinrange(9):

u[phase]+=lattice[i]*f[i,phase]

u[phase]/=rho[phase]

#更新相場(chǎng)

phi=update_phi(phi,u)

#注意:上述代碼僅為示例,未包含完整的LBM實(shí)現(xiàn)細(xì)節(jié),尤其是相場(chǎng)的更新和邊界條件的處理。6.2.3描述在上述示例中,我們模擬了兩相流體,其中第二相為非牛頓流體。我們首先定義了LBM的基本參數(shù),包括網(wǎng)格大小、放松時(shí)間、兩相的密度和速度分布,以及相場(chǎng)phi。然后,我們初始化了流體分布函數(shù)f。在LBM的主循環(huán)中,我們執(zhí)行了流體粒子的流過(guò)程,處理了邊界條件和相場(chǎng),進(jìn)行了碰撞步驟,并更新了密度、速度和相場(chǎng)。非牛頓流體的粘度通過(guò)viscosity函數(shù)來(lái)計(jì)算,該函數(shù)根據(jù)相場(chǎng)phi和速度u來(lái)確定局部粘度。6.3LBM與機(jī)器學(xué)習(xí)的結(jié)合6.3.1原理將機(jī)器學(xué)習(xí)技術(shù)與LBM結(jié)合,可以用于預(yù)測(cè)流體動(dòng)力學(xué)行為,特別是在非線性或復(fù)雜流體系統(tǒng)中。機(jī)器學(xué)習(xí)模型,如神經(jīng)網(wǎng)絡(luò),可以學(xué)習(xí)從流體分布函數(shù)到流體動(dòng)力學(xué)屬性的映射,從而加速模擬過(guò)程或提高預(yù)測(cè)精度。此外,機(jī)器學(xué)習(xí)還可以用于優(yōu)化LBM的參數(shù),如放松時(shí)間或粘度模型,以適應(yīng)特定的流體或幾何條件。6.3.2內(nèi)容結(jié)合LBM與機(jī)器學(xué)習(xí)的關(guān)鍵在于如何構(gòu)建和訓(xùn)練機(jī)器學(xué)習(xí)模型。通常,模型需要大量的訓(xùn)練數(shù)據(jù),這些數(shù)據(jù)可以通過(guò)運(yùn)行LBM模擬在不同條件下的流體動(dòng)力學(xué)行為來(lái)獲得。一旦模型訓(xùn)練完成,它就可以用于預(yù)測(cè)新的流體動(dòng)力學(xué)行為,而無(wú)需運(yùn)行完整的LBM模擬。示例下面是一個(gè)使用神經(jīng)網(wǎng)絡(luò)預(yù)測(cè)LBM中流體速度的簡(jiǎn)化代碼示例:#導(dǎo)入必要的庫(kù)

importnumpyasnp

fromtensorflow.keras.modelsimportSequential

fromtensorflow.keras.layersimportDense

#定義LBM參數(shù)

nx,ny=100,100#網(wǎng)格大小

omeg

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論