From 25cb8d0eecc97305e28227392c46559ff0d47493 Mon Sep 17 00:00:00 2001 From: andy <andy> Date: Wed, 24 Sep 2014 13:28:56 +0100 Subject: [PATCH] ENH: Surface film modelling - updated thixotropic viscosity model --- .../thixotropicViscosity.C | 42 +++++++++++-------- .../thixotropicViscosity.H | 28 ++----------- 2 files changed, 28 insertions(+), 42 deletions(-) diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/thixotropicViscosity/thixotropicViscosity.C b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/thixotropicViscosity/thixotropicViscosity.C index 5847ce12278..3817aeeb1a6 100644 --- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/thixotropicViscosity/thixotropicViscosity.C +++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/thixotropicViscosity/thixotropicViscosity.C @@ -91,12 +91,12 @@ thixotropicViscosity::thixotropicViscosity ) : filmViscosityModel(typeName, owner, dict, mu), - a_(coeffDict_.lookup("a")), - b_(coeffDict_.lookup("b")), - c_(coeffDict_.lookup("c")), - d_(coeffDict_.lookup("d")), - mu0_(coeffDict_.lookup("mu0")), - muInf_(coeffDict_.lookup("muInf")), + a_("a", dimless/dimTime, coeffDict_.lookup("a")), + b_("b", dimless, coeffDict_.lookup("b")), + d_("d", dimless, coeffDict_.lookup("d")), + c_("c", pow(dimTime, d_.value() - scalar(1)), coeffDict_.lookup("c")), + mu0_("mu0", dimPressure*dimTime, coeffDict_.lookup("mu0")), + muInf_("muInf", mu0_.dimensions(), coeffDict_.lookup("muInf")), K_(1.0 - Foam::sqrt(muInf_/mu0_)), lambda_ ( @@ -144,27 +144,33 @@ void thixotropicViscosity::correct const volScalarField& delta = film.delta(); const volScalarField& deltaRho = film.deltaRho(); const surfaceScalarField& phi = film.phi(); + const volScalarField& alpha = film.alpha(); - // gamma-dot (shear rate) raised to the power d - volScalarField gDotPowD - ( - "gDotPowD", - pow(mag(U - Uw)/(delta + film.deltaSmall()), d_) - ); + // gamma-dot (shear rate) + volScalarField gDot("gDot", alpha*mag(U - Uw)/(delta + film.deltaSmall())); + + if (debug && this->owner().regionMesh().time().outputTime()) + { + gDot.write(); + } - dimensionedScalar c0("SMALL", dimMass/sqr(dimLength)/dimTime, SMALL); - volScalarField coeff(-deltaRho*c_*gDotPowD + c0); + dimensionedScalar deltaRho0("deltaRho0", deltaRho.dimensions(), ROOTVSMALL); + surfaceScalarField phiU(phi/fvc::interpolate(deltaRho + deltaRho0)); + + dimensionedScalar c0("c0", dimless/dimTime, ROOTVSMALL); + volScalarField coeff("coeff", -c_*pow(gDot, d_) + c0); fvScalarMatrix lambdaEqn ( - fvm::ddt(deltaRho, lambda_) - + fvm::div(phi, lambda_) - - fvm::Sp(fvc::div(phi), lambda_) + fvm::ddt(lambda_) + + fvm::div(phiU, lambda_) + - fvm::Sp(fvc::div(phiU), lambda_) == - deltaRho*a_*pow((1.0 - lambda_), b_) + a_*pow((1.0 - lambda_), b_) + fvm::SuSp(coeff, lambda_) ); + lambdaEqn.relax(); lambdaEqn.solve(); diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/thixotropicViscosity/thixotropicViscosity.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/thixotropicViscosity/thixotropicViscosity.H index 2c60dc42393..ac1a2ac2f01 100644 --- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/thixotropicViscosity/thixotropicViscosity.H +++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/thixotropicViscosity/thixotropicViscosity.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2013-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -105,38 +105,18 @@ protected: // Protected data -/* - //- Model `a' coefficient - scalar a_; - - //- Model `b' coefficient - scalar b_; - - //- Model `c' coefficient - scalar c_; - - //- Model `d' coefficient - scalar d_; - - //- Limiting viscosity when lambda = 1 - scalar mu0_; - - //- Limiting viscosity when lambda = 0 - scalar muInf_; -*/ - //- Model `a' coefficient dimensionedScalar a_; //- Model `b' coefficient dimensionedScalar b_; - //- Model `c' coefficient - dimensionedScalar c_; - //- Model `d' coefficient dimensionedScalar d_; + //- Model `c' coefficient (read after d since dims depend on d value) + dimensionedScalar c_; + //- Limiting viscosity when lambda = 1 dimensionedScalar mu0_; -- GitLab