看看男人日女人,亚洲欧美日韩日本国产三,国产精品欧美日韩区二区,妓女影库妓女网在线视频

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

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

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

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

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

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

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

數(shù)

ofstreamout(“theFEforStokes.txt”);//定義計(jì)算結(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”);//計(jì)算結(jié)果的可視化

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

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

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

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

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

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

儲文件名

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

儲文件名

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

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

坐標(biāo)

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

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

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

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

//速度結(jié)果及對應(yīng)坐標(biāo)

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

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

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

endl;

inti,j;

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

{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 )//具體輸出每個(gè)單元的局部編碼

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

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

}

if(j==3)

{ffu<<endl;ffp<<endl;

}

}

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

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

#開源軟件#

#有限元#

相關(guān)新聞

聯(lián)系我們
聯(lián)系我們
在線咨詢
分享本頁
返回頂部
北票市| 盖州市| 忻州市| 康马县| 镇雄县| 仁布县| 石嘴山市| 铁力市| 临颍县| 武清区| 房山区| 芜湖市| 南昌市| 淮阳县| 留坝县| 灯塔市| 扶余县| 江华| 沙湾县| 贡嘎县| 米泉市| 玉林市| 嘉善县| 开原市| 景谷| 叙永县| 垦利县| 班玛县| 营口市| 舞阳县| 贺州市| 随州市| 嘉义市| 龙泉市| 谷城县| 彭阳县| 和田市| 勐海县| 遂宁市| 潜山县| 呼和浩特市|