OpenFoamのサンプル確認(パラメータやキーワードの覚書)です。
チュートリアルフォルダ:チュートリアル場所(windows)
ベース
バージョン : WINDOWS v2206
引用元
<チュートリアルフォルダ>\multiphase \compressibleMultiphaseInterFoam\laminar\damBreak4phase
類似:T721_101 multiPhase damBreak
結果図
4種類の物性組になります。
作業
基本的な流れはT703 OpenFoam tipsと同じです。(または作業)
//チュートリアルからサンプルをコピーしておきます。// //0.origから0へ(.org削除) //コマンド:メッシュ作成 blockMesh //コマンド実行 setFields //計算実行// compressibleMultiphaseInterFoam //ParaView用VTK変換// foamToVTK
実行モジュールが圧縮性ありになります。
全体構造
//初期フォルダ・ファイル構成 damBreak4phase ├ 0.orig │ ├ alpha.air │ ├ alpha.mercury │ ├ alpha.oil │ ├ alpha.water │ ├ alphas │ ├ p │ ├ p_rgh │ ├ T │ └ U ├ constant │ ├ g │ ├ thermophysicalProperties │ ├ thermophysicalProperties.air │ ├ thermophysicalProperties.mercury │ ├ thermophysicalProperties.oil │ ├ thermophysicalProperties.water │ └ turbulenceProperties ├ system │ ├ blockMeshDict │ ├ controlDict │ ├ decomposeParDict │ ├ fvSchemes │ ├ fvSolution │ └ setFieldsDict ├ Allclean └ Allrun
0.orig
alpha.air
class volScalarField;
object alpha.air;
dimensions [0 0 0 0 0 0 0]; internalField uniform 0; boundaryField { leftWall { type alphaContactAngle; thetaProperties ( ( water air ) 90 0 0 0 ( oil air ) 90 0 0 0 ( mercury air ) 90 0 0 0 ( water oil ) 90 0 0 0 ( water mercury ) 90 0 0 0 ( oil mercury ) 90 0 0 0 ); value uniform 0; } rightWall { type alphaContactAngle; thetaProperties ( ( water air ) 90 0 0 0 ( oil air ) 90 0 0 0 ( mercury air ) 90 0 0 0 ( water oil ) 90 0 0 0 ( water mercury ) 90 0 0 0 ( oil mercury ) 90 0 0 0 ); value uniform 1; } lowerWall { type alphaContactAngle; thetaProperties ( ( water air ) 90 0 0 0 ( oil air ) 90 0 0 0 ( mercury air ) 90 0 0 0 ( water oil ) 90 0 0 0 ( water mercury ) 90 0 0 0 ( oil mercury ) 90 0 0 0 ); value uniform 0; } atmosphere { type inletOutlet; inletValue uniform 1; value uniform 1; } defaultFaces { type empty; } }
alpha.mercury
class volScalarField;
object alpha.mercury;
dimensions [0 0 0 0 0 0 0]; internalField uniform 0; boundaryField { leftWall { type zeroGradient; } rightWall { type zeroGradient; } lowerWall { type zeroGradient; } atmosphere { type inletOutlet; inletValue uniform 0; value uniform 0; } defaultFaces { type empty; } }
alpha.oil
dimensions [0 0 0 0 0 0 0]; internalField uniform 0; boundaryField { leftWall { type zeroGradient; } rightWall { type zeroGradient; } lowerWall { type zeroGradient; } atmosphere { type inletOutlet; inletValue uniform 0; value uniform 0; } defaultFaces { type empty; } }
alpha.water
dimensions [0 0 0 0 0 0 0]; internalField uniform 0; boundaryField { leftWall { type zeroGradient; } rightWall { type zeroGradient; } lowerWall { type zeroGradient; } atmosphere { type inletOutlet; inletValue uniform 0; value uniform 0; } defaultFaces { type empty; } }
alphas
class volScalarField; object alphas;
dimensions [0 0 0 0 0 0 0]; internalField uniform 0; boundaryField { leftWall { type zeroGradient; } rightWall { type zeroGradient; } lowerWall { type zeroGradient; } atmosphere { type zeroGradient; } defaultFaces { type empty; } }
p
dimensions [1 -1 -2 0 0 0 0]; internalField uniform 1e5; boundaryField { leftWall { type calculated; value $internalField; } rightWall { type calculated; value $internalField; } lowerWall { type calculated; value $internalField; } atmosphere { type calculated; value $internalField; } defaultFaces { type empty; } }
p_rgh
dimensions [1 -1 -2 0 0 0 0]; internalField uniform 1e5; boundaryField { leftWall { type fixedFluxPressure; value $internalField; } rightWall { type fixedFluxPressure; value $internalField; } lowerWall { type fixedFluxPressure; value $internalField; } atmosphere { type totalPressure; p0 uniform 1e5; } defaultFaces { type empty; } }
T
dimensions [0 0 0 1 0 0 0]; internalField uniform 293; boundaryField { leftWall { type fixedValue; value $internalField; } rightWall { type fixedValue; value $internalField; } lowerWall { type fixedValue; value uniform 293; } atmosphere { type inletOutlet; phi rhoPhi; inletValue $internalField; } defaultFaces { type empty; } }
U
dimensions [0 1 -1 0 0 0 0]; internalField uniform (0 0 0); boundaryField { leftWall { type noSlip; } rightWall { type noSlip; } lowerWall { type noSlip; } atmosphere { type pressureInletOutletVelocity; value uniform (0 0 0); } defaultFaces { type empty; } }
constant
g
dimensions [0 1 -2 0 0 0 0]; value (0 -9.81 0);
thermophysicalProperties
phases (water oil mercury air); pMin 10000; sigmas ( (air water) 0.07 (air oil) 0.07 (air mercury) 0.07 (water oil) 0.07 (water mercury) 0.07 (oil mercury) 0.07 );
thermophysicalProperties.air
thermoType { type heRhoThermo; mixture pureMixture; transport const; thermo hConst; equationOfState perfectGas; specie specie; energy sensibleInternalEnergy; } mixture { specie { molWeight 28.9; } thermodynamics { Cp 1007; Hf 0; } transport { mu 1.84e-05; Pr 0.7; } }
thermophysicalProperties.mercury
thermoType { type heRhoThermo; mixture pureMixture; transport const; thermo hConst; equationOfState perfectFluid; specie specie; energy sensibleInternalEnergy; } mixture { specie { molWeight 200.59; } equationOfState { R 6818; rho0 13529; } thermodynamics { Cp 139; Hf 0; } transport { mu 1.522e-3; Pr 0.022; } }
thermophysicalProperties.oil
thermoType { type heRhoThermo; mixture pureMixture; transport const; thermo hConst; equationOfState perfectFluid; specie specie; energy sensibleInternalEnergy; } mixture { specie { molWeight 100.21; } equationOfState { R 3564; rho0 684; } thermodynamics { Cp 2240; Hf 0; } transport { mu 3.76e-4; Pr 6; } }
thermophysicalProperties.water
thermoType { type heRhoThermo; mixture pureMixture; transport const; thermo hConst; equationOfState perfectFluid; specie specie; energy sensibleInternalEnergy; } mixture { specie { molWeight 18.0; } equationOfState { R 7255; rho0 1027; } thermodynamics { Cp 4195; Hf 0; } transport { mu 3.645e-4; Pr 2.289; } }
turbulenceProperties
simulationType laminar;
system
blockMeshDict
scale 0.146; vertices ( (0 0 0) (2 0 0) (2.16438 0 0) (4 0 0) (0 0.32876 0) (2 0.32876 0) (2.16438 0.32876 0) (4 0.32876 0) (0 4 0) (2 4 0) (2.16438 4 0) (4 4 0) (0 0 0.1) (2 0 0.1) (2.16438 0 0.1) (4 0 0.1) (0 0.32876 0.1) (2 0.32876 0.1) (2.16438 0.32876 0.1) (4 0.32876 0.1) (0 4 0.1) (2 4 0.1) (2.16438 4 0.1) (4 4 0.1) ); blocks ( hex (0 1 5 4 12 13 17 16) (23 8 1) simpleGrading (1 1 1) hex (2 3 7 6 14 15 19 18) (19 8 1) simpleGrading (1 1 1) hex (4 5 9 8 16 17 21 20) (23 42 1) simpleGrading (1 1 1) hex (5 6 10 9 17 18 22 21) (4 42 1) simpleGrading (1 1 1) hex (6 7 11 10 18 19 23 22) (19 42 1) simpleGrading (1 1 1) ); edges ( ); boundary ( leftWall { type wall; faces ( (0 12 16 4) (4 16 20 8) ); } rightWall { type wall; faces ( (7 19 15 3) (11 23 19 7) ); } lowerWall { type wall; faces ( (0 1 13 12) (1 5 17 13) (5 6 18 17) (2 14 18 6) (2 3 15 14) ); } atmosphere { type patch; faces ( (8 20 21 9) (9 21 22 10) (10 22 23 11) ); } ); mergePatchPairs ( );
controlDict
application compressibleMultiphaseInterFoam; startFrom startTime; startTime 0; stopAt endTime; endTime 10; deltaT 0.001; writeControl adjustable; writeInterval 0.05; purgeWrite 0; writeFormat ascii; writePrecision 6; writeCompression off; timeFormat general; timePrecision 6; runTimeModifiable yes; adjustTimeStep yes; maxCo 0.5; maxAlphaCo 0.5; maxDeltaT 1;
decomposeParDict
numberOfSubdomains 4; method simple; coeffs { n (2 2 1); }
fvSchemes
ddtSchemes { default Euler; } gradSchemes { default Gauss linear; } divSchemes { div(rhoPhi,U) Gauss upwind; div(phi,alpha) Gauss vanLeer; div(phirb,alpha) Gauss linear; "div\(phi,.*rho.*\)" Gauss upwind; div(rhoPhi,T) Gauss upwind; div(rhoPhi,K) Gauss upwind; div(phi,p) Gauss upwind; div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear; } laplacianSchemes { default Gauss linear corrected; } interpolationSchemes { default linear; } snGradSchemes { default corrected; }
fvSolution
solvers { "alpha.*" { nAlphaSubCycles 4; cAlpha 1; } "pcorr.*" { solver PCG; preconditioner { preconditioner GAMG; tolerance 1e-05; relTol 0; smoother GaussSeidel; } tolerance 1e-05; relTol 0; maxIter 100; } ".*(rho|rhoFinal)" { solver diagonal; } p_rgh { solver GAMG; tolerance 1e-07; relTol 0.05; smoother GaussSeidel; } p_rghFinal { solver PCG; preconditioner { preconditioner GAMG; tolerance 1e-07; relTol 0; nVcycles 2; smoother GaussSeidel; } tolerance 1e-07; relTol 0; maxIter 20; } "(U|T|k|B|nuTilda)" { solver smoothSolver; smoother symGaussSeidel; tolerance 1e-08; relTol 0.1; nSweeps 1; } "(U|T|k|B|nuTilda)Final" { $U; relTol 0; } } PIMPLE { nCorrectors 2; nNonOrthogonalCorrectors 0; } relaxationFactors { equations { "U.*" 1; } }
setFieldsDict
defaultFieldValues ( volScalarFieldValue alpha.air 1 volScalarFieldValue alpha.water 0 volScalarFieldValue alpha.oil 0 volScalarFieldValue alpha.mercury 0 volVectorFieldValue U (0 0 0) ); regions ( boxToCell { box (0 0 -1) (0.1461 0.292 1); fieldValues ( volScalarFieldValue alpha.water 1 volScalarFieldValue alpha.oil 0 volScalarFieldValue alpha.mercury 0 volScalarFieldValue alpha.air 0 ); } boxToCell { box (0.1461 0 -1) (0.2922 0.292 1); fieldValues ( volScalarFieldValue alpha.water 0 volScalarFieldValue alpha.oil 1 volScalarFieldValue alpha.mercury 0 volScalarFieldValue alpha.air 0 ); } boxToCell { box (0 0 -1) (0.1461 0.1 1); fieldValues ( volScalarFieldValue alpha.water 0 volScalarFieldValue alpha.oil 0 volScalarFieldValue alpha.mercury 1 volScalarFieldValue alpha.air 0 ); } );
コメント