話說旁門左道始終不及名門正派,所以強烈推薦軟件包作者的BLOG:http://rli.bloghome.cn/ !!!如上課一般講解,娓娓道來。
[AFEPack學習起點]:
The AFEPack Handbook : http://circus.math.pku.edu.cn/AFEPack/
學習AFEPack使用的“Step by Step Tutorial”(英)
http://circus.math.pku.edu.cn/AFEPack/index-3.html#Step_by_Step_Tutorial
對照例程:/usr/local/AFEPack/example/possion_equation/possion_equation.cpp
中文解釋版的:http://rli.bloghome.cn/posts/76143.html
(1)、有限元層次瞭解用AFEPack編程的基本程序結構
(2)、C++語言層次瞭解程序實現細節
源程序: /usr/local/AFEPack/library/include
/usr/local/AFEPack/library/src
參考文檔:http://circus.math.pku.edu.cn/AFEPack/html/index.html
也可以用 /usr/local/AFEPack/doc$ doxygen AFEPack.cfg
在本機 /usr/local/AFEPack/doc 目錄下生成以上網址提供的參考文檔以便於查看
/**
Doxygen是一種開源跨平臺的,以類似JavaDoc風格描述的文檔系統,完全支持C、C ++、Java、Objective-C和IDL語言,部分支持PHP、C#。註釋的語法與Qt-Doc、KDoc和JavaDoc兼容。
Doxgen可以從一套歸檔源文件開始,生成HTML格式的在線類瀏覽器,或離線的LATEX、RTF參考手冊。對於未歸檔的源文件,也可以通過配置Doxygen來提取代碼結構。或者藉助自動生成的包含依賴圖(include dependency graphs)、繼承圖(inheritance diagram)以及協作圖(collaboration diagram)來可視化文檔之間的關係。Doxygen生成的幫助文檔的格式可以是CHM、RTF、PostScript、PDF、HTML和Unix man page等。
*/
[相關準備]:(不是必須的,現學也可以,就是上手慢點,比如我:()
0、有限元
1、輔助開發工具
linux下編程
make 和 makefile “自動化編譯”
用GDB調試程序
shell編程
編輯器:Emacs or Vim(vi)
版本控制:CVS
Doxygen
Doxygen官方主頁:http://www.stack.nl/~dimitri/doxygen/,從這裏可以下載到最新的Doxygen發行版、源代碼以及使用文檔。
Doxygen使用的畫出各種圖形的第三方工具是AT&T實驗室的Graphviz。這是一個著名的開放源碼圖形繪製軟件,廣泛地應用於各種軟件相關圖形繪製,官方主頁:http://www.research.att.com/sw/tools/graphviz/
2、C++編程
STL:vector
STL:list
3、相關軟件
網格生成:Easymesh, ...
數據可視化軟件:Matlab, OpenDX
EasyMesh 說明書(輸入輸出文件格式)
http://dsec.pku.edu.cn/~rli/WiKi/Easymesh.html
後附輸入文件一例:轉自第一個例子:求解泊松方程
Easymesh主頁:http://www-dinma.univ.trieste.it/nirftc/research/easymesh/easymesh.html
(很遺憾據說:最新的easymesh數據格式已經改動,不能用於AFEPack。看見在web上有個和新版easymesh匹配的程序用來ShowMesh,挺方便看網格的。)
學習OpenDX:
指南:/usr/share/doc/dx/html/
練習例子:/usr/share/dx/samples/tutorial
空洞的LIST大致列完了,來點實用的triviality:
[用OpenDX看網格形狀]
0、easymesh生成網格數據
編譯easymesh.c生成的可執行文件複製到 /usr/bin/
$ gcc -o easymesh -O3 easymesh.c -lm
$ sudo cp ./easymesh /usr/bin/
準備好easymesh的輸入文件D.d,命令行運行 $ easymesh D
生成 D.n、D.e、D.s 三個輸出文件
1、用easymesh2opendx.bin將easymesh生成的數據轉化爲OpenDX輸入數據格式 *.dx
easymesh2opendx.bin 複製到 /usr/bin/
$ sudo cp /usr/local/AFEPack/example/tools/easymesh2opendx.bin /usr/bin/
$ easymesh2opendx.bin D tnnd
2、OpenDX可視化程序可參考/usr/local/AFEPack/example/local_refine/2d/2d.net
所用Tools:FileSelector, Import, ShowConnections, Image
[用OpenDX看計算結果],參考:
/usr/local/AFEPack/example/possion_equation/possion_equation.net
/usr/local/AFEPack/example/coefficient_possion_equation/coefficient_possion_equation.net
所用Tools:FileSelector, Import, RubberSheet, AutoColor, Image
[用Matlab看Easymesh生成的網格形狀]
/usr/local/AFEPack/example/step-7/showmesh.m
EasyMesh需要用戶手工寫一個對區域進行描述的文件作爲輸入文件,我們使用的文件名爲 D.d,其內容如下:
/begin{verbatim}
4 # 區域的頂點的個數 #
0: 0.0 0.0 0.05 1
1: 1.0 0.0 0.05 1
2: 1.0 1.0 0.05 1
3: 0.0 1.0 0.05 1
4 # 區域的邊界上邊的條數 #
0: 0 1 1
1: 1 2 1
2: 2 3 1
3: 3 0 1
/end{verbatim}
其中前面一個部分描述區域中的頂點,共有4個,然後每一行描述一個頂點的信息,其意義爲
/begin{verbatim}
頂點的序號: x座標 y座標 剖分密度h 材料標識
/end{verbatim}
後面一個部分則描述區域的邊界上的邊的條數,共有4條,然後每一行描述一條
邊的信息,其意義爲
/begin{verbatim}
邊的序號: 起始頂點序號 結束頂點序號 材料標識
/end{verbatim}
多嘴一句,上面這個“材料標識”看上去似乎不夠直觀,爲什麼這麼翻譯呢?
先不管,照貓畫虎即可,以後需要特別說明的地方再說
[筆記1.1]學習AFEPack起點準備
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
[筆記2.1]學習AFEPack的例程
HateCode
2020-06-20 02:47:45
軟件介紹: AFEPack 軟件 (李若, 劉文斌)
HateCode
2020-02-22 02:58:51
[筆記2.1]學習AFEPack的例程
HateCode
2020-06-20 02:47:45
軟件介紹: AFEPack 軟件 (李若, 劉文斌)
HateCode
2020-02-22 02:58:51