From 63da8af9468d3deb8315ab7ce05592d245940a91 Mon Sep 17 00:00:00 2001 From: Henry Date: Fri, 29 Nov 2013 16:55:18 +0000 Subject: [PATCH] interFoam: Added isotropic compression option --- .../solvers/multiphase/interFoam/alphaEqn.H | 17 ++++++----- .../interPhaseChangeFoam/alphaEqn.H | 1 + .../cfdTools/general/include/alphaControls.H | 6 ++++ .../multiphase/LTSInterFoam/wigleyHull/0/U | 12 ++++++-- .../LTSInterFoam/wigleyHull/0/alpha.water.org | 6 ++-- .../multiphase/LTSInterFoam/wigleyHull/0/k | 8 ++--- .../multiphase/LTSInterFoam/wigleyHull/0/nut | 4 +-- .../LTSInterFoam/wigleyHull/0/omega | 12 ++++---- .../LTSInterFoam/wigleyHull/0/p_rgh | 6 ++-- .../wigleyHull/system/controlDict | 2 +- .../LTSInterFoam/wigleyHull/system/fvSolution | 30 +++++++++++++------ .../wigleyHull/system/setFieldsDict | 11 +++++++ 12 files changed, 76 insertions(+), 39 deletions(-) diff --git a/applications/solvers/multiphase/interFoam/alphaEqn.H b/applications/solvers/multiphase/interFoam/alphaEqn.H index 195ed09fc9..d7dddd4fa7 100644 --- a/applications/solvers/multiphase/interFoam/alphaEqn.H +++ b/applications/solvers/multiphase/interFoam/alphaEqn.H @@ -2,14 +2,15 @@ word alphaScheme("div(phi,alpha)"); word alpharScheme("div(phirb,alpha)"); - //surfaceScalarField phic(mag(phi/mesh.magSf())); - //phic = min(interface.cAlpha()*phic, max(phic)); - surfaceScalarField phic - ( - (0.5*interface.cAlpha()) - *fvc::interpolate(volScalarField("tauc", fvc::surfaceSum(mag(phi)))) - /mesh.magSf() - ); + // Standard face-flux compression coefficient + surfaceScalarField phic(interface.cAlpha()*mag(phi/mesh.magSf())); + + // Add the optional isotropic compression contribution + if (icAlpha > 0) + { + phic *= (1.0 - icAlpha); + phic += (interface.cAlpha()*icAlpha)*fvc::interpolate(mag(U)); + } // Do not compress interface at non-coupled boundary faces // (inlets, outlets etc.) diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/alphaEqn.H b/applications/solvers/multiphase/interPhaseChangeFoam/alphaEqn.H index 45cba01d5b..fb38fed37e 100644 --- a/applications/solvers/multiphase/interPhaseChangeFoam/alphaEqn.H +++ b/applications/solvers/multiphase/interPhaseChangeFoam/alphaEqn.H @@ -71,6 +71,7 @@ ( geometricOneField(), alpha1, + tphiAlpha(), tphiAlphaCorr(), vDotvmcAlphal, ( diff --git a/src/finiteVolume/cfdTools/general/include/alphaControls.H b/src/finiteVolume/cfdTools/general/include/alphaControls.H index 7ba7a2f20f..636e13d848 100644 --- a/src/finiteVolume/cfdTools/general/include/alphaControls.H +++ b/src/finiteVolume/cfdTools/general/include/alphaControls.H @@ -18,3 +18,9 @@ bool alphaApplyPrevCorr ( alphaControls.lookupOrDefault("alphaApplyPrevCorr", false) ); + +// Isotropic compression coefficient +scalar icAlpha +( + alphaControls.lookupOrDefault("icAlpha", 0) +); diff --git a/tutorials/multiphase/LTSInterFoam/wigleyHull/0/U b/tutorials/multiphase/LTSInterFoam/wigleyHull/0/U index 26f3881965..92d3cfd744 100644 --- a/tutorials/multiphase/LTSInterFoam/wigleyHull/0/U +++ b/tutorials/multiphase/LTSInterFoam/wigleyHull/0/U @@ -15,21 +15,26 @@ FoamFile } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +Umean 1; + dimensions [0 1 -1 0 0 0 0]; -internalField uniform (1 0 0); +internalField uniform ($Umean 0 0); boundaryField { inlet { type fixedValue; - value uniform (1 0 0); + value $internalField; } outlet { - type zeroGradient; + type outletPhaseMeanVelocity; + alpha alpha.water; + Umean $Umean; + value $internalField; } sides @@ -40,6 +45,7 @@ boundaryField atmosphere { type pressureInletOutletVelocity; + tangentialVelocity $internalField; value uniform (0 0 0); } diff --git a/tutorials/multiphase/LTSInterFoam/wigleyHull/0/alpha.water.org b/tutorials/multiphase/LTSInterFoam/wigleyHull/0/alpha.water.org index 7fdeb46dc3..dbef449a2f 100644 --- a/tutorials/multiphase/LTSInterFoam/wigleyHull/0/alpha.water.org +++ b/tutorials/multiphase/LTSInterFoam/wigleyHull/0/alpha.water.org @@ -23,8 +23,8 @@ boundaryField { inlet { - type calculated; - value uniform 0; + type fixedValue; + value $internalField; } outlet @@ -41,7 +41,7 @@ boundaryField { type inletOutlet; inletValue uniform 0; - value uniform 0; + value $internalField; } hull_wall diff --git a/tutorials/multiphase/LTSInterFoam/wigleyHull/0/k b/tutorials/multiphase/LTSInterFoam/wigleyHull/0/k index abf36b9773..9f4d8df1c0 100644 --- a/tutorials/multiphase/LTSInterFoam/wigleyHull/0/k +++ b/tutorials/multiphase/LTSInterFoam/wigleyHull/0/k @@ -24,7 +24,7 @@ boundaryField inlet { type fixedValue; - value uniform 0.00015; + value $internalField; } outlet @@ -40,14 +40,14 @@ boundaryField atmosphere { type inletOutlet; - inletValue uniform 0.00015; - value uniform 0.00015; + inletValue $internalField; + value $internalField; } hull_wall { type kqRWallFunction; - value uniform 0.00015; + value $internalField; } } diff --git a/tutorials/multiphase/LTSInterFoam/wigleyHull/0/nut b/tutorials/multiphase/LTSInterFoam/wigleyHull/0/nut index 3d1b5371d4..5106e2b102 100644 --- a/tutorials/multiphase/LTSInterFoam/wigleyHull/0/nut +++ b/tutorials/multiphase/LTSInterFoam/wigleyHull/0/nut @@ -24,7 +24,7 @@ boundaryField inlet { type fixedValue; - value uniform 5e-07; + value $internalField; } outlet @@ -45,7 +45,7 @@ boundaryField hull_wall { type nutkWallFunction; - value uniform 0; + value $internalField; } } diff --git a/tutorials/multiphase/LTSInterFoam/wigleyHull/0/omega b/tutorials/multiphase/LTSInterFoam/wigleyHull/0/omega index 1cbf751ba7..885912311a 100644 --- a/tutorials/multiphase/LTSInterFoam/wigleyHull/0/omega +++ b/tutorials/multiphase/LTSInterFoam/wigleyHull/0/omega @@ -23,14 +23,14 @@ boundaryField inlet { type fixedValue; - value uniform 2; + value $internalField; } outlet { type inletOutlet; - inletValue uniform 2; - value uniform 2; + inletValue $internalField; + value $internalField; } outlet @@ -46,14 +46,14 @@ boundaryField atmosphere { type inletOutlet; - inletValue uniform 2; - value uniform 2; + inletValue $internalField; + value $internalField; } hull_wall { type omegaWallFunction; - value uniform 2; + value $internalField; } } diff --git a/tutorials/multiphase/LTSInterFoam/wigleyHull/0/p_rgh b/tutorials/multiphase/LTSInterFoam/wigleyHull/0/p_rgh index 2b4915fe5c..8355316557 100644 --- a/tutorials/multiphase/LTSInterFoam/wigleyHull/0/p_rgh +++ b/tutorials/multiphase/LTSInterFoam/wigleyHull/0/p_rgh @@ -23,7 +23,7 @@ boundaryField inlet { type fixedFluxPressure; - value uniform 0; + value $internalField; } outlet @@ -45,13 +45,13 @@ boundaryField rho rho; psi none; gamma 1; - value uniform 0; + value $internalField; } hull_wall { type fixedFluxPressure; - value uniform 0; + value $internalField; } } diff --git a/tutorials/multiphase/LTSInterFoam/wigleyHull/system/controlDict b/tutorials/multiphase/LTSInterFoam/wigleyHull/system/controlDict index 397c2f248e..d2aa8b3c71 100644 --- a/tutorials/multiphase/LTSInterFoam/wigleyHull/system/controlDict +++ b/tutorials/multiphase/LTSInterFoam/wigleyHull/system/controlDict @@ -23,7 +23,7 @@ startTime 0; stopAt endTime; -endTime 2000; +endTime 1000; deltaT 1; diff --git a/tutorials/multiphase/LTSInterFoam/wigleyHull/system/fvSolution b/tutorials/multiphase/LTSInterFoam/wigleyHull/system/fvSolution index e59fb400df..df8102dc06 100644 --- a/tutorials/multiphase/LTSInterFoam/wigleyHull/system/fvSolution +++ b/tutorials/multiphase/LTSInterFoam/wigleyHull/system/fvSolution @@ -17,11 +17,21 @@ FoamFile solvers { - alpha.water + "alpha.water.*" { nAlphaCorr 1; nAlphaSubCycles 1; cAlpha 1; + icAlpha 0.25; + + MULESCorr yes; + nLimiterIter 8; + alphaApplyPrevCorr true; + + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-8; + relTol 0; } pcorr @@ -56,14 +66,14 @@ solvers nCellsInCoarsestLevel 10; cacheAgglomeration true; - tolerance 1e-6; + tolerance 1e-7; relTol 0.01; }; p_rghFinal { $p_rgh; - tolerance 1e-6; + tolerance 1e-7; relTol 0; } @@ -81,17 +91,18 @@ solvers PIMPLE { - momentumPredictor yes; + momentumPredictor no; nCorrectors 1; nNonOrthogonalCorrectors 0; - maxCo 0.9; - maxAlphaCo 0.2; - nAlphaSweepIter 1; + maxCo 5; + maxAlphaCo 5; - rDeltaTSmoothingCoeff 0.1; - rDeltaTDampingCoeff 1; + rDeltaTSmoothingCoeff 0.05; + rDeltaTDampingCoeff 0.5; + nAlphaSweepIter 0; + nAlphaSpreadIter 0; maxDeltaT 1; } @@ -102,6 +113,7 @@ relaxationFactors } equations { + ".*" 1; } } diff --git a/tutorials/multiphase/LTSInterFoam/wigleyHull/system/setFieldsDict b/tutorials/multiphase/LTSInterFoam/wigleyHull/system/setFieldsDict index 75a2dfccb8..18f4b921a8 100644 --- a/tutorials/multiphase/LTSInterFoam/wigleyHull/system/setFieldsDict +++ b/tutorials/multiphase/LTSInterFoam/wigleyHull/system/setFieldsDict @@ -30,6 +30,17 @@ regions volScalarFieldValue alpha.water 1 ); } + + // Set patch values (using ==) + boxToFace + { + box (-100 -100 -100) (100 100 0); + + fieldValues + ( + volScalarFieldValue alpha.water 1 + ); + } );