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,21 +37,7 @@ translatingWallVelocityFvPatchVectorField ) : fixedValueFvPatchField(p, iF), - U_(vector::zero) -{} - - -Foam::translatingWallVelocityFvPatchVectorField:: -translatingWallVelocityFvPatchVectorField -( - const translatingWallVelocityFvPatchVectorField& ptf, - const fvPatch& p, - const DimensionedField& iF, - const fvPatchFieldMapper& mapper -) -: - fixedValueFvPatchField(ptf, p, iF, mapper), - U_(ptf.U_) + U_(0) {} @@ -65,13 +50,27 @@ translatingWallVelocityFvPatchVectorField ) : fixedValueFvPatchField(p, iF), - U_(dict.lookup("U")) + U_(Function1::New("U", dict)) { // Evaluate the wall velocity updateCoeffs(); } +Foam::translatingWallVelocityFvPatchVectorField:: +translatingWallVelocityFvPatchVectorField +( + const translatingWallVelocityFvPatchVectorField& ptf, + const fvPatch& p, + const DimensionedField& iF, + const fvPatchFieldMapper& mapper +) +: + fixedValueFvPatchField(ptf, p, iF, mapper), + U_(ptf.U_, false) +{} + + Foam::translatingWallVelocityFvPatchVectorField:: translatingWallVelocityFvPatchVectorField ( @@ -79,7 +78,7 @@ translatingWallVelocityFvPatchVectorField ) : fixedValueFvPatchField(twvpvf), - U_(twvpvf.U_) + U_(twvpvf.U_, false) {} @@ -91,7 +90,7 @@ translatingWallVelocityFvPatchVectorField ) : fixedValueFvPatchField(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> U_; public: @@ -150,19 +154,11 @@ public: // Member functions - // Access functions + //- Update the coefficients associated with the patch field + virtual void updateCoeffs(); - //- Return the velocity - const vector& U() const - { - return U_; - } - - //- Update the coefficients associated with the patch field - virtual void updateCoeffs(); - - //- Write - virtual void write(Ostream&) const; + //- Write + virtual void write(Ostream&) const; };