step-1

簡介

dealii是一款開源的求解偏微分方程的有限元軟件息拜,它優(yōu)點(diǎn):
1.多種單元類型
2.可以自適應(yīng)網(wǎng)格
3.文檔和范例齊全
4.與其它庫有良好的接口
5.使用c++編寫

安裝

dealii可以在官網(wǎng)上或者github上下載源碼赞别,解壓后進(jìn)入源文件目錄安裝堤撵。


mkdir build

cd build

cmake -DCMAKE_INSTALL_PREFIX=/path/to/install/dir ../deal.II

make install

make test

自行安裝其他一些依賴荒给。

編譯與運(yùn)行

dealii的文檔和實(shí)例比較多蛔趴,可以點(diǎn)擊此處查看。
編譯命令為:

cmake .
make
make run

第一條命令用來創(chuàng)建Makefile文件羔挡,指明程序所依賴的文件氯哮、怎樣編譯和運(yùn)行玛追。此命令應(yīng)該能找到之前安裝deal.II后的庫文件,如果不能找到,需要人為指定路徑:

cmake -DDEAL_II_DIR=/path/to/installed/deal.II 

第二條命令將源文件編譯成可執(zhí)行文件档冬,第三條是運(yùn)行該可執(zhí)行文件驮配。

第一個(gè)教學(xué)算例--step-1

first_grid

#include<deal.II/grid/tria.h>

此頭文件聲明了Triangulation類模板敬特,Triangulation<1>表示1維的線。

#include <deal.II/grid/tria_accessor.h>
#include <deal.II/grid/tria_iterator.h>

第一個(gè)頭文件表示存取器灾部,第二個(gè)是迭代器叠荠,用于對單元進(jìn)行循環(huán)遍歷。

#include <deal.II/grid/grid_generator.h>

用于生成標(biāo)準(zhǔn)網(wǎng)格者娱。

#include <deal.II/grid/grid_out.h>

用于各種網(wǎng)格圖形的輸出框沟。

#include <iostream>
#include <fstream>

用于c++的的輸出。

#include <cmath>

導(dǎo)入各種數(shù)學(xué)公式。

using namespace dealii;

使用命名空間蔫敲,避免變量名的沖突裙犹,以及簡化dealii中類的使用掺冠。

創(chuàng)建第一個(gè)網(wǎng)格

創(chuàng)建一個(gè)四邊形的全局細(xì)化的網(wǎng)格:

void first_grid()
{

第一件事是定義一個(gè)二維的對象:

Triangulation<2>  triangulation;

使用hyper_cube初始化對象triangulation服球,現(xiàn)在只有一個(gè)四邊形單元斩熊,邊長默認(rèn)為1,可以使用refine_global來全局細(xì)化該單包,加密4次:

  GridGenerator::hyper_cube (triangulation);
  triangulation.refine_global (4);

輸出eps格式的圖形:

std::ofstream out ("grid-1.eps");
GridOut grid_out;
grid_out.write_eps (triangulation, out);
std::cout << "Grid written to grid-1.eps" << std::endl;
}

second_grid

指定圓環(huán)的圓心以及圓環(huán)的兩個(gè)半徑蒸健,使用hyper_shell生成三維的殼體或者二維的環(huán)座享。

 const Point<2> center(1, 0);
  const double   inner_radius = 0.5, outer_radius = 1.0;
  GridGenerator::hyper_shell(
      triangulation, center, inner_radius, outer_radius, 10)

為了減少圖形的鋸齒婉商,加密了5次,使用auto迭代器渣叛,使用vertices_per_cell獲得每個(gè)單元頂點(diǎn)坐標(biāo)丈秩,與中心點(diǎn)距離做判斷,決定是否加密淳衙。

for (unsigned int step = 0; step < 5; ++step)
      for (auto &cell : triangulation.active_cell_iterators())
            {
                 for (unsigned int v = 0; v < GeometryInfo<2>::vertices_per_cell; ++v)
                      {
                        const double distance_from_center =
                          center.distance(cell->vertex(v));
                         if (std::fabs(distance_from_center - inner_radius) < 1e-10)
                             {
                              cell->set_refine_flag();
                              break;
                               }
                        }
            }
       triangulation.execute_coarsening_and_refinement();
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蘑秽,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子箫攀,更是在濱河造成了極大的恐慌肠牲,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件靴跛,死亡現(xiàn)場離奇詭異缀雳,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)梢睛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進(jìn)店門肥印,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人绝葡,你說我怎么就攤上這事深碱。” “怎么了藏畅?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵敷硅,是天一觀的道長。 經(jīng)常有香客問我愉阎,道長绞蹦,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任诫硕,我火速辦了婚禮坦辟,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘章办。我一直安慰自己锉走,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布藕届。 她就那樣靜靜地躺著挪蹭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪休偶。 梳的紋絲不亂的頭發(fā)上梁厉,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼词顾。 笑死八秃,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的肉盹。 我是一名探鬼主播昔驱,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼上忍!你這毒婦竟也來了骤肛?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤窍蓝,失蹤者是張志新(化名)和其女友劉穎腋颠,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體吓笙,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡淑玫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了面睛。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片混移。...
    茶點(diǎn)故事閱讀 39,919評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖侮穿,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情毁嗦,我是刑警寧澤亲茅,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站狗准,受9級(jí)特大地震影響克锣,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜腔长,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一袭祟、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧捞附,春花似錦巾乳、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至晴氨,卻和暖如春鹰祸,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背跟继。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工种冬, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留镣丑,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓娱两,卻偏偏與公主長得像莺匠,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子谷婆,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容