From de46ee40da035613ef28faea8be641b4628d4567 Mon Sep 17 00:00:00 2001 From: andy <andy> Date: Mon, 29 Oct 2012 15:17:52 +0000 Subject: [PATCH] ENH: Enable moving wall velocity BC to be used for non-moving mesh cases --- .../movingWallVelocityFvPatchVectorField.C | 42 +++++++++++-------- 1 file changed, 24 insertions(+), 18 deletions(-) diff --git a/src/finiteVolume/fields/fvPatchFields/derived/movingWallVelocity/movingWallVelocityFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/movingWallVelocity/movingWallVelocityFvPatchVectorField.C index cd94de26cab..11f811e4433 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(); } -- GitLab