From 7d252fa900a323ef2067fe4f20e15dfb65f452d7 Mon Sep 17 00:00:00 2001 From: Kutalmis Bercin <kutalmis.bercin@esi-group.com> Date: Tue, 17 Dec 2019 13:31:28 +0000 Subject: [PATCH] TUT: update velocityDampingConstraint header (#942) STYLE: add getOrDefault(); const specifiers to velocityDampingConstraint --- .../velocityDampingConstraint.C | 8 +-- .../velocityDampingConstraint.H | 58 +++++++++++-------- 2 files changed, 38 insertions(+), 28 deletions(-) diff --git a/src/fvOptions/constraints/derived/velocityDampingConstraint/velocityDampingConstraint.C b/src/fvOptions/constraints/derived/velocityDampingConstraint/velocityDampingConstraint.C index 9d63bfa7002..a9eeea31b35 100644 --- a/src/fvOptions/constraints/derived/velocityDampingConstraint/velocityDampingConstraint.C +++ b/src/fvOptions/constraints/derived/velocityDampingConstraint/velocityDampingConstraint.C @@ -55,7 +55,7 @@ void Foam::fv::velocityDampingConstraint::addDamping(fvMatrix<vector>& eqn) // Note: we want to add // deltaU/deltaT // where deltaT is a local time scale: - // U/(cbrt of volume) + // U/(cbrt of volume) // Since directly manipulating the diagonal we multiply by volume. const scalarField& vol = mesh_.V(); @@ -66,10 +66,10 @@ void Foam::fv::velocityDampingConstraint::addDamping(fvMatrix<vector>& eqn) forAll(U, cellI) { - scalar magU = mag(U[cellI]); + const scalar magU = mag(U[cellI]); if (magU > UMax_) { - scalar scale = sqr(Foam::cbrt(vol[cellI])); + const scalar scale = sqr(Foam::cbrt(vol[cellI])); diag[cellI] += scale*(magU-UMax_); @@ -129,7 +129,7 @@ bool Foam::fv::velocityDampingConstraint::read(const dictionary& dict) if (!coeffs_.readIfPresent("UNames", fieldNames_)) { fieldNames_.resize(1); - fieldNames_.first() = coeffs_.lookupOrDefault<word>("U", "U"); + fieldNames_.first() = coeffs_.getOrDefault<word>("U", "U"); } applied_.setSize(fieldNames_.size(), false); diff --git a/src/fvOptions/constraints/derived/velocityDampingConstraint/velocityDampingConstraint.H b/src/fvOptions/constraints/derived/velocityDampingConstraint/velocityDampingConstraint.H index 83c65f29d82..cbbe294b861 100644 --- a/src/fvOptions/constraints/derived/velocityDampingConstraint/velocityDampingConstraint.H +++ b/src/fvOptions/constraints/derived/velocityDampingConstraint/velocityDampingConstraint.H @@ -31,28 +31,38 @@ Group grpFvOptionsConstraints Description - Constraint for velocity to dampen velocity fluctuations in - steady simulations - - In case of velocity exceeding limit applies - a source sink to remove the excess velocity by adding a term - that drives the velocity to 0 (note that we cannot use the old - term velocity since it most likely is already excessive). This - additional constraint is scaled with (U-UMax)/dt - where dt is a local time scale (= velocity/cellsize) so it switches off - if the velocity is below UMax. - - Constraint described by: - - velocityDampingConstraintCoeffs - { - UMax 100; - - // Optional: name of velocity field (default: U) - //U U; - //UNames (U); - } - + Constraint on velocity field to dampen velocity fluctuations. + + This constraint is primarily used to dampen velocity fluctuations in + the start-up phase of simulations. When the local velocity magnitude + exceeds the user-supplied maximum value a sink term is activated in + the affected region to lower the velocity to the limiting value. + +Usage + Example of functionality specification in \c fvOptions: + \verbatim + velocityDamper + { + // Mandatory entries + type velocityDampingConstraint; + UMax 200; + + // Optional entries + selectionMode all; + UNames (U); // names of given velocity fields + U U; // name of given velocity field if + //`UNames` is not present (default: U) + + // Optional fvOptions entries + active true; + } + \endverbatim + +Note + When active, this constraint manipulates the system of equations. + Users should ensure that it is not active when the case is converged + (steady-state) or during the period of interest (transient) to ensure + that its presence does not pollute the results. SourceFiles velocityDampingConstraint.C @@ -82,9 +92,9 @@ class velocityDampingConstraint protected: - // Protected data + // Protected Data - //- Maximum velocity + //- Maximum velocity magnitude scalar UMax_; -- GitLab