diff --git a/src/regionModels/surfaceFilmModels/kinematicSingleLayer/kinematicSingleLayer.C b/src/regionModels/surfaceFilmModels/kinematicSingleLayer/kinematicSingleLayer.C index 86f5b34b63e550dac6fe049fc115522262d87433..050c27d3af041a9fc919c9af5f5f1b1dccac4d71 100644 --- a/src/regionModels/surfaceFilmModels/kinematicSingleLayer/kinematicSingleLayer.C +++ b/src/regionModels/surfaceFilmModels/kinematicSingleLayer/kinematicSingleLayer.C @@ -197,6 +197,12 @@ tmp<volScalarField> kinematicSingleLayer::pp() } +void kinematicSingleLayer::correctAlpha() +{ + alpha_ == pos(delta_ - dimensionedScalar("SMALL", dimless, SMALL)); +} + + void kinematicSingleLayer::updateSubmodels() { if (debug) @@ -503,6 +509,19 @@ kinematicSingleLayer::kinematicSingleLayer ), regionMesh() ), + alpha_ + ( + IOobject + ( + "alpha", + time().timeName(), + regionMesh(), + IOobject::READ_IF_PRESENT, + IOobject::AUTO_WRITE + ), + regionMesh(), + dimensionedScalar("zero", dimless, 0.0) + ), U_ ( IOobject @@ -838,6 +857,8 @@ void kinematicSingleLayer::evolveRegion() Info<< "kinematicSingleLayer::evolveRegion()" << endl; } + correctAlpha(); + updateSubmodels(); // Solve continuity for deltaRho_ @@ -1032,7 +1053,9 @@ void kinematicSingleLayer::info() const << indent << "min/max(mag(U)) = " << min(mag(U_)).value() << ", " << max(mag(U_)).value() << nl << indent << "min/max(delta) = " << min(delta_).value() << ", " - << max(delta_).value() << nl; + << max(delta_).value() << nl + << indent << "coverage = " + << gSum(alpha_.internalField()*magSf())/gSum(magSf()) << nl; injection_.info(Info); } diff --git a/src/regionModels/surfaceFilmModels/kinematicSingleLayer/kinematicSingleLayer.H b/src/regionModels/surfaceFilmModels/kinematicSingleLayer/kinematicSingleLayer.H index b084f885d48905bd801862d658605745658a203f..796866330c42e473729dda382164a826d919985e 100644 --- a/src/regionModels/surfaceFilmModels/kinematicSingleLayer/kinematicSingleLayer.H +++ b/src/regionModels/surfaceFilmModels/kinematicSingleLayer/kinematicSingleLayer.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -113,6 +113,9 @@ protected: //- Film thickness / [m] volScalarField delta_; + //- Film coverage indicator, 1 = covered, 0 = uncovered / [] + volScalarField alpha_; + //- Velocity - mean / [m/s] volVectorField U_; @@ -227,6 +230,9 @@ protected: // Implicit pressure source coefficient virtual tmp<volScalarField> pp(); + //- Correct film coverage field + virtual void correctAlpha(); + //- Update the film sub-models virtual void updateSubmodels(); @@ -323,6 +329,9 @@ public: //- Return const access to the film thickness / [m] inline const volScalarField& delta() const; + //- Return the film coverage, 1 = covered, 0 = uncovered / [] + inline const volScalarField& alpha() const; + //- Return the film velocity [m/s] virtual const volVectorField& U() const; diff --git a/src/regionModels/surfaceFilmModels/kinematicSingleLayer/kinematicSingleLayerI.H b/src/regionModels/surfaceFilmModels/kinematicSingleLayer/kinematicSingleLayerI.H index e717acc430be46b2929e903844263c8f4ec8f124..89eb8b614543b48de0a1d0814cc14ff06b0b0f57 100644 --- a/src/regionModels/surfaceFilmModels/kinematicSingleLayer/kinematicSingleLayerI.H +++ b/src/regionModels/surfaceFilmModels/kinematicSingleLayer/kinematicSingleLayerI.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -79,6 +79,12 @@ inline const volScalarField& kinematicSingleLayer::delta() const } +inline const volScalarField& kinematicSingleLayer::alpha() const +{ + return alpha_; +} + + inline volVectorField& kinematicSingleLayer::USpPrimary() { return USpPrimary_;