diff --git a/src/finiteVolume/fields/fvPatchFields/derived/movingWallVelocity/movingWallVelocityFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/movingWallVelocity/movingWallVelocityFvPatchVectorField.C index cd94de26cabf8665aff06ae6227c967b9040ee65..11f811e4433bbad23b2372a5842fd1efaa4866f3 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/movingWallVelocity/movingWallVelocityFvPatchVectorField.C +++ b/src/finiteVolume/fields/fvPatchFields/derived/movingWallVelocity/movingWallVelocityFvPatchVectorField.C @@ -105,32 +105,38 @@ void Foam::movingWallVelocityFvPatchVectorField::updateCoeffs() return; } - const fvPatch& p = patch(); - const polyPatch& pp = p.patch(); const fvMesh& mesh = dimensionedInternalField().mesh(); - const pointField& oldPoints = mesh.oldPoints(); - vectorField oldFc(pp.size()); - - forAll(oldFc, i) + if (mesh.changing()) { - oldFc[i] = pp[i].centre(oldPoints); - } + const fvPatch& p = patch(); + const polyPatch& pp = p.patch(); + const pointField& oldPoints = mesh.oldPoints(); - const vectorField Up((pp.faceCentres() - oldFc)/mesh.time().deltaTValue()); + vectorField oldFc(pp.size()); - const volVectorField& U = db().lookupObject<volVectorField>(UName_); - scalarField phip - ( - p.patchField<surfaceScalarField, scalar>(fvc::meshPhi(U)) - ); + forAll(oldFc, i) + { + oldFc[i] = pp[i].centre(oldPoints); + } - const vectorField n(p.nf()); - const scalarField& magSf = p.magSf(); - tmp<scalarField> Un = phip/(magSf + VSMALL); + const scalar deltaT = mesh.time().deltaTValue(); + const vectorField Up((pp.faceCentres() - oldFc)/deltaT); - vectorField::operator=(Up + n*(Un - (n & Up))); + const volVectorField& U = db().lookupObject<volVectorField>(UName_); + scalarField phip + ( + p.patchField<surfaceScalarField, scalar>(fvc::meshPhi(U)) + ); + + const vectorField n(p.nf()); + const scalarField& magSf = p.magSf(); + tmp<scalarField> Un = phip/(magSf + VSMALL); + + + vectorField::operator=(Up + n*(Un - (n & Up))); + } fixedValueFvPatchVectorField::updateCoeffs(); }