diff --git a/src/regionModels/surfaceFilmModels/Make/files b/src/regionModels/surfaceFilmModels/Make/files index 7a9fd19f7a..c78c93da87 100644 --- a/src/regionModels/surfaceFilmModels/Make/files +++ b/src/regionModels/surfaceFilmModels/Make/files @@ -65,6 +65,7 @@ $(THERMOMODELS)/filmViscosityModel/constantViscosity/constantViscosity.C $(THERMOMODELS)/filmViscosityModel/liquidViscosity/liquidViscosity.C $(THERMOMODELS)/filmViscosityModel/thixotropicViscosity/thixotropicViscosity.C $(THERMOMODELS)/filmViscosityModel/ArrheniusViscosity/ArrheniusViscosity.C +$(THERMOMODELS)/filmViscosityModel/function1Viscosity/function1Viscosity.C /* Boundary conditions */ diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/function1Viscosity/function1Viscosity.C b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/function1Viscosity/function1Viscosity.C new file mode 100644 index 0000000000..ea7437c767 --- /dev/null +++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/function1Viscosity/function1Viscosity.C @@ -0,0 +1,94 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2017 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "function1Viscosity.H" +#include "addToRunTimeSelectionTable.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ +namespace regionModels +{ +namespace surfaceFilmModels +{ + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +defineTypeNameAndDebug(function1Viscosity, 0); + +addToRunTimeSelectionTable +( + filmViscosityModel, + function1Viscosity, + dictionary +); + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +function1Viscosity::function1Viscosity +( + surfaceFilmModel& film, + const dictionary& dict, + volScalarField& mu +) +: + filmViscosityModel(typeName, film, dict, mu), + viscosity_(filmViscosityModel::New(film, coeffDict_, mu)), + function_ + ( + Function1::New("function", coeffDict_) + ) +{} + + +// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // + +function1Viscosity::~function1Viscosity() +{} + + +// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // + +void function1Viscosity::correct +( + const volScalarField& p, + const volScalarField& T +) +{ + viscosity_->correct(p, T); + mu_.primitiveFieldRef() *= function_->value(T)(); + mu_.correctBoundaryConditions(); +} + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace surfaceFilmModels +} // End namespace regionModels +} // End namespace Foam + +// ************************************************************************* // diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/function1Viscosity/function1Viscosity.H b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/function1Viscosity/function1Viscosity.H new file mode 100644 index 0000000000..6d4aeea40c --- /dev/null +++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmViscosityModel/function1Viscosity/function1Viscosity.H @@ -0,0 +1,121 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2017 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +Class + Foam::regionModels::surfaceFilmModels::function1Viscosity + +Description + The Foam::Function1 temperature-dependent viscosity model multiplies the + viscosity of a base model by a Function1 temperature function. + +SourceFiles + function1Viscosity.C + +\*---------------------------------------------------------------------------*/ + +#ifndef function1Viscosity_H +#define function1Viscosity_H + +#include "filmViscosityModel.H" +#include "Function1.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ +namespace regionModels +{ +namespace surfaceFilmModels +{ + +/*---------------------------------------------------------------------------*\ + Class function1Viscosity Declaration +\*---------------------------------------------------------------------------*/ + +class function1Viscosity +: + public filmViscosityModel +{ + // Private member functions + + //- Disallow default bitwise copy construct + function1Viscosity(const function1Viscosity&); + + //- Disallow default bitwise assignment + void operator=(const function1Viscosity&); + + +protected: + + // Protected data + + //- Base viscosity model + autoPtr viscosity_; + + //- Viscosity factor as a function of temperature + autoPtr> function_; + + +public: + + //- Runtime type information + TypeName("function1"); + + + // Constructors + + //- Construct from surface film model + function1Viscosity + ( + surfaceFilmModel& film, + const dictionary& dict, + volScalarField& mu + ); + + + //- Destructor + virtual ~function1Viscosity(); + + + // Member Functions + + //- Correct + virtual void correct + ( + const volScalarField& p, + const volScalarField& T + ); +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace surfaceFilmModels +} // End namespace regionModels +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* //