fenics 筆記 2 程式組成

2022-07-10 04:45:12 字數 816 閱讀 1501

總的來說,基於 fenics 的程式,可大致劃分為 4 個部分:問題域邊界條件問題描述求解

首先,需要定義需要求解的問題域。通常,問題域可離散為網格單元。此外,為了準確表示問題域中的不同區域,如多種材料、邊界等,常常在網格中加入標記。

一般來說,流程如下:

1> 建立網格,即 dolfin.mesh 。一般來說,可以借助 mashr 從檔案中讀取,也可以借助內建函式建立簡單/規則形狀的網格。例如:

mesh = dolfin.unitsquaremesh(8,8)
2> 建立函式空間,即 dolfin.functionspace 。一般來說,如下定義:

v = dolfin.functionspace(mesh, 'p', 1)
3> 子域 / 標記

在 fenics / dolfin 中,需要區分網格中的不用部分,如不同具有不同引數,或邊界等,一般需涉及子域以及標記

子域dolfin.subdomain

標記標記則一般通過 dolfin.meshfunction 來進行標記,或通過其他軟體繪製網格的時候,可以提前加入標記

一般,三種邊界條件dolfin.dirichletbcdolfin.neumannbcxx

通過變分後,描述需要求解的問題

直接求解就可以了

ARM程式組成

一般的可執行程式都包括 段 資料段。也可以簡單的看作由兩部分組成 ro段和rw段。ro段一般包括 段和一些常量,在執行的時候是唯讀的。而rw段包括一些全域性變數和靜態變數,在執行的時候是可以改變的 讀寫 如果有部分全域性變數被初始化為零,則rw段裡還包括了zi段。ro read only 段 rw ...

程式的組成

1 標頭檔案 包含結構宣告和使用這些結構的函式的原型。2 源 檔案 包含與機構有關的函式的 1 函式原型 最好不要在標頭檔案中包含函式的定義 2 使用 define或const定義的符號常量。3 結構宣告 4 類宣告 5 模板函式 5 內聯函式 將結構宣告放在標頭檔案中是可以的,因為它們不建立變數,...

第2章c 程式的組成部分

接著上一章的那個程式我們說起 include using namespace std int main cout hello world endl return 0 這個程式還有這兩種形式 include using namespace std int main cout hello world n...