From b3cbc3810d3b3563c3270e0525fb93f639ae31db Mon Sep 17 00:00:00 2001 From: Henry Weller <http://cfd.direct> Date: Wed, 10 Feb 2016 09:44:55 +0000 Subject: [PATCH] translatingWallVelocityFvPatchVectorField: Changed the translation velocity to a Function1 to support time-variation --- ...ranslatingWallVelocityFvPatchVectorField.C | 40 ++++++++++--------- ...ranslatingWallVelocityFvPatchVectorField.H | 26 +++++------- 2 files changed, 32 insertions(+), 34 deletions(-) diff --git a/src/finiteVolume/fields/fvPatchFields/derived/translatingWallVelocity/translatingWallVelocityFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/translatingWallVelocity/translatingWallVelocityFvPatchVectorField.C index c60d0cc3fe..37b7ada772 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/translatingWallVelocity/translatingWallVelocityFvPatchVectorField.C +++ b/src/finiteVolume/fields/fvPatchFields/derived/translatingWallVelocity/translatingWallVelocityFvPatchVectorField.C @@ -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-2016 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -26,7 +26,6 @@ License #include "translatingWallVelocityFvPatchVectorField.H" #include "addToRunTimeSelectionTable.H" #include "volFields.H" -#include "surfaceFields.H" // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // @@ -38,38 +37,38 @@ translatingWallVelocityFvPatchVectorField ) : fixedValueFvPatchField<vector>(p, iF), - U_(vector::zero) + U_(0) {} Foam::translatingWallVelocityFvPatchVectorField:: translatingWallVelocityFvPatchVectorField ( - const translatingWallVelocityFvPatchVectorField& ptf, const fvPatch& p, const DimensionedField<vector, volMesh>& iF, - const fvPatchFieldMapper& mapper + const dictionary& dict ) : - fixedValueFvPatchField<vector>(ptf, p, iF, mapper), - U_(ptf.U_) -{} + fixedValueFvPatchField<vector>(p, iF), + U_(Function1<vector>::New("U", dict)) +{ + // Evaluate the wall velocity + updateCoeffs(); +} Foam::translatingWallVelocityFvPatchVectorField:: translatingWallVelocityFvPatchVectorField ( + const translatingWallVelocityFvPatchVectorField& ptf, const fvPatch& p, const DimensionedField<vector, volMesh>& iF, - const dictionary& dict + const fvPatchFieldMapper& mapper ) : - fixedValueFvPatchField<vector>(p, iF), - U_(dict.lookup("U")) -{ - // Evaluate the wall velocity - updateCoeffs(); -} + fixedValueFvPatchField<vector>(ptf, p, iF, mapper), + U_(ptf.U_, false) +{} Foam::translatingWallVelocityFvPatchVectorField:: @@ -79,7 +78,7 @@ translatingWallVelocityFvPatchVectorField ) : fixedValueFvPatchField<vector>(twvpvf), - U_(twvpvf.U_) + U_(twvpvf.U_, false) {} @@ -91,7 +90,7 @@ translatingWallVelocityFvPatchVectorField ) : fixedValueFvPatchField<vector>(twvpvf, iF), - U_(twvpvf.U_) + U_(twvpvf.U_, false) {} @@ -104,9 +103,12 @@ void Foam::translatingWallVelocityFvPatchVectorField::updateCoeffs() return; } + const scalar t = this->db().time().timeOutputValue(); + const vector U = U_->value(t); + // Remove the component of U normal to the wall in case the wall is not flat const vectorField n(patch().nf()); - vectorField::operator=(U_ - n*(n & U_)); + vectorField::operator=(U - n*(n & U)); fixedValueFvPatchVectorField::updateCoeffs(); } @@ -115,7 +117,7 @@ void Foam::translatingWallVelocityFvPatchVectorField::updateCoeffs() void Foam::translatingWallVelocityFvPatchVectorField::write(Ostream& os) const { fvPatchVectorField::write(os); - os.writeKeyword("U") << U_ << token::END_STATEMENT << nl; + U_->writeData(os); writeEntry("value", os); } diff --git a/src/finiteVolume/fields/fvPatchFields/derived/translatingWallVelocity/translatingWallVelocityFvPatchVectorField.H b/src/finiteVolume/fields/fvPatchFields/derived/translatingWallVelocity/translatingWallVelocityFvPatchVectorField.H index c6e9c70b88..5bc1d5e057 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/translatingWallVelocity/translatingWallVelocityFvPatchVectorField.H +++ b/src/finiteVolume/fields/fvPatchFields/derived/translatingWallVelocity/translatingWallVelocityFvPatchVectorField.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -35,7 +35,7 @@ Description \table Property | Description | Required | Default value - U | translational velocity | yes| + U | translational velocity | yes | \endtable Example of the boundary condition specification: @@ -47,9 +47,12 @@ Description } \endverbatim + The \c U entry is a Function1 of time, see Foam::Function1Types. + SeeAlso Foam::fixedValueFvPatchField + Foam::Function1Types SourceFiles translatingWallVelocityFvPatchVectorField.C @@ -60,6 +63,7 @@ SourceFiles #define translatingWallVelocityFvPatchVectorField_H #include "fixedValueFvPatchFields.H" +#include "Function1.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -77,7 +81,7 @@ class translatingWallVelocityFvPatchVectorField // Private data //- Translational velocity - vector U_; + autoPtr<Function1<vector>> U_; public: @@ -150,19 +154,11 @@ public: // Member functions - // Access functions - - //- Return the velocity - const vector& U() const - { - return U_; - } - - //- Update the coefficients associated with the patch field - virtual void updateCoeffs(); + //- Update the coefficients associated with the patch field + virtual void updateCoeffs(); - //- Write - virtual void write(Ostream&) const; + //- Write + virtual void write(Ostream&) const; }; -- GitLab