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>
コメント