向量陣列可以新建為向量列表形式,初始化方法為:
lista = (n,vector::zero)
vector a(vector::zero)
生成不同資料型別的鍊錶並初始化:
#include"tuple2.h"
list>> complexdata(100);
forall(complexdata, i)
盡量避免迴圈。
例如:如果需要定義乙個分段函式,可以利用pos
和neg
函式:
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
中讀取vector
和scalar
不同:
例如:
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 在游標所在行的...