日韩精品中文字幕久久,97中文字幕在,欧美一性一乱一交一视频,漂亮人妻洗澡被公强 日日躁,欧美饥渴熟妇高潮喷水水,日本熟妇xxxx乱

開源軟件FREEFEM++,有限元(開源有限元軟件介紹)

#開源軟件# 。用有限元軟件Freefem 和工程作圖軟件 Tecplot 來完成有限元中偏微分方程求解。該有限元軟件只需要寫出有限元的變分形式,利用 自身的命令函數(shù),即可實現(xiàn) C 語言或者 Matlab 編制的數(shù)百行代碼的功能。FreeFem 軟件是一款數(shù)值求解偏微分方程的有限元軟件。它是一款免費的軟件,完全可以直接在http://www.freefem.org這個網(wǎng)站上下載安裝包,并自帶教程。很容易通過教程編制 FreeFem 有限元程序來數(shù)值求解偏微分方程。FreeFem 不是一個工具包,而是一個完整的有限元產(chǎn)品,具有內(nèi)存需求少、計算速度快、易學好用、功能強大、應用面廣等特點。

開源軟件FREEFEM++,有限元(開源有限元軟件介紹)

real m = 50; / / 設置網(wǎng)格尺度

meshTh=square(m,m);//生成一致網(wǎng)格 fespaceXh(Th,P2);//定義速度的有限元空間 fespaceMh(Th,P1);//定義壓力的有限元空間 Xhu1,u2,v1,v2,ooldu1,ooldu2;//聲明試探函數(shù)和檢驗函數(shù)

Mhp,q;//聲明壓力的試探函數(shù)和檢驗函數(shù)

realepsi=1e-6,TOL=1,n1;//定義相關(guān)的參

數(shù)

ofstreamout(“theFEforStokes.txt”);//定義計算結(jié)果輸出到的 TXT 文件

solveStokes([u1,u2,p],[v1,v2,q])=//定義偏微分方程,即變分形式

int2d( Th) ( dx ( u1 ) * dx ( v1 ) dy ( u1 ) * dy ( v1) dx( u2) * dx( v2) dy( u2) * dy( v2) / / a (u,v)

-p*(dx(v1) dy(v2))//b(v,p)

q*(dx(u1) dy(u2)))//b(u,q)

on(1,2,3,4,u1=0,u2=0) on(3,u1=1,u2

= 0) ; / / 定義邊界條件

plot([u1,u2],ps=“u1u2.eps”);

plot(p,ps=“p.eps”);//計算結(jié)果的可視化

這樣就完成了采用 FreeFem 軟件求解的全部過程。

使用該軟件進行編程、數(shù)值求解偏微分方程時,只需要寫出原偏微分方程的變分問題即可,無需進行單元局部和總體的編號、單元剛度矩陣和單元荷載向量的計算、總剛度矩陣和總荷載向量的組成、有限元線性方程組的求解等具體過程。采用“fespaceXh (Th,P2)”和“fespaceMh(Th,P1)”這段語句就完成了有限元空間的定義,并且使用“int2d( Th) ”這個命令就實現(xiàn)了數(shù)值積分的功能。寥寥數(shù)行即完成了對Stokes方程第一類邊值問題的有限元求解。對比使用 C或者 Matlab編程需幾百行的代碼,F(xiàn)reeFem 程序大大節(jié)約了編程時間。

但是, FreeFem 自帶的畫圖命令plot,所顯示的圖形并不完善。左圖對速度的作圖已經(jīng)超出了邊框; 右圖壓力的結(jié)果表示也不豐滿。一種工程上的作圖軟件來克服 FreeFem 自帶畫圖功能的缺陷。

基于 Tecplot 的可視化顯示方法。主要是根據(jù)一個數(shù)據(jù)文件來實現(xiàn)

可視化操作,最終完成數(shù)值結(jié)果的工程作圖。在 Freefem 程序的后面增加以下代碼,使有限元數(shù)值結(jié)果輸出成一個數(shù)據(jù)文件。這里需要兩個文件,一個存儲壓力,另一個存速度數(shù)據(jù)。數(shù)據(jù)輸出代碼如下:

ofstreamffu(“UV_new.dat”);//定義速度的存

儲文件名

ofstreamffp(“P_new.dat”);//定義壓力的存

儲文件名

ffp<<“Variables=”<<“X”<<“,”<<

“Y”<<“,”<<“P”<<endl;//壓力結(jié)果及對應

坐標

ffp<<“Zone”<<“”<<“N=”<<Th.nv<

<“,”<<“E=”<<Th.nt<<“,”

<<“F=FEPOINT,ET=TRIANGLE”<<

endl;//輸出單元局部編碼和整體編碼的對應關(guān)系ffu<<“Variables=”<<“X”<<“,”<<“Y”<<“,”<<“u”<<“,”<<“v”<<endl;

//速度結(jié)果及對應坐標

ffu<<“Zone”<<“”<<“N=”<<Th.nv<

<“,”<<“E=”<<Th.nt<<“,”

<<“F=FEPOINT,ET=TRIANGLE”<<

endl;

inti,j;

for(i=0;i<Th.nv;i )//具體輸出每個單元上的速度結(jié)果及對應坐標

{ffp<<Th(i).x<<“”<<Th(i).y<<“”

<<p(Th(i).x,Th(i).y)<<endl;

ffu<<Th(i).x<<“”<<Th(i).y<<“”

<<u1(Th(i).x,Th(i).y)<<“”<<u2(Th

(i).x,Th(i).y)<<endl;

}

for(i=0;i<Th.nt;i )//具體輸出每個單元的局部編碼

{for(j=0;j<3;j )

{ffu<<Th[i][j] 1<<“”;ffp<<Th[i][j] 1<<“”;

}

if(j==3)

{ffu<<endl;ffp<<endl;

}

}

這樣就得到了兩個數(shù)據(jù)件“UV_new.dat”和“P_new.dat”。再利用Tecplot做圖軟件,進行一系列的可視化操作,就可以得到的有限元方法數(shù)值解。

開源軟件FREEFEM++,有限元(開源有限元軟件介紹)

#開源軟件#

#有限元#

相關(guān)新聞

聯(lián)系我們
聯(lián)系我們
在線咨詢
分享本頁
返回頂部