diff --git a/applications/solvers/combustion/PDRFoam/PDRModels/turbulence/PDRkEpsilon/PDRkEpsilon.C b/applications/solvers/combustion/PDRFoam/PDRModels/turbulence/PDRkEpsilon/PDRkEpsilon.C index 44c4f6052fbc03448ee8a5f34e9f7b9875578cc0..fb61460facf54a6f03625b2fb9e0046b3aed6e6d 100644 --- a/applications/solvers/combustion/PDRFoam/PDRModels/turbulence/PDRkEpsilon/PDRkEpsilon.C +++ b/applications/solvers/combustion/PDRFoam/PDRModels/turbulence/PDRkEpsilon/PDRkEpsilon.C @@ -116,7 +116,7 @@ void PDRkEpsilon::correct() } tmp<volTensorField> tgradU = fvc::grad(U_); - volScalarField G("RASModel.G", mut_*(tgradU() && dev(twoSymm(tgradU())))); + volScalarField G(type() + ".G", mut_*(tgradU() && dev(twoSymm(tgradU())))); tgradU.clear(); // Update espsilon and G at the wall diff --git a/applications/solvers/incompressible/pimpleFoam/UEqn.H b/applications/solvers/incompressible/pimpleFoam/UEqn.H index a6aef51dafb35a9fee2033b0a07a38f8404f2296..c274f6a2e8e59182c83e37bf308f30acb6946fd2 100644 --- a/applications/solvers/incompressible/pimpleFoam/UEqn.H +++ b/applications/solvers/incompressible/pimpleFoam/UEqn.H @@ -7,6 +7,10 @@ tmp<fvVectorMatrix> UEqn + turbulence->divDevReff(U) ); +mrfZones.addCoriolis(UEqn()); + +pZones.addResistance(UEqn()); + UEqn().relax(); sources.constrain(UEqn()); diff --git a/applications/solvers/incompressible/pimpleFoam/createZones.H b/applications/solvers/incompressible/pimpleFoam/createZones.H new file mode 100644 index 0000000000000000000000000000000000000000..fcd02024d58b1b5be8e36f935e2ca70b4ba8bbaf --- /dev/null +++ b/applications/solvers/incompressible/pimpleFoam/createZones.H @@ -0,0 +1,4 @@ + IOMRFZoneList mrfZones(mesh); + mrfZones.correctBoundaryVelocity(U); + + IOporosityModelList pZones(mesh); diff --git a/applications/solvers/incompressible/pimpleFoam/pEqn.H b/applications/solvers/incompressible/pimpleFoam/pEqn.H index 444ad4450359fccd04531fdede2261c68f33c68f..1eb8590552ba896d94634784fd98e9f857db731c 100644 --- a/applications/solvers/incompressible/pimpleFoam/pEqn.H +++ b/applications/solvers/incompressible/pimpleFoam/pEqn.H @@ -15,6 +15,8 @@ surfaceScalarField phiHbyA adjustPhi(phiHbyA, U, p); +mrfZones.relativeFlux(phiHbyA); + // Non-orthogonal pressure corrector loop while (pimple.correctNonOrthogonal()) { diff --git a/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C b/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C index 8d581934fb2fb15fcacc52964ddf0493f80abef4..d55af57e34dc3a812ce8e157d76b0927fc67f634 100644 --- a/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C +++ b/applications/solvers/incompressible/pimpleFoam/pimpleFoam.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -28,7 +28,10 @@ Description Large time-step transient solver for incompressible, flow using the PIMPLE (merged PISO-SIMPLE) algorithm. - Turbulence modelling is generic, i.e. laminar, RAS or LES may be selected. + Sub-models include: + - turbulence modelling, i.e. laminar, RAS or LES + - porosity (explicit treatment) + - Multiple Reference Frame (MRF) \*---------------------------------------------------------------------------*/ @@ -37,6 +40,8 @@ Description #include "turbulenceModel.H" #include "pimpleControl.H" #include "IObasicSourceList.H" +#include "IOporosityModelList.H" +#include "IOMRFZoneList.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -46,6 +51,7 @@ int main(int argc, char *argv[]) #include "createTime.H" #include "createMesh.H" #include "createFields.H" + #include "createZones.H" #include "initContinuityErrs.H" pimpleControl pimple(mesh); diff --git a/applications/solvers/incompressible/simpleFoam/MRFSimpleFoam/UEqn.H b/applications/solvers/incompressible/simpleFoam/MRFSimpleFoam/UEqn.H index 8c39a839f71f232d21ade27671e2b2fd3e3fa08a..d595a64c8f1eaac60f5e7c1526a9c8ff49c77479 100644 --- a/applications/solvers/incompressible/simpleFoam/MRFSimpleFoam/UEqn.H +++ b/applications/solvers/incompressible/simpleFoam/MRFSimpleFoam/UEqn.H @@ -10,8 +10,8 @@ mrfZones.addCoriolis(UEqn()); - sources.constrain(UEqn()); - UEqn().relax(); + sources.constrain(UEqn()); + solve(UEqn() == -fvc::grad(p)); diff --git a/applications/test/reconstruct/Make/files b/applications/test/reconstruct/Make/files new file mode 100644 index 0000000000000000000000000000000000000000..5dd557e6f885d11423f248b6c9b6928c7aafcba4 --- /dev/null +++ b/applications/test/reconstruct/Make/files @@ -0,0 +1,3 @@ +Test-reconstruct.C + +EXE = $(FOAM_USER_APPBIN)/Test-reconstruct diff --git a/applications/test/reconstruct/Make/options b/applications/test/reconstruct/Make/options new file mode 100644 index 0000000000000000000000000000000000000000..1a8bb549927bbf347ede932e6b39cd75067a322b --- /dev/null +++ b/applications/test/reconstruct/Make/options @@ -0,0 +1,4 @@ +EXE_INC = -g \ + -I$(LIB_SRC)/finiteVolume/lnInclude + +EXE_LIBS = -lfiniteVolume diff --git a/applications/test/reconstruct/Test-reconstruct.C b/applications/test/reconstruct/Test-reconstruct.C new file mode 100644 index 0000000000000000000000000000000000000000..59e9a03bb6ee60d96591dd20c4fa03f1b3c6e8df --- /dev/null +++ b/applications/test/reconstruct/Test-reconstruct.C @@ -0,0 +1,61 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Application + Test-reconstruct + +\*---------------------------------------------------------------------------*/ + +#include "fvCFD.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +int main(int argc, char *argv[]) +{ + #include "setRootCase.H" + + #include "createTime.H" + #include "createMesh.H" + + surfaceScalarField phi(vector(1, 0, 0) & mesh.Sf()); + + volVectorField Uphi + ( + IOobject + ( + "Uphi", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::AUTO_WRITE + ), + fvc::reconstruct(phi) + ); + + Uphi.write(); + + return 0; +} + + +// ************************************************************************* // diff --git a/applications/utilities/postProcessing/wall/yPlusRAS/yPlusRAS.C b/applications/utilities/postProcessing/wall/yPlusRAS/yPlusRAS.C index 2f8b1503418c5b08bfb13033618f93960e3a0e12..58f6a7b063aaf037615e8fe4e4c70126ce30be26 100644 --- a/applications/utilities/postProcessing/wall/yPlusRAS/yPlusRAS.C +++ b/applications/utilities/postProcessing/wall/yPlusRAS/yPlusRAS.C @@ -55,7 +55,7 @@ void calcIncompressibleYPlus volScalarField& yPlus ) { - typedef incompressible::RASModels::nutWallFunctionFvPatchScalarField + typedef incompressible::nutWallFunctionFvPatchScalarField wallFunctionPatchField; #include "createPhi.H" @@ -107,7 +107,7 @@ void calcCompressibleYPlus volScalarField& yPlus ) { - typedef compressible::RASModels::mutWallFunctionFvPatchScalarField + typedef compressible::mutWallFunctionFvPatchScalarField wallFunctionPatchField; IOobject rhoHeader diff --git a/applications/utilities/preProcessing/applyBoundaryLayer/applyBoundaryLayer.C b/applications/utilities/preProcessing/applyBoundaryLayer/applyBoundaryLayer.C index 13c5841c3aeb2f1c7f52cbd8fd1acf129f78849e..b4a83722e6e3205d4bf57a2e18487ea9234f9af0 100644 --- a/applications/utilities/preProcessing/applyBoundaryLayer/applyBoundaryLayer.C +++ b/applications/utilities/preProcessing/applyBoundaryLayer/applyBoundaryLayer.C @@ -136,7 +136,7 @@ int main(int argc, char *argv[]) } // Create G field - used by RAS wall functions - volScalarField G("RASModel.G", nut*2*sqr(S)); + volScalarField G(turbulence().type() + ".G", nut*2*sqr(S)); //--- Read and modify turbulence fields diff --git a/applications/utilities/preProcessing/applyWallFunctionBoundaryConditions/applyWallFunctionBoundaryConditions.C b/applications/utilities/preProcessing/applyWallFunctionBoundaryConditions/applyWallFunctionBoundaryConditions.C index 9b89af1c4de67beb66dfebe184fdf66982234f9b..38b0bf0eb73e95dcfb9c96840bc2fc41c278cb6f 100644 --- a/applications/utilities/preProcessing/applyWallFunctionBoundaryConditions/applyWallFunctionBoundaryConditions.C +++ b/applications/utilities/preProcessing/applyWallFunctionBoundaryConditions/applyWallFunctionBoundaryConditions.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -232,43 +232,42 @@ void updateCompressibleCase(const fvMesh& mesh) ( mesh, "mut", - compressible::RASModels::mutkWallFunctionFvPatchScalarField::typeName, + compressible::mutkWallFunctionFvPatchScalarField::typeName, "0" ); replaceBoundaryType ( mesh, "epsilon", - compressible::RASModels::epsilonWallFunctionFvPatchScalarField:: - typeName, + compressible::epsilonWallFunctionFvPatchScalarField::typeName, "0" ); replaceBoundaryType ( mesh, "omega", - compressible::RASModels::omegaWallFunctionFvPatchScalarField::typeName, + compressible::omegaWallFunctionFvPatchScalarField::typeName, "0" ); replaceBoundaryType ( mesh, "k", - compressible::RASModels::kqRWallFunctionFvPatchField<scalar>::typeName, + compressible::kqRWallFunctionFvPatchField<scalar>::typeName, "0" ); replaceBoundaryType ( mesh, "q", - compressible::RASModels::kqRWallFunctionFvPatchField<scalar>::typeName, + compressible::kqRWallFunctionFvPatchField<scalar>::typeName, "0" ); replaceBoundaryType ( mesh, "R", - compressible::RASModels::kqRWallFunctionFvPatchField<symmTensor>:: + compressible::kqRWallFunctionFvPatchField<symmTensor>:: typeName, "(0 0 0 0 0 0)" ); @@ -284,14 +283,14 @@ void updateIncompressibleCase(const fvMesh& mesh) ( mesh, "nut", - incompressible::RASModels::nutkWallFunctionFvPatchScalarField::typeName, + incompressible::nutkWallFunctionFvPatchScalarField::typeName, "0" ); replaceBoundaryType ( mesh, "epsilon", - incompressible::RASModels::epsilonWallFunctionFvPatchScalarField:: + incompressible::epsilonWallFunctionFvPatchScalarField:: typeName, "0" ); @@ -299,7 +298,7 @@ void updateIncompressibleCase(const fvMesh& mesh) ( mesh, "omega", - incompressible::RASModels::omegaWallFunctionFvPatchScalarField:: + incompressible::omegaWallFunctionFvPatchScalarField:: typeName, "0" ); @@ -307,24 +306,21 @@ void updateIncompressibleCase(const fvMesh& mesh) ( mesh, "k", - incompressible::RASModels::kqRWallFunctionFvPatchField<scalar>:: - typeName, + incompressible::kqRWallFunctionFvPatchField<scalar>::typeName, "0" ); replaceBoundaryType ( mesh, "q", - incompressible::RASModels::kqRWallFunctionFvPatchField<scalar>:: - typeName, + incompressible::kqRWallFunctionFvPatchField<scalar>::typeName, "0" ); replaceBoundaryType ( mesh, "R", - incompressible::RASModels::kqRWallFunctionFvPatchField<symmTensor>:: - typeName, + incompressible::kqRWallFunctionFvPatchField<symmTensor>::typeName, "(0 0 0 0 0 0)" ); } diff --git a/applications/utilities/preProcessing/setFields/setFields.C b/applications/utilities/preProcessing/setFields/setFields.C index ebc43d84f23e2dbf09c01ac2536c5f6f993e1ae2..3f1f628a75b5d96c8d3de66690781c41f688246a 100644 --- a/applications/utilities/preProcessing/setFields/setFields.C +++ b/applications/utilities/preProcessing/setFields/setFields.C @@ -359,9 +359,10 @@ public: int main(int argc, char *argv[]) { -# include "setRootCase.H" -# include "createTime.H" -# include "createMesh.H" + #include "addRegionOption.H" + #include "setRootCase.H" + #include "createTime.H" + #include "createNamedMesh.H" Info<< "Reading setFieldsDict\n" << endl; diff --git a/src/finiteVolume/Make/files b/src/finiteVolume/Make/files index 3428d625976ae62b8af0f2b0df509cd157a5fc7e..b982734e8bc4d6ddd8a631a61e3342db949e4973 100644 --- a/src/finiteVolume/Make/files +++ b/src/finiteVolume/Make/files @@ -243,6 +243,7 @@ $(schemes)/harmonic/harmonic.C $(schemes)/fixedBlended/fixedBlended.C $(schemes)/localBlended/localBlended.C $(schemes)/limiterBlended/limiterBlended.C +$(schemes)/CoBlended/CoBlended.C $(schemes)/localMax/localMax.C $(schemes)/localMin/localMin.C diff --git a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMappedFixedValue/timeVaryingMappedFixedValueFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMappedFixedValue/timeVaryingMappedFixedValueFvPatchField.C index 29590cc0511b68c92fe655ce33dd2addf76405c1..f613a7e6a2c13e47c86947d186d18bd5e3cbefe7 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMappedFixedValue/timeVaryingMappedFixedValueFvPatchField.C +++ b/src/finiteVolume/fields/fvPatchFields/derived/timeVaryingMappedFixedValue/timeVaryingMappedFixedValueFvPatchField.C @@ -79,7 +79,7 @@ timeVaryingMappedFixedValueFvPatchField endSampleTime_(-1), endSampledValues_(0), endAverage_(pTraits<Type>::zero), - offset_() + offset_(ptf.offset_().clone().ptr()) {} diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/CoEulerDdtScheme/CoEulerDdtScheme.H b/src/finiteVolume/finiteVolume/ddtSchemes/CoEulerDdtScheme/CoEulerDdtScheme.H index 867951946c94881c08901d74359efeccbff7ea86..52401609fab97c38f3aecba22b1ddb5b239df2e0 100644 --- a/src/finiteVolume/finiteVolume/ddtSchemes/CoEulerDdtScheme/CoEulerDdtScheme.H +++ b/src/finiteVolume/finiteVolume/ddtSchemes/CoEulerDdtScheme/CoEulerDdtScheme.H @@ -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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -31,7 +31,7 @@ Description does not exceed the specified value. This scheme should only be used for steady-state computations - using transient codes where local time-stepping is preferably to + using transient codes where local time-stepping is preferable to under-relaxation for transport consistency reasons. SourceFiles diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/CoBlended/CoBlended.C b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/CoBlended/CoBlended.C new file mode 100644 index 0000000000000000000000000000000000000000..93a5405206dcfeba0dccc51bf150bd8fdb535aed --- /dev/null +++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/CoBlended/CoBlended.C @@ -0,0 +1,36 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "fvMesh.H" +#include "CoBlended.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + makeSurfaceInterpolationScheme(CoBlended); +} + +// ************************************************************************* // diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/schemes/CoBlended/CoBlended.H b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/CoBlended/CoBlended.H new file mode 100644 index 0000000000000000000000000000000000000000..9be5cd0420a0f5af886c23d8b7997c455ea62606 --- /dev/null +++ b/src/finiteVolume/interpolation/surfaceInterpolation/schemes/CoBlended/CoBlended.H @@ -0,0 +1,275 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Class + Foam::CoBlended + +Description + Two-scheme Courant number based blending differencing scheme. + + Similar to localBlended but uses a blending factor computed from the + face-based Courant number and the alpha factor supplied: + + weight = 1 - Co/alpha + + The weight applies to the first scheme and 1-factor to the second scheme. + +SourceFiles + CoBlended.C + +\*---------------------------------------------------------------------------*/ + +#ifndef CoBlended_H +#define CoBlended_H + +#include "surfaceInterpolationScheme.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +/*---------------------------------------------------------------------------*\ + Class CoBlended Declaration +\*---------------------------------------------------------------------------*/ + +template<class Type> +class CoBlended +: + public surfaceInterpolationScheme<Type> +{ + // Private data + + const scalar alpha_; + + // Private Member Functions + + //- Scheme 1 + tmp<surfaceInterpolationScheme<Type> > tScheme1_; + + //- Scheme 2 + tmp<surfaceInterpolationScheme<Type> > tScheme2_; + + //- The face-flux used to compute the face Courant number + const surfaceScalarField& faceFlux_; + + + //- Disallow default bitwise copy construct + CoBlended(const CoBlended&); + + //- Disallow default bitwise assignment + void operator=(const CoBlended&); + + +public: + + //- Runtime type information + TypeName("CoBlended"); + + + // Constructors + + //- Construct from mesh and Istream. + // The name of the flux field is read from the Istream and looked-up + // from the mesh objectRegistry + CoBlended + ( + const fvMesh& mesh, + Istream& is + ) + : + surfaceInterpolationScheme<Type>(mesh), + alpha_(readScalar(is)), + tScheme1_ + ( + surfaceInterpolationScheme<Type>::New(mesh, is) + ), + tScheme2_ + ( + surfaceInterpolationScheme<Type>::New(mesh, is) + ), + faceFlux_ + ( + mesh.lookupObject<surfaceScalarField> + ( + word(is) + ) + ) + { + if (alpha_ <= 0 ) + { + FatalIOErrorIn("CoBlended(const fvMesh&, Istream&)", is) + << "coefficient = " << alpha_ + << " should be > 0" + << exit(FatalIOError); + } + } + + + //- Construct from mesh, faceFlux and Istream + CoBlended + ( + const fvMesh& mesh, + const surfaceScalarField& faceFlux, + Istream& is + ) + : + surfaceInterpolationScheme<Type>(mesh), + alpha_(readScalar(is)), + tScheme1_ + ( + surfaceInterpolationScheme<Type>::New(mesh, faceFlux, is) + ), + tScheme2_ + ( + surfaceInterpolationScheme<Type>::New(mesh, faceFlux, is) + ), + faceFlux_(faceFlux) + { + if (alpha_ <= 0) + { + FatalIOErrorIn("CoBlended(const fvMesh&, Istream&)", is) + << "coefficient = " << alpha_ + << " should be > 0" + << exit(FatalIOError); + } + } + + + // Member Functions + + //- Return the face-based Courant number blending factor + tmp<surfaceScalarField> blendingFactor() const + { + const fvMesh& mesh = faceFlux_.mesh(); + + return + ( + max + ( + scalar(1) + - mesh.time().deltaT()*mesh.deltaCoeffs()*mag(faceFlux_) + /(mesh.magSf()*alpha_), + scalar(0) + ) + ); + } + + + //- Return the interpolation weighting factors + tmp<surfaceScalarField> + weights + ( + const GeometricField<Type, fvPatchField, volMesh>& vf + ) const + { + surfaceScalarField bf(blendingFactor()); + + return + bf*tScheme1_().weights(vf) + + (scalar(1.0) - bf)*tScheme2_().weights(vf); + } + + + //- Return the face-interpolate of the given cell field + // with explicit correction + tmp<GeometricField<Type, fvsPatchField, surfaceMesh> > + interpolate + ( + const GeometricField<Type, fvPatchField, volMesh>& vf + ) const + { + surfaceScalarField bf(blendingFactor()); + + return + bf*tScheme1_().interpolate(vf) + + (scalar(1.0) - bf)*tScheme2_().interpolate(vf); + } + + + //- Return true if this scheme uses an explicit correction + virtual bool corrected() const + { + return tScheme1_().corrected() || tScheme2_().corrected(); + } + + + //- Return the explicit correction to the face-interpolate + // for the given field + virtual tmp<GeometricField<Type, fvsPatchField, surfaceMesh> > + correction + ( + const GeometricField<Type, fvPatchField, volMesh>& vf + ) const + { + surfaceScalarField bf(blendingFactor()); + + if (tScheme1_().corrected()) + { + if (tScheme2_().corrected()) + { + return + ( + bf + * tScheme1_().correction(vf) + + (scalar(1.0) - bf) + * tScheme2_().correction(vf) + ); + } + else + { + return + ( + bf + * tScheme1_().correction(vf) + ); + } + } + else if (tScheme2_().corrected()) + { + return + ( + (scalar(1.0) - bf) + * tScheme2_().correction(vf) + ); + } + else + { + return tmp<GeometricField<Type, fvsPatchField, surfaceMesh> > + ( + NULL + ); + } + } +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/doc/functionObjects.dox b/src/postProcessing/functionObjects/doc/functionObjects.dox index 098b7ae12dd1546426fc7051e9a0497daace53d0..64073c2a3ff37c0764d52b82212ceadc1b16b2cc 100644 --- a/src/postProcessing/functionObjects/doc/functionObjects.dox +++ b/src/postProcessing/functionObjects/doc/functionObjects.dox @@ -39,6 +39,7 @@ The current range of features comprises of: - \ref grpCloudFunctionObjects - \ref grpFieldFunctionObjects - \ref grpForcesFunctionObjects +- \ref grpFVFunctionObjects - \ref grpIOFunctionObjects - \ref grpJobControlFunctionObjects - \ref grpUtilitiesFunctionObjects diff --git a/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSource.C b/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSource.C index 799273b4ff860878311bf3145be014c192483cf4..3d7977c488db8b7a3807bec026378c201edfeeb4 100644 --- a/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSource.C +++ b/src/postProcessing/functionObjects/field/fieldValues/cellSource/cellSource.C @@ -181,7 +181,8 @@ Foam::fieldValues::cellSource::cellSource source_(sourceTypeNames_.read(dict.lookup("source"))), operation_(operationTypeNames_.read(dict.lookup("operation"))), nCells_(0), - cellId_() + cellId_(), + weightFieldName_("none") { read(dict); } diff --git a/src/postProcessing/functionObjects/fvTools/Make/files b/src/postProcessing/functionObjects/fvTools/Make/files new file mode 100644 index 0000000000000000000000000000000000000000..f5940e8ce3bc4928c8cef7f60d9666f5576f370d --- /dev/null +++ b/src/postProcessing/functionObjects/fvTools/Make/files @@ -0,0 +1,10 @@ +calcFvcDiv/calcFvcDiv.C +calcFvcDiv/calcFvcDivFunctionObject.C + +calcFvcGrad/calcFvcGrad.C +calcFvcGrad/calcFvcGradFunctionObject.C + +calcMag/calcMag.C +calcMag/calcMagFunctionObject.C + +LIB = $(FOAM_LIBBIN)/libFVFunctionObjects diff --git a/src/postProcessing/functionObjects/fvTools/Make/options b/src/postProcessing/functionObjects/fvTools/Make/options new file mode 100644 index 0000000000000000000000000000000000000000..71b7873964d544eddf96d22aa40f4c3372c23c9c --- /dev/null +++ b/src/postProcessing/functionObjects/fvTools/Make/options @@ -0,0 +1,5 @@ +EXE_INC = \ + -I$(LIB_SRC)/finiteVolume/lnInclude + +LIB_LIBS = \ + -lfiniteVolume diff --git a/src/postProcessing/functionObjects/fvTools/calcFvcDiv/IOcalcFvcDiv.H b/src/postProcessing/functionObjects/fvTools/calcFvcDiv/IOcalcFvcDiv.H new file mode 100644 index 0000000000000000000000000000000000000000..245aae6e2bf89adc3b50197cd94687d2cdeac8ad --- /dev/null +++ b/src/postProcessing/functionObjects/fvTools/calcFvcDiv/IOcalcFvcDiv.H @@ -0,0 +1,49 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Typedef + Foam::IOcalcFvcDiv + +Description + Instance of the generic IOOutputFilter for calcFvcDiv. + +\*---------------------------------------------------------------------------*/ + +#ifndef IOcalcFvcDiv_H +#define IOcalcFvcDiv_H + +#include "calcFvcDiv.H" +#include "IOOutputFilter.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + typedef IOOutputFilter<calcFvcDiv> IOcalcFvcDiv; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDiv.C b/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDiv.C new file mode 100644 index 0000000000000000000000000000000000000000..934fb58d75097dc0621f7c6294ebb4f4943cda4f --- /dev/null +++ b/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDiv.C @@ -0,0 +1,158 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "calcFvcDiv.H" +#include "volFields.H" +#include "dictionary.H" +#include "calcFvcDiv.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +defineTypeNameAndDebug(Foam::calcFvcDiv, 0); + +// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // + +Foam::volScalarField& Foam::calcFvcDiv::divField +( + const word& divName, + const dimensionSet& dims +) +{ + const fvMesh& mesh = refCast<const fvMesh>(obr_); + + if (!mesh.foundObject<volScalarField>(divName)) + { + volScalarField* divFieldPtr + ( + new volScalarField + ( + IOobject + ( + divName, + mesh.time().timeName(), + mesh, + IOobject::NO_READ, + IOobject::NO_WRITE + ), + mesh, + dimensionedScalar("zero", dims/dimLength, 0.0) + ) + ); + + mesh.objectRegistry::store(divFieldPtr); + } + + const volScalarField& field = mesh.lookupObject<volScalarField>(divName); + + return const_cast<volScalarField&>(field); +} + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::calcFvcDiv::calcFvcDiv +( + const word& name, + const objectRegistry& obr, + const dictionary& dict, + const bool loadFromFiles +) +: + name_(name), + obr_(obr), + active_(true), + fieldName_("undefined-fieldName"), + resultName_("undefined-resultName") +{ + // Check if the available mesh is an fvMesh, otherwise deactivate + if (!isA<fvMesh>(obr_)) + { + active_ = false; + WarningIn + ( + "calcFvcDiv::calcFvcDiv" + "(" + "const word&, " + "const objectRegistry&, " + "const dictionary&, " + "const bool" + ")" + ) << "No fvMesh available, deactivating." << nl + << endl; + } + + read(dict); +} + + +// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // + +Foam::calcFvcDiv::~calcFvcDiv() +{} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +void Foam::calcFvcDiv::read(const dictionary& dict) +{ + if (active_) + { + dict.lookup("fieldName") >> fieldName_; + dict.lookup("resultName") >> resultName_; + } +} + + +void Foam::calcFvcDiv::execute() +{ + // Do nothing - only valid on write +} + + +void Foam::calcFvcDiv::end() +{ + // Do nothing - only valid on write +} + + +void Foam::calcFvcDiv::write() +{ + if (active_) + { + bool processed = false; + + calcDiv<surfaceScalarField>(fieldName_, resultName_, processed); + calcDiv<volVectorField>(fieldName_, resultName_, processed); + + if (!processed) + { + WarningIn("void Foam::calcFvcDiv::write()") + << "Unprocessed field " << fieldName_ << endl; + } + } +} + + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDiv.H b/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDiv.H new file mode 100644 index 0000000000000000000000000000000000000000..bc07e0fab0ae037cab4d1b6909deaffee5078c17 --- /dev/null +++ b/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDiv.H @@ -0,0 +1,177 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Class + Foam::calcFvcDiv + +Group + grpFVFunctionObjects + +Description + This function object calculates the divergence of a field. The operation is + limited to surfaceScalarFields and volumeVector fields, and the output is a + volume scalar field. + +SourceFiles + calcFvcDiv.C + IOcalcFvcDiv.H + +\*---------------------------------------------------------------------------*/ + +#ifndef calcFvcDiv_H +#define calcFvcDiv_H + +#include "volFieldsFwd.H" +#include "surfaceFieldsFwd.H" +#include "pointFieldFwd.H" +#include "OFstream.H" +#include "Switch.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// Forward declaration of classes +class objectRegistry; +class dictionary; +class mapPolyMesh; +class dimensionSet; + +/*---------------------------------------------------------------------------*\ + Class calcFvcDiv Declaration +\*---------------------------------------------------------------------------*/ + +class calcFvcDiv +{ + // Private data + + //- Name of this calcFvcDiv object + word name_; + + //- Reference to the database + const objectRegistry& obr_; + + //- On/off switch + bool active_; + + //- Name of field to process + word fieldName_; + + //- Name of result field + word resultName_; + + + // Private Member Functions + + //- Helper function to create/store/return the divergence field + volScalarField& divField + ( + const word& gradName, + const dimensionSet& dims + ); + + //- Helper function to calculate the divergence of different field types + template<class FieldType> + void calcDiv + ( + const word& fieldName, + const word& resultName, + bool& processed + ); + + //- Disallow default bitwise copy construct + calcFvcDiv(const calcFvcDiv&); + + //- Disallow default bitwise assignment + void operator=(const calcFvcDiv&); + + +public: + + //- Runtime type information + TypeName("calcFvcDiv"); + + + // Constructors + + //- Construct for given objectRegistry and dictionary. + // Allow the possibility to load fields from files + calcFvcDiv + ( + const word& name, + const objectRegistry&, + const dictionary&, + const bool loadFromFiles = false + ); + + + //- Destructor + virtual ~calcFvcDiv(); + + + // Member Functions + + //- Return name of the set of calcFvcDiv + virtual const word& name() const + { + return name_; + } + + //- Read the calcFvcDiv data + virtual void read(const dictionary&); + + //- Execute, currently does nothing + virtual void execute(); + + //- Execute at the final time-loop, currently does nothing + virtual void end(); + + //- Calculate the calcFvcDiv and write + virtual void write(); + + //- Update for changes of mesh + virtual void updateMesh(const mapPolyMesh&) + {} + + //- Update for changes of mesh + virtual void movePoints(const pointField&) + {} +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#ifdef NoRepository + #include "calcFvcDivTemplates.C" +#endif + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDivFunctionObject.C b/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDivFunctionObject.C new file mode 100644 index 0000000000000000000000000000000000000000..32f990ec09f6f7e54596d0efe261727e66f2ca5e --- /dev/null +++ b/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDivFunctionObject.C @@ -0,0 +1,42 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "calcFvcDivFunctionObject.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +namespace Foam +{ + defineNamedTemplateTypeNameAndDebug(calcFvcDivFunctionObject, 0); + + addToRunTimeSelectionTable + ( + functionObject, + calcFvcDivFunctionObject, + dictionary + ); +} + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDivFunctionObject.H b/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDivFunctionObject.H new file mode 100644 index 0000000000000000000000000000000000000000..5cc8af7332b65cdb8fdd4b6fa2ec6c2d8d6179d1 --- /dev/null +++ b/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDivFunctionObject.H @@ -0,0 +1,53 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Typedef + Foam::calcFvcDivFunctionObject + +Description + FunctionObject wrapper around calcFvcDiv to allow it to be created + via the functions entry within controlDict. + +SourceFiles + calcFvcDivFunctionObject.C + +\*---------------------------------------------------------------------------*/ + +#ifndef calcFvcDivFunctionObject_H +#define calcFvcDivFunctionObject_H + +#include "calcFvcDiv.H" +#include "OutputFilterFunctionObject.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + typedef OutputFilterFunctionObject<calcFvcDiv> calcFvcDivFunctionObject; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDivTemplates.C b/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDivTemplates.C new file mode 100644 index 0000000000000000000000000000000000000000..cfdf55f1bfbeae20c7dea2f7f420bd1b16eca475 --- /dev/null +++ b/src/postProcessing/functionObjects/fvTools/calcFvcDiv/calcFvcDivTemplates.C @@ -0,0 +1,65 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "fvMesh.H" +#include "fvcDiv.H" + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +template<class FieldType> +void Foam::calcFvcDiv::calcDiv +( + const word& fieldName, + const word& resultName, + bool& processed +) +{ + const fvMesh& mesh = refCast<const fvMesh>(obr_); + + word divName = resultName; + if (divName == "none") + { + divName = "fvc::div(" + fieldName + ")"; + } + + if (mesh.foundObject<FieldType>(fieldName)) + { + const FieldType& vf = mesh.lookupObject<FieldType>(fieldName); + + volScalarField& field = divField(divName, vf.dimensions()); + + field = fvc::div(vf); + + Info<< type() << " output:" << nl + << " writing " << field.name() << " field" << nl << endl; + + field.write(); + + processed = true; + } +} + + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/fvTools/calcFvcGrad/IOcalcFvcGrad.H b/src/postProcessing/functionObjects/fvTools/calcFvcGrad/IOcalcFvcGrad.H new file mode 100644 index 0000000000000000000000000000000000000000..2e97ac645958b8bbd106f91ad3826df47e6c79b0 --- /dev/null +++ b/src/postProcessing/functionObjects/fvTools/calcFvcGrad/IOcalcFvcGrad.H @@ -0,0 +1,49 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Typedef + Foam::IOcalcFvcGrad + +Description + Instance of the generic IOOutputFilter for calcFvcGrad. + +\*---------------------------------------------------------------------------*/ + +#ifndef IOcalcFvcGrad_H +#define IOcalcFvcGrad_H + +#include "calcFvcGrad.H" +#include "IOOutputFilter.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + typedef IOOutputFilter<calcFvcGrad> IOcalcFvcGrad; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/fvTools/calcFvcGrad/calcFvcGrad.C b/src/postProcessing/functionObjects/fvTools/calcFvcGrad/calcFvcGrad.C new file mode 100644 index 0000000000000000000000000000000000000000..de97652e5e5d7898d2666c1fecbad4fab17c41de --- /dev/null +++ b/src/postProcessing/functionObjects/fvTools/calcFvcGrad/calcFvcGrad.C @@ -0,0 +1,121 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "calcFvcGrad.H" +#include "volFields.H" +#include "dictionary.H" +#include "calcFvcGrad.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +defineTypeNameAndDebug(Foam::calcFvcGrad, 0); + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::calcFvcGrad::calcFvcGrad +( + const word& name, + const objectRegistry& obr, + const dictionary& dict, + const bool loadFromFiles +) +: + name_(name), + obr_(obr), + active_(true), + fieldName_("undefined-fieldName"), + resultName_("undefined-resultName") +{ + // Check if the available mesh is an fvMesh, otherwise deactivate + if (!isA<fvMesh>(obr_)) + { + active_ = false; + WarningIn + ( + "calcFvcGrad::calcFvcGrad" + "(" + "const word&, " + "const objectRegistry&, " + "const dictionary&, " + "const bool" + ")" + ) << "No fvMesh available, deactivating." << nl + << endl; + } + + read(dict); +} + + +// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // + +Foam::calcFvcGrad::~calcFvcGrad() +{} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +void Foam::calcFvcGrad::read(const dictionary& dict) +{ + if (active_) + { + dict.lookup("fieldName") >> fieldName_; + dict.lookup("resultName") >> resultName_; + } +} + + +void Foam::calcFvcGrad::execute() +{ + // Do nothing - only valid on write +} + + +void Foam::calcFvcGrad::end() +{ + // Do nothing - only valid on write +} + + +void Foam::calcFvcGrad::write() +{ + if (active_) + { + bool processed = false; + + calcGrad<scalar>(fieldName_, resultName_, processed); + calcGrad<vector>(fieldName_, resultName_, processed); + + if (!processed) + { + WarningIn("void Foam::calcFvcGrad::write()") + << "Unprocessed field " << fieldName_ << endl; + } + } +} + + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/fvTools/calcFvcGrad/calcFvcGrad.H b/src/postProcessing/functionObjects/fvTools/calcFvcGrad/calcFvcGrad.H new file mode 100644 index 0000000000000000000000000000000000000000..c7422eca4bdf18843ed0aa45c2485fc6f3f95f35 --- /dev/null +++ b/src/postProcessing/functionObjects/fvTools/calcFvcGrad/calcFvcGrad.H @@ -0,0 +1,180 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Class + Foam::calcFvcGrad + +Group + grpFVFunctionObjects + +Description + This function object calculates the gradient of a field. The operation is + limited to scalar and vector volume or surface fields, and the output is a + volume vector or tensor field. + +SourceFiles + calcFvcGrad.C + IOcalcFvcGrad.H + +\*---------------------------------------------------------------------------*/ + +#ifndef calcFvcGrad_H +#define calcFvcGrad_H + +#include "volFieldsFwd.H" +#include "surfaceFieldsFwd.H" +#include "pointFieldFwd.H" +#include "OFstream.H" +#include "Switch.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// Forward declaration of classes +class objectRegistry; +class dictionary; +class mapPolyMesh; +class dimensionSet; + +/*---------------------------------------------------------------------------*\ + Class calcFvcGrad Declaration +\*---------------------------------------------------------------------------*/ + +class calcFvcGrad +{ + // Private data + + //- Name of this calcFvcGrad object + word name_; + + //- Reference to the database + const objectRegistry& obr_; + + //- On/off switch + bool active_; + + //- Name of field to process + word fieldName_; + + //- Name of result field + word resultName_; + + + // Private Member Functions + + //- Helper function to create/store/return the gradient field + template<class Type> + GeometricField + < + typename outerProduct<vector, Type>::type, + fvPatchField, + volMesh + >& + gradField(const word& gradName, const dimensionSet& dims); + + //- Helper function to calculate the gradient of different field types + template<class Type> + void calcGrad + ( + const word& fieldName, + const word& resultName, + bool& processed + ); + + //- Disallow default bitwise copy construct + calcFvcGrad(const calcFvcGrad&); + + //- Disallow default bitwise assignment + void operator=(const calcFvcGrad&); + + +public: + + //- Runtime type information + TypeName("calcFvcGrad"); + + + // Constructors + + //- Construct for given objectRegistry and dictionary. + // Allow the possibility to load fields from files + calcFvcGrad + ( + const word& name, + const objectRegistry&, + const dictionary&, + const bool loadFromFiles = false + ); + + + //- Destructor + virtual ~calcFvcGrad(); + + + // Member Functions + + //- Return name of the set of calcFvcGrad + virtual const word& name() const + { + return name_; + } + + //- Read the calcFvcGrad data + virtual void read(const dictionary&); + + //- Execute, currently does nothing + virtual void execute(); + + //- Execute at the final time-loop, currently does nothing + virtual void end(); + + //- Calculate the calcFvcGrad and write + virtual void write(); + + //- Update for changes of mesh + virtual void updateMesh(const mapPolyMesh&) + {} + + //- Update for changes of mesh + virtual void movePoints(const pointField&) + {} +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#ifdef NoRepository + #include "calcFvcGradTemplates.C" +#endif + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/fvTools/calcFvcGrad/calcFvcGradFunctionObject.C b/src/postProcessing/functionObjects/fvTools/calcFvcGrad/calcFvcGradFunctionObject.C new file mode 100644 index 0000000000000000000000000000000000000000..3e2d1e669858928dd84dd49e7f4e4db3c7aa4edc --- /dev/null +++ b/src/postProcessing/functionObjects/fvTools/calcFvcGrad/calcFvcGradFunctionObject.C @@ -0,0 +1,42 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "calcFvcGradFunctionObject.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +namespace Foam +{ + defineNamedTemplateTypeNameAndDebug(calcFvcGradFunctionObject, 0); + + addToRunTimeSelectionTable + ( + functionObject, + calcFvcGradFunctionObject, + dictionary + ); +} + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/fvTools/calcFvcGrad/calcFvcGradFunctionObject.H b/src/postProcessing/functionObjects/fvTools/calcFvcGrad/calcFvcGradFunctionObject.H new file mode 100644 index 0000000000000000000000000000000000000000..0c3f5806976dd07ed117f016a94d6cbe70ec94b3 --- /dev/null +++ b/src/postProcessing/functionObjects/fvTools/calcFvcGrad/calcFvcGradFunctionObject.H @@ -0,0 +1,53 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Typedef + Foam::calcFvcGradFunctionObject + +Description + FunctionObject wrapper around calcFvcGrad to allow it to be created + via the functions entry within controlDict. + +SourceFiles + calcFvcGradFunctionObject.C + +\*---------------------------------------------------------------------------*/ + +#ifndef calcFvcGradFunctionObject_H +#define calcFvcGradFunctionObject_H + +#include "calcFvcGrad.H" +#include "OutputFilterFunctionObject.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + typedef OutputFilterFunctionObject<calcFvcGrad> calcFvcGradFunctionObject; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/fvTools/calcFvcGrad/calcFvcGradTemplates.C b/src/postProcessing/functionObjects/fvTools/calcFvcGrad/calcFvcGradTemplates.C new file mode 100644 index 0000000000000000000000000000000000000000..3e95bbd4245ff912279cfb4d959d522bb14cb0a4 --- /dev/null +++ b/src/postProcessing/functionObjects/fvTools/calcFvcGrad/calcFvcGradTemplates.C @@ -0,0 +1,133 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "fvMesh.H" +#include "fvcGrad.H" + +template<class Type> +Foam::GeometricField +< + typename Foam::outerProduct<Foam::vector, Type>::type, + Foam::fvPatchField, + Foam::volMesh +>& +Foam::calcFvcGrad::gradField(const word& gradName, const dimensionSet& dims) +{ + typedef typename outerProduct<vector, Type>::type gradType; + typedef GeometricField<gradType, fvPatchField, volMesh> vfGradType; + + const fvMesh& mesh = refCast<const fvMesh>(obr_); + + if (!mesh.foundObject<vfGradType>(gradName)) + { + vfGradType* gradFieldPtr + ( + new vfGradType + ( + IOobject + ( + gradName, + mesh.time().timeName(), + mesh, + IOobject::NO_READ, + IOobject::NO_WRITE + ), + mesh, + dimensioned<gradType> + ( + "zero", + dims/dimLength, + pTraits<gradType>::zero + ) + ) + ); + + mesh.objectRegistry::store(gradFieldPtr); + } + + const vfGradType& field = mesh.lookupObject<vfGradType>(gradName); + + return const_cast<vfGradType&>(field); +} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +template<class Type> +void Foam::calcFvcGrad::calcGrad +( + const word& fieldName, + const word& resultName, + bool& processed +) +{ + typedef GeometricField<Type, fvPatchField, volMesh> vfType; + typedef GeometricField<Type, fvsPatchField, surfaceMesh> sfType; + + typedef typename outerProduct<vector, Type>::type gradType; + typedef GeometricField<gradType, fvPatchField, volMesh> vfGradType; + + const fvMesh& mesh = refCast<const fvMesh>(obr_); + + word gradName = resultName; + if (gradName == "none") + { + gradName = "fvc::grad(" + fieldName + ")"; + } + + if (mesh.foundObject<vfType>(fieldName)) + { + const vfType& vf = mesh.lookupObject<vfType>(fieldName); + + vfGradType& field = gradField<Type>(gradName, vf.dimensions()); + + field = fvc::grad(vf); + + Info<< type() << " output:" << nl + << " writing " << field.name() << " field" << nl << endl; + + field.write(); + + processed = true; + } + else if (mesh.foundObject<sfType>(fieldName)) + { + const sfType& sf = mesh.lookupObject<sfType>(fieldName); + + vfGradType& field = gradField<Type>(gradName, sf.dimensions()); + + field = fvc::grad(sf); + + Info<< type() << " output:" << nl + << " writing " << field.name() << " field" << nl << endl; + + field.write(); + + processed = true; + } +} + + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/fvTools/calcMag/IOcalcMag.H b/src/postProcessing/functionObjects/fvTools/calcMag/IOcalcMag.H new file mode 100644 index 0000000000000000000000000000000000000000..3f0a584d14959a980fa8ad47111b4d362d6c21b4 --- /dev/null +++ b/src/postProcessing/functionObjects/fvTools/calcMag/IOcalcMag.H @@ -0,0 +1,49 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Typedef + Foam::IOcalcMag + +Description + Instance of the generic IOOutputFilter for calcMag. + +\*---------------------------------------------------------------------------*/ + +#ifndef IOcalcMag_H +#define IOcalcMag_H + +#include "calcMag.H" +#include "IOOutputFilter.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + typedef IOOutputFilter<calcMag> IOcalcMag; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/fvTools/calcMag/calcMag.C b/src/postProcessing/functionObjects/fvTools/calcMag/calcMag.C new file mode 100644 index 0000000000000000000000000000000000000000..47705025dea7002992abc270f042525f44de8939 --- /dev/null +++ b/src/postProcessing/functionObjects/fvTools/calcMag/calcMag.C @@ -0,0 +1,124 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "calcMag.H" +#include "volFields.H" +#include "dictionary.H" +#include "calcMag.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +defineTypeNameAndDebug(Foam::calcMag, 0); + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::calcMag::calcMag +( + const word& name, + const objectRegistry& obr, + const dictionary& dict, + const bool loadFromFiles +) +: + name_(name), + obr_(obr), + active_(true), + fieldName_("undefined-fieldName"), + resultName_("undefined-resultName") +{ + // Check if the available mesh is an fvMesh, otherwise deactivate + if (!isA<fvMesh>(obr_)) + { + active_ = false; + WarningIn + ( + "calcMag::calcMag" + "(" + "const word&, " + "const objectRegistry&, " + "const dictionary&, " + "const bool" + ")" + ) << "No fvMesh available, deactivating." << nl + << endl; + } + + read(dict); +} + + +// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // + +Foam::calcMag::~calcMag() +{} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +void Foam::calcMag::read(const dictionary& dict) +{ + if (active_) + { + dict.lookup("fieldName") >> fieldName_; + dict.lookup("resultName") >> resultName_; + } +} + + +void Foam::calcMag::execute() +{ + // Do nothing - only valid on write +} + + +void Foam::calcMag::end() +{ + // Do nothing - only valid on write +} + + +void Foam::calcMag::write() +{ + if (active_) + { + bool processed = false; + + calc<scalar>(fieldName_, resultName_, processed); + calc<vector>(fieldName_, resultName_, processed); + calc<sphericalTensor>(fieldName_, resultName_, processed); + calc<symmTensor>(fieldName_, resultName_, processed); + calc<tensor>(fieldName_, resultName_, processed); + + if (!processed) + { + WarningIn("void Foam::calcMag::write()") + << "Unprocessed field " << fieldName_ << endl; + } + } +} + + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/fvTools/calcMag/calcMag.H b/src/postProcessing/functionObjects/fvTools/calcMag/calcMag.H new file mode 100644 index 0000000000000000000000000000000000000000..1360e303cd6f475bb15fa2c2fa6a9f88fae0ac06 --- /dev/null +++ b/src/postProcessing/functionObjects/fvTools/calcMag/calcMag.H @@ -0,0 +1,174 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Class + Foam::calcMag + +Group + grpFVFunctionObjects + +Description + This function object calculates the magnitude of a field. The operation + can be applied to any volume or surface fieldsm and the output is a + volume or surface scalar field. + +SourceFiles + calcMag.C + IOcalcMag.H + +\*---------------------------------------------------------------------------*/ + +#ifndef calcMag_H +#define calcMag_H + +#include "volFieldsFwd.H" +#include "surfaceFieldsFwd.H" +#include "pointFieldFwd.H" +#include "OFstream.H" +#include "Switch.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// Forward declaration of classes +class objectRegistry; +class dictionary; +class mapPolyMesh; +class dimensionSet; + +/*---------------------------------------------------------------------------*\ + Class calcMag Declaration +\*---------------------------------------------------------------------------*/ + +class calcMag +{ + // Private data + + //- Name of this calcMag object + word name_; + + //- Reference to the database + const objectRegistry& obr_; + + //- On/off switch + bool active_; + + //- Name of field to process + word fieldName_; + + //- Name of result field + word resultName_; + + + // Private Member Functions + + //- Helper function to create/store/return the mag field + template<class FieldType> + FieldType& magField(const word& magName, const dimensionSet& dims); + + //- Helper function to calculate the magnitude of different field types + template<class Type> + void calc + ( + const word& fieldName, + const word& resultName, + bool& processed + ); + + //- Disallow default bitwise copy construct + calcMag(const calcMag&); + + //- Disallow default bitwise assignment + void operator=(const calcMag&); + + +public: + + //- Runtime type information + TypeName("calcMag"); + + + // Constructors + + //- Construct for given objectRegistry and dictionary. + // Allow the possibility to load fields from files + calcMag + ( + const word& name, + const objectRegistry&, + const dictionary&, + const bool loadFromFiles = false + ); + + + //- Destructor + virtual ~calcMag(); + + + // Member Functions + + //- Return name of the set of calcMag + virtual const word& name() const + { + return name_; + } + + //- Read the calcMag data + virtual void read(const dictionary&); + + //- Execute, currently does nothing + virtual void execute(); + + //- Execute at the final time-loop, currently does nothing + virtual void end(); + + //- Calculate the calcMag and write + virtual void write(); + + //- Update for changes of mesh + virtual void updateMesh(const mapPolyMesh&) + {} + + //- Update for changes of mesh + virtual void movePoints(const pointField&) + {} +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#ifdef NoRepository + #include "calcMagTemplates.C" +#endif + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/fvTools/calcMag/calcMagFunctionObject.C b/src/postProcessing/functionObjects/fvTools/calcMag/calcMagFunctionObject.C new file mode 100644 index 0000000000000000000000000000000000000000..61aded1e61fbe58fc97e1149b750c1066f629afa --- /dev/null +++ b/src/postProcessing/functionObjects/fvTools/calcMag/calcMagFunctionObject.C @@ -0,0 +1,42 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "calcMagFunctionObject.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +namespace Foam +{ + defineNamedTemplateTypeNameAndDebug(calcMagFunctionObject, 0); + + addToRunTimeSelectionTable + ( + functionObject, + calcMagFunctionObject, + dictionary + ); +} + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/fvTools/calcMag/calcMagFunctionObject.H b/src/postProcessing/functionObjects/fvTools/calcMag/calcMagFunctionObject.H new file mode 100644 index 0000000000000000000000000000000000000000..ea143666e13716be46d6aa79ad5812a940d52f3f --- /dev/null +++ b/src/postProcessing/functionObjects/fvTools/calcMag/calcMagFunctionObject.H @@ -0,0 +1,53 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Typedef + Foam::calcMagFunctionObject + +Description + FunctionObject wrapper around calcMag to allow it to be created + via the functions entry within controlDict. + +SourceFiles + calcMagFunctionObject.C + +\*---------------------------------------------------------------------------*/ + +#ifndef calcMagFunctionObject_H +#define calcMagFunctionObject_H + +#include "calcMag.H" +#include "OutputFilterFunctionObject.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + typedef OutputFilterFunctionObject<calcMag> calcMagFunctionObject; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/fvTools/calcMag/calcMagTemplates.C b/src/postProcessing/functionObjects/fvTools/calcMag/calcMagTemplates.C new file mode 100644 index 0000000000000000000000000000000000000000..4435b64f1bec51001bc109e69384b1e6b2083363 --- /dev/null +++ b/src/postProcessing/functionObjects/fvTools/calcMag/calcMagTemplates.C @@ -0,0 +1,124 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "fvMesh.H" +#include "Time.H" +#include "volFields.H" +#include "surfaceFields.H" + +template<class FieldType> +FieldType& Foam::calcMag::magField +( + const word& magName, + const dimensionSet& dims +) +{ + const fvMesh& mesh = refCast<const fvMesh>(obr_); + + if (!mesh.foundObject<FieldType>(magName)) + { + FieldType* magFieldPtr + ( + new FieldType + ( + IOobject + ( + magName, + mesh.time().timeName(), + mesh, + IOobject::NO_READ, + IOobject::NO_WRITE + ), + mesh, + dimensionedScalar("zero", dims, 0.0) + ) + ); + + mesh.objectRegistry::store(magFieldPtr); + } + + const FieldType& f = mesh.lookupObject<FieldType>(magName); + + return const_cast<FieldType&>(f); +} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +template<class Type> +void Foam::calcMag::calc +( + const word& fieldName, + const word& resultName, + bool& processed +) +{ + typedef GeometricField<Type, fvPatchField, volMesh> vfType; + typedef GeometricField<Type, fvsPatchField, surfaceMesh> sfType; + + const fvMesh& mesh = refCast<const fvMesh>(obr_); + + word magName = resultName; + if (magName == "none") + { + magName = "mag(" + fieldName + ")"; + } + + if (mesh.foundObject<vfType>(fieldName)) + { + const vfType& vf = mesh.lookupObject<vfType>(fieldName); + + volScalarField& field = + magField<volScalarField>(magName, vf.dimensions()); + + field = mag(vf); + + Info<< type() << " output:" << nl + << " writing " << field.name() << " field" << nl << endl; + + field.write(); + + processed = true; + } + else if (mesh.foundObject<sfType>(fieldName)) + { + const sfType& sf = mesh.lookupObject<sfType>(fieldName); + + surfaceScalarField& field = + magField<surfaceScalarField>(magName, sf.dimensions()); + + field = mag(sf); + + Info<< type() << " output:" << nl + << " writing " << field.name() << " field" << nl << endl; + + field.write(); + + processed = true; + } +} + + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.C b/src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.C index 0e15ead796439ea341d8cc002199fedb9e5f47d0..b76cdeb206f5dca46770d8806904da2cafb9b8d2 100644 --- a/src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.C +++ b/src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.C @@ -58,7 +58,9 @@ Foam::tmp<Foam::volScalarField> Foam::CourantNo::rho ( "rho", mesh.time().timeName(), - mesh + mesh, + IOobject::NO_READ, + IOobject::NO_WRITE ), mesh, dimensionedScalar("rho", dimless, 1.0) @@ -116,7 +118,8 @@ Foam::CourantNo::CourantNo type(), mesh.time().timeName(), mesh, - IOobject::NO_READ + IOobject::NO_READ, + IOobject::NO_WRITE ), mesh, dimensionedScalar("0", dimless, 0.0), diff --git a/src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.H b/src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.H index d1235f446f91465436cbd8920f965f126f40aab4..319de39c16fe15a3d31ac40d99b867e293098b2a 100644 --- a/src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.H +++ b/src/postProcessing/functionObjects/utilities/CourantNo/CourantNo.H @@ -24,6 +24,9 @@ License Class Foam::CourantNo +Group + grpUtilitiesFunctionObjects + Description This function object calculates and outputs the Courant number as a volScalarField. The field is stored on the mesh database so that it can diff --git a/src/postProcessing/functionObjects/utilities/Lambda2/IOLambda2.H b/src/postProcessing/functionObjects/utilities/Lambda2/IOLambda2.H new file mode 100644 index 0000000000000000000000000000000000000000..0aacf47e94ca018fc96f4895622e9b14b5890985 --- /dev/null +++ b/src/postProcessing/functionObjects/utilities/Lambda2/IOLambda2.H @@ -0,0 +1,49 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Typedef + Foam::IOLambda2 + +Description + Instance of the generic IOOutputFilter for Lambda2. + +\*---------------------------------------------------------------------------*/ + +#ifndef IOLambda2_H +#define IOLambda2_H + +#include "Lambda2.H" +#include "IOOutputFilter.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + typedef IOOutputFilter<Lambda2> IOLambda2; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.C b/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.C new file mode 100644 index 0000000000000000000000000000000000000000..04c8ddefb9ce1c26821644889666c3f7aa4fc86c --- /dev/null +++ b/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.C @@ -0,0 +1,159 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "Lambda2.H" +#include "volFields.H" +#include "dictionary.H" +#include "zeroGradientFvPatchFields.H" +#include "fvcGrad.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +defineTypeNameAndDebug(Foam::Lambda2, 0); + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::Lambda2::Lambda2 +( + const word& name, + const objectRegistry& obr, + const dictionary& dict, + const bool loadFromFiles +) +: + name_(name), + obr_(obr), + active_(true), + UName_("U") +{ + // Check if the available mesh is an fvMesh, otherwise deactivate + if (!isA<fvMesh>(obr_)) + { + active_ = false; + WarningIn + ( + "Lambda2::Lambda2" + "(" + "const word&, " + "const objectRegistry&, " + "const dictionary&, " + "const bool" + ")" + ) << "No fvMesh available, deactivating." << nl + << endl; + } + + read(dict); + + if (active_) + { + const fvMesh& mesh = refCast<const fvMesh>(obr_); + + volScalarField* Lambda2Ptr + ( + new volScalarField + ( + IOobject + ( + type(), + mesh.time().timeName(), + mesh, + IOobject::NO_READ, + IOobject::NO_WRITE + ), + mesh, + dimensionedScalar("0", dimless/sqr(dimTime), 0.0) + ) + ); + + mesh.objectRegistry::store(Lambda2Ptr); + } +} + + +// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // + +Foam::Lambda2::~Lambda2() +{} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +void Foam::Lambda2::read(const dictionary& dict) +{ + if (active_) + { + UName_ = dict.lookupOrDefault<word>("UName", "U"); + } +} + + +void Foam::Lambda2::execute() +{ + // Do nothing - only valid on write +} + + +void Foam::Lambda2::end() +{ + // Do nothing - only valid on write +} + + +void Foam::Lambda2::write() +{ + if (active_) + { + const fvMesh& mesh = refCast<const fvMesh>(obr_); + + const volVectorField& U = + mesh.lookupObject<volVectorField>(UName_); + + const volTensorField gradU(fvc::grad(U)); + + const volTensorField SSplusWW + ( + (symm(gradU) & symm(gradU)) + + (skew(gradU) & skew(gradU)) + ); + + volScalarField& Lambda2 = + const_cast<volScalarField&> + ( + mesh.lookupObject<volScalarField>(type()) + ); + + Lambda2 = -eigenValues(SSplusWW)().component(vector::Y); + + Lambda2.write(); + + Info<< type() << " output:" << nl + << " writing " << Lambda2.name() << " field" << nl << endl; + } +} + + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.H b/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.H new file mode 100644 index 0000000000000000000000000000000000000000..d1865c7cfe981eef8f44c9b9295af539f78bfeb1 --- /dev/null +++ b/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2.H @@ -0,0 +1,151 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Class + Foam::Lambda2 + +Group + grpUtilitiesFunctionObjects + +Description + This function object calculates and outputs the second largest eigenvalue + of the sum of the square of the symmetrical and anti-symmetrical parts of + the velocity gradient tensor. + +SourceFiles + Lambda2.C + IOLambda2.H + +\*---------------------------------------------------------------------------*/ + +#ifndef Lambda2_H +#define Lambda2_H + +#include "volFieldsFwd.H" +#include "surfaceFieldsFwd.H" +#include "pointFieldFwd.H" +#include "OFstream.H" +#include "Switch.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// Forward declaration of classes +class objectRegistry; +class dictionary; +class mapPolyMesh; + +/*---------------------------------------------------------------------------*\ + Class Lambda2 Declaration +\*---------------------------------------------------------------------------*/ + +class Lambda2 +{ + // Private data + + //- Name of this set of Lambda2 objects + word name_; + + //- Reference to the database + const objectRegistry& obr_; + + //- On/off switch + bool active_; + + //- Name of velocity field, default is "U" + word UName_; + + + // Private Member Functions + + //- Disallow default bitwise copy construct + Lambda2(const Lambda2&); + + //- Disallow default bitwise assignment + void operator=(const Lambda2&); + + +public: + + //- Runtime type information + TypeName("Lambda2"); + + + // Constructors + + //- Construct for given objectRegistry and dictionary. + // Allow the possibility to load fields from files + Lambda2 + ( + const word& name, + const objectRegistry&, + const dictionary&, + const bool loadFromFiles = false + ); + + + //- Destructor + virtual ~Lambda2(); + + + // Member Functions + + //- Return name of the set of Lambda2 + virtual const word& name() const + { + return name_; + } + + //- Read the Lambda2 data + virtual void read(const dictionary&); + + //- Execute, currently does nothing + virtual void execute(); + + //- Execute at the final time-loop, currently does nothing + virtual void end(); + + //- Calculate the Lambda2 and write + virtual void write(); + + //- Update for changes of mesh + virtual void updateMesh(const mapPolyMesh&) + {} + + //- Update for changes of mesh + virtual void movePoints(const pointField&) + {} +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2FunctionObject.C b/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2FunctionObject.C new file mode 100644 index 0000000000000000000000000000000000000000..ced087ce9bb9684d9333733f8d95eb72ac6ac9d5 --- /dev/null +++ b/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2FunctionObject.C @@ -0,0 +1,42 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "Lambda2FunctionObject.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +namespace Foam +{ + defineNamedTemplateTypeNameAndDebug(Lambda2FunctionObject, 0); + + addToRunTimeSelectionTable + ( + functionObject, + Lambda2FunctionObject, + dictionary + ); +} + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2FunctionObject.H b/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2FunctionObject.H new file mode 100644 index 0000000000000000000000000000000000000000..e63d04a721dc2992e270aa4bf5d9d17d708495a4 --- /dev/null +++ b/src/postProcessing/functionObjects/utilities/Lambda2/Lambda2FunctionObject.H @@ -0,0 +1,53 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Typedef + Foam::Lambda2FunctionObject + +Description + FunctionObject wrapper around Lambda2 to allow it to be created + via the functions entry within controlDict. + +SourceFiles + Lambda2FunctionObject.C + +\*---------------------------------------------------------------------------*/ + +#ifndef Lambda2FunctionObject_H +#define Lambda2FunctionObject_H + +#include "Lambda2.H" +#include "OutputFilterFunctionObject.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + typedef OutputFilterFunctionObject<Lambda2> Lambda2FunctionObject; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/utilities/Make/files b/src/postProcessing/functionObjects/utilities/Make/files index 362f24a0e7e7ef93aa9bb2ef264c2b710d0c045b..01b4d0c4c9172f4d985513ac234c6dc7fbef16db 100644 --- a/src/postProcessing/functionObjects/utilities/Make/files +++ b/src/postProcessing/functionObjects/utilities/Make/files @@ -3,6 +3,15 @@ codedFunctionObject/codedFunctionObject.C CourantNo/CourantNo.C CourantNo/CourantNoFunctionObject.C +Lambda2/Lambda2.C +Lambda2/Lambda2FunctionObject.C + +Peclet/Peclet.C +Peclet/PecletFunctionObject.C + +Q/Q.C +Q/QFunctionObject.C + DESModelRegions/DESModelRegions.C DESModelRegions/DESModelRegionsFunctionObject.C diff --git a/src/postProcessing/functionObjects/utilities/Peclet/IOPeclet.H b/src/postProcessing/functionObjects/utilities/Peclet/IOPeclet.H new file mode 100644 index 0000000000000000000000000000000000000000..ea49009d559ed41bcc7902208851ef0b1e1b345f --- /dev/null +++ b/src/postProcessing/functionObjects/utilities/Peclet/IOPeclet.H @@ -0,0 +1,49 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Typedef + Foam::IOPeclet + +Description + Instance of the generic IOOutputFilter for Peclet. + +\*---------------------------------------------------------------------------*/ + +#ifndef IOPeclet_H +#define IOPeclet_H + +#include "Peclet.H" +#include "IOOutputFilter.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + typedef IOOutputFilter<Peclet> IOPeclet; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/utilities/Peclet/Peclet.C b/src/postProcessing/functionObjects/utilities/Peclet/Peclet.C new file mode 100644 index 0000000000000000000000000000000000000000..3c6731babd5d7c24fe9eca8bda71c7d3b4750337 --- /dev/null +++ b/src/postProcessing/functionObjects/utilities/Peclet/Peclet.C @@ -0,0 +1,196 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "Peclet.H" +#include "volFields.H" +#include "dictionary.H" +#include "surfaceFields.H" +#include "incompressible/turbulenceModel/turbulenceModel.H" +#include "compressible/turbulenceModel/turbulenceModel.H" +#include "surfaceInterpolate.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +defineTypeNameAndDebug(Foam::Peclet, 0); + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::Peclet::Peclet +( + const word& name, + const objectRegistry& obr, + const dictionary& dict, + const bool loadFromFiles +) +: + name_(name), + obr_(obr), + active_(true), + phiName_("phi"), + rhoName_("rho") +{ + // Check if the available mesh is an fvMesh, otherwise deactivate + if (!isA<fvMesh>(obr_)) + { + active_ = false; + WarningIn + ( + "Peclet::Peclet" + "(" + "const word&, " + "const objectRegistry&, " + "const dictionary&, " + "const bool" + ")" + ) << "No fvMesh available, deactivating." << nl + << endl; + } + + read(dict); + + if (active_) + { + const fvMesh& mesh = refCast<const fvMesh>(obr_); + + surfaceScalarField* PecletPtr + ( + new surfaceScalarField + ( + IOobject + ( + type(), + mesh.time().timeName(), + mesh, + IOobject::NO_READ, + IOobject::NO_WRITE + ), + mesh, + dimensionedScalar("0", dimless, 0.0) + ) + ); + + mesh.objectRegistry::store(PecletPtr); + } +} + + +// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // + +Foam::Peclet::~Peclet() +{} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +void Foam::Peclet::read(const dictionary& dict) +{ + if (active_) + { + phiName_ = dict.lookupOrDefault<word>("phiName", "phi"); + rhoName_ = dict.lookupOrDefault<word>("rhoName", "rho"); + } +} + + +void Foam::Peclet::execute() +{ + // Do nothing - only valid on write +} + + +void Foam::Peclet::end() +{ + // Do nothing - only valid on write +} + + +void Foam::Peclet::write() +{ + typedef compressible::turbulenceModel cmpTurbModel; + typedef incompressible::turbulenceModel icoTurbModel; + + if (active_) + { + const fvMesh& mesh = refCast<const fvMesh>(obr_); + + tmp<volScalarField> nuEff; + if (mesh.foundObject<cmpTurbModel>("turbulenceModel")) + { + const cmpTurbModel& model = + mesh.lookupObject<cmpTurbModel>("turbulenceModel"); + + const volScalarField& rho = + mesh.lookupObject<volScalarField>(rhoName_); + + nuEff = model.muEff()/rho; + } + else if (mesh.foundObject<icoTurbModel>("turbulenceModel")) + { + const icoTurbModel& model = + mesh.lookupObject<icoTurbModel>("turbulenceModel"); + + nuEff = model.nuEff(); + } + else if (mesh.foundObject<transportModel>("transportProperties")) + { + const transportModel& model = + mesh.lookupObject<transportModel>("transportProperties"); + + nuEff = model.nu(); + } + else + { + FatalErrorIn("void Foam::wallShearStress::write()") + << "Unable to determine the viscosity" + << exit(FatalError); + } + + const surfaceScalarField& phi = + mesh.lookupObject<surfaceScalarField>(phiName_); + + surfaceScalarField& Peclet = + const_cast<surfaceScalarField&> + ( + mesh.lookupObject<surfaceScalarField>(type()) + ); + + Peclet = + mag(phi) + /( + mesh.magSf() + *mesh.surfaceInterpolation::deltaCoeffs() + *fvc::interpolate(nuEff) + ); + + Peclet.write(); + + Info<< type() << " output:" << nl + << " writing " << Peclet.name() << " field" << nl << endl; + } +} + + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/utilities/Peclet/Peclet.H b/src/postProcessing/functionObjects/utilities/Peclet/Peclet.H new file mode 100644 index 0000000000000000000000000000000000000000..1445e8377b9ed13706360cfb89b9593a4c0b4f9f --- /dev/null +++ b/src/postProcessing/functionObjects/utilities/Peclet/Peclet.H @@ -0,0 +1,153 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Class + Foam::Peclet + +Group + grpUtilitiesFunctionObjects + +Description + This function object calculates and outputs the Peclet number as a + surfaceScalarField. + +SourceFiles + Peclet.C + IOPeclet.H + +\*---------------------------------------------------------------------------*/ + +#ifndef Peclet_H +#define Peclet_H + +#include "volFieldsFwd.H" +#include "surfaceFieldsFwd.H" +#include "pointFieldFwd.H" +#include "OFstream.H" +#include "Switch.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// Forward declaration of classes +class objectRegistry; +class dictionary; +class mapPolyMesh; + +/*---------------------------------------------------------------------------*\ + Class Peclet Declaration +\*---------------------------------------------------------------------------*/ + +class Peclet +{ + // Private data + + //- Name of this set of Peclet objects + word name_; + + //- Reference to the database + const objectRegistry& obr_; + + //- On/off switch + bool active_; + + //- Name of flux field, default is "phi" + word phiName_; + + //- Name of density field (compressible cases only), default is "rho" + word rhoName_; + + + // Private Member Functions + + //- Disallow default bitwise copy construct + Peclet(const Peclet&); + + //- Disallow default bitwise assignment + void operator=(const Peclet&); + + +public: + + //- Runtime type information + TypeName("Peclet"); + + + // Constructors + + //- Construct for given objectRegistry and dictionary. + // Allow the possibility to load fields from files + Peclet + ( + const word& name, + const objectRegistry&, + const dictionary&, + const bool loadFromFiles = false + ); + + + //- Destructor + virtual ~Peclet(); + + + // Member Functions + + //- Return name of the set of Peclet + virtual const word& name() const + { + return name_; + } + + //- Read the Peclet data + virtual void read(const dictionary&); + + //- Execute, currently does nothing + virtual void execute(); + + //- Execute at the final time-loop, currently does nothing + virtual void end(); + + //- Calculate the Peclet and write + virtual void write(); + + //- Update for changes of mesh + virtual void updateMesh(const mapPolyMesh&) + {} + + //- Update for changes of mesh + virtual void movePoints(const pointField&) + {} +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/utilities/Peclet/PecletFunctionObject.C b/src/postProcessing/functionObjects/utilities/Peclet/PecletFunctionObject.C new file mode 100644 index 0000000000000000000000000000000000000000..fdb247703cf93447ef7443649c06aa92626b5c8f --- /dev/null +++ b/src/postProcessing/functionObjects/utilities/Peclet/PecletFunctionObject.C @@ -0,0 +1,42 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "PecletFunctionObject.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +namespace Foam +{ + defineNamedTemplateTypeNameAndDebug(PecletFunctionObject, 0); + + addToRunTimeSelectionTable + ( + functionObject, + PecletFunctionObject, + dictionary + ); +} + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/utilities/Peclet/PecletFunctionObject.H b/src/postProcessing/functionObjects/utilities/Peclet/PecletFunctionObject.H new file mode 100644 index 0000000000000000000000000000000000000000..fdeca7e571739bc36c4e34751a3452add4bb186b --- /dev/null +++ b/src/postProcessing/functionObjects/utilities/Peclet/PecletFunctionObject.H @@ -0,0 +1,53 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Typedef + Foam::PecletFunctionObject + +Description + FunctionObject wrapper around Peclet to allow it to be created + via the functions entry within controlDict. + +SourceFiles + PecletFunctionObject.C + +\*---------------------------------------------------------------------------*/ + +#ifndef PecletFunctionObject_H +#define PecletFunctionObject_H + +#include "Peclet.H" +#include "OutputFilterFunctionObject.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + typedef OutputFilterFunctionObject<Peclet> PecletFunctionObject; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/utilities/Q/IOQ.H b/src/postProcessing/functionObjects/utilities/Q/IOQ.H new file mode 100644 index 0000000000000000000000000000000000000000..f4739a087695d6d2c70731d449315f420c3ba77f --- /dev/null +++ b/src/postProcessing/functionObjects/utilities/Q/IOQ.H @@ -0,0 +1,49 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Typedef + Foam::IOQ + +Description + Instance of the generic IOOutputFilter for Q. + +\*---------------------------------------------------------------------------*/ + +#ifndef IOQ_H +#define IOQ_H + +#include "Q.H" +#include "IOOutputFilter.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + typedef IOOutputFilter<Q> IOQ; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/utilities/Q/Q.C b/src/postProcessing/functionObjects/utilities/Q/Q.C new file mode 100644 index 0000000000000000000000000000000000000000..ffce5efc56e5f701072a8664a194fe902fabc0e5 --- /dev/null +++ b/src/postProcessing/functionObjects/utilities/Q/Q.C @@ -0,0 +1,152 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "Q.H" +#include "volFields.H" +#include "dictionary.H" +#include "fvcGrad.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +defineTypeNameAndDebug(Foam::Q, 0); + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::Q::Q +( + const word& name, + const objectRegistry& obr, + const dictionary& dict, + const bool loadFromFiles +) +: + name_(name), + obr_(obr), + active_(true), + UName_("U") +{ + // Check if the available mesh is an fvMesh, otherwise deactivate + if (!isA<fvMesh>(obr_)) + { + active_ = false; + WarningIn + ( + "Q::Q" + "(" + "const word&, " + "const objectRegistry&, " + "const dictionary&, " + "const bool" + ")" + ) << "No fvMesh available, deactivating." << nl + << endl; + } + + read(dict); + + if (active_) + { + const fvMesh& mesh = refCast<const fvMesh>(obr_); + + volScalarField* QPtr + ( + new volScalarField + ( + IOobject + ( + type(), + mesh.time().timeName(), + mesh, + IOobject::NO_READ, + IOobject::NO_WRITE + ), + mesh, + dimensionedScalar("0", dimless/sqr(dimTime), 0.0) + ) + ); + + mesh.objectRegistry::store(QPtr); + } +} + + +// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // + +Foam::Q::~Q() +{} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +void Foam::Q::read(const dictionary& dict) +{ + if (active_) + { + UName_ = dict.lookupOrDefault<word>("UName", "U"); + } +} + + +void Foam::Q::execute() +{ + // Do nothing - only valid on write +} + + +void Foam::Q::end() +{ + // Do nothing - only valid on write +} + + +void Foam::Q::write() +{ + if (active_) + { + const fvMesh& mesh = refCast<const fvMesh>(obr_); + + const volVectorField& U = + mesh.lookupObject<volVectorField>(UName_); + + const volTensorField gradU(fvc::grad(U)); + + volScalarField& Q = + const_cast<volScalarField&> + ( + mesh.lookupObject<volScalarField>(type()) + ); + + Q = 0.5*(sqr(tr(gradU)) - tr(((gradU) & (gradU)))); + + Q.write(); + + Info<< type() << " output:" << nl + << " writing " << Q.name() << " field" << nl << endl; + } +} + + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/utilities/Q/Q.H b/src/postProcessing/functionObjects/utilities/Q/Q.H new file mode 100644 index 0000000000000000000000000000000000000000..c42099dac75e80a063d0829d4d36190a6e222e45 --- /dev/null +++ b/src/postProcessing/functionObjects/utilities/Q/Q.H @@ -0,0 +1,154 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Class + Foam::Q + +Group + grpUtilitiesFunctionObjects + +Description + This function object calculates and outputs the second invariant of the + velocity gradient tensor [1/s^2]. + + \f[ + Q = 0.5(sqr(tr(\nabla U)) - tr(((\nabla U) \cdot (\nabla U)))) + \f] + +SourceFiles + Q.C + IOQ.H + +\*---------------------------------------------------------------------------*/ + +#ifndef Q_H +#define Q_H + +#include "volFieldsFwd.H" +#include "surfaceFieldsFwd.H" +#include "pointFieldFwd.H" +#include "OFstream.H" +#include "Switch.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// Forward declaration of classes +class objectRegistry; +class dictionary; +class mapPolyMesh; + +/*---------------------------------------------------------------------------*\ + Class Q Declaration +\*---------------------------------------------------------------------------*/ + +class Q +{ + // Private data + + //- Name of this set of Q objects + word name_; + + //- Reference to the database + const objectRegistry& obr_; + + //- On/off switch + bool active_; + + //- Name of velocity field, default is "U" + word UName_; + + + // Private Member Functions + + //- Disallow default bitwise copy construct + Q(const Q&); + + //- Disallow default bitwise assignment + void operator=(const Q&); + + +public: + + //- Runtime type information + TypeName("Q"); + + + // Constructors + + //- Construct for given objectRegistry and dictionary. + // Allow the possibility to load fields from files + Q + ( + const word& name, + const objectRegistry&, + const dictionary&, + const bool loadFromFiles = false + ); + + + //- Destructor + virtual ~Q(); + + + // Member Functions + + //- Return name of the set of Q + virtual const word& name() const + { + return name_; + } + + //- Read the Q data + virtual void read(const dictionary&); + + //- Execute, currently does nothing + virtual void execute(); + + //- Execute at the final time-loop, currently does nothing + virtual void end(); + + //- Calculate the Q and write + virtual void write(); + + //- Update for changes of mesh + virtual void updateMesh(const mapPolyMesh&) + {} + + //- Update for changes of mesh + virtual void movePoints(const pointField&) + {} +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/utilities/Q/QFunctionObject.C b/src/postProcessing/functionObjects/utilities/Q/QFunctionObject.C new file mode 100644 index 0000000000000000000000000000000000000000..0fa525f0b6020edc244e981eadfbbfbf85f238a3 --- /dev/null +++ b/src/postProcessing/functionObjects/utilities/Q/QFunctionObject.C @@ -0,0 +1,42 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "QFunctionObject.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +namespace Foam +{ + defineNamedTemplateTypeNameAndDebug(QFunctionObject, 0); + + addToRunTimeSelectionTable + ( + functionObject, + QFunctionObject, + dictionary + ); +} + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/utilities/Q/QFunctionObject.H b/src/postProcessing/functionObjects/utilities/Q/QFunctionObject.H new file mode 100644 index 0000000000000000000000000000000000000000..4c96aac505475107ae423e482e2ebcadcd300dd6 --- /dev/null +++ b/src/postProcessing/functionObjects/utilities/Q/QFunctionObject.H @@ -0,0 +1,53 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. + +Typedef + Foam::QFunctionObject + +Description + FunctionObject wrapper around Q to allow it to be created + via the functions entry within controlDict. + +SourceFiles + QFunctionObject.C + +\*---------------------------------------------------------------------------*/ + +#ifndef QFunctionObject_H +#define QFunctionObject_H + +#include "Q.H" +#include "OutputFilterFunctionObject.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + typedef OutputFilterFunctionObject<Q> QFunctionObject; +} + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.H b/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.H index e08e40943a6de36f5a1686e87c1905020965267f..35a872f59e463f866a0a5dc391053c50f2d416e3 100644 --- a/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.H +++ b/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.H @@ -24,6 +24,9 @@ License Class Foam::scalarTransport +Group + grpUtilitiesFunctionObjects + Description This function object evolves a passive scalar transport equation. The field in ininitially zero, to which sources are added. The field name diff --git a/src/postProcessing/functionObjects/utilities/wallShearStress/wallShearStress.C b/src/postProcessing/functionObjects/utilities/wallShearStress/wallShearStress.C index 9544c8799b3b6fdcf653186eaf564d9543320bb0..7e096c6a70e486ca056f32d13e498e5fc1851ddf 100644 --- a/src/postProcessing/functionObjects/utilities/wallShearStress/wallShearStress.C +++ b/src/postProcessing/functionObjects/utilities/wallShearStress/wallShearStress.C @@ -99,7 +99,6 @@ Foam::wallShearStress::wallShearStress obr_(obr), active_(true), log_(false), - phiName_("phi"), patchSet_() { // Check if the available mesh is an fvMesh, otherwise deactivate @@ -136,7 +135,6 @@ void Foam::wallShearStress::read(const dictionary& dict) if (active_) { log_ = dict.lookupOrDefault<Switch>("log", false); - phiName_ = dict.lookupOrDefault<word>("phiName", "phi"); const fvMesh& mesh = refCast<const fvMesh>(obr_); const polyBoundaryMesh& pbm = mesh.boundaryMesh(); @@ -231,38 +229,27 @@ void Foam::wallShearStress::write() } - const surfaceScalarField& phi = - obr_.lookupObject<surfaceScalarField>(phiName_); - tmp<volSymmTensorField> Reff; - if (phi.dimensions() == dimMass/dimTime) + if (mesh.foundObject<cmpModel>("turbulenceModel")) { - if (!mesh.foundObject<cmpModel>("turbulenceModel")) - { - FatalErrorIn("void Foam::wallShearStress::write()") - << "Unable to find compressible turbulence model in the " - << "database" << exit(FatalError); - } - const cmpModel& model = mesh.lookupObject<cmpModel>("turbulenceModel"); Reff = model.devRhoReff(); } - else + else if (mesh.foundObject<icoModel>("turbulenceModel")) { - if (!mesh.foundObject<icoModel>("turbulenceModel")) - { - FatalErrorIn("void Foam::wallShearStress::write()") - << "Unable to find incompressible turbulence model in the " - << "database" << exit(FatalError); - } - const icoModel& model = mesh.lookupObject<icoModel>("turbulenceModel"); Reff = model.devReff(); } + else + { + FatalErrorIn("void Foam::wallShearStress::write()") + << "Unable to find incompressible turbulence model in the " + << "database" << exit(FatalError); + } calcShearStress(mesh, Reff(), wallShearStress); diff --git a/src/postProcessing/functionObjects/utilities/wallShearStress/wallShearStress.H b/src/postProcessing/functionObjects/utilities/wallShearStress/wallShearStress.H index ac16eca594a1b6419322ec8752b743d27eabc7ae..6b31c9f6123f67c6c7427bb37a48db2e4b2eca7a 100644 --- a/src/postProcessing/functionObjects/utilities/wallShearStress/wallShearStress.H +++ b/src/postProcessing/functionObjects/utilities/wallShearStress/wallShearStress.H @@ -113,9 +113,6 @@ protected: //- Switch to send output to Info as well as to file Switch log_; - //- Name of mass/volume flux field (optional, default = phi) - word phiName_; - //- Optional list of patches to process labelHashSet patchSet_; diff --git a/src/postProcessing/functionObjects/utilities/yPlusRAS/yPlusRAS.C b/src/postProcessing/functionObjects/utilities/yPlusRAS/yPlusRAS.C index 8d81c05bfe165d107c4e841ab98a432ea9949590..de584f6105a6f2a4aa358d48cb55027c1eaf4c17 100644 --- a/src/postProcessing/functionObjects/utilities/yPlusRAS/yPlusRAS.C +++ b/src/postProcessing/functionObjects/utilities/yPlusRAS/yPlusRAS.C @@ -56,7 +56,7 @@ void Foam::yPlusRAS::calcIncompressibleYPlus volScalarField& yPlus ) { - typedef incompressible::RASModels::nutWallFunctionFvPatchScalarField + typedef incompressible::nutWallFunctionFvPatchScalarField wallFunctionPatchField; const incompressible::RASModel& model = @@ -114,7 +114,7 @@ void Foam::yPlusRAS::calcCompressibleYPlus volScalarField& yPlus ) { - typedef compressible::RASModels::mutWallFunctionFvPatchScalarField + typedef compressible::mutWallFunctionFvPatchScalarField wallFunctionPatchField; const compressible::RASModel& model = diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.C b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.C index ac0358f141009ed9cdcdba8083408bf68a3cf2dd..bb1b6c294f4bfe38bafe1c97004fea3c85d797e4 100644 --- a/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.C +++ b/src/regionModels/surfaceFilmModels/submodels/thermo/filmRadiationModel/constantRadiation/constantRadiation.C @@ -80,8 +80,7 @@ constantRadiation::constantRadiation IOobject::AUTO_WRITE ), owner.regionMesh(), - dimensionedScalar("one", dimless, 1.0), - zeroGradientFvPatchScalarField::typeName + dimensionedScalar("one", dimless, 1.0) ), timeStart_(readScalar(coeffs_.lookup("timeStart"))), duration_(readScalar(coeffs_.lookup("duration"))) diff --git a/src/turbulenceModels/compressible/LES/LESModel/LESModel.H b/src/turbulenceModels/compressible/LES/LESModel/LESModel.H index 1f514840ae2bf7a53c4e1e3dab86a95a20f769f8..5b4cc39fca2cbf0a7978c2c5da9045be3b0b57da 100644 --- a/src/turbulenceModels/compressible/LES/LESModel/LESModel.H +++ b/src/turbulenceModels/compressible/LES/LESModel/LESModel.H @@ -169,7 +169,7 @@ public: //- Const access to the coefficients dictionary, // which provides info. about choice of models, // and all related data (particularly model coefficients). - inline const dictionary& coeffDict() const + virtual const dictionary& coeffDict() const { return coeffDict_; } diff --git a/src/turbulenceModels/compressible/RAS/LRR/LRR.C b/src/turbulenceModels/compressible/RAS/LRR/LRR.C index 1528ba2affc56f092dd970317fc5052b1b9af983..0a36879bc463eccf04655830a091d8b5610783a3 100644 --- a/src/turbulenceModels/compressible/RAS/LRR/LRR.C +++ b/src/turbulenceModels/compressible/RAS/LRR/LRR.C @@ -342,7 +342,7 @@ void LRR::correct() RASModel::correct(); volSymmTensorField P(-twoSymm(R_ & fvc::grad(U_))); - volScalarField G("RASModel.G", 0.5*mag(tr(P))); + volScalarField G(type() + ".G", 0.5*mag(tr(P))); // Update epsilon and G at the wall epsilon_.boundaryField().updateCoeffs(); diff --git a/src/turbulenceModels/compressible/RAS/LaunderGibsonRSTM/LaunderGibsonRSTM.C b/src/turbulenceModels/compressible/RAS/LaunderGibsonRSTM/LaunderGibsonRSTM.C index 7273efc82cd452df81b8f80088d15557bd9b4091..dafa58ebb3a01f0ece2dc059639d47bcec3e9c13 100644 --- a/src/turbulenceModels/compressible/RAS/LaunderGibsonRSTM/LaunderGibsonRSTM.C +++ b/src/turbulenceModels/compressible/RAS/LaunderGibsonRSTM/LaunderGibsonRSTM.C @@ -379,7 +379,7 @@ void LaunderGibsonRSTM::correct() } volSymmTensorField P(-twoSymm(R_ & fvc::grad(U_))); - volScalarField G("RASModel.G", 0.5*mag(tr(P))); + volScalarField G(type() + ".G", 0.5*mag(tr(P))); // Update epsilon and G at the wall epsilon_.boundaryField().updateCoeffs(); diff --git a/src/turbulenceModels/compressible/RAS/LaunderSharmaKE/LaunderSharmaKE.C b/src/turbulenceModels/compressible/RAS/LaunderSharmaKE/LaunderSharmaKE.C index 048f15eec624e577f68e8c047d5d1dbeeef7f187..8a1073e354a84152a11c04cf95781ec6801bd86e 100644 --- a/src/turbulenceModels/compressible/RAS/LaunderSharmaKE/LaunderSharmaKE.C +++ b/src/turbulenceModels/compressible/RAS/LaunderSharmaKE/LaunderSharmaKE.C @@ -304,7 +304,7 @@ void LaunderSharmaKE::correct() } tmp<volTensorField> tgradU = fvc::grad(U_); - volScalarField G("RASModel.G", mut_*(tgradU() && dev(twoSymm(tgradU())))); + volScalarField G(type() + ".G", mut_*(tgradU() && dev(twoSymm(tgradU())))); tgradU.clear(); diff --git a/src/turbulenceModels/compressible/RAS/RASModel/RASModel.H b/src/turbulenceModels/compressible/RAS/RASModel/RASModel.H index 1efe2cd08dfdd64be7c8a4e1080120d76976479d..8bfa031882b1cdb9c1834f7ed15ac56483b69780 100644 --- a/src/turbulenceModels/compressible/RAS/RASModel/RASModel.H +++ b/src/turbulenceModels/compressible/RAS/RASModel/RASModel.H @@ -209,7 +209,7 @@ public: } //- Const access to the coefficients dictionary - const dictionary& coeffDict() const + virtual const dictionary& coeffDict() const { return coeffDict_; } diff --git a/src/turbulenceModels/compressible/RAS/RNGkEpsilon/RNGkEpsilon.C b/src/turbulenceModels/compressible/RAS/RNGkEpsilon/RNGkEpsilon.C index 70094c353b6987808b6c19d3ad54bf90350f0b07..56192780098ec1ee47e4eeed497bb4712c116235 100644 --- a/src/turbulenceModels/compressible/RAS/RNGkEpsilon/RNGkEpsilon.C +++ b/src/turbulenceModels/compressible/RAS/RNGkEpsilon/RNGkEpsilon.C @@ -303,7 +303,7 @@ void RNGkEpsilon::correct() volScalarField S2((tgradU() && dev(twoSymm(tgradU())))); tgradU.clear(); - volScalarField G("RASModel.G", mut_*S2); + volScalarField G(type() + ".G", mut_*S2); volScalarField eta(sqrt(mag(S2))*k_/epsilon_); volScalarField eta3(eta*sqr(eta)); diff --git a/src/turbulenceModels/compressible/RAS/backwardsCompatibility/wallFunctions/backwardsCompatibilityWallFunctions.C b/src/turbulenceModels/compressible/RAS/backwardsCompatibility/wallFunctions/backwardsCompatibilityWallFunctions.C index 52c5a2ed4f6adbceb9e1c1ace0dda6a2cceeb28e..55434df625a5b4588e9034d58805c53ec89d5b71 100644 --- a/src/turbulenceModels/compressible/RAS/backwardsCompatibility/wallFunctions/backwardsCompatibilityWallFunctions.C +++ b/src/turbulenceModels/compressible/RAS/backwardsCompatibility/wallFunctions/backwardsCompatibilityWallFunctions.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -76,7 +76,7 @@ tmp<volScalarField> autoCreateAlphat if (isA<wallFvPatch>(bm[patchI])) { alphatBoundaryTypes[patchI] = - RASModels::alphatWallFunctionFvPatchScalarField::typeName; + alphatWallFunctionFvPatchScalarField::typeName; } else { @@ -146,7 +146,7 @@ tmp<volScalarField> autoCreateMut if (isA<wallFvPatch>(bm[patchI])) { mutBoundaryTypes[patchI] = - RASModels::mutkWallFunctionFvPatchScalarField::typeName; + mutkWallFunctionFvPatchScalarField::typeName; } else { @@ -216,7 +216,7 @@ tmp<volScalarField> autoCreateLowReMut if (isA<wallFvPatch>(bm[patchI])) { mutBoundaryTypes[patchI] = - RASModels::mutLowReWallFunctionFvPatchScalarField::typeName; + mutLowReWallFunctionFvPatchScalarField::typeName; } else { @@ -262,7 +262,7 @@ tmp<volScalarField> autoCreateEpsilon autoCreateWallFunctionField < scalar, - RASModels::epsilonWallFunctionFvPatchScalarField + epsilonWallFunctionFvPatchScalarField > ( fieldName, @@ -281,7 +281,7 @@ tmp<volScalarField> autoCreateOmega autoCreateWallFunctionField < scalar, - RASModels::omegaWallFunctionFvPatchScalarField + omegaWallFunctionFvPatchScalarField > ( fieldName, @@ -300,7 +300,7 @@ tmp<volScalarField> autoCreateK autoCreateWallFunctionField < scalar, - RASModels::kqRWallFunctionFvPatchField<scalar> + kqRWallFunctionFvPatchField<scalar> > ( fieldName, @@ -319,7 +319,7 @@ tmp<volScalarField> autoCreateQ autoCreateWallFunctionField < scalar, - RASModels::kqRWallFunctionFvPatchField<scalar> + kqRWallFunctionFvPatchField<scalar> > ( fieldName, @@ -338,7 +338,7 @@ tmp<volSymmTensorField> autoCreateR autoCreateWallFunctionField < symmTensor, - RASModels::kqRWallFunctionFvPatchField<symmTensor> + kqRWallFunctionFvPatchField<symmTensor> > ( fieldName, diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/convectiveHeatTransfer/convectiveHeatTransferFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/convectiveHeatTransfer/convectiveHeatTransferFvPatchScalarField.C index 116bfc9c2534b5b906b2491b5eda97f170767665..65405445628d270328547a7cebc3182cae43f90f 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/convectiveHeatTransfer/convectiveHeatTransferFvPatchScalarField.C +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/convectiveHeatTransfer/convectiveHeatTransferFvPatchScalarField.C @@ -24,7 +24,7 @@ License \*---------------------------------------------------------------------------*/ #include "convectiveHeatTransferFvPatchScalarField.H" -#include "RASModel.H" +#include "compressible/turbulenceModel/turbulenceModel.H" #include "fvPatchFieldMapper.H" #include "addToRunTimeSelectionTable.H" @@ -34,8 +34,6 @@ namespace Foam { namespace compressible { -namespace RASModels -{ // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // @@ -167,7 +165,6 @@ makePatchTypeField // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace compressible } // End namespace Foam diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/convectiveHeatTransfer/convectiveHeatTransferFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/convectiveHeatTransfer/convectiveHeatTransferFvPatchScalarField.H index 2bc06bb0e47751bf72d8887ca9ba011fb647ed34..cbbd7869befd12b7b5ba42fb4ca4b6e8758dd45b 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/convectiveHeatTransfer/convectiveHeatTransferFvPatchScalarField.H +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/convectiveHeatTransfer/convectiveHeatTransferFvPatchScalarField.H @@ -22,7 +22,7 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Class - Foam::compressible::RASModels::convectiveHeatTransferFvPatchScalarField + Foam::compressible::convectiveHeatTransferFvPatchScalarField Group grpCmpRASBoundaryConditions @@ -85,8 +85,6 @@ namespace Foam { namespace compressible { -namespace RASModels -{ /*---------------------------------------------------------------------------*\ Class convectiveHeatTransferFvPatchScalarField Declaration @@ -190,7 +188,6 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace compressible } // End namespace Foam diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.C index 2811ea25795e9734a7faca4ebdfc0e6708aad2a5..e7003426bec723cd4007e985fbc19278627fc562 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.C +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.C @@ -28,7 +28,7 @@ License #include "fvPatchFieldMapper.H" #include "surfaceFields.H" #include "volFields.H" -#include "RASModel.H" +#include "compressible/turbulenceModel/turbulenceModel.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -131,10 +131,11 @@ void turbulentMixingLengthDissipationRateInletFvPatchScalarField::updateCoeffs() } // Lookup Cmu corresponding to the turbulence model selected - const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties"); + const turbulenceModel& turbulence = + db().lookupObject<turbulenceModel>("turbulenceModel"); const scalar Cmu = - rasModel.coeffDict().lookupOrDefault<scalar>("Cmu", 0.09); + turbulence.coeffDict().lookupOrDefault<scalar>("Cmu", 0.09); const scalar Cmu75 = pow(Cmu, 0.75); diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.C index eda8faf3244b0cdf47c01234b069db195c94d00a..de7c947a9f5e4b02a1e1f073edba7dc69e1878fd 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.C +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.C @@ -131,10 +131,11 @@ void turbulentMixingLengthFrequencyInletFvPatchScalarField::updateCoeffs() } // Lookup Cmu corresponding to the turbulence model selected - const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties"); + const turbulenceModel& turbulence = + db().lookupObject<turbulenceModel>("turbulenceModel"); const scalar Cmu = - rasModel.coeffDict().lookupOrDefault<scalar>("Cmu", 0.09); + turbulence.coeffDict().lookupOrDefault<scalar>("Cmu", 0.09); const scalar Cmu25 = pow(Cmu, 0.25); diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatJayatillekeWallFunction/alphatJayatillekeWallFunctionFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatJayatillekeWallFunction/alphatJayatillekeWallFunctionFvPatchScalarField.C index 5db232e85eae14d90291788034448a1a523f3b06..16b69874f0eb13caf7404530ea06f50ec95e2ae3 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatJayatillekeWallFunction/alphatJayatillekeWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatJayatillekeWallFunction/alphatJayatillekeWallFunctionFvPatchScalarField.C @@ -24,7 +24,7 @@ License \*---------------------------------------------------------------------------*/ #include "alphatJayatillekeWallFunctionFvPatchScalarField.H" -#include "RASModel.H" +#include "compressible/turbulenceModel/turbulenceModel.H" #include "fvPatchFieldMapper.H" #include "volFields.H" #include "addToRunTimeSelectionTable.H" @@ -36,8 +36,6 @@ namespace Foam { namespace compressible { -namespace RASModels -{ // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // @@ -312,7 +310,6 @@ makePatchTypeField // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace compressible } // End namespace Foam diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatJayatillekeWallFunction/alphatJayatillekeWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatJayatillekeWallFunction/alphatJayatillekeWallFunctionFvPatchScalarField.H index 60271aae48a4a17fc420737a61f4696468d2efd3..455041334e43aaee81f7df2e0a180ea9712c9723 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatJayatillekeWallFunction/alphatJayatillekeWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatJayatillekeWallFunction/alphatJayatillekeWallFunctionFvPatchScalarField.H @@ -22,7 +22,7 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Class - alphatJayatillekeWallFunctionFvPatchScalarField + Foam::compressible::alphatJayatillekeWallFunctionFvPatchScalarField Group grpCmpWallFunctions @@ -72,8 +72,6 @@ namespace Foam { namespace compressible { -namespace RASModels -{ /*---------------------------------------------------------------------------*\ Class alphatJayatillekeWallFunctionFvPatchScalarField Declaration @@ -211,7 +209,6 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace compressible } // End namespace Foam diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.C index c8051bb4511368e303df468eb62b165d3a3fcdfc..dcf694ad1ab6eaa115a7c17308e51594e177d675 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -34,13 +34,10 @@ namespace Foam { namespace compressible { -namespace RASModels -{ // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -alphatWallFunctionFvPatchScalarField:: -alphatWallFunctionFvPatchScalarField +alphatWallFunctionFvPatchScalarField::alphatWallFunctionFvPatchScalarField ( const fvPatch& p, const DimensionedField<scalar, volMesh>& iF @@ -52,8 +49,7 @@ alphatWallFunctionFvPatchScalarField {} -alphatWallFunctionFvPatchScalarField:: -alphatWallFunctionFvPatchScalarField +alphatWallFunctionFvPatchScalarField::alphatWallFunctionFvPatchScalarField ( const alphatWallFunctionFvPatchScalarField& ptf, const fvPatch& p, @@ -67,8 +63,7 @@ alphatWallFunctionFvPatchScalarField {} -alphatWallFunctionFvPatchScalarField:: -alphatWallFunctionFvPatchScalarField +alphatWallFunctionFvPatchScalarField::alphatWallFunctionFvPatchScalarField ( const fvPatch& p, const DimensionedField<scalar, volMesh>& iF, @@ -81,8 +76,7 @@ alphatWallFunctionFvPatchScalarField {} -alphatWallFunctionFvPatchScalarField:: -alphatWallFunctionFvPatchScalarField +alphatWallFunctionFvPatchScalarField::alphatWallFunctionFvPatchScalarField ( const alphatWallFunctionFvPatchScalarField& awfpsf ) @@ -93,8 +87,7 @@ alphatWallFunctionFvPatchScalarField {} -alphatWallFunctionFvPatchScalarField:: -alphatWallFunctionFvPatchScalarField +alphatWallFunctionFvPatchScalarField::alphatWallFunctionFvPatchScalarField ( const alphatWallFunctionFvPatchScalarField& awfpsf, const DimensionedField<scalar, volMesh>& iF @@ -143,7 +136,6 @@ makePatchTypeField // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace compressible } // End namespace Foam diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.H index c9031e53ed58e8ba158584d6067948adcd9e41ea..011d17f958453d0485fddfa44a048cb1429b8a8f 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.H @@ -22,7 +22,7 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Class - Foam::compressible::RASModels::alphatWallFunctionFvPatchScalarField + Foam::compressible::alphatWallFunctionFvPatchScalarField Group grpCmpWallFunctions @@ -84,8 +84,6 @@ namespace Foam { namespace compressible { -namespace RASModels -{ /*---------------------------------------------------------------------------*\ Class alphatWallFunctionFvPatchScalarField Declaration @@ -190,7 +188,6 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace compressible } // End namespace Foam diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonLowReWallFunction/epsilonLowReWallFunctionFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonLowReWallFunction/epsilonLowReWallFunctionFvPatchScalarField.C index c9d824287dbaa98bbb900893b2302a2d4038a71b..279897e833d0376e4abb090cc4a40ce317626b43 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonLowReWallFunction/epsilonLowReWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonLowReWallFunction/epsilonLowReWallFunctionFvPatchScalarField.C @@ -24,7 +24,7 @@ License \*---------------------------------------------------------------------------*/ #include "epsilonLowReWallFunctionFvPatchScalarField.H" -#include "RASModel.H" +#include "compressible/turbulenceModel/turbulenceModel.H" #include "fvPatchFieldMapper.H" #include "volFields.H" #include "addToRunTimeSelectionTable.H" @@ -35,8 +35,6 @@ namespace Foam { namespace compressible { -namespace RASModels -{ // * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // @@ -132,11 +130,18 @@ void epsilonLowReWallFunctionFvPatchScalarField::updateCoeffs() const label patchI = patch().index(); - const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties"); - const scalarField& y = rasModel.y()[patchI]; + const turbulenceModel& turbulence = + db().lookupObject<turbulenceModel>("turbulenceModel"); + const scalarField& y = turbulence.y()[patchI]; volScalarField& G = - const_cast<volScalarField&>(db().lookupObject<volScalarField>(GName_)); + const_cast<volScalarField&> + ( + db().lookupObject<volScalarField> + ( + turbulence.type() + ".G" + ) + ); DimensionedField<scalar, volMesh>& epsilon = const_cast<DimensionedField<scalar, volMesh>&> @@ -144,19 +149,19 @@ void epsilonLowReWallFunctionFvPatchScalarField::updateCoeffs() dimensionedInternalField() ); - const tmp<volScalarField> tk = rasModel.k(); + const tmp<volScalarField> tk = turbulence.k(); const volScalarField& k = tk(); - const tmp<volScalarField> tmu = rasModel.mu(); + const tmp<volScalarField> tmu = turbulence.mu(); const scalarField& muw = tmu().boundaryField()[patchI]; - const tmp<volScalarField> tmut = rasModel.mut(); + const tmp<volScalarField> tmut = turbulence.mut(); const volScalarField& mut = tmut(); const scalarField& mutw = mut.boundaryField()[patchI]; - const scalarField& rhow = rasModel.rho().boundaryField()[patchI]; + const scalarField& rhow = turbulence.rho().boundaryField()[patchI]; - const fvPatchVectorField& Uw = rasModel.U().boundaryField()[patchI]; + const fvPatchVectorField& Uw = turbulence.U().boundaryField()[patchI]; const scalarField magGradUw(mag(Uw.snGrad())); const scalar Cmu25 = pow025(Cmu_); @@ -175,7 +180,8 @@ void epsilonLowReWallFunctionFvPatchScalarField::updateCoeffs() } else { - epsilon[faceCellI] = 2.0*Cmu25*pow(k[faceCellI], 1.5)/y[faceI]; + epsilon[faceCellI] = + 2.0*k[faceCellI]*muw[faceI]/rhow[faceI]/sqr(y[faceI]); } G[faceCellI] = @@ -201,7 +207,6 @@ makePatchTypeField // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace compressible } // End namespace Foam diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonLowReWallFunction/epsilonLowReWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonLowReWallFunction/epsilonLowReWallFunctionFvPatchScalarField.H index 825adbf2c5a89bd3832eb85fa10a94ec3431a44b..61434c29b5020f24de8cca75004ce0ff4cb8c7c3 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonLowReWallFunction/epsilonLowReWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonLowReWallFunction/epsilonLowReWallFunctionFvPatchScalarField.H @@ -22,7 +22,7 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Class - Foam::iompressible::RASModels::epsilonLowReWallFunctionFvPatchScalarField + Foam::iompressible::epsilonLowReWallFunctionFvPatchScalarField Group grpCmpWallFunctions @@ -74,8 +74,6 @@ namespace Foam { namespace compressible { -namespace RASModels -{ /*---------------------------------------------------------------------------*\ Class epsilonLowReWallFunctionFvPatchScalarField Declaration @@ -180,7 +178,6 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace compressible } // End namespace Foam diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.C index c2cce3febdb7c9233922b2f5c906092c318f6c22..88b91c0513923c12d5cbf0d96fcc62fb62fa021d 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.C @@ -24,7 +24,7 @@ License \*---------------------------------------------------------------------------*/ #include "epsilonWallFunctionFvPatchScalarField.H" -#include "RASModel.H" +#include "compressible/turbulenceModel/turbulenceModel.H" #include "fvPatchFieldMapper.H" #include "volFields.H" #include "addToRunTimeSelectionTable.H" @@ -37,8 +37,6 @@ namespace Foam { namespace compressible { -namespace RASModels -{ // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // @@ -58,7 +56,6 @@ void epsilonWallFunctionFvPatchScalarField::checkType() void epsilonWallFunctionFvPatchScalarField::writeLocalEntries(Ostream& os) const { - writeEntryIfDifferent<word>(os, "G", "RASModel.G", GName_); os.writeKeyword("Cmu") << Cmu_ << token::END_STATEMENT << nl; os.writeKeyword("kappa") << kappa_ << token::END_STATEMENT << nl; os.writeKeyword("E") << E_ << token::END_STATEMENT << nl; @@ -74,7 +71,6 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField ) : fixedInternalValueFvPatchField<scalar>(p, iF), - GName_("RASModel.G"), Cmu_(0.09), kappa_(0.41), E_(9.8) @@ -92,7 +88,6 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField ) : fixedInternalValueFvPatchField<scalar>(ptf, p, iF, mapper), - GName_(ptf.GName_), Cmu_(ptf.Cmu_), kappa_(ptf.kappa_), E_(ptf.E_) @@ -109,7 +104,6 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField ) : fixedInternalValueFvPatchField<scalar>(p, iF, dict), - GName_(dict.lookupOrDefault<word>("G", "RASModel.G")), Cmu_(dict.lookupOrDefault<scalar>("Cmu", 0.09)), kappa_(dict.lookupOrDefault<scalar>("kappa", 0.41)), E_(dict.lookupOrDefault<scalar>("E", 9.8)) @@ -124,7 +118,6 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField ) : fixedInternalValueFvPatchField<scalar>(ewfpsf), - GName_(ewfpsf.GName_), Cmu_(ewfpsf.Cmu_), kappa_(ewfpsf.kappa_), E_(ewfpsf.E_) @@ -140,7 +133,6 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField ) : fixedInternalValueFvPatchField<scalar>(ewfpsf, iF), - GName_(ewfpsf.GName_), Cmu_(ewfpsf.Cmu_), kappa_(ewfpsf.kappa_), E_(ewfpsf.E_) @@ -160,15 +152,22 @@ void epsilonWallFunctionFvPatchScalarField::updateCoeffs() const label patchI = patch().index(); - const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties"); + const turbulenceModel& turbulence = + db().lookupObject<turbulenceModel>("turbulenceModel"); const scalar Cmu25 = pow025(Cmu_); const scalar Cmu75 = pow(Cmu_, 0.75); - const scalarField& y = rasModel.y()[patchI]; + const scalarField& y = turbulence.y()[patchI]; volScalarField& G = - const_cast<volScalarField&>(db().lookupObject<volScalarField>(GName_)); + const_cast<volScalarField&> + ( + db().lookupObject<volScalarField> + ( + turbulence.type() + ".G" + ) + ); DimensionedField<scalar, volMesh>& epsilon = const_cast<DimensionedField<scalar, volMesh>&> @@ -176,16 +175,16 @@ void epsilonWallFunctionFvPatchScalarField::updateCoeffs() dimensionedInternalField() ); - const tmp<volScalarField> tk = rasModel.k(); + const tmp<volScalarField> tk = turbulence.k(); const volScalarField& k = tk(); - const scalarField& muw = rasModel.mu().boundaryField()[patchI]; + const scalarField& muw = turbulence.mu().boundaryField()[patchI]; - const tmp<volScalarField> tmut = rasModel.mut(); + const tmp<volScalarField> tmut = turbulence.mut(); const volScalarField& mut = tmut(); const scalarField& mutw = mut.boundaryField()[patchI]; - const fvPatchVectorField& Uw = rasModel.U().boundaryField()[patchI]; + const fvPatchVectorField& Uw = turbulence.U().boundaryField()[patchI]; const scalarField magGradUw(mag(Uw.snGrad())); @@ -236,7 +235,6 @@ makePatchTypeField // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace compressible } // End namespace Foam diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H index 486b7fb707deb2fdad9f18f307c67196f4760218..9975348d0be53acb86dc2765eb872df90f4634f8 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H @@ -22,7 +22,7 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Class - Foam::compressible::RASModels::epsilonWallFunctionFvPatchScalarField + Foam::compressible::epsilonWallFunctionFvPatchScalarField Group grpCmpWallFunctions @@ -47,7 +47,6 @@ Description \table Property | Description | Required | Default value - G | turbulence generation field name | no | G Cmu | model coefficient | no | 0.09 kappa | Von Karman constant | no | 0.41 E | model coefficient | no | 9.8 @@ -80,8 +79,6 @@ namespace Foam { namespace compressible { -namespace RASModels -{ /*---------------------------------------------------------------------------*\ Class epsilonWallFunctionFvPatchScalarField Declaration @@ -95,9 +92,6 @@ protected: // Protected data - //- Name of turbulence generation field - word GName_; - //- Cmu coefficient scalar Cmu_; @@ -206,7 +200,6 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace compressible } // End namespace Foam diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/fWallFunctions/fWallFunction/fWallFunctionFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/fWallFunctions/fWallFunction/fWallFunctionFvPatchScalarField.C index 07ea00c1b00f4a557fecb9f0a1770726550317a0..abb969914b1562eac83799a57f34b4a8cdb3e7b4 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/fWallFunctions/fWallFunction/fWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/fWallFunctions/fWallFunction/fWallFunctionFvPatchScalarField.C @@ -24,7 +24,6 @@ License \*---------------------------------------------------------------------------*/ #include "fWallFunctionFvPatchScalarField.H" -#include "RASModel.H" #include "fvPatchFieldMapper.H" #include "volFields.H" #include "wallFvPatch.H" @@ -168,8 +167,9 @@ void fWallFunctionFvPatchScalarField::updateCoeffs() const label patchI = patch().index(); - const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties"); - const v2f& v2fModel = refCast<const v2f>(rasModel); + const turbulenceModel& turbulence = + db().lookupObject<turbulenceModel>("turbulenceModel"); + const v2f& v2fModel = refCast<const v2f>(turbulence); const scalarField& y = v2fModel.y()[patchI]; diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kLowReWallFunction/kLowReWallFunctionFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kLowReWallFunction/kLowReWallFunctionFvPatchScalarField.C index 5f10ea4f2247ca2140381f747287ce30cc8c61b4..5e403ab932b1baa4c74022cdde82ab74eefe6b1e 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kLowReWallFunction/kLowReWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kLowReWallFunction/kLowReWallFunctionFvPatchScalarField.C @@ -24,7 +24,7 @@ License \*---------------------------------------------------------------------------*/ #include "kLowReWallFunctionFvPatchScalarField.H" -#include "RASModel.H" +#include "compressible/turbulenceModel/turbulenceModel.H" #include "fvPatchFieldMapper.H" #include "volFields.H" #include "addToRunTimeSelectionTable.H" @@ -36,8 +36,6 @@ namespace Foam { namespace compressible { -namespace RASModels -{ // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // @@ -174,16 +172,17 @@ void kLowReWallFunctionFvPatchScalarField::updateCoeffs() const label patchI = patch().index(); - const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties"); - const scalarField& y = rasModel.y()[patchI]; + const turbulenceModel& turbulence = + db().lookupObject<turbulenceModel>("turbulenceModel"); + const scalarField& y = turbulence.y()[patchI]; - const tmp<volScalarField> tk = rasModel.k(); + const tmp<volScalarField> tk = turbulence.k(); const volScalarField& k = tk(); - const tmp<volScalarField> tmu = rasModel.mu(); + const tmp<volScalarField> tmu = turbulence.mu(); const scalarField& muw = tmu().boundaryField()[patchI]; - const scalarField& rhow = rasModel.rho().boundaryField()[patchI]; + const scalarField& rhow = turbulence.rho().boundaryField()[patchI]; const scalar Cmu25 = pow025(Cmu_); @@ -250,7 +249,6 @@ makePatchTypeField // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace compressible } // End namespace Foam diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kLowReWallFunction/kLowReWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kLowReWallFunction/kLowReWallFunctionFvPatchScalarField.H index d70f288653270346dc4ac557a829092cccfa373f..511bc19b6c6304a6260b80005a960482d2d46dcb 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kLowReWallFunction/kLowReWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kLowReWallFunction/kLowReWallFunctionFvPatchScalarField.H @@ -22,7 +22,7 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Class - Foam::compressible::RASModels::kLowReWallFunctionFvPatchScalarField + Foam::compressible::kLowReWallFunctionFvPatchScalarField Group grpCmpWallFunctions @@ -71,8 +71,6 @@ namespace Foam { namespace compressible { -namespace RASModels -{ /*---------------------------------------------------------------------------*\ Class kLowReWallFunctionFvPatchScalarField Declaration @@ -199,7 +197,6 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace compressible } // End namespace Foam diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchField.C index 6cabd2171ab9f9781326524838f28dac41f12ebb..0d0fc613812df257164a92d88d7807a5c5360bb5 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchField.C +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchField.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -34,8 +34,6 @@ namespace Foam { namespace compressible { -namespace RASModels -{ // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // @@ -146,7 +144,6 @@ void kqRWallFunctionFvPatchField<Type>::write(Ostream& os) const // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace compressible } // End namespace Foam diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchField.H index d525d80b56c8f16ab1560d5a41ef7d752a6fe1ff..e96076fbc76a038958b20c81d4d07f7d9893a400 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchField.H +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchField.H @@ -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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -22,7 +22,7 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Class - Foam::compressible::RASModels::kqRWallFunctionFvPatchField + Foam::compressible::kqRWallFunctionFvPatchField Group grpCmpWallFunctions @@ -60,8 +60,6 @@ namespace Foam { namespace compressible { -namespace RASModels -{ /*---------------------------------------------------------------------------*\ Class kqRWallFunctionFvPatchField Declaration @@ -168,7 +166,6 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace compressible } // End namespace Foam diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchFields.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchFields.C index cd4eb03ec6f3b0c27246696fe74b04b4557c6c21..249b99ba3d0581fffab745a0d7851f53fc488a99 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchFields.C +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchFields.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -34,8 +34,6 @@ namespace Foam { namespace compressible { -namespace RASModels -{ // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // @@ -43,7 +41,6 @@ makePatchFields(kqRWallFunction); // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace compressible } // End namespace Foam diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchFields.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchFields.H index 95e36995dd38e99283c8cd3638737571d2990312..a62cd0806edd69365a1137a76c7b4c9f293e6e04 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchFields.H +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchFields.H @@ -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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -35,8 +35,6 @@ namespace Foam { namespace compressible { -namespace RASModels -{ // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -44,7 +42,6 @@ makePatchTypeFieldTypedefs(kqRWallFunction); // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace compressible } // End namespace Foam diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutLowReWallFunction/mutLowReWallFunctionFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutLowReWallFunction/mutLowReWallFunctionFvPatchScalarField.C index 5eee5c270289d210b489b5497a9d8a7c100be7d1..269f9698a9515b66d71ab8aa4a5c1f78889798fe 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutLowReWallFunction/mutLowReWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutLowReWallFunction/mutLowReWallFunctionFvPatchScalarField.C @@ -24,7 +24,7 @@ License \*---------------------------------------------------------------------------*/ #include "mutLowReWallFunctionFvPatchScalarField.H" -#include "RASModel.H" +#include "compressible/turbulenceModel/turbulenceModel.H" #include "fvPatchFieldMapper.H" #include "volFields.H" #include "addToRunTimeSelectionTable.H" @@ -35,8 +35,6 @@ namespace Foam { namespace compressible { -namespace RASModels -{ // * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // @@ -129,7 +127,6 @@ makePatchTypeField // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace compressible } // End namespace Foam diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutLowReWallFunction/mutLowReWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutLowReWallFunction/mutLowReWallFunctionFvPatchScalarField.H index 2cbbef359cb13de77d4c80e703471f9d12940bbc..75f751288b97c80d911e2b3e2199af905a7d5449 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutLowReWallFunction/mutLowReWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutLowReWallFunction/mutLowReWallFunctionFvPatchScalarField.H @@ -22,7 +22,7 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Class - Foam::compressible::RASModels::mutLowReWallFunctionFvPatchScalarField + Foam::compressible::mutLowReWallFunctionFvPatchScalarField Group grpCmpWallFunctions @@ -43,7 +43,7 @@ Description \endverbatim SeeAlso - Foam::mutWallFunctionFvPatchScalarField + Foam::compressible::mutWallFunctionFvPatchScalarField SourceFiles mutLowReWallFunctionFvPatchScalarField.C @@ -61,8 +61,6 @@ namespace Foam { namespace compressible { -namespace RASModels -{ /*---------------------------------------------------------------------------*\ Class mutLowReWallFunctionFvPatchScalarField Declaration @@ -160,7 +158,6 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace compressible } // End namespace Foam diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutURoughWallFunction/mutURoughWallFunctionFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutURoughWallFunction/mutURoughWallFunctionFvPatchScalarField.C index f5571451a1fb4d9f20dd4350a8e5d355825c9eff..5591904c9e0e93f49917e3d979539977ac8805bb 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutURoughWallFunction/mutURoughWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutURoughWallFunction/mutURoughWallFunctionFvPatchScalarField.C @@ -26,7 +26,7 @@ License #include "mutURoughWallFunctionFvPatchScalarField.H" #include "fvPatchFieldMapper.H" #include "volFields.H" -#include "RASModel.H" +#include "compressible/turbulenceModel/turbulenceModel.H" #include "addToRunTimeSelectionTable.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -35,8 +35,6 @@ namespace Foam { namespace compressible { -namespace RASModels -{ // * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // @@ -311,7 +309,6 @@ makePatchTypeField // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace compressible } // End namespace Foam diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutURoughWallFunction/mutURoughWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutURoughWallFunction/mutURoughWallFunctionFvPatchScalarField.H index 479cb18b4009dc3b940cd965a6ddcae6417726cd..12beef633820fcb4ec2e39e8044e6806dc3cba26 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutURoughWallFunction/mutURoughWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutURoughWallFunction/mutURoughWallFunctionFvPatchScalarField.H @@ -22,7 +22,7 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Class - Foam::compressible::RASModels::mutURoughWallFunctionFvPatchScalarField + Foam::compressible:::mutURoughWallFunctionFvPatchScalarField Group grpCmpWallFunctions @@ -52,7 +52,7 @@ Description \endverbatim SeeAlso - Foam::mutWallFunctionFvPatchScalarField + Foam::compressible::mutWallFunctionFvPatchScalarField SourceFiles mutURoughWallFunctionFvPatchScalarField.C @@ -70,8 +70,6 @@ namespace Foam { namespace compressible { -namespace RASModels -{ /*---------------------------------------------------------------------------*\ Class mutURoughWallFunctionFvPatchScalarField Declaration @@ -232,7 +230,6 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace compressible } // End namespace Foam diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutUSpaldingWallFunction/mutUSpaldingWallFunctionFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutUSpaldingWallFunction/mutUSpaldingWallFunctionFvPatchScalarField.C index 4a4691c12c98254e27b567d19f985a349da1cffd..64bb1238ec7869113a6844989f3aceee24fc5893 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutUSpaldingWallFunction/mutUSpaldingWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutUSpaldingWallFunction/mutUSpaldingWallFunctionFvPatchScalarField.C @@ -26,7 +26,7 @@ License #include "mutUSpaldingWallFunctionFvPatchScalarField.H" #include "fvPatchFieldMapper.H" #include "volFields.H" -#include "RASModel.H" +#include "compressible/turbulenceModel/turbulenceModel.H" #include "addToRunTimeSelectionTable.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -35,8 +35,6 @@ namespace Foam { namespace compressible { -namespace RASModels -{ // * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // @@ -219,7 +217,6 @@ makePatchTypeField // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace compressible } // End namespace Foam diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutUSpaldingWallFunction/mutUSpaldingWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutUSpaldingWallFunction/mutUSpaldingWallFunctionFvPatchScalarField.H index 2501fa5b719427f210694eb2b417ab8b18ae851f..a0322dbeb26b8b2688830588dcdd3af37843074f 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutUSpaldingWallFunction/mutUSpaldingWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutUSpaldingWallFunction/mutUSpaldingWallFunctionFvPatchScalarField.H @@ -22,7 +22,7 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Class - Foam::compressible::RASModels::mutUSpaldingWallFunctionFvPatchScalarField + Foam::compressible::mutUSpaldingWallFunctionFvPatchScalarField Group grpCmpWallFunctions @@ -56,7 +56,7 @@ Description \endverbatim SeeAlso - Foam::mutWallFunctionFvPatchScalarField + Foam::compressible::mutWallFunctionFvPatchScalarField SourceFiles mutUSpaldingWallFunctionFvPatchScalarField.C @@ -74,8 +74,6 @@ namespace Foam { namespace compressible { -namespace RASModels -{ /*---------------------------------------------------------------------------*\ Class mutUSpaldingWallFunctionFvPatchScalarField Declaration @@ -182,7 +180,6 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace compressible } // End namespace Foam diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutUWallFunction/mutUWallFunctionFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutUWallFunction/mutUWallFunctionFvPatchScalarField.C index 85efec0327fd244601701cabdb2980bc21909d1b..3148119dcfb100f226e955946a998f0d0ec61385 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutUWallFunction/mutUWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutUWallFunction/mutUWallFunctionFvPatchScalarField.C @@ -24,7 +24,7 @@ License \*---------------------------------------------------------------------------*/ #include "mutUWallFunctionFvPatchScalarField.H" -#include "RASModel.H" +#include "compressible/turbulenceModel/turbulenceModel.H" #include "fvPatchFieldMapper.H" #include "volFields.H" #include "addToRunTimeSelectionTable.H" @@ -35,8 +35,6 @@ namespace Foam { namespace compressible { -namespace RASModels -{ // * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // @@ -197,7 +195,6 @@ makePatchTypeField // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace compressible } // End namespace Foam diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutUWallFunction/mutUWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutUWallFunction/mutUWallFunctionFvPatchScalarField.H index 08a938b52c5716cd6a30b19de151096809350910..1c6ed4f7d64cf47fd91894404bf7ffead1f0eebb 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutUWallFunction/mutUWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutUWallFunction/mutUWallFunctionFvPatchScalarField.H @@ -22,7 +22,7 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Class - Foam::compressible::RASModels::mutUWallFunctionFvPatchScalarField + Foam::compressible::mutUWallFunctionFvPatchScalarField Group grpCmpWallFunctions @@ -42,7 +42,7 @@ Description \endverbatim SeeAlso - Foam::mutWallFunctionFvPatchScalarField + Foam::compressible::mutWallFunctionFvPatchScalarField SourceFiles mutUWallFunctionFvPatchScalarField.C @@ -60,8 +60,6 @@ namespace Foam { namespace compressible { -namespace RASModels -{ /*---------------------------------------------------------------------------*\ Class mutUWallFunctionFvPatchScalarField Declaration @@ -168,7 +166,6 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace compressible } // End namespace Foam diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutWallFunction/mutWallFunctionFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutWallFunction/mutWallFunctionFvPatchScalarField.C index 6f0dbb1a9fea14a6301e90b90419d237a68f7177..f4a6476be6b7fad21ace76c82e6204876eec9d33 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutWallFunction/mutWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutWallFunction/mutWallFunctionFvPatchScalarField.C @@ -24,7 +24,6 @@ License \*---------------------------------------------------------------------------*/ #include "mutWallFunctionFvPatchScalarField.H" -#include "RASModel.H" #include "fvPatchFieldMapper.H" #include "volFields.H" #include "wallFvPatch.H" @@ -36,8 +35,6 @@ namespace Foam { namespace compressible { -namespace RASModels -{ // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -184,7 +181,6 @@ void mutWallFunctionFvPatchScalarField::write(Ostream& os) const // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace compressible } // End namespace Foam diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutWallFunction/mutWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutWallFunction/mutWallFunctionFvPatchScalarField.H index 9228b609242f5a08f1e76e18e52885d753781520..29bc406aa1e3f9ee85b88acb35f8bc4e72c8d2de 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutWallFunction/mutWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutWallFunction/mutWallFunctionFvPatchScalarField.H @@ -22,7 +22,7 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Class - Foam::compressible::RASModels::mutWallFunctionFvPatchScalarField + Foam::compressible::mutWallFunctionFvPatchScalarField Group grpCmpWallFunctions @@ -61,8 +61,6 @@ namespace Foam { namespace compressible { -namespace RASModels -{ /*---------------------------------------------------------------------------*\ Class mutWallFunctionFvPatchScalarField Declaration @@ -173,7 +171,6 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace compressible } // End namespace Foam diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutkRoughWallFunction/mutkRoughWallFunctionFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutkRoughWallFunction/mutkRoughWallFunctionFvPatchScalarField.C index cc04471f4fc4ca692f9ccb8d98d0012ab42cb8c7..e634b89acc1baca2277abe37645aaa311e3c105f 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutkRoughWallFunction/mutkRoughWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutkRoughWallFunction/mutkRoughWallFunctionFvPatchScalarField.C @@ -24,7 +24,7 @@ License \*---------------------------------------------------------------------------*/ #include "mutkRoughWallFunctionFvPatchScalarField.H" -#include "RASModel.H" +#include "compressible/turbulenceModel/turbulenceModel.H" #include "fvPatchFieldMapper.H" #include "volFields.H" #include "addToRunTimeSelectionTable.H" @@ -35,8 +35,6 @@ namespace Foam { namespace compressible { -namespace RASModels -{ // * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // @@ -237,7 +235,6 @@ makePatchTypeField // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace compressible } // End namespace Foam diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutkRoughWallFunction/mutkRoughWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutkRoughWallFunction/mutkRoughWallFunctionFvPatchScalarField.H index fdf5a0a7d6364919c2cea2b7604c9951953f2473..6ff72c42d3b22341b64a0f13c7e84298dd692f18 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutkRoughWallFunction/mutkRoughWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutkRoughWallFunction/mutkRoughWallFunctionFvPatchScalarField.H @@ -22,7 +22,7 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Class - Foam::compressible::RASModels::mutkRoughWallFunctionFvPatchScalarField + Foam::compressible::mutkRoughWallFunctionFvPatchScalarField Group grpCmpWallFunctions @@ -56,7 +56,7 @@ Description \endverbatim SeeAlso - Foam::mutkRoughWallFunctionFvPatchScalarField + Foam::compressible::mutkRoughWallFunctionFvPatchScalarField SourceFiles mutkRoughWallFunctionFvPatchScalarField.C @@ -74,8 +74,6 @@ namespace Foam { namespace compressible { -namespace RASModels -{ /*---------------------------------------------------------------------------*\ Class mutkRoughWallFunctionFvPatchScalarField Declaration @@ -198,7 +196,6 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace compressible } // End namespace Foam diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutkWallFunction/mutkWallFunctionFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutkWallFunction/mutkWallFunctionFvPatchScalarField.C index 9aeb96b297e2720547fad2a1f13f246d8d13a34f..72b010d55d0d11b3774ef07b41a1d0b3c84559b4 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutkWallFunction/mutkWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutkWallFunction/mutkWallFunctionFvPatchScalarField.C @@ -24,7 +24,7 @@ License \*---------------------------------------------------------------------------*/ #include "mutkWallFunctionFvPatchScalarField.H" -#include "RASModel.H" +#include "compressible/turbulenceModel/turbulenceModel.H" #include "fvPatchFieldMapper.H" #include "volFields.H" #include "wallFvPatch.H" @@ -36,8 +36,6 @@ namespace Foam { namespace compressible { -namespace RASModels -{ // * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // @@ -159,7 +157,6 @@ makePatchTypeField // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace compressible } // End namespace Foam diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutkWallFunction/mutkWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutkWallFunction/mutkWallFunctionFvPatchScalarField.H index 8d952a64285e0811afca6082f9c2d778030e04f1..f81625627cf26d86d2ac36abc5f492078f59ab5e 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutkWallFunction/mutkWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutkWallFunction/mutkWallFunctionFvPatchScalarField.H @@ -22,7 +22,7 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Class - Foam::compressible::RASModels::mutkWallFunctionFvPatchScalarField + Foam::compressible::mutkWallFunctionFvPatchScalarField Group grpCmpWallFunctions @@ -43,7 +43,7 @@ Description \endverbatim SeeAlso - Foam::mutWallFunctionFvPatchScalarField + Foam::compressible::mutWallFunctionFvPatchScalarField SourceFiles mutkWallFunctionFvPatchScalarField.C @@ -61,8 +61,6 @@ namespace Foam { namespace compressible { -namespace RASModels -{ /*---------------------------------------------------------------------------*\ Class mutkWallFunctionFvPatchScalarField Declaration @@ -160,7 +158,6 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace compressible } // End namespace Foam diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.C index d7f2f4fa5ed14cbe229dd4d1fa7dd7e9837d0b17..e95a4d9bf7b92e61eda664157df89c901d9bcd6c 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.C @@ -24,7 +24,7 @@ License \*---------------------------------------------------------------------------*/ #include "omegaWallFunctionFvPatchScalarField.H" -#include "RASModel.H" +#include "compressible/turbulenceModel/turbulenceModel.H" #include "fvPatchFieldMapper.H" #include "volFields.H" #include "addToRunTimeSelectionTable.H" @@ -37,8 +37,6 @@ namespace Foam { namespace compressible { -namespace RASModels -{ // * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // @@ -58,7 +56,6 @@ void omegaWallFunctionFvPatchScalarField::checkType() void omegaWallFunctionFvPatchScalarField::writeLocalEntries(Ostream& os) const { - writeEntryIfDifferent<word>(os, "G", "RASModel.G", GName_); os.writeKeyword("Cmu") << Cmu_ << token::END_STATEMENT << nl; os.writeKeyword("kappa") << kappa_ << token::END_STATEMENT << nl; os.writeKeyword("E") << E_ << token::END_STATEMENT << nl; @@ -75,7 +72,6 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField ) : fixedInternalValueFvPatchField<scalar>(p, iF), - GName_("RASModel.G"), Cmu_(0.09), kappa_(0.41), E_(9.8), @@ -96,7 +92,6 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField ) : fixedInternalValueFvPatchField<scalar>(ptf, p, iF, mapper), - GName_(ptf.GName_), Cmu_(ptf.Cmu_), kappa_(ptf.kappa_), E_(ptf.E_), @@ -115,7 +110,6 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField ) : fixedInternalValueFvPatchField<scalar>(p, iF, dict), - GName_(dict.lookupOrDefault<word>("G", "RASModel.G")), Cmu_(dict.lookupOrDefault<scalar>("Cmu", 0.09)), kappa_(dict.lookupOrDefault<scalar>("kappa", 0.41)), E_(dict.lookupOrDefault<scalar>("E", 9.8)), @@ -132,7 +126,6 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField ) : fixedInternalValueFvPatchField<scalar>(owfpsf), - GName_(owfpsf.GName_), Cmu_(owfpsf.Cmu_), kappa_(owfpsf.kappa_), E_(owfpsf.E_), @@ -150,7 +143,6 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField ) : fixedInternalValueFvPatchField<scalar>(owfpsf, iF), - GName_(owfpsf.GName_), Cmu_(owfpsf.Cmu_), kappa_(owfpsf.kappa_), E_(owfpsf.E_), @@ -173,13 +165,19 @@ void omegaWallFunctionFvPatchScalarField::updateCoeffs() const label patchI = patch().index(); - const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties"); - const scalarField& y = rasModel.y()[patch().index()]; + const turbulenceModel& turbulence = + db().lookupObject<turbulenceModel>("turbulenceModel"); + const scalarField& y = turbulence.y()[patch().index()]; const scalar Cmu25 = pow025(Cmu_); volScalarField& G = const_cast<volScalarField&> - (db().lookupObject<volScalarField>(GName_)); + ( + db().lookupObject<volScalarField> + ( + turbulence.type() + ".G" + ) + ); DimensionedField<scalar, volMesh>& omega = const_cast<DimensionedField<scalar, volMesh>&> @@ -187,18 +185,18 @@ void omegaWallFunctionFvPatchScalarField::updateCoeffs() dimensionedInternalField() ); - const tmp<volScalarField> tk = rasModel.k(); + const tmp<volScalarField> tk = turbulence.k(); const volScalarField& k = tk(); - const scalarField& rhow = rasModel.rho().boundaryField()[patchI]; + const scalarField& rhow = turbulence.rho().boundaryField()[patchI]; - const scalarField& muw = rasModel.mu().boundaryField()[patchI]; + const scalarField& muw = turbulence.mu().boundaryField()[patchI]; - const tmp<volScalarField> tmut = rasModel.mut(); + const tmp<volScalarField> tmut = turbulence.mut(); const volScalarField& mut = tmut(); const scalarField& mutw = mut.boundaryField()[patchI]; - const fvPatchVectorField& Uw = rasModel.U().boundaryField()[patchI]; + const fvPatchVectorField& Uw = turbulence.U().boundaryField()[patchI]; const scalarField magGradUw(mag(Uw.snGrad())); @@ -242,7 +240,6 @@ makePatchTypeField // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace compressible } // End namespace Foam diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H index d6516c5449ab748a213960619e6301e290e1a602..69fa8ee9cd06ea6ab759ef193a94c9c89a8e3f9f 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H @@ -22,7 +22,7 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Class - Foam::compressible::RASModels::omegaWallFunctionFvPatchScalarField + Foam::compressible::omegaWallFunctionFvPatchScalarField Group grpCmpWallFunctions @@ -54,7 +54,6 @@ Description \table Property | Description | Required | Default value - G | turbulence generation field name | no | G Cmu | model coefficient | no | 0.09 kappa | Von Karman constant | no | 0.41 E | model coefficient | no | 9.8 @@ -85,8 +84,6 @@ namespace Foam { namespace compressible { -namespace RASModels -{ /*---------------------------------------------------------------------------*\ Class omegaWallFunctionFvPatchScalarField Declaration @@ -100,9 +97,6 @@ protected: // Protected data - //- Name of turbulence generation field - word GName_; - //- Cmu coefficient scalar Cmu_; @@ -214,7 +208,6 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace compressible } // End namespace Foam diff --git a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/v2WallFunctions/v2WallFunction/v2WallFunctionFvPatchScalarField.C b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/v2WallFunctions/v2WallFunction/v2WallFunctionFvPatchScalarField.C index f7c8643baedd3014173768850dce842b44bcadd7..8c30e82d006ec0f5024cbac918a2d4ed36afce96 100644 --- a/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/v2WallFunctions/v2WallFunction/v2WallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/compressible/RAS/derivedFvPatchFields/wallFunctions/v2WallFunctions/v2WallFunction/v2WallFunctionFvPatchScalarField.C @@ -167,16 +167,17 @@ void v2WallFunctionFvPatchScalarField::updateCoeffs() const label patchI = patch().index(); - const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties"); - const scalarField& y = rasModel.y()[patchI]; + const turbulenceModel& turbulence = + db().lookupObject<turbulenceModel>("turbulenceModel"); + const scalarField& y = turbulence.y()[patchI]; - const tmp<volScalarField> tk = rasModel.k(); + const tmp<volScalarField> tk = turbulence.k(); const volScalarField& k = tk(); - const tmp<volScalarField> tmu = rasModel.mu(); + const tmp<volScalarField> tmu = turbulence.mu(); const scalarField& muw = tmu().boundaryField()[patchI]; - const scalarField& rhow = rasModel.rho().boundaryField()[patchI]; + const scalarField& rhow = turbulence.rho().boundaryField()[patchI]; const scalar Cmu25 = pow025(Cmu_); diff --git a/src/turbulenceModels/compressible/RAS/kEpsilon/kEpsilon.C b/src/turbulenceModels/compressible/RAS/kEpsilon/kEpsilon.C index 7475a39f5bdfc699c275421ad91f1dcd1e6882f5..93e902cfe406c029932c460dc201d45f42783bc4 100644 --- a/src/turbulenceModels/compressible/RAS/kEpsilon/kEpsilon.C +++ b/src/turbulenceModels/compressible/RAS/kEpsilon/kEpsilon.C @@ -281,7 +281,7 @@ void kEpsilon::correct() } tmp<volTensorField> tgradU = fvc::grad(U_); - volScalarField G("RASModel.G", mut_*(tgradU() && dev(twoSymm(tgradU())))); + volScalarField G(type() + ".G", mut_*(tgradU() && dev(twoSymm(tgradU())))); tgradU.clear(); // Update epsilon and G at the wall diff --git a/src/turbulenceModels/compressible/RAS/kOmegaSST/kOmegaSST.C b/src/turbulenceModels/compressible/RAS/kOmegaSST/kOmegaSST.C index 066e427741e4e576b210e036b21ea282495924df..ddde795545d66396d6675a73f2acf9fc45f4330b 100644 --- a/src/turbulenceModels/compressible/RAS/kOmegaSST/kOmegaSST.C +++ b/src/turbulenceModels/compressible/RAS/kOmegaSST/kOmegaSST.C @@ -85,6 +85,18 @@ tmp<volScalarField> kOmegaSST::F2() const } +tmp<volScalarField> kOmegaSST::F3() const +{ + tmp<volScalarField> arg3 = min + ( + 150*(mu()/rho_)/(omega_*sqr(y_)), + scalar(10) + ); + + return 1 - tanh(pow4(arg3)); +} + + // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // kOmegaSST::kOmegaSST @@ -198,6 +210,15 @@ kOmegaSST::kOmegaSST 0.31 ) ), + b1_ + ( + dimensioned<scalar>::lookupOrAddToDict + ( + "b1", + coeffDict_, + 1.0 + ) + ), c1_ ( dimensioned<scalar>::lookupOrAddToDict @@ -268,7 +289,7 @@ kOmegaSST::kOmegaSST / max ( a1_*omega_, - F2()*sqrt(2.0)*mag(symm(fvc::grad(U_))) + b1_*F2()*F3()*sqrt(2.0)*mag(symm(fvc::grad(U_))) ) ); mut_.correctBoundaryConditions(); @@ -347,6 +368,7 @@ bool kOmegaSST::read() beta2_.readIfPresent(coeffDict()); betaStar_.readIfPresent(coeffDict()); a1_.readIfPresent(coeffDict()); + b1_.readIfPresent(coeffDict()); c1_.readIfPresent(coeffDict()); return true; @@ -392,7 +414,7 @@ void kOmegaSST::correct() tmp<volTensorField> tgradU = fvc::grad(U_); volScalarField S2(2*magSqr(symm(tgradU()))); volScalarField GbyMu((tgradU() && dev(twoSymm(tgradU())))); - volScalarField G("RASModel.G", mut_*GbyMu); + volScalarField G(type() + ".G", mut_*GbyMu); tgradU.clear(); // Update omega and G at the wall @@ -448,7 +470,7 @@ void kOmegaSST::correct() // Re-calculate viscosity - mut_ = a1_*rho_*k_/max(a1_*omega_, F2()*sqrt(S2)); + mut_ = a1_*rho_*k_/max(a1_*omega_, b1_*F2()*F3()*sqrt(S2)); mut_.correctBoundaryConditions(); // Re-calculate thermal diffusivity diff --git a/src/turbulenceModels/compressible/RAS/kOmegaSST/kOmegaSST.H b/src/turbulenceModels/compressible/RAS/kOmegaSST/kOmegaSST.H index d498a9a1f1031afdbeeb768dc1c9f3453720b170..6cc40f6b683e81e8955566e3803b5462597c9298 100644 --- a/src/turbulenceModels/compressible/RAS/kOmegaSST/kOmegaSST.H +++ b/src/turbulenceModels/compressible/RAS/kOmegaSST/kOmegaSST.H @@ -38,6 +38,15 @@ Description Nov. 2001 \endverbatim + with the addition of the F3 term for rough walls from + \verbatim + Hellsten, A. + "Some Improvements in Menter’s k-omega-SST turbulence model" + 29th AIAA Fluid Dynamics Conference, + AIAA-98-2554, + June 1998. + \endverbatim + Note that this implementation is written in terms of alpha diffusion coefficients rather than the more traditional sigma (alpha = 1/sigma) so that the blending can be applied to all coefficuients in a consistent @@ -69,6 +78,7 @@ Description gamma1 0.5532; gamma2 0.4403; a1 0.31; + b1 1.0; c1 10.0; } \endverbatim @@ -125,6 +135,7 @@ protected: dimensionedScalar betaStar_; dimensionedScalar a1_; + dimensionedScalar b1_; dimensionedScalar c1_; @@ -144,6 +155,7 @@ protected: tmp<volScalarField> F1(const volScalarField& CDkOmega) const; tmp<volScalarField> F2() const; + tmp<volScalarField> F3() const; tmp<volScalarField> blend ( diff --git a/src/turbulenceModels/compressible/RAS/realizableKE/realizableKE.C b/src/turbulenceModels/compressible/RAS/realizableKE/realizableKE.C index 537a2c8e44cad7853ae22e6478aac93bdba400d2..4d3e8cf94b9afdee89c537b25528cf473d37176b 100644 --- a/src/turbulenceModels/compressible/RAS/realizableKE/realizableKE.C +++ b/src/turbulenceModels/compressible/RAS/realizableKE/realizableKE.C @@ -321,7 +321,7 @@ void realizableKE::correct() volScalarField eta(magS*k_/epsilon_); volScalarField C1(max(eta/(scalar(5) + eta), scalar(0.43))); - volScalarField G("RASModel.G", mut_*(gradU && dev(twoSymm(gradU)))); + volScalarField G(type() + ".G", mut_*(gradU && dev(twoSymm(gradU)))); // Update epsilon and G at the wall epsilon_.boundaryField().updateCoeffs(); diff --git a/src/turbulenceModels/compressible/RAS/v2f/v2f.C b/src/turbulenceModels/compressible/RAS/v2f/v2f.C index fa5c19503eb176ad5e04ec99077b095e0067d20f..0fb834ac49fdc76766ad961ea09d246c975eca99 100644 --- a/src/turbulenceModels/compressible/RAS/v2f/v2f.C +++ b/src/turbulenceModels/compressible/RAS/v2f/v2f.C @@ -398,7 +398,7 @@ void v2f::correct() const volTensorField gradU(fvc::grad(U_)); const volScalarField S2(2*magSqr(dev(symm(gradU)))); - const volScalarField G("RASModel.G", mut_*S2); + const volScalarField G(type() + ".G", mut_*S2); const volScalarField T(Ts()); const volScalarField L2("v2f.L2", sqr(Ls())); const volScalarField alpha diff --git a/src/turbulenceModels/compressible/turbulenceModel/laminar/laminar.C b/src/turbulenceModels/compressible/turbulenceModel/laminar/laminar.C index aa56d7cfddb3203db512b59f152a677b893c6592..a7188c5eebdd9a61873dc0d964178888164f3805 100644 --- a/src/turbulenceModels/compressible/turbulenceModel/laminar/laminar.C +++ b/src/turbulenceModels/compressible/turbulenceModel/laminar/laminar.C @@ -79,6 +79,12 @@ autoPtr<laminar> laminar::New // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // +const dictionary& laminar::coeffDict() const +{ + return dictionary::null; +} + + tmp<volScalarField> laminar::mut() const { return tmp<volScalarField> diff --git a/src/turbulenceModels/compressible/turbulenceModel/laminar/laminar.H b/src/turbulenceModels/compressible/turbulenceModel/laminar/laminar.H index bead5d06de48c9295978b3848732d39b442f255c..b1de35154ecb5612d72cf11480821425518ccb9d 100644 --- a/src/turbulenceModels/compressible/turbulenceModel/laminar/laminar.H +++ b/src/turbulenceModels/compressible/turbulenceModel/laminar/laminar.H @@ -91,6 +91,9 @@ public: // Member Functions + //- Const access to the coefficients dictionary + virtual const dictionary& coeffDict() const; + //- Return the turbulence viscosity, i.e. 0 for laminar flow virtual tmp<volScalarField> mut() const; diff --git a/src/turbulenceModels/compressible/turbulenceModel/turbulenceModel.H b/src/turbulenceModels/compressible/turbulenceModel/turbulenceModel.H index e6d8bf290fdfbef40eccb24596df3f01596761ef..87d283b29ab8d318cb625269052367e219f5a3a2 100644 --- a/src/turbulenceModels/compressible/turbulenceModel/turbulenceModel.H +++ b/src/turbulenceModels/compressible/turbulenceModel/turbulenceModel.H @@ -158,6 +158,9 @@ public: // Member Functions + //- Const access to the coefficients dictionary + virtual const dictionary& coeffDict() const = 0; + //- Access function to density field const volScalarField& rho() const { diff --git a/src/turbulenceModels/derivedFvPatchFields/fixedShearStress/fixedShearStressFvPatchVectorField.C b/src/turbulenceModels/derivedFvPatchFields/fixedShearStress/fixedShearStressFvPatchVectorField.C index 0f1d19bb2e04a4cfaf55054b1cc327767efcb01d..7afc74c400d527e2072fc6abdd008ea2dc326b40 100644 --- a/src/turbulenceModels/derivedFvPatchFields/fixedShearStress/fixedShearStressFvPatchVectorField.C +++ b/src/turbulenceModels/derivedFvPatchFields/fixedShearStress/fixedShearStressFvPatchVectorField.C @@ -28,8 +28,9 @@ License #include "addToRunTimeSelectionTable.H" #include "fvPatchFieldMapper.H" #include "volFields.H" -#include "incompressible/RAS/RASModel/RASModel.H" -#include "compressible/RAS/RASModel/RASModel.H" +#include "surfaceFields.H" +#include "incompressible/turbulenceModel/turbulenceModel.H" +#include "compressible/turbulenceModel/turbulenceModel.H" // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // diff --git a/src/turbulenceModels/incompressible/LES/LESModel/LESModel.H b/src/turbulenceModels/incompressible/LES/LESModel/LESModel.H index c790bb587196e0a22660779e001f39207f21f6ed..d08086234b856a55ebc4c941b3cf587b3ae18dd1 100644 --- a/src/turbulenceModels/incompressible/LES/LESModel/LESModel.H +++ b/src/turbulenceModels/incompressible/LES/LESModel/LESModel.H @@ -166,7 +166,7 @@ public: //- Const access to the coefficients dictionary, // which provides info. about choice of models, // and all related data (particularly model coefficients). - inline const dictionary& coeffDict() const + virtual const dictionary& coeffDict() const { return coeffDict_; } diff --git a/src/turbulenceModels/incompressible/LES/kOmegaSSTSAS/kOmegaSSTSAS.C b/src/turbulenceModels/incompressible/LES/kOmegaSSTSAS/kOmegaSSTSAS.C index 2b54d0ef09223a0942b96f6345f4211e18ce13e8..acb34537c7fca816f3d6324a8d2ba4236b817e1e 100644 --- a/src/turbulenceModels/incompressible/LES/kOmegaSSTSAS/kOmegaSSTSAS.C +++ b/src/turbulenceModels/incompressible/LES/kOmegaSSTSAS/kOmegaSSTSAS.C @@ -353,7 +353,7 @@ void kOmegaSSTSAS::correct(const tmp<volTensorField>& gradU) volScalarField L(sqrt(k_)/(pow025(Cmu_)*omega_)); volScalarField CDkOmega((2.0*alphaOmega2_)*(gradK & gradOmega)/omega_); volScalarField F1(this->F1(CDkOmega)); - volScalarField G(nuSgs_*S2); + volScalarField G(type() + ".G", nuSgs_*S2); // Turbulent kinetic energy equation { diff --git a/src/turbulenceModels/incompressible/RAS/LRR/LRR.C b/src/turbulenceModels/incompressible/RAS/LRR/LRR.C index 68f0d2b2b0916f736169bbc7062bfccab7982113..49b0bd0a17b6192d4a8745b384b2c83d4b30c11f 100644 --- a/src/turbulenceModels/incompressible/RAS/LRR/LRR.C +++ b/src/turbulenceModels/incompressible/RAS/LRR/LRR.C @@ -339,7 +339,7 @@ void LRR::correct() } volSymmTensorField P(-twoSymm(R_ & fvc::grad(U_))); - volScalarField G("RASModel.G", 0.5*mag(tr(P))); + volScalarField G(type() + ".G", 0.5*mag(tr(P))); // Update epsilon and G at the wall epsilon_.boundaryField().updateCoeffs(); diff --git a/src/turbulenceModels/incompressible/RAS/LamBremhorstKE/LamBremhorstKE.C b/src/turbulenceModels/incompressible/RAS/LamBremhorstKE/LamBremhorstKE.C index 17d9157c905492c8806e93ef4cf7c7b71d4c7955..576d830421908a8e32e83065d09e5bc0787418c1 100644 --- a/src/turbulenceModels/incompressible/RAS/LamBremhorstKE/LamBremhorstKE.C +++ b/src/turbulenceModels/incompressible/RAS/LamBremhorstKE/LamBremhorstKE.C @@ -252,7 +252,7 @@ void LamBremhorstKE::correct() y_.correct(); } - volScalarField G("RASModel.G", nut_*2*magSqr(symm(fvc::grad(U_)))); + volScalarField G(type() + ".G", nut_*2*magSqr(symm(fvc::grad(U_)))); // Calculate parameters and coefficients for low-Reynolds number model diff --git a/src/turbulenceModels/incompressible/RAS/LaunderGibsonRSTM/LaunderGibsonRSTM.C b/src/turbulenceModels/incompressible/RAS/LaunderGibsonRSTM/LaunderGibsonRSTM.C index c6ee7a7d448528bb363b420a923e85d9d1a37e97..2f8ff3b7ea0af39c5c2c35be8e160726be142dce 100644 --- a/src/turbulenceModels/incompressible/RAS/LaunderGibsonRSTM/LaunderGibsonRSTM.C +++ b/src/turbulenceModels/incompressible/RAS/LaunderGibsonRSTM/LaunderGibsonRSTM.C @@ -386,7 +386,7 @@ void LaunderGibsonRSTM::correct() } volSymmTensorField P(-twoSymm(R_ & fvc::grad(U_))); - volScalarField G("RASModel.G", 0.5*mag(tr(P))); + volScalarField G(type() + ".G", 0.5*mag(tr(P))); // Update epsilon and G at the wall epsilon_.boundaryField().updateCoeffs(); diff --git a/src/turbulenceModels/incompressible/RAS/LaunderSharmaKE/LaunderSharmaKE.C b/src/turbulenceModels/incompressible/RAS/LaunderSharmaKE/LaunderSharmaKE.C index 53cc490f297f68a27758c1fdf311d8ba9172c616..c6854e7cba2f0c8a199ed0b7fea4a98b93390ed3 100644 --- a/src/turbulenceModels/incompressible/RAS/LaunderSharmaKE/LaunderSharmaKE.C +++ b/src/turbulenceModels/incompressible/RAS/LaunderSharmaKE/LaunderSharmaKE.C @@ -255,7 +255,7 @@ void LaunderSharmaKE::correct() tmp<volScalarField> S2 = 2*magSqr(symm(fvc::grad(U_))); - volScalarField G("RASModel.G", nut_*S2); + volScalarField G(type() + ".G", nut_*S2); const volScalarField E(2.0*nu()*nut_*fvc::magSqrGradGrad(U_)); const volScalarField D(2.0*nu()*magSqr(fvc::grad(sqrt(k_)))); diff --git a/src/turbulenceModels/incompressible/RAS/LienCubicKE/LienCubicKE.C b/src/turbulenceModels/incompressible/RAS/LienCubicKE/LienCubicKE.C index 8eb972dcfbdc7083e243486748a25d2b3162e287..dbecdb2dc83602b917d5588005c6dc327b985844 100644 --- a/src/turbulenceModels/incompressible/RAS/LienCubicKE/LienCubicKE.C +++ b/src/turbulenceModels/incompressible/RAS/LienCubicKE/LienCubicKE.C @@ -356,7 +356,7 @@ void LienCubicKE::correct() volScalarField G ( - "RASModel.G", + type() + ".G", Cmu_*sqr(k_)/epsilon_*S2 - (nonlinearStress_ && gradU) ); diff --git a/src/turbulenceModels/incompressible/RAS/LienCubicKELowRe/LienCubicKELowRe.C b/src/turbulenceModels/incompressible/RAS/LienCubicKELowRe/LienCubicKELowRe.C index 5162fa78bdafe469329f5ce28037b19ec34b7282..9c5d561998dc45c2256f5f92e0aeebcb694cc13c 100644 --- a/src/turbulenceModels/incompressible/RAS/LienCubicKELowRe/LienCubicKELowRe.C +++ b/src/turbulenceModels/incompressible/RAS/LienCubicKELowRe/LienCubicKELowRe.C @@ -446,7 +446,7 @@ void LienCubicKELowRe::correct() volScalarField G ( - "RASModel.G", + type() + ".G", Cmu_*fMu*sqr(k_)/epsilon_*S2 - (nonlinearStress_ && gradU) ); diff --git a/src/turbulenceModels/incompressible/RAS/LienLeschzinerLowRe/LienLeschzinerLowRe.C b/src/turbulenceModels/incompressible/RAS/LienLeschzinerLowRe/LienLeschzinerLowRe.C index 6daecaae6badc12bb3b88b7f5c46e348ae478f78..faf5c125e4f4a84e44e65124fc6753aa1c7b6580 100644 --- a/src/turbulenceModels/incompressible/RAS/LienLeschzinerLowRe/LienLeschzinerLowRe.C +++ b/src/turbulenceModels/incompressible/RAS/LienLeschzinerLowRe/LienLeschzinerLowRe.C @@ -319,7 +319,7 @@ void LienLeschzinerLowRe::correct() const volScalarField f2(scalar(1) - 0.3*exp(-sqr(Rt))); - volScalarField G("RASModel.G", Cmu_*fMu*sqr(k_)/epsilon_*S2); + volScalarField G(type() + ".G", Cmu_*fMu*sqr(k_)/epsilon_*S2); // Dissipation equation diff --git a/src/turbulenceModels/incompressible/RAS/NonlinearKEShih/NonlinearKEShih.C b/src/turbulenceModels/incompressible/RAS/NonlinearKEShih/NonlinearKEShih.C index 750a4dc15b58d6a937ac4ffc633a8cd40b1b28cc..b33c0cd3a863b39f70876d86664e17b077ff94af 100644 --- a/src/turbulenceModels/incompressible/RAS/NonlinearKEShih/NonlinearKEShih.C +++ b/src/turbulenceModels/incompressible/RAS/NonlinearKEShih/NonlinearKEShih.C @@ -348,9 +348,8 @@ void NonlinearKEShih::correct() volScalarField G ( - "RASModel.G", - Cmu_*sqr(k_)/epsilon_*S2 - - (nonlinearStress_ && gradU) + type() + ".G", + Cmu_*sqr(k_)/epsilon_*S2 - (nonlinearStress_ && gradU) ); #include "nonLinearWallFunctionsI.H" diff --git a/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.H b/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.H index b1a97681c28c41f042f0235e7e5abe4e9ac0f498..4e890bb20514b6517bec7e280ca41a3902470f27 100644 --- a/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.H +++ b/src/turbulenceModels/incompressible/RAS/RASModel/RASModel.H @@ -208,7 +208,7 @@ public: } //- Const access to the coefficients dictionary - const dictionary& coeffDict() const + virtual const dictionary& coeffDict() const { return coeffDict_; } diff --git a/src/turbulenceModels/incompressible/RAS/RNGkEpsilon/RNGkEpsilon.C b/src/turbulenceModels/incompressible/RAS/RNGkEpsilon/RNGkEpsilon.C index 20ed988ca7eb507ecd9cc79fc111d6dcdd84056b..b82719f22189c2add52274d42141aea85ee45cf0 100644 --- a/src/turbulenceModels/incompressible/RAS/RNGkEpsilon/RNGkEpsilon.C +++ b/src/turbulenceModels/incompressible/RAS/RNGkEpsilon/RNGkEpsilon.C @@ -267,7 +267,7 @@ void RNGkEpsilon::correct() } const volScalarField S2(2*magSqr(symm(fvc::grad(U_)))); - volScalarField G("RASModel.G", nut_*S2); + volScalarField G(type() + ".G", nut_*S2); const volScalarField eta(sqrt(S2)*k_/epsilon_); volScalarField R diff --git a/src/turbulenceModels/incompressible/RAS/backwardsCompatibility/wallFunctions/backwardsCompatibilityWallFunctions.C b/src/turbulenceModels/incompressible/RAS/backwardsCompatibility/wallFunctions/backwardsCompatibilityWallFunctions.C index 3940b067a45ce75724acd68de67b48778b15c891..98514bb5bec842d5a97ded1ec85a49111afd9a0a 100644 --- a/src/turbulenceModels/incompressible/RAS/backwardsCompatibility/wallFunctions/backwardsCompatibilityWallFunctions.C +++ b/src/turbulenceModels/incompressible/RAS/backwardsCompatibility/wallFunctions/backwardsCompatibilityWallFunctions.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -75,7 +75,7 @@ tmp<volScalarField> autoCreateNut if (isA<wallFvPatch>(bm[patchI])) { nutBoundaryTypes[patchI] = - RASModels::nutkWallFunctionFvPatchScalarField::typeName; + nutkWallFunctionFvPatchScalarField::typeName; } else { @@ -145,7 +145,7 @@ tmp<volScalarField> autoCreateLowReNut if (isA<wallFvPatch>(bm[patchI])) { nutBoundaryTypes[patchI] = - RASModels::nutLowReWallFunctionFvPatchScalarField::typeName; + nutLowReWallFunctionFvPatchScalarField::typeName; } else { @@ -191,7 +191,7 @@ tmp<volScalarField> autoCreateEpsilon autoCreateWallFunctionField < scalar, - RASModels::epsilonWallFunctionFvPatchScalarField + epsilonWallFunctionFvPatchScalarField > ( fieldName, @@ -210,7 +210,7 @@ tmp<volScalarField> autoCreateOmega autoCreateWallFunctionField < scalar, - RASModels::omegaWallFunctionFvPatchScalarField + omegaWallFunctionFvPatchScalarField > ( fieldName, @@ -229,7 +229,7 @@ tmp<volScalarField> autoCreateK autoCreateWallFunctionField < scalar, - RASModels::kqRWallFunctionFvPatchField<scalar> + kqRWallFunctionFvPatchField<scalar> > ( fieldName, @@ -248,7 +248,7 @@ tmp<volScalarField> autoCreateQ autoCreateWallFunctionField < scalar, - RASModels::kqRWallFunctionFvPatchField<scalar> + kqRWallFunctionFvPatchField<scalar> > ( fieldName, @@ -267,7 +267,7 @@ tmp<volSymmTensorField> autoCreateR autoCreateWallFunctionField < symmTensor, - RASModels::kqRWallFunctionFvPatchField<symmTensor> + kqRWallFunctionFvPatchField<symmTensor> > ( fieldName, diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C index b65b1cde9e8f3a60de74648d1bbc7764625d0993..52d39a366f0e6089e7458ed1278ce47f26632447 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -27,7 +27,7 @@ License #include "addToRunTimeSelectionTable.H" #include "fvPatchFieldMapper.H" #include "volFields.H" -#include "RASModel.H" +#include "incompressible/turbulenceModel/turbulenceModel.H" // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // @@ -184,8 +184,9 @@ void turbulentHeatFluxTemperatureFvPatchScalarField::updateCoeffs() patch().lookupPatchField<volScalarField, scalar>(alphaEffName_); // retrieve (constant) specific heat capacity from transport dictionary - const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties"); - const scalar Cp0(readScalar(rasModel.transport().lookup("Cp0"))); + const turbulenceModel& turbulence = + db().lookupObject<turbulenceModel>("turbulenceModel"); + const scalar Cp0(readScalar(turbulence.transport().lookup("Cp0"))); switch (heatSource_) { diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.C index f0e9d5bdfeaffb5fddcd4984ef270325b0aae6f7..a7563417448bc0c6041b18e63dab4ed6608ed675 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.C +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.C @@ -28,7 +28,7 @@ License #include "fvPatchFieldMapper.H" #include "surfaceFields.H" #include "volFields.H" -#include "RASModel.H" +#include "incompressible/turbulenceModel/turbulenceModel.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -131,10 +131,11 @@ void turbulentMixingLengthDissipationRateInletFvPatchScalarField::updateCoeffs() } // Lookup Cmu corresponding to the turbulence model selected - const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties"); + const turbulenceModel& turbulence = + db().lookupObject<turbulenceModel>("turbulenceModel"); const scalar Cmu = - rasModel.coeffDict().lookupOrDefault<scalar>("Cmu", 0.09); + turbulence.coeffDict().lookupOrDefault<scalar>("Cmu", 0.09); const scalar Cmu75 = pow(Cmu, 0.75); diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.C index 1a9c4ae29a0b9e1b7a0aba257236b957e7768478..bf9f904f7a8a6d8abcdc11c82a7083311bc0c17f 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.C +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -28,7 +28,7 @@ License #include "fvPatchFieldMapper.H" #include "surfaceFields.H" #include "volFields.H" -#include "RASModel.H" +#include "incompressible/turbulenceModel/turbulenceModel.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -127,10 +127,11 @@ void turbulentMixingLengthFrequencyInletFvPatchScalarField::updateCoeffs() } // Lookup Cmu corresponding to the turbulence model selected - const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties"); + const turbulenceModel& turbulence = + db().lookupObject<turbulenceModel>("turbulenceModel"); const scalar Cmu = - rasModel.coeffDict().lookupOrDefault<scalar>("Cmu", 0.09); + turbulence.coeffDict().lookupOrDefault<scalar>("Cmu", 0.09); const scalar Cmu25 = pow(Cmu, 0.25); diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonLowReWallFunction/epsilonLowReWallFunctionFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonLowReWallFunction/epsilonLowReWallFunctionFvPatchScalarField.C index 1a67d2329f66feb5713b8a9432bbca6ec11fab52..df52c7373e8ffac02c03ecbc016d179e97fe75cc 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonLowReWallFunction/epsilonLowReWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonLowReWallFunction/epsilonLowReWallFunctionFvPatchScalarField.C @@ -24,7 +24,7 @@ License \*---------------------------------------------------------------------------*/ #include "epsilonLowReWallFunctionFvPatchScalarField.H" -#include "RASModel.H" +#include "incompressible/turbulenceModel/turbulenceModel.H" #include "fvPatchFieldMapper.H" #include "volFields.H" #include "addToRunTimeSelectionTable.H" @@ -35,8 +35,6 @@ namespace Foam { namespace incompressible { -namespace RASModels -{ // * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // @@ -132,11 +130,18 @@ void epsilonLowReWallFunctionFvPatchScalarField::updateCoeffs() const label patchI = patch().index(); - const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties"); - const scalarField& y = rasModel.y()[patchI]; + const turbulenceModel& turbulence = + db().lookupObject<turbulenceModel>("turbulenceModel"); + const scalarField& y = turbulence.y()[patchI]; volScalarField& G = - const_cast<volScalarField&>(db().lookupObject<volScalarField>(GName_)); + const_cast<volScalarField&> + ( + db().lookupObject<volScalarField> + ( + turbulence.type() + ".G" + ) + ); DimensionedField<scalar, volMesh>& epsilon = const_cast<DimensionedField<scalar, volMesh>&> @@ -144,17 +149,17 @@ void epsilonLowReWallFunctionFvPatchScalarField::updateCoeffs() dimensionedInternalField() ); - const tmp<volScalarField> tk = rasModel.k(); + const tmp<volScalarField> tk = turbulence.k(); const volScalarField& k = tk(); - const tmp<volScalarField> tnu = rasModel.nu(); + const tmp<volScalarField> tnu = turbulence.nu(); const scalarField& nuw = tnu().boundaryField()[patchI]; - const tmp<volScalarField> tnut = rasModel.nut(); + const tmp<volScalarField> tnut = turbulence.nut(); const volScalarField& nut = tnut(); const scalarField& nutw = nut.boundaryField()[patchI]; - const fvPatchVectorField& Uw = rasModel.U().boundaryField()[patchI]; + const fvPatchVectorField& Uw = turbulence.U().boundaryField()[patchI]; const scalarField magGradUw(mag(Uw.snGrad())); const scalar Cmu25 = pow025(Cmu_); @@ -173,7 +178,7 @@ void epsilonLowReWallFunctionFvPatchScalarField::updateCoeffs() } else { - epsilon[faceCellI] = 2.0*Cmu25*pow(k[faceCellI], 1.5)/y[faceI]; + epsilon[faceCellI] = 2.0*k[faceCellI]*nuw[faceI]/sqr(y[faceI]); } G[faceCellI] = @@ -199,7 +204,6 @@ makePatchTypeField // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace incompressible } // End namespace Foam diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonLowReWallFunction/epsilonLowReWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonLowReWallFunction/epsilonLowReWallFunctionFvPatchScalarField.H index 9191a584b457062bfaba5dfa591f5e822d5aee8b..b8cf09f0b7930d3da619f0fbd350089ff4b725f0 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonLowReWallFunction/epsilonLowReWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonLowReWallFunction/epsilonLowReWallFunctionFvPatchScalarField.H @@ -22,7 +22,7 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Class - Foam::incompressible::RASModels::epsilonLowReWallFunctionFvPatchScalarField + Foam::incompressible::epsilonLowReWallFunctionFvPatchScalarField Group grpIcoWallFunctions @@ -74,8 +74,6 @@ namespace Foam { namespace incompressible { -namespace RASModels -{ /*---------------------------------------------------------------------------*\ Class epsilonLowReWallFunctionFvPatchScalarField Declaration @@ -180,7 +178,6 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace incompressible } // End namespace Foam diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.C index 3fcb175fb36310fafa789db3288c7346c06ec191..518bb38f471a8f97818deab85d043275d3d25757 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.C @@ -24,7 +24,7 @@ License \*---------------------------------------------------------------------------*/ #include "epsilonWallFunctionFvPatchScalarField.H" -#include "RASModel.H" +#include "incompressible/turbulenceModel/turbulenceModel.H" #include "fvPatchFieldMapper.H" #include "volFields.H" #include "addToRunTimeSelectionTable.H" @@ -38,8 +38,6 @@ namespace Foam { namespace incompressible { -namespace RASModels -{ // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // @@ -59,7 +57,6 @@ void epsilonWallFunctionFvPatchScalarField::checkType() void epsilonWallFunctionFvPatchScalarField::writeLocalEntries(Ostream& os) const { - writeEntryIfDifferent<word>(os, "G", "RASModel.G", GName_); os.writeKeyword("Cmu") << Cmu_ << token::END_STATEMENT << nl; os.writeKeyword("kappa") << kappa_ << token::END_STATEMENT << nl; os.writeKeyword("E") << E_ << token::END_STATEMENT << nl; @@ -75,7 +72,6 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField ) : fixedInternalValueFvPatchField<scalar>(p, iF), - GName_("RASModel.G"), Cmu_(0.09), kappa_(0.41), E_(9.8) @@ -93,7 +89,6 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField ) : fixedInternalValueFvPatchField<scalar>(ptf, p, iF, mapper), - GName_(ptf.GName_), Cmu_(ptf.Cmu_), kappa_(ptf.kappa_), E_(ptf.E_) @@ -110,7 +105,6 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField ) : fixedInternalValueFvPatchField<scalar>(p, iF, dict), - GName_(dict.lookupOrDefault<word>("G", "RASModel.G")), Cmu_(dict.lookupOrDefault<scalar>("Cmu", 0.09)), kappa_(dict.lookupOrDefault<scalar>("kappa", 0.41)), E_(dict.lookupOrDefault<scalar>("E", 9.8)) @@ -125,7 +119,6 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField ) : fixedInternalValueFvPatchField<scalar>(ewfpsf), - GName_(ewfpsf.GName_), Cmu_(ewfpsf.Cmu_), kappa_(ewfpsf.kappa_), E_(ewfpsf.E_) @@ -141,7 +134,6 @@ epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField ) : fixedInternalValueFvPatchField<scalar>(ewfpsf, iF), - GName_(ewfpsf.GName_), Cmu_(ewfpsf.Cmu_), kappa_(ewfpsf.kappa_), E_(ewfpsf.E_) @@ -161,14 +153,21 @@ void epsilonWallFunctionFvPatchScalarField::updateCoeffs() const label patchI = patch().index(); - const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties"); - const scalarField& y = rasModel.y()[patchI]; + const turbulenceModel& turbulence = + db().lookupObject<turbulenceModel>("turbulenceModel"); + const scalarField& y = turbulence.y()[patchI]; const scalar Cmu25 = pow025(Cmu_); const scalar Cmu75 = pow(Cmu_, 0.75); volScalarField& G = - const_cast<volScalarField&>(db().lookupObject<volScalarField>(GName_)); + const_cast<volScalarField&> + ( + db().lookupObject<volScalarField> + ( + turbulence.type() + ".G" + ) + ); DimensionedField<scalar, volMesh>& epsilon = const_cast<DimensionedField<scalar, volMesh>&> @@ -176,17 +175,17 @@ void epsilonWallFunctionFvPatchScalarField::updateCoeffs() dimensionedInternalField() ); - const tmp<volScalarField> tk = rasModel.k(); + const tmp<volScalarField> tk = turbulence.k(); const volScalarField& k = tk(); - const tmp<volScalarField> tnu = rasModel.nu(); + const tmp<volScalarField> tnu = turbulence.nu(); const scalarField& nuw = tnu().boundaryField()[patchI]; - const tmp<volScalarField> tnut = rasModel.nut(); + const tmp<volScalarField> tnut = turbulence.nut(); const volScalarField& nut = tnut(); const scalarField& nutw = nut.boundaryField()[patchI]; - const fvPatchVectorField& Uw = rasModel.U().boundaryField()[patchI]; + const fvPatchVectorField& Uw = turbulence.U().boundaryField()[patchI]; const scalarField magGradUw(mag(Uw.snGrad())); @@ -237,7 +236,6 @@ makePatchTypeField // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace incompressible } // End namespace Foam diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H index e988f05aff5bc85cc6de9737f4fd7926a7fb1e56..9ff7b7acb544341bc1a46a8d1ef9d9ce20cb7f31 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H @@ -22,7 +22,7 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Class - Foam::incompressible::RASModels::epsilonWallFunctionFvPatchScalarField + Foam::incompressible::epsilonWallFunctionFvPatchScalarField Group grpIcoWallFunctions @@ -47,7 +47,6 @@ Description \table Property | Description | Required | Default value - G | turbulence generation field name | no | G Cmu | model coefficient | no | 0.09 kappa | Von Karman constant | no | 0.41 E | model coefficient | no | 9.8 @@ -80,8 +79,6 @@ namespace Foam { namespace incompressible { -namespace RASModels -{ /*---------------------------------------------------------------------------*\ Class epsilonWallFunctionFvPatchScalarField Declaration @@ -95,9 +92,6 @@ protected: // Protected data - //- Name of turbulence generation field - word GName_; - //- Cmu coefficient scalar Cmu_; @@ -206,7 +200,6 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace incompressible } // End namespace Foam diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/fWallFunctions/fWallFunction/fWallFunctionFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/fWallFunctions/fWallFunction/fWallFunctionFvPatchScalarField.C index 2fae43e16119d3c6290332a44eba789b9441b2fd..cb905c80e28a839c4266fc79814581d666465b35 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/fWallFunctions/fWallFunction/fWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/fWallFunctions/fWallFunction/fWallFunctionFvPatchScalarField.C @@ -168,8 +168,9 @@ void fWallFunctionFvPatchScalarField::updateCoeffs() const label patchI = patch().index(); - const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties"); - const v2f& v2fModel = refCast<const v2f>(rasModel); + const turbulenceModel& turbulence = + db().lookupObject<turbulenceModel>("turbulenceModel"); + const v2f& v2fModel = refCast<const v2f>(turbulence); const scalarField& y = v2fModel.y()[patchI]; diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kappatWallFunctions/kappatJayatillekeWallFunction/kappatJayatillekeWallFunctionFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kappatWallFunctions/kappatJayatillekeWallFunction/kappatJayatillekeWallFunctionFvPatchScalarField.C index a87f31144164c263e2e0eb6865514080a69b0322..ac3855632aa1208405d6a53925297a0e4d5494b5 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kappatWallFunctions/kappatJayatillekeWallFunction/kappatJayatillekeWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kappatWallFunctions/kappatJayatillekeWallFunction/kappatJayatillekeWallFunctionFvPatchScalarField.C @@ -24,7 +24,7 @@ License \*---------------------------------------------------------------------------*/ #include "kappatJayatillekeWallFunctionFvPatchScalarField.H" -#include "RASModel.H" +#include "incompressible/turbulenceModel/turbulenceModel.H" #include "fvPatchFieldMapper.H" #include "volFields.H" #include "wallFvPatch.H" @@ -36,8 +36,6 @@ namespace Foam { namespace incompressible { -namespace RASModels -{ // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // @@ -272,7 +270,6 @@ makePatchTypeField // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace incompressible } // End namespace Foam diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kappatWallFunctions/kappatJayatillekeWallFunction/kappatJayatillekeWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kappatWallFunctions/kappatJayatillekeWallFunction/kappatJayatillekeWallFunctionFvPatchScalarField.H index c26d9a41ecbfadfe77b83ca340892a814034f7e0..d4e0af5dd8728469b06aa08b5059e12028bc4e72 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kappatWallFunctions/kappatJayatillekeWallFunction/kappatJayatillekeWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kappatWallFunctions/kappatJayatillekeWallFunction/kappatJayatillekeWallFunctionFvPatchScalarField.H @@ -22,8 +22,7 @@ License OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Class - Foam::incompressible::RASModels:: - kappatJayatillekeWallFunctionFvPatchScalarField + Foam::incompressible::kappatJayatillekeWallFunctionFvPatchScalarField Group grpIcoWallFunctions @@ -72,8 +71,6 @@ namespace Foam { namespace incompressible { -namespace RASModels -{ /*---------------------------------------------------------------------------*\ Class kappatJayatillekeWallFunctionFvPatchScalarField Declaration @@ -208,7 +205,6 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace incompressible } // End namespace Foam diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kLowReWallFunction/kLowReWallFunctionFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kLowReWallFunction/kLowReWallFunctionFvPatchScalarField.C index a7da31f471a4c591305febcc2db017d51d25ad7e..a53c5e0697cfd2280d9de3d32039afb650231cfd 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kLowReWallFunction/kLowReWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kLowReWallFunction/kLowReWallFunctionFvPatchScalarField.C @@ -24,7 +24,7 @@ License \*---------------------------------------------------------------------------*/ #include "kLowReWallFunctionFvPatchScalarField.H" -#include "RASModel.H" +#include "incompressible/turbulenceModel/turbulenceModel.H" #include "fvPatchFieldMapper.H" #include "volFields.H" #include "addToRunTimeSelectionTable.H" @@ -36,8 +36,6 @@ namespace Foam { namespace incompressible { -namespace RASModels -{ // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // @@ -174,13 +172,14 @@ void kLowReWallFunctionFvPatchScalarField::updateCoeffs() const label patchI = patch().index(); - const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties"); - const scalarField& y = rasModel.y()[patchI]; + const turbulenceModel& turbulence = + db().lookupObject<turbulenceModel>("turbulenceModel"); + const scalarField& y = turbulence.y()[patchI]; - const tmp<volScalarField> tk = rasModel.k(); + const tmp<volScalarField> tk = turbulence.k(); const volScalarField& k = tk(); - const tmp<volScalarField> tnu = rasModel.nu(); + const tmp<volScalarField> tnu = turbulence.nu(); const scalarField& nuw = tnu().boundaryField()[patchI]; const scalar Cmu25 = pow025(Cmu_); @@ -248,7 +247,6 @@ makePatchTypeField // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace incompressible } // End namespace Foam diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kLowReWallFunction/kLowReWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kLowReWallFunction/kLowReWallFunctionFvPatchScalarField.H index 72c077d33e99a94c08302cdfcacb64093bc3fe89..db99287eaaf6b348d74bd72599bf69ea158dfd23 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kLowReWallFunction/kLowReWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kLowReWallFunction/kLowReWallFunctionFvPatchScalarField.H @@ -22,7 +22,7 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Class - Foam::incompressible::RASModels::kLowReWallFunctionFvPatchScalarField + Foam::incompressible::kLowReWallFunctionFvPatchScalarField Group grpIcoWallFunctions @@ -71,8 +71,6 @@ namespace Foam { namespace incompressible { -namespace RASModels -{ /*---------------------------------------------------------------------------*\ Class kLowReWallFunctionFvPatchScalarField Declaration @@ -199,7 +197,6 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace incompressible } // End namespace Foam diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchField.C index 8861be642ec43c68029593b76649cd2889daf393..9ff2371a62c5528fbd0b0c1f6cabdb0aeedce4f5 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchField.C +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchField.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -34,8 +34,6 @@ namespace Foam { namespace incompressible { -namespace RASModels -{ // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // @@ -146,7 +144,6 @@ void kqRWallFunctionFvPatchField<Type>::write(Ostream& os) const // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace incompressible } // End namespace Foam diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchField.H index c63821fe9a9da5502a534060c93801f5088df372..e9b3731deb16fc93be0c1724d012328fe6734ac3 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchField.H +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchField.H @@ -22,7 +22,7 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Class - Foam::incompressible::RASModels::kqRWallFunctionFvPatchField + Foam::incompressible::kqRWallFunctionFvPatchField Group grpIcoWallFunctions @@ -63,8 +63,6 @@ namespace Foam { namespace incompressible { -namespace RASModels -{ /*---------------------------------------------------------------------------*\ Class kqRWallFunctionFvPatchField Declaration @@ -171,7 +169,6 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace incompressible } // End namespace Foam diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchFields.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchFields.C index 0ecaa87a5dc69baa7c101e50df3f1c75015970f4..9465bdf18c5bf24fce9b0e6afd9362c9882bba35 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchFields.C +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchFields.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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -34,8 +34,6 @@ namespace Foam { namespace incompressible { -namespace RASModels -{ // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // @@ -43,7 +41,6 @@ makePatchFields(kqRWallFunction); // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace incompressible } // End namespace Foam diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchFields.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchFields.H index fe76853910a2203c020dff6c10202fbfe5791aef..b9a2727f34da2c52c2556b79d4d86a854b50e1df 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchFields.H +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/kqRWallFunctions/kqRWallFunction/kqRWallFunctionFvPatchFields.H @@ -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-2012 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -35,8 +35,6 @@ namespace Foam { namespace incompressible { -namespace RASModels -{ // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -44,7 +42,6 @@ makePatchTypeFieldTypedefs(kqRWallFunction); // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace incompressible } // End namespace Foam diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutLowReWallFunction/nutLowReWallFunctionFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutLowReWallFunction/nutLowReWallFunctionFvPatchScalarField.C index c23e832c5ce11880465dca3ffde97123a4eac754..a0e340bf4dee21b29bb69d8d5cb274e272c2942e 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutLowReWallFunction/nutLowReWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutLowReWallFunction/nutLowReWallFunctionFvPatchScalarField.C @@ -24,7 +24,7 @@ License \*---------------------------------------------------------------------------*/ #include "nutLowReWallFunctionFvPatchScalarField.H" -#include "RASModel.H" +#include "incompressible/turbulenceModel/turbulenceModel.H" #include "fvPatchFieldMapper.H" #include "volFields.H" #include "addToRunTimeSelectionTable.H" @@ -35,8 +35,6 @@ namespace Foam { namespace incompressible { -namespace RASModels -{ // * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // @@ -127,7 +125,6 @@ makePatchTypeField // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace incompressible } // End namespace Foam diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutLowReWallFunction/nutLowReWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutLowReWallFunction/nutLowReWallFunctionFvPatchScalarField.H index 008fe9c96c6559b978b189787080ccbeb9c346b7..f79533c20420fb94bbd3d4bae786e8a5d7883ee5 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutLowReWallFunction/nutLowReWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutLowReWallFunction/nutLowReWallFunctionFvPatchScalarField.H @@ -22,7 +22,7 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Class - Foam::incompressible::RASModels::nutLowReWallFunctionFvPatchScalarField + Foam::incompressible::nutLowReWallFunctionFvPatchScalarField Group grpIcoWallFunctions @@ -61,8 +61,6 @@ namespace Foam { namespace incompressible { -namespace RASModels -{ /*---------------------------------------------------------------------------*\ Class nutLowReWallFunctionFvPatchScalarField Declaration @@ -158,7 +156,6 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace incompressible } // End namespace Foam diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutURoughWallFunction/nutURoughWallFunctionFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutURoughWallFunction/nutURoughWallFunctionFvPatchScalarField.C index 4be408474d68b4bfda648db04d94894c11f0a736..9ec799e35323b8cfa37269d66b34287c85918d7a 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutURoughWallFunction/nutURoughWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutURoughWallFunction/nutURoughWallFunctionFvPatchScalarField.C @@ -24,7 +24,7 @@ License \*---------------------------------------------------------------------------*/ #include "nutURoughWallFunctionFvPatchScalarField.H" -#include "RASModel.H" +#include "incompressible/turbulenceModel/turbulenceModel.H" #include "fvPatchFieldMapper.H" #include "volFields.H" #include "addToRunTimeSelectionTable.H" @@ -35,8 +35,6 @@ namespace Foam { namespace incompressible { -namespace RASModels -{ // * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // @@ -302,7 +300,6 @@ makePatchTypeField // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace incompressible } // End namespace Foam diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutURoughWallFunction/nutURoughWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutURoughWallFunction/nutURoughWallFunctionFvPatchScalarField.H index 881752d9f54e21fb0565311a0756957634d5cb68..17adf6f909fa2d0f334c8e52b3f675cba0b0f9c9 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutURoughWallFunction/nutURoughWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutURoughWallFunction/nutURoughWallFunctionFvPatchScalarField.H @@ -22,7 +22,7 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Class - Foam::incompressible::RASModels::nutURoughWallFunctionFvPatchScalarField + Foam::incompressible::nutURoughWallFunctionFvPatchScalarField Group grpIcoWallFunctions @@ -70,8 +70,6 @@ namespace Foam { namespace incompressible { -namespace RASModels -{ /*---------------------------------------------------------------------------*\ Class nutURoughWallFunctionFvPatchScalarField Declaration @@ -233,7 +231,6 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace incompressible } // End namespace Foam diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUSpaldingWallFunction/nutUSpaldingWallFunctionFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUSpaldingWallFunction/nutUSpaldingWallFunctionFvPatchScalarField.C index dd33fec1f4854c3ca7028c619deec28bd3338c23..7dca54b3e5964ce3e3d07abbedc1434622dfb295 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUSpaldingWallFunction/nutUSpaldingWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUSpaldingWallFunction/nutUSpaldingWallFunctionFvPatchScalarField.C @@ -24,7 +24,7 @@ License \*---------------------------------------------------------------------------*/ #include "nutUSpaldingWallFunctionFvPatchScalarField.H" -#include "RASModel.H" +#include "incompressible/turbulenceModel/turbulenceModel.H" #include "fvPatchFieldMapper.H" #include "volFields.H" #include "addToRunTimeSelectionTable.H" @@ -35,8 +35,6 @@ namespace Foam { namespace incompressible { -namespace RASModels -{ // * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // @@ -216,7 +214,6 @@ makePatchTypeField // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace incompressible } // End namespace Foam diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUSpaldingWallFunction/nutUSpaldingWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUSpaldingWallFunction/nutUSpaldingWallFunctionFvPatchScalarField.H index b9f75ed1b17395581b2b981b9532bf4ba7bd7257..210de458373175f451c07339024440bbfa499d3c 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUSpaldingWallFunction/nutUSpaldingWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUSpaldingWallFunction/nutUSpaldingWallFunctionFvPatchScalarField.H @@ -22,7 +22,7 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Class - Foam::incompressible::RASModels::nutUSpaldingWallFunctionFvPatchScalarField + Foam::incompressible::nutUSpaldingWallFunctionFvPatchScalarField Group grpIcoWallFunctions @@ -74,8 +74,6 @@ namespace Foam { namespace incompressible { -namespace RASModels -{ /*---------------------------------------------------------------------------*\ Class nutUSpaldingWallFunctionFvPatchScalarField Declaration @@ -182,7 +180,6 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace incompressible } // End namespace Foam diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUTabulatedWallFunction/nutUTabulatedWallFunctionFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUTabulatedWallFunction/nutUTabulatedWallFunctionFvPatchScalarField.C index 1cbc8971f745cf851a4960f8a50c5a66562bc472..63bab814711cfb16d81a159f16cb629fe6b19cc6 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUTabulatedWallFunction/nutUTabulatedWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUTabulatedWallFunction/nutUTabulatedWallFunctionFvPatchScalarField.C @@ -24,7 +24,7 @@ License \*---------------------------------------------------------------------------*/ #include "nutUTabulatedWallFunctionFvPatchScalarField.H" -#include "RASModel.H" +#include "incompressible/turbulenceModel/turbulenceModel.H" #include "fvPatchFieldMapper.H" #include "volFields.H" #include "addToRunTimeSelectionTable.H" @@ -35,8 +35,6 @@ namespace Foam { namespace incompressible { -namespace RASModels -{ // * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // @@ -214,7 +212,6 @@ makePatchTypeField // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace incompressible } // End namespace Foam diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUTabulatedWallFunction/nutUTabulatedWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUTabulatedWallFunction/nutUTabulatedWallFunctionFvPatchScalarField.H index 95bde3ba032d724ebb8c5628af4a7155ff6632bc..dbc1a75ab738d91220b812dfeaccf514b116efbc 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUTabulatedWallFunction/nutUTabulatedWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUTabulatedWallFunction/nutUTabulatedWallFunctionFvPatchScalarField.H @@ -22,7 +22,7 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Class - Foam::incompressible::RASModels::nutUTabulatedWallFunctionFvPatchScalarField + Foam::incompressible::nutUTabulatedWallFunctionFvPatchScalarField Group grpIcoWallFunctions @@ -73,8 +73,6 @@ namespace Foam { namespace incompressible { -namespace RASModels -{ /*---------------------------------------------------------------------------*\ Class nutUTabulatedWallFunctionFvPatchScalarField Declaration @@ -190,7 +188,6 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace incompressible } // End namespace Foam diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUWallFunction/nutUWallFunctionFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUWallFunction/nutUWallFunctionFvPatchScalarField.C index 5ba0a0ef34626ba631ace1f20df3815f6e41515b..3b34b46df128ec8a0736e236c791a4adca532a58 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUWallFunction/nutUWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUWallFunction/nutUWallFunctionFvPatchScalarField.C @@ -24,7 +24,7 @@ License \*---------------------------------------------------------------------------*/ #include "nutUWallFunctionFvPatchScalarField.H" -#include "RASModel.H" +#include "incompressible/turbulenceModel/turbulenceModel.H" #include "fvPatchFieldMapper.H" #include "volFields.H" #include "addToRunTimeSelectionTable.H" @@ -35,8 +35,6 @@ namespace Foam { namespace incompressible { -namespace RASModels -{ // * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // @@ -198,7 +196,6 @@ makePatchTypeField // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace incompressible } // End namespace Foam diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUWallFunction/nutUWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUWallFunction/nutUWallFunctionFvPatchScalarField.H index 6f32734149b36460f2f1e8069db4366c41ae6410..0a34ad6facabbf086557f2613ad576559f9199a8 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUWallFunction/nutUWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutUWallFunction/nutUWallFunctionFvPatchScalarField.H @@ -22,7 +22,7 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Class - Foam::incompressible::RASModels::nutUWallFunctionFvPatchScalarField + Foam::incompressible::nutUWallFunctionFvPatchScalarField Group grpIcoWallFunctions @@ -60,8 +60,6 @@ namespace Foam { namespace incompressible { -namespace RASModels -{ /*---------------------------------------------------------------------------*\ Class nutUWallFunctionFvPatchScalarField Declaration @@ -168,7 +166,6 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace incompressible } // End namespace Foam diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.C index c23aea5551d9c13e99025834358d851a1ba084de..3b8749974d706e54d98b177e838ce84f350d6b7c 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.C @@ -24,7 +24,6 @@ License \*---------------------------------------------------------------------------*/ #include "nutWallFunctionFvPatchScalarField.H" -#include "RASModel.H" #include "fvPatchFieldMapper.H" #include "volFields.H" #include "wallFvPatch.H" @@ -36,8 +35,6 @@ namespace Foam { namespace incompressible { -namespace RASModels -{ // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -194,7 +191,6 @@ void nutWallFunctionFvPatchScalarField::write(Ostream& os) const // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace incompressible } // End namespace Foam diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.H index 01355ec454d7260ba0000f81d887e3c7e73e97df..de68000bd9f6e672442787c9262a29ff0090b316 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.H @@ -22,7 +22,7 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Class - Foam::incompressible::RASModels::nutWallFunctionFvPatchScalarField + Foam::incompressible::nutWallFunctionFvPatchScalarField Group grpIcoWallFunctions @@ -61,8 +61,6 @@ namespace Foam { namespace incompressible { -namespace RASModels -{ /*---------------------------------------------------------------------------*\ Class nutWallFunctionFvPatchScalarField Declaration @@ -173,7 +171,6 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace incompressible } // End namespace Foam diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkAtmRoughWallFunction/nutkAtmRoughWallFunctionFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkAtmRoughWallFunction/nutkAtmRoughWallFunctionFvPatchScalarField.C index b00e9f0bf984e881f8237a3f75197531ae9e4cfa..2406f30d0ad656f8534d8f1f807e2fa6ec1ba62b 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkAtmRoughWallFunction/nutkAtmRoughWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkAtmRoughWallFunction/nutkAtmRoughWallFunctionFvPatchScalarField.C @@ -24,7 +24,7 @@ License \*---------------------------------------------------------------------------*/ #include "nutkAtmRoughWallFunctionFvPatchScalarField.H" -#include "RASModel.H" +#include "incompressible/turbulenceModel/turbulenceModel.H" #include "fvPatchFieldMapper.H" #include "volFields.H" #include "addToRunTimeSelectionTable.H" @@ -35,8 +35,6 @@ namespace Foam { namespace incompressible { -namespace RASModels -{ // * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // @@ -44,11 +42,12 @@ tmp<scalarField> nutkAtmRoughWallFunctionFvPatchScalarField::calcNut() const { const label patchI = patch().index(); - const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties"); - const scalarField& y = rasModel.y()[patchI]; - const tmp<volScalarField> tk = rasModel.k(); + const turbulenceModel& turbulence = + db().lookupObject<turbulenceModel>("turbulenceModel"); + const scalarField& y = turbulence.y()[patchI]; + const tmp<volScalarField> tk = turbulence.k(); const volScalarField& k = tk(); - const tmp<volScalarField> tnu = rasModel.nu(); + const tmp<volScalarField> tnu = turbulence.nu(); const volScalarField& nu = tnu(); const scalarField& nuw = nu.boundaryField()[patchI]; @@ -192,7 +191,6 @@ makePatchTypeField // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace incompressible } // End namespace Foam diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkAtmRoughWallFunction/nutkAtmRoughWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkAtmRoughWallFunction/nutkAtmRoughWallFunctionFvPatchScalarField.H index 3e0f67a4fcbfe3803eb4b0f6f4189a39006742a3..3767de1fc0dc1ad73f634fe2c4e49fe0f9afc80f 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkAtmRoughWallFunction/nutkAtmRoughWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkAtmRoughWallFunction/nutkAtmRoughWallFunctionFvPatchScalarField.H @@ -22,8 +22,7 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Class - Foam::incompressible::RASModels:: - nutkAtmRoughWallFunctionFvPatchScalarField + Foam::incompressible::nutkAtmRoughWallFunctionFvPatchScalarField Group grpIcoWallFunctions @@ -82,8 +81,6 @@ namespace Foam { namespace incompressible { -namespace RASModels -{ /*---------------------------------------------------------------------------*\ Class nutkAtmRoughWallFunctionFvPatchScalarField Declaration @@ -210,7 +207,6 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace incompressible } // End namespace Foam diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkRoughWallFunction/nutkRoughWallFunctionFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkRoughWallFunction/nutkRoughWallFunctionFvPatchScalarField.C index df8480da007b798e1ff9d7b431e4259a84e439fa..61d806882685d2b1c4831ae6bff8e8dedea7cdcc 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkRoughWallFunction/nutkRoughWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkRoughWallFunction/nutkRoughWallFunctionFvPatchScalarField.C @@ -24,7 +24,7 @@ License \*---------------------------------------------------------------------------*/ #include "nutkRoughWallFunctionFvPatchScalarField.H" -#include "RASModel.H" +#include "incompressible/turbulenceModel/turbulenceModel.H" #include "fvPatchFieldMapper.H" #include "volFields.H" #include "addToRunTimeSelectionTable.H" @@ -35,8 +35,6 @@ namespace Foam { namespace incompressible { -namespace RASModels -{ // * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // @@ -237,7 +235,6 @@ makePatchTypeField // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace incompressible } // End namespace Foam diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkRoughWallFunction/nutkRoughWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkRoughWallFunction/nutkRoughWallFunctionFvPatchScalarField.H index 50d24a3ebd804f849b7ad7b550d127693c18ef4d..4a8d812ad5aedf8d2791392aa1dc67b41dc7dca1 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkRoughWallFunction/nutkRoughWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkRoughWallFunction/nutkRoughWallFunctionFvPatchScalarField.H @@ -22,7 +22,7 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Class - Foam::incompressible::RASModels::nutkRoughWallFunctionFvPatchScalarField + Foam::incompressible::nutkRoughWallFunctionFvPatchScalarField Group grpIcoWallFunctions @@ -74,8 +74,6 @@ namespace Foam { namespace incompressible { -namespace RASModels -{ /*---------------------------------------------------------------------------*\ Class nutkRoughWallFunctionFvPatchScalarField Declaration @@ -213,7 +211,6 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace incompressible } // End namespace Foam diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkWallFunction/nutkWallFunctionFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkWallFunction/nutkWallFunctionFvPatchScalarField.C index afbd1548d15fb7e38b4c494a56b92feb12dff40c..bfc542434fa882b2a288e036cd9d2ccebced29d3 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkWallFunction/nutkWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkWallFunction/nutkWallFunctionFvPatchScalarField.C @@ -24,7 +24,7 @@ License \*---------------------------------------------------------------------------*/ #include "nutkWallFunctionFvPatchScalarField.H" -#include "RASModel.H" +#include "incompressible/turbulenceModel/turbulenceModel.H" #include "fvPatchFieldMapper.H" #include "volFields.H" #include "wallFvPatch.H" @@ -36,8 +36,6 @@ namespace Foam { namespace incompressible { -namespace RASModels -{ // * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // @@ -160,7 +158,6 @@ makePatchTypeField // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace incompressible } // End namespace Foam diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkWallFunction/nutkWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkWallFunction/nutkWallFunctionFvPatchScalarField.H index 49a2257e093eb2df45e83be774232dbe9f23ded3..ef0a3066db762efa32589694d81909d77fa324e0 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkWallFunction/nutkWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutkWallFunction/nutkWallFunctionFvPatchScalarField.H @@ -22,7 +22,7 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Class - Foam::incompressible::RASModels::nutkWallFunctionFvPatchScalarField + Foam::incompressible::nutkWallFunctionFvPatchScalarField Group grpIcoWallFunctions @@ -61,8 +61,6 @@ namespace Foam { namespace incompressible { -namespace RASModels -{ /*---------------------------------------------------------------------------*\ Class nutkWallFunctionFvPatchScalarField Declaration @@ -158,7 +156,6 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace incompressible } // End namespace Foam diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.C index 0ad2595c7c6217d7738f14e8855c72f139a2ca6e..83444c5d407156cee0655377d13e75d9a5cd80cf 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.C @@ -24,7 +24,7 @@ License \*---------------------------------------------------------------------------*/ #include "omegaWallFunctionFvPatchScalarField.H" -#include "RASModel.H" +#include "incompressible/turbulenceModel/turbulenceModel.H" #include "fvPatchFieldMapper.H" #include "volFields.H" #include "addToRunTimeSelectionTable.H" @@ -38,8 +38,6 @@ namespace Foam { namespace incompressible { -namespace RASModels -{ // * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // @@ -59,7 +57,6 @@ void omegaWallFunctionFvPatchScalarField::checkType() void omegaWallFunctionFvPatchScalarField::writeLocalEntries(Ostream& os) const { - writeEntryIfDifferent<word>(os, "G", "RASModel.G", GName_); os.writeKeyword("Cmu") << Cmu_ << token::END_STATEMENT << nl; os.writeKeyword("kappa") << kappa_ << token::END_STATEMENT << nl; os.writeKeyword("E") << E_ << token::END_STATEMENT << nl; @@ -76,7 +73,6 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField ) : fixedInternalValueFvPatchField<scalar>(p, iF), - GName_("RASModel.G"), Cmu_(0.09), kappa_(0.41), E_(9.8), @@ -96,7 +92,6 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField ) : fixedInternalValueFvPatchField<scalar>(ptf, p, iF, mapper), - GName_(ptf.GName_), Cmu_(ptf.Cmu_), kappa_(ptf.kappa_), E_(ptf.E_), @@ -115,7 +110,6 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField ) : fixedInternalValueFvPatchField<scalar>(p, iF, dict), - GName_(dict.lookupOrDefault<word>("G", "RASModel.G")), Cmu_(dict.lookupOrDefault<scalar>("Cmu", 0.09)), kappa_(dict.lookupOrDefault<scalar>("kappa", 0.41)), E_(dict.lookupOrDefault<scalar>("E", 9.8)), @@ -132,7 +126,6 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField ) : fixedInternalValueFvPatchField<scalar>(owfpsf), - GName_(owfpsf.GName_), Cmu_(owfpsf.Cmu_), kappa_(owfpsf.kappa_), E_(owfpsf.E_), @@ -150,7 +143,6 @@ omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField ) : fixedInternalValueFvPatchField<scalar>(owfpsf, iF), - GName_(owfpsf.GName_), Cmu_(owfpsf.Cmu_), kappa_(owfpsf.kappa_), E_(owfpsf.E_), @@ -172,13 +164,20 @@ void omegaWallFunctionFvPatchScalarField::updateCoeffs() const label patchI = patch().index(); - const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties"); - const scalarField& y = rasModel.y()[patchI]; + const turbulenceModel& turbulence = + db().lookupObject<turbulenceModel>("turbulenceModel"); + const scalarField& y = turbulence.y()[patchI]; const scalar Cmu25 = pow025(Cmu_); volScalarField& G = - const_cast<volScalarField&>(db().lookupObject<volScalarField>(GName_)); + const_cast<volScalarField&> + ( + db().lookupObject<volScalarField> + ( + turbulence.type() + ".G" + ) + ); DimensionedField<scalar, volMesh>& omega = const_cast<DimensionedField<scalar, volMesh>&> @@ -186,17 +185,17 @@ void omegaWallFunctionFvPatchScalarField::updateCoeffs() dimensionedInternalField() ); - const tmp<volScalarField> tk = rasModel.k(); + const tmp<volScalarField> tk = turbulence.k(); const volScalarField& k = tk(); - const tmp<volScalarField> tnu = rasModel.nu(); + const tmp<volScalarField> tnu = turbulence.nu(); const scalarField& nuw = tnu().boundaryField()[patchI]; - const tmp<volScalarField> tnut = rasModel.nut(); + const tmp<volScalarField> tnut = turbulence.nut(); const volScalarField& nut = tnut(); const scalarField& nutw = nut.boundaryField()[patchI]; - const fvPatchVectorField& Uw = rasModel.U().boundaryField()[patchI]; + const fvPatchVectorField& Uw = turbulence.U().boundaryField()[patchI]; const scalarField magGradUw(mag(Uw.snGrad())); @@ -242,7 +241,6 @@ makePatchTypeField // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace incompressible } // End namespace Foam diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H index 9c03a85f259a0ddfded87dcba8313f5cf29798ab..9ee99bd6c6927e76a57325b96fbeb8b1be76d1a1 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H @@ -22,7 +22,7 @@ License along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. Class - Foam::incompressible::RASModels::omegaWallFunctionFvPatchScalarField + Foam::incompressible::omegaWallFunctionFvPatchScalarField Group grpIcoWallFunctions @@ -54,7 +54,6 @@ Description \table Property | Description | Required | Default value - G | turbulence generation field name | no | G Cmu | model coefficient | no | 0.09 kappa | Von Karman constant | no | 0.41 E | model coefficient | no | 9.8 @@ -85,8 +84,6 @@ namespace Foam { namespace incompressible { -namespace RASModels -{ /*---------------------------------------------------------------------------*\ Class omegaWallFunctionFvPatchScalarField Declaration @@ -100,9 +97,6 @@ protected: // Protected data - //- Name of turbulence generation field - word GName_; - //- Cmu coefficient scalar Cmu_; @@ -214,7 +208,6 @@ public: // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace RASModels } // End namespace incompressible } // End namespace Foam diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/v2WallFunctions/v2WallFunction/v2WallFunctionFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/v2WallFunctions/v2WallFunction/v2WallFunctionFvPatchScalarField.C index d896d4d08b1c48a3ebd34b9d65d7212979854110..b2a3e38dedfa7049f2d0b0e5daf4afa37ea5e4ef 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/v2WallFunctions/v2WallFunction/v2WallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/v2WallFunctions/v2WallFunction/v2WallFunctionFvPatchScalarField.C @@ -167,13 +167,14 @@ void v2WallFunctionFvPatchScalarField::updateCoeffs() const label patchI = patch().index(); - const RASModel& rasModel = db().lookupObject<RASModel>("RASProperties"); - const scalarField& y = rasModel.y()[patchI]; + const turbulenceModel& turbulence = + db().lookupObject<turbulenceModel>("turbulenceModel"); + const scalarField& y = turbulence.y()[patchI]; - const tmp<volScalarField> tk = rasModel.k(); + const tmp<volScalarField> tk = turbulence.k(); const volScalarField& k = tk(); - const tmp<volScalarField> tnu = rasModel.nu(); + const tmp<volScalarField> tnu = turbulence.nu(); const scalarField& nuw = tnu().boundaryField()[patchI]; const scalar Cmu25 = pow025(Cmu_); diff --git a/src/turbulenceModels/incompressible/RAS/kEpsilon/kEpsilon.C b/src/turbulenceModels/incompressible/RAS/kEpsilon/kEpsilon.C index c12783bcdbb2c69e329bf73c3f9443885430b7cd..48ccd699c74bd230a63f70af181411996ad1ec50 100644 --- a/src/turbulenceModels/incompressible/RAS/kEpsilon/kEpsilon.C +++ b/src/turbulenceModels/incompressible/RAS/kEpsilon/kEpsilon.C @@ -235,7 +235,7 @@ void kEpsilon::correct() return; } - volScalarField G("RASModel.G", nut_*2*magSqr(symm(fvc::grad(U_)))); + volScalarField G(type() + ".G", nut_*2*magSqr(symm(fvc::grad(U_)))); // Update epsilon and G at the wall epsilon_.boundaryField().updateCoeffs(); diff --git a/src/turbulenceModels/incompressible/RAS/kOmega/kOmega.C b/src/turbulenceModels/incompressible/RAS/kOmega/kOmega.C index f2faf19966b4e11f493d28849078bedecd3e7615..497fbed7c6914eb53572a52af6c02ed8b09483b3 100644 --- a/src/turbulenceModels/incompressible/RAS/kOmega/kOmega.C +++ b/src/turbulenceModels/incompressible/RAS/kOmega/kOmega.C @@ -244,7 +244,7 @@ void kOmega::correct() return; } - volScalarField G("RASModel.G", nut_*2*magSqr(symm(fvc::grad(U_)))); + volScalarField G(type() + ".G", nut_*2*magSqr(symm(fvc::grad(U_)))); // Update omega and G at the wall omega_.boundaryField().updateCoeffs(); diff --git a/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.C b/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.C index 02899ec4c9b197b0b30169ddac07251c288e492b..cff0d48146077e69f3a7af4a18a303b671d33588 100644 --- a/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.C +++ b/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.C @@ -69,6 +69,7 @@ tmp<volScalarField> kOmegaSST::F1(const volScalarField& CDkOmega) const return tanh(pow4(arg1)); } + tmp<volScalarField> kOmegaSST::F2() const { tmp<volScalarField> arg2 = min @@ -85,6 +86,18 @@ tmp<volScalarField> kOmegaSST::F2() const } +tmp<volScalarField> kOmegaSST::F3() const +{ + tmp<volScalarField> arg3 = min + ( + 150*nu()/(omega_*sqr(y_)), + scalar(10) + ); + + return 1 - tanh(pow4(arg3)); +} + + // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // kOmegaSST::kOmegaSST @@ -188,6 +201,15 @@ kOmegaSST::kOmegaSST 0.31 ) ), + b1_ + ( + dimensioned<scalar>::lookupOrAddToDict + ( + "b1", + coeffDict_, + 1.0 + ) + ), c1_ ( dimensioned<scalar>::lookupOrAddToDict @@ -246,7 +268,7 @@ kOmegaSST::kOmegaSST / max ( a1_*omega_, - F2()*sqrt(2.0)*mag(symm(fvc::grad(U_))) + b1_*F2()*F3()*sqrt(2.0)*mag(symm(fvc::grad(U_))) ) ); nut_.correctBoundaryConditions(); @@ -338,6 +360,7 @@ bool kOmegaSST::read() beta2_.readIfPresent(coeffDict()); betaStar_.readIfPresent(coeffDict()); a1_.readIfPresent(coeffDict()); + b1_.readIfPresent(coeffDict()); c1_.readIfPresent(coeffDict()); return true; @@ -364,7 +387,7 @@ void kOmegaSST::correct() } const volScalarField S2(2*magSqr(symm(fvc::grad(U_)))); - volScalarField G("RASModel.G", nut_*S2); + volScalarField G(type() + ".G", nut_*S2); // Update omega and G at the wall omega_.boundaryField().updateCoeffs(); @@ -416,7 +439,7 @@ void kOmegaSST::correct() // Re-calculate viscosity - nut_ = a1_*k_/max(a1_*omega_, F2()*sqrt(S2)); + nut_ = a1_*k_/max(a1_*omega_, b1_*F2()*F3()*sqrt(S2)); nut_.correctBoundaryConditions(); } diff --git a/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.C.new b/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.C.new deleted file mode 100644 index b28e14bce9e3d070a6d68928a1051170c8bbe3e6..0000000000000000000000000000000000000000 --- a/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.C.new +++ /dev/null @@ -1,419 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software: you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - OpenFOAM is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - for more details. - - You should have received a copy of the GNU General Public License - along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. - -\*---------------------------------------------------------------------------*/ - -#include "kOmegaSST.H" -#include "addToRunTimeSelectionTable.H" - -#include "backwardsCompatibilityWallFunctions.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(kOmegaSST, 0); -addToRunTimeSelectionTable(RASModel, kOmegaSST, dictionary); - -// * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * * // - -tmp<volScalarField> kOmegaSST::F1(const volScalarField& CDkOmega) const -{ - volScalarField CDkOmegaPlus = max - ( - CDkOmega, - dimensionedScalar("1.0e-10", dimless/sqr(dimTime), 1.0e-10) - ); - - volScalarField arg1 = min - ( - min - ( - max - ( - (scalar(1)/betaStar_)*sqrt(k_)/(omega_*y_), - scalar(500)*nu()/(sqr(y_)*omega_) - ), - (4*alphaOmega2_)*k_/(CDkOmegaPlus*sqr(y_)) - ), - scalar(10) - ); - - return tanh(pow4(arg1)); -} - -tmp<volScalarField> kOmegaSST::F2() const -{ - volScalarField arg2 = min - ( - max - ( - (scalar(2)/betaStar_)*sqrt(k_)/(omega_*y_), - scalar(500)*nu()/(sqr(y_)*omega_) - ), - scalar(100) - ); - - return tanh(sqr(arg2)); -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -kOmegaSST::kOmegaSST -( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& lamTransportModel -) -: - RASModel(typeName, U, phi, lamTransportModel), - - alphaK1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphaK1", - coeffDict_, - 0.85034 - ) - ), - alphaK2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphaK2", - coeffDict_, - 1.0 - ) - ), - alphaOmega1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphaOmega1", - coeffDict_, - 0.5 - ) - ), - alphaOmega2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphaOmega2", - coeffDict_, - 0.85616 - ) - ), - gamma1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "gamma1", - coeffDict_, - 0.5532 - ) - ), - gamma2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "gamma2", - coeffDict_, - 0.4403 - ) - ), - beta1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "beta1", - coeffDict_, - 0.075 - ) - ), - beta2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "beta2", - coeffDict_, - 0.0828 - ) - ), - betaStar_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "betaStar", - coeffDict_, - 0.09 - ) - ), - a1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "a1", - coeffDict_, - 0.31 - ) - ), - c1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "c1", - coeffDict_, - 10.0 - ) - ), - - y_(mesh_), - - k_ - ( - IOobject - ( - "k", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateK("k", mesh_) - ), - omega_ - ( - IOobject - ( - "omega", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateOmega("omega", mesh_) - ), - nut_ - ( - IOobject - ( - "nut", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateNut("nut", mesh_) - ) -{ - nut_ = - a1_*k_ - /max - ( - a1_*(omega_ + omegaSmall_), - F2()*mag(symm(fvc::grad(U_))) - ); - nut_.correctBoundaryConditions(); - - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -tmp<volSymmTensorField> kOmegaSST::R() const -{ - return tmp<volSymmTensorField> - ( - new volSymmTensorField - ( - IOobject - ( - "R", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - ((2.0/3.0)*I)*k_ - nut_*twoSymm(fvc::grad(U_)), - k_.boundaryField().types() - ) - ); -} - - -tmp<volSymmTensorField> kOmegaSST::devReff() const -{ - return tmp<volSymmTensorField> - ( - new volSymmTensorField - ( - IOobject - ( - "devRhoReff", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - -nuEff()*dev(twoSymm(fvc::grad(U_))) - ) - ); -} - - -tmp<fvVectorMatrix> kOmegaSST::divDevReff(volVectorField& U) const -{ - return - ( - - fvm::laplacian(nuEff(), U) - - fvc::div(nuEff()*dev(fvc::grad(U)().T())) - ); -} - - -bool kOmegaSST::read() -{ - if (RASModel::read()) - { - alphaK1_.readIfPresent(coeffDict()); - alphaK2_.readIfPresent(coeffDict()); - alphaOmega1_.readIfPresent(coeffDict()); - alphaOmega2_.readIfPresent(coeffDict()); - gamma1_.readIfPresent(coeffDict()); - gamma2_.readIfPresent(coeffDict()); - beta1_.readIfPresent(coeffDict()); - beta2_.readIfPresent(coeffDict()); - betaStar_.readIfPresent(coeffDict()); - a1_.readIfPresent(coeffDict()); - c1_.readIfPresent(coeffDict()); - - return true; - } - else - { - return false; - } -} - - -void kOmegaSST::correct() -{ - RASModel::correct(); - - if (!turbulence_) - { - return; - } - - if (mesh_.changing()) - { - y_.correct(); - } - - volScalarField S2 = magSqr(symm(fvc::grad(U_))); - volScalarField G("RASModel.G", nut_*2*S2); - - // Update omega and G at the wall - omega_.boundaryField().updateCoeffs(); - - volScalarField F1 = this->F1 - ( - (2*alphaOmega2_)*(fvc::grad(k_) & fvc::grad(omega_))/omega_ - ); - - // Epsilon diffusion correction - surfaceScalarField CDkPhiOmega - ( - "CDkPhiOmega", - (2*alphaOmega2_) - *fvc::interpolate(F1 - scalar(1)) - /fvc::interpolate(omega_) - *fvc::snGrad(k_)*mesh_.magSf() - ); - - forAll (CDkPhiOmega.boundaryField(), patchi) - { - if (!CDkPhiOmega.boundaryField()[patchi].coupled()) - { - CDkPhiOmega.boundaryField()[patchi] = 0.0; - } - } - - // Turbulent frequency equation - tmp<fvScalarMatrix> omegaEqn - ( - fvm::ddt(omega_) - + fvm::div(phi_, omega_) - - fvm::laplacian(DomegaEff(F1), omega_) - + fvm::div(CDkPhiOmega, omega_) - == - gamma(F1)*2*S2 - - fvm::Sp(beta(F1)*omega_, omega_) - ); - - omegaEqn().relax(); - - omegaEqn().boundaryManipulate(omega_.boundaryField()); - - solve(omegaEqn); - bound(omega_, omega0_); - - // Turbulent kinetic energy equation - tmp<fvScalarMatrix> kEqn - ( - fvm::ddt(k_) - + fvm::div(phi_, k_) - - fvm::laplacian(DkEff(F1), k_) - == - min(G, c1_*betaStar_*k_*omega_) - - fvm::Sp(betaStar_*omega_, k_) - ); - - kEqn().relax(); - solve(kEqn); - bound(k_, k0_); - - - // Re-calculate viscosity - nut_ = a1_*k_/max(a1_*omega_, F2()*sqrt(S2)); - nut_.correctBoundaryConditions(); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.H b/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.H index 7b2580094e1cb76e511066f3cb7dbd8e36aa6e25..88feb733bc1814cd9479cbb38c2fe9dd7432495d 100644 --- a/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.H +++ b/src/turbulenceModels/incompressible/RAS/kOmegaSST/kOmegaSST.H @@ -24,19 +24,25 @@ License Class Foam::incompressible::RASModels::kOmegaSST -Group - grpIcoRASTurbulence - Description Implementation of the k-omega-SST turbulence model for incompressible flows. Turbulence model described in: \verbatim - Menter, F., Esch, T. - "Elements of Industrial Heat Transfer Prediction" + Menter, F., Esch, T., + "Elements of Industrial Heat Transfer Prediction", 16th Brazilian Congress of Mechanical Engineering (COBEM), - Nov. 2001 + Nov. 2001. + \endverbatim + + with the addition of the F3 term for rough walls from + \verbatim + Hellsten, A. + "Some Improvements in Menter’s k-omega-SST turbulence model" + 29th AIAA Fluid Dynamics Conference, + AIAA-98-2554, + June 1998. \endverbatim Note that this implementation is written in terms of alpha diffusion @@ -69,6 +75,7 @@ Description gamma1 0.5532; gamma2 0.4403; a1 0.31; + b1 1.0; c1 10.0; } \endverbatim @@ -122,6 +129,7 @@ protected: dimensionedScalar betaStar_; dimensionedScalar a1_; + dimensionedScalar b1_; dimensionedScalar c1_; //- Wall distance field @@ -139,6 +147,7 @@ protected: tmp<volScalarField> F1(const volScalarField& CDkOmega) const; tmp<volScalarField> F2() const; + tmp<volScalarField> F3() const; tmp<volScalarField> blend ( diff --git a/src/turbulenceModels/incompressible/RAS/qZeta/qZeta.C b/src/turbulenceModels/incompressible/RAS/qZeta/qZeta.C index 03a3b8a5a6eaa9981d91986000fc33e9985bc716..8803807bbee7c4d89f5c5ace959c0b0aaa7cf882 100644 --- a/src/turbulenceModels/incompressible/RAS/qZeta/qZeta.C +++ b/src/turbulenceModels/incompressible/RAS/qZeta/qZeta.C @@ -311,7 +311,7 @@ void qZeta::correct() tmp<volScalarField> S2 = 2*magSqr(symm(fvc::grad(U_))); - volScalarField G("RASModel.G", nut_/(2.0*q_)*S2); + volScalarField G(type() + ".G", nut_/(2.0*q_)*S2); const volScalarField E(nu()*nut_/q_*fvc::magSqrGradGrad(U_)); diff --git a/src/turbulenceModels/incompressible/RAS/realizableKE/realizableKE.C b/src/turbulenceModels/incompressible/RAS/realizableKE/realizableKE.C index 3161d16371a95bf46db40c7dc4808acca7284a7d..d106180142072934341fe6040083f7e33a4fb444 100644 --- a/src/turbulenceModels/incompressible/RAS/realizableKE/realizableKE.C +++ b/src/turbulenceModels/incompressible/RAS/realizableKE/realizableKE.C @@ -297,7 +297,7 @@ void realizableKE::correct() const volScalarField eta(magS*k_/epsilon_); tmp<volScalarField> C1 = max(eta/(scalar(5) + eta), scalar(0.43)); - volScalarField G("RASModel.G", nut_*S2); + volScalarField G(type() + ".G", nut_*S2); // Update epsilon and G at the wall epsilon_.boundaryField().updateCoeffs(); diff --git a/src/turbulenceModels/incompressible/RAS/v2f/v2f.C b/src/turbulenceModels/incompressible/RAS/v2f/v2f.C index d7304617ac2b35239454a6eda24371379fd6ceb3..b8d20d262433c0c213e9d84e0e03fa2162f688c8 100644 --- a/src/turbulenceModels/incompressible/RAS/v2f/v2f.C +++ b/src/turbulenceModels/incompressible/RAS/v2f/v2f.C @@ -364,9 +364,9 @@ void v2f::correct() const volTensorField gradU(fvc::grad(U_)); const volScalarField S2(2*magSqr(dev(symm(gradU)))); - const volScalarField G("RASModel.G", nut_*S2); + const volScalarField G(type() + ".G", nut_*S2); const volScalarField T(Ts()); - const volScalarField L2("v2f.L2", sqr(Ls())); + const volScalarField L2(type() + ".L2", sqr(Ls())); const volScalarField alpha ( "v2f::alpha", diff --git a/src/turbulenceModels/incompressible/turbulenceModel/laminar/laminar.C b/src/turbulenceModels/incompressible/turbulenceModel/laminar/laminar.C index a633c7a70e30df29bdc8c7feb1b33e4fa86d3ffc..65a6e2e6850bb00222cdd8103482490e41d27b78 100644 --- a/src/turbulenceModels/incompressible/turbulenceModel/laminar/laminar.C +++ b/src/turbulenceModels/incompressible/turbulenceModel/laminar/laminar.C @@ -77,6 +77,12 @@ autoPtr<laminar> laminar::New // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // +const dictionary& laminar::coeffDict() const +{ + return dictionary::null; +} + + tmp<volScalarField> laminar::nut() const { return tmp<volScalarField> diff --git a/src/turbulenceModels/incompressible/turbulenceModel/laminar/laminar.H b/src/turbulenceModels/incompressible/turbulenceModel/laminar/laminar.H index 5b79ecd48538d6226854350183a0746e7ab9b5ca..9c8588015f02025d604238d121367902b2a0e95a 100644 --- a/src/turbulenceModels/incompressible/turbulenceModel/laminar/laminar.H +++ b/src/turbulenceModels/incompressible/turbulenceModel/laminar/laminar.H @@ -89,6 +89,9 @@ public: // Member Functions + //- Const access to the coefficients dictionary + virtual const dictionary& coeffDict() const; + //- Return the turbulence viscosity, i.e. 0 for laminar flow virtual tmp<volScalarField> nut() const; diff --git a/src/turbulenceModels/incompressible/turbulenceModel/turbulenceModel.H b/src/turbulenceModels/incompressible/turbulenceModel/turbulenceModel.H index c2eacdaf39201458b69422646d363383a7fde7f3..91eef14ad78ce3f5cb62e9c556b28586e3325ee1 100644 --- a/src/turbulenceModels/incompressible/turbulenceModel/turbulenceModel.H +++ b/src/turbulenceModels/incompressible/turbulenceModel/turbulenceModel.H @@ -153,6 +153,9 @@ public: // Member Functions + //- Const access to the coefficients dictionary + virtual const dictionary& coeffDict() const = 0; + //- Access function to velocity field inline const volVectorField& U() const { diff --git a/tutorials/incompressible/pisoFoam/ras/cavity/constant/polyMesh/boundary b/tutorials/incompressible/pisoFoam/ras/cavity/constant/polyMesh/boundary index 61feadd97403fbf58a57c925fc262f3de46ec95a..9294a312662a782327ee00bce133050c7518aa9d 100644 --- a/tutorials/incompressible/pisoFoam/ras/cavity/constant/polyMesh/boundary +++ b/tutorials/incompressible/pisoFoam/ras/cavity/constant/polyMesh/boundary @@ -32,6 +32,7 @@ FoamFile frontAndBack { type empty; + inGroups 1(empty); nFaces 800; startFace 840; } diff --git a/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/0/U b/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/0/U new file mode 100644 index 0000000000000000000000000000000000000000..711702f9871ed36f0695ef53bedb90b80c345a78 --- /dev/null +++ b/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/0/U @@ -0,0 +1,41 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (0 0 0); + +boundaryField +{ + movingWall + { + type fixedValue; + value uniform (1 0 0); + } + + fixedWalls + { + type fixedValue; + value uniform (0 0 0); + } + + frontAndBack + { + type empty; + } +} + +// ************************************************************************* // diff --git a/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/0/epsilon b/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/0/epsilon new file mode 100644 index 0000000000000000000000000000000000000000..6b009c939ad092fdef7f54b8ecb9b755fb70ac3c --- /dev/null +++ b/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/0/epsilon @@ -0,0 +1,41 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object epsilon; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -3 0 0 0 0]; + +internalField uniform 0.000765; + +boundaryField +{ + movingWall + { + type epsilonWallFunction; + value uniform 0.000765; + } + fixedWalls + { + type epsilonWallFunction; + value uniform 0.000765; + } + frontAndBack + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/0/k b/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/0/k new file mode 100644 index 0000000000000000000000000000000000000000..72d1287df1f9d694a11cdb8b08012070367d6f06 --- /dev/null +++ b/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/0/k @@ -0,0 +1,41 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object k; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0.00325; + +boundaryField +{ + movingWall + { + type kqRWallFunction; + value uniform 0.00325; + } + fixedWalls + { + type kqRWallFunction; + value uniform 0.00325; + } + frontAndBack + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/0/nuTilda b/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/0/nuTilda new file mode 100644 index 0000000000000000000000000000000000000000..36021c60af557192f19b9aed3e448742c21843c5 --- /dev/null +++ b/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/0/nuTilda @@ -0,0 +1,39 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object nuTilda; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + movingWall + { + type zeroGradient; + } + + fixedWalls + { + type zeroGradient; + } + + frontAndBack + { + type empty; + } +} + +// ************************************************************************* // diff --git a/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/0/nut b/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/0/nut new file mode 100644 index 0000000000000000000000000000000000000000..2a9a9727fc9069af13d53199405fdc00e5d5d913 --- /dev/null +++ b/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/0/nut @@ -0,0 +1,41 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + location "0"; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + movingWall + { + type nutkWallFunction; + value uniform 0; + } + fixedWalls + { + type nutkWallFunction; + value uniform 0; + } + frontAndBack + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/0/p b/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/0/p new file mode 100644 index 0000000000000000000000000000000000000000..3e00d9eb3198e7c3d1d96d37378ad5ab6466637b --- /dev/null +++ b/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/0/p @@ -0,0 +1,39 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + movingWall + { + type zeroGradient; + } + + fixedWalls + { + type zeroGradient; + } + + frontAndBack + { + type empty; + } +} + +// ************************************************************************* // diff --git a/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/constant/RASProperties b/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/constant/RASProperties new file mode 100644 index 0000000000000000000000000000000000000000..a4937b503a46850b2626f0d301e4a07b9f691507 --- /dev/null +++ b/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/constant/RASProperties @@ -0,0 +1,25 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object RASProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +RASModel kEpsilon; + +turbulence on; + +printCoeffs on; + + +// ************************************************************************* // diff --git a/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/constant/polyMesh/blockMeshDict b/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/constant/polyMesh/blockMeshDict new file mode 100644 index 0000000000000000000000000000000000000000..165a600c7b4a929aaa62ad1750bfbb9d279c2e65 --- /dev/null +++ b/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/constant/polyMesh/blockMeshDict @@ -0,0 +1,75 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +convertToMeters 0.1; + +vertices +( + (0 0 0) + (1 0 0) + (1 1 0) + (0 1 0) + (0 0 0.1) + (1 0 0.1) + (1 1 0.1) + (0 1 0.1) +); + +blocks +( + hex (0 1 2 3 4 5 6 7) (20 20 1) simpleGrading (1 1 1) +); + +edges +( +); + +boundary +( + movingWall + { + type wall; + faces + ( + (3 7 6 2) + ); + } + fixedWalls + { + type wall; + faces + ( + (0 4 7 3) + (2 6 5 1) + (1 5 4 0) + ); + } + frontAndBack + { + type empty; + faces + ( + (0 3 2 1) + (4 5 6 7) + ); + } +); + +mergePatchPairs +( +); + +// ************************************************************************* // diff --git a/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/constant/polyMesh/boundary b/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/constant/polyMesh/boundary new file mode 100644 index 0000000000000000000000000000000000000000..9294a312662a782327ee00bce133050c7518aa9d --- /dev/null +++ b/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/constant/polyMesh/boundary @@ -0,0 +1,41 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class polyBoundaryMesh; + location "constant/polyMesh"; + object boundary; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +3 +( + movingWall + { + type wall; + nFaces 20; + startFace 760; + } + fixedWalls + { + type wall; + nFaces 60; + startFace 780; + } + frontAndBack + { + type empty; + inGroups 1(empty); + nFaces 800; + startFace 840; + } +) + +// ************************************************************************* // diff --git a/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/constant/transportProperties b/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/constant/transportProperties new file mode 100644 index 0000000000000000000000000000000000000000..b40b7d66cd884b7a54d4c7a61b50b1e39a466150 --- /dev/null +++ b/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/constant/transportProperties @@ -0,0 +1,39 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +transportModel Newtonian; + +nu nu [ 0 2 -1 0 0 0 0 ] 1e-05; + +CrossPowerLawCoeffs +{ + nu0 nu0 [ 0 2 -1 0 0 0 0 ] 1e-06; + nuInf nuInf [ 0 2 -1 0 0 0 0 ] 1e-06; + m m [ 0 0 1 0 0 0 0 ] 1; + n n [ 0 0 0 0 0 0 0 ] 1; +} + +BirdCarreauCoeffs +{ + nu0 nu0 [ 0 2 -1 0 0 0 0 ] 1e-06; + nuInf nuInf [ 0 2 -1 0 0 0 0 ] 1e-06; + k k [ 0 0 1 0 0 0 0 ] 0; + n n [ 0 0 0 0 0 0 0 ] 1; +} + + +// ************************************************************************* // diff --git a/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/constant/turbulenceProperties b/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/constant/turbulenceProperties new file mode 100644 index 0000000000000000000000000000000000000000..3721a46a2ead37eb2bf10434bcde59afa9fe9bf6 --- /dev/null +++ b/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/constant/turbulenceProperties @@ -0,0 +1,21 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RASModel; + + +// ************************************************************************* // diff --git a/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/system/controlDict b/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/system/controlDict new file mode 100644 index 0000000000000000000000000000000000000000..15396ddf40c7eaf68016dadeb5bda58bc62ccd31 --- /dev/null +++ b/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/system/controlDict @@ -0,0 +1,49 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application pisoFoam; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 10; + +deltaT 0.005; + +writeControl timeStep; + +writeInterval 100; + +purgeWrite 0; + +writeFormat ascii; + +writePrecision 6; + +writeCompression off; + +timeFormat general; + +timePrecision 6; + +runTimeModifiable true; + + +// ************************************************************************* // diff --git a/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/system/fvSchemes b/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/system/fvSchemes new file mode 100644 index 0000000000000000000000000000000000000000..6a9eea83ddac00d64496b8bc5a959e22bb44e0ca --- /dev/null +++ b/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/system/fvSchemes @@ -0,0 +1,71 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; + grad(p) Gauss linear; + grad(U) Gauss linear; +} + +divSchemes +{ + default none; + div(phi,U) Gauss limitedLinearV 1; + div(phi,k) Gauss limitedLinear 1; + div(phi,epsilon) Gauss limitedLinear 1; + div(phi,R) Gauss limitedLinear 1; + div(R) Gauss linear; + div(phi,nuTilda) Gauss limitedLinear 1; + div((nuEff*dev(T(grad(U))))) Gauss linear; +} + +laplacianSchemes +{ + default none; + laplacian(nuEff,U) Gauss linear corrected; + laplacian((1|A(U)),p) Gauss linear corrected; + laplacian(DkEff,k) Gauss linear corrected; + laplacian(DepsilonEff,epsilon) Gauss linear corrected; + laplacian(DREff,R) Gauss linear corrected; + laplacian(DnuTildaEff,nuTilda) Gauss linear corrected; +} + +interpolationSchemes +{ + default linear; + interpolate(U) linear; +} + +snGradSchemes +{ + default corrected; +} + +fluxRequired +{ + default no; + p ; +} + + +// ************************************************************************* // diff --git a/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/system/fvSolution b/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/system/fvSolution new file mode 100644 index 0000000000000000000000000000000000000000..dc8a5f5eb6d47c612c08729bf693e108e546a2f9 --- /dev/null +++ b/tutorials/incompressible/pisoFoam/ras/cavityCoupledU/system/fvSolution @@ -0,0 +1,87 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: dev | +| \\ / A nd | Web: www.OpenFOAM.org | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "system"; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + p + { + solver PCG; + preconditioner DIC; + tolerance 1e-06; + relTol 0.1; + } + + pFinal + { + solver PCG; + preconditioner DIC; + tolerance 1e-06; + relTol 0; + } + + U + { + type coupled; + solver PBiCCG; + preconditioner DILU; + tolerance (1e-05 1e-05 1e-05); + relTol (0 0 0); + } + + k + { + solver PBiCG; + preconditioner DILU; + tolerance 1e-05; + relTol 0; + } + + epsilon + { + solver PBiCG; + preconditioner DILU; + tolerance 1e-05; + relTol 0; + } + + R + { + solver PBiCG; + preconditioner DILU; + tolerance 1e-05; + relTol 0; + } + + nuTilda + { + solver PBiCG; + preconditioner DILU; + tolerance 1e-05; + relTol 0; + } +} + +PISO +{ + nCorrectors 2; + nNonOrthogonalCorrectors 0; + pRefCell 0; + pRefValue 0; +} + + +// ************************************************************************* // diff --git a/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/0/U b/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/0/U index c261ab16ba13cd1d55b5c54484a2df0ae19842de..bb861bfc6d1728ef2dc6aa6797e028a7fbb77371 100644 --- a/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/0/U +++ b/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/0/U @@ -23,6 +23,7 @@ boundaryField inlet { type timeVaryingMappedFixedValue; + offset (0 0 0); setAverage off; } diff --git a/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/0/epsilon b/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/0/epsilon index 28ff270cc2051c697e7760a851b726ac66155de8..b70f15f11994bfb3c213f3ff4dcc453c323b1b64 100644 --- a/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/0/epsilon +++ b/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/0/epsilon @@ -25,6 +25,7 @@ boundaryField { type timeVaryingMappedFixedValue; setAverage 0; + offset 0; value nonuniform List<scalar> 30 ( diff --git a/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/0/k b/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/0/k index 3d54d8e0972efdf77d41884462f1c7d2082699d8..f5f11a1aed3de9e8d9b76526cbf6fefc45853167 100644 --- a/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/0/k +++ b/tutorials/incompressible/simpleFoam/pitzDailyExptInlet/0/k @@ -25,6 +25,7 @@ boundaryField { type timeVaryingMappedFixedValue; setAverage 0; + offset 0; value nonuniform List<scalar> 30 (