OpenFOAM 使用技巧總結

2021-09-02 22:32:59 字數 2873 閱讀 9110

向量陣列可以新建為向量列表形式,初始化方法為:

lista = (n,vector::zero)

vector a(vector::zero)生成不同資料型別的鍊錶並初始化:

#include"tuple2.h"

list>> complexdata(100);

forall(complexdata, i)

盡量避免迴圈。

例如:如果需要定義乙個分段函式,可以利用posneg函式:

v = a, if x < b

v = c if x > b

// can be coded as

volscalarfield v = neg(x - b)*a + pos(x-b)*c;

多程序可以使用sout或者pout輸出全部資料

dictionary中讀取vectorscalar不同:

例如:

vector u1(dict.lookup("u1"));

scalar r1(readscalar(dict.loocup("r1")));

對於label讀取沒有專門函式,可以以scalar型別讀取後進行強制型別轉換;

對於並計算:

foam::gsum(a)可以獲取不同程序中場a的加和;

pstream::nprocs()獲取並行的程序數;

pstream::myprocno()獲取當前的程序數

對於已經畫好的網格需要在某個方向平移,或者放大縮小可以採用transformpoints操作:

transformpoints -scale "(1 1 0.5)" 		//z方向網格點縮小0.5倍

transformpoints -translate "(0 0 0.5)" //z方向整體向上平移0.5

返回某一網格的8個頂點座標:出自cfd-online,親測有效

const facelist & ff = mesh.faces();

const pointfield & pp = mesh.points();

forall ( mesh.c(), celli)

bicgstab solver in openfoam (收斂性更佳,適合rotating meshes)出自cfd-online,

注意:執行makelib.sh(openfoam-x.x.x/foamfourieranalysis/fftw-3.3.3/資料夾下configure加執行許可權)。

輸出錯誤並跳出執行(多用於程式除錯過程中)

fatalerrorin("main.cpp pressure is unregular")

<< abort(fatalerror);

使用rhopimplefoam求解器出現棋盤效應時可以通過檢查殘差曲線,檢查計算是否收斂,若未收斂,可以通過增加system/fvsolution下pimple子檔案中求解迴圈次數來解決。

獲取向量場的乙個方向組分值:

volscalarfield ux

( ioobject

("ux",

runtime.timename(),

mesh,

ioobject::no_read,

ioobject::auto_write

),u.component(vector::x)

);

獲取某一邊界的壓力及面積:

label patchid = mesh.

boundarymesh()

.findpatchid

("inlet");

if(patchid ==-1

)const scalarfield p_inlet = p.

boundaryfield()

[patchid]

;const scalarfield area_face_inlet = mesh.

magsf()

.boundaryfield()

[patchid]

;

寫出某些patch

iofield cfout

( ioobject

("cf"

, mesh.

time()

.timename()

, mesh,

ioobject::no_read,

ioobject::no_write

), mesh.cf(

).boundaryfield()

[ patchid ]);

cfout.

write()

;

參考自cfd-online

將xy平面旋轉至xz平面

rotatemesh 「(0

10)」 「(0

01)」

顯示polymesh/sets/裡邊的facelist

foamtovtk -faceset nonorthofaces -time 0

Openfoam學習總結

ioobject有乙個規定的網格註冊模式 solver c是求解方程的過程,方程被分解成線性,便於矩陣計算,fvc,fvm field檔案訪問各類模型和case檔案,聚集所有需要用的場量和常量,在網格上註冊,是solver中唯一乙個關於網格處理的 blockmesh應該和icofoam一樣,是.c執...

Altium Designer使用技巧總結

總結一下在使用altium designer用到的一些技巧 1 在pcb中查詢某個元器件 a 在pcb中順序按下j c,然後輸入器件標號即可跳轉至所在位置,元件會出現在螢幕中心 b 如果原理圖和pbc在同一工程下,還可以在原理圖中選中元件,在元件上右鍵,選擇part actions select p...

vi使用技巧總結

1.進入vi 用vi開啟檔案 vi etc passwd 剛一開啟檔案是進入命令模式的 2.直接進入指定位置處 直接將游標定位到第n行 vi n 檔名 將游標定位到某字串處 vi 字串 檔名 3.進入編輯模式 i 在當前游標所在位置,插入隨後輸入的文字,游標後的文字相應的向右移動 i 在游標所在行的...