OpenFoamの覚書です。
基本の流れ
バージョン : Windows版(OpenFOAM-v2106-windows-mingw.exe)
1.OpenFoam起動 2.チュートリアルの「pitzDaily」(コピー済み)のフォルダに移動 3. blockMesh コマンドを実行(メッシュ作成) 4. simpleFoam コマンドを実行(計算実行) 5. foamToVTK コマンドを実行(ParaView用結果ファイル作成) 6. ParaViewにて結果表示
並列計算 (linux)
並列計算のコマンド
decomposePar mpirun -np 4 interFoam -parallel reconstructPar
decomposeParDict の実行
mpirun -np (CPUNUM) (jobCOMMAND) -parallel :計算実行
要素
要素の作成方法は以下があります。
・blockMeshコマンドによる作成
・外部メッシャーによる要素インポート(T711 要素ファイルの使)
フィールドファイル
dimensions
物理量と基本単位を表示しています。
[kg m s k mol A cd]
質量:kg
長さ:m
時間:s
温度:k
物質量:mol
電流:A
光度:cd
dimensions [1 2 -3 0 0 -1 0]; kg・m^2 / s^3 /A (単位時間あたりの磁束 = V(電圧))
dimensions [1 -1 -2 0 0 0 0]; kg/m/s^2 (Pa:パスカル)
動的メッシュ
constantフォルダにdynamicMeshDictファイルを設定。
dynamicMeshDict その1
dynamicFvMesh dynamicRefineFvMesh;
// How often to refine
refineInterval 1;
// Field to be refinement on
field alpha.water;
// Refine field inbetween lower..upper
lowerRefineLevel 0.001;
upperRefineLevel 0.999;
// If value < unrefineLevel unrefine
unrefineLevel 10;
// Have slower than 2:1 refinement
nBufferLayers 1;
// Refine cells only up to maxRefinement levels
maxRefinement 2;
// Stop refinement if maxCells reached
maxCells 1500000;
// Flux field and corresponding velocity field. Fluxes on changed
// faces get recalculated by interpolating the velocity. Use 'none'
// on surfaceScalarFields that do not need to be reinterpolated.
correctFluxes
(
(phi none)
(nHatf none)
(rhoPhi none)
(alphaPhi_ none)
(ghf none)
(phi0 none)
(dVf_ none)
);
// Write the refinement level as a volScalarField
dumpLevel true;
dynamicMeshDict その2
dynamicFvMesh dynamicMotionSolverFvMesh; motionSolverLibs (fvMotionSolvers); motionSolver velocityComponentLaplacian; component x; diffusivity directional (1 200 0);
Paraviewファイル
paraviewで開くためのファイルを作成します。
以下のコマンドでvtkファイルに変換してくれます。
foamToVTK
wsl
linuxでは以下のコマンドでParaviewで読めるfoamファイルを作成できます。
touch <ファイル名.foam>


コメント