From 326b86ec2d85f80338016c964f9d5067e34132a2 Mon Sep 17 00:00:00 2001 From: henry <Henry Weller h.weller@opencfd.co.uk> Date: Thu, 20 Nov 2008 17:07:17 +0000 Subject: [PATCH] Added generic turbulenceModel base class to incompressible turbulence models. --- .../incompressible/boundaryFoam/Make/options | 6 +- .../boundaryFoam/boundaryFoam.C | 4 +- .../incompressible/channelOodles/Make/files | 3 - .../incompressible/channelOodles/Make/options | 13 - .../channelOodles/channelOodles.C | 155 - .../channelOodles/createFields.H | 43 - .../channelOodles/createGradP.H | 24 - .../channelOodles/readTransportProperties.H | 28 - .../incompressible/channelOodles/writeGradP.H | 19 - .../incompressible/icoDyMFoam/Make/files | 3 - .../incompressible/icoDyMFoam/Make/options | 11 - .../solvers/incompressible/icoDyMFoam/UEqn.H | 16 - .../icoDyMFoam/checkTotalVolume.H | 6 - .../incompressible/icoDyMFoam/correctPhi.H | 44 - .../incompressible/icoDyMFoam/createFields.H | 72 - .../incompressible/icoDyMFoam/icoDyMFoam.C | 159 - .../incompressible/icoDyMFoam/readControls.H | 14 - .../nonNewtonianIcoFoam/Make/options | 3 +- .../nonNewtonianIcoFoam/nonNewtonianIcoFoam.C | 2 +- .../solvers/incompressible/oodles/Make/files | 3 - .../incompressible/oodles/Make/options | 13 - .../incompressible/oodles/createFields.H | 43 - .../solvers/incompressible/oodles/oodles.C | 128 - .../incompressible/pimpleFoam/Make/options | 10 +- .../incompressible/pimpleFoam/createFields.H | 4 +- .../incompressible/pimpleFoam/pimpleFoam.C | 20 +- .../incompressible/simpleFoam/Make/options | 8 +- .../incompressible/simpleFoam/simpleFoam.C | 4 +- .../incompressible/turbDyMFoam/Make/files | 3 - .../incompressible/turbDyMFoam/Make/options | 15 - .../solvers/incompressible/turbDyMFoam/UEqn.H | 16 - .../incompressible/turbDyMFoam/correctPhi.H | 44 - .../incompressible/turbDyMFoam/createFields.H | 59 - .../incompressible/turbDyMFoam/readControls.H | 14 - .../incompressible/turbDyMFoam/turbDyMFoam.C | 163 - .../incompressible/turbFoam/Make/files | 3 - .../incompressible/turbFoam/Make/options | 10 - .../incompressible/turbFoam/createFields.H | 42 - .../incompressible/turbFoam/turbFoam.C | 129 - .../compressibleLesInterFoam/Make/files | 3 - .../compressibleLesInterFoam/Make/options | 15 - .../compressibleLesInterFoam/UEqn.H | 29 - .../compressibleLesInterFoam/alphaEqns.H | 76 - .../alphaEqnsSubCycle.H | 43 - .../compressibleLesInterFoam.C | 105 - .../compressibleLesInterFoam/createFields.H | 152 - .../compressibleLesInterFoam/pEqn.H | 74 - .../compressibleLesInterFoam/readControls.H | 20 - .../multiphase/interDyMFoam/Make/options | 5 +- .../multiphase/interDyMFoam/createFields.H | 24 +- .../multiphase/interDyMFoam/interDyMFoam.C | 7 +- .../solvers/multiphase/interDyMFoam/pEqn.H | 2 +- .../solvers/multiphase/interFoam/Make/options | 3 + .../multiphase/interFoam/UBlendingFactor.H | 4 +- .../solvers/multiphase/interFoam/UEqn.H | 17 +- .../multiphase/interFoam/createFields.H | 25 +- .../solvers/multiphase/interFoam/gammaEqn.H | 35 - .../multiphase/interFoam/gammaEqnSubCycle.H | 35 - .../solvers/multiphase/interFoam/interFoam.C | 9 +- .../solvers/multiphase/interFoam/pEqn.H | 2 +- .../interPhaseChangeFoam/Make/options | 4 +- .../multiphase/interPhaseChangeFoam/UEqn.H | 4 +- .../interPhaseChangeFoam/createFields.H | 22 +- .../interPhaseChangeFoam/gammaEqn.H | 67 - .../interPhaseChangeFoam/gammaEqnSubCycle.H | 53 - .../interPhaseChangeFoam.C | 12 +- .../multiphase/interPhaseChangeFoam/pEqn.H | 2 +- .../phaseChangeTwoPhaseMixture.H | 2 +- .../multiphase/lesCavitatingFoam/CourantNo.H | 59 - .../multiphase/lesCavitatingFoam/Make/files | 5 - .../multiphase/lesCavitatingFoam/Make/options | 16 - .../multiphase/lesCavitatingFoam/UEqn.H | 20 - .../lesCavitatingFoam/continuityErrs.H | 22 - .../lesCavitatingFoam/createFields.H | 85 - .../devOneEqEddy/devOneEqEddy.C | 130 - .../devOneEqEddy/devOneEqEddy.H | 148 - .../multiphase/lesCavitatingFoam/gammaPsi.H | 10 - .../lesCavitatingFoam/lesCavitatingFoam.C | 94 - .../multiphase/lesCavitatingFoam/pEqn.H | 80 - .../lesCavitatingFoam/readControls.H | 9 - .../readThermodynamicProperties.H | 27 - .../lesCavitatingFoam/resetPhiPatches.H | 15 - .../lesCavitatingFoam/resetPhivPatches.H | 14 - .../multiphase/lesCavitatingFoam/rhoEqn.H | 16 - .../multiphase/lesCavitatingFoam/setDeltaT.H | 54 - .../lesCavitatingFoam/setInitialDeltaT.H | 54 - .../multiphase/lesInterFoam/Make/files | 3 - .../multiphase/lesInterFoam/Make/options | 15 - .../solvers/multiphase/lesInterFoam/UEqn.H | 32 - .../multiphase/lesInterFoam/createFields.H | 115 - .../multiphase/lesInterFoam/lesInterFoam.C | 103 - .../multiphaseInterFoam/Make/options | 4 + .../multiphase/multiphaseInterFoam/UEqn.H | 32 +- .../multiphaseInterFoam/createFields.H | 22 + .../multiphaseInterFoam/multiphaseInterFoam.C | 48 +- .../multiphase/rasCavitatingFoam/CourantNo.H | 59 - .../multiphase/rasCavitatingFoam/Make/files | 3 - .../multiphase/rasCavitatingFoam/Make/options | 14 - .../multiphase/rasCavitatingFoam/UEqn.H | 20 - .../rasCavitatingFoam/continuityErrs.H | 22 - .../rasCavitatingFoam/createFields.H | 85 - .../multiphase/rasCavitatingFoam/gammaPsi.H | 10 - .../multiphase/rasCavitatingFoam/pEqn.H | 80 - .../rasCavitatingFoam/rasCavitatingFoam.C | 94 - .../rasCavitatingFoam/readControls.H | 9 - .../readThermodynamicProperties.H | 27 - .../rasCavitatingFoam/resetPhiPatches.H | 15 - .../rasCavitatingFoam/resetPhivPatches.H | 14 - .../multiphase/rasCavitatingFoam/rhoEqn.H | 16 - .../multiphase/rasCavitatingFoam/setDeltaT.H | 54 - .../rasCavitatingFoam/setInitialDeltaT.H | 54 - .../multiphase/rasInterFoam/Make/files | 3 - .../multiphase/rasInterFoam/Make/options | 13 - .../solvers/multiphase/rasInterFoam/UEqn.H | 32 - .../multiphase/rasInterFoam/createFields.H | 116 - .../multiphase/rasInterFoam/rasInterFoam.C | 104 - .../solvers/multiphase/settlingFoam/UEqn.H | 50 +- .../twoLiquidMixingFoam/Make/options | 3 + .../multiphase/twoLiquidMixingFoam/UEqn.H | 15 +- .../twoLiquidMixingFoam/createFields.H | 36 +- .../multiphase/twoLiquidMixingFoam/gammaEqn.H | 19 - .../twoLiquidMixingFoam/twoLiquidMixingFoam.C | 9 +- .../interfaceProperties/Make/files | 10 +- ...stantGammaContactAngleFvPatchScalarField.C | 135 - ...stantGammaContactAngleFvPatchScalarField.H | 152 - ...namicGammaContactAngleFvPatchScalarField.C | 170 - ...namicGammaContactAngleFvPatchScalarField.H | 161 - .../gammaContactAngleFvPatchScalarField.C | 101 - .../gammaContactAngleFvPatchScalarField.H | 125 - ...ryingGammaContactAngleFvPatchScalarField.C | 152 - ...ryingGammaContactAngleFvPatchScalarField.H | 148 - .../gammaFixedPressureFvPatchScalarField.C | 173 - .../gammaFixedPressureFvPatchScalarField.H | 180 - .../interfaceProperties/interfaceProperties.C | 81 +- .../interfaceProperties/interfaceProperties.H | 12 +- src/turbulenceModels/Allwmake | 5 +- src/turbulenceModels/LES/Allwmake | 4 +- .../LES/LESdeltas/LESdelta/LESdelta.H | 7 +- .../LES/LESdeltas/PrandtlDelta/PrandtlDelta.H | 11 +- .../cubeRootVolDelta/cubeRootVolDelta.H | 11 +- .../LES/LESdeltas/smoothDelta/smoothDelta.H | 15 +- .../LES/LESfilters/LESfilter/LESfilter.H | 7 +- .../anisotropicFilter/anisotropicFilter.H | 20 +- .../LESfilters/laplaceFilter/laplaceFilter.H | 20 +- .../LESfilters/simpleFilter/simpleFilter.H | 20 +- .../DeardorffDiffStress/DeardorffDiffStress.C | 150 - .../DeardorffDiffStress/DeardorffDiffStress.H | 141 - .../compressible/GenEddyVisc/GenEddyVisc.C | 144 - .../compressible/GenEddyVisc/GenEddyVisc.H | 155 - .../compressible/GenSGSStress/GenSGSStress.C | 159 - .../compressible/GenSGSStress/GenSGSStress.H | 160 - .../LES/compressible/LESModel/LESModel.C | 133 - .../LES/compressible/LESModel/LESModel.H | 293 - .../LES/compressible/LESModel/newLESModel.C | 94 - .../LES/compressible/Make/files | 19 - .../LES/compressible/Make/options | 11 - .../compressible/Smagorinsky/Smagorinsky.C | 112 - .../compressible/Smagorinsky/Smagorinsky.H | 127 - .../SpalartAllmaras/SpalartAllmaras.C | 329 - .../SpalartAllmaras/SpalartAllmaras.H | 175 - ...rtAllmarasWallFunctionFvPatchScalarField.C | 205 - ...rtAllmarasWallFunctionFvPatchScalarField.H | 165 - .../compressible/dynOneEqEddy/dynOneEqEddy.C | 155 - .../compressible/dynOneEqEddy/dynOneEqEddy.H | 146 - .../lowReOneEqEddy/lowReOneEqEddy.C | 137 - .../lowReOneEqEddy/lowReOneEqEddy.H | 138 - .../LES/compressible/oneEqEddy/oneEqEddy.C | 124 - .../LES/compressible/oneEqEddy/oneEqEddy.H | 141 - .../DeardorffDiffStress/DeardorffDiffStress.C | 150 - .../DeardorffDiffStress/DeardorffDiffStress.H | 140 - .../incompressible/GenEddyVisc/GenEddyVisc.C | 126 - .../incompressible/GenEddyVisc/GenEddyVisc.H | 141 - .../GenSGSStress/GenSGSStress.C | 192 - .../GenSGSStress/GenSGSStress.H | 149 - .../LES/incompressible/LESModel/LESModel.C | 133 - .../LES/incompressible/LESModel/LESModel.H | 275 - .../LES/incompressible/LESModel/newLESModel.C | 93 - .../LRRDiffStress/LRRDiffStress.C | 161 - .../LRRDiffStress/LRRDiffStress.H | 139 - .../LES/incompressible/Make/files | 39 - .../LES/incompressible/Make/options | 12 - .../incompressible/Smagorinsky/Smagorinsky.C | 100 - .../incompressible/Smagorinsky/Smagorinsky.H | 141 - .../Smagorinsky2/Smagorinsky2.C | 124 - .../Smagorinsky2/Smagorinsky2.H | 131 - .../SpalartAllmaras/SpalartAllmaras.C | 368 - .../SpalartAllmaras/SpalartAllmaras.H | 190 - .../SpalartAllmarasDDES/SpalartAllmarasDDES.C | 120 - .../SpalartAllmarasDDES/SpalartAllmarasDDES.H | 118 - .../IDDESDelta/IDDESDelta.C | 140 - .../IDDESDelta/IDDESDelta.H | 113 - .../SpalartAllmarasIDDES.C | 214 - .../SpalartAllmarasIDDES.H | 132 - ...rtAllmarasWallFunctionFvPatchScalarField.C | 186 - ...rtAllmarasWallFunctionFvPatchScalarField.H | 157 - .../dynMixedSmagorinsky/dynMixedSmagorinsky.C | 142 - .../dynMixedSmagorinsky/dynMixedSmagorinsky.H | 150 - .../dynOneEqEddy/dynOneEqEddy.C | 181 - .../dynOneEqEddy/dynOneEqEddy.H | 155 - .../dynSmagorinsky/dynSmagorinsky.C | 161 - .../dynSmagorinsky/dynSmagorinsky.H | 155 - .../kOmegaSSTSAS/kOmegaSSTSAS.C | 447 - .../kOmegaSSTSAS/kOmegaSSTSAS.H | 258 - .../LES/incompressible/laminar/laminar.C | 166 - .../LES/incompressible/laminar/laminar.H | 130 - .../locDynOneEqEddy/locDynOneEqEddy.C | 172 - .../locDynOneEqEddy/locDynOneEqEddy.H | 173 - .../mixedSmagorinsky/mixedSmagorinsky.C | 145 - .../mixedSmagorinsky/mixedSmagorinsky.H | 156 - .../LES/incompressible/oneEqEddy/oneEqEddy.C | 129 - .../LES/incompressible/oneEqEddy/oneEqEddy.H | 148 - .../scaleSimilarity/scaleSimilarity.C | 124 - .../scaleSimilarity/scaleSimilarity.H | 134 - .../spectEddyVisc/spectEddyVisc.C | 167 - .../spectEddyVisc/spectEddyVisc.H | 138 - .../vanDriestDelta/vanDriestDelta.C | 151 - .../vanDriestDelta/vanDriestDelta.H | 114 - src/turbulenceModels/RAS/Allwmake | 8 - .../RAS/compressible/LRR/LRR.C | 476 - .../RAS/compressible/LRR/LRR.H | 202 - .../LaunderGibsonRSTM/LaunderGibsonRSTM.C | 514 - .../LaunderGibsonRSTM/LaunderGibsonRSTM.H | 211 - .../LaunderSharmaKE/LaunderSharmaKE.C | 331 - .../LaunderSharmaKE/LaunderSharmaKE.H | 191 - .../RAS/compressible/Make/files | 43 - .../RAS/compressible/Make/options | 8 - .../RAS/compressible/RASModel/RASModel.C | 228 - .../RAS/compressible/RASModel/RASModel.H | 339 - .../RAS/compressible/RASModel/newRASModel.C | 99 - .../compressible/RNGkEpsilon/RNGkEpsilon.C | 368 - .../compressible/RNGkEpsilon/RNGkEpsilon.H | 189 - .../SpalartAllmaras/SpalartAllmaras.C | 353 - .../SpalartAllmaras/SpalartAllmaras.H | 245 - .../backwardsCompatibilityWallFunctions.C | 286 - .../backwardsCompatibilityWallFunctions.H | 123 - ...wardsCompatibilityWallFunctionsTemplates.C | 166 - ...entHeatFluxTemperatureFvPatchScalarField.C | 203 - ...entHeatFluxTemperatureFvPatchScalarField.H | 176 - ...thDissipationRateInletFvPatchScalarField.C | 152 - ...thDissipationRateInletFvPatchScalarField.H | 167 - ...ngLengthFrequencyInletFvPatchScalarField.C | 158 - ...ngLengthFrequencyInletFvPatchScalarField.H | 171 - .../alphatWallFunctionFvPatchScalarField.C | 132 - .../alphatWallFunctionFvPatchScalarField.H | 155 - .../epsilonWallFunctionFvPatchScalarField.C | 218 - .../epsilonWallFunctionFvPatchScalarField.H | 164 - .../kQRWallFunctionFvPatchField.C | 155 - .../kQRWallFunctionFvPatchField.H | 170 - .../kQRWallFunctionFvPatchFields.C | 51 - .../kQRWallFunctionFvPatchFields.H | 56 - .../mutRoughWallFunctionFvPatchScalarField.C | 248 - .../mutRoughWallFunctionFvPatchScalarField.H | 194 - ...ndardRoughWallFunctionFvPatchScalarField.C | 314 - ...ndardRoughWallFunctionFvPatchScalarField.H | 208 - ...asStandardWallFunctionFvPatchScalarField.C | 175 - ...asStandardWallFunctionFvPatchScalarField.H | 158 - ...rtAllmarasWallFunctionFvPatchScalarField.C | 187 - ...rtAllmarasWallFunctionFvPatchScalarField.H | 150 - .../mutWallFunctionFvPatchScalarField.C | 162 - .../mutWallFunctionFvPatchScalarField.H | 155 - .../omegaWallFunctionFvPatchScalarField.C | 209 - .../omegaWallFunctionFvPatchScalarField.H | 159 - .../compressible/include/wallDissipationI.H | 51 - .../RAS/compressible/include/wallFunctionsI.H | 128 - .../RAS/compressible/include/wallViscosityI.H | 73 - .../RAS/compressible/kEpsilon/kEpsilon.C | 341 - .../RAS/compressible/kEpsilon/kEpsilon.H | 190 - .../RAS/compressible/kOmegaSST/kOmegaSST.C | 467 - .../RAS/compressible/kOmegaSST/kOmegaSST.H | 303 - .../RAS/compressible/laminar/laminar.C | 195 - .../RAS/compressible/laminar/laminar.H | 135 - .../compressible/realizableKE/realizableKE.C | 380 - .../compressible/realizableKE/realizableKE.H | 204 - .../RAS/incompressible/LRR/LRR.C | 433 - .../RAS/incompressible/LRR/LRR.H | 188 - .../LamBremhorstKE/LamBremhorstKE.C | 280 - .../LamBremhorstKE/LamBremhorstKE.H | 165 - .../LaunderGibsonRSTM/LaunderGibsonRSTM.C | 474 - .../LaunderGibsonRSTM/LaunderGibsonRSTM.H | 196 - .../LaunderSharmaKE/LaunderSharmaKE.C | 275 - .../LaunderSharmaKE/LaunderSharmaKE.H | 180 - .../incompressible/LienCubicKE/LienCubicKE.C | 423 - .../incompressible/LienCubicKE/LienCubicKE.H | 173 - .../LienCubicKELowRe/LienCubicKELowRe.C | 495 - .../LienCubicKELowRe/LienCubicKELowRe.H | 198 - .../LienCubicKELowReSetWallDissipation.H | 71 - .../LienLeschzinerLowRe/LienLeschzinerLowRe.C | 278 - .../LienLeschzinerLowRe/LienLeschzinerLowRe.H | 168 - .../LienLeschzinerLowReSetWallDissipation.H | 71 - .../RAS/incompressible/Make/files | 48 - .../RAS/incompressible/Make/options | 8 - .../NonlinearKEShih/NonlinearKEShih.C | 377 - .../NonlinearKEShih/NonlinearKEShih.H | 172 - .../RAS/incompressible/QZeta/QZeta.C | 330 - .../RAS/incompressible/QZeta/QZeta.H | 179 - .../RAS/incompressible/RASModel/RASModel.C | 215 - .../RAS/incompressible/RASModel/RASModel.H | 314 - .../RAS/incompressible/RASModel/newRASModel.C | 96 - .../incompressible/RNGkEpsilon/RNGkEpsilon.C | 311 - .../incompressible/RNGkEpsilon/RNGkEpsilon.H | 176 - .../SpalartAllmaras/SpalartAllmaras.C | 390 - .../SpalartAllmaras/SpalartAllmaras.H | 192 - .../backwardsCompatibilityWallFunctions.C | 215 - .../backwardsCompatibilityWallFunctions.H | 116 - ...wardsCompatibilityWallFunctionsTemplates.C | 166 - ...entHeatFluxTemperatureFvPatchScalarField.C | 191 - ...entHeatFluxTemperatureFvPatchScalarField.H | 179 - ...thDissipationRateInletFvPatchScalarField.C | 152 - ...thDissipationRateInletFvPatchScalarField.H | 167 - ...ngLengthFrequencyInletFvPatchScalarField.C | 158 - ...ngLengthFrequencyInletFvPatchScalarField.H | 171 - .../epsilonWallFunctionFvPatchScalarField.C | 213 - .../epsilonWallFunctionFvPatchScalarField.H | 164 - .../kQRWallFunctionFvPatchField.C | 155 - .../kQRWallFunctionFvPatchField.H | 170 - .../kQRWallFunctionFvPatchFields.C | 51 - .../kQRWallFunctionFvPatchFields.H | 56 - .../nutRoughWallFunctionFvPatchScalarField.C | 245 - .../nutRoughWallFunctionFvPatchScalarField.H | 194 - ...ndardRoughWallFunctionFvPatchScalarField.C | 302 - ...ndardRoughWallFunctionFvPatchScalarField.H | 208 - ...asStandardWallFunctionFvPatchScalarField.C | 172 - ...asStandardWallFunctionFvPatchScalarField.H | 160 - ...rtAllmarasWallFunctionFvPatchScalarField.C | 180 - ...rtAllmarasWallFunctionFvPatchScalarField.H | 153 - .../nutWallFunctionFvPatchScalarField.C | 157 - .../nutWallFunctionFvPatchScalarField.H | 155 - .../omegaWallFunctionFvPatchScalarField.C | 204 - .../omegaWallFunctionFvPatchScalarField.H | 159 - .../include/nonLinearWallFunctionsI.H | 127 - .../incompressible/include/wallDissipationI.H | 51 - .../include/wallFunctionsI.H.old | 126 - .../include/wallNonlinearViscosityI.H | 70 - .../include/wallViscosityI.H.old | 70 - .../RAS/incompressible/kEpsilon/kEpsilon.C | 281 - .../RAS/incompressible/kEpsilon/kEpsilon.H | 176 - .../RAS/incompressible/kOmega/kOmega.C | 287 - .../RAS/incompressible/kOmega/kOmega.H | 210 - .../RAS/incompressible/kOmegaSST/kOmegaSST.C | 425 - .../RAS/incompressible/kOmegaSST/kOmegaSST.H | 290 - .../RAS/incompressible/laminar/laminar.C | 203 - .../RAS/incompressible/laminar/laminar.H | 123 - .../realizableKE/realizableKE.C | 340 - .../realizableKE/realizableKE.H | 193 - tutorials/buoyantSimpleFoam/hotRoom/0/epsilon | 21 +- tutorials/buoyantSimpleFoam/hotRoom/0/k | 21 +- .../hotRoom/constant/polyMesh/boundary | 3 +- tutorials/interFoam/Allclean | 6 +- tutorials/interFoam/Allrun | 6 +- tutorials/interFoam/damBreak/0/U | 5 +- tutorials/interFoam/damBreak/0/gamma | 51 - tutorials/interFoam/damBreak/0/gamma.org | 51 - .../damBreak/constant/polyMesh/boundary | 3 +- tutorials/interFoam/damBreak/system/fvSchemes | 8 +- .../interFoam/damBreak/system/fvSolution | 6 +- .../interFoam/damBreak/system/setFieldsDict | 4 +- tutorials/lesInterFoam/nozzleFlow2D/0/B | 57 - tutorials/lesInterFoam/nozzleFlow2D/0/U | 57 - .../lesInterFoam/nozzleFlow2D/0/data/Ubulk | 0 .../lesInterFoam/nozzleFlow2D/0/data/ptrace | 0 tutorials/lesInterFoam/nozzleFlow2D/0/gamma | 57 - tutorials/lesInterFoam/nozzleFlow2D/0/k | 58 - tutorials/lesInterFoam/nozzleFlow2D/0/nuSgs | 54 - tutorials/lesInterFoam/nozzleFlow2D/0/nuTilda | 58 - tutorials/lesInterFoam/nozzleFlow2D/0/pd | 61 - tutorials/lesInterFoam/nozzleFlow2D/Allclean | 7 - tutorials/lesInterFoam/nozzleFlow2D/Allrun | 33 - .../nozzleFlow2D/constant/LESProperties | 176 - .../constant/environmentalProperties | 19 - .../constant/polyMesh/blockMeshDict | 114 - .../nozzleFlow2D/constant/polyMesh/boundary | 68 - .../constant/polyMesh/boundary.org | 68 - .../nozzleFlow2D/constant/polyMesh/sets/c0 | 7090 -------- .../constant/polyMesh/sets/c0_old | 21 - .../constant/polyMesh/sets/refinedCells | 14159 ---------------- .../nozzleFlow2D/constant/transportProperties | 68 - .../nozzleFlow2D/system/cellSetDict | 29 - .../nozzleFlow2D/system/cellSetDict.1 | 29 - .../nozzleFlow2D/system/cellSetDict.2 | 29 - .../nozzleFlow2D/system/controlDict | 53 - .../nozzleFlow2D/system/fvSchemes | 63 - .../nozzleFlow2D/system/fvSolution | 121 - .../nozzleFlow2D/system/refineMeshDict | 44 - 383 files changed, 429 insertions(+), 65332 deletions(-) delete mode 100644 applications/solvers/incompressible/channelOodles/Make/files delete mode 100644 applications/solvers/incompressible/channelOodles/Make/options delete mode 100644 applications/solvers/incompressible/channelOodles/channelOodles.C delete mode 100644 applications/solvers/incompressible/channelOodles/createFields.H delete mode 100644 applications/solvers/incompressible/channelOodles/createGradP.H delete mode 100644 applications/solvers/incompressible/channelOodles/readTransportProperties.H delete mode 100644 applications/solvers/incompressible/channelOodles/writeGradP.H delete mode 100644 applications/solvers/incompressible/icoDyMFoam/Make/files delete mode 100644 applications/solvers/incompressible/icoDyMFoam/Make/options delete mode 100644 applications/solvers/incompressible/icoDyMFoam/UEqn.H delete mode 100644 applications/solvers/incompressible/icoDyMFoam/checkTotalVolume.H delete mode 100644 applications/solvers/incompressible/icoDyMFoam/correctPhi.H delete mode 100644 applications/solvers/incompressible/icoDyMFoam/createFields.H delete mode 100644 applications/solvers/incompressible/icoDyMFoam/icoDyMFoam.C delete mode 100644 applications/solvers/incompressible/icoDyMFoam/readControls.H delete mode 100644 applications/solvers/incompressible/oodles/Make/files delete mode 100644 applications/solvers/incompressible/oodles/Make/options delete mode 100644 applications/solvers/incompressible/oodles/createFields.H delete mode 100644 applications/solvers/incompressible/oodles/oodles.C delete mode 100644 applications/solvers/incompressible/turbDyMFoam/Make/files delete mode 100644 applications/solvers/incompressible/turbDyMFoam/Make/options delete mode 100644 applications/solvers/incompressible/turbDyMFoam/UEqn.H delete mode 100644 applications/solvers/incompressible/turbDyMFoam/correctPhi.H delete mode 100644 applications/solvers/incompressible/turbDyMFoam/createFields.H delete mode 100644 applications/solvers/incompressible/turbDyMFoam/readControls.H delete mode 100644 applications/solvers/incompressible/turbDyMFoam/turbDyMFoam.C delete mode 100644 applications/solvers/incompressible/turbFoam/Make/files delete mode 100644 applications/solvers/incompressible/turbFoam/Make/options delete mode 100644 applications/solvers/incompressible/turbFoam/createFields.H delete mode 100644 applications/solvers/incompressible/turbFoam/turbFoam.C delete mode 100644 applications/solvers/multiphase/compressibleLesInterFoam/Make/files delete mode 100644 applications/solvers/multiphase/compressibleLesInterFoam/Make/options delete mode 100644 applications/solvers/multiphase/compressibleLesInterFoam/UEqn.H delete mode 100644 applications/solvers/multiphase/compressibleLesInterFoam/alphaEqns.H delete mode 100644 applications/solvers/multiphase/compressibleLesInterFoam/alphaEqnsSubCycle.H delete mode 100644 applications/solvers/multiphase/compressibleLesInterFoam/compressibleLesInterFoam.C delete mode 100644 applications/solvers/multiphase/compressibleLesInterFoam/createFields.H delete mode 100644 applications/solvers/multiphase/compressibleLesInterFoam/pEqn.H delete mode 100644 applications/solvers/multiphase/compressibleLesInterFoam/readControls.H delete mode 100644 applications/solvers/multiphase/interFoam/gammaEqn.H delete mode 100644 applications/solvers/multiphase/interFoam/gammaEqnSubCycle.H delete mode 100644 applications/solvers/multiphase/interPhaseChangeFoam/gammaEqn.H delete mode 100644 applications/solvers/multiphase/interPhaseChangeFoam/gammaEqnSubCycle.H delete mode 100644 applications/solvers/multiphase/lesCavitatingFoam/CourantNo.H delete mode 100644 applications/solvers/multiphase/lesCavitatingFoam/Make/files delete mode 100644 applications/solvers/multiphase/lesCavitatingFoam/Make/options delete mode 100644 applications/solvers/multiphase/lesCavitatingFoam/UEqn.H delete mode 100644 applications/solvers/multiphase/lesCavitatingFoam/continuityErrs.H delete mode 100644 applications/solvers/multiphase/lesCavitatingFoam/createFields.H delete mode 100644 applications/solvers/multiphase/lesCavitatingFoam/devOneEqEddy/devOneEqEddy.C delete mode 100644 applications/solvers/multiphase/lesCavitatingFoam/devOneEqEddy/devOneEqEddy.H delete mode 100644 applications/solvers/multiphase/lesCavitatingFoam/gammaPsi.H delete mode 100644 applications/solvers/multiphase/lesCavitatingFoam/lesCavitatingFoam.C delete mode 100644 applications/solvers/multiphase/lesCavitatingFoam/pEqn.H delete mode 100644 applications/solvers/multiphase/lesCavitatingFoam/readControls.H delete mode 100644 applications/solvers/multiphase/lesCavitatingFoam/readThermodynamicProperties.H delete mode 100644 applications/solvers/multiphase/lesCavitatingFoam/resetPhiPatches.H delete mode 100644 applications/solvers/multiphase/lesCavitatingFoam/resetPhivPatches.H delete mode 100644 applications/solvers/multiphase/lesCavitatingFoam/rhoEqn.H delete mode 100644 applications/solvers/multiphase/lesCavitatingFoam/setDeltaT.H delete mode 100644 applications/solvers/multiphase/lesCavitatingFoam/setInitialDeltaT.H delete mode 100644 applications/solvers/multiphase/lesInterFoam/Make/files delete mode 100644 applications/solvers/multiphase/lesInterFoam/Make/options delete mode 100644 applications/solvers/multiphase/lesInterFoam/UEqn.H delete mode 100644 applications/solvers/multiphase/lesInterFoam/createFields.H delete mode 100644 applications/solvers/multiphase/lesInterFoam/lesInterFoam.C delete mode 100644 applications/solvers/multiphase/rasCavitatingFoam/CourantNo.H delete mode 100644 applications/solvers/multiphase/rasCavitatingFoam/Make/files delete mode 100644 applications/solvers/multiphase/rasCavitatingFoam/Make/options delete mode 100644 applications/solvers/multiphase/rasCavitatingFoam/UEqn.H delete mode 100644 applications/solvers/multiphase/rasCavitatingFoam/continuityErrs.H delete mode 100644 applications/solvers/multiphase/rasCavitatingFoam/createFields.H delete mode 100644 applications/solvers/multiphase/rasCavitatingFoam/gammaPsi.H delete mode 100644 applications/solvers/multiphase/rasCavitatingFoam/pEqn.H delete mode 100644 applications/solvers/multiphase/rasCavitatingFoam/rasCavitatingFoam.C delete mode 100644 applications/solvers/multiphase/rasCavitatingFoam/readControls.H delete mode 100644 applications/solvers/multiphase/rasCavitatingFoam/readThermodynamicProperties.H delete mode 100644 applications/solvers/multiphase/rasCavitatingFoam/resetPhiPatches.H delete mode 100644 applications/solvers/multiphase/rasCavitatingFoam/resetPhivPatches.H delete mode 100644 applications/solvers/multiphase/rasCavitatingFoam/rhoEqn.H delete mode 100644 applications/solvers/multiphase/rasCavitatingFoam/setDeltaT.H delete mode 100644 applications/solvers/multiphase/rasCavitatingFoam/setInitialDeltaT.H delete mode 100644 applications/solvers/multiphase/rasInterFoam/Make/files delete mode 100644 applications/solvers/multiphase/rasInterFoam/Make/options delete mode 100644 applications/solvers/multiphase/rasInterFoam/UEqn.H delete mode 100644 applications/solvers/multiphase/rasInterFoam/createFields.H delete mode 100644 applications/solvers/multiphase/rasInterFoam/rasInterFoam.C delete mode 100644 applications/solvers/multiphase/twoLiquidMixingFoam/gammaEqn.H delete mode 100644 src/transportModels/interfaceProperties/gammaContactAngle/constantGammaContactAngle/constantGammaContactAngleFvPatchScalarField.C delete mode 100644 src/transportModels/interfaceProperties/gammaContactAngle/constantGammaContactAngle/constantGammaContactAngleFvPatchScalarField.H delete mode 100644 src/transportModels/interfaceProperties/gammaContactAngle/dynamicGammaContactAngle/dynamicGammaContactAngleFvPatchScalarField.C delete mode 100644 src/transportModels/interfaceProperties/gammaContactAngle/dynamicGammaContactAngle/dynamicGammaContactAngleFvPatchScalarField.H delete mode 100644 src/transportModels/interfaceProperties/gammaContactAngle/gammaContactAngle/gammaContactAngleFvPatchScalarField.C delete mode 100644 src/transportModels/interfaceProperties/gammaContactAngle/gammaContactAngle/gammaContactAngleFvPatchScalarField.H delete mode 100644 src/transportModels/interfaceProperties/gammaContactAngle/timeVaryingGammaContactAngle/timeVaryingGammaContactAngleFvPatchScalarField.C delete mode 100644 src/transportModels/interfaceProperties/gammaContactAngle/timeVaryingGammaContactAngle/timeVaryingGammaContactAngleFvPatchScalarField.H delete mode 100644 src/transportModels/interfaceProperties/gammaFixedPressure/gammaFixedPressureFvPatchScalarField.C delete mode 100644 src/transportModels/interfaceProperties/gammaFixedPressure/gammaFixedPressureFvPatchScalarField.H delete mode 100644 src/turbulenceModels/LES/compressible/DeardorffDiffStress/DeardorffDiffStress.C delete mode 100644 src/turbulenceModels/LES/compressible/DeardorffDiffStress/DeardorffDiffStress.H delete mode 100644 src/turbulenceModels/LES/compressible/GenEddyVisc/GenEddyVisc.C delete mode 100644 src/turbulenceModels/LES/compressible/GenEddyVisc/GenEddyVisc.H delete mode 100644 src/turbulenceModels/LES/compressible/GenSGSStress/GenSGSStress.C delete mode 100644 src/turbulenceModels/LES/compressible/GenSGSStress/GenSGSStress.H delete mode 100644 src/turbulenceModels/LES/compressible/LESModel/LESModel.C delete mode 100644 src/turbulenceModels/LES/compressible/LESModel/LESModel.H delete mode 100644 src/turbulenceModels/LES/compressible/LESModel/newLESModel.C delete mode 100644 src/turbulenceModels/LES/compressible/Make/files delete mode 100644 src/turbulenceModels/LES/compressible/Make/options delete mode 100644 src/turbulenceModels/LES/compressible/Smagorinsky/Smagorinsky.C delete mode 100644 src/turbulenceModels/LES/compressible/Smagorinsky/Smagorinsky.H delete mode 100644 src/turbulenceModels/LES/compressible/SpalartAllmaras/SpalartAllmaras.C delete mode 100644 src/turbulenceModels/LES/compressible/SpalartAllmaras/SpalartAllmaras.H delete mode 100644 src/turbulenceModels/LES/compressible/derivedFvPatchFields/wallFunctions/muSgsWallFunctions/muSgsSpalartAllmarasWallFunction/muSgsSpalartAllmarasWallFunctionFvPatchScalarField.C delete mode 100644 src/turbulenceModels/LES/compressible/derivedFvPatchFields/wallFunctions/muSgsWallFunctions/muSgsSpalartAllmarasWallFunction/muSgsSpalartAllmarasWallFunctionFvPatchScalarField.H delete mode 100644 src/turbulenceModels/LES/compressible/dynOneEqEddy/dynOneEqEddy.C delete mode 100644 src/turbulenceModels/LES/compressible/dynOneEqEddy/dynOneEqEddy.H delete mode 100644 src/turbulenceModels/LES/compressible/lowReOneEqEddy/lowReOneEqEddy.C delete mode 100644 src/turbulenceModels/LES/compressible/lowReOneEqEddy/lowReOneEqEddy.H delete mode 100644 src/turbulenceModels/LES/compressible/oneEqEddy/oneEqEddy.C delete mode 100644 src/turbulenceModels/LES/compressible/oneEqEddy/oneEqEddy.H delete mode 100644 src/turbulenceModels/LES/incompressible/DeardorffDiffStress/DeardorffDiffStress.C delete mode 100644 src/turbulenceModels/LES/incompressible/DeardorffDiffStress/DeardorffDiffStress.H delete mode 100644 src/turbulenceModels/LES/incompressible/GenEddyVisc/GenEddyVisc.C delete mode 100644 src/turbulenceModels/LES/incompressible/GenEddyVisc/GenEddyVisc.H delete mode 100644 src/turbulenceModels/LES/incompressible/GenSGSStress/GenSGSStress.C delete mode 100644 src/turbulenceModels/LES/incompressible/GenSGSStress/GenSGSStress.H delete mode 100644 src/turbulenceModels/LES/incompressible/LESModel/LESModel.C delete mode 100644 src/turbulenceModels/LES/incompressible/LESModel/LESModel.H delete mode 100644 src/turbulenceModels/LES/incompressible/LESModel/newLESModel.C delete mode 100644 src/turbulenceModels/LES/incompressible/LRRDiffStress/LRRDiffStress.C delete mode 100644 src/turbulenceModels/LES/incompressible/LRRDiffStress/LRRDiffStress.H delete mode 100644 src/turbulenceModels/LES/incompressible/Make/files delete mode 100644 src/turbulenceModels/LES/incompressible/Make/options delete mode 100644 src/turbulenceModels/LES/incompressible/Smagorinsky/Smagorinsky.C delete mode 100644 src/turbulenceModels/LES/incompressible/Smagorinsky/Smagorinsky.H delete mode 100644 src/turbulenceModels/LES/incompressible/Smagorinsky2/Smagorinsky2.C delete mode 100644 src/turbulenceModels/LES/incompressible/Smagorinsky2/Smagorinsky2.H delete mode 100644 src/turbulenceModels/LES/incompressible/SpalartAllmaras/SpalartAllmaras.C delete mode 100644 src/turbulenceModels/LES/incompressible/SpalartAllmaras/SpalartAllmaras.H delete mode 100644 src/turbulenceModels/LES/incompressible/SpalartAllmarasDDES/SpalartAllmarasDDES.C delete mode 100644 src/turbulenceModels/LES/incompressible/SpalartAllmarasDDES/SpalartAllmarasDDES.H delete mode 100644 src/turbulenceModels/LES/incompressible/SpalartAllmarasIDDES/IDDESDelta/IDDESDelta.C delete mode 100644 src/turbulenceModels/LES/incompressible/SpalartAllmarasIDDES/IDDESDelta/IDDESDelta.H delete mode 100644 src/turbulenceModels/LES/incompressible/SpalartAllmarasIDDES/SpalartAllmarasIDDES.C delete mode 100644 src/turbulenceModels/LES/incompressible/SpalartAllmarasIDDES/SpalartAllmarasIDDES.H delete mode 100644 src/turbulenceModels/LES/incompressible/derivedFvPatchFields/wallFunctions/nuSgsWallFunctions/nuSgsSpalartAllmarasWallFunction/nuSgsSpalartAllmarasWallFunctionFvPatchScalarField.C delete mode 100644 src/turbulenceModels/LES/incompressible/derivedFvPatchFields/wallFunctions/nuSgsWallFunctions/nuSgsSpalartAllmarasWallFunction/nuSgsSpalartAllmarasWallFunctionFvPatchScalarField.H delete mode 100644 src/turbulenceModels/LES/incompressible/dynMixedSmagorinsky/dynMixedSmagorinsky.C delete mode 100644 src/turbulenceModels/LES/incompressible/dynMixedSmagorinsky/dynMixedSmagorinsky.H delete mode 100644 src/turbulenceModels/LES/incompressible/dynOneEqEddy/dynOneEqEddy.C delete mode 100644 src/turbulenceModels/LES/incompressible/dynOneEqEddy/dynOneEqEddy.H delete mode 100644 src/turbulenceModels/LES/incompressible/dynSmagorinsky/dynSmagorinsky.C delete mode 100644 src/turbulenceModels/LES/incompressible/dynSmagorinsky/dynSmagorinsky.H delete mode 100644 src/turbulenceModels/LES/incompressible/kOmegaSSTSAS/kOmegaSSTSAS.C delete mode 100644 src/turbulenceModels/LES/incompressible/kOmegaSSTSAS/kOmegaSSTSAS.H delete mode 100644 src/turbulenceModels/LES/incompressible/laminar/laminar.C delete mode 100644 src/turbulenceModels/LES/incompressible/laminar/laminar.H delete mode 100644 src/turbulenceModels/LES/incompressible/locDynOneEqEddy/locDynOneEqEddy.C delete mode 100644 src/turbulenceModels/LES/incompressible/locDynOneEqEddy/locDynOneEqEddy.H delete mode 100644 src/turbulenceModels/LES/incompressible/mixedSmagorinsky/mixedSmagorinsky.C delete mode 100644 src/turbulenceModels/LES/incompressible/mixedSmagorinsky/mixedSmagorinsky.H delete mode 100644 src/turbulenceModels/LES/incompressible/oneEqEddy/oneEqEddy.C delete mode 100644 src/turbulenceModels/LES/incompressible/oneEqEddy/oneEqEddy.H delete mode 100644 src/turbulenceModels/LES/incompressible/scaleSimilarity/scaleSimilarity.C delete mode 100644 src/turbulenceModels/LES/incompressible/scaleSimilarity/scaleSimilarity.H delete mode 100644 src/turbulenceModels/LES/incompressible/spectEddyVisc/spectEddyVisc.C delete mode 100644 src/turbulenceModels/LES/incompressible/spectEddyVisc/spectEddyVisc.H delete mode 100644 src/turbulenceModels/LES/incompressible/vanDriestDelta/vanDriestDelta.C delete mode 100644 src/turbulenceModels/LES/incompressible/vanDriestDelta/vanDriestDelta.H delete mode 100755 src/turbulenceModels/RAS/Allwmake delete mode 100644 src/turbulenceModels/RAS/compressible/LRR/LRR.C delete mode 100644 src/turbulenceModels/RAS/compressible/LRR/LRR.H delete mode 100644 src/turbulenceModels/RAS/compressible/LaunderGibsonRSTM/LaunderGibsonRSTM.C delete mode 100644 src/turbulenceModels/RAS/compressible/LaunderGibsonRSTM/LaunderGibsonRSTM.H delete mode 100644 src/turbulenceModels/RAS/compressible/LaunderSharmaKE/LaunderSharmaKE.C delete mode 100644 src/turbulenceModels/RAS/compressible/LaunderSharmaKE/LaunderSharmaKE.H delete mode 100644 src/turbulenceModels/RAS/compressible/Make/files delete mode 100644 src/turbulenceModels/RAS/compressible/Make/options delete mode 100644 src/turbulenceModels/RAS/compressible/RASModel/RASModel.C delete mode 100644 src/turbulenceModels/RAS/compressible/RASModel/RASModel.H delete mode 100644 src/turbulenceModels/RAS/compressible/RASModel/newRASModel.C delete mode 100644 src/turbulenceModels/RAS/compressible/RNGkEpsilon/RNGkEpsilon.C delete mode 100644 src/turbulenceModels/RAS/compressible/RNGkEpsilon/RNGkEpsilon.H delete mode 100644 src/turbulenceModels/RAS/compressible/SpalartAllmaras/SpalartAllmaras.C delete mode 100644 src/turbulenceModels/RAS/compressible/SpalartAllmaras/SpalartAllmaras.H delete mode 100644 src/turbulenceModels/RAS/compressible/backwardsCompatibilityWallFunctions/backwardsCompatibilityWallFunctions.C delete mode 100644 src/turbulenceModels/RAS/compressible/backwardsCompatibilityWallFunctions/backwardsCompatibilityWallFunctions.H delete mode 100644 src/turbulenceModels/RAS/compressible/backwardsCompatibilityWallFunctions/backwardsCompatibilityWallFunctionsTemplates.C delete mode 100644 src/turbulenceModels/RAS/compressible/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C delete mode 100644 src/turbulenceModels/RAS/compressible/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.H delete mode 100644 src/turbulenceModels/RAS/compressible/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.C delete mode 100644 src/turbulenceModels/RAS/compressible/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.H delete mode 100644 src/turbulenceModels/RAS/compressible/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.C delete mode 100644 src/turbulenceModels/RAS/compressible/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.H delete mode 100644 src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.C delete mode 100644 src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.H delete mode 100644 src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.C delete mode 100644 src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H delete mode 100644 src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchField.C delete mode 100644 src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchField.H delete mode 100644 src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchFields.C delete mode 100644 src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchFields.H delete mode 100644 src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutRoughWallFunction/mutRoughWallFunctionFvPatchScalarField.C delete mode 100644 src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutRoughWallFunction/mutRoughWallFunctionFvPatchScalarField.H delete mode 100644 src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardRoughWallFunction/mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.C delete mode 100644 src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardRoughWallFunction/mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.H delete mode 100644 src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardWallFunction/mutSpalartAllmarasStandardWallFunctionFvPatchScalarField.C delete mode 100644 src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardWallFunction/mutSpalartAllmarasStandardWallFunctionFvPatchScalarField.H delete mode 100644 src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasWallFunction/mutSpalartAllmarasWallFunctionFvPatchScalarField.C delete mode 100644 src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasWallFunction/mutSpalartAllmarasWallFunctionFvPatchScalarField.H delete mode 100644 src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutWallFunction/mutWallFunctionFvPatchScalarField.C delete mode 100644 src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutWallFunction/mutWallFunctionFvPatchScalarField.H delete mode 100644 src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.C delete mode 100644 src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H delete mode 100644 src/turbulenceModels/RAS/compressible/include/wallDissipationI.H delete mode 100644 src/turbulenceModels/RAS/compressible/include/wallFunctionsI.H delete mode 100644 src/turbulenceModels/RAS/compressible/include/wallViscosityI.H delete mode 100644 src/turbulenceModels/RAS/compressible/kEpsilon/kEpsilon.C delete mode 100644 src/turbulenceModels/RAS/compressible/kEpsilon/kEpsilon.H delete mode 100644 src/turbulenceModels/RAS/compressible/kOmegaSST/kOmegaSST.C delete mode 100644 src/turbulenceModels/RAS/compressible/kOmegaSST/kOmegaSST.H delete mode 100644 src/turbulenceModels/RAS/compressible/laminar/laminar.C delete mode 100644 src/turbulenceModels/RAS/compressible/laminar/laminar.H delete mode 100644 src/turbulenceModels/RAS/compressible/realizableKE/realizableKE.C delete mode 100644 src/turbulenceModels/RAS/compressible/realizableKE/realizableKE.H delete mode 100644 src/turbulenceModels/RAS/incompressible/LRR/LRR.C delete mode 100644 src/turbulenceModels/RAS/incompressible/LRR/LRR.H delete mode 100644 src/turbulenceModels/RAS/incompressible/LamBremhorstKE/LamBremhorstKE.C delete mode 100644 src/turbulenceModels/RAS/incompressible/LamBremhorstKE/LamBremhorstKE.H delete mode 100644 src/turbulenceModels/RAS/incompressible/LaunderGibsonRSTM/LaunderGibsonRSTM.C delete mode 100644 src/turbulenceModels/RAS/incompressible/LaunderGibsonRSTM/LaunderGibsonRSTM.H delete mode 100644 src/turbulenceModels/RAS/incompressible/LaunderSharmaKE/LaunderSharmaKE.C delete mode 100644 src/turbulenceModels/RAS/incompressible/LaunderSharmaKE/LaunderSharmaKE.H delete mode 100644 src/turbulenceModels/RAS/incompressible/LienCubicKE/LienCubicKE.C delete mode 100644 src/turbulenceModels/RAS/incompressible/LienCubicKE/LienCubicKE.H delete mode 100644 src/turbulenceModels/RAS/incompressible/LienCubicKELowRe/LienCubicKELowRe.C delete mode 100644 src/turbulenceModels/RAS/incompressible/LienCubicKELowRe/LienCubicKELowRe.H delete mode 100644 src/turbulenceModels/RAS/incompressible/LienCubicKELowRe/LienCubicKELowReSetWallDissipation.H delete mode 100644 src/turbulenceModels/RAS/incompressible/LienLeschzinerLowRe/LienLeschzinerLowRe.C delete mode 100644 src/turbulenceModels/RAS/incompressible/LienLeschzinerLowRe/LienLeschzinerLowRe.H delete mode 100644 src/turbulenceModels/RAS/incompressible/LienLeschzinerLowRe/LienLeschzinerLowReSetWallDissipation.H delete mode 100644 src/turbulenceModels/RAS/incompressible/Make/files delete mode 100644 src/turbulenceModels/RAS/incompressible/Make/options delete mode 100644 src/turbulenceModels/RAS/incompressible/NonlinearKEShih/NonlinearKEShih.C delete mode 100644 src/turbulenceModels/RAS/incompressible/NonlinearKEShih/NonlinearKEShih.H delete mode 100644 src/turbulenceModels/RAS/incompressible/QZeta/QZeta.C delete mode 100644 src/turbulenceModels/RAS/incompressible/QZeta/QZeta.H delete mode 100644 src/turbulenceModels/RAS/incompressible/RASModel/RASModel.C delete mode 100644 src/turbulenceModels/RAS/incompressible/RASModel/RASModel.H delete mode 100644 src/turbulenceModels/RAS/incompressible/RASModel/newRASModel.C delete mode 100644 src/turbulenceModels/RAS/incompressible/RNGkEpsilon/RNGkEpsilon.C delete mode 100644 src/turbulenceModels/RAS/incompressible/RNGkEpsilon/RNGkEpsilon.H delete mode 100644 src/turbulenceModels/RAS/incompressible/SpalartAllmaras/SpalartAllmaras.C delete mode 100644 src/turbulenceModels/RAS/incompressible/SpalartAllmaras/SpalartAllmaras.H delete mode 100644 src/turbulenceModels/RAS/incompressible/backwardsCompatibilityWallFunctions/backwardsCompatibilityWallFunctions.C delete mode 100644 src/turbulenceModels/RAS/incompressible/backwardsCompatibilityWallFunctions/backwardsCompatibilityWallFunctions.H delete mode 100644 src/turbulenceModels/RAS/incompressible/backwardsCompatibilityWallFunctions/backwardsCompatibilityWallFunctionsTemplates.C delete mode 100644 src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C delete mode 100644 src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.H delete mode 100644 src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.C delete mode 100644 src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.H delete mode 100644 src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.C delete mode 100644 src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.H delete mode 100644 src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.C delete mode 100644 src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H delete mode 100644 src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchField.C delete mode 100644 src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchField.H delete mode 100644 src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchFields.C delete mode 100644 src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchFields.H delete mode 100644 src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutRoughWallFunction/nutRoughWallFunctionFvPatchScalarField.C delete mode 100644 src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutRoughWallFunction/nutRoughWallFunctionFvPatchScalarField.H delete mode 100644 src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardRoughWallFunction/nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.C delete mode 100644 src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardRoughWallFunction/nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.H delete mode 100644 src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardWallFunction/nutSpalartAllmarasStandardWallFunctionFvPatchScalarField.C delete mode 100644 src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardWallFunction/nutSpalartAllmarasStandardWallFunctionFvPatchScalarField.H delete mode 100644 src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasWallFunction/nutSpalartAllmarasWallFunctionFvPatchScalarField.C delete mode 100644 src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasWallFunction/nutSpalartAllmarasWallFunctionFvPatchScalarField.H delete mode 100644 src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.C delete mode 100644 src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.H delete mode 100644 src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.C delete mode 100644 src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H delete mode 100644 src/turbulenceModels/RAS/incompressible/include/nonLinearWallFunctionsI.H delete mode 100644 src/turbulenceModels/RAS/incompressible/include/wallDissipationI.H delete mode 100644 src/turbulenceModels/RAS/incompressible/include/wallFunctionsI.H.old delete mode 100644 src/turbulenceModels/RAS/incompressible/include/wallNonlinearViscosityI.H delete mode 100644 src/turbulenceModels/RAS/incompressible/include/wallViscosityI.H.old delete mode 100644 src/turbulenceModels/RAS/incompressible/kEpsilon/kEpsilon.C delete mode 100644 src/turbulenceModels/RAS/incompressible/kEpsilon/kEpsilon.H delete mode 100644 src/turbulenceModels/RAS/incompressible/kOmega/kOmega.C delete mode 100644 src/turbulenceModels/RAS/incompressible/kOmega/kOmega.H delete mode 100644 src/turbulenceModels/RAS/incompressible/kOmegaSST/kOmegaSST.C delete mode 100644 src/turbulenceModels/RAS/incompressible/kOmegaSST/kOmegaSST.H delete mode 100644 src/turbulenceModels/RAS/incompressible/laminar/laminar.C delete mode 100644 src/turbulenceModels/RAS/incompressible/laminar/laminar.H delete mode 100644 src/turbulenceModels/RAS/incompressible/realizableKE/realizableKE.C delete mode 100644 src/turbulenceModels/RAS/incompressible/realizableKE/realizableKE.H delete mode 100644 tutorials/interFoam/damBreak/0/gamma delete mode 100644 tutorials/interFoam/damBreak/0/gamma.org delete mode 100644 tutorials/lesInterFoam/nozzleFlow2D/0/B delete mode 100644 tutorials/lesInterFoam/nozzleFlow2D/0/U delete mode 100644 tutorials/lesInterFoam/nozzleFlow2D/0/data/Ubulk delete mode 100644 tutorials/lesInterFoam/nozzleFlow2D/0/data/ptrace delete mode 100644 tutorials/lesInterFoam/nozzleFlow2D/0/gamma delete mode 100644 tutorials/lesInterFoam/nozzleFlow2D/0/k delete mode 100644 tutorials/lesInterFoam/nozzleFlow2D/0/nuSgs delete mode 100644 tutorials/lesInterFoam/nozzleFlow2D/0/nuTilda delete mode 100644 tutorials/lesInterFoam/nozzleFlow2D/0/pd delete mode 100755 tutorials/lesInterFoam/nozzleFlow2D/Allclean delete mode 100755 tutorials/lesInterFoam/nozzleFlow2D/Allrun delete mode 100644 tutorials/lesInterFoam/nozzleFlow2D/constant/LESProperties delete mode 100644 tutorials/lesInterFoam/nozzleFlow2D/constant/environmentalProperties delete mode 100644 tutorials/lesInterFoam/nozzleFlow2D/constant/polyMesh/blockMeshDict delete mode 100644 tutorials/lesInterFoam/nozzleFlow2D/constant/polyMesh/boundary delete mode 100644 tutorials/lesInterFoam/nozzleFlow2D/constant/polyMesh/boundary.org delete mode 100644 tutorials/lesInterFoam/nozzleFlow2D/constant/polyMesh/sets/c0 delete mode 100644 tutorials/lesInterFoam/nozzleFlow2D/constant/polyMesh/sets/c0_old delete mode 100644 tutorials/lesInterFoam/nozzleFlow2D/constant/polyMesh/sets/refinedCells delete mode 100644 tutorials/lesInterFoam/nozzleFlow2D/constant/transportProperties delete mode 100644 tutorials/lesInterFoam/nozzleFlow2D/system/cellSetDict delete mode 100644 tutorials/lesInterFoam/nozzleFlow2D/system/cellSetDict.1 delete mode 100644 tutorials/lesInterFoam/nozzleFlow2D/system/cellSetDict.2 delete mode 100644 tutorials/lesInterFoam/nozzleFlow2D/system/controlDict delete mode 100644 tutorials/lesInterFoam/nozzleFlow2D/system/fvSchemes delete mode 100644 tutorials/lesInterFoam/nozzleFlow2D/system/fvSolution delete mode 100644 tutorials/lesInterFoam/nozzleFlow2D/system/refineMeshDict diff --git a/applications/solvers/incompressible/boundaryFoam/Make/options b/applications/solvers/incompressible/boundaryFoam/Make/options index 835189da6d1..e7594d177fc 100644 --- a/applications/solvers/incompressible/boundaryFoam/Make/options +++ b/applications/solvers/incompressible/boundaryFoam/Make/options @@ -1,7 +1,9 @@ EXE_INC = \ - -I$(LIB_SRC)/finiteVolume/lnInclude \ - -I$(LIB_SRC)/turbulenceModels/RAS \ + -I$(LIB_SRC)/turbulenceModels/incompressible/turbulenceModel \ + -I$(LIB_SRC)/turbulenceModels/incompressible/RAS/RASModel \ -I$(LIB_SRC)/transportModels \ + -I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \ + -I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/sampling/lnInclude EXE_LIBS = \ diff --git a/applications/solvers/incompressible/boundaryFoam/boundaryFoam.C b/applications/solvers/incompressible/boundaryFoam/boundaryFoam.C index 19933091a05..4ab797dc20e 100644 --- a/applications/solvers/incompressible/boundaryFoam/boundaryFoam.C +++ b/applications/solvers/incompressible/boundaryFoam/boundaryFoam.C @@ -37,8 +37,8 @@ Description \*---------------------------------------------------------------------------*/ #include "fvCFD.H" -#include "incompressible/singlePhaseTransportModel/singlePhaseTransportModel.H" -#include "incompressible/RASModel/RASModel.H" +#include "singlePhaseTransportModel.H" +#include "RASModel.H" #include "wallFvPatch.H" #include "makeGraph.H" diff --git a/applications/solvers/incompressible/channelOodles/Make/files b/applications/solvers/incompressible/channelOodles/Make/files deleted file mode 100644 index 62d07197902..00000000000 --- a/applications/solvers/incompressible/channelOodles/Make/files +++ /dev/null @@ -1,3 +0,0 @@ -channelOodles.C - -EXE = $(FOAM_APPBIN)/channelOodles diff --git a/applications/solvers/incompressible/channelOodles/Make/options b/applications/solvers/incompressible/channelOodles/Make/options deleted file mode 100644 index 7f55ccc3ed7..00000000000 --- a/applications/solvers/incompressible/channelOodles/Make/options +++ /dev/null @@ -1,13 +0,0 @@ -EXE_INC = \ - -I$(LIB_SRC)/turbulenceModels/LES \ - -I$(LIB_SRC)/turbulenceModels/LES/LESdeltas/lnInclude \ - -I$(LIB_SRC)/transportModels \ - -I$(LIB_SRC)/finiteVolume/lnInclude \ - -I$(LIB_SRC)/sampling/lnInclude \ - -I../oodles - -EXE_LIBS = \ - -lincompressibleLESModels \ - -lincompressibleTransportModels \ - -lfiniteVolume \ - -lmeshTools diff --git a/applications/solvers/incompressible/channelOodles/channelOodles.C b/applications/solvers/incompressible/channelOodles/channelOodles.C deleted file mode 100644 index 00be546b6ec..00000000000 --- a/applications/solvers/incompressible/channelOodles/channelOodles.C +++ /dev/null @@ -1,155 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Application - oodles - -Description - Incompressible LES solver for flow in a channel. - -\*---------------------------------------------------------------------------*/ - -#include "fvCFD.H" -#include "incompressible/singlePhaseTransportModel/singlePhaseTransportModel.H" -#include "incompressible/LESModel/LESModel.H" -#include "IFstream.H" -#include "OFstream.H" -#include "Random.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -int main(int argc, char *argv[]) -{ - #include "setRootCase.H" - #include "createTime.H" - #include "createMesh.H" - #include "readTransportProperties.H" - #include "createFields.H" - #include "initContinuityErrs.H" - #include "createGradP.H" - - Info<< "\nStarting time loop\n" << endl; - - for(runTime++; !runTime.end(); runTime++) - { - Info<< "Time = " << runTime.timeName() << nl << endl; - - #include "readPISOControls.H" - - #include "CourantNo.H" - - sgsModel->correct(); - - fvVectorMatrix UEqn - ( - fvm::ddt(U) - + fvm::div(phi, U) - + sgsModel->divDevBeff(U) - == - flowDirection*gradP - ); - - if (momentumPredictor) - { - solve(UEqn == -fvc::grad(p)); - } - - - // --- PISO loop - - volScalarField rUA = 1.0/UEqn.A(); - - for (int corr=0; corr<nCorr; corr++) - { - U = rUA*UEqn.H(); - phi = (fvc::interpolate(U) & mesh.Sf()) - + fvc::ddtPhiCorr(rUA, U, phi); - - adjustPhi(phi, U, p); - - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) - { - fvScalarMatrix pEqn - ( - fvm::laplacian(rUA, p) == fvc::div(phi) - ); - - pEqn.setReference(pRefCell, pRefValue); - - if (corr == nCorr-1 && nonOrth == nNonOrthCorr) - { - pEqn.solve(mesh.solver(p.name() + "Final")); - } - else - { - pEqn.solve(mesh.solver(p.name())); - } - - if (nonOrth == nNonOrthCorr) - { - phi -= pEqn.flux(); - } - } - - #include "continuityErrs.H" - - U -= rUA*fvc::grad(p); - U.correctBoundaryConditions(); - } - - - // Correct driving force for a constant mass flow rate - - // Extract the velocity in the flow direction - dimensionedScalar magUbarStar = - (flowDirection & U)().weightedAverage(mesh.V()); - - // Calculate the pressure gradient increment needed to - // adjust the average flow-rate to the correct value - dimensionedScalar gragPplus = - (magUbar - magUbarStar)/rUA.weightedAverage(mesh.V()); - - U += flowDirection*rUA*gragPplus; - - gradP += gragPplus; - - Info<< "Uncorrected Ubar = " << magUbarStar.value() << tab - << "pressure gradient = " << gradP.value() << endl; - - runTime.write(); - - #include "writeGradP.H" - - Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" - << " ClockTime = " << runTime.elapsedClockTime() << " s" - << nl << endl; - } - - Info<< "End\n" << endl; - - return(0); -} - - -// ************************************************************************* // diff --git a/applications/solvers/incompressible/channelOodles/createFields.H b/applications/solvers/incompressible/channelOodles/createFields.H deleted file mode 100644 index 7099762cc2f..00000000000 --- a/applications/solvers/incompressible/channelOodles/createFields.H +++ /dev/null @@ -1,43 +0,0 @@ - Info<< "Reading field p\n" << endl; - volScalarField p - ( - IOobject - ( - "p", - runTime.timeName(), - mesh, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh - ); - - - Info<< "Reading field U\n" << endl; - volVectorField U - ( - IOobject - ( - "U", - runTime.timeName(), - mesh, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh - ); - -# include "createPhi.H" - - - label pRefCell = 0; - scalar pRefValue = 0.0; - setRefCell(p, mesh.solutionDict().subDict("PISO"), pRefCell, pRefValue); - - - singlePhaseTransportModel laminarTransport(U, phi); - - autoPtr<incompressible::LESModel> sgsModel - ( - incompressible::LESModel::New(U, phi, laminarTransport) - ); diff --git a/applications/solvers/incompressible/channelOodles/createGradP.H b/applications/solvers/incompressible/channelOodles/createGradP.H deleted file mode 100644 index 9bb9bb0ba28..00000000000 --- a/applications/solvers/incompressible/channelOodles/createGradP.H +++ /dev/null @@ -1,24 +0,0 @@ - dimensionedScalar gradP - ( - "gradP", - dimensionSet(0, 1, -2, 0, 0), - 0.0 - ); - - - IFstream gradPFile - ( - runTime.path()/runTime.timeName()/"uniform"/"gradP.raw" - ); - - if(gradPFile.good()) - { - gradPFile >> gradP; - Info<< "Reading average pressure gradient" <<endl - << endl; - } - else - { - Info<< "Initializing with 0 pressure gradient" <<endl - << endl; - }; diff --git a/applications/solvers/incompressible/channelOodles/readTransportProperties.H b/applications/solvers/incompressible/channelOodles/readTransportProperties.H deleted file mode 100644 index c99d0ae4b5b..00000000000 --- a/applications/solvers/incompressible/channelOodles/readTransportProperties.H +++ /dev/null @@ -1,28 +0,0 @@ - Info<< "\nReading transportProperties\n" << endl; - IOdictionary transportProperties - ( - IOobject - ( - "transportProperties", - runTime.constant(), - mesh, - IOobject::MUST_READ, - IOobject::NO_WRITE - ) - ); - - - dimensionedScalar nu - ( - transportProperties.lookup("nu") - ); - - - // Read centerline velocity for channel simulations - dimensionedVector Ubar - ( - transportProperties.lookup("Ubar") - ); - - dimensionedScalar magUbar = mag(Ubar); - vector flowDirection = (Ubar/magUbar).value(); diff --git a/applications/solvers/incompressible/channelOodles/writeGradP.H b/applications/solvers/incompressible/channelOodles/writeGradP.H deleted file mode 100644 index c82dd534740..00000000000 --- a/applications/solvers/incompressible/channelOodles/writeGradP.H +++ /dev/null @@ -1,19 +0,0 @@ - if (runTime.outputTime()) - { - OFstream gradPFile - ( - runTime.path()/runTime.timeName()/"uniform"/"gradP.raw" - ); - - if(gradPFile.good()) - { - gradPFile << gradP << endl; - } - else - { - FatalErrorIn(args.executable()) - << "Cannot open file " - << runTime.path()/runTime.timeName()/"uniform"/"gradP.raw" - << exit(FatalError); - }; - }; diff --git a/applications/solvers/incompressible/icoDyMFoam/Make/files b/applications/solvers/incompressible/icoDyMFoam/Make/files deleted file mode 100644 index 22873bb943a..00000000000 --- a/applications/solvers/incompressible/icoDyMFoam/Make/files +++ /dev/null @@ -1,3 +0,0 @@ -icoDyMFoam.C - -EXE = $(FOAM_APPBIN)/icoDyMFoam diff --git a/applications/solvers/incompressible/icoDyMFoam/Make/options b/applications/solvers/incompressible/icoDyMFoam/Make/options deleted file mode 100644 index aa1b2f2b09f..00000000000 --- a/applications/solvers/incompressible/icoDyMFoam/Make/options +++ /dev/null @@ -1,11 +0,0 @@ -EXE_INC = \ - -I$(LIB_SRC)/dynamicFvMesh/lnInclude \ - -I$(LIB_SRC)/dynamicMesh/lnInclude \ - -I$(LIB_SRC)/meshTools/lnInclude \ - -I$(LIB_SRC)/finiteVolume/lnInclude - -EXE_LIBS = \ - -ldynamicFvMesh \ - -ldynamicMesh \ - -lmeshTools \ - -lfiniteVolume diff --git a/applications/solvers/incompressible/icoDyMFoam/UEqn.H b/applications/solvers/incompressible/icoDyMFoam/UEqn.H deleted file mode 100644 index 8ca5f83e4a3..00000000000 --- a/applications/solvers/incompressible/icoDyMFoam/UEqn.H +++ /dev/null @@ -1,16 +0,0 @@ - fvVectorMatrix UEqn - ( - fvm::ddt(U) - + fvm::div(phi, U) - - fvm::laplacian(nu, U) - ); - - if (ocorr != nOuterCorr-1) - { - UEqn.relax(); - } - - if (momentumPredictor) - { - solve(UEqn == -fvc::grad(p)); - } diff --git a/applications/solvers/incompressible/icoDyMFoam/checkTotalVolume.H b/applications/solvers/incompressible/icoDyMFoam/checkTotalVolume.H deleted file mode 100644 index 1ee1e84fd11..00000000000 --- a/applications/solvers/incompressible/icoDyMFoam/checkTotalVolume.H +++ /dev/null @@ -1,6 +0,0 @@ - scalar newTotalVolume = sum(mesh.V()); - scalar totalVolRatio = newTotalVolume/totalVolume; - - Info << "Total volume change: " << totalVolRatio - 1 << endl; - - totalVolume = newTotalVolume; diff --git a/applications/solvers/incompressible/icoDyMFoam/correctPhi.H b/applications/solvers/incompressible/icoDyMFoam/correctPhi.H deleted file mode 100644 index 493c4e09297..00000000000 --- a/applications/solvers/incompressible/icoDyMFoam/correctPhi.H +++ /dev/null @@ -1,44 +0,0 @@ -{ - wordList pcorrTypes(p.boundaryField().types()); - - for (label i=0; i<p.boundaryField().size(); i++) - { - if(p.boundaryField()[i].fixesValue()) - { - pcorrTypes[i] = fixedValueFvPatchScalarField::typeName; - } - } - - volScalarField pcorr - ( - IOobject - ( - "pcorr", - runTime.timeName(), - mesh, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh, - dimensionedScalar("pcorr", p.dimensions(), 0.0), - pcorrTypes - ); - - for(int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) - { - fvScalarMatrix pcorrEqn - ( - fvm::laplacian(rAU, pcorr) == fvc::div(phi) - ); - - pcorrEqn.setReference(pRefCell, pRefValue); - pcorrEqn.solve(); - - if (nonOrth == nNonOrthCorr) - { - phi -= pcorrEqn.flux(); - } - } -} - -#include "continuityErrs.H" diff --git a/applications/solvers/incompressible/icoDyMFoam/createFields.H b/applications/solvers/incompressible/icoDyMFoam/createFields.H deleted file mode 100644 index b5368ae1388..00000000000 --- a/applications/solvers/incompressible/icoDyMFoam/createFields.H +++ /dev/null @@ -1,72 +0,0 @@ - Info<< "Reading transportProperties\n" << endl; - - IOdictionary transportProperties - ( - IOobject - ( - "transportProperties", - runTime.constant(), - mesh, - IOobject::MUST_READ, - IOobject::NO_WRITE - ) - ); - - dimensionedScalar nu - ( - transportProperties.lookup("nu") - ); - - - Info<< "Reading field p\n" << endl; - volScalarField p - ( - IOobject - ( - "p", - runTime.timeName(), - mesh, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh - ); - - - Info<< "Reading field U\n" << endl; - volVectorField U - ( - IOobject - ( - "U", - runTime.timeName(), - mesh, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh - ); - -# include "createPhi.H" - - - label pRefCell = 0; - scalar pRefValue = 0.0; - setRefCell(p, mesh.solutionDict().subDict("PISO"), pRefCell, pRefValue); - - - Info<< "Reading field rAU if present\n" << endl; - volScalarField rAU - ( - IOobject - ( - "rAU", - runTime.timeName(), - mesh, - IOobject::READ_IF_PRESENT, - IOobject::AUTO_WRITE - ), - mesh, - runTime.deltaT(), - zeroGradientFvPatchScalarField::typeName - ); diff --git a/applications/solvers/incompressible/icoDyMFoam/icoDyMFoam.C b/applications/solvers/incompressible/icoDyMFoam/icoDyMFoam.C deleted file mode 100644 index f34843f1ba2..00000000000 --- a/applications/solvers/incompressible/icoDyMFoam/icoDyMFoam.C +++ /dev/null @@ -1,159 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Application - icoDyMFoam - -Description - Transient solver for incompressible, laminar flow of Newtonian fluids - with moving mesh. - -\*---------------------------------------------------------------------------*/ - -#include "fvCFD.H" -#include "dynamicFvMesh.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -int main(int argc, char *argv[]) -{ - -# include "setRootCase.H" - -# include "createTime.H" -# include "createDynamicFvMesh.H" -# include "readPISOControls.H" -# include "initContinuityErrs.H" -# include "createFields.H" -# include "readTimeControls.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - - Info<< "\nStarting time loop\n" << endl; - - while (runTime.run()) - { -# include "readControls.H" -# include "CourantNo.H" - - // Make the fluxes absolute - fvc::makeAbsolute(phi, U); - -# include "setDeltaT.H" - - runTime++; - - Info<< "Time = " << runTime.timeName() << nl << endl; - - mesh.update(); - - if (mesh.changing() && correctPhi) - { -# include "correctPhi.H" - } - - // Make the fluxes relative to the mesh motion - fvc::makeRelative(phi, U); - - if (mesh.changing() && checkMeshCourantNo) - { -# include "meshCourantNo.H" - } - - // --- PIMPLE loop - for (int ocorr=0; ocorr<nOuterCorr; ocorr++) - { - p.storePrevIter(); - -# include "UEqn.H" - - // --- PISO loop - for (int corr=0; corr<nCorr; corr++) - { - rAU = 1.0/UEqn.A(); - - U = rAU*UEqn.H(); - phi = (fvc::interpolate(U) & mesh.Sf()); - - if (p.needReference()) - { - fvc::makeRelative(phi, U); - adjustPhi(phi, U, p); - fvc::makeAbsolute(phi, U); - } - - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) - { - fvScalarMatrix pEqn - ( - fvm::laplacian(rAU, p) == fvc::div(phi) - ); - - pEqn.setReference(pRefCell, pRefValue); - - if (corr == nCorr-1 && nonOrth == nNonOrthCorr) - { - pEqn.solve(mesh.solver(p.name() + "Final")); - } - else - { - pEqn.solve(mesh.solver(p.name())); - } - - if (nonOrth == nNonOrthCorr) - { - phi -= pEqn.flux(); - } - } - -# include "continuityErrs.H" - - // Explicitly relax pressure for momentum corrector - if (ocorr != nOuterCorr-1) - { - p.relax(); - } - - // Make the fluxes relative to the mesh motion - fvc::makeRelative(phi, U); - - U -= rAU*fvc::grad(p); - U.correctBoundaryConditions(); - } - } - - runTime.write(); - - Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" - << " ClockTime = " << runTime.elapsedClockTime() << " s" - << nl << endl; - } - - Info<< "End\n" << endl; - - return(0); -} - - -// ************************************************************************* // diff --git a/applications/solvers/incompressible/icoDyMFoam/readControls.H b/applications/solvers/incompressible/icoDyMFoam/readControls.H deleted file mode 100644 index 9336616a1be..00000000000 --- a/applications/solvers/incompressible/icoDyMFoam/readControls.H +++ /dev/null @@ -1,14 +0,0 @@ -# include "readTimeControls.H" -# include "readPISOControls.H" - - bool correctPhi = false; - if (piso.found("correctPhi")) - { - correctPhi = Switch(piso.lookup("correctPhi")); - } - - bool checkMeshCourantNo = false; - if (piso.found("checkMeshCourantNo")) - { - checkMeshCourantNo = Switch(piso.lookup("checkMeshCourantNo")); - } diff --git a/applications/solvers/incompressible/nonNewtonianIcoFoam/Make/options b/applications/solvers/incompressible/nonNewtonianIcoFoam/Make/options index 2c8c1447c31..8dbc9ba286f 100644 --- a/applications/solvers/incompressible/nonNewtonianIcoFoam/Make/options +++ b/applications/solvers/incompressible/nonNewtonianIcoFoam/Make/options @@ -1,6 +1,7 @@ EXE_INC = \ -I$(LIB_SRC)/finiteVolume/lnInclude \ - -I$(LIB_SRC)/transportModels + -I$(LIB_SRC)/transportModels \ + -I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel EXE_LIBS = \ -lfiniteVolume \ diff --git a/applications/solvers/incompressible/nonNewtonianIcoFoam/nonNewtonianIcoFoam.C b/applications/solvers/incompressible/nonNewtonianIcoFoam/nonNewtonianIcoFoam.C index 0f236a90174..db6342297ad 100644 --- a/applications/solvers/incompressible/nonNewtonianIcoFoam/nonNewtonianIcoFoam.C +++ b/applications/solvers/incompressible/nonNewtonianIcoFoam/nonNewtonianIcoFoam.C @@ -31,7 +31,7 @@ Description \*---------------------------------------------------------------------------*/ #include "fvCFD.H" -#include "incompressible/singlePhaseTransportModel/singlePhaseTransportModel.H" +#include "singlePhaseTransportModel.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/applications/solvers/incompressible/oodles/Make/files b/applications/solvers/incompressible/oodles/Make/files deleted file mode 100644 index a395950ae5b..00000000000 --- a/applications/solvers/incompressible/oodles/Make/files +++ /dev/null @@ -1,3 +0,0 @@ -oodles.C - -EXE = $(FOAM_APPBIN)/oodles diff --git a/applications/solvers/incompressible/oodles/Make/options b/applications/solvers/incompressible/oodles/Make/options deleted file mode 100644 index dd71fa8e53a..00000000000 --- a/applications/solvers/incompressible/oodles/Make/options +++ /dev/null @@ -1,13 +0,0 @@ -EXE_INC = \ - -I$(LIB_SRC)/turbulenceModels/LES \ - -I$(LIB_SRC)/turbulenceModels/LES/LESdeltas/lnInclude \ - -I$(LIB_SRC)/transportModels \ - -I$(LIB_SRC)/finiteVolume/lnInclude \ - -I$(LIB_SRC)/meshTools/lnInclude \ - -I$(LIB_SRC)/sampling/lnInclude - -EXE_LIBS = \ - -lincompressibleLESModels \ - -lincompressibleTransportModels \ - -lfiniteVolume \ - -lmeshTools diff --git a/applications/solvers/incompressible/oodles/createFields.H b/applications/solvers/incompressible/oodles/createFields.H deleted file mode 100644 index 7099762cc2f..00000000000 --- a/applications/solvers/incompressible/oodles/createFields.H +++ /dev/null @@ -1,43 +0,0 @@ - Info<< "Reading field p\n" << endl; - volScalarField p - ( - IOobject - ( - "p", - runTime.timeName(), - mesh, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh - ); - - - Info<< "Reading field U\n" << endl; - volVectorField U - ( - IOobject - ( - "U", - runTime.timeName(), - mesh, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh - ); - -# include "createPhi.H" - - - label pRefCell = 0; - scalar pRefValue = 0.0; - setRefCell(p, mesh.solutionDict().subDict("PISO"), pRefCell, pRefValue); - - - singlePhaseTransportModel laminarTransport(U, phi); - - autoPtr<incompressible::LESModel> sgsModel - ( - incompressible::LESModel::New(U, phi, laminarTransport) - ); diff --git a/applications/solvers/incompressible/oodles/oodles.C b/applications/solvers/incompressible/oodles/oodles.C deleted file mode 100644 index 0714bf85156..00000000000 --- a/applications/solvers/incompressible/oodles/oodles.C +++ /dev/null @@ -1,128 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Application - oodles - -Description - Incompressible LES solver. - -\*---------------------------------------------------------------------------*/ - -#include "fvCFD.H" -#include "incompressible/singlePhaseTransportModel/singlePhaseTransportModel.H" -#include "incompressible/transportModel/transportModel.H" -#include "incompressible/LESModel/LESModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -int main(int argc, char *argv[]) -{ - #include "setRootCase.H" - #include "createTime.H" - #include "createMeshNoClear.H" - #include "createFields.H" - #include "initContinuityErrs.H" - - Info<< "\nStarting time loop\n" << endl; - - for (runTime++; !runTime.end(); runTime++) - { - Info<< "Time = " << runTime.timeName() << nl << endl; - - #include "readPISOControls.H" - #include "CourantNo.H" - - sgsModel->correct(); - - fvVectorMatrix UEqn - ( - fvm::ddt(U) - + fvm::div(phi, U) - + sgsModel->divDevBeff(U) - ); - - // Optionally ensure diagonal-dominance of the momentum matrix - UEqn.relax(); - - if (momentumPredictor) - { - solve(UEqn == -fvc::grad(p)); - } - - // --- PISO loop - for (int corr=0; corr<nCorr; corr++) - { - volScalarField rUA = 1.0/UEqn.A(); - - U = rUA*UEqn.H(); - phi = (fvc::interpolate(U) & mesh.Sf()) - + fvc::ddtPhiCorr(rUA, U, phi); - - adjustPhi(phi, U, p); - - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) - { - fvScalarMatrix pEqn - ( - fvm::laplacian(rUA, p) == fvc::div(phi) - ); - - pEqn.setReference(pRefCell, pRefValue); - - if (corr == nCorr-1 && nonOrth == nNonOrthCorr) - { - pEqn.solve(mesh.solver(p.name() + "Final")); - } - else - { - pEqn.solve(mesh.solver(p.name())); - } - - if (nonOrth == nNonOrthCorr) - { - phi -= pEqn.flux(); - } - } - - #include "continuityErrs.H" - - U -= rUA*fvc::grad(p); - U.correctBoundaryConditions(); - } - - runTime.write(); - - Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" - << " ClockTime = " << runTime.elapsedClockTime() << " s" - << nl << endl; - } - - Info<< "End\n" << endl; - - return(0); -} - - -// ************************************************************************* // diff --git a/applications/solvers/incompressible/pimpleFoam/Make/options b/applications/solvers/incompressible/pimpleFoam/Make/options index 8a31f7e5abb..d0e8dd740d8 100644 --- a/applications/solvers/incompressible/pimpleFoam/Make/options +++ b/applications/solvers/incompressible/pimpleFoam/Make/options @@ -1,10 +1,12 @@ EXE_INC = \ - -I$(LIB_SRC)/finiteVolume/lnInclude \ - -I$(LIB_SRC)/turbulenceModels/RAS \ - -I$(LIB_SRC)/transportModels + -I$(LIB_SRC)/turbulenceModels/incompressible/turbulenceModel \ + -I$(LIB_SRC)/transportModels \ + -I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \ + -I$(LIB_SRC)/finiteVolume/lnInclude EXE_LIBS = \ - -lincompressibleRASModels \ -lincompressibleTransportModels \ + -lincompressibleRASModels \ + -lincompressibleLESModels \ -lfiniteVolume \ -lmeshTools diff --git a/applications/solvers/incompressible/pimpleFoam/createFields.H b/applications/solvers/incompressible/pimpleFoam/createFields.H index d334e4a31f3..e4127150c0d 100644 --- a/applications/solvers/incompressible/pimpleFoam/createFields.H +++ b/applications/solvers/incompressible/pimpleFoam/createFields.H @@ -36,7 +36,7 @@ setRefCell(p, mesh.solutionDict().subDict("PIMPLE"), pRefCell, pRefValue); singlePhaseTransportModel laminarTransport(U, phi); -autoPtr<incompressible::RASModel> turbulence +autoPtr<incompressible::turbulenceModel> turbulence ( - incompressible::RASModel::New(U, phi, laminarTransport) + incompressible::turbulenceModel::New(U, phi, laminarTransport) ); diff --git a/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C b/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C index f3c16142393..bcc60b7b5e9 100644 --- a/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C +++ b/applications/solvers/incompressible/pimpleFoam/pimpleFoam.C @@ -26,14 +26,16 @@ Application pimpleFoam Description - Large time-step transient solver for incompressible, turbulent flow using - the PIMPLE (merged PISO-SIMPLE) algorithm. + 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. \*---------------------------------------------------------------------------*/ #include "fvCFD.H" -#include "incompressible/singlePhaseTransportModel/singlePhaseTransportModel.H" -#include "incompressible/RASModel/RASModel.H" +#include "singlePhaseTransportModel.H" +#include "turbulenceModel.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -58,14 +60,14 @@ int main(int argc, char *argv[]) Info<< "Time = " << runTime.timeName() << nl << endl; - if (nOuterCorr != 1) - { - p.storePrevIter(); - } - // --- Pressure-velocity PIMPLE corrector loop for (int oCorr=0; oCorr<nOuterCorr; oCorr++) { + if (nOuterCorr != 1) + { + p.storePrevIter(); + } + #include "UEqn.H" // --- PISO loop diff --git a/applications/solvers/incompressible/simpleFoam/Make/options b/applications/solvers/incompressible/simpleFoam/Make/options index 8a31f7e5abb..a3c8f75dee3 100644 --- a/applications/solvers/incompressible/simpleFoam/Make/options +++ b/applications/solvers/incompressible/simpleFoam/Make/options @@ -1,7 +1,9 @@ EXE_INC = \ - -I$(LIB_SRC)/finiteVolume/lnInclude \ - -I$(LIB_SRC)/turbulenceModels/RAS \ - -I$(LIB_SRC)/transportModels + -I$(LIB_SRC)/turbulenceModels/incompressible/turbulenceModel \ + -I$(LIB_SRC)/turbulenceModels/incompressible/RAS/RASModel \ + -I$(LIB_SRC)/transportModels \ + -I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \ + -I$(LIB_SRC)/finiteVolume/lnInclude EXE_LIBS = \ -lincompressibleRASModels \ diff --git a/applications/solvers/incompressible/simpleFoam/simpleFoam.C b/applications/solvers/incompressible/simpleFoam/simpleFoam.C index 7c378fe8ff7..4a0c5c4bd48 100644 --- a/applications/solvers/incompressible/simpleFoam/simpleFoam.C +++ b/applications/solvers/incompressible/simpleFoam/simpleFoam.C @@ -31,8 +31,8 @@ Description \*---------------------------------------------------------------------------*/ #include "fvCFD.H" -#include "incompressible/singlePhaseTransportModel/singlePhaseTransportModel.H" -#include "incompressible/RASModel/RASModel.H" +#include "singlePhaseTransportModel.H" +#include "RASModel.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/applications/solvers/incompressible/turbDyMFoam/Make/files b/applications/solvers/incompressible/turbDyMFoam/Make/files deleted file mode 100644 index 5297b027d05..00000000000 --- a/applications/solvers/incompressible/turbDyMFoam/Make/files +++ /dev/null @@ -1,3 +0,0 @@ -turbDyMFoam.C - -EXE = $(FOAM_APPBIN)/turbDyMFoam diff --git a/applications/solvers/incompressible/turbDyMFoam/Make/options b/applications/solvers/incompressible/turbDyMFoam/Make/options deleted file mode 100644 index 898b42d16ad..00000000000 --- a/applications/solvers/incompressible/turbDyMFoam/Make/options +++ /dev/null @@ -1,15 +0,0 @@ -EXE_INC = \ - -I$(LIB_SRC)/dynamicFvMesh/lnInclude \ - -I$(LIB_SRC)/dynamicMesh/lnInclude \ - -I$(LIB_SRC)/meshTools/lnInclude \ - -I$(LIB_SRC)/turbulenceModels/RAS \ - -I$(LIB_SRC)/transportModels \ - -I$(LIB_SRC)/finiteVolume/lnInclude - -EXE_LIBS = \ - -ldynamicFvMesh \ - -ldynamicMesh \ - -lmeshTools \ - -lincompressibleRASModels \ - -lincompressibleTransportModels \ - -lfiniteVolume diff --git a/applications/solvers/incompressible/turbDyMFoam/UEqn.H b/applications/solvers/incompressible/turbDyMFoam/UEqn.H deleted file mode 100644 index 2876a48b524..00000000000 --- a/applications/solvers/incompressible/turbDyMFoam/UEqn.H +++ /dev/null @@ -1,16 +0,0 @@ - fvVectorMatrix UEqn - ( - fvm::ddt(U) - + fvm::div(phi, U) - + turbulence->divDevReff(U) - ); - - if (ocorr != nOuterCorr-1) - { - UEqn.relax(); - } - - if (momentumPredictor) - { - solve(UEqn == -fvc::grad(p)); - } diff --git a/applications/solvers/incompressible/turbDyMFoam/correctPhi.H b/applications/solvers/incompressible/turbDyMFoam/correctPhi.H deleted file mode 100644 index 493c4e09297..00000000000 --- a/applications/solvers/incompressible/turbDyMFoam/correctPhi.H +++ /dev/null @@ -1,44 +0,0 @@ -{ - wordList pcorrTypes(p.boundaryField().types()); - - for (label i=0; i<p.boundaryField().size(); i++) - { - if(p.boundaryField()[i].fixesValue()) - { - pcorrTypes[i] = fixedValueFvPatchScalarField::typeName; - } - } - - volScalarField pcorr - ( - IOobject - ( - "pcorr", - runTime.timeName(), - mesh, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh, - dimensionedScalar("pcorr", p.dimensions(), 0.0), - pcorrTypes - ); - - for(int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) - { - fvScalarMatrix pcorrEqn - ( - fvm::laplacian(rAU, pcorr) == fvc::div(phi) - ); - - pcorrEqn.setReference(pRefCell, pRefValue); - pcorrEqn.solve(); - - if (nonOrth == nNonOrthCorr) - { - phi -= pcorrEqn.flux(); - } - } -} - -#include "continuityErrs.H" diff --git a/applications/solvers/incompressible/turbDyMFoam/createFields.H b/applications/solvers/incompressible/turbDyMFoam/createFields.H deleted file mode 100644 index 1bbcd330ce1..00000000000 --- a/applications/solvers/incompressible/turbDyMFoam/createFields.H +++ /dev/null @@ -1,59 +0,0 @@ - - Info<< "Reading field p\n" << endl; - volScalarField p - ( - IOobject - ( - "p", - runTime.timeName(), - mesh, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh - ); - - - Info<< "Reading field U\n" << endl; - volVectorField U - ( - IOobject - ( - "U", - runTime.timeName(), - mesh, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh - ); - -# include "createPhi.H" - - - label pRefCell = 0; - scalar pRefValue = 0.0; - setRefCell(p, mesh.solutionDict().subDict("PISO"), pRefCell, pRefValue); - - singlePhaseTransportModel laminarTransport(U, phi); - - autoPtr<incompressible::RASModel> turbulence - ( - incompressible::RASModel::New(U, phi, laminarTransport) - ); - - Info<< "Reading field rAU if present\n" << endl; - volScalarField rAU - ( - IOobject - ( - "rAU", - runTime.timeName(), - mesh, - IOobject::READ_IF_PRESENT, - IOobject::AUTO_WRITE - ), - mesh, - runTime.deltaT(), - zeroGradientFvPatchScalarField::typeName - ); diff --git a/applications/solvers/incompressible/turbDyMFoam/readControls.H b/applications/solvers/incompressible/turbDyMFoam/readControls.H deleted file mode 100644 index 9336616a1be..00000000000 --- a/applications/solvers/incompressible/turbDyMFoam/readControls.H +++ /dev/null @@ -1,14 +0,0 @@ -# include "readTimeControls.H" -# include "readPISOControls.H" - - bool correctPhi = false; - if (piso.found("correctPhi")) - { - correctPhi = Switch(piso.lookup("correctPhi")); - } - - bool checkMeshCourantNo = false; - if (piso.found("checkMeshCourantNo")) - { - checkMeshCourantNo = Switch(piso.lookup("checkMeshCourantNo")); - } diff --git a/applications/solvers/incompressible/turbDyMFoam/turbDyMFoam.C b/applications/solvers/incompressible/turbDyMFoam/turbDyMFoam.C deleted file mode 100644 index a37622f6b3d..00000000000 --- a/applications/solvers/incompressible/turbDyMFoam/turbDyMFoam.C +++ /dev/null @@ -1,163 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Application - turbDyMFoam - -Description - Transient solver for incompressible, turbulent flow of Newtonian fluids - with moving mesh. - -\*---------------------------------------------------------------------------*/ - -#include "fvCFD.H" -#include "incompressible/singlePhaseTransportModel/singlePhaseTransportModel.H" -#include "incompressible/RASModel/RASModel.H" -#include "dynamicFvMesh.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -int main(int argc, char *argv[]) -{ - -# include "setRootCase.H" - -# include "createTime.H" -# include "createDynamicFvMesh.H" -# include "readPISOControls.H" -# include "initContinuityErrs.H" -# include "createFields.H" -# include "readTimeControls.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - - Info<< "\nStarting time loop\n" << endl; - - while (runTime.run()) - { -# include "readControls.H" -# include "CourantNo.H" - - p.storePrevIter(); - - // Make the fluxes absolute - fvc::makeAbsolute(phi, U); - -# include "setDeltaT.H" - - runTime++; - - Info<< "Time = " << runTime.timeName() << nl << endl; - - bool meshChanged = mesh.update(); - - if (correctPhi && meshChanged) - { -# include "correctPhi.H" - } - - // Make the fluxes relative to the mesh motion - fvc::makeRelative(phi, U); - - if (meshChanged && checkMeshCourantNo) - { -# include "meshCourantNo.H" - } - - // --- PIMPLE loop - for (int ocorr=0; ocorr<nOuterCorr; ocorr++) - { -# include "UEqn.H" - - // --- PISO loop - for (int corr=0; corr<nCorr; corr++) - { - rAU = 1.0/UEqn.A(); - - U = rAU*UEqn.H(); - phi = (fvc::interpolate(U) & mesh.Sf()); - //+ fvc::ddtPhiCorr(rAU, U, phi); - - adjustPhi(phi, U, p); - - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) - { - fvScalarMatrix pEqn - ( - fvm::laplacian(rAU, p) == fvc::div(phi) - ); - - pEqn.setReference(pRefCell, pRefValue); - - if - ( - ocorr == nOuterCorr-1 - && corr == nCorr-1 - && nonOrth == nNonOrthCorr) - { - pEqn.solve(mesh.solver(p.name() + "Final")); - } - else - { - pEqn.solve(mesh.solver(p.name())); - } - - if (nonOrth == nNonOrthCorr) - { - phi -= pEqn.flux(); - } - } - -# include "continuityErrs.H" - - // Explicitly relax pressure for momentum corrector - if (ocorr != nOuterCorr-1) - { - p.relax(); - } - - // Make the fluxes relative to the mesh motion - fvc::makeRelative(phi, U); - - U -= rAU*fvc::grad(p); - U.correctBoundaryConditions(); - } - } - - turbulence->correct(); - - runTime.write(); - - Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" - << " ClockTime = " << runTime.elapsedClockTime() << " s" - << nl << endl; - } - - Info<< "End\n" << endl; - - return(0); -} - - -// ************************************************************************* // diff --git a/applications/solvers/incompressible/turbFoam/Make/files b/applications/solvers/incompressible/turbFoam/Make/files deleted file mode 100644 index c3d6346165f..00000000000 --- a/applications/solvers/incompressible/turbFoam/Make/files +++ /dev/null @@ -1,3 +0,0 @@ -turbFoam.C - -EXE = $(FOAM_APPBIN)/turbFoam diff --git a/applications/solvers/incompressible/turbFoam/Make/options b/applications/solvers/incompressible/turbFoam/Make/options deleted file mode 100644 index e8bf7df237d..00000000000 --- a/applications/solvers/incompressible/turbFoam/Make/options +++ /dev/null @@ -1,10 +0,0 @@ -EXE_INC = \ - -I$(LIB_SRC)/turbulenceModels/RAS \ - -I$(LIB_SRC)/transportModels \ - -I$(LIB_SRC)/finiteVolume/lnInclude - -EXE_LIBS = \ - -lincompressibleRASModels \ - -lincompressibleTransportModels \ - -lfiniteVolume \ - -lmeshTools diff --git a/applications/solvers/incompressible/turbFoam/createFields.H b/applications/solvers/incompressible/turbFoam/createFields.H deleted file mode 100644 index 8bcbfe7a75e..00000000000 --- a/applications/solvers/incompressible/turbFoam/createFields.H +++ /dev/null @@ -1,42 +0,0 @@ - Info<< "Reading field p\n" << endl; - volScalarField p - ( - IOobject - ( - "p", - runTime.timeName(), - mesh, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh - ); - - Info<< "Reading field U\n" << endl; - volVectorField U - ( - IOobject - ( - "U", - runTime.timeName(), - mesh, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh - ); - -# include "createPhi.H" - - - label pRefCell = 0; - scalar pRefValue = 0.0; - setRefCell(p, mesh.solutionDict().subDict("PISO"), pRefCell, pRefValue); - - - singlePhaseTransportModel laminarTransport(U, phi); - - autoPtr<incompressible::RASModel> turbulence - ( - incompressible::RASModel::New(U, phi, laminarTransport) - ); diff --git a/applications/solvers/incompressible/turbFoam/turbFoam.C b/applications/solvers/incompressible/turbFoam/turbFoam.C deleted file mode 100644 index d32ee3be691..00000000000 --- a/applications/solvers/incompressible/turbFoam/turbFoam.C +++ /dev/null @@ -1,129 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Application - turbFoam - -Description - Transient solver for incompressible, turbulent flow. - -\*---------------------------------------------------------------------------*/ - -#include "fvCFD.H" -#include "incompressible/singlePhaseTransportModel/singlePhaseTransportModel.H" -#include "incompressible/RASModel/RASModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -int main(int argc, char *argv[]) -{ - -# include "setRootCase.H" - -# include "createTime.H" -# include "createMesh.H" -# include "createFields.H" -# include "initContinuityErrs.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - - Info<< "\nStarting time loop\n" << endl; - - for (runTime++; !runTime.end(); runTime++) - { - Info<< "Time = " << runTime.timeName() << nl << endl; - -# include "readPISOControls.H" -# include "CourantNo.H" - - // Pressure-velocity PISO corrector - { - // Momentum predictor - - fvVectorMatrix UEqn - ( - fvm::ddt(U) - + fvm::div(phi, U) - + turbulence->divDevReff(U) - ); - - if (momentumPredictor) - { - solve(UEqn == -fvc::grad(p)); - } - - // --- PISO loop - - for (int corr=0; corr<nCorr; corr++) - { - volScalarField rUA = 1.0/UEqn.A(); - - U = rUA*UEqn.H(); - phi = (fvc::interpolate(U) & mesh.Sf()) - + fvc::ddtPhiCorr(rUA, U, phi); - - adjustPhi(phi, U, p); - - // Non-orthogonal pressure corrector loop - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) - { - // Pressure corrector - - fvScalarMatrix pEqn - ( - fvm::laplacian(rUA, p) == fvc::div(phi) - ); - - pEqn.setReference(pRefCell, pRefValue); - pEqn.solve(); - - if (nonOrth == nNonOrthCorr) - { - phi -= pEqn.flux(); - } - } - -# include "continuityErrs.H" - - U -= rUA*fvc::grad(p); - U.correctBoundaryConditions(); - } - } - - turbulence->correct(); - - runTime.write(); - - Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" - << " ClockTime = " << runTime.elapsedClockTime() << " s" - << nl << endl; - } - - Info<< "End\n" << endl; - - return(0); -} - - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/compressibleLesInterFoam/Make/files b/applications/solvers/multiphase/compressibleLesInterFoam/Make/files deleted file mode 100644 index 05dafae8b1b..00000000000 --- a/applications/solvers/multiphase/compressibleLesInterFoam/Make/files +++ /dev/null @@ -1,3 +0,0 @@ -compressibleLesInterFoam.C - -EXE = $(FOAM_APPBIN)/compressibleLesInterFoam diff --git a/applications/solvers/multiphase/compressibleLesInterFoam/Make/options b/applications/solvers/multiphase/compressibleLesInterFoam/Make/options deleted file mode 100644 index 45e4e10f670..00000000000 --- a/applications/solvers/multiphase/compressibleLesInterFoam/Make/options +++ /dev/null @@ -1,15 +0,0 @@ -INTERFOAM = $(FOAM_SOLVERS)/multiphase/interFoam - -EXE_INC = \ - -I$(LIB_SRC)/transportModels \ - -I$(LIB_SRC)/transportModels/incompressible/lnInclude \ - -I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \ - -I$(LIB_SRC)/turbulenceModels/LES \ - -I$(LIB_SRC)/turbulenceModels/LES/LESdeltas/lnInclude \ - -I$(LIB_SRC)/finiteVolume/lnInclude - -EXE_LIBS = \ - -linterfaceProperties \ - -lincompressibleTransportModels \ - -lincompressibleLESModels \ - -lfiniteVolume diff --git a/applications/solvers/multiphase/compressibleLesInterFoam/UEqn.H b/applications/solvers/multiphase/compressibleLesInterFoam/UEqn.H deleted file mode 100644 index 08959173677..00000000000 --- a/applications/solvers/multiphase/compressibleLesInterFoam/UEqn.H +++ /dev/null @@ -1,29 +0,0 @@ - surfaceScalarField muf = - twoPhaseProperties.muf() - + fvc::interpolate(rho*turbulence->nuSgs()); - - fvVectorMatrix UEqn - ( - fvm::ddt(rho, U) - + fvm::div(rhoPhi, U) - - fvm::laplacian(muf, U) - - (fvc::grad(U) & fvc::grad(muf)) - //- fvc::div(muf*(mesh.Sf() & fvc::interpolate(fvc::grad(U)().T()))) - ); - - if (momentumPredictor) - { - solve - ( - UEqn - == - fvc::reconstruct - ( - ( - fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1) - - ghf*fvc::snGrad(rho) - - fvc::snGrad(pd) - ) * mesh.magSf() - ) - ); - } diff --git a/applications/solvers/multiphase/compressibleLesInterFoam/alphaEqns.H b/applications/solvers/multiphase/compressibleLesInterFoam/alphaEqns.H deleted file mode 100644 index 819cd0f538b..00000000000 --- a/applications/solvers/multiphase/compressibleLesInterFoam/alphaEqns.H +++ /dev/null @@ -1,76 +0,0 @@ -{ - word alphaScheme("div(phi,alpha)"); - word alpharScheme("div(phirb,alpha)"); - - surfaceScalarField phir = phic*interface.nHatf(); - - for (int gCorr=0; gCorr<nAlphaCorr; gCorr++) - { - volScalarField::DimensionedInternalField Sp - ( - IOobject - ( - "Sp", - runTime.timeName(), - mesh - ), - mesh, - dimensionedScalar("Sp", dgdt.dimensions(), 0.0) - ); - - volScalarField::DimensionedInternalField Su - ( - IOobject - ( - "Su", - runTime.timeName(), - mesh - ), - // Divergence term is handled explicitly to be - // consistent with the explicit transport solution - divU*min(alpha1, scalar(1)) - ); - - forAll(dgdt, celli) - { - if (dgdt[celli] > 0.0 && alpha1[celli] > 0.0) - { - Sp[celli] -= dgdt[celli]*alpha1[celli]; - Su[celli] += dgdt[celli]*alpha1[celli]; - } - else if (dgdt[celli] < 0.0 && alpha1[celli] < 1.0) - { - Sp[celli] += dgdt[celli]*(1.0 - alpha1[celli]); - } - } - - - surfaceScalarField phiAlpha1 = - fvc::flux - ( - phi, - alpha1, - alphaScheme - ) - + fvc::flux - ( - -fvc::flux(-phir, alpha2, alpharScheme), - alpha1, - alpharScheme - ); - - MULES::explicitSolve(oneField(), alpha1, phi, phiAlpha1, Sp, Su, 1, 0); - - surfaceScalarField rho1f = fvc::interpolate(rho1); - surfaceScalarField rho2f = fvc::interpolate(rho2); - rhoPhi = phiAlpha1*(rho1f - rho2f) + phi*rho2f; - - alpha2 = scalar(1) - alpha1; - } - - Info<< "Liquid phase volume fraction = " - << alpha1.weightedAverage(mesh.V()).value() - << " Min(alpha1) = " << min(alpha1).value() - << " Min(alpha2) = " << min(alpha2).value() - << endl; -} diff --git a/applications/solvers/multiphase/compressibleLesInterFoam/alphaEqnsSubCycle.H b/applications/solvers/multiphase/compressibleLesInterFoam/alphaEqnsSubCycle.H deleted file mode 100644 index c52dce96900..00000000000 --- a/applications/solvers/multiphase/compressibleLesInterFoam/alphaEqnsSubCycle.H +++ /dev/null @@ -1,43 +0,0 @@ -{ - label nAlphaCorr - ( - readLabel(piso.lookup("nAlphaCorr")) - ); - - label nAlphaSubCycles - ( - readLabel(piso.lookup("nAlphaSubCycles")) - ); - - surfaceScalarField phic = mag(phi/mesh.magSf()); - phic = min(interface.cGamma()*phic, max(phic)); - - volScalarField divU = fvc::div(phi); - - if (nAlphaSubCycles > 1) - { - dimensionedScalar totalDeltaT = runTime.deltaT(); - surfaceScalarField rhoPhiSum = 0.0*rhoPhi; - - for - ( - subCycle<volScalarField> alphaSubCycle(alpha1, nAlphaSubCycles); - !(++alphaSubCycle).end(); - ) - { -# include "alphaEqns.H" - rhoPhiSum += (runTime.deltaT()/totalDeltaT)*rhoPhi; - } - - rhoPhi = rhoPhiSum; - } - else - { -# include "alphaEqns.H" - } - - if (oCorr == 0) - { - interface.correct(); - } -} diff --git a/applications/solvers/multiphase/compressibleLesInterFoam/compressibleLesInterFoam.C b/applications/solvers/multiphase/compressibleLesInterFoam/compressibleLesInterFoam.C deleted file mode 100644 index 6280b4293cf..00000000000 --- a/applications/solvers/multiphase/compressibleLesInterFoam/compressibleLesInterFoam.C +++ /dev/null @@ -1,105 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Application - compressibleLesInterFoam - -Description - Solver for 2 compressible, isothermal immiscible fluids using a VOF - (volume of fluid) phase-fraction based interface capturing approach. - The momentum and other fluid properties are of the "mixture" and a single - momentum equation is solved. Turbulence is modelled using a run-time - selectable incompressible LES model. - -\*---------------------------------------------------------------------------*/ - -#include "fvCFD.H" -#include "MULES.H" -#include "subCycle.H" -#include "interfaceProperties.H" -#include "twoPhaseMixture.H" -#include "incompressible/LESModel/LESModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -int main(int argc, char *argv[]) -{ - #include "setRootCase.H" - #include "createTime.H" - #include "createMesh.H" - #include "readEnvironmentalProperties.H" - #include "readControls.H" - #include "initContinuityErrs.H" - #include "createFields.H" - #include "CourantNo.H" - #include "setInitialDeltaT.H" - - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - - Info<< "\nStarting time loop\n" << endl; - - while (runTime.run()) - { - #include "readControls.H" - #include "CourantNo.H" - #include "setDeltaT.H" - - runTime++; - - Info<< "Time = " << runTime.timeName() << nl << endl; - - turbulence->correct(); - - // --- Outer-corrector loop - for (int oCorr=0; oCorr<nOuterCorr; oCorr++) - { - #include "alphaEqnsSubCycle.H" - - solve(fvm::ddt(rho) + fvc::div(rhoPhi)); - - #include "UEqn.H" - - // --- PISO loop - for (int corr=0; corr<nCorr; corr++) - { - #include "pEqn.H" - } - } - - rho = alpha1*rho1 + alpha2*rho2; - - runTime.write(); - - Info<< "ExecutionTime = " - << runTime.elapsedCpuTime() - << " s\n\n" << endl; - } - - Info<< "End\n" << endl; - - return(0); -} - - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/compressibleLesInterFoam/createFields.H b/applications/solvers/multiphase/compressibleLesInterFoam/createFields.H deleted file mode 100644 index 6fa5049de47..00000000000 --- a/applications/solvers/multiphase/compressibleLesInterFoam/createFields.H +++ /dev/null @@ -1,152 +0,0 @@ - Info<< "Reading field pd\n" << endl; - volScalarField pd - ( - IOobject - ( - "pd", - runTime.timeName(), - mesh, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh - ); - - Info<< "Reading field alpha1\n" << endl; - volScalarField alpha1 - ( - IOobject - ( - "alpha1", - runTime.timeName(), - mesh, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh - ); - - Info<< "Calculating field alpha1\n" << endl; - volScalarField alpha2("alpha2", scalar(1) - alpha1); - - Info<< "Reading field U\n" << endl; - volVectorField U - ( - IOobject - ( - "U", - runTime.timeName(), - mesh, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh - ); - - #include "createPhi.H" - - - Info<< "Calculating field g.h\n" << endl; - volScalarField gh("gh", g & mesh.C()); - surfaceScalarField ghf("ghf", g & mesh.Cf()); - - - Info<< "Reading transportProperties\n" << endl; - twoPhaseMixture twoPhaseProperties(U, phi); - - dimensionedScalar rho10 - ( - twoPhaseProperties.subDict - ( - twoPhaseProperties.phase1Name() - ).lookup("rho0") - ); - - dimensionedScalar rho20 - ( - twoPhaseProperties.subDict - ( - twoPhaseProperties.phase2Name() - ).lookup("rho0") - ); - - dimensionedScalar psi1 - ( - twoPhaseProperties.subDict - ( - twoPhaseProperties.phase1Name() - ).lookup("psi") - ); - - dimensionedScalar psi2 - ( - twoPhaseProperties.subDict - ( - twoPhaseProperties.phase2Name() - ).lookup("psi") - ); - - dimensionedScalar pMin(twoPhaseProperties.lookup("pMin")); - - volScalarField p - ( - IOobject - ( - "p", - runTime.timeName(), - mesh, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - max - ( - (pd + gh*(alpha1*rho10 + alpha2*rho20)) - /(1.0 - gh*(alpha1*psi1 + alpha2*psi2)), - pMin - ) - ); - - volScalarField rho1 = rho10 + psi1*p; - volScalarField rho2 = rho20 + psi2*p; - - volScalarField rho - ( - IOobject - ( - "rho", - runTime.timeName(), - mesh, - IOobject::READ_IF_PRESENT, - IOobject::AUTO_WRITE - ), - alpha1*rho1 + alpha2*rho2 - ); - - - // Mass flux - // Initialisation does not matter because rhoPhi is reset after the - // alpha1 solution before it is used in the U equation. - surfaceScalarField rhoPhi - ( - IOobject - ( - "rho*phi", - runTime.timeName(), - mesh, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - fvc::interpolate(rho)*phi - ); - - volScalarField dgdt = - pos(alpha2)*fvc::div(phi)/max(alpha2, scalar(0.0001)); - - // Construct interface from alpha1 distribution - interfaceProperties interface(alpha1, U, twoPhaseProperties); - - // Construct LES model - autoPtr<incompressible::LESModel> turbulence - ( - incompressible::LESModel::New(U, phi, twoPhaseProperties) - ); diff --git a/applications/solvers/multiphase/compressibleLesInterFoam/pEqn.H b/applications/solvers/multiphase/compressibleLesInterFoam/pEqn.H deleted file mode 100644 index ebf24498ade..00000000000 --- a/applications/solvers/multiphase/compressibleLesInterFoam/pEqn.H +++ /dev/null @@ -1,74 +0,0 @@ -{ - volScalarField rUA = 1.0/UEqn.A(); - surfaceScalarField rUAf = fvc::interpolate(rUA); - - tmp<fvScalarMatrix> pdEqnComp; - - if (transonic) - { - pdEqnComp = - (fvm::ddt(pd) + fvm::div(phi, pd) - fvm::Sp(fvc::div(phi), pd)); - } - else - { - pdEqnComp = - (fvm::ddt(pd) + fvc::div(phi, pd) - fvc::Sp(fvc::div(phi), pd)); - } - - - U = rUA*UEqn.H(); - - surfaceScalarField phiU - ( - "phiU", - (fvc::interpolate(U) & mesh.Sf()) + fvc::ddtPhiCorr(rUA, rho, U, phi) - ); - - phi = phiU + - ( - fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1) - - ghf*fvc::snGrad(rho) - )*rUAf*mesh.magSf(); - - for(int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) - { - fvScalarMatrix pdEqnIncomp - ( - fvc::div(phi) - - fvm::laplacian(rUAf, pd) - ); - - solve - ( - ( - max(alpha1, scalar(0))*(psi1/rho1) - + max(alpha2, scalar(0))*(psi2/rho2) - ) - *pdEqnComp() - + pdEqnIncomp - ); - - if (nonOrth == nNonOrthCorr) - { - dgdt = - (pos(alpha2)*(psi2/rho2) - pos(alpha1)*(psi1/rho1)) - *(pdEqnComp & pd); - phi += pdEqnIncomp.flux(); - } - } - - U += rUA*fvc::reconstruct((phi - phiU)/rUAf); - U.correctBoundaryConditions(); - - p = max - ( - (pd + gh*(alpha1*rho10 + alpha2*rho20))/(1.0 - gh*(alpha1*psi1 + alpha2*psi2)), - pMin - ); - - rho1 = rho10 + psi1*p; - rho2 = rho20 + psi2*p; - - Info<< "max(U) " << max(mag(U)).value() << endl; - Info<< "min(pd) " << min(pd).value() << endl; -} diff --git a/applications/solvers/multiphase/compressibleLesInterFoam/readControls.H b/applications/solvers/multiphase/compressibleLesInterFoam/readControls.H deleted file mode 100644 index 7e23354f47f..00000000000 --- a/applications/solvers/multiphase/compressibleLesInterFoam/readControls.H +++ /dev/null @@ -1,20 +0,0 @@ - #include "readPISOControls.H" - #include "readTimeControls.H" - - label nAlphaCorr - ( - readLabel(piso.lookup("nAlphaCorr")) - ); - - label nAlphaSubCycles - ( - readLabel(piso.lookup("nAlphaSubCycles")) - ); - - if (nAlphaSubCycles > 1 && nOuterCorr != 1) - { - FatalErrorIn(args.executable()) - << "Sub-cycling alpha is only allowed for PISO, " - "i.e. when the number of outer-correctors = 1" - << exit(FatalError); - } diff --git a/applications/solvers/multiphase/interDyMFoam/Make/options b/applications/solvers/multiphase/interDyMFoam/Make/options index 6755d5bc592..74498326a9b 100644 --- a/applications/solvers/multiphase/interDyMFoam/Make/options +++ b/applications/solvers/multiphase/interDyMFoam/Make/options @@ -1,11 +1,9 @@ EXE_INC = \ - -I../rasInterFoam \ -I../interFoam \ -I$(LIB_SRC)/transportModels \ -I$(LIB_SRC)/transportModels/incompressible/lnInclude \ -I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \ - -I$(LIB_SRC)/turbulenceModels/RAS \ - -I$(LIB_SRC)/turbulenceModels/RAS/incompressible/lnInclude \ + -I$(LIB_SRC)/turbulenceModels/incompressible/turbulenceModel \ -I$(LIB_SRC)/finiteVolume/lnInclude \ -I$(LIB_SRC)/dynamicMesh/lnInclude \ -I$(LIB_SRC)/meshTools/lnInclude \ @@ -16,6 +14,7 @@ EXE_LIBS = \ -linterfaceProperties \ -lincompressibleTransportModels \ -lincompressibleRASModels \ + -lincompressibleLESModels \ -lfiniteVolume \ -ldynamicMesh \ -lmeshTools \ diff --git a/applications/solvers/multiphase/interDyMFoam/createFields.H b/applications/solvers/multiphase/interDyMFoam/createFields.H index ab58050ed0c..0f1efe717f5 100644 --- a/applications/solvers/multiphase/interDyMFoam/createFields.H +++ b/applications/solvers/multiphase/interDyMFoam/createFields.H @@ -12,12 +12,12 @@ mesh ); - Info<< "Reading field gamma\n" << endl; - volScalarField gamma + Info<< "Reading field alpha1\n" << endl; + volScalarField alpha1 ( IOobject ( - "gamma", + "alpha1", runTime.timeName(), mesh, IOobject::MUST_READ, @@ -44,7 +44,7 @@ Info<< "Reading transportProperties\n" << endl; - twoPhaseMixture twoPhaseProperties(U, phi, "gamma"); + twoPhaseMixture twoPhaseProperties(U, phi); const dimensionedScalar& rho1 = twoPhaseProperties.rho1(); const dimensionedScalar& rho2 = twoPhaseProperties.rho2(); @@ -60,15 +60,15 @@ mesh, IOobject::READ_IF_PRESENT ), - gamma*rho1 + (scalar(1) - gamma)*rho2, - gamma.boundaryField().types() + alpha1*rho1 + (scalar(1) - alpha1)*rho2, + alpha1.boundaryField().types() ); rho.oldTime(); // Mass flux // Initialisation does not matter because rhoPhi is reset after the - // gamma solution before it is used in the U equation. + // alpha1 solution before it is used in the U equation. surfaceScalarField rhoPhi ( IOobject @@ -83,13 +83,13 @@ ); - // Construct interface from gamma distribution - interfaceProperties interface(gamma, U, twoPhaseProperties); + // Construct interface from alpha1 distribution + interfaceProperties interface(alpha1, U, twoPhaseProperties); - // Construct incompressible RAS model - autoPtr<incompressible::RASModel> turbulence + // Construct incompressible turbulence model + autoPtr<incompressible::turbulenceModel> turbulence ( - incompressible::RASModel::New(U, phi, twoPhaseProperties) + incompressible::turbulenceModel::New(U, phi, twoPhaseProperties) ); wordList pcorrTypes(pd.boundaryField().types()); diff --git a/applications/solvers/multiphase/interDyMFoam/interDyMFoam.C b/applications/solvers/multiphase/interDyMFoam/interDyMFoam.C index 915fee9a973..0ea32adcc8b 100644 --- a/applications/solvers/multiphase/interDyMFoam/interDyMFoam.C +++ b/applications/solvers/multiphase/interDyMFoam/interDyMFoam.C @@ -39,7 +39,7 @@ Description #include "subCycle.H" #include "interfaceProperties.H" #include "twoPhaseMixture.H" -#include "incompressible/RASModel/RASModel.H" +#include "turbulenceModel.H" #include "probes.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -58,8 +58,7 @@ int main(int argc, char *argv[]) #include "CourantNo.H" #include "setInitialDeltaT.H" -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Info<< "\nStarting time loop\n" << endl; while (runTime.run()) @@ -106,7 +105,7 @@ int main(int argc, char *argv[]) twoPhaseProperties.correct(); - #include "gammaEqnSubCycle.H" + #include "alphaEqnSubCycle.H" #include "UEqn.H" diff --git a/applications/solvers/multiphase/interDyMFoam/pEqn.H b/applications/solvers/multiphase/interDyMFoam/pEqn.H index c6961f6c22c..f8ff18f6063 100644 --- a/applications/solvers/multiphase/interDyMFoam/pEqn.H +++ b/applications/solvers/multiphase/interDyMFoam/pEqn.H @@ -7,7 +7,7 @@ phi = phiU + ( - fvc::interpolate(interface.sigmaK())*fvc::snGrad(gamma) + fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1) - ghf*fvc::snGrad(rho) )*rAUf*mesh.magSf(); diff --git a/applications/solvers/multiphase/interFoam/Make/options b/applications/solvers/multiphase/interFoam/Make/options index ae5ccba0fd9..0e21fc2d642 100644 --- a/applications/solvers/multiphase/interFoam/Make/options +++ b/applications/solvers/multiphase/interFoam/Make/options @@ -2,9 +2,12 @@ EXE_INC = \ -I$(LIB_SRC)/transportModels \ -I$(LIB_SRC)/transportModels/incompressible/lnInclude \ -I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \ + -I$(LIB_SRC)/turbulenceModels/incompressible/turbulenceModel \ -I$(LIB_SRC)/finiteVolume/lnInclude EXE_LIBS = \ -linterfaceProperties \ -lincompressibleTransportModels \ + -lincompressibleRASModels \ + -lincompressibleLESModels \ -lfiniteVolume diff --git a/applications/solvers/multiphase/interFoam/UBlendingFactor.H b/applications/solvers/multiphase/interFoam/UBlendingFactor.H index 217a9c39778..ade1b8e7f35 100644 --- a/applications/solvers/multiphase/interFoam/UBlendingFactor.H +++ b/applications/solvers/multiphase/interFoam/UBlendingFactor.H @@ -1,6 +1,6 @@ - surfaceScalarField gammaf = fvc::interpolate(gamma); + surfaceScalarField alpha1f = fvc::interpolate(alpha1); surfaceScalarField UBlendingFactor ( "UBlendingFactor", - sqrt(max(min(4*gammaf*(1.0 - gammaf), 1.0), 0.0)) + sqrt(max(min(4*alpha1f*(1.0 - alpha1f), 1.0), 0.0)) ); diff --git a/applications/solvers/multiphase/interFoam/UEqn.H b/applications/solvers/multiphase/interFoam/UEqn.H index e585f3cab17..528e0aaafd8 100644 --- a/applications/solvers/multiphase/interFoam/UEqn.H +++ b/applications/solvers/multiphase/interFoam/UEqn.H @@ -1,14 +1,21 @@ - surfaceScalarField muf = twoPhaseProperties.muf(); + surfaceScalarField muEff + ( + "muEff", + twoPhaseProperties.muf() + + fvc::interpolate(rho*turbulence->nut()) + ); fvVectorMatrix UEqn ( fvm::ddt(rho, U) + fvm::div(rhoPhi, U) - - fvm::laplacian(muf, U) - - (fvc::grad(U) & fvc::grad(muf)) - //- fvc::div(muf*(fvc::interpolate(dev(fvc::grad(U))) & mesh.Sf())) + - fvm::laplacian(muEff, U) + - (fvc::grad(U) & fvc::grad(muEff)) + //- fvc::div(muEff*(fvc::interpolate(dev(fvc::grad(U))) & mesh.Sf())) ); + UEqn.relax(); + if (momentumPredictor) { solve @@ -18,7 +25,7 @@ fvc::reconstruct ( ( - fvc::interpolate(interface.sigmaK())*fvc::snGrad(gamma) + fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1) - ghf*fvc::snGrad(rho) - fvc::snGrad(pd) ) * mesh.magSf() diff --git a/applications/solvers/multiphase/interFoam/createFields.H b/applications/solvers/multiphase/interFoam/createFields.H index 887bcbdead1..af349d79174 100644 --- a/applications/solvers/multiphase/interFoam/createFields.H +++ b/applications/solvers/multiphase/interFoam/createFields.H @@ -12,12 +12,12 @@ mesh ); - Info<< "Reading field gamma\n" << endl; - volScalarField gamma + Info<< "Reading field alpha1\n" << endl; + volScalarField alpha1 ( IOobject ( - "gamma", + "alpha1", runTime.timeName(), mesh, IOobject::MUST_READ, @@ -44,7 +44,7 @@ Info<< "Reading transportProperties\n" << endl; - twoPhaseMixture twoPhaseProperties(U, phi, "gamma"); + twoPhaseMixture twoPhaseProperties(U, phi); const dimensionedScalar& rho1 = twoPhaseProperties.rho1(); const dimensionedScalar& rho2 = twoPhaseProperties.rho2(); @@ -60,15 +60,15 @@ mesh, IOobject::READ_IF_PRESENT ), - gamma*rho1 + (scalar(1) - gamma)*rho2, - gamma.boundaryField().types() + alpha1*rho1 + (scalar(1) - alpha1)*rho2, + alpha1.boundaryField().types() ); rho.oldTime(); // Mass flux // Initialisation does not matter because rhoPhi is reset after the - // gamma solution before it is used in the U equation. + // alpha1 solution before it is used in the U equation. surfaceScalarField rhoPhi ( IOobject @@ -107,5 +107,12 @@ setRefCell(pd, mesh.solutionDict().subDict("PISO"), pdRefCell, pdRefValue); - // Construct interface from gamma distribution - interfaceProperties interface(gamma, U, twoPhaseProperties); + // Construct interface from alpha1 distribution + interfaceProperties interface(alpha1, U, twoPhaseProperties); + + + // Construct incompressible turbulence model + autoPtr<incompressible::turbulenceModel> turbulence + ( + incompressible::turbulenceModel::New(U, phi, twoPhaseProperties) + ); diff --git a/applications/solvers/multiphase/interFoam/gammaEqn.H b/applications/solvers/multiphase/interFoam/gammaEqn.H deleted file mode 100644 index 8978d1d2930..00000000000 --- a/applications/solvers/multiphase/interFoam/gammaEqn.H +++ /dev/null @@ -1,35 +0,0 @@ -{ - word gammaScheme("div(phi,gamma)"); - word gammarScheme("div(phirb,gamma)"); - - surfaceScalarField phic = mag(phi/mesh.magSf()); - phic = min(interface.cGamma()*phic, max(phic)); - surfaceScalarField phir = phic*interface.nHatf(); - - for (int gCorr=0; gCorr<nGammaCorr; gCorr++) - { - surfaceScalarField phiGamma = - fvc::flux - ( - phi, - gamma, - gammaScheme - ) - + fvc::flux - ( - -fvc::flux(-phir, scalar(1) - gamma, gammarScheme), - gamma, - gammarScheme - ); - - MULES::explicitSolve(gamma, phi, phiGamma, 1, 0); - - rhoPhi = phiGamma*(rho1 - rho2) + phi*rho2; - } - - Info<< "Liquid phase volume fraction = " - << gamma.weightedAverage(mesh.V()).value() - << " Min(gamma) = " << min(gamma).value() - << " Max(gamma) = " << max(gamma).value() - << endl; -} diff --git a/applications/solvers/multiphase/interFoam/gammaEqnSubCycle.H b/applications/solvers/multiphase/interFoam/gammaEqnSubCycle.H deleted file mode 100644 index f762bac8ca7..00000000000 --- a/applications/solvers/multiphase/interFoam/gammaEqnSubCycle.H +++ /dev/null @@ -1,35 +0,0 @@ -label nGammaCorr -( - readLabel(piso.lookup("nGammaCorr")) -); - -label nGammaSubCycles -( - readLabel(piso.lookup("nGammaSubCycles")) -); - -if (nGammaSubCycles > 1) -{ - dimensionedScalar totalDeltaT = runTime.deltaT(); - surfaceScalarField rhoPhiSum = 0.0*rhoPhi; - - for - ( - subCycle<volScalarField> gammaSubCycle(gamma, nGammaSubCycles); - !(++gammaSubCycle).end(); - ) - { -# include "gammaEqn.H" - rhoPhiSum += (runTime.deltaT()/totalDeltaT)*rhoPhi; - } - - rhoPhi = rhoPhiSum; -} -else -{ -# include "gammaEqn.H" -} - -interface.correct(); - -rho == gamma*rho1 + (scalar(1) - gamma)*rho2; diff --git a/applications/solvers/multiphase/interFoam/interFoam.C b/applications/solvers/multiphase/interFoam/interFoam.C index b7f4f0ada56..1286a16d627 100644 --- a/applications/solvers/multiphase/interFoam/interFoam.C +++ b/applications/solvers/multiphase/interFoam/interFoam.C @@ -31,6 +31,8 @@ Description The momentum and other fluid properties are of the "mixture" and a single momentum equation is solved. + Turbulence modelling is generic, i.e. laminar, RAS or LES may be selected. + For a two-fluid approach see twoPhaseEulerFoam. \*---------------------------------------------------------------------------*/ @@ -40,6 +42,7 @@ Description #include "subCycle.H" #include "interfaceProperties.H" #include "twoPhaseMixture.H" +#include "turbulenceModel.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -57,7 +60,7 @@ int main(int argc, char *argv[]) #include "CourantNo.H" #include "setInitialDeltaT.H" -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Info<< "\nStarting time loop\n" << endl; @@ -74,7 +77,7 @@ int main(int argc, char *argv[]) twoPhaseProperties.correct(); - #include "gammaEqnSubCycle.H" + #include "alphaEqnSubCycle.H" #include "UEqn.H" @@ -88,6 +91,8 @@ int main(int argc, char *argv[]) p = pd + rho*gh; + turbulence->correct(); + runTime.write(); Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" diff --git a/applications/solvers/multiphase/interFoam/pEqn.H b/applications/solvers/multiphase/interFoam/pEqn.H index 77256a8e2fd..e5afbb8e4f2 100644 --- a/applications/solvers/multiphase/interFoam/pEqn.H +++ b/applications/solvers/multiphase/interFoam/pEqn.H @@ -12,7 +12,7 @@ phi = phiU + ( - fvc::interpolate(interface.sigmaK())*fvc::snGrad(gamma) + fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1) - ghf*fvc::snGrad(rho) )*rUAf*mesh.magSf(); diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/Make/options b/applications/solvers/multiphase/interPhaseChangeFoam/Make/options index fa6943e580b..24e523f2496 100644 --- a/applications/solvers/multiphase/interPhaseChangeFoam/Make/options +++ b/applications/solvers/multiphase/interPhaseChangeFoam/Make/options @@ -2,13 +2,13 @@ EXE_INC = \ -I$(LIB_SRC)/transportModels \ -I$(LIB_SRC)/transportModels/incompressible/lnInclude \ -I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \ - -I$(LIB_SRC)/turbulenceModels/LES \ - -I$(LIB_SRC)/turbulenceModels/LES/LESdeltas/lnInclude \ + -I$(LIB_SRC)/turbulenceModels/incompressible/turbulenceModel \ -IphaseChangeTwoPhaseMixtures/phaseChangeTwoPhaseMixture \ -I$(LIB_SRC)/finiteVolume/lnInclude EXE_LIBS = \ -linterfaceProperties \ -lincompressibleTransportModels \ + -lincompressibleRASModels \ -lincompressibleLESModels \ -lfiniteVolume diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/UEqn.H b/applications/solvers/multiphase/interPhaseChangeFoam/UEqn.H index fefdeb41c30..f020863077b 100644 --- a/applications/solvers/multiphase/interPhaseChangeFoam/UEqn.H +++ b/applications/solvers/multiphase/interPhaseChangeFoam/UEqn.H @@ -1,6 +1,6 @@ surfaceScalarField muf = twoPhaseProperties->muf() - + fvc::interpolate(rho*turbulence->nuSgs()); + + fvc::interpolate(rho*turbulence->nut()); fvVectorMatrix UEqn ( @@ -23,7 +23,7 @@ fvc::reconstruct ( ( - fvc::interpolate(interface.sigmaK())*fvc::snGrad(gamma) + fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1) - ghf*fvc::snGrad(rho) - fvc::snGrad(pd) ) * mesh.magSf() diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/createFields.H b/applications/solvers/multiphase/interPhaseChangeFoam/createFields.H index 9e9c68a8907..5e727dea3ec 100644 --- a/applications/solvers/multiphase/interPhaseChangeFoam/createFields.H +++ b/applications/solvers/multiphase/interPhaseChangeFoam/createFields.H @@ -12,12 +12,12 @@ mesh ); - Info<< "Reading field gamma\n" << endl; - volScalarField gamma + Info<< "Reading field alpha1\n" << endl; + volScalarField alpha1 ( IOobject ( - "gamma", + "alpha1", runTime.timeName(), mesh, IOobject::MUST_READ, @@ -44,7 +44,7 @@ Info<< "Creating phaseChangeTwoPhaseMixture\n" << endl; autoPtr<phaseChangeTwoPhaseMixture> twoPhaseProperties = - phaseChangeTwoPhaseMixture::New(U, phi, "gamma"); + phaseChangeTwoPhaseMixture::New(U, phi); const dimensionedScalar& rho1 = twoPhaseProperties->rho1(); const dimensionedScalar& rho2 = twoPhaseProperties->rho2(); @@ -60,8 +60,8 @@ mesh, IOobject::READ_IF_PRESENT ), - gamma*rho1 + (scalar(1) - gamma)*rho2, - gamma.boundaryField().types() + alpha1*rho1 + (scalar(1) - alpha1)*rho2, + alpha1.boundaryField().types() ); rho.oldTime(); @@ -88,11 +88,11 @@ ); - // Construct interface from gamma distribution - interfaceProperties interface(gamma, U, twoPhaseProperties()); + // Construct interface from alpha1 distribution + interfaceProperties interface(alpha1, U, twoPhaseProperties()); - // Construct LES model - autoPtr<incompressible::LESModel> turbulence + // Construct incompressible turbulence model + autoPtr<incompressible::turbulenceModel> turbulence ( - incompressible::LESModel::New(U, phi, twoPhaseProperties()) + incompressible::turbulenceModel::New(U, phi, twoPhaseProperties()) ); diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/gammaEqn.H b/applications/solvers/multiphase/interPhaseChangeFoam/gammaEqn.H deleted file mode 100644 index 0186948920b..00000000000 --- a/applications/solvers/multiphase/interPhaseChangeFoam/gammaEqn.H +++ /dev/null @@ -1,67 +0,0 @@ -{ - word gammaScheme("div(phi,gamma)"); - word gammarScheme("div(phirb,gamma)"); - - surfaceScalarField phir("phir", phic*interface.nHatf()); - - for (int gCorr=0; gCorr<nGammaCorr; gCorr++) - { - surfaceScalarField phiGamma = - fvc::flux - ( - phi, - gamma, - gammaScheme - ) - + fvc::flux - ( - -fvc::flux(-phir, scalar(1) - gamma, gammarScheme), - gamma, - gammarScheme - ); - - Pair<tmp<volScalarField> > vDotAlphal = - twoPhaseProperties->vDotAlphal(); - const volScalarField& vDotcAlphal = vDotAlphal[0](); - const volScalarField& vDotvAlphal = vDotAlphal[1](); - - volScalarField Sp - ( - IOobject - ( - "Sp", - runTime.timeName(), - mesh - ), - vDotvAlphal - vDotcAlphal - ); - - volScalarField Su - ( - IOobject - ( - "Su", - runTime.timeName(), - mesh - ), - // Divergence term is handled explicitly to be - // consistent with the explicit transport solution - divU*gamma - + vDotcAlphal - ); - - //MULES::explicitSolve(gamma, phi, phiGamma, 1, 0); - //MULES::explicitSolve(oneField(), gamma, phi, phiGamma, Sp, Su, 1, 0); - MULES::implicitSolve(oneField(), gamma, phi, phiGamma, Sp, Su, 1, 0); - - rhoPhi += - (runTime.deltaT()/totalDeltaT) - *(phiGamma*(rho1 - rho2) + phi*rho2); - } - - Info<< "Liquid phase volume fraction = " - << gamma.weightedAverage(mesh.V()).value() - << " Min(gamma) = " << min(gamma).value() - << " Max(gamma) = " << max(gamma).value() - << endl; -} diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/gammaEqnSubCycle.H b/applications/solvers/multiphase/interPhaseChangeFoam/gammaEqnSubCycle.H deleted file mode 100644 index c6355d6fb0b..00000000000 --- a/applications/solvers/multiphase/interPhaseChangeFoam/gammaEqnSubCycle.H +++ /dev/null @@ -1,53 +0,0 @@ -surfaceScalarField rhoPhi -( - IOobject - ( - "rhoPhi", - runTime.timeName(), - mesh - ), - mesh, - dimensionedScalar("0", dimensionSet(1, 0, -1, 0, 0), 0) -); - -{ - label nGammaCorr - ( - readLabel(piso.lookup("nGammaCorr")) - ); - - label nGammaSubCycles - ( - readLabel(piso.lookup("nGammaSubCycles")) - ); - - surfaceScalarField phic = mag(phi/mesh.magSf()); - phic = min(interface.cGamma()*phic, max(phic)); - - volScalarField divU = fvc::div(phi); - - dimensionedScalar totalDeltaT = runTime.deltaT(); - - if (nGammaSubCycles > 1) - { - for - ( - subCycle<volScalarField> gammaSubCycle(gamma, nGammaSubCycles); - !(++gammaSubCycle).end(); - ) - { -# include "gammaEqn.H" - } - } - else - { -# include "gammaEqn.H" - } - - if (nOuterCorr == 1) - { - interface.correct(); - } - - rho == gamma*rho1 + (scalar(1) - gamma)*rho2; -} diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeFoam.C b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeFoam.C index bb6f1133cee..f7c8aa72502 100644 --- a/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeFoam.C +++ b/applications/solvers/multiphase/interPhaseChangeFoam/interPhaseChangeFoam.C @@ -35,6 +35,8 @@ Description but other mechanisms of phase-change are supported within this solver framework. + Turbulence modelling is generic, i.e. laminar, RAS or LES may be selected. + \*---------------------------------------------------------------------------*/ #include "fvCFD.H" @@ -42,7 +44,7 @@ Description #include "subCycle.H" #include "interfaceProperties.H" #include "phaseChangeTwoPhaseMixture.H" -#include "incompressible/LESModel/LESModel.H" +#include "turbulenceModel.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -60,7 +62,7 @@ int main(int argc, char *argv[]) #include "CourantNo.H" #include "setInitialDeltaT.H" -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Info<< "\nStarting time loop\n" << endl; @@ -75,9 +77,7 @@ int main(int argc, char *argv[]) Info<< "Time = " << runTime.timeName() << nl << endl; - twoPhaseProperties->correct(); - - #include "gammaEqnSubCycle.H" + #include "alphaEqnSubCycle.H" turbulence->correct(); @@ -95,6 +95,8 @@ int main(int argc, char *argv[]) #include "continuityErrs.H" } + twoPhaseProperties->correct(); + runTime.write(); Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/pEqn.H b/applications/solvers/multiphase/interPhaseChangeFoam/pEqn.H index 3a7f7e4ebcd..0037d71cf52 100644 --- a/applications/solvers/multiphase/interPhaseChangeFoam/pEqn.H +++ b/applications/solvers/multiphase/interPhaseChangeFoam/pEqn.H @@ -13,7 +13,7 @@ phi = phiU + ( - fvc::interpolate(interface.sigmaK())*fvc::snGrad(gamma) + fvc::interpolate(interface.sigmaK())*fvc::snGrad(alpha1) - ghf*fvc::snGrad(rho) )*rUAf*mesh.magSf(); diff --git a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/phaseChangeTwoPhaseMixture/phaseChangeTwoPhaseMixture.H b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/phaseChangeTwoPhaseMixture/phaseChangeTwoPhaseMixture.H index 0cbc33c52e3..a2db01643ae 100644 --- a/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/phaseChangeTwoPhaseMixture/phaseChangeTwoPhaseMixture.H +++ b/applications/solvers/multiphase/interPhaseChangeFoam/phaseChangeTwoPhaseMixtures/phaseChangeTwoPhaseMixture/phaseChangeTwoPhaseMixture.H @@ -106,7 +106,7 @@ public: ( const volVectorField& U, const surfaceScalarField& phi, - const word& alpha1Name + const word& alpha1Name = "alpha1" ); diff --git a/applications/solvers/multiphase/lesCavitatingFoam/CourantNo.H b/applications/solvers/multiphase/lesCavitatingFoam/CourantNo.H deleted file mode 100644 index 014944e191f..00000000000 --- a/applications/solvers/multiphase/lesCavitatingFoam/CourantNo.H +++ /dev/null @@ -1,59 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Global - CourantNo - -Description - Calculates and outputs the mean and maximum Courant Numbers. - -\*---------------------------------------------------------------------------*/ - -scalar CoNum = 0.0; -scalar meanCoNum = 0.0; -scalar acousticCoNum = 0.0; - -if (mesh.nInternalFaces()) -{ - surfaceScalarField SfUfbyDelta = - mesh.surfaceInterpolation::deltaCoeffs()*mag(phiv); - - CoNum = max(SfUfbyDelta/mesh.magSf()) - .value()*runTime.deltaT().value(); - - meanCoNum = (sum(SfUfbyDelta)/sum(mesh.magSf())) - .value()*runTime.deltaT().value(); - - acousticCoNum = max - ( - mesh.surfaceInterpolation::deltaCoeffs()/sqrt(fvc::interpolate(psi)) - ).value()*runTime.deltaT().value(); -} - -Info<< "phiv Courant Number mean: " << meanCoNum - << " max: " << CoNum - << " acoustic max: " << acousticCoNum - << endl; - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/lesCavitatingFoam/Make/files b/applications/solvers/multiphase/lesCavitatingFoam/Make/files deleted file mode 100644 index b577562e27b..00000000000 --- a/applications/solvers/multiphase/lesCavitatingFoam/Make/files +++ /dev/null @@ -1,5 +0,0 @@ -lesCavitatingFoam.C - -devOneEqEddy/devOneEqEddy.C - -EXE = $(FOAM_APPBIN)/lesCavitatingFoam diff --git a/applications/solvers/multiphase/lesCavitatingFoam/Make/options b/applications/solvers/multiphase/lesCavitatingFoam/Make/options deleted file mode 100644 index 91833c13658..00000000000 --- a/applications/solvers/multiphase/lesCavitatingFoam/Make/options +++ /dev/null @@ -1,16 +0,0 @@ -EXE_INC = \ - -I$(LIB_SRC)/finiteVolume/lnInclude \ - -I$(LIB_SRC)/transportModels \ - -I$(LIB_SRC)/transportModels/incompressible/lnInclude \ - -I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \ - -I$(LIB_SRC)/turbulenceModels/LES \ - -I$(LIB_SRC)/turbulenceModels/LES/incompressible/lnInclude \ - -I$(LIB_SRC)/turbulenceModels/LES/LESdeltas/lnInclude \ - -I$(LIB_SRC)/thermophysicalModels/barotropicCompressibilityModel/lnInclude - -EXE_LIBS = \ - -lincompressibleTransportModels \ - -lincompressibleLESModels \ - -lfiniteVolume \ - -lbarotropicCompressibilityModel - diff --git a/applications/solvers/multiphase/lesCavitatingFoam/UEqn.H b/applications/solvers/multiphase/lesCavitatingFoam/UEqn.H deleted file mode 100644 index 73033ddfaa4..00000000000 --- a/applications/solvers/multiphase/lesCavitatingFoam/UEqn.H +++ /dev/null @@ -1,20 +0,0 @@ - surfaceScalarField muEff - ( - "muEff", - twoPhaseProperties.muf() - + fvc::interpolate(rho*turbulence->nuSgs()) - ); - - fvVectorMatrix UEqn - ( - fvm::ddt(rho, U) - + fvm::div(phi, U) - - fvm::laplacian(muEff, U) - //- (fvc::grad(U) & fvc::grad(muf)) - - fvc::div(muEff*(fvc::interpolate(dev(fvc::grad(U))) & mesh.Sf())) - ); - - if (momentumPredictor) - { - solve(UEqn == -fvc::grad(p)); - } diff --git a/applications/solvers/multiphase/lesCavitatingFoam/continuityErrs.H b/applications/solvers/multiphase/lesCavitatingFoam/continuityErrs.H deleted file mode 100644 index 6f1622510f6..00000000000 --- a/applications/solvers/multiphase/lesCavitatingFoam/continuityErrs.H +++ /dev/null @@ -1,22 +0,0 @@ -{ - volScalarField thermoRho = psi*p + (1.0 - gamma)*rhol0; - - dimensionedScalar totalMass = fvc::domainIntegrate(rho); - - scalar sumLocalContErr = - ( - fvc::domainIntegrate(mag(rho - thermoRho))/totalMass - ).value(); - - scalar globalContErr = - ( - fvc::domainIntegrate(rho - thermoRho)/totalMass - ).value(); - - cumulativeContErr += globalContErr; - - Info<< "time step continuity errors : sum local = " << sumLocalContErr - << ", global = " << globalContErr - << ", cumulative = " << cumulativeContErr - << endl; -} diff --git a/applications/solvers/multiphase/lesCavitatingFoam/createFields.H b/applications/solvers/multiphase/lesCavitatingFoam/createFields.H deleted file mode 100644 index d2e19bcae89..00000000000 --- a/applications/solvers/multiphase/lesCavitatingFoam/createFields.H +++ /dev/null @@ -1,85 +0,0 @@ - Info<< "Reading field p\n" << endl; - volScalarField p - ( - IOobject - ( - "p", - runTime.timeName(), - mesh, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh - ); - - volScalarField rho - ( - IOobject - ( - "rho", - runTime.timeName(), - mesh, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh - ); - - volScalarField gamma - ( - IOobject - ( - "gamma", - runTime.timeName(), - mesh, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - max(min((rho - rholSat)/(rhovSat - rholSat), scalar(1)), scalar(0)) - ); - gamma.oldTime(); - - Info<< "Creating compressibilityModel\n" << endl; - autoPtr<barotropicCompressibilityModel> psiModel = - barotropicCompressibilityModel::New - ( - thermodynamicProperties, - gamma - ); - - const volScalarField& psi = psiModel->psi(); - - rho == max - ( - psi*p - + (1.0 - gamma)*rhol0 - + ((gamma*psiv + (1.0 - gamma)*psil) - psi)*pSat, - rhoMin - ); - - Info<< "Reading field U\n" << endl; - volVectorField U - ( - IOobject - ( - "U", - runTime.timeName(), - mesh, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh - ); - -# include "createPhiv.H" -# include "compressibleCreatePhi.H" - - Info<< "Reading transportProperties\n" << endl; - - twoPhaseMixture twoPhaseProperties(U, phiv, "gamma"); - - // Create LES model - autoPtr<incompressible::LESModel> turbulence - ( - incompressible::LESModel::New(U, phiv, twoPhaseProperties) - ); diff --git a/applications/solvers/multiphase/lesCavitatingFoam/devOneEqEddy/devOneEqEddy.C b/applications/solvers/multiphase/lesCavitatingFoam/devOneEqEddy/devOneEqEddy.C deleted file mode 100644 index db9cb56991d..00000000000 --- a/applications/solvers/multiphase/lesCavitatingFoam/devOneEqEddy/devOneEqEddy.C +++ /dev/null @@ -1,130 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "devOneEqEddy.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(devOneEqEddy, 0); -addToRunTimeSelectionTable(LESModel, devOneEqEddy, dictionary); - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -devOneEqEddy::devOneEqEddy -( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport -) -: - LESModel(typeName, U, phi, transport), - GenEddyVisc(U, phi, transport), - - k_ - ( - IOobject - ( - "k", - runTime_.timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh_ - ), - ck_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "ck", - coeffDict(), - 0.07 - ) - ) -{ - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void devOneEqEddy::correct(const tmp<volTensorField>& gradU) -{ - GenEddyVisc::correct(gradU); - - //volScalarField G = 2*nuSgs_*magSqr(symm(gradU)); - volScalarField G = 2*nuSgs_*(gradU() && dev(symm(gradU()))); - - solve - ( - fvm::ddt(k_) - + fvm::div(phi(), k_) - - fvm::Sp(fvc::div(phi()), k_) - - fvm::laplacian(DkEff(), k_) - == - G - - fvm::Sp(ce_*sqrt(k_)/delta(), k_) - ); - - bound(k_, k0()); - - nuSgs_ = ck_*sqrt(k_)*delta(); - nuSgs_.correctBoundaryConditions(); -} - - -bool devOneEqEddy::read() -{ - if (GenEddyVisc::read()) - { - ck_.readIfPresent(coeffDict()); - - return true; - } - else - { - return false; - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/lesCavitatingFoam/devOneEqEddy/devOneEqEddy.H b/applications/solvers/multiphase/lesCavitatingFoam/devOneEqEddy/devOneEqEddy.H deleted file mode 100644 index 30090fe28f8..00000000000 --- a/applications/solvers/multiphase/lesCavitatingFoam/devOneEqEddy/devOneEqEddy.H +++ /dev/null @@ -1,148 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - devOneEqEddy - -Description -<pre> - One Equation Eddy Viscosity Model - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Eddy viscosity SGS model using a modeled balance equation to simulate the - behaviour of k, hence, - - d/dt(k) + div(U*k) - div(nuEff*grad(k)) - = - -B*L - ce*k^3/2/delta - - and - - B = 2/3*k*I - 2*nuEff*dev(D) - - where - - D = symm(grad(U)); - nuSgs = ck*sqrt(k)*delta - nuEff = nuSgs + nu -</pre> - -SourceFiles - devOneEqEddy.C - -\*---------------------------------------------------------------------------*/ - -#ifndef devOneEqEddy_H -#define devOneEqEddy_H - -#include "GenEddyVisc.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -/*---------------------------------------------------------------------------*\ - Class devOneEqEddy Declaration -\*---------------------------------------------------------------------------*/ - -class devOneEqEddy -: - public GenEddyVisc -{ - // Private data - - volScalarField k_; - - dimensionedScalar ck_; - - - // Private Member Functions - - // Disallow default bitwise copy construct and assignment - devOneEqEddy(const devOneEqEddy&); - devOneEqEddy& operator=(const devOneEqEddy&); - - -public: - - //- Runtime type information - TypeName("devOneEqEddy"); - - // Constructors - - //- Constructor from components - devOneEqEddy - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ); - - - // Destructor - - ~devOneEqEddy() - {} - - - // Member Functions - - //- Return SGS kinetic energy - tmp<volScalarField> k() const - { - return k_; - } - - //- Return the effective diffusivity for k - tmp<volScalarField> DkEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DkEff", nuSgs_ + nu()) - ); - } - - //- Correct Eddy-Viscosity and related properties - void correct(const tmp<volTensorField>& gradU); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModelsModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/lesCavitatingFoam/gammaPsi.H b/applications/solvers/multiphase/lesCavitatingFoam/gammaPsi.H deleted file mode 100644 index b259ddd3222..00000000000 --- a/applications/solvers/multiphase/lesCavitatingFoam/gammaPsi.H +++ /dev/null @@ -1,10 +0,0 @@ -{ - gamma = max(min((rho - rholSat)/(rhovSat - rholSat), scalar(1)), scalar(0)); - - Info<< "max-min gamma: " << max(gamma).value() - << " " << min(gamma).value() << endl; - - psiModel->correct(); - - //Info<< "min a: " << 1.0/sqrt(max(psi)).value() << endl; -} diff --git a/applications/solvers/multiphase/lesCavitatingFoam/lesCavitatingFoam.C b/applications/solvers/multiphase/lesCavitatingFoam/lesCavitatingFoam.C deleted file mode 100644 index 2ad2dfb04fc..00000000000 --- a/applications/solvers/multiphase/lesCavitatingFoam/lesCavitatingFoam.C +++ /dev/null @@ -1,94 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Application - lesCavitatingFoam - -Description - Transient cavitation code with LES turbulence. - -\*---------------------------------------------------------------------------*/ - -#include "fvCFD.H" -#include "barotropicCompressibilityModel.H" -#include "twoPhaseMixture.H" -#include "incompressible/LESModel/LESModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -int main(int argc, char *argv[]) -{ - -# include "setRootCase.H" - -# include "createTime.H" -# include "createMesh.H" -# include "readThermodynamicProperties.H" -# include "readControls.H" -# include "createFields.H" -# include "initContinuityErrs.H" -# include "compressibleCourantNo.H" -# include "setInitialDeltaT.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - - Info<< "\nStarting time loop\n" << endl; - - while (runTime.run()) - { -# include "readControls.H" -# include "CourantNo.H" -# include "setDeltaT.H" - - runTime++; - Info<< "Time = " << runTime.timeName() << nl << endl; - - turbulence->correct(); - - for (int outerCorr=0; outerCorr<nOuterCorr; outerCorr++) - { -# include "rhoEqn.H" -# include "gammaPsi.H" -# include "UEqn.H" - - for (int corr=0; corr<nCorr; corr++) - { -# include "pEqn.H" - } - } - - runTime.write(); - - Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" - << " ClockTime = " << runTime.elapsedClockTime() << " s" - << nl << endl; - } - - Info<< "\n end \n"; - - return(0); -} - - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/lesCavitatingFoam/pEqn.H b/applications/solvers/multiphase/lesCavitatingFoam/pEqn.H deleted file mode 100644 index c9382dfc0fb..00000000000 --- a/applications/solvers/multiphase/lesCavitatingFoam/pEqn.H +++ /dev/null @@ -1,80 +0,0 @@ -{ - if (nOuterCorr == 1) - { - p = - ( - rho - - (1.0 - gamma)*rhol0 - - ((gamma*psiv + (1.0 - gamma)*psil) - psi)*pSat - )/psi; - } - - surfaceScalarField rhof = fvc::interpolate(rho, "rhof"); - - volScalarField rUA = 1.0/UEqn.A(); - surfaceScalarField rUAf("rUAf", rhof*fvc::interpolate(rUA)); - volVectorField HbyA = rUA*UEqn.H(); - - phiv = (fvc::interpolate(HbyA) & mesh.Sf()) - + fvc::ddtPhiCorr(rUA, rho, U, phiv); - - p.boundaryField().updateCoeffs(); - - surfaceScalarField phiGradp = rUAf*mesh.magSf()*fvc::snGrad(p); - - phiv -= phiGradp/rhof; - -# include "resetPhivPatches.H" - - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) - { - fvScalarMatrix pEqn - ( - fvm::ddt(psi, p) - - (rhol0 + (psil - psiv)*pSat)*fvc::ddt(gamma) - pSat*fvc::ddt(psi) - + fvc::div(phiv, rho) - + fvc::div(phiGradp) - - fvm::laplacian(rUAf, p) - ); - - pEqn.solve(); - - if (nonOrth == nNonOrthCorr) - { - phiv += (phiGradp + pEqn.flux())/rhof; - } - } - - Info<< "max-min p: " << max(p).value() - << " " << min(p).value() << endl; - - - U = HbyA - rUA*fvc::grad(p); - - // Remove the swirl component of velocity for "wedge" cases - if (piso.found("removeSwirl")) - { - label swirlCmpt(readLabel(piso.lookup("removeSwirl"))); - - Info<< "Removing swirl component-" << swirlCmpt << " of U" << endl; - U.field().replace(swirlCmpt, 0.0); - } - - U.correctBoundaryConditions(); - - Info<< "max(U) " << max(mag(U)).value() << endl; - - rho == max - ( - psi*p - + (1.0 - gamma)*rhol0 - + ((gamma*psiv + (1.0 - gamma)*psil) - psi)*pSat, - rhoMin - ); - - Info<< "max-min rho: " << max(rho).value() - << " " << min(rho).value() << endl; - -# include "gammaPsi.H" - -} diff --git a/applications/solvers/multiphase/lesCavitatingFoam/readControls.H b/applications/solvers/multiphase/lesCavitatingFoam/readControls.H deleted file mode 100644 index f53e7b9eb1c..00000000000 --- a/applications/solvers/multiphase/lesCavitatingFoam/readControls.H +++ /dev/null @@ -1,9 +0,0 @@ -#include "readTimeControls.H" - -scalar maxAcousticCo -( - readScalar(runTime.controlDict().lookup("maxAcousticCo")) -); - - -#include "readPISOControls.H" diff --git a/applications/solvers/multiphase/lesCavitatingFoam/readThermodynamicProperties.H b/applications/solvers/multiphase/lesCavitatingFoam/readThermodynamicProperties.H deleted file mode 100644 index d3fbb9307aa..00000000000 --- a/applications/solvers/multiphase/lesCavitatingFoam/readThermodynamicProperties.H +++ /dev/null @@ -1,27 +0,0 @@ - Info<< "Reading thermodynamicProperties\n" << endl; - - IOdictionary thermodynamicProperties - ( - IOobject - ( - "thermodynamicProperties", - runTime.constant(), - mesh, - IOobject::MUST_READ, - IOobject::NO_WRITE - ) - ); - - dimensionedScalar psil(thermodynamicProperties.lookup("psil")); - - dimensionedScalar rholSat(thermodynamicProperties.lookup("rholSat")); - - dimensionedScalar psiv(thermodynamicProperties.lookup("psiv")); - - dimensionedScalar pSat(thermodynamicProperties.lookup("pSat")); - - dimensionedScalar rhovSat("rhovSat", psiv*pSat); - - dimensionedScalar rhol0("rhol0", rholSat - pSat*psil); - - dimensionedScalar rhoMin(thermodynamicProperties.lookup("rhoMin")); diff --git a/applications/solvers/multiphase/lesCavitatingFoam/resetPhiPatches.H b/applications/solvers/multiphase/lesCavitatingFoam/resetPhiPatches.H deleted file mode 100644 index e7d0c2f93ea..00000000000 --- a/applications/solvers/multiphase/lesCavitatingFoam/resetPhiPatches.H +++ /dev/null @@ -1,15 +0,0 @@ -fvsPatchScalarFieldField& phiPatches = phi.boundaryField(); -const fvPatchScalarFieldField& rhoPatches = rho.boundaryField(); -const fvPatchVectorFieldField& Upatches = U.boundaryField(); -const fvsPatchVectorFieldField& SfPatches = mesh.Sf().boundaryField(); - -forAll(phiPatches, patchI) -{ - if (phi.boundaryField().types()[patchI] == "calculated") - { - calculatedFvsPatchScalarField& phiPatch = - refCast<calculatedFvsPatchScalarField>(phiPatches[patchI]); - - phiPatch == ((rhoPatches[patchI]*Upatches[patchI]) & SfPatches[patchI]); - } -} diff --git a/applications/solvers/multiphase/lesCavitatingFoam/resetPhivPatches.H b/applications/solvers/multiphase/lesCavitatingFoam/resetPhivPatches.H deleted file mode 100644 index 7e8b040bb6e..00000000000 --- a/applications/solvers/multiphase/lesCavitatingFoam/resetPhivPatches.H +++ /dev/null @@ -1,14 +0,0 @@ -surfaceScalarField::GeometricBoundaryField& phivPatches = phiv.boundaryField(); -const volVectorField::GeometricBoundaryField& Upatches = U.boundaryField(); -const surfaceVectorField::GeometricBoundaryField& SfPatches = mesh.Sf().boundaryField(); - -forAll(phivPatches, patchI) -{ - if (phiv.boundaryField().types()[patchI] == "calculated") - { - calculatedFvsPatchScalarField& phivPatch = - refCast<calculatedFvsPatchScalarField>(phivPatches[patchI]); - - phivPatch == (Upatches[patchI] & SfPatches[patchI]); - } -} diff --git a/applications/solvers/multiphase/lesCavitatingFoam/rhoEqn.H b/applications/solvers/multiphase/lesCavitatingFoam/rhoEqn.H deleted file mode 100644 index d0bd6e1dad3..00000000000 --- a/applications/solvers/multiphase/lesCavitatingFoam/rhoEqn.H +++ /dev/null @@ -1,16 +0,0 @@ -{ - fvScalarMatrix rhoEqn - ( - fvm::ddt(rho) - + fvm::div(phiv, rho) - ); - - rhoEqn.solve(); - - phi = rhoEqn.flux(); - - Info<< "max-min rho: " << max(rho).value() - << " " << min(rho).value() << endl; - - rho == max(rho, rhoMin); -} diff --git a/applications/solvers/multiphase/lesCavitatingFoam/setDeltaT.H b/applications/solvers/multiphase/lesCavitatingFoam/setDeltaT.H deleted file mode 100644 index 012a5276e8c..00000000000 --- a/applications/solvers/multiphase/lesCavitatingFoam/setDeltaT.H +++ /dev/null @@ -1,54 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Global - setDeltaT - -Description - Reset the timestep to maintain a constant maximum courant Number. - Reduction of time-step is imediate but increase is damped to avoid - unstable oscillations. - -\*---------------------------------------------------------------------------*/ - -if (adjustTimeStep) -{ - scalar maxDeltaTFact = - min(maxCo/(CoNum + SMALL), maxAcousticCo/(acousticCoNum + SMALL)); - - scalar deltaTFact = min(min(maxDeltaTFact, 1.0 + 0.1*maxDeltaTFact), 1.2); - - runTime.setDeltaT - ( - min - ( - deltaTFact*runTime.deltaT().value(), - maxDeltaT - ) - ); - - Info<< "deltaT = " << runTime.deltaT().value() << endl; -} - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/lesCavitatingFoam/setInitialDeltaT.H b/applications/solvers/multiphase/lesCavitatingFoam/setInitialDeltaT.H deleted file mode 100644 index 237cacd05a2..00000000000 --- a/applications/solvers/multiphase/lesCavitatingFoam/setInitialDeltaT.H +++ /dev/null @@ -1,54 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Global - setInitialDeltaT - -Description - Set the initial timestep corresponding to the timestep adjustment - algorithm in setDeltaT - -\*---------------------------------------------------------------------------*/ - -if (adjustTimeStep) -{ -# include "CourantNo.H" - - if (CoNum > SMALL) - { - scalar maxDeltaTFact = - min(maxCo/(CoNum + SMALL), maxAcousticCo/(acousticCoNum + SMALL)); - - runTime.setDeltaT - ( - min - ( - maxDeltaTFact*runTime.deltaT().value(), - maxDeltaT - ) - ); - } -} - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/lesInterFoam/Make/files b/applications/solvers/multiphase/lesInterFoam/Make/files deleted file mode 100644 index 40039bd1a7d..00000000000 --- a/applications/solvers/multiphase/lesInterFoam/Make/files +++ /dev/null @@ -1,3 +0,0 @@ -lesInterFoam.C - -EXE = $(FOAM_APPBIN)/lesInterFoam diff --git a/applications/solvers/multiphase/lesInterFoam/Make/options b/applications/solvers/multiphase/lesInterFoam/Make/options deleted file mode 100644 index 43c523e2203..00000000000 --- a/applications/solvers/multiphase/lesInterFoam/Make/options +++ /dev/null @@ -1,15 +0,0 @@ -EXE_INC = \ - -Iaveraging \ - -I../interFoam \ - -I$(LIB_SRC)/transportModels \ - -I$(LIB_SRC)/transportModels/incompressible/lnInclude \ - -I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \ - -I$(LIB_SRC)/turbulenceModels/LES \ - -I$(LIB_SRC)/turbulenceModels/LES/LESdeltas/lnInclude \ - -I$(LIB_SRC)/finiteVolume/lnInclude - -EXE_LIBS = \ - -linterfaceProperties \ - -lincompressibleTransportModels \ - -lincompressibleLESModels \ - -lfiniteVolume diff --git a/applications/solvers/multiphase/lesInterFoam/UEqn.H b/applications/solvers/multiphase/lesInterFoam/UEqn.H deleted file mode 100644 index 1bf56f02dd1..00000000000 --- a/applications/solvers/multiphase/lesInterFoam/UEqn.H +++ /dev/null @@ -1,32 +0,0 @@ - surfaceScalarField muEff - ( - "muEff", - twoPhaseProperties.muf() - + fvc::interpolate(rho*turbulence->nuSgs()) - ); - - fvVectorMatrix UEqn - ( - fvm::ddt(rho, U) - + fvm::div(rhoPhi, U) - - fvm::laplacian(muEff, U) - - (fvc::grad(U) & fvc::grad(muEff)) - //- fvc::div(muEff*(fvc::interpolate(dev(fvc::grad(U))) & mesh.Sf())) - ); - - if (momentumPredictor) - { - solve - ( - UEqn - == - fvc::reconstruct - ( - ( - fvc::interpolate(interface.sigmaK())*fvc::snGrad(gamma) - - ghf*fvc::snGrad(rho) - - fvc::snGrad(pd) - ) * mesh.magSf() - ) - ); - } diff --git a/applications/solvers/multiphase/lesInterFoam/createFields.H b/applications/solvers/multiphase/lesInterFoam/createFields.H deleted file mode 100644 index c622be15611..00000000000 --- a/applications/solvers/multiphase/lesInterFoam/createFields.H +++ /dev/null @@ -1,115 +0,0 @@ - Info<< "Reading field pd\n" << endl; - volScalarField pd - ( - IOobject - ( - "pd", - runTime.timeName(), - mesh, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh - ); - - Info<< "Reading field gamma\n" << endl; - volScalarField gamma - ( - IOobject - ( - "gamma", - runTime.timeName(), - mesh, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh - ); - - Info<< "Reading field U\n" << endl; - volVectorField U - ( - IOobject - ( - "U", - runTime.timeName(), - mesh, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh - ); - -# include "createPhi.H" - - Info<< "Reading transportProperties\n" << endl; - twoPhaseMixture twoPhaseProperties(U, phi, "gamma"); - - const dimensionedScalar& rho1 = twoPhaseProperties.rho1(); - const dimensionedScalar& rho2 = twoPhaseProperties.rho2(); - - - // Need to store rho for ddt(rho, U) - volScalarField rho - ( - IOobject - ( - "rho", - runTime.timeName(), - mesh, - IOobject::READ_IF_PRESENT - ), - gamma*rho1 + (scalar(1) - gamma)*rho2, - gamma.boundaryField().types() - ); - rho.oldTime(); - - // Mass flux - // Initialisation does not matter because rhoPhi is reset after the - // gamma solution before it is used in the U equation. - surfaceScalarField rhoPhi - ( - IOobject - ( - "rho*phi", - runTime.timeName(), - mesh, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - rho1*phi - ); - - - label pdRefCell = 0; - scalar pdRefValue = 0.0; - setRefCell(pd, mesh.solutionDict().subDict("PISO"), pdRefCell, pdRefValue); - - - Info<< "Calculating field g.h\n" << endl; - volScalarField gh("gh", g & mesh.C()); - surfaceScalarField ghf("gh", g & mesh.Cf()); - - - volScalarField p - ( - IOobject - ( - "p", - runTime.timeName(), - mesh, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - pd + rho*gh - ); - - - // Construct interface from gamma distribution - interfaceProperties interface(gamma, U, twoPhaseProperties); - - // Construct LES model - autoPtr<incompressible::LESModel> turbulence - ( - incompressible::LESModel::New(U, phi, twoPhaseProperties) - ); diff --git a/applications/solvers/multiphase/lesInterFoam/lesInterFoam.C b/applications/solvers/multiphase/lesInterFoam/lesInterFoam.C deleted file mode 100644 index 8d109f03b39..00000000000 --- a/applications/solvers/multiphase/lesInterFoam/lesInterFoam.C +++ /dev/null @@ -1,103 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Application - lesInterFoam - -Description - Solver for 2 incompressible, isothermal immiscible fluids using a VOF - (volume of fluid) phase-fraction based interface capturing approach. - The momentum and other fluid properties are of the "mixture" and a single - momentum equation is solved. Turbulence is modelled using a run-time - selectable incompressible LES model. - -\*---------------------------------------------------------------------------*/ - -#include "fvCFD.H" -#include "MULES.H" -#include "subCycle.H" -#include "interfaceProperties.H" -#include "twoPhaseMixture.H" -#include "incompressible/LESModel/LESModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -int main(int argc, char *argv[]) -{ - #include "setRootCase.H" - #include "createTime.H" - #include "createMesh.H" - #include "readEnvironmentalProperties.H" - #include "readPISOControls.H" - #include "initContinuityErrs.H" - #include "createFields.H" - #include "readTimeControls.H" - #include "correctPhi.H" - #include "CourantNo.H" - #include "setInitialDeltaT.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - - Info<< "\nStarting time loop\n" << endl; - - while (runTime.run()) - { - #include "readPISOControls.H" - #include "readTimeControls.H" - #include "CourantNo.H" - #include "setDeltaT.H" - - runTime++; - Info<< "Time = " << runTime.timeName() << nl << endl; - - #include "gammaEqnSubCycle.H" - - turbulence->correct(); - - #include "UEqn.H" - - // --- PISO loop - for (int corr=0; corr < nCorr; corr++) - { - #include "pEqn.H" - } - - #include "continuityErrs.H" - - p = pd + rho*gh; - - runTime.write(); - - Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" - << " ClockTime = " << runTime.elapsedClockTime() << " s" - << nl << endl; - } - - Info<< "End\n" << endl; - - return(0); -} - - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/multiphaseInterFoam/Make/options b/applications/solvers/multiphase/multiphaseInterFoam/Make/options index cd906bfa53e..1fc821726c9 100644 --- a/applications/solvers/multiphase/multiphaseInterFoam/Make/options +++ b/applications/solvers/multiphase/multiphaseInterFoam/Make/options @@ -6,9 +6,13 @@ EXE_INC = \ -I$(LIB_SRC)/transportModels \ -I$(LIB_SRC)/transportModels/incompressible/lnInclude \ -I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \ + -I$(LIB_SRC)/turbulenceModels/incompressible/turbulenceModel \ -I$(LIB_SRC)/finiteVolume/lnInclude EXE_LIBS = \ -linterfaceProperties \ -lincompressibleTransportModels \ + -lincompressibleTransportModels \ + -lincompressibleRASModels \ + -lincompressibleLESModels \ -lfiniteVolume diff --git a/applications/solvers/multiphase/multiphaseInterFoam/UEqn.H b/applications/solvers/multiphase/multiphaseInterFoam/UEqn.H index 43cc2cb183a..5ce0c0c0884 100644 --- a/applications/solvers/multiphase/multiphaseInterFoam/UEqn.H +++ b/applications/solvers/multiphase/multiphaseInterFoam/UEqn.H @@ -1,10 +1,34 @@ - surfaceScalarField muf = mixture.muf(); + surfaceScalarField muEff + ( + "muEff", + mixture.muf() + + fvc::interpolate(rho*turbulence->nut()) + ); fvVectorMatrix UEqn ( fvm::ddt(rho, U) + fvm::div(mixture.rhoPhi(), U) - - fvm::laplacian(muf, U) - - (fvc::grad(U) & fvc::grad(muf)) - //- fvc::div(muf*(mesh.Sf() & fvc::interpolate(fvc::grad(U)().T()))) + - fvm::laplacian(muEff, U) + - (fvc::grad(U) & fvc::grad(muEff)) + //- fvc::div(muEff*(fvc::interpolate(dev(fvc::grad(U))) & mesh.Sf())) ); + + UEqn.relax(); + + if (momentumPredictor) + { + solve + ( + UEqn + == + fvc::reconstruct + ( + ( + mixture.surfaceTensionForce() + - ghf*fvc::snGrad(rho) + - fvc::snGrad(pd) + ) * mesh.magSf() + ) + ); + } diff --git a/applications/solvers/multiphase/multiphaseInterFoam/createFields.H b/applications/solvers/multiphase/multiphaseInterFoam/createFields.H index 4f71f75ba48..aa62d0f2a17 100644 --- a/applications/solvers/multiphase/multiphaseInterFoam/createFields.H +++ b/applications/solvers/multiphase/multiphaseInterFoam/createFields.H @@ -46,9 +46,31 @@ Info<< "Calculating field g.h\n" << endl; + volScalarField gh("gh", g & mesh.C()); surfaceScalarField ghf("gh", g & mesh.Cf()); + volScalarField p + ( + IOobject + ( + "p", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::AUTO_WRITE + ), + pd + rho*gh + ); + + label pdRefCell = 0; scalar pdRefValue = 0.0; setRefCell(pd, mesh.solutionDict().subDict("PISO"), pdRefCell, pdRefValue); + + + // Construct incompressible turbulence model + autoPtr<incompressible::turbulenceModel> turbulence + ( + incompressible::turbulenceModel::New(U, phi, mixture) + ); diff --git a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterFoam.C b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterFoam.C index 5dd13984bf9..edd2bca8809 100644 --- a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterFoam.C +++ b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseInterFoam.C @@ -29,38 +29,40 @@ Description Solver for n incompressible fluids which captures the interfaces and includes surface-tension and contact-angle effects for each. + Turbulence modelling is generic, i.e. laminar, RAS or LES may be selected. + \*---------------------------------------------------------------------------*/ #include "fvCFD.H" #include "multiphaseMixture.H" +#include "turbulenceModel.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // int main(int argc, char *argv[]) { - -# include "setRootCase.H" -# include "createTime.H" -# include "createMesh.H" -# include "readEnvironmentalProperties.H" -# include "readPISOControls.H" -# include "initContinuityErrs.H" -# include "createFields.H" -# include "readTimeControls.H" -# include "correctPhi.H" -# include "CourantNo.H" -# include "setInitialDeltaT.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + #include "setRootCase.H" + #include "createTime.H" + #include "createMesh.H" + #include "readEnvironmentalProperties.H" + #include "readPISOControls.H" + #include "initContinuityErrs.H" + #include "createFields.H" + #include "readTimeControls.H" + #include "correctPhi.H" + #include "CourantNo.H" + #include "setInitialDeltaT.H" + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // Info<< "\nStarting time loop\n" << endl; while (runTime.run()) { -# include "readPISOControls.H" -# include "readTimeControls.H" -# include "CourantNo.H" -# include "setDeltaT.H" + #include "readPISOControls.H" + #include "readTimeControls.H" + #include "CourantNo.H" + #include "setDeltaT.H" runTime++; @@ -69,15 +71,19 @@ int main(int argc, char *argv[]) mixture.correct(); rho = mixture.rho(); -# include "UEqn.H" + #include "UEqn.H" // --- PISO loop for (int corr=0; corr<nCorr; corr++) { -# include "pEqn.H" + #include "pEqn.H" } -# include "continuityErrs.H" + #include "continuityErrs.H" + + p = pd + rho*gh; + + turbulence->correct(); runTime.write(); diff --git a/applications/solvers/multiphase/rasCavitatingFoam/CourantNo.H b/applications/solvers/multiphase/rasCavitatingFoam/CourantNo.H deleted file mode 100644 index 014944e191f..00000000000 --- a/applications/solvers/multiphase/rasCavitatingFoam/CourantNo.H +++ /dev/null @@ -1,59 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Global - CourantNo - -Description - Calculates and outputs the mean and maximum Courant Numbers. - -\*---------------------------------------------------------------------------*/ - -scalar CoNum = 0.0; -scalar meanCoNum = 0.0; -scalar acousticCoNum = 0.0; - -if (mesh.nInternalFaces()) -{ - surfaceScalarField SfUfbyDelta = - mesh.surfaceInterpolation::deltaCoeffs()*mag(phiv); - - CoNum = max(SfUfbyDelta/mesh.magSf()) - .value()*runTime.deltaT().value(); - - meanCoNum = (sum(SfUfbyDelta)/sum(mesh.magSf())) - .value()*runTime.deltaT().value(); - - acousticCoNum = max - ( - mesh.surfaceInterpolation::deltaCoeffs()/sqrt(fvc::interpolate(psi)) - ).value()*runTime.deltaT().value(); -} - -Info<< "phiv Courant Number mean: " << meanCoNum - << " max: " << CoNum - << " acoustic max: " << acousticCoNum - << endl; - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/rasCavitatingFoam/Make/files b/applications/solvers/multiphase/rasCavitatingFoam/Make/files deleted file mode 100644 index 45094637969..00000000000 --- a/applications/solvers/multiphase/rasCavitatingFoam/Make/files +++ /dev/null @@ -1,3 +0,0 @@ -rasCavitatingFoam.C - -EXE = $(FOAM_APPBIN)/rasCavitatingFoam diff --git a/applications/solvers/multiphase/rasCavitatingFoam/Make/options b/applications/solvers/multiphase/rasCavitatingFoam/Make/options deleted file mode 100644 index a694ac21793..00000000000 --- a/applications/solvers/multiphase/rasCavitatingFoam/Make/options +++ /dev/null @@ -1,14 +0,0 @@ -EXE_INC = \ - -I$(LIB_SRC)/finiteVolume/lnInclude \ - -I$(LIB_SRC)/transportModels \ - -I$(LIB_SRC)/transportModels/incompressible/lnInclude \ - -I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \ - -I$(LIB_SRC)/turbulenceModels/RAS \ - -I$(LIB_SRC)/thermophysicalModels/barotropicCompressibilityModel/lnInclude - -EXE_LIBS = \ - -lincompressibleTransportModels \ - -lincompressibleRASModels \ - -lfiniteVolume \ - -lbarotropicCompressibilityModel - diff --git a/applications/solvers/multiphase/rasCavitatingFoam/UEqn.H b/applications/solvers/multiphase/rasCavitatingFoam/UEqn.H deleted file mode 100644 index 374e410c2e0..00000000000 --- a/applications/solvers/multiphase/rasCavitatingFoam/UEqn.H +++ /dev/null @@ -1,20 +0,0 @@ - surfaceScalarField muEff - ( - "muEff", - twoPhaseProperties.muf() - + fvc::interpolate(rho*turbulence->nut()) - ); - - fvVectorMatrix UEqn - ( - fvm::ddt(rho, U) - + fvm::div(phi, U) - - fvm::laplacian(muEff, U) - //- (fvc::grad(U) & fvc::grad(muf)) - - fvc::div(muEff*(fvc::interpolate(dev(fvc::grad(U))) & mesh.Sf())) - ); - - if (momentumPredictor) - { - solve(UEqn == -fvc::grad(p)); - } diff --git a/applications/solvers/multiphase/rasCavitatingFoam/continuityErrs.H b/applications/solvers/multiphase/rasCavitatingFoam/continuityErrs.H deleted file mode 100644 index 6f1622510f6..00000000000 --- a/applications/solvers/multiphase/rasCavitatingFoam/continuityErrs.H +++ /dev/null @@ -1,22 +0,0 @@ -{ - volScalarField thermoRho = psi*p + (1.0 - gamma)*rhol0; - - dimensionedScalar totalMass = fvc::domainIntegrate(rho); - - scalar sumLocalContErr = - ( - fvc::domainIntegrate(mag(rho - thermoRho))/totalMass - ).value(); - - scalar globalContErr = - ( - fvc::domainIntegrate(rho - thermoRho)/totalMass - ).value(); - - cumulativeContErr += globalContErr; - - Info<< "time step continuity errors : sum local = " << sumLocalContErr - << ", global = " << globalContErr - << ", cumulative = " << cumulativeContErr - << endl; -} diff --git a/applications/solvers/multiphase/rasCavitatingFoam/createFields.H b/applications/solvers/multiphase/rasCavitatingFoam/createFields.H deleted file mode 100644 index 37ff01d41f6..00000000000 --- a/applications/solvers/multiphase/rasCavitatingFoam/createFields.H +++ /dev/null @@ -1,85 +0,0 @@ - Info<< "Reading field p\n" << endl; - volScalarField p - ( - IOobject - ( - "p", - runTime.timeName(), - mesh, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh - ); - - volScalarField rho - ( - IOobject - ( - "rho", - runTime.timeName(), - mesh, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh - ); - - volScalarField gamma - ( - IOobject - ( - "gamma", - runTime.timeName(), - mesh, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - max(min((rho - rholSat)/(rhovSat - rholSat), scalar(1)), scalar(0)) - ); - gamma.oldTime(); - - Info<< "Creating compressibilityModel\n" << endl; - autoPtr<barotropicCompressibilityModel> psiModel = - barotropicCompressibilityModel::New - ( - thermodynamicProperties, - gamma - ); - - const volScalarField& psi = psiModel->psi(); - - rho == max - ( - psi*p - + (1.0 - gamma)*rhol0 - + ((gamma*psiv + (1.0 - gamma)*psil) - psi)*pSat, - rhoMin - ); - - Info<< "Reading field U\n" << endl; - volVectorField U - ( - IOobject - ( - "U", - runTime.timeName(), - mesh, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh - ); - -# include "createPhiv.H" -# include "compressibleCreatePhi.H" - - Info<< "Reading transportProperties\n" << endl; - - twoPhaseMixture twoPhaseProperties(U, phiv, "gamma"); - - // Create RAS turbulence model - autoPtr<incompressible::RASModel> turbulence - ( - incompressible::RASModel::New(U, phiv, twoPhaseProperties) - ); diff --git a/applications/solvers/multiphase/rasCavitatingFoam/gammaPsi.H b/applications/solvers/multiphase/rasCavitatingFoam/gammaPsi.H deleted file mode 100644 index b259ddd3222..00000000000 --- a/applications/solvers/multiphase/rasCavitatingFoam/gammaPsi.H +++ /dev/null @@ -1,10 +0,0 @@ -{ - gamma = max(min((rho - rholSat)/(rhovSat - rholSat), scalar(1)), scalar(0)); - - Info<< "max-min gamma: " << max(gamma).value() - << " " << min(gamma).value() << endl; - - psiModel->correct(); - - //Info<< "min a: " << 1.0/sqrt(max(psi)).value() << endl; -} diff --git a/applications/solvers/multiphase/rasCavitatingFoam/pEqn.H b/applications/solvers/multiphase/rasCavitatingFoam/pEqn.H deleted file mode 100644 index c9382dfc0fb..00000000000 --- a/applications/solvers/multiphase/rasCavitatingFoam/pEqn.H +++ /dev/null @@ -1,80 +0,0 @@ -{ - if (nOuterCorr == 1) - { - p = - ( - rho - - (1.0 - gamma)*rhol0 - - ((gamma*psiv + (1.0 - gamma)*psil) - psi)*pSat - )/psi; - } - - surfaceScalarField rhof = fvc::interpolate(rho, "rhof"); - - volScalarField rUA = 1.0/UEqn.A(); - surfaceScalarField rUAf("rUAf", rhof*fvc::interpolate(rUA)); - volVectorField HbyA = rUA*UEqn.H(); - - phiv = (fvc::interpolate(HbyA) & mesh.Sf()) - + fvc::ddtPhiCorr(rUA, rho, U, phiv); - - p.boundaryField().updateCoeffs(); - - surfaceScalarField phiGradp = rUAf*mesh.magSf()*fvc::snGrad(p); - - phiv -= phiGradp/rhof; - -# include "resetPhivPatches.H" - - for (int nonOrth=0; nonOrth<=nNonOrthCorr; nonOrth++) - { - fvScalarMatrix pEqn - ( - fvm::ddt(psi, p) - - (rhol0 + (psil - psiv)*pSat)*fvc::ddt(gamma) - pSat*fvc::ddt(psi) - + fvc::div(phiv, rho) - + fvc::div(phiGradp) - - fvm::laplacian(rUAf, p) - ); - - pEqn.solve(); - - if (nonOrth == nNonOrthCorr) - { - phiv += (phiGradp + pEqn.flux())/rhof; - } - } - - Info<< "max-min p: " << max(p).value() - << " " << min(p).value() << endl; - - - U = HbyA - rUA*fvc::grad(p); - - // Remove the swirl component of velocity for "wedge" cases - if (piso.found("removeSwirl")) - { - label swirlCmpt(readLabel(piso.lookup("removeSwirl"))); - - Info<< "Removing swirl component-" << swirlCmpt << " of U" << endl; - U.field().replace(swirlCmpt, 0.0); - } - - U.correctBoundaryConditions(); - - Info<< "max(U) " << max(mag(U)).value() << endl; - - rho == max - ( - psi*p - + (1.0 - gamma)*rhol0 - + ((gamma*psiv + (1.0 - gamma)*psil) - psi)*pSat, - rhoMin - ); - - Info<< "max-min rho: " << max(rho).value() - << " " << min(rho).value() << endl; - -# include "gammaPsi.H" - -} diff --git a/applications/solvers/multiphase/rasCavitatingFoam/rasCavitatingFoam.C b/applications/solvers/multiphase/rasCavitatingFoam/rasCavitatingFoam.C deleted file mode 100644 index 51d2a31dde2..00000000000 --- a/applications/solvers/multiphase/rasCavitatingFoam/rasCavitatingFoam.C +++ /dev/null @@ -1,94 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Application - rasCavitatingFoam - -Description - Transient cavitation code with RAS turbulence. - -\*---------------------------------------------------------------------------*/ - -#include "fvCFD.H" -#include "barotropicCompressibilityModel.H" -#include "twoPhaseMixture.H" -#include "incompressible/RASModel/RASModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -int main(int argc, char *argv[]) -{ - -# include "setRootCase.H" - -# include "createTime.H" -# include "createMesh.H" -# include "readThermodynamicProperties.H" -# include "readControls.H" -# include "createFields.H" -# include "initContinuityErrs.H" -# include "compressibleCourantNo.H" -# include "setInitialDeltaT.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - - Info<< "\nStarting time loop\n" << endl; - - while (runTime.run()) - { -# include "readControls.H" -# include "CourantNo.H" -# include "setDeltaT.H" - - runTime++; - Info<< "Time = " << runTime.timeName() << nl << endl; - - for (int outerCorr=0; outerCorr<nOuterCorr; outerCorr++) - { -# include "rhoEqn.H" -# include "gammaPsi.H" -# include "UEqn.H" - - for (int corr=0; corr<nCorr; corr++) - { -# include "pEqn.H" - } - } - - turbulence->correct(); - - runTime.write(); - - Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" - << " ClockTime = " << runTime.elapsedClockTime() << " s" - << nl << endl; - } - - Info<< "\n end \n"; - - return(0); -} - - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/rasCavitatingFoam/readControls.H b/applications/solvers/multiphase/rasCavitatingFoam/readControls.H deleted file mode 100644 index f53e7b9eb1c..00000000000 --- a/applications/solvers/multiphase/rasCavitatingFoam/readControls.H +++ /dev/null @@ -1,9 +0,0 @@ -#include "readTimeControls.H" - -scalar maxAcousticCo -( - readScalar(runTime.controlDict().lookup("maxAcousticCo")) -); - - -#include "readPISOControls.H" diff --git a/applications/solvers/multiphase/rasCavitatingFoam/readThermodynamicProperties.H b/applications/solvers/multiphase/rasCavitatingFoam/readThermodynamicProperties.H deleted file mode 100644 index d3fbb9307aa..00000000000 --- a/applications/solvers/multiphase/rasCavitatingFoam/readThermodynamicProperties.H +++ /dev/null @@ -1,27 +0,0 @@ - Info<< "Reading thermodynamicProperties\n" << endl; - - IOdictionary thermodynamicProperties - ( - IOobject - ( - "thermodynamicProperties", - runTime.constant(), - mesh, - IOobject::MUST_READ, - IOobject::NO_WRITE - ) - ); - - dimensionedScalar psil(thermodynamicProperties.lookup("psil")); - - dimensionedScalar rholSat(thermodynamicProperties.lookup("rholSat")); - - dimensionedScalar psiv(thermodynamicProperties.lookup("psiv")); - - dimensionedScalar pSat(thermodynamicProperties.lookup("pSat")); - - dimensionedScalar rhovSat("rhovSat", psiv*pSat); - - dimensionedScalar rhol0("rhol0", rholSat - pSat*psil); - - dimensionedScalar rhoMin(thermodynamicProperties.lookup("rhoMin")); diff --git a/applications/solvers/multiphase/rasCavitatingFoam/resetPhiPatches.H b/applications/solvers/multiphase/rasCavitatingFoam/resetPhiPatches.H deleted file mode 100644 index e7d0c2f93ea..00000000000 --- a/applications/solvers/multiphase/rasCavitatingFoam/resetPhiPatches.H +++ /dev/null @@ -1,15 +0,0 @@ -fvsPatchScalarFieldField& phiPatches = phi.boundaryField(); -const fvPatchScalarFieldField& rhoPatches = rho.boundaryField(); -const fvPatchVectorFieldField& Upatches = U.boundaryField(); -const fvsPatchVectorFieldField& SfPatches = mesh.Sf().boundaryField(); - -forAll(phiPatches, patchI) -{ - if (phi.boundaryField().types()[patchI] == "calculated") - { - calculatedFvsPatchScalarField& phiPatch = - refCast<calculatedFvsPatchScalarField>(phiPatches[patchI]); - - phiPatch == ((rhoPatches[patchI]*Upatches[patchI]) & SfPatches[patchI]); - } -} diff --git a/applications/solvers/multiphase/rasCavitatingFoam/resetPhivPatches.H b/applications/solvers/multiphase/rasCavitatingFoam/resetPhivPatches.H deleted file mode 100644 index 7e8b040bb6e..00000000000 --- a/applications/solvers/multiphase/rasCavitatingFoam/resetPhivPatches.H +++ /dev/null @@ -1,14 +0,0 @@ -surfaceScalarField::GeometricBoundaryField& phivPatches = phiv.boundaryField(); -const volVectorField::GeometricBoundaryField& Upatches = U.boundaryField(); -const surfaceVectorField::GeometricBoundaryField& SfPatches = mesh.Sf().boundaryField(); - -forAll(phivPatches, patchI) -{ - if (phiv.boundaryField().types()[patchI] == "calculated") - { - calculatedFvsPatchScalarField& phivPatch = - refCast<calculatedFvsPatchScalarField>(phivPatches[patchI]); - - phivPatch == (Upatches[patchI] & SfPatches[patchI]); - } -} diff --git a/applications/solvers/multiphase/rasCavitatingFoam/rhoEqn.H b/applications/solvers/multiphase/rasCavitatingFoam/rhoEqn.H deleted file mode 100644 index d0bd6e1dad3..00000000000 --- a/applications/solvers/multiphase/rasCavitatingFoam/rhoEqn.H +++ /dev/null @@ -1,16 +0,0 @@ -{ - fvScalarMatrix rhoEqn - ( - fvm::ddt(rho) - + fvm::div(phiv, rho) - ); - - rhoEqn.solve(); - - phi = rhoEqn.flux(); - - Info<< "max-min rho: " << max(rho).value() - << " " << min(rho).value() << endl; - - rho == max(rho, rhoMin); -} diff --git a/applications/solvers/multiphase/rasCavitatingFoam/setDeltaT.H b/applications/solvers/multiphase/rasCavitatingFoam/setDeltaT.H deleted file mode 100644 index 012a5276e8c..00000000000 --- a/applications/solvers/multiphase/rasCavitatingFoam/setDeltaT.H +++ /dev/null @@ -1,54 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Global - setDeltaT - -Description - Reset the timestep to maintain a constant maximum courant Number. - Reduction of time-step is imediate but increase is damped to avoid - unstable oscillations. - -\*---------------------------------------------------------------------------*/ - -if (adjustTimeStep) -{ - scalar maxDeltaTFact = - min(maxCo/(CoNum + SMALL), maxAcousticCo/(acousticCoNum + SMALL)); - - scalar deltaTFact = min(min(maxDeltaTFact, 1.0 + 0.1*maxDeltaTFact), 1.2); - - runTime.setDeltaT - ( - min - ( - deltaTFact*runTime.deltaT().value(), - maxDeltaT - ) - ); - - Info<< "deltaT = " << runTime.deltaT().value() << endl; -} - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/rasCavitatingFoam/setInitialDeltaT.H b/applications/solvers/multiphase/rasCavitatingFoam/setInitialDeltaT.H deleted file mode 100644 index 237cacd05a2..00000000000 --- a/applications/solvers/multiphase/rasCavitatingFoam/setInitialDeltaT.H +++ /dev/null @@ -1,54 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Global - setInitialDeltaT - -Description - Set the initial timestep corresponding to the timestep adjustment - algorithm in setDeltaT - -\*---------------------------------------------------------------------------*/ - -if (adjustTimeStep) -{ -# include "CourantNo.H" - - if (CoNum > SMALL) - { - scalar maxDeltaTFact = - min(maxCo/(CoNum + SMALL), maxAcousticCo/(acousticCoNum + SMALL)); - - runTime.setDeltaT - ( - min - ( - maxDeltaTFact*runTime.deltaT().value(), - maxDeltaT - ) - ); - } -} - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/rasInterFoam/Make/files b/applications/solvers/multiphase/rasInterFoam/Make/files deleted file mode 100644 index 39b992ad4db..00000000000 --- a/applications/solvers/multiphase/rasInterFoam/Make/files +++ /dev/null @@ -1,3 +0,0 @@ -rasInterFoam.C - -EXE = $(FOAM_APPBIN)/rasInterFoam diff --git a/applications/solvers/multiphase/rasInterFoam/Make/options b/applications/solvers/multiphase/rasInterFoam/Make/options deleted file mode 100644 index 04a3c57887c..00000000000 --- a/applications/solvers/multiphase/rasInterFoam/Make/options +++ /dev/null @@ -1,13 +0,0 @@ -EXE_INC = \ - -I../interFoam \ - -I$(LIB_SRC)/transportModels \ - -I$(LIB_SRC)/transportModels/incompressible/lnInclude \ - -I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \ - -I$(LIB_SRC)/turbulenceModels/RAS \ - -I$(LIB_SRC)/finiteVolume/lnInclude - -EXE_LIBS = \ - -linterfaceProperties \ - -lincompressibleTransportModels \ - -lincompressibleRASModels \ - -lfiniteVolume diff --git a/applications/solvers/multiphase/rasInterFoam/UEqn.H b/applications/solvers/multiphase/rasInterFoam/UEqn.H deleted file mode 100644 index c627f04d176..00000000000 --- a/applications/solvers/multiphase/rasInterFoam/UEqn.H +++ /dev/null @@ -1,32 +0,0 @@ - surfaceScalarField muEff - ( - "muEff", - twoPhaseProperties.muf() - + fvc::interpolate(rho*turbulence->nut()) - ); - - fvVectorMatrix UEqn - ( - fvm::ddt(rho, U) - + fvm::div(rhoPhi, U) - - fvm::laplacian(muEff, U) - - (fvc::grad(U) & fvc::grad(muEff)) - //- fvc::div(muEff*(fvc::interpolate(dev(fvc::grad(U))) & mesh.Sf())) - ); - - if (momentumPredictor) - { - solve - ( - UEqn - == - fvc::reconstruct - ( - ( - fvc::interpolate(interface.sigmaK())*fvc::snGrad(gamma) - - ghf*fvc::snGrad(rho) - - fvc::snGrad(pd) - ) * mesh.magSf() - ) - ); - } diff --git a/applications/solvers/multiphase/rasInterFoam/createFields.H b/applications/solvers/multiphase/rasInterFoam/createFields.H deleted file mode 100644 index e97a3abcb09..00000000000 --- a/applications/solvers/multiphase/rasInterFoam/createFields.H +++ /dev/null @@ -1,116 +0,0 @@ - Info<< "Reading field pd\n" << endl; - volScalarField pd - ( - IOobject - ( - "pd", - runTime.timeName(), - mesh, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh - ); - - Info<< "Reading field gamma\n" << endl; - volScalarField gamma - ( - IOobject - ( - "gamma", - runTime.timeName(), - mesh, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh - ); - - Info<< "Reading field U\n" << endl; - volVectorField U - ( - IOobject - ( - "U", - runTime.timeName(), - mesh, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh - ); - -# include "createPhi.H" - - Info<< "Reading transportProperties\n" << endl; - twoPhaseMixture twoPhaseProperties(U, phi, "gamma"); - - const dimensionedScalar& rho1 = twoPhaseProperties.rho1(); - const dimensionedScalar& rho2 = twoPhaseProperties.rho2(); - - - // Need to store rho for ddt(rho, U) - volScalarField rho - ( - IOobject - ( - "rho", - runTime.timeName(), - mesh, - IOobject::READ_IF_PRESENT - ), - gamma*rho1 + (scalar(1) - gamma)*rho2, - gamma.boundaryField().types() - ); - rho.oldTime(); - - - // Mass flux - // Initialisation does not matter because rhoPhi is reset after the - // gamma solution before it is used in the U equation. - surfaceScalarField rhoPhi - ( - IOobject - ( - "rho*phi", - runTime.timeName(), - mesh, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - rho1*phi - ); - - - label pdRefCell = 0; - scalar pdRefValue = 0.0; - setRefCell(pd, mesh.solutionDict().subDict("PISO"), pdRefCell, pdRefValue); - - - Info<< "Calculating field g.h\n" << endl; - volScalarField gh("gh", g & mesh.C()); - surfaceScalarField ghf("gh", g & mesh.Cf()); - - - volScalarField p - ( - IOobject - ( - "p", - runTime.timeName(), - mesh, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - pd + rho*gh - ); - - - // Construct interface from gamma distribution - interfaceProperties interface(gamma, U, twoPhaseProperties); - - // Construct LES model - autoPtr<incompressible::RASModel> turbulence - ( - incompressible::RASModel::New(U, phi, twoPhaseProperties) - ); diff --git a/applications/solvers/multiphase/rasInterFoam/rasInterFoam.C b/applications/solvers/multiphase/rasInterFoam/rasInterFoam.C deleted file mode 100644 index 33e85efd4b6..00000000000 --- a/applications/solvers/multiphase/rasInterFoam/rasInterFoam.C +++ /dev/null @@ -1,104 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Application - rasInterFoam - -Description - Solver for 2 incompressible, isothermal immiscible fluids using a VOF - (volume of fluid) phase-fraction based interface capturing approach. - The momentum and other fluid properties are of the "mixture" and a single - momentum equation is solved. Turbulence is modelled using a run-time - selectable incompressible RAS model. - -\*---------------------------------------------------------------------------*/ - -#include "fvCFD.H" -#include "MULES.H" -#include "subCycle.H" -#include "interfaceProperties.H" -#include "twoPhaseMixture.H" -#include "incompressible/RASModel/RASModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -int main(int argc, char *argv[]) -{ - #include "setRootCase.H" - #include "createTime.H" - #include "createMesh.H" - #include "readEnvironmentalProperties.H" - #include "readPISOControls.H" - #include "initContinuityErrs.H" - #include "createFields.H" - #include "readTimeControls.H" - #include "correctPhi.H" - #include "CourantNo.H" - #include "setInitialDeltaT.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - - Info<< "\nStarting time loop\n" << endl; - - while (runTime.run()) - { - #include "readPISOControls.H" - #include "readTimeControls.H" - #include "CourantNo.H" - #include "setDeltaT.H" - - runTime++; - - Info<< "Time = " << runTime.timeName() << nl << endl; - - #include "gammaEqnSubCycle.H" - - #include "UEqn.H" - - // --- PISO loop - for (int corr=0; corr < nCorr; corr++) - { - #include "pEqn.H" - } - - #include "continuityErrs.H" - - p = pd + rho*gh; - - turbulence->correct(); - - runTime.write(); - - Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" - << " ClockTime = " << runTime.elapsedClockTime() << " s" - << nl << endl; - } - - Info<< "End\n" << endl; - - return(0); -} - - -// ************************************************************************* // diff --git a/applications/solvers/multiphase/settlingFoam/UEqn.H b/applications/solvers/multiphase/settlingFoam/UEqn.H index 8dba5041c29..ac4c18ab19d 100644 --- a/applications/solvers/multiphase/settlingFoam/UEqn.H +++ b/applications/solvers/multiphase/settlingFoam/UEqn.H @@ -1,29 +1,31 @@ -// Solve the Momentum equation + // Solve the Momentum equation -fvVectorMatrix UEqn -( - fvm::ddt(rho, U) - + fvm::div(phi, U) - + fvc::div + fvVectorMatrix UEqn ( - (Alpha/(scalar(1.001) - Alpha))*(sqr(rhoc)/rho)*Vdj*Vdj, - "div(phiVdj,Vdj)" - ) - - fvm::laplacian(mu, U, "laplacian(muEff,U)") -); - -if (momentumPredictor) -{ - solve - ( - UEqn - == - fvc::reconstruct + fvm::ddt(rho, U) + + fvm::div(phi, U) + + fvc::div ( - ( - - ghf*fvc::snGrad(rho) - - fvc::snGrad(p) - )*mesh.magSf() + (Alpha/(scalar(1.001) - Alpha))*(sqr(rhoc)/rho)*Vdj*Vdj, + "div(phiVdj,Vdj)" ) + - fvm::laplacian(mu, U, "laplacian(muEff,U)") ); -} + + UEqn.relax(); + + if (momentumPredictor) + { + solve + ( + UEqn + == + fvc::reconstruct + ( + ( + - ghf*fvc::snGrad(rho) + - fvc::snGrad(p) + )*mesh.magSf() + ) + ); + } diff --git a/applications/solvers/multiphase/twoLiquidMixingFoam/Make/options b/applications/solvers/multiphase/twoLiquidMixingFoam/Make/options index ae5ccba0fd9..0e21fc2d642 100644 --- a/applications/solvers/multiphase/twoLiquidMixingFoam/Make/options +++ b/applications/solvers/multiphase/twoLiquidMixingFoam/Make/options @@ -2,9 +2,12 @@ EXE_INC = \ -I$(LIB_SRC)/transportModels \ -I$(LIB_SRC)/transportModels/incompressible/lnInclude \ -I$(LIB_SRC)/transportModels/interfaceProperties/lnInclude \ + -I$(LIB_SRC)/turbulenceModels/incompressible/turbulenceModel \ -I$(LIB_SRC)/finiteVolume/lnInclude EXE_LIBS = \ -linterfaceProperties \ -lincompressibleTransportModels \ + -lincompressibleRASModels \ + -lincompressibleLESModels \ -lfiniteVolume diff --git a/applications/solvers/multiphase/twoLiquidMixingFoam/UEqn.H b/applications/solvers/multiphase/twoLiquidMixingFoam/UEqn.H index 0ebaec44f58..5a945697caa 100644 --- a/applications/solvers/multiphase/twoLiquidMixingFoam/UEqn.H +++ b/applications/solvers/multiphase/twoLiquidMixingFoam/UEqn.H @@ -1,14 +1,21 @@ - surfaceScalarField muf = twoPhaseProperties.muf(); + surfaceScalarField muEff + ( + "muEff", + twoPhaseProperties.muf() + + fvc::interpolate(rho*turbulence->nut()) + ); fvVectorMatrix UEqn ( fvm::ddt(rho, U) + fvm::div(rhoPhi, U) - - fvm::laplacian(muf, U) - //- (fvc::grad(U) & fvc::grad(muf)) - - fvc::div(muf*(mesh.Sf() & fvc::interpolate(fvc::grad(U)().T()))) + - fvm::laplacian(muEff, U) + - (fvc::grad(U) & fvc::grad(muEff)) + //- fvc::div(muEff*(fvc::interpolate(dev(fvc::grad(U))) & mesh.Sf())) ); + UEqn.relax(); + if (momentumPredictor) { solve diff --git a/applications/solvers/multiphase/twoLiquidMixingFoam/createFields.H b/applications/solvers/multiphase/twoLiquidMixingFoam/createFields.H index 652d1ad64c4..bd7c3e2c9ff 100644 --- a/applications/solvers/multiphase/twoLiquidMixingFoam/createFields.H +++ b/applications/solvers/multiphase/twoLiquidMixingFoam/createFields.H @@ -12,12 +12,12 @@ mesh ); - Info<< "Reading field gamma\n" << endl; - volScalarField gamma + Info<< "Reading field alpha1\n" << endl; + volScalarField alpha1 ( IOobject ( - "gamma", + "alpha1", runTime.timeName(), mesh, IOobject::MUST_READ, @@ -43,21 +43,21 @@ # include "createPhi.H" Info<< "Reading transportProperties\n" << endl; - twoPhaseMixture twoPhaseProperties(U, phi, "gamma"); - + twoPhaseMixture twoPhaseProperties(U, phi); + const dimensionedScalar& rho1 = twoPhaseProperties.rho1(); const dimensionedScalar& rho2 = twoPhaseProperties.rho2(); dimensionedScalar Dab(twoPhaseProperties.lookup("Dab")); // Need to store rho for ddt(rho, U) - volScalarField rho("rho", gamma*rho1 + (scalar(1) - gamma)*rho2); + volScalarField rho("rho", alpha1*rho1 + (scalar(1) - alpha1)*rho2); rho.oldTime(); // Mass flux // Initialisation does not matter because rhoPhi is reset after the - // gamma solution before it is used in the U equation. + // alpha1 solution before it is used in the U equation. surfaceScalarField rhoPhi ( IOobject @@ -73,9 +73,31 @@ Info<< "Calculating field g.h\n" << endl; + volScalarField gh("gh", g & mesh.C()); surfaceScalarField ghf("gh", g & mesh.Cf()); + volScalarField p + ( + IOobject + ( + "p", + runTime.timeName(), + mesh, + IOobject::NO_READ, + IOobject::AUTO_WRITE + ), + pd + rho*gh + ); + + label pdRefCell = 0; scalar pdRefValue = 0.0; setRefCell(pd, mesh.solutionDict().subDict("PISO"), pdRefCell, pdRefValue); + + + // Construct incompressible turbulence model + autoPtr<incompressible::turbulenceModel> turbulence + ( + incompressible::turbulenceModel::New(U, phi, twoPhaseProperties) + ); diff --git a/applications/solvers/multiphase/twoLiquidMixingFoam/gammaEqn.H b/applications/solvers/multiphase/twoLiquidMixingFoam/gammaEqn.H deleted file mode 100644 index 144339f3989..00000000000 --- a/applications/solvers/multiphase/twoLiquidMixingFoam/gammaEqn.H +++ /dev/null @@ -1,19 +0,0 @@ -{ - fvScalarMatrix gammaEqn - ( - fvm::ddt(gamma) - + fvm::div(phi, gamma) - - fvm::laplacian(Dab, gamma) - ); - - gammaEqn.solve(); - - rhoPhi = gammaEqn.flux()*(rho1 - rho2) + phi*rho2; - rho = gamma*rho1 + (scalar(1) - gamma)*rho2; - - Info<< "Phase 1 volume fraction = " - << gamma.weightedAverage(mesh.V()).value() - << " Min(gamma) = " << min(gamma).value() - << " Max(gamma) = " << max(gamma).value() - << endl; -} diff --git a/applications/solvers/multiphase/twoLiquidMixingFoam/twoLiquidMixingFoam.C b/applications/solvers/multiphase/twoLiquidMixingFoam/twoLiquidMixingFoam.C index 64895530f6c..7f9b32a917d 100644 --- a/applications/solvers/multiphase/twoLiquidMixingFoam/twoLiquidMixingFoam.C +++ b/applications/solvers/multiphase/twoLiquidMixingFoam/twoLiquidMixingFoam.C @@ -28,10 +28,13 @@ Application Description Solver for mixing 2 incompressible fluids. + Turbulence modelling is generic, i.e. laminar, RAS or LES may be selected. + \*---------------------------------------------------------------------------*/ #include "fvCFD.H" #include "twoPhaseMixture.H" +#include "turbulenceModel.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -58,7 +61,7 @@ int main(int argc, char *argv[]) twoPhaseProperties.correct(); -# include "gammaEqn.H" +# include "alphaEqn.H" # include "UEqn.H" @@ -70,6 +73,10 @@ int main(int argc, char *argv[]) # include "continuityErrs.H" + p = pd + rho*gh; + + turbulence->correct(); + runTime.write(); Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" diff --git a/src/transportModels/interfaceProperties/Make/files b/src/transportModels/interfaceProperties/Make/files index 56f21e91b1c..a62008cee87 100644 --- a/src/transportModels/interfaceProperties/Make/files +++ b/src/transportModels/interfaceProperties/Make/files @@ -1,11 +1,11 @@ interfaceProperties.C interfaceCompression/interfaceCompression.C -gammaContactAngle/gammaContactAngle/gammaContactAngleFvPatchScalarField.C -gammaContactAngle/constantGammaContactAngle/constantGammaContactAngleFvPatchScalarField.C -gammaContactAngle/dynamicGammaContactAngle/dynamicGammaContactAngleFvPatchScalarField.C -gammaContactAngle/timeVaryingGammaContactAngle/timeVaryingGammaContactAngleFvPatchScalarField.C +alphaContactAngle/alphaContactAngle/alphaContactAngleFvPatchScalarField.C +alphaContactAngle/constantAlphaContactAngle/constantAlphaContactAngleFvPatchScalarField.C +alphaContactAngle/dynamicAlphaContactAngle/dynamicAlphaContactAngleFvPatchScalarField.C +alphaContactAngle/timeVaryingAlphaContactAngle/timeVaryingAlphaContactAngleFvPatchScalarField.C -gammaFixedPressure/gammaFixedPressureFvPatchScalarField.C +alphaFixedPressure/alphaFixedPressureFvPatchScalarField.C LIB = $(FOAM_LIBBIN)/libinterfaceProperties diff --git a/src/transportModels/interfaceProperties/gammaContactAngle/constantGammaContactAngle/constantGammaContactAngleFvPatchScalarField.C b/src/transportModels/interfaceProperties/gammaContactAngle/constantGammaContactAngle/constantGammaContactAngleFvPatchScalarField.C deleted file mode 100644 index d13c0c0c058..00000000000 --- a/src/transportModels/interfaceProperties/gammaContactAngle/constantGammaContactAngle/constantGammaContactAngleFvPatchScalarField.C +++ /dev/null @@ -1,135 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "constantGammaContactAngleFvPatchScalarField.H" -#include "addToRunTimeSelectionTable.H" -#include "volMesh.H" -#include "fvPatchFieldMapper.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -constantGammaContactAngleFvPatchScalarField:: -constantGammaContactAngleFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF -) -: - gammaContactAngleFvPatchScalarField(p, iF), - theta0_(0.0) -{} - - -constantGammaContactAngleFvPatchScalarField:: -constantGammaContactAngleFvPatchScalarField -( - const constantGammaContactAngleFvPatchScalarField& gcpsf, - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const fvPatchFieldMapper& mapper -) -: - gammaContactAngleFvPatchScalarField(gcpsf, p, iF, mapper), - theta0_(gcpsf.theta0_) -{} - - -constantGammaContactAngleFvPatchScalarField:: -constantGammaContactAngleFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const dictionary& dict -) -: - gammaContactAngleFvPatchScalarField(p, iF), - theta0_(readScalar(dict.lookup("theta0"))) -{ - evaluate(); -} - - -constantGammaContactAngleFvPatchScalarField:: -constantGammaContactAngleFvPatchScalarField -( - const constantGammaContactAngleFvPatchScalarField& gcpsf -) -: - gammaContactAngleFvPatchScalarField(gcpsf), - theta0_(gcpsf.theta0_) -{} - - -constantGammaContactAngleFvPatchScalarField:: -constantGammaContactAngleFvPatchScalarField -( - const constantGammaContactAngleFvPatchScalarField& gcpsf, - const DimensionedField<scalar, volMesh>& iF -) -: - gammaContactAngleFvPatchScalarField(gcpsf, iF), - theta0_(gcpsf.theta0_) -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -tmp<scalarField> constantGammaContactAngleFvPatchScalarField::theta -( - const fvPatchVectorField&, - const fvsPatchVectorField& -) const -{ - return tmp<scalarField>(new scalarField(size(), theta0_)); -} - - -void constantGammaContactAngleFvPatchScalarField::write(Ostream& os) const -{ - fvPatchScalarField::write(os); - os.writeKeyword("theta0") << theta0_ << token::END_STATEMENT << nl; - writeEntry("value", os); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -makePatchTypeField -( - fvPatchScalarField, - constantGammaContactAngleFvPatchScalarField -); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/transportModels/interfaceProperties/gammaContactAngle/constantGammaContactAngle/constantGammaContactAngleFvPatchScalarField.H b/src/transportModels/interfaceProperties/gammaContactAngle/constantGammaContactAngle/constantGammaContactAngleFvPatchScalarField.H deleted file mode 100644 index d941402ec10..00000000000 --- a/src/transportModels/interfaceProperties/gammaContactAngle/constantGammaContactAngle/constantGammaContactAngleFvPatchScalarField.H +++ /dev/null @@ -1,152 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::constantGammaContactAngleFvPatchScalarField - -Description - A constant gammaContactAngle scalar boundary condition - (gammaContactAngleFvPatchScalarField) - -SourceFiles - constantGammaContactAngleFvPatchScalarField.C - -\*---------------------------------------------------------------------------*/ - -#ifndef constantGammaContactAngleFvPatchScalarField_H -#define constantGammaContactAngleFvPatchScalarField_H - -#include "gammaContactAngleFvPatchScalarField.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -/*---------------------------------------------------------------------------*\ - Class constantGammaContactAngleFvPatch Declaration -\*---------------------------------------------------------------------------*/ - -class constantGammaContactAngleFvPatchScalarField -: - public gammaContactAngleFvPatchScalarField -{ - // Private data - - //- Equilibrium contact angle - scalar theta0_; - - -public: - - //- Runtime type information - TypeName("constantGammaContactAngle"); - - - // Constructors - - //- Construct from patch and internal field - constantGammaContactAngleFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct from patch, internal field and dictionary - constantGammaContactAngleFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const dictionary& - ); - - //- Construct by mapping given - // constantGammaContactAngleFvPatchScalarField - // onto a new patch - constantGammaContactAngleFvPatchScalarField - ( - const constantGammaContactAngleFvPatchScalarField&, - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const fvPatchFieldMapper& - ); - - //- Construct as copy - constantGammaContactAngleFvPatchScalarField - ( - const constantGammaContactAngleFvPatchScalarField& - ); - - //- Construct and return a clone - virtual tmp<fvPatchScalarField> clone() const - { - return tmp<fvPatchScalarField> - ( - new constantGammaContactAngleFvPatchScalarField(*this) - ); - } - - //- Construct as copy setting internal field reference - constantGammaContactAngleFvPatchScalarField - ( - const constantGammaContactAngleFvPatchScalarField&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct and return a clone setting internal field reference - virtual tmp<fvPatchScalarField> clone - ( - const DimensionedField<scalar, volMesh>& iF - ) const - { - return tmp<fvPatchScalarField> - ( - new constantGammaContactAngleFvPatchScalarField(*this, iF) - ); - } - - - // Member functions - - //- Return the equilibrium contact-angle - virtual tmp<scalarField> theta - ( - const fvPatchVectorField& Up, - const fvsPatchVectorField& nHat - ) const; - - //- Write - virtual void write(Ostream&) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/transportModels/interfaceProperties/gammaContactAngle/dynamicGammaContactAngle/dynamicGammaContactAngleFvPatchScalarField.C b/src/transportModels/interfaceProperties/gammaContactAngle/dynamicGammaContactAngle/dynamicGammaContactAngleFvPatchScalarField.C deleted file mode 100644 index e9656711507..00000000000 --- a/src/transportModels/interfaceProperties/gammaContactAngle/dynamicGammaContactAngle/dynamicGammaContactAngleFvPatchScalarField.C +++ /dev/null @@ -1,170 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "dynamicGammaContactAngleFvPatchScalarField.H" -#include "addToRunTimeSelectionTable.H" -#include "fvPatchFieldMapper.H" -#include "volMesh.H" - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -Foam::dynamicGammaContactAngleFvPatchScalarField:: -dynamicGammaContactAngleFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF -) -: - gammaContactAngleFvPatchScalarField(p, iF), - theta0_(0.0), - uTheta_(0.0), - thetaA_(0.0), - thetaR_(0.0) -{} - - -Foam::dynamicGammaContactAngleFvPatchScalarField:: -dynamicGammaContactAngleFvPatchScalarField -( - const dynamicGammaContactAngleFvPatchScalarField& gcpsf, - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const fvPatchFieldMapper& mapper -) -: - gammaContactAngleFvPatchScalarField(gcpsf, p, iF, mapper), - theta0_(gcpsf.theta0_), - uTheta_(gcpsf.uTheta_), - thetaA_(gcpsf.thetaA_), - thetaR_(gcpsf.thetaR_) -{} - - -Foam::dynamicGammaContactAngleFvPatchScalarField:: -dynamicGammaContactAngleFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const dictionary& dict -) -: - gammaContactAngleFvPatchScalarField(p, iF), - theta0_(readScalar(dict.lookup("theta0"))), - uTheta_(readScalar(dict.lookup("uTheta"))), - thetaA_(readScalar(dict.lookup("thetaA"))), - thetaR_(readScalar(dict.lookup("thetaR"))) -{ - evaluate(); -} - - -Foam::dynamicGammaContactAngleFvPatchScalarField:: -dynamicGammaContactAngleFvPatchScalarField -( - const dynamicGammaContactAngleFvPatchScalarField& gcpsf -) -: - gammaContactAngleFvPatchScalarField(gcpsf), - theta0_(gcpsf.theta0_), - uTheta_(gcpsf.uTheta_), - thetaA_(gcpsf.thetaA_), - thetaR_(gcpsf.thetaR_) -{} - - -Foam::dynamicGammaContactAngleFvPatchScalarField:: -dynamicGammaContactAngleFvPatchScalarField -( - const dynamicGammaContactAngleFvPatchScalarField& gcpsf, - const DimensionedField<scalar, volMesh>& iF -) -: - gammaContactAngleFvPatchScalarField(gcpsf, iF), - theta0_(gcpsf.theta0_), - uTheta_(gcpsf.uTheta_), - thetaA_(gcpsf.thetaA_), - thetaR_(gcpsf.thetaR_) -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -Foam::tmp<Foam::scalarField> -Foam::dynamicGammaContactAngleFvPatchScalarField::theta -( - const fvPatchVectorField& Up, - const fvsPatchVectorField& nHat -) const -{ - if (uTheta_ < SMALL) - { - return tmp<scalarField>(new scalarField(size(), theta0_)); - } - - vectorField nf = patch().nf(); - - // Calculated the component of the velocity parallel to the wall - vectorField Uwall = Up.patchInternalField() - Up; - Uwall -= (nf & Uwall)*nf; - - // Find the direction of the interface parallel to the wall - vectorField nWall = nHat - (nf & nHat)*nf; - - // Normalise nWall - nWall /= (mag(nWall) + SMALL); - - // Calculate Uwall resolved normal to the interface parallel to - // the interface - scalarField uwall = nWall & Uwall; - - return theta0_ + (thetaA_ - thetaR_)*tanh(uwall/uTheta_); -} - - -void Foam::dynamicGammaContactAngleFvPatchScalarField::write(Ostream& os) const -{ - fvPatchScalarField::write(os); - os.writeKeyword("theta0") << theta0_ << token::END_STATEMENT << nl; - os.writeKeyword("uTheta") << uTheta_ << token::END_STATEMENT << nl; - os.writeKeyword("thetaA") << thetaA_ << token::END_STATEMENT << nl; - os.writeKeyword("thetaR") << thetaR_ << token::END_STATEMENT << nl; - writeEntry("value", os); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - makePatchTypeField - ( - fvPatchScalarField, - dynamicGammaContactAngleFvPatchScalarField - ); -} - - -// ************************************************************************* // diff --git a/src/transportModels/interfaceProperties/gammaContactAngle/dynamicGammaContactAngle/dynamicGammaContactAngleFvPatchScalarField.H b/src/transportModels/interfaceProperties/gammaContactAngle/dynamicGammaContactAngle/dynamicGammaContactAngleFvPatchScalarField.H deleted file mode 100644 index 9e730c6f74f..00000000000 --- a/src/transportModels/interfaceProperties/gammaContactAngle/dynamicGammaContactAngle/dynamicGammaContactAngleFvPatchScalarField.H +++ /dev/null @@ -1,161 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::dynamicGammaContactAngleFvPatchScalarField - -Description - A dynamic gammaContactAngle scalar boundary condition - (gammaContactAngleFvPatchScalarField) - -SourceFiles - dynamicGammaContactAngleFvPatchScalarField.C - -\*---------------------------------------------------------------------------*/ - -#ifndef dynamicGammaContactAngleFvPatchScalarField_H -#define dynamicGammaContactAngleFvPatchScalarField_H - -#include "gammaContactAngleFvPatchScalarField.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -/*---------------------------------------------------------------------------*\ - Class dynamicGammaContactAngleFvPatch Declaration -\*---------------------------------------------------------------------------*/ - -class dynamicGammaContactAngleFvPatchScalarField -: - public gammaContactAngleFvPatchScalarField -{ - // Private data - - //- Equilibrium contact angle - scalar theta0_; - - //- Dynamic contact angle velocity scale - scalar uTheta_; - - //- Limiting advancing contact angle - scalar thetaA_; - - //- Limiting receeding contact angle - scalar thetaR_; - - -public: - - //- Runtime type information - TypeName("dynamicGammaContactAngle"); - - - // Constructors - - //- Construct from patch and internal field - dynamicGammaContactAngleFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct from patch, internal field and dictionary - dynamicGammaContactAngleFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const dictionary& - ); - - //- Construct by mapping given - // dynamicGammaContactAngleFvPatchScalarField - // onto a new patch - dynamicGammaContactAngleFvPatchScalarField - ( - const dynamicGammaContactAngleFvPatchScalarField&, - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const fvPatchFieldMapper& - ); - - //- Construct as copy - dynamicGammaContactAngleFvPatchScalarField - ( - const dynamicGammaContactAngleFvPatchScalarField& - ); - - //- Construct and return a clone - virtual tmp<fvPatchScalarField> clone() const - { - return tmp<fvPatchScalarField> - ( - new dynamicGammaContactAngleFvPatchScalarField(*this) - ); - } - - //- Construct as copy setting internal field reference - dynamicGammaContactAngleFvPatchScalarField - ( - const dynamicGammaContactAngleFvPatchScalarField&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct and return a clone setting internal field reference - virtual tmp<fvPatchScalarField> clone - ( - const DimensionedField<scalar, volMesh>& iF - ) const - { - return tmp<fvPatchScalarField> - ( - new dynamicGammaContactAngleFvPatchScalarField(*this, iF) - ); - } - - - // Member functions - - //- Evaluate and return dynamic contact-angle - virtual tmp<scalarField> theta - ( - const fvPatchVectorField& Up, - const fvsPatchVectorField& nHat - ) const; - - //- Write - virtual void write(Ostream&) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/transportModels/interfaceProperties/gammaContactAngle/gammaContactAngle/gammaContactAngleFvPatchScalarField.C b/src/transportModels/interfaceProperties/gammaContactAngle/gammaContactAngle/gammaContactAngleFvPatchScalarField.C deleted file mode 100644 index e4862424a4d..00000000000 --- a/src/transportModels/interfaceProperties/gammaContactAngle/gammaContactAngle/gammaContactAngleFvPatchScalarField.C +++ /dev/null @@ -1,101 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "gammaContactAngleFvPatchScalarField.H" -#include "addToRunTimeSelectionTable.H" -#include "fvPatchFieldMapper.H" -#include "volMesh.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(gammaContactAngleFvPatchScalarField, 0); - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -gammaContactAngleFvPatchScalarField::gammaContactAngleFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF -) -: - zeroGradientFvPatchScalarField(p, iF) -{} - - -gammaContactAngleFvPatchScalarField::gammaContactAngleFvPatchScalarField -( - const gammaContactAngleFvPatchScalarField& gcpsf, - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const fvPatchFieldMapper& mapper -) -: - zeroGradientFvPatchScalarField(gcpsf, p, iF, mapper) -{} - - -gammaContactAngleFvPatchScalarField::gammaContactAngleFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const dictionary& dict -) -: - zeroGradientFvPatchScalarField(p, iF) -{ - evaluate(); -} - - -gammaContactAngleFvPatchScalarField::gammaContactAngleFvPatchScalarField -( - const gammaContactAngleFvPatchScalarField& gcpsf -) -: - zeroGradientFvPatchScalarField(gcpsf) -{} - - -gammaContactAngleFvPatchScalarField::gammaContactAngleFvPatchScalarField -( - const gammaContactAngleFvPatchScalarField& gcpsf, - const DimensionedField<scalar, volMesh>& iF -) -: - zeroGradientFvPatchScalarField(gcpsf, iF) -{} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/transportModels/interfaceProperties/gammaContactAngle/gammaContactAngle/gammaContactAngleFvPatchScalarField.H b/src/transportModels/interfaceProperties/gammaContactAngle/gammaContactAngle/gammaContactAngleFvPatchScalarField.H deleted file mode 100644 index 6b90d838e1a..00000000000 --- a/src/transportModels/interfaceProperties/gammaContactAngle/gammaContactAngle/gammaContactAngleFvPatchScalarField.H +++ /dev/null @@ -1,125 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::gammaContactAngleFvPatchScalarField - -Description - Abstract base class for gammaContactAngle boundary conditions. - - Derived classes must implement the theta() fuction which returns the - wall contact angle field. - -SourceFiles - gammaContactAngleFvPatchScalarField.C - -\*---------------------------------------------------------------------------*/ - -#ifndef gammaContactAngleFvPatchScalarField_H -#define gammaContactAngleFvPatchScalarField_H - -#include "zeroGradientFvPatchFields.H" -#include "fvsPatchFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -/*---------------------------------------------------------------------------*\ - Class gammaContactAngleFvPatch Declaration -\*---------------------------------------------------------------------------*/ - -class gammaContactAngleFvPatchScalarField -: - public zeroGradientFvPatchScalarField -{ - -public: - - //- Runtime type information - TypeName("gammaContactAngle"); - - - // Constructors - - //- Construct from patch and internal field - gammaContactAngleFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct from patch, internal field and dictionary - gammaContactAngleFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const dictionary& - ); - - //- Construct by mapping given gammaContactAngleFvPatchScalarField - // onto a new patch - gammaContactAngleFvPatchScalarField - ( - const gammaContactAngleFvPatchScalarField&, - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const fvPatchFieldMapper& - ); - - //- Construct as copy - gammaContactAngleFvPatchScalarField - ( - const gammaContactAngleFvPatchScalarField& - ); - - //- Construct as copy setting internal field reference - gammaContactAngleFvPatchScalarField - ( - const gammaContactAngleFvPatchScalarField&, - const DimensionedField<scalar, volMesh>& - ); - - - // Member functions - - //- Return the contact angle - virtual tmp<scalarField> theta - ( - const fvPatchVectorField& Up, - const fvsPatchVectorField& nHat - ) const = 0; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/transportModels/interfaceProperties/gammaContactAngle/timeVaryingGammaContactAngle/timeVaryingGammaContactAngleFvPatchScalarField.C b/src/transportModels/interfaceProperties/gammaContactAngle/timeVaryingGammaContactAngle/timeVaryingGammaContactAngleFvPatchScalarField.C deleted file mode 100644 index 0f436298519..00000000000 --- a/src/transportModels/interfaceProperties/gammaContactAngle/timeVaryingGammaContactAngle/timeVaryingGammaContactAngleFvPatchScalarField.C +++ /dev/null @@ -1,152 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "timeVaryingGammaContactAngleFvPatchScalarField.H" -#include "addToRunTimeSelectionTable.H" -#include "fvPatchFieldMapper.H" -#include "volMesh.H" -#include "Time.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -timeVaryingGammaContactAngleFvPatchScalarField:: -timeVaryingGammaContactAngleFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF -) -: - gammaContactAngleFvPatchScalarField(p, iF), - t0_(0.0), - thetaT0_(0.0), - te_(0.0), - thetaTe_(0.0) -{} - - -timeVaryingGammaContactAngleFvPatchScalarField:: -timeVaryingGammaContactAngleFvPatchScalarField -( - const timeVaryingGammaContactAngleFvPatchScalarField& gcpsf, - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const fvPatchFieldMapper& mapper -) -: - gammaContactAngleFvPatchScalarField(gcpsf, p, iF, mapper), - t0_(gcpsf.t0_), - thetaT0_(gcpsf.thetaT0_), - te_(gcpsf.te_), - thetaTe_(gcpsf.te_) -{} - - -timeVaryingGammaContactAngleFvPatchScalarField:: -timeVaryingGammaContactAngleFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const dictionary& dict -) -: - gammaContactAngleFvPatchScalarField(p, iF), - t0_(readScalar(dict.lookup("t0"))), - thetaT0_(readScalar(dict.lookup("thetaT0"))), - te_(readScalar(dict.lookup("te"))), - thetaTe_(readScalar(dict.lookup("thetaTe"))) -{ - evaluate(); -} - - -timeVaryingGammaContactAngleFvPatchScalarField:: -timeVaryingGammaContactAngleFvPatchScalarField -( - const timeVaryingGammaContactAngleFvPatchScalarField& gcpsf, - const DimensionedField<scalar, volMesh>& iF -) -: - gammaContactAngleFvPatchScalarField(gcpsf, iF), - t0_(gcpsf.t0_), - thetaT0_(gcpsf.thetaT0_), - te_(gcpsf.te_), - thetaTe_(gcpsf.thetaTe_) -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -tmp<scalarField> timeVaryingGammaContactAngleFvPatchScalarField::theta -( - const fvPatchVectorField&, - const fvsPatchVectorField& -) const -{ - scalar t = patch().boundaryMesh().mesh().time().value(); - scalar theta0 = thetaT0_; - - if (t < t0_) - { - theta0 = thetaT0_; - } - else if (t > te_) - { - theta0 = thetaTe_; - } - else - { - theta0 = thetaT0_ + (t - t0_)*(thetaTe_ - thetaT0_)/(te_ - t0_); - } - - return tmp<scalarField>(new scalarField(size(), theta0)); -} - - -void timeVaryingGammaContactAngleFvPatchScalarField::write(Ostream& os) const -{ - fvPatchScalarField::write(os); - os.writeKeyword("t0") << t0_ << token::END_STATEMENT << nl; - os.writeKeyword("thetaT0") << thetaT0_ << token::END_STATEMENT << nl; - os.writeKeyword("te") << te_ << token::END_STATEMENT << nl; - os.writeKeyword("thetaTe") << thetaTe_ << token::END_STATEMENT << nl; - writeEntry("value", os); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -makePatchTypeField(fvPatchScalarField, timeVaryingGammaContactAngleFvPatchScalarField); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/transportModels/interfaceProperties/gammaContactAngle/timeVaryingGammaContactAngle/timeVaryingGammaContactAngleFvPatchScalarField.H b/src/transportModels/interfaceProperties/gammaContactAngle/timeVaryingGammaContactAngle/timeVaryingGammaContactAngleFvPatchScalarField.H deleted file mode 100644 index e07637471b0..00000000000 --- a/src/transportModels/interfaceProperties/gammaContactAngle/timeVaryingGammaContactAngle/timeVaryingGammaContactAngleFvPatchScalarField.H +++ /dev/null @@ -1,148 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::timeVaryingGammaContactAngleFvPatchScalarField - -Description - A time-varying gammaContactAngle scalar boundary condition - (gammaContactAngleFvPatchScalarField) - -SourceFiles - timeVaryingGammaContactAngleFvPatchScalarField.C - -\*---------------------------------------------------------------------------*/ - -#ifndef timeVaryingGammaContactAngleFvPatchScalarField_H -#define timeVaryingGammaContactAngleFvPatchScalarField_H - -#include "gammaContactAngleFvPatchScalarField.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -/*---------------------------------------------------------------------------*\ - Class timeVaryingGammaContactAngleFvPatch Declaration -\*---------------------------------------------------------------------------*/ - -class timeVaryingGammaContactAngleFvPatchScalarField -: - public gammaContactAngleFvPatchScalarField -{ - // Private data - - // Equilibrium contact angle control parameters - scalar t0_; - scalar thetaT0_; - scalar te_; - scalar thetaTe_; - - -public: - - //- Runtime type information - TypeName("timeVaryingGammaContactAngle"); - - - // Constructors - - //- Construct from patch and internal field - timeVaryingGammaContactAngleFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct from patch, internal field and dictionary - timeVaryingGammaContactAngleFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const dictionary& - ); - - //- Construct by mapping given timeVaryingGammaContactAngleFvPatchScalarField - // onto a new patch - timeVaryingGammaContactAngleFvPatchScalarField - ( - const timeVaryingGammaContactAngleFvPatchScalarField&, - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const fvPatchFieldMapper& - ); - - //- Construct and return a clone - virtual tmp<fvPatchScalarField> clone() const - { - return tmp<fvPatchScalarField> - ( - new timeVaryingGammaContactAngleFvPatchScalarField(*this) - ); - } - - //- Construct as copy setting internal field reference - timeVaryingGammaContactAngleFvPatchScalarField - ( - const timeVaryingGammaContactAngleFvPatchScalarField&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct and return a clone setting internal field reference - virtual tmp<fvPatchScalarField> clone - ( - const DimensionedField<scalar, volMesh>& iF - ) const - { - return tmp<fvPatchScalarField> - ( - new timeVaryingGammaContactAngleFvPatchScalarField(*this, iF) - ); - } - - - // Member functions - - //- Evaluate and return the time-varying equilibrium contact-angle - virtual tmp<scalarField> theta - ( - const fvPatchVectorField& Up, - const fvsPatchVectorField& nHat - ) const; - - //- Write - virtual void write(Ostream&) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/transportModels/interfaceProperties/gammaFixedPressure/gammaFixedPressureFvPatchScalarField.C b/src/transportModels/interfaceProperties/gammaFixedPressure/gammaFixedPressureFvPatchScalarField.C deleted file mode 100644 index aa9637b9933..00000000000 --- a/src/transportModels/interfaceProperties/gammaFixedPressure/gammaFixedPressureFvPatchScalarField.C +++ /dev/null @@ -1,173 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "gammaFixedPressureFvPatchScalarField.H" -#include "addToRunTimeSelectionTable.H" -#include "fvPatchFieldMapper.H" -#include "volFields.H" -#include "surfaceFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -gammaFixedPressureFvPatchScalarField::gammaFixedPressureFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedValueFvPatchScalarField(p, iF), - p_(p.size(), 0.0) -{} - - -gammaFixedPressureFvPatchScalarField::gammaFixedPressureFvPatchScalarField -( - const gammaFixedPressureFvPatchScalarField& ptf, - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const fvPatchFieldMapper& mapper -) -: - fixedValueFvPatchScalarField(ptf, p, iF, mapper), - p_(ptf.p_, mapper) -{} - - -gammaFixedPressureFvPatchScalarField::gammaFixedPressureFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const dictionary& dict -) -: - fixedValueFvPatchScalarField(p, iF), - p_("p", dict, p.size()) -{ - if (dict.found("value")) - { - fvPatchField<scalar>::operator= - ( - scalarField("value", dict, p.size()) - ); - } - else - { - fvPatchField<scalar>::operator=(p_); - } -} - - -gammaFixedPressureFvPatchScalarField::gammaFixedPressureFvPatchScalarField -( - const gammaFixedPressureFvPatchScalarField& tppsf -) -: - fixedValueFvPatchScalarField(tppsf), - p_(tppsf.p_) -{} - - -gammaFixedPressureFvPatchScalarField::gammaFixedPressureFvPatchScalarField -( - const gammaFixedPressureFvPatchScalarField& tppsf, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedValueFvPatchScalarField(tppsf, iF), - p_(tppsf.p_) -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void gammaFixedPressureFvPatchScalarField::autoMap -( - const fvPatchFieldMapper& m -) -{ - scalarField::autoMap(m); - p_.autoMap(m); -} - - -void gammaFixedPressureFvPatchScalarField::rmap -( - const fvPatchScalarField& ptf, - const labelList& addr -) -{ - fixedValueFvPatchScalarField::rmap(ptf, addr); - - const gammaFixedPressureFvPatchScalarField& tiptf = - refCast<const gammaFixedPressureFvPatchScalarField>(ptf); - - p_.rmap(tiptf.p_, addr); -} - - -void gammaFixedPressureFvPatchScalarField::updateCoeffs() -{ - if (updated()) - { - return; - } - - const dictionary& environmentalProperties - = db().lookupObject<IOdictionary>("environmentalProperties"); - - dimensionedVector g(environmentalProperties.lookup("g")); - - const fvPatchField<scalar>& rho = - patch().lookupPatchField<volScalarField, scalar>("rho"); - - operator==(p_ - rho*(g.value() & patch().Cf())); - - fixedValueFvPatchScalarField::updateCoeffs(); -} - - -void gammaFixedPressureFvPatchScalarField::write(Ostream& os) const -{ - fvPatchScalarField::write(os); - p_.writeEntry("p", os); - writeEntry("value", os); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -makePatchTypeField(fvPatchScalarField, gammaFixedPressureFvPatchScalarField); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/transportModels/interfaceProperties/gammaFixedPressure/gammaFixedPressureFvPatchScalarField.H b/src/transportModels/interfaceProperties/gammaFixedPressure/gammaFixedPressureFvPatchScalarField.H deleted file mode 100644 index e7c360b6bcc..00000000000 --- a/src/transportModels/interfaceProperties/gammaFixedPressure/gammaFixedPressureFvPatchScalarField.H +++ /dev/null @@ -1,180 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::gammaFixedPressureFvPatchScalarField - -Description - A fixed-pressure gammaContactAngle boundary - -SourceFiles - gammaFixedPressureFvPatchScalarField.C - -\*---------------------------------------------------------------------------*/ - -#ifndef gammaFixedPressureFvPatchScalarField_H -#define gammaFixedPressureFvPatchScalarField_H - -#include "fixedValueFvPatchFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -/*---------------------------------------------------------------------------*\ - Class gammaFixedPressureFvPatch Declaration -\*---------------------------------------------------------------------------*/ - -class gammaFixedPressureFvPatchScalarField -: - public fixedValueFvPatchScalarField -{ - // Private data - - //- Fixed pressure - scalarField p_; - - -public: - - //- Runtime type information - TypeName("gammaFixedPressure"); - - - // Constructors - - //- Construct from patch and internal field - gammaFixedPressureFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct from patch, internal field and dictionary - gammaFixedPressureFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const dictionary& - ); - - //- Construct by mapping given gammaFixedPressureFvPatchScalarField - // onto a new patch - gammaFixedPressureFvPatchScalarField - ( - const gammaFixedPressureFvPatchScalarField&, - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const fvPatchFieldMapper& - ); - - //- Construct as copy - gammaFixedPressureFvPatchScalarField - ( - const gammaFixedPressureFvPatchScalarField& - ); - - //- Construct and return a clone - virtual tmp<fvPatchScalarField> clone() const - { - return tmp<fvPatchScalarField> - ( - new gammaFixedPressureFvPatchScalarField(*this) - ); - } - - //- Construct as copy setting internal field reference - gammaFixedPressureFvPatchScalarField - ( - const gammaFixedPressureFvPatchScalarField&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct and return a clone setting internal field reference - virtual tmp<fvPatchScalarField> clone - ( - const DimensionedField<scalar, volMesh>& iF - ) const - { - return tmp<fvPatchScalarField> - ( - new gammaFixedPressureFvPatchScalarField(*this, iF) - ); - } - - - // Member functions - - // Access - - //- Return the gammaFixed pressure - const scalarField& p() const - { - return p_; - } - - //- Return reference to the gammaFixed pressure to allow adjustment - scalarField& p() - { - return p_; - } - - - // Mapping functions - - //- Map (and resize as needed) from self given a mapping object - virtual void autoMap - ( - const fvPatchFieldMapper& - ); - - //- Reverse map the given fvPatchField onto this fvPatchField - virtual void rmap - ( - const fvPatchScalarField&, - const labelList& - ); - - - // Evaluation functions - - //- Update the coefficients associated with the patch field - virtual void updateCoeffs(); - - - //- Write - virtual void write(Ostream&) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/transportModels/interfaceProperties/interfaceProperties.C b/src/transportModels/interfaceProperties/interfaceProperties.C index 2cf5fff1a3d..4e3fb21ddca 100644 --- a/src/transportModels/interfaceProperties/interfaceProperties.C +++ b/src/transportModels/interfaceProperties/interfaceProperties.C @@ -22,33 +22,20 @@ License along with OpenFOAM; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -Application - interfaceProperties - -Description - Properties to aid interFoam : - 1. Correct the gamma boundary condition for dynamic contact angle. - 2. Calculate interface curvature. - \*---------------------------------------------------------------------------*/ #include "interfaceProperties.H" -#include "gammaContactAngleFvPatchScalarField.H" +#include "alphaContactAngleFvPatchScalarField.H" #include "mathematicalConstants.H" #include "surfaceInterpolate.H" #include "fvcDiv.H" #include "fvcGrad.H" #include "fvcSnGrad.H" -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - // * * * * * * * * * * * * * * * Static Member Data * * * * * * * * * * * * // -const scalar interfaceProperties::convertToRad = - mathematicalConstant::pi/180.0; +const Foam::scalar Foam::interfaceProperties::convertToRad = + Foam::mathematicalConstant::pi/180.0; // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // @@ -59,26 +46,26 @@ const scalar interfaceProperties::convertToRad = // The dynamic contact angle is calculated from the component of the // velocity on the direction of the interface, parallel to the wall. -void interfaceProperties::correctContactAngle +void Foam::interfaceProperties::correctContactAngle ( surfaceVectorField::GeometricBoundaryField& nHatb ) const { - const fvMesh& mesh = gamma_.mesh(); - const volScalarField::GeometricBoundaryField& gbf = gamma_.boundaryField(); + const fvMesh& mesh = alpha1_.mesh(); + const volScalarField::GeometricBoundaryField& gbf = alpha1_.boundaryField(); const fvBoundaryMesh& boundary = mesh.boundary(); forAll(boundary, patchi) { - if (isA<gammaContactAngleFvPatchScalarField>(gbf[patchi])) + if (isA<alphaContactAngleFvPatchScalarField>(gbf[patchi])) { - const gammaContactAngleFvPatchScalarField& gcap = - refCast<const gammaContactAngleFvPatchScalarField> + const alphaContactAngleFvPatchScalarField& gcap = + refCast<const alphaContactAngleFvPatchScalarField> (gbf[patchi]); fvsPatchVectorField& nHatp = nHatb[patchi]; - scalarField theta = + scalarField theta = convertToRad*gcap.theta(U_.boundaryField()[patchi], nHatp); vectorField nf = boundary[patchi].nf(); @@ -109,22 +96,22 @@ void interfaceProperties::correctContactAngle } -void interfaceProperties::calculateK() +void Foam::interfaceProperties::calculateK() { - const fvMesh& mesh = gamma_.mesh(); + const fvMesh& mesh = alpha1_.mesh(); const surfaceVectorField& Sf = mesh.Sf(); - // Cell gradient of gamma - volVectorField gradGamma = fvc::grad(gamma_); + // Cell gradient of alpha + volVectorField gradAlpha = fvc::grad(alpha1_); - // Interpolated face-gradient of gamma - surfaceVectorField gradGammaf = fvc::interpolate(gradGamma); - //gradGammaf -= + // Interpolated face-gradient of alpha + surfaceVectorField gradAlphaf = fvc::interpolate(gradAlpha); + //gradAlphaf -= // (mesh.Sf()/mesh.magSf()) - // *(fvc::snGrad(gamma_) - (mesh.Sf() & gradGammaf)/mesh.magSf()); + // *(fvc::snGrad(alpha1_) - (mesh.Sf() & gradAlphaf)/mesh.magSf()); // Face unit interface normal - surfaceVectorField nHatfv = gradGammaf/(mag(gradGammaf) + deltaN_); + surfaceVectorField nHatfv = gradAlphaf/(mag(gradAlphaf) + deltaN_); correctContactAngle(nHatfv.boundaryField()); // Face unit interface normal flux @@ -136,7 +123,7 @@ void interfaceProperties::calculateK() // Complex expression for curvature. // Correction is formally zero but numerically non-zero. /* - volVectorField nHat = gradGamma/(mag(gradGamma) + deltaN_); + volVectorField nHat = gradAlpha/(mag(gradAlpha) + deltaN_); forAll(nHat.boundaryField(), patchi) { nHat.boundaryField()[patchi] = nHatfv.boundaryField()[patchi]; @@ -149,19 +136,19 @@ void interfaceProperties::calculateK() // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // -interfaceProperties::interfaceProperties +Foam::interfaceProperties::interfaceProperties ( - const volScalarField& gamma, + const volScalarField& alpha1, const volVectorField& U, const IOdictionary& dict ) : transportPropertiesDict_(dict), - cGamma_ + cAlpha_ ( readScalar ( - gamma.mesh().solutionDict().subDict("PISO").lookup("cGamma") + alpha1.mesh().solutionDict().subDict("PISO").lookup("cAlpha") ) ), sigma_(dict.lookup("sigma")), @@ -169,10 +156,10 @@ interfaceProperties::interfaceProperties deltaN_ ( "deltaN", - 1e-8/pow(average(gamma.mesh().V()), 1.0/3.0) + 1e-8/pow(average(alpha1.mesh().V()), 1.0/3.0) ), - gamma_(gamma), + alpha1_(alpha1), U_(U), nHatf_ @@ -180,10 +167,10 @@ interfaceProperties::interfaceProperties IOobject ( "nHatf", - gamma_.time().timeName(), - gamma_.mesh() + alpha1_.time().timeName(), + alpha1_.mesh() ), - gamma_.mesh(), + alpha1_.mesh(), dimensionedScalar("nHatf", dimArea, 0.0) ), @@ -192,10 +179,10 @@ interfaceProperties::interfaceProperties IOobject ( "K", - gamma_.time().timeName(), - gamma_.mesh() + alpha1_.time().timeName(), + alpha1_.mesh() ), - gamma_.mesh(), + alpha1_.mesh(), dimensionedScalar("K", dimless/dimLength, 0.0) ) { @@ -203,8 +190,4 @@ interfaceProperties::interfaceProperties } -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - // ************************************************************************* // diff --git a/src/transportModels/interfaceProperties/interfaceProperties.H b/src/transportModels/interfaceProperties/interfaceProperties.H index 33294b13196..e47345f59de 100644 --- a/src/transportModels/interfaceProperties/interfaceProperties.H +++ b/src/transportModels/interfaceProperties/interfaceProperties.H @@ -29,7 +29,7 @@ Description Contains the interface properties. Properties to aid interFoam: - -# Correct the gamma boundary condition for dynamic contact angle. + -# Correct the alpha boundary condition for dynamic contact angle. -# Calculate interface curvature. SourceFiles @@ -61,7 +61,7 @@ class interfaceProperties const dictionary& transportPropertiesDict_; //- Compression coefficient - scalar cGamma_; + scalar cAlpha_; //- Surface tension dimensionedScalar sigma_; @@ -69,7 +69,7 @@ class interfaceProperties //- Stabilisation for normalisation of the interface normal const dimensionedScalar deltaN_; - const volScalarField& gamma_; + const volScalarField& alpha1_; const volVectorField& U_; surfaceScalarField nHatf_; volScalarField K_; @@ -104,7 +104,7 @@ public: //- Construct from volume fraction field gamma and IOdictionary interfaceProperties ( - const volScalarField& gamma, + const volScalarField& alpha1, const volVectorField& U, const IOdictionary& ); @@ -112,9 +112,9 @@ public: // Member Functions - scalar cGamma() const + scalar cAlpha() const { - return cGamma_; + return cAlpha_; } const dimensionedScalar& deltaN() const diff --git a/src/turbulenceModels/Allwmake b/src/turbulenceModels/Allwmake index b4633551acf..4c49ec61633 100755 --- a/src/turbulenceModels/Allwmake +++ b/src/turbulenceModels/Allwmake @@ -2,7 +2,8 @@ cd ${0%/*} || exit 1 # run from this directory set -x -( cd RAS && ./Allwmake ) -( cd LES && ./Allwmake ) +(cd LES && ./Allwmake ) +(cd incompressible && ./Allwmake ) +(cd compressible && ./Allwmake ) # ----------------------------------------------------------------- end-of-file diff --git a/src/turbulenceModels/LES/Allwmake b/src/turbulenceModels/LES/Allwmake index a2521d21f07..a80c71ab57d 100755 --- a/src/turbulenceModels/LES/Allwmake +++ b/src/turbulenceModels/LES/Allwmake @@ -2,11 +2,9 @@ cd ${0%/*} || exit 1 # run from this directory set -x -wmakeLnInclude -f incompressible +wmakeLnInclude -f ../incompressible/LES wmake libso LESfilters wmake libso LESdeltas -wmake libso incompressible -wmake libso compressible # ----------------------------------------------------------------- end-of-file diff --git a/src/turbulenceModels/LES/LESdeltas/LESdelta/LESdelta.H b/src/turbulenceModels/LES/LESdeltas/LESdelta/LESdelta.H index fa13c45c32f..9aed207d23c 100644 --- a/src/turbulenceModels/LES/LESdeltas/LESdelta/LESdelta.H +++ b/src/turbulenceModels/LES/LESdeltas/LESdelta/LESdelta.H @@ -113,10 +113,9 @@ public: ); - // Destructor - - virtual ~LESdelta() - {} + //- Destructor + virtual ~LESdelta() + {} // Member Functions diff --git a/src/turbulenceModels/LES/LESdeltas/PrandtlDelta/PrandtlDelta.H b/src/turbulenceModels/LES/LESdeltas/PrandtlDelta/PrandtlDelta.H index 00c47f9eb71..a1f26f8ead2 100644 --- a/src/turbulenceModels/LES/LESdeltas/PrandtlDelta/PrandtlDelta.H +++ b/src/turbulenceModels/LES/LESdeltas/PrandtlDelta/PrandtlDelta.H @@ -85,19 +85,18 @@ public: ); - // Destructor - - ~PrandtlDelta() - {} + //- Destructor + virtual ~PrandtlDelta() + {} // Member Functions //- Read the LESdelta dictionary - void read(const dictionary&); + virtual void read(const dictionary&); // Correct values - void correct(); + virtual void correct(); }; diff --git a/src/turbulenceModels/LES/LESdeltas/cubeRootVolDelta/cubeRootVolDelta.H b/src/turbulenceModels/LES/LESdeltas/cubeRootVolDelta/cubeRootVolDelta.H index 28d9362265d..3277e770327 100644 --- a/src/turbulenceModels/LES/LESdeltas/cubeRootVolDelta/cubeRootVolDelta.H +++ b/src/turbulenceModels/LES/LESdeltas/cubeRootVolDelta/cubeRootVolDelta.H @@ -83,19 +83,18 @@ public: ); - // Destructor - - ~cubeRootVolDelta() - {} + //- Destructor + virtual ~cubeRootVolDelta() + {} // Member Functions //- Read the LESdelta dictionary - void read(const dictionary&); + virtual void read(const dictionary&); // Correct values - void correct(); + virtual void correct(); }; diff --git a/src/turbulenceModels/LES/LESdeltas/smoothDelta/smoothDelta.H b/src/turbulenceModels/LES/LESdeltas/smoothDelta/smoothDelta.H index 45266f583bb..119d41f8f04 100644 --- a/src/turbulenceModels/LES/LESdeltas/smoothDelta/smoothDelta.H +++ b/src/turbulenceModels/LES/LESdeltas/smoothDelta/smoothDelta.H @@ -26,8 +26,8 @@ Class Foam::smoothDelta Description - Smoothed delta which takes a given simple geometric delta and applies - smoothing to it such that the ratio of deltas between two cells is no + Smoothed delta which takes a given simple geometric delta and applies + smoothing to it such that the ratio of deltas between two cells is no larger than a specified amount, typically 1.15. SourceFiles @@ -233,19 +233,18 @@ public: ); - // Destructor - - ~smoothDelta() - {} + //- Destructor + virtual ~smoothDelta() + {} // Member Functions //- Read the LESdelta dictionary - void read(const dictionary&); + virtual void read(const dictionary&); // Correct values - void correct(); + virtual void correct(); }; diff --git a/src/turbulenceModels/LES/LESfilters/LESfilter/LESfilter.H b/src/turbulenceModels/LES/LESfilters/LESfilter/LESfilter.H index 714605fd969..8d53e8ccd52 100644 --- a/src/turbulenceModels/LES/LESfilters/LESfilter/LESfilter.H +++ b/src/turbulenceModels/LES/LESfilters/LESfilter/LESfilter.H @@ -107,10 +107,9 @@ public: ); - // Destructor - - virtual ~LESfilter() - {} + //- Destructor + virtual ~LESfilter() + {} // Member Functions diff --git a/src/turbulenceModels/LES/LESfilters/anisotropicFilter/anisotropicFilter.H b/src/turbulenceModels/LES/LESfilters/anisotropicFilter/anisotropicFilter.H index 729eeb34b28..45a4e70edf4 100644 --- a/src/turbulenceModels/LES/LESfilters/anisotropicFilter/anisotropicFilter.H +++ b/src/turbulenceModels/LES/LESfilters/anisotropicFilter/anisotropicFilter.H @@ -86,27 +86,29 @@ public: anisotropicFilter(const fvMesh& mesh, const dictionary&); - // Destructor - - ~anisotropicFilter() - {} + //- Destructor + virtual ~anisotropicFilter() + {} // Member Functions //- Read the LESfilter dictionary - void read(const dictionary&); + virtual void read(const dictionary&); // Member Operators - tmp<volScalarField> operator()(const tmp<volScalarField>&) const; - tmp<volVectorField> operator()(const tmp<volVectorField>&) const; - tmp<volSymmTensorField> operator() + virtual tmp<volScalarField> operator()(const tmp<volScalarField>&) const; + + virtual tmp<volVectorField> operator()(const tmp<volVectorField>&) const; + + virtual tmp<volSymmTensorField> operator() ( const tmp<volSymmTensorField>& ) const; - tmp<volTensorField> operator()(const tmp<volTensorField>&) const; + + virtual tmp<volTensorField> operator()(const tmp<volTensorField>&) const; }; diff --git a/src/turbulenceModels/LES/LESfilters/laplaceFilter/laplaceFilter.H b/src/turbulenceModels/LES/LESfilters/laplaceFilter/laplaceFilter.H index 158f3ea3207..3e5760604b5 100644 --- a/src/turbulenceModels/LES/LESfilters/laplaceFilter/laplaceFilter.H +++ b/src/turbulenceModels/LES/LESfilters/laplaceFilter/laplaceFilter.H @@ -87,27 +87,29 @@ public: laplaceFilter(const fvMesh& mesh, const dictionary&); - // Destructor - - ~laplaceFilter() - {} + //- Destructor + virtual ~laplaceFilter() + {} // Member Functions //- Read the LESfilter dictionary - void read(const dictionary&); + virtual void read(const dictionary&); // Member Operators - tmp<volScalarField> operator()(const tmp<volScalarField>&) const; - tmp<volVectorField> operator()(const tmp<volVectorField>&) const; - tmp<volSymmTensorField> operator() + virtual tmp<volScalarField> operator()(const tmp<volScalarField>&) const; + + virtual tmp<volVectorField> operator()(const tmp<volVectorField>&) const; + + virtual tmp<volSymmTensorField> operator() ( const tmp<volSymmTensorField>& ) const; - tmp<volTensorField> operator()(const tmp<volTensorField>&) const; + + virtual tmp<volTensorField> operator()(const tmp<volTensorField>&) const; }; diff --git a/src/turbulenceModels/LES/LESfilters/simpleFilter/simpleFilter.H b/src/turbulenceModels/LES/LESfilters/simpleFilter/simpleFilter.H index 6cf7729e1e5..4e4c5e0f471 100644 --- a/src/turbulenceModels/LES/LESfilters/simpleFilter/simpleFilter.H +++ b/src/turbulenceModels/LES/LESfilters/simpleFilter/simpleFilter.H @@ -76,27 +76,29 @@ public: simpleFilter(const fvMesh& mesh, const dictionary&); - // Destructor - - ~simpleFilter() - {} + //- Destructor + virtual ~simpleFilter() + {} // Member Functions //- Read the LESfilter dictionary - void read(const dictionary&); + virtual void read(const dictionary&); // Member Operators - tmp<volScalarField> operator()(const tmp<volScalarField>&) const; - tmp<volVectorField> operator()(const tmp<volVectorField>&) const; - tmp<volSymmTensorField> operator() + virtual tmp<volScalarField> operator()(const tmp<volScalarField>&) const; + + virtual tmp<volVectorField> operator()(const tmp<volVectorField>&) const; + + virtual tmp<volSymmTensorField> operator() ( const tmp<volSymmTensorField>& ) const; - tmp<volTensorField> operator()(const tmp<volTensorField>&) const; + + virtual tmp<volTensorField> operator()(const tmp<volTensorField>&) const; }; diff --git a/src/turbulenceModels/LES/compressible/DeardorffDiffStress/DeardorffDiffStress.C b/src/turbulenceModels/LES/compressible/DeardorffDiffStress/DeardorffDiffStress.C deleted file mode 100644 index 28f31e7164f..00000000000 --- a/src/turbulenceModels/LES/compressible/DeardorffDiffStress/DeardorffDiffStress.C +++ /dev/null @@ -1,150 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "DeardorffDiffStress.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace LESModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(DeardorffDiffStress, 0); -addToRunTimeSelectionTable(LESModel, DeardorffDiffStress, dictionary); - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// from components -DeardorffDiffStress::DeardorffDiffStress -( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - const basicThermo& thermoPhysicalModel -) -: - LESModel(typeName, rho, U, phi, thermoPhysicalModel), - GenSGSStress(rho, U, phi, thermoPhysicalModel), - - ck_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "ck", - coeffDict(), - 0.094 - ) - ), - cm_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "cm", - coeffDict(), - 4.13 - ) - ) -{ - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void DeardorffDiffStress::correct(const tmp<volTensorField>& tgradU) -{ - const volTensorField& gradU = tgradU(); - - GenSGSStress::correct(gradU); - - volSymmTensorField D = symm(gradU); - - volSymmTensorField P = -rho()*twoSymm(B_ & gradU); - - volScalarField K = 0.5*tr(B_); - - solve - ( - fvm::ddt(rho(), B_) - + fvm::div(phi(), B_) - - fvm::laplacian(DBEff(), B_) - + fvm::Sp(cm_*rho()*sqrt(K)/delta(), B_) - == - P - + 0.8*rho()*K*D - - (2*ce_ - 0.667*cm_)*I*rho()*epsilon() - ); - - - // Bounding the component kinetic energies - - forAll(B_, celli) - { - B_[celli].component(symmTensor::XX) = - max(B_[celli].component(symmTensor::XX), 1.0e-10); - B_[celli].component(symmTensor::YY) = - max(B_[celli].component(symmTensor::YY), 1.0e-10); - B_[celli].component(symmTensor::ZZ) = - max(B_[celli].component(symmTensor::ZZ), 1.0e-10); - } - - K = 0.5*tr(B_); - bound(K, k0()); - - muSgs_ = ck_*rho()*sqrt(K)*delta(); - muSgs_.correctBoundaryConditions(); -} - - -bool DeardorffDiffStress::read() -{ - if (GenSGSStress::read()) - { - ck_.readIfPresent(coeffDict()); - cm_.readIfPresent(coeffDict()); - - return true; - } - else - { - return false; - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace compressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/compressible/DeardorffDiffStress/DeardorffDiffStress.H b/src/turbulenceModels/LES/compressible/DeardorffDiffStress/DeardorffDiffStress.H deleted file mode 100644 index bfbcb2a41be..00000000000 --- a/src/turbulenceModels/LES/compressible/DeardorffDiffStress/DeardorffDiffStress.H +++ /dev/null @@ -1,141 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::compressible::LESModels::DeardorffDiffStress - -Description - Differential SGS Stress Equation Model for compressible flows - - The DSEM uses a model version of the full balance equation for the SGS - stress tensor to simulate the behaviour of B. - Thus, - @verbatim - d/dt(rho*B) + div(rho*U*B) - div(muSgs*grad(B)) - = - P - c1*rho*epsilon/k*B - 0.667*(1 - c1)*rho*epsilon*I - c2*(P - 0.333*trP*I) - - where - - k = 0.5*trB, - epsilon = ce*k^3/2/delta, - epsilon/k = ce*k^1/2/delta - P = -rho*(B'L + L'B) - muSgs = ck*rho*sqrt(k)*delta - muEff = muSgs + mu - @endverbatim - -SourceFiles - DeardorffDiffStress.C - -\*---------------------------------------------------------------------------*/ - -#ifndef compressibleDeardorffDiffStress_H -#define compressibleDeardorffDiffStress_H - -#include "GenSGSStress.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace LESModels -{ - -/*---------------------------------------------------------------------------*\ - Class DeardorffDiffStress Declaration -\*---------------------------------------------------------------------------*/ - -class DeardorffDiffStress -: - public GenSGSStress -{ - // Private data - - dimensionedScalar ck_; - dimensionedScalar cm_; - - - // Private Member Functions - - // Disallow default bitwise copy construct and assignment - DeardorffDiffStress(const DeardorffDiffStress&); - DeardorffDiffStress& operator=(const DeardorffDiffStress&); - - -public: - - //- Runtime type information - TypeName("DeardorffDiffStress"); - - // Constructors - - //- Constructor from components - DeardorffDiffStress - ( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - const basicThermo& thermoPhysicalModel - ); - - - // Destructor - - ~DeardorffDiffStress() - {} - - - // Member Functions - - //- Return the effective diffusivity for B - tmp<volScalarField> DBEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DBEff", muSgs_ + mu()) - ); - } - - //- Correct Eddy-Viscosity and related properties - void correct(const tmp<volTensorField>& gradU); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace compressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/compressible/GenEddyVisc/GenEddyVisc.C b/src/turbulenceModels/LES/compressible/GenEddyVisc/GenEddyVisc.C deleted file mode 100644 index c3843bb8f19..00000000000 --- a/src/turbulenceModels/LES/compressible/GenEddyVisc/GenEddyVisc.C +++ /dev/null @@ -1,144 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "GenEddyVisc.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace LESModels -{ - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// from components -GenEddyVisc::GenEddyVisc -( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - const basicThermo& thermoPhysicalModel -) -: - LESModel - ( - word("GenEddyVisc"), rho, U, phi, thermoPhysicalModel - ), - - ce_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "ce", - coeffDict(), - 1.048 - ) - ), - - k_ - ( - IOobject - ( - "k", - runTime_.timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh_ - ), - - muSgs_ - ( - IOobject - ( - "muSgs", - runTime_.timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh_ - ) -{ -// printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -tmp<volSymmTensorField> GenEddyVisc::B() const -{ - return ((2.0/3.0)*I)*k_ - (muSgs_/rho())*dev(twoSymm(fvc::grad(U()))); -} - - -tmp<volSymmTensorField> GenEddyVisc::devRhoBeff() const -{ - return -muEff()*dev(twoSymm(fvc::grad(U()))); -} - - -tmp<fvVectorMatrix> GenEddyVisc::divDevRhoBeff(volVectorField& U) const -{ - return - ( - - fvm::laplacian(muEff(), U) - fvc::div(muEff()*dev2(fvc::grad(U)().T())) - ); -} - - -void GenEddyVisc::correct(const tmp<volTensorField>& gradU) -{ - LESModel::correct(gradU); -} - - -bool GenEddyVisc::read() -{ - if (LESModel::read()) - { - ce_.readIfPresent(coeffDict()); - - return true; - } - else - { - return false; - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace compressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/compressible/GenEddyVisc/GenEddyVisc.H b/src/turbulenceModels/LES/compressible/GenEddyVisc/GenEddyVisc.H deleted file mode 100644 index cd501e9f68e..00000000000 --- a/src/turbulenceModels/LES/compressible/GenEddyVisc/GenEddyVisc.H +++ /dev/null @@ -1,155 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::compressible::LESModels::GenEddyVisc - -Description - General base class for all compressible models that can be implemented as - an eddy viscosity, i.e. algebraic and one-equation models. - - Contains fields for k (SGS turbulent kinetic energy), gamma - (modelled viscosity) and epsilon (SGS dissipation). - -SourceFiles - GenEddyVisc.C - -\*---------------------------------------------------------------------------*/ - -#ifndef compressibleGenEddyVisc_H -#define compressibleGenEddyVisc_H - -#include "LESModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace LESModels -{ - -/*---------------------------------------------------------------------------*\ - Class GenEddyVisc Declaration -\*---------------------------------------------------------------------------*/ - -class GenEddyVisc -: - virtual public LESModel -{ - // Private Member Functions - - // Disallow default bitwise copy construct and assignment - GenEddyVisc(const GenEddyVisc&); - GenEddyVisc& operator=(const GenEddyVisc&); - - -protected: - - dimensionedScalar ce_; - - volScalarField k_; - volScalarField muSgs_; - - -public: - - // Constructors - - //- Construct from components - GenEddyVisc - ( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - const basicThermo& thermoPhysicalModel - ); - - - // Destructor - - virtual ~GenEddyVisc() - {} - - - // Member Functions - - //- Return SGS kinetic energy - virtual tmp<volScalarField> k() const - { - return k_; - } - - //- Return sub-grid disipation rate - virtual tmp<volScalarField> epsilon() const - { - return ce_*k_*sqrt(k_)/delta(); - } - - //- Return viscosity - virtual tmp<volScalarField> muSgs() const - { - return muSgs_; - } - - //- Return thermal conductivity - virtual tmp<volScalarField> alphaEff() const - { - return tmp<volScalarField> - ( - new volScalarField("alphaEff", muSgs_ + alpha()) - ); - } - - //- Return the sub-grid stress tensor. - virtual tmp<volSymmTensorField> B() const; - - //- Return the deviatoric part of the effective sub-grid - // turbulence stress tensor including the laminar stress - virtual tmp<volSymmTensorField> devRhoBeff() const; - - //- Returns div(rho*dev(B)). - // This is the additional term due to the filtering of the NSE. - virtual tmp<fvVectorMatrix> divDevRhoBeff(volVectorField& U) const; - - //- Correct Eddy-Viscosity and related properties - virtual void correct(const tmp<volTensorField>& gradU); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace compressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/compressible/GenSGSStress/GenSGSStress.C b/src/turbulenceModels/LES/compressible/GenSGSStress/GenSGSStress.C deleted file mode 100644 index 7ef8ebee764..00000000000 --- a/src/turbulenceModels/LES/compressible/GenSGSStress/GenSGSStress.C +++ /dev/null @@ -1,159 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "GenSGSStress.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace LESModels -{ - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// from components -GenSGSStress::GenSGSStress -( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - const basicThermo& thermoPhysicalModel -) -: - LESModel - ( - word("GenSGSStress"), - rho, - U, - phi, - thermoPhysicalModel - ), - - ce_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "ce", - coeffDict(), - 1.048 - ) - ), - - B_ - ( - IOobject - ( - "B", - runTime_.timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh_ - ), - - muSgs_ - ( - IOobject - ( - "muSgs", - runTime_.timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh_ - ) -{ -// printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -tmp<volSymmTensorField> GenSGSStress::devRhoBeff() const -{ - return tmp<volSymmTensorField> - ( - new volSymmTensorField - ( - IOobject - ( - "devRhoReff", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - rho()*B_ - mu()*dev(twoSymm(fvc::grad(U()))) - ) - ); -} - - -tmp<fvVectorMatrix> GenSGSStress::divDevRhoBeff(volVectorField& U) const -{ - return - ( - fvc::div(rho()*B_ + 0.05*muSgs_*fvc::grad(U)) - + fvc::laplacian(0.95*muSgs_, U, "laplacian(muEff,U)") - - fvm::laplacian(muEff(), U) - - fvc::div(mu()*dev2(fvc::grad(U)().T())) - ); -} - - -void GenSGSStress::correct(const tmp<volTensorField>& gradU) -{ - LESModel::correct(gradU); -} - - -bool GenSGSStress::read() -{ - if (LESModel::read()) - { - ce_.readIfPresent(coeffDict()); - - return true; - } - else - { - return false; - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace compressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/compressible/GenSGSStress/GenSGSStress.H b/src/turbulenceModels/LES/compressible/GenSGSStress/GenSGSStress.H deleted file mode 100644 index c071a7a01cc..00000000000 --- a/src/turbulenceModels/LES/compressible/GenSGSStress/GenSGSStress.H +++ /dev/null @@ -1,160 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::compressible::LESModels::GenSGSStress - -Description - General base class for all compressible models that directly - solve for the SGS stress tensor B. - - Contains tensor fields B (the SGS stress tensor) as well as scalar - fields for k (SGS turbulent energy) gamma (SGS viscosity) and epsilon - (SGS dissipation). - -SourceFiles - GenSGSStress.C - -\*---------------------------------------------------------------------------*/ - -#ifndef compressibleGenSGSStress_H -#define compressibleGenSGSStress_H - -#include "LESModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace LESModels -{ - -/*---------------------------------------------------------------------------*\ - Class GenSGSStress Declaration -\*---------------------------------------------------------------------------*/ - -class GenSGSStress -: - virtual public LESModel -{ - // Private Member Functions - - // Disallow default bitwise copy construct and assignment - GenSGSStress(const GenSGSStress&); - GenSGSStress& operator=(const GenSGSStress&); - - -protected: - - dimensionedScalar ce_; - - volSymmTensorField B_; - volScalarField muSgs_; - - -public: - - // Constructors - - //- Constructor from components - GenSGSStress - ( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - const basicThermo& thermoPhysicalModel - ); - - - // Destructor - - virtual ~GenSGSStress() - {} - - - // Member Functions - - //- Return the SGS turbulent kinetic energy. - virtual tmp<volScalarField> k() const - { - return 0.5*tr(B_); - } - - //- Return the SGS turbulent dissipation. - virtual tmp<volScalarField> epsilon() const - { - volScalarField K = k(); - return ce_*K*sqrt(K)/delta(); - } - - //- Return the SGS viscosity. - virtual tmp<volScalarField> muSgs() const - { - return muSgs_; - } - - //- Return thermal conductivity - virtual tmp<volScalarField> alphaEff() const - { - return tmp<volScalarField> - ( - new volScalarField("alphaEff", muSgs_ + alpha()) - ); - } - - //- Return the sub-grid stress tensor. - virtual tmp<volSymmTensorField> B() const - { - return B_; - } - - //- Return the deviatoric part of the effective sub-grid - // turbulence stress tensor including the laminar stress - virtual tmp<volSymmTensorField> devRhoBeff() const; - - //- Returns divergence of B : i.e. the additional term in the - // filtered NSE. - virtual tmp<fvVectorMatrix> divDevRhoBeff(volVectorField& U) const; - - //- Correct Eddy-Viscosity and related properties - virtual void correct(const tmp<volTensorField>& gradU); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace compressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/compressible/LESModel/LESModel.C b/src/turbulenceModels/LES/compressible/LESModel/LESModel.C deleted file mode 100644 index 8591c4c7b46..00000000000 --- a/src/turbulenceModels/LES/compressible/LESModel/LESModel.C +++ /dev/null @@ -1,133 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "LESModel.H" -#include "wallDist.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(LESModel, 0); -defineRunTimeSelectionTable(LESModel, dictionary); - -// * * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * // - -void LESModel::printCoeffs() -{ - if (printCoeffs_) - { - Info<< type() << "Coeffs" << coeffDict_ << endl; - } -} - - -// * * * * * * * * * * * * * * * Constructor * * * * * * * * * * * * * * * * // - -LESModel::LESModel -( - const word& type, - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - const basicThermo& thermoPhysicalModel -) -: - IOdictionary - ( - IOobject - ( - "LESProperties", - U.time().constant(), - U.db(), - IOobject::MUST_READ, - IOobject::NO_WRITE - ) - ), - - runTime_(U.time()), - mesh_(U.mesh()), - - rho_(rho), - U_(U), - phi_(phi), - thermoPhysicalModel_(thermoPhysicalModel), - - printCoeffs_(lookupOrDefault<Switch>("printCoeffs", false)), - coeffDict_(subDict(type + "Coeffs")), - - k0_("k0", dimVelocity*dimVelocity, SMALL), - - delta_(LESdelta::New("delta", U.mesh(), *this)) -{ - readIfPresent("k0", k0_); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void LESModel::correct(const tmp<volTensorField>&) -{ - delta_().correct(); -} - - -void LESModel::correct() -{ - correct(fvc::grad(U_)); -} - - -bool LESModel::read() -{ - if (regIOobject::read()) - { - coeffDict_ = subDict(type() + "Coeffs"); - - delta_().read(*this); - - readIfPresent("k0", k0_); - - return true; - } - else - { - return false; - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace compressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/compressible/LESModel/LESModel.H b/src/turbulenceModels/LES/compressible/LESModel/LESModel.H deleted file mode 100644 index ecef2d8f771..00000000000 --- a/src/turbulenceModels/LES/compressible/LESModel/LESModel.H +++ /dev/null @@ -1,293 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Namespace - Foam::compressible::LESModels - -Description - Namespace for compressible LES models. - - -Class - Foam::compressible::LESModel - -Description - Class for all compressible flow LES SGS models. - - This class defines the basic interface for a compressible flow SGS model, - and encapsulates data of value to all possible models. In particular - this includes references to all the dependent fields (rho, U, phi), - the physical viscosity mu, and the turbulenceProperties dictionary - which contains the model selection and model coefficients. - -SourceFiles - LESModel.C - newLESModel.C - -\*---------------------------------------------------------------------------*/ - -#ifndef compressibleLESModel_H -#define compressibleLESModel_H - -#include "LESdelta.H" -#include "fvm.H" -#include "fvc.H" -#include "fvMatrices.H" -#include "basicThermo.H" -#include "bound.H" -#include "autoPtr.H" -#include "runTimeSelectionTables.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ - -/*---------------------------------------------------------------------------*\ - Class LESModel Declaration -\*---------------------------------------------------------------------------*/ - -class LESModel -: - public IOdictionary -{ - -protected: - - // Protected data - - const Time& runTime_; - const fvMesh& mesh_; - - -private: - - // Private data - - const volScalarField& rho_; - const volVectorField& U_; - const surfaceScalarField& phi_; - - const basicThermo& thermoPhysicalModel_; - - Switch printCoeffs_; - dictionary coeffDict_; - - dimensionedScalar k0_; - - autoPtr<LESdelta> delta_; - - - // Private Member Functions - - // Disallow default bitwise copy construct and assignment - LESModel(const LESModel&); - LESModel& operator=(const LESModel&); - - -protected: - - // Protected Member Functions - - //- Print model coefficients - virtual void printCoeffs(); - - -public: - - //- Runtime type information - TypeName("LESModel"); - - - // Declare run-time constructor selection table - - declareRunTimeSelectionTable - ( - autoPtr, - LESModel, - dictionary, - ( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - const basicThermo& thermoPhysicalModel - ), - (rho, U, phi, thermoPhysicalModel) - ); - - - // Constructors - - //- Construct from components - LESModel - ( - const word& type, - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - const basicThermo& thermoPhysicalModel - ); - - - // Selectors - - //- Return a reference to the selected LES model - static autoPtr<LESModel> New - ( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - const basicThermo& thermoPhysicalModel - ); - - - // Destructor - - virtual ~LESModel() - {} - - - // Member Functions - - // Access - - //- Access function to the density field - inline const volScalarField& rho() const - { - return rho_; - } - - //- Access function to velocity field - inline const volVectorField& U() const - { - return U_; - } - - //- Access function to flux field - inline const surfaceScalarField& phi() const - { - return phi_; - } - - //- Access function to the thermophysical properties model - inline const basicThermo& thermo() const - { - return thermoPhysicalModel_; - } - - //- Access the dictionary which provides info. about choice of - // models, and all related data (particularly model coefficients). - inline dictionary& coeffDict() - { - return coeffDict_; - } - - //- Access function to filter width - inline const volScalarField& delta() const - { - return delta_(); - } - - //- Return the value of k0 which k is not allowed to be less than - const dimensionedScalar& k0() const - { - return k0_; - } - - //- Allow k0 to be changed - dimensionedScalar& k0() - { - return k0_; - } - - //- Access function to laminar viscosity - tmp<volScalarField> mu() const - { - return thermoPhysicalModel_.mu(); - } - - //- Access function to laminar thermal conductivity - tmp<volScalarField> alpha() const - { - return thermoPhysicalModel_.alpha(); - } - - - //- Return the SGS turbulent kinetic energy. - virtual tmp<volScalarField> k() const = 0; - - //- Return the SGS turbulent dissipation. - virtual tmp<volScalarField> epsilon() const = 0; - - //- Return the effective viscosity - virtual tmp<volScalarField> muSgs() const = 0; - - //- Return the effective viscosity - virtual tmp<volScalarField> muEff() const - { - return tmp<volScalarField> - ( - new volScalarField("muEff", muSgs() + mu()) - ); - } - - //- Return the SGS thermal conductivity. - virtual tmp<volScalarField> alphaEff() const = 0; - - //- Return the sub-grid stress tensor. - virtual tmp<volSymmTensorField> B() const = 0; - - //- Return the deviatoric part of the effective sub-grid - // turbulence stress tensor including the laminar stress - virtual tmp<volSymmTensorField> devRhoBeff() const = 0; - - //- Returns div(rho*dev(B)). - // This is the additional term due to the filtering of the NSE. - virtual tmp<fvVectorMatrix> divDevRhoBeff(volVectorField& U) const = 0; - - //- Correct Eddy-Viscosity and related properties. - // This calls correct(const tmp<volTensorField>& gradU) by supplying - // gradU calculated locally. - void correct(); - - //- Correct Eddy-Viscosity and related properties - virtual void correct(const tmp<volTensorField>& gradU); - - //- Read turbulenceProperties dictionary - virtual bool read() = 0; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace compressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/compressible/LESModel/newLESModel.C b/src/turbulenceModels/LES/compressible/LESModel/newLESModel.C deleted file mode 100644 index b411074b170..00000000000 --- a/src/turbulenceModels/LES/compressible/LESModel/newLESModel.C +++ /dev/null @@ -1,94 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "LESModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -autoPtr<LESModel> LESModel::New -( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - const basicThermo& thermoPhysicalModel -) -{ - word LESModelTypeName; - - // Enclose the creation of the turbulencePropertiesDict to ensure it is - // deleted before the turbulenceModel is created otherwise the dictionary - // is entered in the database twice - { - IOdictionary turbulencePropertiesDict - ( - IOobject - ( - "LESProperties", - U.time().constant(), - U.db(), - IOobject::MUST_READ, - IOobject::NO_WRITE - ) - ); - - turbulencePropertiesDict.lookup("LESModel") >> LESModelTypeName; - } - - Info<< "Selecting LES turbulence model " << LESModelTypeName << endl; - - dictionaryConstructorTable::iterator cstrIter = - dictionaryConstructorTablePtr_->find(LESModelTypeName); - - if (cstrIter == dictionaryConstructorTablePtr_->end()) - { - FatalErrorIn - ( - "LESModel::New(const volVectorField& U, const " - "surfaceScalarField& phi, const basicThermo&)" - ) << "Unknown LESModel type " << LESModelTypeName - << endl << endl - << "Valid LESModel types are :" << endl - << dictionaryConstructorTablePtr_->toc() - << exit(FatalError); - } - - return autoPtr<LESModel>(cstrIter()(rho, U, phi, thermoPhysicalModel)); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace compressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/compressible/Make/files b/src/turbulenceModels/LES/compressible/Make/files deleted file mode 100644 index dc31f55cae3..00000000000 --- a/src/turbulenceModels/LES/compressible/Make/files +++ /dev/null @@ -1,19 +0,0 @@ -LESModel/LESModel.C -LESModel/newLESModel.C -GenEddyVisc/GenEddyVisc.C -GenSGSStress/GenSGSStress.C - -Smagorinsky/Smagorinsky.C -oneEqEddy/oneEqEddy.C -lowReOneEqEddy/lowReOneEqEddy.C -dynOneEqEddy/dynOneEqEddy.C -DeardorffDiffStress/DeardorffDiffStress.C -SpalartAllmaras/SpalartAllmaras.C - -/* Wall functions */ -wallFunctions=derivedFvPatchFields/wallFunctions - -muSgsWallFunctions=$(wallFunctions)/muSgsWallFunctions -$(muSgsWallFunctions)/muSgsSpalartAllmarasWallFunction/muSgsSpalartAllmarasWallFunctionFvPatchScalarField.C - -LIB = $(FOAM_LIBBIN)/libcompressibleLESModels diff --git a/src/turbulenceModels/LES/compressible/Make/options b/src/turbulenceModels/LES/compressible/Make/options deleted file mode 100644 index c148a902e05..00000000000 --- a/src/turbulenceModels/LES/compressible/Make/options +++ /dev/null @@ -1,11 +0,0 @@ -EXE_INC = \ - -I$(LIB_SRC)/finiteVolume/lnInclude \ - -I$(LIB_SRC)/meshTools/lnInclude \ - -I../LESdeltas/lnInclude \ - -I../LESfilters/lnInclude \ - -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude - -LIB_LIBS = \ - -lLESdeltas \ - -lLESfilters \ - -lmeshTools diff --git a/src/turbulenceModels/LES/compressible/Smagorinsky/Smagorinsky.C b/src/turbulenceModels/LES/compressible/Smagorinsky/Smagorinsky.C deleted file mode 100644 index 547fd60f5e5..00000000000 --- a/src/turbulenceModels/LES/compressible/Smagorinsky/Smagorinsky.C +++ /dev/null @@ -1,112 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "Smagorinsky.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace LESModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(Smagorinsky, 0); -addToRunTimeSelectionTable(LESModel, Smagorinsky, dictionary); - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// from components -Smagorinsky::Smagorinsky -( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - const basicThermo& thermoPhysicalModel -) -: - LESModel(typeName, rho, U, phi, thermoPhysicalModel), - GenEddyVisc(rho, U, phi, thermoPhysicalModel), - - ck_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "ck", - coeffDict(), - 0.02 - ) - ) -{ - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void Smagorinsky::correct(const tmp<volTensorField>& gradU) -{ - GenEddyVisc::correct(gradU); - - volSymmTensorField D = symm(gradU); - - volScalarField a = ce_/delta(); - volScalarField b = (2.0/3.0)*tr(D); - volScalarField c = 2*ck_*delta()*(dev(D) && D); - - k_ = sqr((-b + sqrt(sqr(b) + 4*a*c))/(2*a)); - - muSgs_ = ck_*rho()*delta()*sqrt(k_); - muSgs_.correctBoundaryConditions(); -} - - -bool Smagorinsky::read() -{ - if (GenEddyVisc::read()) - { - ck_.readIfPresent(coeffDict()); - - return true; - } - else - { - return false; - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace compressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/compressible/Smagorinsky/Smagorinsky.H b/src/turbulenceModels/LES/compressible/Smagorinsky/Smagorinsky.H deleted file mode 100644 index e5d786f94af..00000000000 --- a/src/turbulenceModels/LES/compressible/Smagorinsky/Smagorinsky.H +++ /dev/null @@ -1,127 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::compressible::LESModels::Smagorinsky - -Description - The choric Smagorinsky Model for compressible flows. - - Algebraic eddy viscosity SGS model founded on the assumption that - local equilibrium prevails. - Thus, - @verbatim - - B = 2/3*k*I - 2*nuSgs*dev(D) - - where - - D = symm(grad(U)); - k from rho*D:B + ce*rho*k^3/2/delta = 0 - muSgs = ck*rho*sqrt(k)*delta - @endverbatim - -SourceFiles - Smagorinsky.C - -\*---------------------------------------------------------------------------*/ - -#ifndef compressibleSmagorinsky_H -#define compressibleSmagorinsky_H - -#include "GenEddyVisc.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace LESModels -{ - -/*---------------------------------------------------------------------------*\ - Class Smagorinsky Declaration -\*---------------------------------------------------------------------------*/ - -class Smagorinsky -: - public GenEddyVisc -{ - // Private data - - dimensionedScalar ck_; - - - // Private Member Functions - - // Disallow default bitwise copy construct and assignment - Smagorinsky(const Smagorinsky&); - Smagorinsky& operator=(const Smagorinsky&); - - -public: - - //- Runtime type information - TypeName("Smagorinsky"); - - // Constructors - - //- Construct from components - Smagorinsky - ( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - const basicThermo& thermoPhysicalModel - ); - - - // Destructor - - ~Smagorinsky() - {} - - - // Member Functions - - //- Correct Eddy-Viscosity and related properties - void correct(const tmp<volTensorField>& gradU); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace compressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/compressible/SpalartAllmaras/SpalartAllmaras.C b/src/turbulenceModels/LES/compressible/SpalartAllmaras/SpalartAllmaras.C deleted file mode 100644 index 568598a0653..00000000000 --- a/src/turbulenceModels/LES/compressible/SpalartAllmaras/SpalartAllmaras.C +++ /dev/null @@ -1,329 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "SpalartAllmaras.H" -#include "addToRunTimeSelectionTable.H" -#include "wallDist.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace LESModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(SpalartAllmaras, 0); -addToRunTimeSelectionTable(LESModel, SpalartAllmaras, dictionary); - - -// * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * * // - -tmp<volScalarField> SpalartAllmaras::fv1() const -{ - volScalarField chi3 = pow3(nuTilda_/(mu()/rho())); - return chi3/(chi3 + pow3(Cv1_)); -} - - -tmp<volScalarField> SpalartAllmaras::fv2() const -{ - volScalarField chi = nuTilda_/(mu()/rho()); - //return scalar(1) - chi/(scalar(1) + chi*fv1()); - return 1.0/pow3(scalar(1) + chi/Cv2_); -} - - -tmp<volScalarField> SpalartAllmaras::fv3() const -{ - volScalarField chi = nuTilda_/(mu()/rho()); - volScalarField chiByCv2 = (1/Cv2_)*chi; - - return - (scalar(1) + chi*fv1()) - *(1/Cv2_) - *(3*(scalar(1) + chiByCv2) + sqr(chiByCv2)) - /pow3(scalar(1) + chiByCv2); -} - - -tmp<volScalarField> SpalartAllmaras::fw(const volScalarField& Stilda) const -{ - volScalarField r = min - ( - nuTilda_ - /( - max(Stilda, dimensionedScalar("SMALL", Stilda.dimensions(), SMALL)) - *sqr(kappa_*dTilda_) - ), - scalar(10.0) - ); - r.boundaryField() == 0.0; - - volScalarField g = r + Cw2_*(pow6(r) - r); - - return g*pow((1.0 + pow6(Cw3_))/(pow6(g) + pow6(Cw3_)), 1.0/6.0); -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -SpalartAllmaras::SpalartAllmaras -( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - const basicThermo& thermoPhysicalModel -) -: - LESModel(typeName, rho, U, phi, thermoPhysicalModel), - - alphaNut_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphaNut", - coeffDict(), - 1.5 - ) - ), - - Cb1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cb1", - coeffDict(), - 0.1355 - ) - ), - Cb2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cb2", - coeffDict(), - 0.622 - ) - ), - Cv1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cv1", - coeffDict(), - 7.1 - ) - ), - Cv2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cv2", - coeffDict(), - 5.0 - ) - ), - CDES_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "CDES", - coeffDict(), - 0.65 - ) - ), - ck_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "ck", - coeffDict(), - 0.07 - ) - ), - kappa_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "kappa", - *this, - 0.4187 - ) - ), - Cw1_(Cb1_/sqr(kappa_) + alphaNut_*(1.0 + Cb2_)), - Cw2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cw2", - coeffDict(), - 0.3 - ) - ), - Cw3_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cw3", - coeffDict(), - 2.0 - ) - ), - - nuTilda_ - ( - IOobject - ( - "nuTilda", - runTime_.timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh_ - ), - - dTilda_(min(CDES_*delta(), wallDist(mesh_).y())), - muSgs_ - ( - IOobject - ( - "muSgs", - runTime_.timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh_ - ) - -{ - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -tmp<volSymmTensorField> SpalartAllmaras::B() const -{ - return ((2.0/3.0)*I)*k() - (muSgs_/rho())*dev(twoSymm(fvc::grad(U()))); -} - - -tmp<volSymmTensorField> SpalartAllmaras::devRhoBeff() const -{ - return -muEff()*dev(twoSymm(fvc::grad(U()))); -} - - -tmp<volScalarField> SpalartAllmaras::epsilon() const -{ - return 2*muEff()/rho()*magSqr(symm(fvc::grad(U()))); -} - - -tmp<fvVectorMatrix> SpalartAllmaras::divDevRhoBeff(volVectorField& U) const -{ - return - ( - - fvm::laplacian(muEff(), U) - fvc::div(muEff()*dev2(fvc::grad(U)().T())) - ); -} - - -void SpalartAllmaras::correct(const tmp<volTensorField>& tgradU) -{ - const volTensorField& gradU = tgradU(); - LESModel::correct(gradU); - - if (mesh_.changing()) - { - dTilda_ = min(CDES_*delta(), wallDist(mesh_).y()); - } - - volScalarField Stilda = - fv3()*::sqrt(2.0)*mag(skew(gradU)) + fv2()*nuTilda_/sqr(kappa_*dTilda_); - - solve - ( - fvm::ddt(rho(), nuTilda_) - + fvm::div(phi(), nuTilda_) - - fvm::laplacian - ( - alphaNut_*(nuTilda_*rho() + mu()), - nuTilda_, - "laplacian(DnuTildaEff,nuTilda)" - ) - - alphaNut_*rho()*Cb2_*magSqr(fvc::grad(nuTilda_)) - == - rho()*Cb1_*Stilda*nuTilda_ - - fvm::Sp(rho()*Cw1_*fw(Stilda)*nuTilda_/sqr(dTilda_), nuTilda_) - ); - - bound(nuTilda_, dimensionedScalar("zero", nuTilda_.dimensions(), 0.0)); - - nuTilda_.correctBoundaryConditions(); - muSgs_.internalField() = rho()*fv1()*nuTilda_.internalField(); - muSgs_.correctBoundaryConditions(); -} - - -bool SpalartAllmaras::read() -{ - if (LESModel::read()) - { - alphaNut_.readIfPresent(coeffDict()); - Cb1_.readIfPresent(coeffDict()); - Cb2_.readIfPresent(coeffDict()); - Cw1_ = Cb1_/sqr(kappa_) + alphaNut_*(1.0 + Cb2_); - Cw2_.readIfPresent(coeffDict()); - Cw3_.readIfPresent(coeffDict()); - Cv1_.readIfPresent(coeffDict()); - Cv2_.readIfPresent(coeffDict()); - CDES_.readIfPresent(coeffDict()); - ck_.readIfPresent(coeffDict()); - kappa_.readIfPresent(*this); - - return true; - } - else - { - return false; - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace compressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/compressible/SpalartAllmaras/SpalartAllmaras.H b/src/turbulenceModels/LES/compressible/SpalartAllmaras/SpalartAllmaras.H deleted file mode 100644 index 67a1d7b8a83..00000000000 --- a/src/turbulenceModels/LES/compressible/SpalartAllmaras/SpalartAllmaras.H +++ /dev/null @@ -1,175 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::compressible::LESModels::SpalartAllmaras - -Description - SpalartAllmaras for compressible flows - -SourceFiles - SpalartAllmaras.C - -\*---------------------------------------------------------------------------*/ - -#ifndef compressibleSpalartAllmaras_H -#define compressibleSpalartAllmaras_H - -#include "LESModel.H" -#include "volFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace LESModels -{ - -/*---------------------------------------------------------------------------*\ - Class SpalartAllmaras Declaration -\*---------------------------------------------------------------------------*/ - -class SpalartAllmaras -: - public LESModel -{ - // Private data - - dimensionedScalar alphaNut_; - - dimensionedScalar Cb1_; - dimensionedScalar Cb2_; - dimensionedScalar Cv1_; - dimensionedScalar Cv2_; - dimensionedScalar CDES_; - dimensionedScalar ck_; - dimensionedScalar kappa_; - dimensionedScalar Cw1_; - dimensionedScalar Cw2_; - dimensionedScalar Cw3_; - - - // Private member functions - - tmp<volScalarField> fv1() const; - tmp<volScalarField> fv2() const; - tmp<volScalarField> fv3() const; - tmp<volScalarField> fw(const volScalarField& Stilda) const; - - // Disallow default bitwise copy construct and assignment - SpalartAllmaras(const SpalartAllmaras&); - SpalartAllmaras& operator=(const SpalartAllmaras&); - - volScalarField nuTilda_; - volScalarField dTilda_; - volScalarField muSgs_; - - -public: - - //- Runtime type information - TypeName("SpalartAllmaras"); - - - // Constructors - - //- Constructor from components - SpalartAllmaras - ( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - const basicThermo& thermoPhysicalModel - ); - - - // Destructor - - ~SpalartAllmaras() - {} - - - // Member Functions - - //- Return SGS kinetic energy - tmp<volScalarField> k() const - { - return sqr(muSgs()/rho()/ck_/dTilda_); - } - - //- Return sub-grid disipation rate - tmp<volScalarField> epsilon() const; - - tmp<volScalarField> nuTilda() const - { - return nuTilda_; - } - - //- Return SGS viscosity - tmp<volScalarField> muSgs() const - { - return muSgs_; - } - - //- Return thermal conductivity - tmp<volScalarField> alphaEff() const - { - return tmp<volScalarField> - ( - new volScalarField("alphaEff", muSgs_ + alpha()) - ); - } - - //- Return the sub-grid stress tensor. - virtual tmp<volSymmTensorField> B() const; - - //- Return the deviatoric part of the effective sub-grid - // turbulence stress tensor including the laminar stress - virtual tmp<volSymmTensorField> devRhoBeff() const; - - //- Returns div(rho*dev(B)). - // This is the additional term due to the filtering of the NSE. - tmp<fvVectorMatrix> divDevRhoBeff(volVectorField& U) const; - - //- Correct nuTilda and related properties - void correct(const tmp<volTensorField>& gradU); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace compressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/compressible/derivedFvPatchFields/wallFunctions/muSgsWallFunctions/muSgsSpalartAllmarasWallFunction/muSgsSpalartAllmarasWallFunctionFvPatchScalarField.C b/src/turbulenceModels/LES/compressible/derivedFvPatchFields/wallFunctions/muSgsWallFunctions/muSgsSpalartAllmarasWallFunction/muSgsSpalartAllmarasWallFunctionFvPatchScalarField.C deleted file mode 100644 index e210c32c730..00000000000 --- a/src/turbulenceModels/LES/compressible/derivedFvPatchFields/wallFunctions/muSgsWallFunctions/muSgsSpalartAllmarasWallFunction/muSgsSpalartAllmarasWallFunctionFvPatchScalarField.C +++ /dev/null @@ -1,205 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "muSgsSpalartAllmarasWallFunctionFvPatchScalarField.H" -#include "LESModel.H" -#include "fvPatchFieldMapper.H" -#include "volFields.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace LESModels -{ - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -muSgsSpalartAllmarasWallFunctionFvPatchScalarField:: -muSgsSpalartAllmarasWallFunctionFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedValueFvPatchScalarField(p, iF) -{} - - -muSgsSpalartAllmarasWallFunctionFvPatchScalarField:: -muSgsSpalartAllmarasWallFunctionFvPatchScalarField -( - const muSgsSpalartAllmarasWallFunctionFvPatchScalarField& ptf, - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const fvPatchFieldMapper& mapper -) -: - fixedValueFvPatchScalarField(ptf, p, iF, mapper) -{} - - -muSgsSpalartAllmarasWallFunctionFvPatchScalarField:: -muSgsSpalartAllmarasWallFunctionFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - Istream& is -) -: - fixedValueFvPatchScalarField(p, iF, is) -{} - - -muSgsSpalartAllmarasWallFunctionFvPatchScalarField:: -muSgsSpalartAllmarasWallFunctionFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const dictionary& dict -) -: - fixedValueFvPatchScalarField(p, iF, dict) -{} - - -muSgsSpalartAllmarasWallFunctionFvPatchScalarField:: -muSgsSpalartAllmarasWallFunctionFvPatchScalarField -( - const muSgsSpalartAllmarasWallFunctionFvPatchScalarField& tppsf -) -: - fixedValueFvPatchScalarField(tppsf) -{} - - -muSgsSpalartAllmarasWallFunctionFvPatchScalarField:: -muSgsSpalartAllmarasWallFunctionFvPatchScalarField -( - const muSgsSpalartAllmarasWallFunctionFvPatchScalarField& tppsf, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedValueFvPatchScalarField(tppsf, iF) -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void muSgsSpalartAllmarasWallFunctionFvPatchScalarField::evaluate -( - const Pstream::commsTypes -) -{ - const LESModel& sgsModel - = db().lookupObject<LESModel>("LESProperties"); - - scalar kappa = readScalar(sgsModel.lookup("kappa")); - - scalar E = readScalar(sgsModel.subDict("wallFunctionCoeffs").lookup("E")); - - const scalarField& ry = patch().deltaCoeffs(); - - const fvPatchVectorField& U = - patch().lookupPatchField<volVectorField, vector>("U"); - - scalarField magUp = mag(U.patchInternalField() - U); - - const scalarField& muw = - patch().lookupPatchField<volScalarField, scalar>("mu"); - - const scalarField& rhow = - patch().lookupPatchField<volScalarField, scalar>("rho"); - - scalarField& muSgsw = *this; - - scalarField magFaceGradU = mag(U.snGrad()); - - forAll(muSgsw, facei) - { - scalar magUpara = magUp[facei]; - - scalar utau = sqrt - ( - (muSgsw[facei] + muw[facei]) - *magFaceGradU[facei]/rhow[facei] - ); - - if(utau > 0) - { - int iter = 0; - scalar err = GREAT; - - do - { - scalar kUu = kappa*magUpara/utau; - scalar fkUu = exp(kUu) - 1 - kUu*(1 + 0.5*kUu); - - scalar f = - - utau/(ry[facei]*muw[facei]/rhow[facei]) - + magUpara/utau - + 1/E*(fkUu - 1.0/6.0*kUu*sqr(kUu)); - - scalar df = - - 1.0/(ry[facei]*muw[facei]/rhow[facei]) - - magUpara/sqr(utau) - - 1/E*kUu*fkUu/utau; - - scalar utauNew = utau - f/df; - err = mag((utau - utauNew)/utau); - utau = utauNew; - - } while (utau > VSMALL && err > 0.01 && ++iter < 10); - - muSgsw[facei] = - max(rhow[facei]*sqr(utau)/magFaceGradU[facei] - muw[facei],0.0); - } - else - { - muSgsw[facei] = 0; - } - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -makePatchTypeField -( - fvPatchScalarField, - muSgsSpalartAllmarasWallFunctionFvPatchScalarField -); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace compressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/compressible/derivedFvPatchFields/wallFunctions/muSgsWallFunctions/muSgsSpalartAllmarasWallFunction/muSgsSpalartAllmarasWallFunctionFvPatchScalarField.H b/src/turbulenceModels/LES/compressible/derivedFvPatchFields/wallFunctions/muSgsWallFunctions/muSgsSpalartAllmarasWallFunction/muSgsSpalartAllmarasWallFunctionFvPatchScalarField.H deleted file mode 100644 index 9d3210c1d41..00000000000 --- a/src/turbulenceModels/LES/compressible/derivedFvPatchFields/wallFunctions/muSgsWallFunctions/muSgsSpalartAllmarasWallFunction/muSgsSpalartAllmarasWallFunctionFvPatchScalarField.H +++ /dev/null @@ -1,165 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::compressible::LESModels:: - muSgsSpalartAllmarasWallFunctionFvPatchScalarField - -Description - Spalart Allmaas wall function boundary condition for compressible flows - -SourceFiles - muSgsSpalartAllmarasWallFunctionFvPatchScalarField.C - -\*---------------------------------------------------------------------------*/ - -#ifndef muSgsSpalartAllmarasWallFunctionFvPatchScalarField_H -#define muSgsSpalartAllmarasWallFunctionFvPatchScalarField_H - -#include "fixedValueFvPatchFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace LESModels -{ - -/*---------------------------------------------------------------------------*\ - Class muSgsSpalartAllmarasWallFunctionFvPatchScalarField Declaration -\*---------------------------------------------------------------------------*/ - -class muSgsSpalartAllmarasWallFunctionFvPatchScalarField -: - public fixedValueFvPatchScalarField -{ - // Private data - - -public: - - //- Runtime type information - TypeName("muSgsSpalartAllmarasWallFunction"); - - - // Constructors - - //- Construct from patch and internal field - muSgsSpalartAllmarasWallFunctionFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct from patch, internal field and Istream - muSgsSpalartAllmarasWallFunctionFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - Istream& - ); - - //- Construct from patch, internal field and dictionary - muSgsSpalartAllmarasWallFunctionFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const dictionary& - ); - - //- Construct by mapping given - // muSgsSpalartAllmarasWallFunctionFvPatchScalarField - // onto a new patch - muSgsSpalartAllmarasWallFunctionFvPatchScalarField - ( - const muSgsSpalartAllmarasWallFunctionFvPatchScalarField&, - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const fvPatchFieldMapper& - ); - - //- Construct as copy - muSgsSpalartAllmarasWallFunctionFvPatchScalarField - ( - const muSgsSpalartAllmarasWallFunctionFvPatchScalarField& - ); - - //- Construct and return a clone - virtual tmp<fvPatchScalarField> clone() const - { - return tmp<fvPatchScalarField> - ( - new muSgsSpalartAllmarasWallFunctionFvPatchScalarField(*this) - ); - } - - //- Construct as copy setting internal field reference - muSgsSpalartAllmarasWallFunctionFvPatchScalarField - ( - const muSgsSpalartAllmarasWallFunctionFvPatchScalarField&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct and return a clone setting internal field reference - virtual tmp<fvPatchScalarField> clone - ( - const DimensionedField<scalar, volMesh>& iF - ) const - { - return tmp<fvPatchScalarField> - ( - new muSgsSpalartAllmarasWallFunctionFvPatchScalarField - ( - *this, - iF - ) - ); - } - - - // Member functions - - // Evaluation functions - - //- Evaluate the patchField - virtual void evaluate - ( - const Pstream::commsTypes commsType=Pstream::blocking - ); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace compressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/compressible/dynOneEqEddy/dynOneEqEddy.C b/src/turbulenceModels/LES/compressible/dynOneEqEddy/dynOneEqEddy.C deleted file mode 100644 index 96bf8abbc9e..00000000000 --- a/src/turbulenceModels/LES/compressible/dynOneEqEddy/dynOneEqEddy.C +++ /dev/null @@ -1,155 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "dynOneEqEddy.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace LESModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(dynOneEqEddy, 0); -addToRunTimeSelectionTable(LESModel, dynOneEqEddy, dictionary); - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -dimensionedScalar dynOneEqEddy::ck_(const volSymmTensorField& D) const -{ - volScalarField KK = 0.5*(filter_(magSqr(U())) - magSqr(filter_(U()))); - - volSymmTensorField LL = dev(filter_(sqr(U())) - (sqr(filter_(U())))); - - volSymmTensorField MM = - delta()*(filter_(sqrt(k_)*D) - 2*sqrt(KK + filter_(k_))*filter_(D)); - - return average(LL && MM)/average(magSqr(MM)); -} - - -dimensionedScalar dynOneEqEddy::ce_(const volSymmTensorField& D) const -{ - volScalarField KK = 0.5*(filter_(magSqr(U())) - magSqr(filter_(U()))); - - volScalarField mm = - pow(KK + filter_(k_), 1.5)/(2*delta()) - filter_(pow(k_, 1.5))/delta(); - - volScalarField ee = - 2*delta()*ck_(D)* - ( - filter_(sqrt(k_)*magSqr(D)) - - 2*sqrt(KK + filter_(k_))*magSqr(filter_(D)) - ); - - return average(ee*mm)/average(mm*mm); -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// from components -dynOneEqEddy::dynOneEqEddy -( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - const basicThermo& thermoPhysicalModel -) -: - LESModel(typeName, rho, U, phi, thermoPhysicalModel), - GenEddyVisc(rho, U, phi, thermoPhysicalModel), - - filterPtr_(LESfilter::New(U.mesh(), coeffDict())), - filter_(filterPtr_()) -{ - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -dynOneEqEddy::~dynOneEqEddy() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void dynOneEqEddy::correct(const tmp<volTensorField>& tgradU) -{ - const volTensorField& gradU = tgradU(); - - GenEddyVisc::correct(gradU); - - volSymmTensorField D = dev(symm(gradU)); - volScalarField divU = fvc::div(phi()/fvc::interpolate(rho())); - volScalarField G = 2*muSgs_*(gradU && D); - - solve - ( - fvm::ddt(rho(), k_) - + fvm::div(phi(), k_) - - fvm::laplacian(DkEff(), k_) - == - G - - fvm::SuSp(2.0/3.0*rho()*divU, k_) - - fvm::Sp(ce_(D)*rho()*sqrt(k_)/delta(), k_) - ); - - bound(k_, dimensionedScalar("0", k_.dimensions(), 1.0e-10)); - - muSgs_ = ck_(D)*rho()*sqrt(k_)*delta(); - muSgs_.correctBoundaryConditions(); -} - - -bool dynOneEqEddy::read() -{ - if (GenEddyVisc::read()) - { - filter_.read(coeffDict()); - - return true; - } - else - { - return false; - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace compressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/compressible/dynOneEqEddy/dynOneEqEddy.H b/src/turbulenceModels/LES/compressible/dynOneEqEddy/dynOneEqEddy.H deleted file mode 100644 index 3ffeb9c5dba..00000000000 --- a/src/turbulenceModels/LES/compressible/dynOneEqEddy/dynOneEqEddy.H +++ /dev/null @@ -1,146 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::compressible::LESModels::dynOneEqEddy - -Description - One Equation Eddy Viscosity Model for compressible flows. - - Eddy viscosity SGS model using a modeled balance equation to simulate - the behaviour of k. - Thus - @verbatim - d/dt(k) + div(U*k) - div(nuSgs*grad(k)) - = - -rho*B*L - ce*rho*k^3/2/delta - - and - - B = 2/3*k*I - 2*nuSgs*dev(D) - - where - - D = symm(grad(U)); - nuSgs = ck*sqrt(k)*delta - @endverbatim - -SourceFiles - dynOneEqEddy.C - -\*---------------------------------------------------------------------------*/ - -#ifndef compressibleDynOneEqEddy_H -#define compressibleDynOneEqEddy_H - -#include "GenEddyVisc.H" -#include "LESfilter.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace LESModels -{ - -/*---------------------------------------------------------------------------*\ - Class dynOneEqEddy Declaration -\*---------------------------------------------------------------------------*/ - -class dynOneEqEddy -: - public GenEddyVisc -{ - // Private data - - autoPtr<LESfilter> filterPtr_; - LESfilter& filter_; - - - // Private Member Functions - - //- Calculate ck, ce by filtering the velocity field U. - dimensionedScalar ck_(const volSymmTensorField& D) const; - dimensionedScalar ce_(const volSymmTensorField& D) const; - - // Disallow default bitwise copy construct and assignment - dynOneEqEddy(const dynOneEqEddy&); - dynOneEqEddy& operator=(const dynOneEqEddy&); - - -public: - - //- Runtime type information - TypeName("dynOneEqEddy"); - - - // Constructors - - //- Constructor from components - dynOneEqEddy - ( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - const basicThermo& thermoPhysicalModel - ); - - - // Destructor - - ~dynOneEqEddy(); - - - // Member Functions - - //- Return the effective diffusivity for k - tmp<volScalarField> DkEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DkEff", muSgs_ + mu()) - ); - } - - //- Correct Eddy-Viscosity and related properties - void correct(const tmp<volTensorField>& gradU); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace compressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/compressible/lowReOneEqEddy/lowReOneEqEddy.C b/src/turbulenceModels/LES/compressible/lowReOneEqEddy/lowReOneEqEddy.C deleted file mode 100644 index a626068335c..00000000000 --- a/src/turbulenceModels/LES/compressible/lowReOneEqEddy/lowReOneEqEddy.C +++ /dev/null @@ -1,137 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "lowReOneEqEddy.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace LESModels -{ - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -defineTypeNameAndDebug(lowReOneEqEddy, 0); -addToRunTimeSelectionTable(LESModel, lowReOneEqEddy, dictionary); - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// from components -lowReOneEqEddy::lowReOneEqEddy -( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - const basicThermo& thermoPhysicalModel -) -: - LESModel(typeName, rho, U, phi, thermoPhysicalModel), - GenEddyVisc(rho, U, phi, thermoPhysicalModel), - - ck_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "ck", - coeffDict(), - 0.07 - ) - ), - beta_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "beta", - coeffDict(), - 0.01 - ) - ) -{ - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void lowReOneEqEddy::correct(const tmp<volTensorField>& tgradU) -{ - const volTensorField& gradU = tgradU(); - - GenEddyVisc::correct(gradU); - - volScalarField divU = fvc::div(phi()/fvc::interpolate(rho())); - volScalarField G = 2*muSgs_*(gradU && dev(symm(gradU))); - - solve - ( - fvm::ddt(rho(), k_) - + fvm::div(phi(), k_) - - fvm::laplacian(DkEff(), k_) - == - G - - fvm::SuSp(2.0/3.0*rho()*divU, k_) - - fvm::Sp(ce_*rho()*sqrt(k_)/delta(), k_) - ); - - bound(k_, k0()); - - // High Re eddy viscosity - muSgs_ = ck_*rho()*sqrt(k_)*delta(); - - // low Re no corrected eddy viscosity - muSgs_ -= (mu()/beta_)*(scalar(1) - exp(-beta_*muSgs_/mu())); - - muSgs_.correctBoundaryConditions(); -} - - -bool lowReOneEqEddy::read() -{ - if (GenEddyVisc::read()) - { - ck_.readIfPresent(coeffDict()); - beta_.readIfPresent(coeffDict()); - - return true; - } - else - { - return false; - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace compressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/compressible/lowReOneEqEddy/lowReOneEqEddy.H b/src/turbulenceModels/LES/compressible/lowReOneEqEddy/lowReOneEqEddy.H deleted file mode 100644 index 44d74f8ea9e..00000000000 --- a/src/turbulenceModels/LES/compressible/lowReOneEqEddy/lowReOneEqEddy.H +++ /dev/null @@ -1,138 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::compressible::LESModels::lowReOneEqEddy - -Description - One Equation Eddy Viscosity Model for compressible flow - - @verbatim - d/dt(rho*k) + div(rho*U*k) - div(muEff*grad(k)) - = - -rho*B*L - ce*rho*k^3/2/delta - - and - - B = 2/3*k*I - 2*nuSgs*dev(D) - - where - - nuSgsHiRe = ck*sqrt(k)*delta - nuSgs = (nu/beta)*(1 - exp(-beta*nuSgsHiRe/nu)); - @endverbatim - -SourceFiles - lowReOneEqEddy.C - -\*---------------------------------------------------------------------------*/ - -#ifndef compressibleLowReOneEqEddy_H -#define compressibleLowReOneEqEddy_H - -#include "GenEddyVisc.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace LESModels -{ - -/*---------------------------------------------------------------------------*\ - Class lowReOneEqEddy Declaration -\*---------------------------------------------------------------------------*/ - -class lowReOneEqEddy -: - public GenEddyVisc -{ - // Private data - - dimensionedScalar ck_; - dimensionedScalar beta_; - - // Private Member Functions - - // Disallow default bitwise copy construct and assignment - lowReOneEqEddy(const lowReOneEqEddy&); - lowReOneEqEddy& operator=(const lowReOneEqEddy&); - - -public: - - //- Runtime type information - TypeName("lowReOneEqEddy"); - - - // Constructors - - //- Constructor from components - lowReOneEqEddy - ( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - const basicThermo& thermoPhysicalModel - ); - - - // Destructor - - ~lowReOneEqEddy() - {} - - - // Member Functions - - //- Return the effective diffusivity for k - tmp<volScalarField> DkEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DkEff", muSgs_ + mu()) - ); - } - - //- Correct Eddy-Viscosity and related properties - void correct(const tmp<volTensorField>& gradU); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace compressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/compressible/oneEqEddy/oneEqEddy.C b/src/turbulenceModels/LES/compressible/oneEqEddy/oneEqEddy.C deleted file mode 100644 index bf4103e430e..00000000000 --- a/src/turbulenceModels/LES/compressible/oneEqEddy/oneEqEddy.C +++ /dev/null @@ -1,124 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "oneEqEddy.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace LESModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(oneEqEddy, 0); -addToRunTimeSelectionTable(LESModel, oneEqEddy, dictionary); - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -oneEqEddy::oneEqEddy -( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - const basicThermo& thermoPhysicalModel -) -: - LESModel(typeName, rho, U, phi, thermoPhysicalModel), - GenEddyVisc(rho, U, phi, thermoPhysicalModel), - - ck_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "ck", - coeffDict(), - 0.094 - ) - ) -{ - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void oneEqEddy::correct(const tmp<volTensorField>& tgradU) -{ - const volTensorField& gradU = tgradU(); - - GenEddyVisc::correct(gradU); - - volScalarField divU = fvc::div(phi()/fvc::interpolate(rho())); - volScalarField G = 2*muSgs_*(gradU && dev(symm(gradU))); - - fvScalarMatrix kEqn - ( - fvm::ddt(rho(), k_) - + fvm::div(phi(), k_) - - fvm::laplacian(DkEff(), k_) - == - G - - fvm::SuSp(2.0/3.0*rho()*divU, k_) - - fvm::Sp(ce_*rho()*sqrt(k_)/delta(), k_) - ); - - kEqn.relax(); - kEqn.solve(); - - bound(k_, k0()); - - muSgs_ = ck_*rho()*sqrt(k_)*delta(); - muSgs_.correctBoundaryConditions(); -} - - -bool oneEqEddy::read() -{ - if (GenEddyVisc::read()) - { - ck_.readIfPresent(coeffDict()); - - return true; - } - else - { - return false; - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace compressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/compressible/oneEqEddy/oneEqEddy.H b/src/turbulenceModels/LES/compressible/oneEqEddy/oneEqEddy.H deleted file mode 100644 index edd2c04d371..00000000000 --- a/src/turbulenceModels/LES/compressible/oneEqEddy/oneEqEddy.H +++ /dev/null @@ -1,141 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::compressible::LESModels::oneEqEddy - -Description - One Equation Eddy Viscosity Model for incompressible flows - - Eddy viscosity SGS model using a modeled balance equation to simulate the - behaviour of k, hence, - @verbatim - d/dt(rho*k) + div(rho*U*k) - div(muEff*grad(k)) - = - -rho*D:B - ce*rho*k^3/2/delta - - and - - B = 2/3*k*I - 2*nuSgs*dev(D) - - where - - D = symm(grad(U)); - muSgs = ck*rho*sqrt(k)*delta - @endverbatim - - -SourceFiles - oneEqEddy.C - -\*---------------------------------------------------------------------------*/ - -#ifndef compressibleOneEqEddy_H -#define compressibleOneEqEddy_H - -#include "GenEddyVisc.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace LESModels -{ - -/*---------------------------------------------------------------------------*\ - Class oneEqEddy Declaration -\*---------------------------------------------------------------------------*/ - -class oneEqEddy -: - public GenEddyVisc -{ - // Private data - - dimensionedScalar ck_; - - - // Private Member Functions - - // Disallow default bitwise copy construct and assignment - oneEqEddy(const oneEqEddy&); - oneEqEddy& operator=(const oneEqEddy&); - - -public: - - //- Runtime type information - TypeName("oneEqEddy"); - - - // Constructors - - //- Constructor from components - oneEqEddy - ( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - const basicThermo& thermoPhysicalModel - ); - - - // Destructor - - ~oneEqEddy() - {} - - - // Member Functions - - //- Return the effective diffusivity for k - tmp<volScalarField> DkEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DkEff", muSgs_ + mu()) - ); - } - - //- Correct Eddy-Viscosity and related properties - void correct(const tmp<volTensorField>& gradU); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace compressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/DeardorffDiffStress/DeardorffDiffStress.C b/src/turbulenceModels/LES/incompressible/DeardorffDiffStress/DeardorffDiffStress.C deleted file mode 100644 index dabd5838f1c..00000000000 --- a/src/turbulenceModels/LES/incompressible/DeardorffDiffStress/DeardorffDiffStress.C +++ /dev/null @@ -1,150 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "DeardorffDiffStress.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(DeardorffDiffStress, 0); -addToRunTimeSelectionTable(LESModel, DeardorffDiffStress, dictionary); - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// from components -DeardorffDiffStress::DeardorffDiffStress -( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport -) -: - LESModel(typeName, U, phi, transport), - GenSGSStress(U, phi, transport), - - ck_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "ck", - coeffDict(), - 0.094 - ) - ), - cm_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "cm", - coeffDict(), - 4.13 - ) - ) -{ - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void DeardorffDiffStress::correct(const tmp<volTensorField>& tgradU) -{ - const volTensorField& gradU = tgradU(); - - GenSGSStress::correct(gradU); - - volSymmTensorField D = symm(gradU); - - volSymmTensorField P = -twoSymm(B_ & gradU); - - volScalarField K = 0.5*tr(B_); - volScalarField Epsilon = 2*nuEff()*magSqr(D); - - solve - ( - fvm::ddt(B_) - + fvm::div(phi(), B_) - - fvm::laplacian(DBEff(), B_) - + fvm::Sp(cm_*sqrt(K)/delta(), B_) - == - P - + 0.8*K*D - - (2*ce_ - 0.667*cm_)*I*Epsilon - ); - - - // Bounding the component kinetic energies - - forAll(B_, celli) - { - B_[celli].component(symmTensor::XX) = - max(B_[celli].component(symmTensor::XX), k0().value()); - B_[celli].component(symmTensor::YY) = - max(B_[celli].component(symmTensor::YY), k0().value()); - B_[celli].component(symmTensor::ZZ) = - max(B_[celli].component(symmTensor::ZZ), k0().value()); - } - - K = 0.5*tr(B_); - bound(K, k0()); - - nuSgs_ = ck_*sqrt(K)*delta(); - nuSgs_.correctBoundaryConditions(); -} - - -bool DeardorffDiffStress::read() -{ - if (GenSGSStress::read()) - { - ck_.readIfPresent(coeffDict()); - cm_.readIfPresent(coeffDict()); - - return true; - } - else - { - return false; - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/DeardorffDiffStress/DeardorffDiffStress.H b/src/turbulenceModels/LES/incompressible/DeardorffDiffStress/DeardorffDiffStress.H deleted file mode 100644 index 57576bf5e57..00000000000 --- a/src/turbulenceModels/LES/incompressible/DeardorffDiffStress/DeardorffDiffStress.H +++ /dev/null @@ -1,140 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::LESModels::DeardorffDiffStress - -Description - Differential SGS Stress Equation Model for incompressible flows - - The DSEM uses a model version of the full balance equation for the SGS - stress tensor to simulate the behaviour of B. - Thus, - @verbatim - d/dt(B) + div(U*B) - div(nuSgs*grad(B)) - = - P - c1*epsilon/k*B - 0.667*(1 - c1)*epsilon*I - c2*(P - 0.333*trP*I) - - where - - k = 0.5*tr(B), - epsilon = ce*k^3/2/delta, - epsilon/k = ce*k^1/2/delta - P = -(B'L + L'B) - nuSgs = ck*sqrt(k)*delta - nuEff = nuSgs + nu - @endverbatim - -SourceFiles - DeardorffDiffStress.C - -\*---------------------------------------------------------------------------*/ - -#ifndef DeardorffDiffStress_H -#define DeardorffDiffStress_H - -#include "GenSGSStress.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -/*---------------------------------------------------------------------------*\ - Class DeardorffDiffStress Declaration -\*---------------------------------------------------------------------------*/ - -class DeardorffDiffStress -: - public GenSGSStress -{ - // Private data - - dimensionedScalar ck_; - dimensionedScalar cm_; - - - // Private Member Functions - - // Disallow default bitwise copy construct and assignment - DeardorffDiffStress(const DeardorffDiffStress&); - DeardorffDiffStress& operator=(const DeardorffDiffStress&); - - -public: - - //- Runtime type information - TypeName("DeardorffDiffStress"); - - // Constructors - - //- Constructor from components - DeardorffDiffStress - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ); - - - // Destructor - - ~DeardorffDiffStress() - {} - - - // Member Functions - - //- Return the effective diffusivity for B - tmp<volScalarField> DBEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DBEff", nuSgs_ + nu()) - ); - } - - //- Correct Eddy-Viscosity and related properties - void correct(const tmp<volTensorField>& gradU); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/GenEddyVisc/GenEddyVisc.C b/src/turbulenceModels/LES/incompressible/GenEddyVisc/GenEddyVisc.C deleted file mode 100644 index 7cf9d6a2f37..00000000000 --- a/src/turbulenceModels/LES/incompressible/GenEddyVisc/GenEddyVisc.C +++ /dev/null @@ -1,126 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "GenEddyVisc.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -GenEddyVisc::GenEddyVisc -( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport -) -: - LESModel(word("GenEddyVisc"), U, phi, transport), - - ce_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "ce", - coeffDict(), - 1.048 - ) - ), - - nuSgs_ - ( - IOobject - ( - "nuSgs", - runTime_.timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh_ - ) -{ -// printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -tmp<volSymmTensorField> GenEddyVisc::B() const -{ - return ((2.0/3.0)*I)*k() - nuSgs_*twoSymm(fvc::grad(U())); -} - - -tmp<volSymmTensorField> GenEddyVisc::devBeff() const -{ - return -nuEff()*dev(twoSymm(fvc::grad(U()))); -} - - -tmp<fvVectorMatrix> GenEddyVisc::divDevBeff(volVectorField& U) const -{ - return - ( - - fvm::laplacian(nuEff(), U) - fvc::div(nuEff()*dev(fvc::grad(U)().T())) - ); -} - - -void GenEddyVisc::correct(const tmp<volTensorField>& gradU) -{ - LESModel::correct(gradU); -} - - -bool GenEddyVisc::read() -{ - if (LESModel::read()) - { - ce_.readIfPresent(coeffDict()); - - return true; - } - else - { - return false; - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/GenEddyVisc/GenEddyVisc.H b/src/turbulenceModels/LES/incompressible/GenEddyVisc/GenEddyVisc.H deleted file mode 100644 index 388606f284a..00000000000 --- a/src/turbulenceModels/LES/incompressible/GenEddyVisc/GenEddyVisc.H +++ /dev/null @@ -1,141 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::LESModels::GenEddyVisc - -Description - General base class for all incompressible models that can be implemented - as an eddy viscosity, i.e. algebraic and one-equation models. - - Contains fields for k (SGS turbulent kinetic energy), gamma - (modelled viscosity) and epsilon (SGS dissipation). - -SourceFiles - GenEddyVisc.C - -\*---------------------------------------------------------------------------*/ - -#ifndef GenEddyVisc_H -#define GenEddyVisc_H - -#include "LESModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -/*---------------------------------------------------------------------------*\ - Class GenEddyVisc Declaration -\*---------------------------------------------------------------------------*/ - -class GenEddyVisc -: - virtual public LESModel -{ - // Private Member Functions - - // Disallow default bitwise copy construct and assignment - GenEddyVisc(const GenEddyVisc&); - GenEddyVisc& operator=(const GenEddyVisc&); - - -protected: - - dimensionedScalar ce_; - - volScalarField nuSgs_; - - -public: - - // Constructors - - //- Construct from components - GenEddyVisc - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ); - - - // Destructor - - virtual ~GenEddyVisc() - {} - - - // Member Functions - - //- Return SGS kinetic energy - virtual tmp<volScalarField> k() const = 0; - - //- Return sub-grid disipation rate - virtual tmp<volScalarField> epsilon() const - { - return ce_*k()*sqrt(k())/delta(); - } - - //- Return the SGS viscosity. - virtual tmp<volScalarField> nuSgs() const - { - return nuSgs_; - } - - //- Return the sub-grid stress tensor. - virtual tmp<volSymmTensorField> B() const; - - //- Return the effective sub-grid turbulence stress tensor - // including the laminar stress - virtual tmp<volSymmTensorField> devBeff() const; - - //- Return the deviatoric part of the effective sub-grid - // turbulence stress tensor including the laminar stress - virtual tmp<fvVectorMatrix> divDevBeff(volVectorField& U) const; - - //- Correct Eddy-Viscosity and related properties - virtual void correct(const tmp<volTensorField>& gradU); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/GenSGSStress/GenSGSStress.C b/src/turbulenceModels/LES/incompressible/GenSGSStress/GenSGSStress.C deleted file mode 100644 index 469bb17b43e..00000000000 --- a/src/turbulenceModels/LES/incompressible/GenSGSStress/GenSGSStress.C +++ /dev/null @@ -1,192 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "GenSGSStress.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -GenSGSStress::GenSGSStress -( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport -) -: - LESModel(word("GenSGSStress"), U, phi, transport), - - ce_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "ce", - coeffDict(), - 1.048 - ) - ), - - couplingFactor_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "couplingFactor", - coeffDict(), - 0.0 - ) - ), - - B_ - ( - IOobject - ( - "B", - runTime_.timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh_ - ), - - nuSgs_ - ( - IOobject - ( - "nuSgs", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - nu(), - B_.boundaryField().types() - ) -{ - if (couplingFactor_.value() < 0.0 || couplingFactor_.value() > 1.0) - { - FatalErrorIn - ( - "GenSGSStress::GenSGSStress" - "(const volVectorField& U, const surfaceScalarField& phi," - "transportModel& lamTransportModel)" - ) << "couplingFactor = " << couplingFactor_ - << " is not in range 0 - 1" << nl - << exit(FatalError); - } -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -tmp<volSymmTensorField> GenSGSStress::devBeff() const -{ - return tmp<volSymmTensorField> - ( - new volSymmTensorField - ( - IOobject - ( - "devRhoReff", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - B_ - nu()*dev(twoSymm(fvc::grad(U()))) - ) - ); -} - - -tmp<fvVectorMatrix> GenSGSStress::divDevBeff -( - volVectorField& U -) const -{ - if (couplingFactor_.value() > 0.0) - { - return - ( - fvc::div(B_ + couplingFactor_*nuSgs_*fvc::grad(U)) - + fvc::laplacian - ( - (1.0 - couplingFactor_)*nuSgs_, U, "laplacian(nuEff,U)" - ) - - fvm::laplacian(nuEff(), U) - ); - } - else - { - return - ( - fvc::div(B_) - + fvc::laplacian(nuSgs_, U, "laplacian(nuEff,U)") - - fvm::laplacian(nuEff(), U) - ); - } -} - - -bool GenSGSStress::read() -{ - if (LESModel::read()) - { - ce_.readIfPresent(coeffDict()); - - couplingFactor_.readIfPresent(coeffDict()); - - if (couplingFactor_.value() < 0.0 || couplingFactor_.value() > 1.0) - { - FatalErrorIn("GenSGSStress::read()") - << "couplingFactor = " << couplingFactor_ - << " is not in range 0 - 1" - << exit(FatalError); - } - - return true; - } - else - { - return false; - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/GenSGSStress/GenSGSStress.H b/src/turbulenceModels/LES/incompressible/GenSGSStress/GenSGSStress.H deleted file mode 100644 index eb6cc7e9065..00000000000 --- a/src/turbulenceModels/LES/incompressible/GenSGSStress/GenSGSStress.H +++ /dev/null @@ -1,149 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::LESModels::GenSGSStress - -Description - General base class for all incompressible models that directly - solve for the SGS stress tensor B. - - Contains tensor fields B (the SGS stress tensor) as well as scalar - fields for k (SGS turbulent energy) gamma (SGS viscosity) and epsilon - (SGS dissipation). - -SourceFiles - GenSGSStress.C - -\*---------------------------------------------------------------------------*/ - -#ifndef GenSGSStress_H -#define GenSGSStress_H - -#include "LESModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -/*---------------------------------------------------------------------------*\ - Class GenSGSStress Declaration -\*---------------------------------------------------------------------------*/ - -class GenSGSStress -: - virtual public LESModel -{ - // Private Member Functions - - // Disallow default bitwise copy construct and assignment - GenSGSStress(const GenSGSStress&); - GenSGSStress& operator=(const GenSGSStress&); - - -protected: - - dimensionedScalar ce_; - - dimensionedScalar couplingFactor_; - - volSymmTensorField B_; - volScalarField nuSgs_; - - -public: - - // Constructors - - //- Constructor from components - GenSGSStress - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ); - - - // Destructor - - virtual ~GenSGSStress() - {} - - - // Member Functions - - //- Return the SGS turbulent kinetic energy. - virtual tmp<volScalarField> k() const - { - return 0.5*tr(B_); - } - - //- Return the SGS turbulent dissipation. - virtual tmp<volScalarField> epsilon() const - { - volScalarField K = k(); - return ce_*K*sqrt(K)/delta(); - } - - //- Return the SGS viscosity. - virtual tmp<volScalarField> nuSgs() const - { - return nuSgs_; - } - - //- Return the sub-grid stress tensor. - virtual tmp<volSymmTensorField> B() const - { - return B_; - } - - //- Return the effective sub-grid turbulence stress tensor - // including the laminar stress - virtual tmp<volSymmTensorField> devBeff() const; - - //- Returns div(B). - // This is the additional term due to the filtering of the NSE. - virtual tmp<fvVectorMatrix> divDevBeff(volVectorField& U) const; - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/LESModel/LESModel.C b/src/turbulenceModels/LES/incompressible/LESModel/LESModel.C deleted file mode 100644 index 4eefbe2d608..00000000000 --- a/src/turbulenceModels/LES/incompressible/LESModel/LESModel.C +++ /dev/null @@ -1,133 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "LESModel.H" -#include "wallDist.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(LESModel, 0); -defineRunTimeSelectionTable(LESModel, dictionary); - -// * * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * // - -void LESModel::printCoeffs() -{ - if (printCoeffs_) - { - Info<< type() << "Coeffs" << coeffDict_ << endl; - } -} - - -// * * * * * * * * * * * * * * * Constructor * * * * * * * * * * * * * * * * // - -LESModel::LESModel -( - const word& type, - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport -) -: - IOdictionary - ( - IOobject - ( - "LESProperties", - U.time().constant(), - U.db(), - IOobject::MUST_READ, - IOobject::NO_WRITE - ) - ), - - runTime_(U.time()), - mesh_(U.mesh()), - - U_(U), - phi_(phi), - transport_(transport), - - printCoeffs_(lookupOrDefault<Switch>("printCoeffs", false)), - - coeffDict_(subDict(type + "Coeffs")), - - k0_("k0", dimVelocity*dimVelocity, SMALL), - - delta_(LESdelta::New("delta", U.mesh(), *this)) -{ - readIfPresent("k0", k0_); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void LESModel::correct(const tmp<volTensorField>&) -{ - delta_().correct(); - transport_.correct(); -} - - -void LESModel::correct() -{ - correct(fvc::grad(U_)); -} - - -bool LESModel::read() -{ - if (regIOobject::read()) - { - coeffDict_ = subDict(type() + "Coeffs"); - - delta_().read(*this); - - readIfPresent("k0", k0_); - - return true; - } - else - { - return false; - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/LESModel/LESModel.H b/src/turbulenceModels/LES/incompressible/LESModel/LESModel.H deleted file mode 100644 index e1374ed2864..00000000000 --- a/src/turbulenceModels/LES/incompressible/LESModel/LESModel.H +++ /dev/null @@ -1,275 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Namespace - Foam::incompressible::LESModels - -Description - Namespace for incompressible LES models. - - -Class - Foam::incompressible::LESModel - -Description - Base class for all incompressible flow LES SGS models. - - This class defines the basic interface for an incompressible flow SGS - model, and encapsulates data of value to all possible models. In - particular this includes references to all the dependent fields (U, - phi), the physical viscosity nu, and the turbulenceProperties - dictionary which contains the model selection and model coefficients. - -SourceFiles - LESModel.C - newIsoLESModel.C - -\*---------------------------------------------------------------------------*/ - -#ifndef LESModel_H -#define LESModel_H - -#include "LESdelta.H" -#include "fvm.H" -#include "fvc.H" -#include "fvMatrices.H" -#include "incompressible/transportModel/transportModel.H" -#include "wallFvPatch.H" -#include "bound.H" -#include "autoPtr.H" -#include "runTimeSelectionTables.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ - -/*---------------------------------------------------------------------------*\ - Class LESModel Declaration -\*---------------------------------------------------------------------------*/ - -class LESModel -: - public IOdictionary -{ - -protected: - - // Protected data - - const Time& runTime_; - const fvMesh& mesh_; - - -private: - - // Private data - - const volVectorField& U_; - const surfaceScalarField& phi_; - - transportModel& transport_; - - Switch printCoeffs_; - dictionary coeffDict_; - - dimensionedScalar k0_; - - autoPtr<LESdelta> delta_; - - - // Private Member Functions - - // Disallow default bitwise copy construct and assignment - LESModel(const LESModel&); - LESModel& operator=(const LESModel&); - - -protected: - - // Protected member functions - - //- Print model coefficients - virtual void printCoeffs(); - - -public: - - //- Runtime type information - TypeName("LESModel"); - - - // Declare run-time constructor selection table - - declareRunTimeSelectionTable - ( - autoPtr, - LESModel, - dictionary, - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ), - (U, phi, transport) - ); - - - // Constructors - - //- Construct from components - LESModel - ( - const word& type, - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ); - - - // Selectors - - //- Return a reference to the selected LES model - static autoPtr<LESModel> New - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ); - - - // Destructor - - virtual ~LESModel() - {} - - - // Member Functions - - // Access - - //- Access function to velocity field - inline const volVectorField& U() const - { - return U_; - } - - //- Access function to flux field - inline const surfaceScalarField& phi() const - { - return phi_; - } - - //- Access function to incompressible transport model - inline transportModel& transport() const - { - return transport_; - } - - //- Access the dictionary which provides info. about choice of - // models, and all related data (particularly model coefficients). - inline dictionary& coeffDict() - { - return coeffDict_; - } - - //- Access function to filter width - inline const volScalarField& delta() const - { - return delta_(); - } - - //- Access function to incompressible viscosity - inline const volScalarField& nu() const - { - return transport_.nu(); - } - - //- Return the value of k0 which k is not allowed to be less than - const dimensionedScalar& k0() const - { - return k0_; - } - - //- Allow k0 to be changed - dimensionedScalar& k0() - { - return k0_; - } - - - //- Return the SGS turbulent kinetic energy. - virtual tmp<volScalarField> k() const = 0; - - //- Return the SGS turbulent dissipation. - virtual tmp<volScalarField> epsilon() const = 0; - - //- Return the SGS viscosity. - virtual tmp<volScalarField> nuSgs() const = 0; - - //- Return the effective viscosity - virtual tmp<volScalarField> nuEff() const - { - return tmp<volScalarField> - ( - new volScalarField("nuEff", nuSgs() + nu()) - ); - } - - //- Return the sub-grid stress tensor. - virtual tmp<volSymmTensorField> B() const = 0; - - //- Return the deviatoric part of the effective sub-grid - // turbulence stress tensor including the laminar stress - virtual tmp<volSymmTensorField> devBeff() const = 0; - - //- Returns div(dev(Beff)). - // This is the additional term due to the filtering of the NSE. - virtual tmp<fvVectorMatrix> divDevBeff(volVectorField& U) const = 0; - - //- Correct Eddy-Viscosity and related properties - virtual void correct(const tmp<volTensorField>& gradU); - - //- Correct Eddy-Viscosity and related properties. - // This calls correct(const tmp<volTensorField>& gradU) by supplying - // gradU calculated locally. - void correct(); - - //- Read turbulenceProperties dictionary - virtual bool read() = 0; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/LESModel/newLESModel.C b/src/turbulenceModels/LES/incompressible/LESModel/newLESModel.C deleted file mode 100644 index 5cda1e5f562..00000000000 --- a/src/turbulenceModels/LES/incompressible/LESModel/newLESModel.C +++ /dev/null @@ -1,93 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "LESModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -autoPtr<LESModel> LESModel::New -( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport -) -{ - word LESModelTypeName; - - // Enclose the creation of the turbulencePropertiesDict to ensure it is - // deleted before the turbulenceModel is created otherwise the dictionary - // is entered in the database twice - { - IOdictionary turbulencePropertiesDict - ( - IOobject - ( - "LESProperties", - U.time().constant(), - U.db(), - IOobject::MUST_READ, - IOobject::NO_WRITE - ) - ); - - turbulencePropertiesDict.lookup("LESModel") >> LESModelTypeName; - } - - Info<< "Selecting LES turbulence model " << LESModelTypeName << endl; - - dictionaryConstructorTable::iterator cstrIter = - dictionaryConstructorTablePtr_->find(LESModelTypeName); - - if (cstrIter == dictionaryConstructorTablePtr_->end()) - { - FatalErrorIn - ( - "LESModel::select(const volVectorField&, const " - "surfaceScalarField&, transportModel&)" - ) << "Unknown LESModel type " << LESModelTypeName - << endl << endl - << "Valid LESModel types are :" << endl - << dictionaryConstructorTablePtr_->toc() - << exit(FatalError); - } - - return autoPtr<LESModel>(cstrIter()(U, phi, transport)); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/LRRDiffStress/LRRDiffStress.C b/src/turbulenceModels/LES/incompressible/LRRDiffStress/LRRDiffStress.C deleted file mode 100644 index af3fb1628e7..00000000000 --- a/src/turbulenceModels/LES/incompressible/LRRDiffStress/LRRDiffStress.C +++ /dev/null @@ -1,161 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "LRRDiffStress.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(LRRDiffStress, 0); -addToRunTimeSelectionTable(LESModel, LRRDiffStress, dictionary); - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// from components -LRRDiffStress::LRRDiffStress -( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport -) -: - LESModel(typeName, U, phi, transport), - GenSGSStress(U, phi, transport), - - ck_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "ck", - coeffDict(), - 0.09 - ) - ), - c1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "c1", - coeffDict(), - 1.8 - ) - ), - c2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "c2", - coeffDict(), - 0.6 - ) - ) -{ - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void LRRDiffStress::correct(const tmp<volTensorField>& tgradU) -{ - const volTensorField& gradU = tgradU(); - - GenSGSStress::correct(gradU); - - volSymmTensorField D = symm(gradU); - - volSymmTensorField P = -twoSymm(B_ & gradU); - - volScalarField K = 0.5*tr(B_); - volScalarField Epsilon = 2*nuEff()*magSqr(D); - - solve - ( - fvm::ddt(B_) - + fvm::div(phi(), B_) - - fvm::laplacian(DBEff(), B_) - + fvm::Sp(c1_*Epsilon/K, B_) - == - P - - (0.667*(1.0 - c1_)*I)*Epsilon - - c2_*(P - 0.333*I*tr(P)) - - (0.667 - 2*c1_)*I*pow(K, 1.5)/delta() - ); - - - // Bounding the component kinetic energies - - forAll(B_, celli) - { - B_[celli].component(symmTensor::XX) = - max(B_[celli].component(symmTensor::XX), k0().value()); - B_[celli].component(symmTensor::YY) = - max(B_[celli].component(symmTensor::YY), k0().value()); - B_[celli].component(symmTensor::ZZ) = - max(B_[celli].component(symmTensor::ZZ), k0().value()); - } - - K = 0.5*tr(B_); - bound(K, k0()); - - nuSgs_ = ck_*sqrt(K)*delta(); - nuSgs_.correctBoundaryConditions(); -} - - -bool LRRDiffStress::read() -{ - if (GenSGSStress::read()) - { - ck_.readIfPresent(coeffDict()); - c1_.readIfPresent(coeffDict()); - c2_.readIfPresent(coeffDict()); - - return true; - } - else - { - return false; - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/LRRDiffStress/LRRDiffStress.H b/src/turbulenceModels/LES/incompressible/LRRDiffStress/LRRDiffStress.H deleted file mode 100644 index f58b6e224be..00000000000 --- a/src/turbulenceModels/LES/incompressible/LRRDiffStress/LRRDiffStress.H +++ /dev/null @@ -1,139 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::LESModels::LRRDiffStress - -Description - Differential SGS Stress Equation Model for incompressible flows. - - The DSEM uses a model version of the full balance equation for the SGS - stress tensor to simulate the behaviour of B, hence, - @verbatim - d/dt(B) + div(U*B) - div(nuSgs*grad(B)) - = - P - c1*e/k*B - 0.667*(1 - c1)*e*I - c2*(P - 0.333*trP*I) - where - k = 0.5*trB, - epsilon = ce*k^3/2/delta - epsilon/k = ce*k^1/2/delta - P = -(B'L + L'B) - nuEff = ck*sqrt(k)*delta + nu - @endverbatim - - This version from Launder, Rece & Rodi 1975 - -SourceFiles - LRRDiffStress.C - -\*---------------------------------------------------------------------------*/ - -#ifndef LRRDiffStress_H -#define LRRDiffStress_H - -#include "GenSGSStress.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -/*---------------------------------------------------------------------------*\ - Class LRRDiffStress Declaration -\*---------------------------------------------------------------------------*/ - -class LRRDiffStress -: - public GenSGSStress -{ - // Private data - - dimensionedScalar ck_; - dimensionedScalar c1_; - dimensionedScalar c2_; - - - // Private Member Functions - - // Disallow default bitwise copy construct and assignment - LRRDiffStress(const LRRDiffStress&); - LRRDiffStress& operator=(const LRRDiffStress&); - - -public: - - //- Runtime type information - TypeName("LRRDiffStress"); - - // Constructors - - //- Constructors from components - LRRDiffStress - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ); - - - // Destructor - - ~LRRDiffStress() - {} - - - // Member Functions - - //- Return the effective diffusivity for B - tmp<volScalarField> DBEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DBEff", nuSgs_ + nu()) - ); - } - - //- Correct Eddy-Viscosity and related properties - void correct(const tmp<volTensorField>& gradU); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/Make/files b/src/turbulenceModels/LES/incompressible/Make/files deleted file mode 100644 index feda56ca15f..00000000000 --- a/src/turbulenceModels/LES/incompressible/Make/files +++ /dev/null @@ -1,39 +0,0 @@ -vanDriestDelta/vanDriestDelta.C - -LESModel/LESModel.C -LESModel/newLESModel.C - -GenEddyVisc/GenEddyVisc.C -GenSGSStress/GenSGSStress.C - -laminar/laminar.C -SpalartAllmaras/SpalartAllmaras.C -SpalartAllmarasDDES/SpalartAllmarasDDES.C -SpalartAllmarasIDDES/SpalartAllmarasIDDES.C -SpalartAllmarasIDDES/IDDESDelta/IDDESDelta.C - -oneEqEddy/oneEqEddy.C -dynOneEqEddy/dynOneEqEddy.C -locDynOneEqEddy/locDynOneEqEddy.C -Smagorinsky/Smagorinsky.C -dynSmagorinsky/dynSmagorinsky.C -LRRDiffStress/LRRDiffStress.C -DeardorffDiffStress/DeardorffDiffStress.C -spectEddyVisc/spectEddyVisc.C - -scaleSimilarity/scaleSimilarity.C -mixedSmagorinsky/mixedSmagorinsky.C -dynMixedSmagorinsky/dynMixedSmagorinsky.C - -/*Smagorinsky2/Smagorinsky2.C*/ - -kOmegaSSTSAS/kOmegaSSTSAS.C - -/* Wall functions */ -wallFunctions=derivedFvPatchFields/wallFunctions - -nuSgsWallFunctions=$(wallFunctions)/nuSgsWallFunctions -$(nuSgsWallFunctions)/nuSgsSpalartAllmarasWallFunction/nuSgsSpalartAllmarasWallFunctionFvPatchScalarField.C - - -LIB = $(FOAM_LIBBIN)/libincompressibleLESModels diff --git a/src/turbulenceModels/LES/incompressible/Make/options b/src/turbulenceModels/LES/incompressible/Make/options deleted file mode 100644 index a2991710f1c..00000000000 --- a/src/turbulenceModels/LES/incompressible/Make/options +++ /dev/null @@ -1,12 +0,0 @@ -EXE_INC = \ - -I$(LIB_SRC)/finiteVolume/lnInclude \ - -I$(LIB_SRC)/meshTools/lnInclude \ - -I../LESdeltas/lnInclude \ - -I../LESfilters/lnInclude \ - -I$(LIB_SRC)/transportModels - -LIB_LIBS = \ - -lLESdeltas \ - -lLESfilters\ - -lfiniteVolume \ - -lmeshTools diff --git a/src/turbulenceModels/LES/incompressible/Smagorinsky/Smagorinsky.C b/src/turbulenceModels/LES/incompressible/Smagorinsky/Smagorinsky.C deleted file mode 100644 index 30116770648..00000000000 --- a/src/turbulenceModels/LES/incompressible/Smagorinsky/Smagorinsky.C +++ /dev/null @@ -1,100 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "Smagorinsky.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(Smagorinsky, 0); -addToRunTimeSelectionTable(LESModel, Smagorinsky, dictionary); - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -Smagorinsky::Smagorinsky -( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport -) -: - LESModel(typeName, U, phi, transport), - GenEddyVisc(U, phi, transport), - - ck_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "ck", - coeffDict(), - 0.094 - ) - ) -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void Smagorinsky::correct(const tmp<volTensorField>& gradU) -{ - GenEddyVisc::correct(gradU); - - nuSgs_ = ck_*delta()*sqrt(k(gradU)); - nuSgs_.correctBoundaryConditions(); -} - - -bool Smagorinsky::read() -{ - if (GenEddyVisc::read()) - { - ck_.readIfPresent(coeffDict()); - - return true; - } - else - { - return false; - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/Smagorinsky/Smagorinsky.H b/src/turbulenceModels/LES/incompressible/Smagorinsky/Smagorinsky.H deleted file mode 100644 index f86578934e7..00000000000 --- a/src/turbulenceModels/LES/incompressible/Smagorinsky/Smagorinsky.H +++ /dev/null @@ -1,141 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::LESModels::Smagorinsky - -Description - The Isochoric Smagorinsky Model for incompressible flows. - - Algebraic eddy viscosity SGS model founded on the assumption that - local equilibrium prevails. - Thus, - @verbatim - B = 2/3*k*I - 2*nuSgs*dev(D) - Beff = 2/3*k*I - 2*nuEff*dev(D) - - where - - D = symm(grad(U)); - k = (2*ck/ce)*delta^2*||D||^2 - nuSgs = ck*sqrt(k)*delta - nuEff = nuSgs + nu - @endverbatim - -SourceFiles - Smagorinsky.C - -\*---------------------------------------------------------------------------*/ - -#ifndef Smagorinsky_H -#define Smagorinsky_H - -#include "GenEddyVisc.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -/*---------------------------------------------------------------------------*\ - Class Smagorinsky Declaration -\*---------------------------------------------------------------------------*/ - -class Smagorinsky -: - public GenEddyVisc -{ - // Private data - - dimensionedScalar ck_; - - - // Private Member Functions - - // Disallow default bitwise copy construct and assignment - Smagorinsky(const Smagorinsky&); - Smagorinsky& operator=(const Smagorinsky&); - - -public: - - //- Runtime type information - TypeName("Smagorinsky"); - - // Constructors - - //- Construct from components - Smagorinsky - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ); - - - // Destructor - - ~Smagorinsky() - {} - - - // Member Functions - - //- Return SGS kinetic energy - // calculated from the given velocity gradient - tmp<volScalarField> k(const tmp<volTensorField>& gradU) const - { - return (2.0*ck_/ce_)*sqr(delta())*magSqr(dev(symm(gradU))); - } - - //- Return SGS kinetic energy - tmp<volScalarField> k() const - { - return k(fvc::grad(U())); - } - - - //- Correct Eddy-Viscosity and related properties - virtual void correct(const tmp<volTensorField>& gradU); - - //- Read turbulenceProperties dictionary - virtual bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/Smagorinsky2/Smagorinsky2.C b/src/turbulenceModels/LES/incompressible/Smagorinsky2/Smagorinsky2.C deleted file mode 100644 index 351db3526e7..00000000000 --- a/src/turbulenceModels/LES/incompressible/Smagorinsky2/Smagorinsky2.C +++ /dev/null @@ -1,124 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "Smagorinsky2.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(Smagorinsky2, 0); -addToRunTimeSelectionTable(LESModel, Smagorinsky2, dictionary); - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -Smagorinsky2::Smagorinsky2 -( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport -) -: - LESModel(typeName, U, phi, transport), - Smagorinsky(U, phi, transport), - - cD2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "cD2", - coeffDict(), - 0.02 - ) - ) -{ - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -// Evaluate B (from the definition of an eddy viscosity model) and -// return it. - -tmp<volSymmTensorField> Smagorinsky2::B() const -{ - volSymmTensorField D = dev(symm(fvc::grad(U()))); - - return (((2.0/3.0)*I)*k() - 2.0*nuSgs_*D - (2.0*cD2_)*delta()*(D&D)); -} - - -tmp<fvVectorMatrix> Smagorinsky2::divDevBeff -( - volVectorField& U -) const -{ - volTensorField gradU = fvc::grad(U); - - volSymmTensorField aniNuEff - ( - "aniNuEff", - I*nuEff() + cD2_*delta()*symm(gradU) - ); - - return - ( - - fvm::laplacian(aniNuEff, U) - fvc::div(nuEff()*dev(fvc::grad(U)().T())) - ); -} - - -bool Smagorinsky2::read() -{ - if (Smagorinsky::read()) - { - cD2.readIfPresent(coeffDict()); - - return true; - } - else - { - return false; - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/Smagorinsky2/Smagorinsky2.H b/src/turbulenceModels/LES/incompressible/Smagorinsky2/Smagorinsky2.H deleted file mode 100644 index 7c780da1e1a..00000000000 --- a/src/turbulenceModels/LES/incompressible/Smagorinsky2/Smagorinsky2.H +++ /dev/null @@ -1,131 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::LESModels::Smagorinsky2 - -Description - The Isochoric Smagorinsky Model for incompressible flows - - Algebraic eddy viscosity SGS model founded on the assumption that - local equilibrium prevails, hence - @verbatim - B = 2/3*k*I - 2*nuSgs*dev(D) - 2*cD2*delta*(D.dev(D)); - Beff = 2/3*k*I - 2*nuEff*dev(D) - 2*cD2*delta*(D.dev(D)); - - where - - D = symm(grad(U)); - k = cI*delta^2*||D||^2 - nuSgs = ck*sqrt(k)*delta - nuEff = nuSgs + nu - @endverbatim - -SourceFiles - Smagorinsky2.C - -\*---------------------------------------------------------------------------*/ - -#ifndef Smagorinsky2_H -#define Smagorinsky2_H - -#include "Smagorinsky.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -/*---------------------------------------------------------------------------*\ - Class Smagorinsky2 Declaration -\*---------------------------------------------------------------------------*/ - -class Smagorinsky2 -: - public Smagorinsky -{ - // Private data - - dimensionedScalar cD2_; - - - // Private Member Functions - - // Disallow default bitwise copy construct and assignment - Smagorinsky2(const Smagorinsky2&); - Smagorinsky2& operator=(const Smagorinsky2&); - - -public: - - //- Runtime type information - TypeName("Smagorinsky2"); - - - // Constructors - - //- Construct from components - Smagorinsky2 - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ); - - - // Destructor - - ~Smagorinsky2() - {} - - - // Member Functions - - //- Return B. - tmp<volSymmTensorField> B() const; - - //- Returns div(B). - // This is the additional term due to the filtering of the NSE. - tmp<fvVectorMatrix> divDevBeff(volVectorField& U) const; - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/SpalartAllmaras/SpalartAllmaras.C b/src/turbulenceModels/LES/incompressible/SpalartAllmaras/SpalartAllmaras.C deleted file mode 100644 index 9d5ad49bdd2..00000000000 --- a/src/turbulenceModels/LES/incompressible/SpalartAllmaras/SpalartAllmaras.C +++ /dev/null @@ -1,368 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "SpalartAllmaras.H" -#include "addToRunTimeSelectionTable.H" -#include "wallDist.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(SpalartAllmaras, 0); -addToRunTimeSelectionTable(LESModel, SpalartAllmaras, dictionary); - -// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // - -tmp<volScalarField> SpalartAllmaras::fv1() const -{ - volScalarField chi3 = pow3(nuTilda_/nu()); - return chi3/(chi3 + pow3(Cv1_)); -} - - -tmp<volScalarField> SpalartAllmaras::fv2() const -{ - volScalarField chi = nuTilda_/nu(); - return 1.0/pow3(scalar(1) + chi/Cv2_); -} - - -tmp<volScalarField> SpalartAllmaras::fv3() const -{ - volScalarField chi = nuTilda_/nu(); - volScalarField chiByCv2 = (1/Cv2_)*chi; - - return - (scalar(1) + chi*fv1()) - *(1/Cv2_) - *(3*(scalar(1) + chiByCv2) + sqr(chiByCv2)) - /pow3(scalar(1) + chiByCv2); -} - - -tmp<volScalarField> SpalartAllmaras::calcS(const volTensorField& gradU) -{ - return ::sqrt(2.0)*mag(skew(gradU)); -} - - -tmp<volScalarField> SpalartAllmaras::calcSTilda(const volTensorField& gradU) -{ - return fv3()*calcS(gradU) + fv2()*nuTilda_/sqr(kappa_*dTilda_); -} - - -tmp<volScalarField> SpalartAllmaras::r -( - const volScalarField& visc, - const volScalarField& S -) const -{ - tmp<volScalarField> tr - ( - new volScalarField - ( - min - ( - visc - /( - max - ( - S, - dimensionedScalar("SMALL", S.dimensions(), SMALL) - ) - *sqr(kappa_*dTilda_) - + dimensionedScalar - ( - "ROOTVSMALL", - dimensionSet(0, 2 , -1, 0, 0), - ROOTVSMALL - ) - ), - scalar(10.0) - ) - ) - ); - - return tr; -} - - -tmp<volScalarField> SpalartAllmaras::fw(const volScalarField& S) const -{ - volScalarField r = this->r(nuTilda_, S); - - volScalarField g = r + Cw2_*(pow6(r) - r); - - return g*pow((1.0 + pow6(Cw3_))/(pow6(g) + pow6(Cw3_)), 1.0/6.0); -} - - -void SpalartAllmaras::dTildaUpdate(const volScalarField&) -{ - if (mesh_.changing()) - { - dTilda_ = min(CDES_*delta(), wallDist(mesh_).y()); - } -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -SpalartAllmaras::SpalartAllmaras -( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport, - const word& modelName -) -: - LESModel(modelName, U, phi, transport), - - alphaNut_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphaNut", - coeffDict(), - 1.5 - ) - ), - kappa_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "kappa", - *this, - 0.4187 - ) - ), - Cb1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cb1", - coeffDict(), - 0.1355 - ) - ), - Cb2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cb2", - coeffDict(), - 0.622 - ) - ), - Cv1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cv1", - coeffDict(), - 7.1 - ) - ), - Cv2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cv2", - coeffDict(), - 5.0 - ) - ), - CDES_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "CDES", - coeffDict(), - 0.65 - ) - ), - ck_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "ck", - coeffDict(), - 0.07 - ) - ), - Cw1_(Cb1_/sqr(kappa_) + alphaNut_*(1.0 + Cb2_)), - Cw2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cw2", - coeffDict(), - 0.3 - ) - ), - Cw3_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cw3", - coeffDict(), - 2.0 - ) - ), - - nuTilda_ - ( - IOobject - ( - "nuTilda", - runTime_.timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh_ - ), - - dTilda_(min(CDES_*delta(), wallDist(mesh_).y())), - - nuSgs_ - ( - IOobject - ( - "nuSgs", - runTime_.timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh_ - ) -{} - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void SpalartAllmaras::correct(const tmp<volTensorField>& gradU) -{ - LESModel::correct(gradU); - - const volScalarField STilda = calcSTilda(gradU); - - const volScalarField S = calcS(gradU); - - dTildaUpdate(S); - - solve - ( - fvm::ddt(nuTilda_) - + fvm::div(phi(), nuTilda_) - - fvm::laplacian - ( - alphaNut_*(nuTilda_ + nu()), - nuTilda_, - "laplacian(DnuTildaEff,nuTilda)" - ) - - alphaNut_*Cb2_*magSqr(fvc::grad(nuTilda_)) - == - Cb1_*STilda*nuTilda_ - - fvm::Sp(Cw1_*fw(STilda)*nuTilda_/sqr(dTilda_), nuTilda_) - ); - - bound(nuTilda_, dimensionedScalar("zero", nuTilda_.dimensions(), 0.0)); - nuTilda_.correctBoundaryConditions(); - - nuSgs_.internalField() = fv1()*nuTilda_.internalField(); - nuSgs_.correctBoundaryConditions(); -} - - -tmp<volScalarField> SpalartAllmaras::epsilon() const -{ - return 2.0*nuEff()*magSqr(symm(fvc::grad(U()))); -} - - -tmp<volSymmTensorField> SpalartAllmaras::B() const -{ - return ((2.0/3.0)*I)*k() - nuSgs()*twoSymm(fvc::grad(U())); -} - - -tmp<volSymmTensorField> SpalartAllmaras::devBeff() const -{ - return -nuEff()*dev(twoSymm(fvc::grad(U()))); -} - - -tmp<fvVectorMatrix> SpalartAllmaras::divDevBeff(volVectorField& U) const -{ - return - ( - - fvm::laplacian(nuEff(), U) - fvc::div(nuEff()*dev(fvc::grad(U)().T())) - ); -} - - -bool SpalartAllmaras::read() -{ - if (LESModel::read()) - { - alphaNut_.readIfPresent(coeffDict()); - kappa_.readIfPresent(*this); - Cb1_.readIfPresent(coeffDict()); - Cb2_.readIfPresent(coeffDict()); - Cv1_.readIfPresent(coeffDict()); - Cv2_.readIfPresent(coeffDict()); - CDES_.readIfPresent(coeffDict()); - ck_.readIfPresent(coeffDict()); - Cw1_ = Cb1_/sqr(kappa_) + alphaNut_*(1.0 + Cb2_); - Cw2_.readIfPresent(coeffDict()); - Cw3_.readIfPresent(coeffDict()); - - return true; - } - else - { - return false; - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/SpalartAllmaras/SpalartAllmaras.H b/src/turbulenceModels/LES/incompressible/SpalartAllmaras/SpalartAllmaras.H deleted file mode 100644 index 1bcecd018ff..00000000000 --- a/src/turbulenceModels/LES/incompressible/SpalartAllmaras/SpalartAllmaras.H +++ /dev/null @@ -1,190 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::LESmodels::SpalartAllmaras - -Description - SpalartAllmaras DES (SA + LES) turbulence model for incompressible flows - -SourceFiles - SpalartAllmaras.C - -\*---------------------------------------------------------------------------*/ - -#ifndef SpalartAllmaras_H -#define SpalartAllmaras_H - -#include "LESModel.H" -#include "volFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -/*---------------------------------------------------------------------------*\ - Class SpalartAllmaras Declaration -\*---------------------------------------------------------------------------*/ - -class SpalartAllmaras -: - public LESModel -{ - // Private member functions - - // Disallow default bitwise copy construct and assignment - SpalartAllmaras(const SpalartAllmaras&); - SpalartAllmaras& operator=(const SpalartAllmaras&); - - -protected: - - // Protected data - - dimensionedScalar alphaNut_; - dimensionedScalar kappa_; - - - // Model constants - - dimensionedScalar Cb1_; - dimensionedScalar Cb2_; - dimensionedScalar Cv1_; - dimensionedScalar Cv2_; - dimensionedScalar CDES_; - dimensionedScalar ck_; - dimensionedScalar Cw1_; - dimensionedScalar Cw2_; - dimensionedScalar Cw3_; - - - // Fields - - volScalarField nuTilda_; - volScalarField dTilda_; - volScalarField nuSgs_; - - - // Protected member functions - - // Helper functions - - virtual tmp<volScalarField> fv1() const; - virtual tmp<volScalarField> fv2() const; - virtual tmp<volScalarField> fv3() const; - //- - virtual tmp<volScalarField> calcS(const volTensorField& gradU); - virtual tmp<volScalarField> calcSTilda(const volTensorField& gradU); - virtual tmp<volScalarField> r - ( - const volScalarField& visc, - const volScalarField& S - ) const; - virtual tmp<volScalarField> fw(const volScalarField& S) const; - - //- Length scale calculation - virtual void dTildaUpdate(const volScalarField& S); - - -public: - - //- Runtime type information - TypeName("SpalartAllmaras"); - - - // Constructors - - //- Constructor from components - SpalartAllmaras - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport, - const word& modelName = typeName - ); - - - // Destructor - - virtual ~SpalartAllmaras() - {} - - - // Member Functions - - //- Return SGS kinetic energy - tmp<volScalarField> k() const - { - return sqr(nuSgs()/ck_/dTilda_); - } - - //- Return sub-grid disipation rate - tmp<volScalarField> epsilon() const; - - tmp<volScalarField> nuTilda() const - { - return nuTilda_; - } - - //- Return SGS viscosity - tmp<volScalarField> nuSgs() const - { - return nuSgs_; - } - - //- Return the sub-grid stress tensor. - tmp<volSymmTensorField> B() const; - - //- Return the effective sub-grid turbulence stress tensor - // including the laminar stress - tmp<volSymmTensorField> devBeff() const; - - //- Return the deviatoric part of the divergence of Beff - // i.e. the additional term in the filtered NSE. - tmp<fvVectorMatrix> divDevBeff(volVectorField& U) const; - - //- Correct nuTilda and related properties - virtual void correct(const tmp<volTensorField>& gradU); - - //- Read turbulenceProperties dictionary - virtual bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/SpalartAllmarasDDES/SpalartAllmarasDDES.C b/src/turbulenceModels/LES/incompressible/SpalartAllmarasDDES/SpalartAllmarasDDES.C deleted file mode 100644 index 6f5435a2681..00000000000 --- a/src/turbulenceModels/LES/incompressible/SpalartAllmarasDDES/SpalartAllmarasDDES.C +++ /dev/null @@ -1,120 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "SpalartAllmarasDDES.H" -#include "addToRunTimeSelectionTable.H" -#include "wallDist.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(SpalartAllmarasDDES, 0); -addToRunTimeSelectionTable(LESModel, SpalartAllmarasDDES, dictionary); - -// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // - -tmp<volScalarField> SpalartAllmarasDDES::rd -( - const volScalarField& visc, - const volScalarField& S -) const -{ - volScalarField d = wallDist(mesh_).y(); - - tmp<volScalarField> trd - ( - new volScalarField - ( - min - ( - visc - /( - max - ( - S, - dimensionedScalar("SMALL", S.dimensions(), SMALL) - )*sqr(kappa_*d) - + dimensionedScalar - ( - "ROOTVSMALL", - dimensionSet(0, 2 , -1, 0, 0), - ROOTVSMALL - ) - ), scalar(10.0) - ) - ) - ); - - return trd; -} - - -tmp<volScalarField> SpalartAllmarasDDES::fd(const volScalarField& S) -{ - return 1.0 - tanh(pow3(8.0*rd(nuSgs_ + transport().nu(), S))); -} - - -void SpalartAllmarasDDES::dTildaUpdate(const volScalarField& S) -{ - dTilda_ = - wallDist(mesh_).y() - - fd(S)*max - ( - dimensionedScalar("zero", dimLength, 0.0), - wallDist(mesh_).y() - CDES_*delta() - ); -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -SpalartAllmarasDDES::SpalartAllmarasDDES -( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport -) -: - SpalartAllmaras(U, phi, transport, typeName) -{} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/SpalartAllmarasDDES/SpalartAllmarasDDES.H b/src/turbulenceModels/LES/incompressible/SpalartAllmarasDDES/SpalartAllmarasDDES.H deleted file mode 100644 index d905c34710d..00000000000 --- a/src/turbulenceModels/LES/incompressible/SpalartAllmarasDDES/SpalartAllmarasDDES.H +++ /dev/null @@ -1,118 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::LESmodels::SpalartAllmarasDDES - -Description - SpalartAllmaras DDES LES turbulence model for incompressible flows - - Reference: - P.R. Spalart, S. Deck, S., M.L.Shur, K.D. Squires, M.Kh Strelets, and - A. Travin. `A new version of detached-eddy simulation, resistant to - ambiguous grid densities'. Theor. Comp. Fluid Dyn., 20:181-195, 2006. - -SourceFiles - SpalartAllmarasDDES.C - -\*---------------------------------------------------------------------------*/ - -#ifndef SpalartAllmarasDDES_H -#define SpalartAllmarasDDES_H - -#include "SpalartAllmaras.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -/*---------------------------------------------------------------------------*\ - Class SpalartAllmarasDDES Declaration -\*---------------------------------------------------------------------------*/ - -class SpalartAllmarasDDES -: - public SpalartAllmaras -{ - // Private member functions - - // Disallow default bitwise copy construct and assignment - SpalartAllmarasDDES(const SpalartAllmarasDDES&); - SpalartAllmarasDDES& operator=(const SpalartAllmarasDDES&); - - -protected: - - // Protected member functions - - tmp<volScalarField> fd(const volScalarField& S); - tmp<volScalarField> rd - ( - const volScalarField& visc, - const volScalarField& S - ) const; - - //- Length scale calculation - virtual void dTildaUpdate(const volScalarField& S); - - -public: - - //- Runtime type information - TypeName("SpalartAllmarasDDES"); - - - // Constructors - - //- Constructor from components - SpalartAllmarasDDES - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ); - - - //- Destructor - virtual ~SpalartAllmarasDDES() - {} -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/SpalartAllmarasIDDES/IDDESDelta/IDDESDelta.C b/src/turbulenceModels/LES/incompressible/SpalartAllmarasIDDES/IDDESDelta/IDDESDelta.C deleted file mode 100644 index 36e6a46a4eb..00000000000 --- a/src/turbulenceModels/LES/incompressible/SpalartAllmarasIDDES/IDDESDelta/IDDESDelta.C +++ /dev/null @@ -1,140 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "IDDESDelta.H" -#include "addToRunTimeSelectionTable.H" -#include "wallDist.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ - defineTypeNameAndDebug(IDDESDelta, 0); - addToRunTimeSelectionTable(LESdelta, IDDESDelta, dictionary); -} - - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -void Foam::IDDESDelta::calcDelta() -{ - const Vector<label>& directions = mesh().directions(); - label nD = (directions.nComponents + cmptSum(directions))/2; - - // - Init hwn as wall distant. - volScalarField hwn = wallDist(mesh()).y(); - - scalar deltamaxTmp = 0.; - - const cellList& cells = mesh().cells(); - - forAll(cells,cellI) - { - scalar deltaminTmp = 1.e10; - const labelList& cFaces = mesh().cells()[cellI]; - const point& centrevector = mesh().cellCentres()[cellI]; - - forAll(cFaces, cFaceI) - { - label faceI = cFaces[cFaceI]; - const point& facevector = mesh().faceCentres()[faceI]; - scalar tmp = mag(facevector-centrevector); - if (tmp > deltamaxTmp) - { - deltamaxTmp = tmp; - } - if (tmp < deltaminTmp) - { - deltaminTmp = tmp; - } - } - hwn[cellI] = 2.0*deltaminTmp; - } - - dimensionedScalar deltamax("deltamax",dimLength,2.0*deltamaxTmp); - - if (nD == 3) - { - delta_.internalField() = - deltaCoeff_ - *min(max(max(cw_*wallDist(mesh()).y(),cw_*deltamax),hwn),deltamax); - } - else if (nD == 2) - { - WarningIn("IDDESDelta::calcDelta()") - << "Case is 2D, LES is not strictly applicable\n" - << endl; - - delta_.internalField() = - deltaCoeff_ - *min(max(max(cw_*wallDist(mesh()).y(),cw_*deltamax),hwn),deltamax); - } - else - { - FatalErrorIn("IDDESDelta::calcDelta()") - << "Case is not 3D or 2D, LES is not applicable" - << exit(FatalError); - } -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -Foam::IDDESDelta::IDDESDelta -( - const word& name, - const fvMesh& mesh, - const dictionary& dd -) -: - LESdelta(name, mesh), - deltaCoeff_(readScalar(dd.subDict(type() + "Coeffs").lookup("deltaCoeff"))), - cw_(0) -{ - dd.subDict(type() + "Coeffs").readIfPresent("cw", cw_); - calcDelta(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void Foam::IDDESDelta::read(const dictionary& dd) -{ - dd.subDict(type() + "Coeffs").lookup("deltaCoeff") >> deltaCoeff_; - calcDelta(); -} - - -void Foam::IDDESDelta::correct() -{ - if (mesh_.changing()) - { - calcDelta(); - } -} - - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/SpalartAllmarasIDDES/IDDESDelta/IDDESDelta.H b/src/turbulenceModels/LES/incompressible/SpalartAllmarasIDDES/IDDESDelta/IDDESDelta.H deleted file mode 100644 index a53d1127d28..00000000000 --- a/src/turbulenceModels/LES/incompressible/SpalartAllmarasIDDES/IDDESDelta/IDDESDelta.H +++ /dev/null @@ -1,113 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::IDDESDelta - -Description - IDDESDelta used by the IDDES (improved low Re Spalart-Allmaras DES model) - The min and max delta are calculated using the double distance of the min or - max from the face centre to the cell centre. - -SourceFiles - IDDESDelta.C - -\*---------------------------------------------------------------------------*/ - -#ifndef IDDESDeltaDelta_H -#define IDDESDeltaDelta_H - -#include "LESdelta.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -/*---------------------------------------------------------------------------*\ - Class IDDESDelta Declaration -\*---------------------------------------------------------------------------*/ - -class IDDESDelta -: - public LESdelta -{ - // Private data - - scalar deltaCoeff_; - scalar cw_; - - - // Private Member Functions - - //- Disallow default bitwise copy construct and assignment - IDDESDelta(const IDDESDelta&); - void operator=(const IDDESDelta&); - - //- Calculate the delta values - void calcDelta(); - - -public: - - //- Runtime type information - TypeName("IDDESDelta"); - - - // Constructors - - //- Construct from name, mesh and IOdictionary - IDDESDelta - ( - const word& name, - const fvMesh& mesh, - const dictionary& - ); - - - // Destructor - - ~IDDESDelta() - {} - - - // Member Functions - - //- Read the LESdelta dictionary - void read(const dictionary&); - - // Correct values - void correct(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/SpalartAllmarasIDDES/SpalartAllmarasIDDES.C b/src/turbulenceModels/LES/incompressible/SpalartAllmarasIDDES/SpalartAllmarasIDDES.C deleted file mode 100644 index b58c9557d44..00000000000 --- a/src/turbulenceModels/LES/incompressible/SpalartAllmarasIDDES/SpalartAllmarasIDDES.C +++ /dev/null @@ -1,214 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "SpalartAllmarasIDDES.H" -#include "addToRunTimeSelectionTable.H" -#include "wallDist.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(SpalartAllmarasIDDES, 0); -addToRunTimeSelectionTable(LESModel, SpalartAllmarasIDDES, dictionary); - -// * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * * // - -tmp<volScalarField> SpalartAllmarasIDDES::alpha() const -{ - return - 0.25 - - wallDist(mesh_).y() - /dimensionedScalar("hMax", dimLength, max(cmptMax(delta()))); -} - - -tmp<volScalarField> SpalartAllmarasIDDES::ft(const volScalarField& S) const -{ - return tanh(pow3(sqr(ct_)*r(nuSgs_, S))); -} - - -tmp<volScalarField> SpalartAllmarasIDDES::fl(const volScalarField& S) const -{ - return tanh(pow(sqr(cl_)*r(transport().nu(), S), 10)); -} - - -tmp<volScalarField> SpalartAllmarasIDDES::rd -( - const volScalarField& visc, - const volScalarField& S -) const -{ - volScalarField d = wallDist(mesh_).y(); - - tmp<volScalarField> trd - ( - new volScalarField - ( - min - ( - visc - /( - max - ( - S, - dimensionedScalar("SMALL", S.dimensions(), SMALL) - )*sqr(kappa_*d) - + dimensionedScalar - ( - "ROOTVSMALL", - dimensionSet(0, 2 , -1, 0, 0), - ROOTVSMALL - ) - ), scalar(10.0) - ) - ) - ); - - return trd; -} - - -// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // - -tmp<volScalarField> SpalartAllmarasIDDES::fd(const volScalarField& S) const -{ - return 1.0 - tanh(pow3(8.0*rd(nuSgs_+transport().nu(), S))); -} - - -void SpalartAllmarasIDDES::dTildaUpdate(const volScalarField& S) -{ - volScalarField alpha = this->alpha(); - - volScalarField expTerm = exp(sqr(alpha)); - - volScalarField fHill = - 2.0*(pos(alpha)*pow(expTerm, -11.09) + neg(alpha)*pow(expTerm, -9.0)); - - - volScalarField fStep = min(2.0*pow(expTerm, -9.0), 1.0); - volScalarField fHyb = max(1.0 - fd(S), fStep); - - volScalarField fAmp = 1.0 - max(ft(S), fl(S)); - - volScalarField fRestore = max(fHill - 1.0, 0.0)*fAmp; - - // volScalarField ft2 = IGNORING ft2 terms - - volScalarField Psi = sqrt - ( - min - ( - 100.0, - (1.0 - Cb1_/(Cw1_*sqr(kappa_)*fwStar_)*fv2())/max(SMALL, fv1()) - ) - ); - - dTilda_ = max - ( - dimensionedScalar("zero", dimLength, 0.0), - fHyb*(1.0 + fRestore*Psi)*wallDist(mesh_).y() - + (1.0 - fHyb)*CDES_*Psi*delta() - ); -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -SpalartAllmarasIDDES::SpalartAllmarasIDDES -( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport -) -: - SpalartAllmaras(U, phi, transport, typeName), - - fwStar_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "fwStar", - coeffDict(), - 0.424 - ) - ), - cl_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "cl", - coeffDict(), - 3.55 - ) - ), - ct_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "ct", - coeffDict(), - 1.63 - ) - ) - -{} - - -bool SpalartAllmarasIDDES::read() -{ - if (SpalartAllmaras::read()) - { - fwStar_.readIfPresent(coeffDict()); - cl_.readIfPresent(coeffDict()); - ct_.readIfPresent(coeffDict()); - - return true; - } - else - { - return false; - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/SpalartAllmarasIDDES/SpalartAllmarasIDDES.H b/src/turbulenceModels/LES/incompressible/SpalartAllmarasIDDES/SpalartAllmarasIDDES.H deleted file mode 100644 index d07b53672c0..00000000000 --- a/src/turbulenceModels/LES/incompressible/SpalartAllmarasIDDES/SpalartAllmarasIDDES.H +++ /dev/null @@ -1,132 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::LESmodels::SpalartAllmarasIDDES - -Description - SpalartAllmarasIDDES LES turbulence model for incompressible flows - -SourceFiles - SpalartAllmarasIDDES.C - -\*---------------------------------------------------------------------------*/ - -#ifndef SpalartAllmarasIDDES_H -#define SpalartAllmarasIDDES_H - -#include "SpalartAllmaras.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -/*---------------------------------------------------------------------------*\ - Class SpalartAllmarasIDDES Declaration -\*---------------------------------------------------------------------------*/ - -class SpalartAllmarasIDDES -: - public SpalartAllmaras -{ - // Private data - - // Model constants - - dimensionedScalar fwStar_; - dimensionedScalar cl_; - dimensionedScalar ct_; - - - // Private member functions - - tmp<volScalarField> alpha() const; - tmp<volScalarField> ft(const volScalarField& S) const; - tmp<volScalarField> fl(const volScalarField& S) const; - tmp<volScalarField> rd - ( - const volScalarField& visc, - const volScalarField& S - ) const; - - // Disallow default bitwise copy construct and assignment - SpalartAllmarasIDDES(const SpalartAllmarasIDDES&); - SpalartAllmarasIDDES& operator=(const SpalartAllmarasIDDES&); - - -protected: - - // Protected member functions - - //- Delay function - tmp<volScalarField> fd(const volScalarField& S) const; - - //- Length scale calculation - virtual void dTildaUpdate(const volScalarField& S); - -public: - - //- Runtime type information - TypeName("SpalartAllmarasIDDES"); - - - // Constructors - - //- Constructor from components - SpalartAllmarasIDDES - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ); - - - //- Destructor - virtual ~SpalartAllmarasIDDES() - {} - - - // Member Functions - - //- Read turbulenceProperties dictionary - virtual bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/derivedFvPatchFields/wallFunctions/nuSgsWallFunctions/nuSgsSpalartAllmarasWallFunction/nuSgsSpalartAllmarasWallFunctionFvPatchScalarField.C b/src/turbulenceModels/LES/incompressible/derivedFvPatchFields/wallFunctions/nuSgsWallFunctions/nuSgsSpalartAllmarasWallFunction/nuSgsSpalartAllmarasWallFunctionFvPatchScalarField.C deleted file mode 100644 index ab02061c5d2..00000000000 --- a/src/turbulenceModels/LES/incompressible/derivedFvPatchFields/wallFunctions/nuSgsWallFunctions/nuSgsSpalartAllmarasWallFunction/nuSgsSpalartAllmarasWallFunctionFvPatchScalarField.C +++ /dev/null @@ -1,186 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "nuSgsSpalartAllmarasWallFunctionFvPatchScalarField.H" -#include "LESModel.H" -#include "fvPatchFieldMapper.H" -#include "volFields.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -nuSgsSpalartAllmarasWallFunctionFvPatchScalarField:: -nuSgsSpalartAllmarasWallFunctionFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedValueFvPatchScalarField(p, iF) -{} - - -nuSgsSpalartAllmarasWallFunctionFvPatchScalarField:: -nuSgsSpalartAllmarasWallFunctionFvPatchScalarField -( - const nuSgsSpalartAllmarasWallFunctionFvPatchScalarField& ptf, - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const fvPatchFieldMapper& mapper -) -: - fixedValueFvPatchScalarField(ptf, p, iF, mapper) -{} - - -nuSgsSpalartAllmarasWallFunctionFvPatchScalarField:: -nuSgsSpalartAllmarasWallFunctionFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const dictionary& dict -) -: - fixedValueFvPatchScalarField(p, iF, dict) -{} - - -nuSgsSpalartAllmarasWallFunctionFvPatchScalarField:: -nuSgsSpalartAllmarasWallFunctionFvPatchScalarField -( - const nuSgsSpalartAllmarasWallFunctionFvPatchScalarField& tppsf -) -: - fixedValueFvPatchScalarField(tppsf) -{} - - -nuSgsSpalartAllmarasWallFunctionFvPatchScalarField:: -nuSgsSpalartAllmarasWallFunctionFvPatchScalarField -( - const nuSgsSpalartAllmarasWallFunctionFvPatchScalarField& tppsf, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedValueFvPatchScalarField(tppsf, iF) -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void nuSgsSpalartAllmarasWallFunctionFvPatchScalarField::evaluate -( - const Pstream::commsTypes -) -{ - const LESModel& sgsModel - = db().lookupObject<LESModel>("LESProperties"); - - scalar kappa = readScalar(sgsModel.lookup("kappa")); - - scalar E = readScalar(sgsModel.subDict("wallFunctionCoeffs").lookup("E")); - - const scalarField& ry = patch().deltaCoeffs(); - - const fvPatchVectorField& U = - patch().lookupPatchField<volVectorField, vector>("U"); - - scalarField magUp = mag(U.patchInternalField() - U); - - const scalarField& nuw = - patch().lookupPatchField<volScalarField, scalar>("nu"); - scalarField& nuSgsw = *this; - - - scalarField magFaceGradU = mag(U.snGrad()); - - forAll(nuSgsw, facei) - { - scalar magUpara = magUp[facei]; - - scalar utau = sqrt((nuSgsw[facei] + nuw[facei])*magFaceGradU[facei]); - - if(utau > VSMALL) - { - int iter = 0; - scalar err = GREAT; - - do - { - scalar kUu = min(kappa*magUpara/utau, 100); - scalar fkUu = exp(kUu) - 1 - kUu*(1 + 0.5*kUu); - - scalar f = - - utau/(ry[facei]*nuw[facei]) - + magUpara/utau - + 1/E*(fkUu - 1.0/6.0*kUu*sqr(kUu)); - - scalar df = - - 1.0/(ry[facei]*nuw[facei]) - - magUpara/sqr(utau) - - 1/E*kUu*fkUu/utau; - - scalar utauNew = utau - f/df; - err = mag((utau - utauNew)/utau); - utau = utauNew; - - } while (utau > VSMALL && err > 0.01 && ++iter < 10); - - nuSgsw[facei] = - max(sqr(max(utau, 0))/magFaceGradU[facei] - nuw[facei], 0.0); - } - else - { - nuSgsw[facei] = 0; - } - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -makePatchTypeField -( - fvPatchScalarField, - nuSgsSpalartAllmarasWallFunctionFvPatchScalarField -); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/derivedFvPatchFields/wallFunctions/nuSgsWallFunctions/nuSgsSpalartAllmarasWallFunction/nuSgsSpalartAllmarasWallFunctionFvPatchScalarField.H b/src/turbulenceModels/LES/incompressible/derivedFvPatchFields/wallFunctions/nuSgsWallFunctions/nuSgsSpalartAllmarasWallFunction/nuSgsSpalartAllmarasWallFunctionFvPatchScalarField.H deleted file mode 100644 index ecb1830757e..00000000000 --- a/src/turbulenceModels/LES/incompressible/derivedFvPatchFields/wallFunctions/nuSgsWallFunctions/nuSgsSpalartAllmarasWallFunction/nuSgsSpalartAllmarasWallFunctionFvPatchScalarField.H +++ /dev/null @@ -1,157 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::LESModels:: - nuSgsSpalartAllmarasWallFunctionFvPatchScalarField - -Description - Spalart Allmaras wall function boundary condition for incompressible flows - -SourceFiles - nuSgsSpalartAllmarasWallFunctionFvPatchScalarField.C - -\*---------------------------------------------------------------------------*/ - -#ifndef nuSgsSpalartAllmarasWallFunctionFvPatchScalarField_H -#define nuSgsSpalartAllmarasWallFunctionFvPatchScalarField_H - -#include "fixedValueFvPatchFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -/*---------------------------------------------------------------------------*\ - Class nuSgsSpalartAllmarasWallFunctionFvPatchScalarField Declaration -\*---------------------------------------------------------------------------*/ - -class nuSgsSpalartAllmarasWallFunctionFvPatchScalarField -: - public fixedValueFvPatchScalarField -{ - // Private data - - -public: - - //- Runtime type information - TypeName("nuSgsSpalartAllmarasWallFunction"); - - - // Constructors - - //- Construct from patch and internal field - nuSgsSpalartAllmarasWallFunctionFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct from patch, internal field and dictionary - nuSgsSpalartAllmarasWallFunctionFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const dictionary& - ); - - //- Construct by mapping given - // nuSgsSpalartAllmarasWallFunctionFvPatchScalarField - // onto a new patch - nuSgsSpalartAllmarasWallFunctionFvPatchScalarField - ( - const nuSgsSpalartAllmarasWallFunctionFvPatchScalarField&, - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const fvPatchFieldMapper& - ); - - //- Construct as copy - nuSgsSpalartAllmarasWallFunctionFvPatchScalarField - ( - const nuSgsSpalartAllmarasWallFunctionFvPatchScalarField& - ); - - //- Construct and return a clone - virtual tmp<fvPatchScalarField> clone() const - { - return tmp<fvPatchScalarField> - ( - new nuSgsSpalartAllmarasWallFunctionFvPatchScalarField(*this) - ); - } - - //- Construct as copy setting internal field reference - nuSgsSpalartAllmarasWallFunctionFvPatchScalarField - ( - const nuSgsSpalartAllmarasWallFunctionFvPatchScalarField&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct and return a clone setting internal field reference - virtual tmp<fvPatchScalarField> clone - ( - const DimensionedField<scalar, volMesh>& iF - ) const - { - return tmp<fvPatchScalarField> - ( - new nuSgsSpalartAllmarasWallFunctionFvPatchScalarField - ( - *this, - iF - ) - ); - } - - - // Member functions - - // Evaluation functions - - //- Evaluate the patchField - virtual void evaluate - ( - const Pstream::commsTypes commsType=Pstream::blocking - ); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/dynMixedSmagorinsky/dynMixedSmagorinsky.C b/src/turbulenceModels/LES/incompressible/dynMixedSmagorinsky/dynMixedSmagorinsky.C deleted file mode 100644 index aabecafd199..00000000000 --- a/src/turbulenceModels/LES/incompressible/dynMixedSmagorinsky/dynMixedSmagorinsky.C +++ /dev/null @@ -1,142 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "dynMixedSmagorinsky.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(dynMixedSmagorinsky, 0); -addToRunTimeSelectionTable(LESModel, dynMixedSmagorinsky, dictionary); - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -dynMixedSmagorinsky::dynMixedSmagorinsky -( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport -) -: - LESModel(typeName, U, phi, transport), - scaleSimilarity(U, phi, transport), - dynSmagorinsky(U, phi, transport) -{ - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -tmp<volScalarField> dynMixedSmagorinsky::k() const -{ - return - ( - scaleSimilarity::k() - + dynSmagorinsky::k() - ); -} - - -tmp<volScalarField> dynMixedSmagorinsky::epsilon() const -{ - return - ( - scaleSimilarity::epsilon() - + dynSmagorinsky::epsilon() - ); -} - - -tmp<volSymmTensorField> dynMixedSmagorinsky::B() const -{ - return - ( - scaleSimilarity::B() - + dynSmagorinsky::B() - ); -} - - -tmp<volSymmTensorField> dynMixedSmagorinsky::devBeff() const -{ - return - ( - scaleSimilarity::devBeff() - + dynSmagorinsky::devBeff() - ); -} - - -tmp<fvVectorMatrix> dynMixedSmagorinsky::divDevBeff(volVectorField& U) const -{ - return - ( - scaleSimilarity::divDevBeff(U) - + dynSmagorinsky::divDevBeff(U) - ); -} - - -void dynMixedSmagorinsky::correct(const tmp<volTensorField>& gradU) -{ - scaleSimilarity::correct(gradU); - dynSmagorinsky::correct(gradU); -} - - -bool dynMixedSmagorinsky::read() -{ - if (LESModel::read()) - { - scaleSimilarity::read(); - dynSmagorinsky::read(); - - return true; - } - else - { - return false; - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/dynMixedSmagorinsky/dynMixedSmagorinsky.H b/src/turbulenceModels/LES/incompressible/dynMixedSmagorinsky/dynMixedSmagorinsky.H deleted file mode 100644 index 223487b7d02..00000000000 --- a/src/turbulenceModels/LES/incompressible/dynMixedSmagorinsky/dynMixedSmagorinsky.H +++ /dev/null @@ -1,150 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::LESModels::dynMixedSmagorinsky - -Description - The Mixed Isochoric Smagorinsky Model for incompressible flows. - - The mixed model is a linear combination of an eddy viscosity model - with a scale similarity model. - @verbatim - B = (L + C) + R = (F(v*v) - F(v)*F(v)) + R - @endverbatim - - The algebraic eddy viscosity SGS model is founded on the assumption - that local equilibrium prevails, hence - @verbatim - R = 2/3*rho*k*I - 2*nuEff*dev(D) - where - k = cI*delta^2*||D||^2 - nuEff = ck*sqrt(k)*delta + nu - @endverbatim - - The Leonard and cross contributions are incorporated - by adding, - @verbatim - + div(((filter(U*U) - filter(U)*filter(U)) - - 0.333*I*tr(filter(U*U) - filter(U)*filter(U)))) - + div((filter(U*epsilon) - filter(U)*filter(epsilon))) - @endverbatim - to the rhs. of the equations. This version implements filtering to - evaluate the coefficients in the model. - -SourceFiles - dynMixedSmagorinsky.C - -\*---------------------------------------------------------------------------*/ - -#ifndef dynMixedSmagorinsky_H -#define dynMixedSmagorinsky_H - -#include "dynSmagorinsky.H" -#include "scaleSimilarity.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -/*---------------------------------------------------------------------------*\ - Class dynMixedSmagorinsky Declaration -\*---------------------------------------------------------------------------*/ - -class dynMixedSmagorinsky -: - public scaleSimilarity, - public dynSmagorinsky -{ - // Private Member Functions - - // Disallow default bitwise copy construct and assignment - dynMixedSmagorinsky(const dynMixedSmagorinsky&); - dynMixedSmagorinsky& operator=(const dynMixedSmagorinsky&); - -public: - - //- Runtime type information - TypeName("dynMixedSmagorinsky"); - - // Constructors - - //- Constructors from components - dynMixedSmagorinsky - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ); - - - // Destructor - - ~dynMixedSmagorinsky() - {} - - - // Member Functions - - //- Return SGS kinetic energy - tmp<volScalarField> k() const; - - //- Return sub-grid disipation rate - tmp<volScalarField> epsilon() const; - - //- Return the sub-grid stress tensor. - tmp<volSymmTensorField> B() const; - - //- Return the effective sub-grid turbulence stress tensor - // including the laminar stress - tmp<volSymmTensorField> devBeff() const; - - //- Returns div(B). - // This is the additional term due to the filtering of the NSE. - tmp<fvVectorMatrix> divDevBeff(volVectorField& U) const; - - //- Correct Eddy-Viscosity and related properties - void correct(const tmp<volTensorField>& gradU); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/dynOneEqEddy/dynOneEqEddy.C b/src/turbulenceModels/LES/incompressible/dynOneEqEddy/dynOneEqEddy.C deleted file mode 100644 index 88a308aaf16..00000000000 --- a/src/turbulenceModels/LES/incompressible/dynOneEqEddy/dynOneEqEddy.C +++ /dev/null @@ -1,181 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "dynOneEqEddy.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(dynOneEqEddy, 0); -addToRunTimeSelectionTable(LESModel, dynOneEqEddy, dictionary); - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -dimensionedScalar dynOneEqEddy::ck(const volSymmTensorField& D) const -{ - volScalarField KK = 0.5*(filter_(magSqr(U())) - magSqr(filter_(U()))); - - volSymmTensorField LL = dev(filter_(sqr(U())) - sqr(filter_(U()))); - - volSymmTensorField MM = - delta()*(filter_(sqrt(k_)*D) - 2*sqrt(KK + filter_(k_))*filter_(D)); - - dimensionedScalar MMMM = average(magSqr(MM)); - - if (MMMM.value() > VSMALL) - { - return average(LL && MM)/MMMM; - } - else - { - return 0.0; - } -} - - -dimensionedScalar dynOneEqEddy::ce(const volSymmTensorField& D) const -{ - volScalarField KK = 0.5*(filter_(magSqr(U())) - magSqr(filter_(U()))); - - volScalarField mm = - pow(KK + filter_(k_), 1.5)/(2*delta()) - filter_(pow(k_, 1.5))/delta(); - - volScalarField ee = - 2*delta()*ck(D) - *( - filter_(sqrt(k_)*magSqr(D)) - - 2*sqrt(KK + filter_(k_))*magSqr(filter_(D)) - ); - - dimensionedScalar mmmm = average(magSqr(mm)); - - if (mmmm.value() > VSMALL) - { - return average(ee*mm)/mmmm; - } - else - { - return 0.0; - } -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -dynOneEqEddy::dynOneEqEddy -( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport -) -: - LESModel(typeName, U, phi, transport), - GenEddyVisc(U, phi, transport), - - k_ - ( - IOobject - ( - "k", - runTime_.timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh_ - ), - - filterPtr_(LESfilter::New(U.mesh(), coeffDict())), - filter_(filterPtr_()) -{ - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -dynOneEqEddy::~dynOneEqEddy() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void dynOneEqEddy::correct(const tmp<volTensorField>& gradU) -{ - GenEddyVisc::correct(gradU); - - volSymmTensorField D = symm(gradU); - - volScalarField P = 2.0*nuSgs_*magSqr(D); - - solve - ( - fvm::ddt(k_) - + fvm::div(phi(), k_) - - fvm::laplacian(DkEff(), k_) - == - P - - fvm::Sp(ce(D)*sqrt(k_)/delta(), k_) - ); - - bound(k_, k0()); - - nuSgs_ = ck(D)*sqrt(k_)*delta(); - nuSgs_.correctBoundaryConditions(); -} - - -bool dynOneEqEddy::read() -{ - if (GenEddyVisc::read()) - { - filter_.read(coeffDict()); - - return true; - } - else - { - return false; - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/dynOneEqEddy/dynOneEqEddy.H b/src/turbulenceModels/LES/incompressible/dynOneEqEddy/dynOneEqEddy.H deleted file mode 100644 index 3ba67f6b24f..00000000000 --- a/src/turbulenceModels/LES/incompressible/dynOneEqEddy/dynOneEqEddy.H +++ /dev/null @@ -1,155 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::LESModels::dynOneEqEddy - -Description - One Equation Eddy Viscosity Model for incompressible flows. - - Eddy viscosity SGS model using a modeled balance equation to simulate - the behaviour of k. - - Thus - @verbatim - d/dt(k) + div(U*k) - div(nuSgs*grad(k)) - = - -B*L - ce*k^3/2/delta - - and - - B = 2/3*k*I - 2*nuSgs*dev(D) - Beff = 2/3*k*I - 2*nuEff*dev(D) - - where - - D = symm(grad(U)); - nuSgs = ck*sqrt(k)*delta - nuEff = nuSgs + nu - @endverbatim - -SourceFiles - dynOneEqEddy.C - -\*---------------------------------------------------------------------------*/ - -#ifndef dynOneEqEddy_H -#define dynOneEqEddy_H - -#include "GenEddyVisc.H" -#include "LESfilter.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -/*---------------------------------------------------------------------------*\ - Class dynOneEqEddy Declaration -\*---------------------------------------------------------------------------*/ - -class dynOneEqEddy -: - public GenEddyVisc -{ - // Private data - - volScalarField k_; - - autoPtr<LESfilter> filterPtr_; - LESfilter& filter_; - - - // Private Member Functions - - //- Calculate ck, ce by filtering the velocity field U. - dimensionedScalar ck(const volSymmTensorField& D) const; - dimensionedScalar ce(const volSymmTensorField& D) const; - - // Disallow default bitwise copy construct and assignment - dynOneEqEddy(const dynOneEqEddy&); - dynOneEqEddy& operator=(const dynOneEqEddy&); - - -public: - - //- Runtime type information - TypeName("dynOneEqEddy"); - - // Constructors - - //- Constructor from components - dynOneEqEddy - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ); - - - // Destructor - - ~dynOneEqEddy(); - - - // Member Functions - - //- Return SGS kinetic energy - tmp<volScalarField> k() const - { - return k_; - } - - //- Return the effective diffusivity for k - tmp<volScalarField> DkEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DkEff", nuSgs_ + nu()) - ); - } - - //- Correct Eddy-Viscosity and related properties - void correct(const tmp<volTensorField>& gradU); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/dynSmagorinsky/dynSmagorinsky.C b/src/turbulenceModels/LES/incompressible/dynSmagorinsky/dynSmagorinsky.C deleted file mode 100644 index 114a8ea4127..00000000000 --- a/src/turbulenceModels/LES/incompressible/dynSmagorinsky/dynSmagorinsky.C +++ /dev/null @@ -1,161 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "dynSmagorinsky.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(dynSmagorinsky, 0); -addToRunTimeSelectionTable(LESModel, dynSmagorinsky, dictionary); - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -dimensionedScalar dynSmagorinsky::cD(const volSymmTensorField& D) const -{ - volSymmTensorField LL = dev(filter_(sqr(U())) - (sqr(filter_(U())))); - - volSymmTensorField MM = - sqr(delta())*(filter_(mag(D)*(D)) - 4*mag(filter_(D))*filter_(D)); - - dimensionedScalar MMMM = average(magSqr(MM)); - - if (MMMM.value() > VSMALL) - { - return average(LL && MM)/MMMM; - } - else - { - return 0.0; - } -} - - -dimensionedScalar dynSmagorinsky::cI(const volSymmTensorField& D) const -{ - volScalarField KK = 0.5*(filter_(magSqr(U())) - magSqr(filter_(U()))); - - volScalarField mm = - sqr(delta())*(4*sqr(mag(filter_(D))) - filter_(sqr(mag(D)))); - - dimensionedScalar mmmm = average(magSqr(mm)); - - if (mmmm.value() > VSMALL) - { - return average(KK*mm)/mmmm; - } - else - { - return 0.0; - } -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -dynSmagorinsky::dynSmagorinsky -( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport -) -: - LESModel(typeName, U, phi, transport), - GenEddyVisc(U, phi, transport), - - k_ - ( - IOobject - ( - "k", - runTime_.timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh_ - ), - - filterPtr_(LESfilter::New(U.mesh(), coeffDict())), - filter_(filterPtr_()) -{ - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -dynSmagorinsky::~dynSmagorinsky() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void dynSmagorinsky::correct(const tmp<volTensorField>& gradU) -{ - LESModel::correct(gradU); - - volSymmTensorField D = dev(symm(gradU)); - volScalarField magSqrD = magSqr(D); - - k_ = cI(D)*sqr(delta())*magSqrD; - - nuSgs_ = cD(D)*sqr(delta())*sqrt(magSqrD); - nuSgs_.correctBoundaryConditions(); -} - - -bool dynSmagorinsky::read() -{ - if (GenEddyVisc::read()) - { - filter_.read(coeffDict()); - - return true; - } - else - { - return false; - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/dynSmagorinsky/dynSmagorinsky.H b/src/turbulenceModels/LES/incompressible/dynSmagorinsky/dynSmagorinsky.H deleted file mode 100644 index d155d45a581..00000000000 --- a/src/turbulenceModels/LES/incompressible/dynSmagorinsky/dynSmagorinsky.H +++ /dev/null @@ -1,155 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::LESModels::dynSmagorinsky - -Description - The Isochoric dynamic Smagorinsky Model for incompressible flows. - - Algebraic eddy viscosity SGS model founded on the assumption that - local equilibrium prevails. - Thus, - @verbatim - B = 2/3*k*I - 2*nuSgs*dev(D) - Beff = 2/3*k*I - 2*nuEff*dev(D) - - where - - k = cI*delta^2*||D||^2 - nuSgs = cD*delta^2*||D|| - nuEff = nuSgs + nu - - In the dynamic version of the choric Smagorinsky model - the coefficients cI and cD are calculated during the simulation, - - cI=<K*m>/<m*m> - - and - - cD=<L.M>/<M.M>, - - where - - K = 0.5*(F(U.U) - F(U).F(U)) - m = delta^2*(4*||F(D)||^2 - F(||D||^2)) - L = dev(F(U*U) - F(U)*F(U)) - M = delta^2*(F(||D||*dev(D)) - 4*||F(D)||*F(dev(D))) - @endverbatim - -SourceFiles - dynSmagorinsky.C - -\*---------------------------------------------------------------------------*/ - -#ifndef dynSmagorinsky_H -#define dynSmagorinsky_H - -#include "Smagorinsky.H" -#include "LESfilter.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -/*---------------------------------------------------------------------------*\ - Class dynSmagorinsky Declaration -\*---------------------------------------------------------------------------*/ - -class dynSmagorinsky -: - public GenEddyVisc -{ - // Private data - - volScalarField k_; - - autoPtr<LESfilter> filterPtr_; - LESfilter& filter_; - - - // Private Member Functions - - //- Calculate coefficients cD, cI from filtering velocity field - dimensionedScalar cD(const volSymmTensorField& D) const; - dimensionedScalar cI(const volSymmTensorField& D) const; - - // Disallow default bitwise copy construct and assignment - dynSmagorinsky(const dynSmagorinsky&); - dynSmagorinsky& operator=(const dynSmagorinsky&); - - -public: - - //- Runtime type information - TypeName("dynSmagorinsky"); - - // Constructors - - //- Constructor from components - dynSmagorinsky - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ); - - - // Destructor - - ~dynSmagorinsky(); - - - // Member Functions - - //- Return SGS kinetic energy - tmp<volScalarField> k() const - { - return k_; - } - - //- Correct Eddy-Viscosity and related properties - void correct(const tmp<volTensorField>& gradU); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/kOmegaSSTSAS/kOmegaSSTSAS.C b/src/turbulenceModels/LES/incompressible/kOmegaSSTSAS/kOmegaSSTSAS.C deleted file mode 100644 index a06f4298c64..00000000000 --- a/src/turbulenceModels/LES/incompressible/kOmegaSSTSAS/kOmegaSSTSAS.C +++ /dev/null @@ -1,447 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "kOmegaSSTSAS.H" -#include "addToRunTimeSelectionTable.H" -#include "wallDist.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(kOmegaSSTSAS, 0); -addToRunTimeSelectionTable(LESModel, kOmegaSSTSAS, dictionary); - -// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // - -tmp<volScalarField> kOmegaSSTSAS::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> kOmegaSSTSAS::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)); -} - - -tmp<volScalarField> kOmegaSSTSAS::Lvk2 -( - const volScalarField& S2 -) const -{ - return kappa_*sqrt(S2) - /( - mag(fvc::laplacian(U())) - + dimensionedScalar - ( - "ROOTVSMALL", - dimensionSet(0, -1 , -1, 0, 0, 0, 0), - ROOTVSMALL - ) - ); -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -kOmegaSSTSAS::kOmegaSSTSAS -( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport, - const word& modelName -) -: - LESModel(modelName, U, phi, transport), - - 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 - ) - ), - alphaPhi_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphaPhi", - coeffDict(), - 0.666667 - ) - ), - zetaTilda2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "zetaTilda2", - coeffDict(), - 1.755 - ) - ), - FSAS_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "FSAS", - coeffDict(), - 1.25 - ) - ), - - omega0_("omega0", dimless/dimTime, SMALL), - omegaSmall_("omegaSmall", dimless/dimTime, SMALL), - y_(mesh_), - Cmu_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cmu", - coeffDict(), - 0.09 - ) - ), - kappa_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "kappa", - *this, - 0.4187 - ) - ), - - k_ - ( - IOobject - ( - "k", - runTime_.timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh_ - ), - - omega_ - ( - IOobject - ( - "omega", - runTime_.timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh_ - ), - - nuSgs_ - ( - IOobject - ( - "nuSgs", - runTime_.timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh_ - ) -{ - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void kOmegaSSTSAS::correct(const tmp<volTensorField>& gradU) -{ - LESModel::correct(gradU); - - if (mesh_.changing()) - { - y_.correct(); - } - - volScalarField S2 = magSqr(symm(gradU())); - gradU.clear(); - - volVectorField gradK = fvc::grad(k_); - volVectorField gradOmega = fvc::grad(omega_); - volScalarField L = sqrt(k_)/(pow(Cmu_, 0.25)*(omega_ + omegaSmall_)); - volScalarField CDkOmega = (2.0*alphaOmega2_)*(gradK & gradOmega)/(omega_ + omegaSmall_); - volScalarField F1 = this->F1(CDkOmega); - volScalarField G = nuSgs_*2.0*S2; - - // Turbulent kinetic energy equation - solve - ( - fvm::ddt(k_) - + fvm::div(phi(), k_) - - fvm::Sp(fvc::div(phi()), k_) - - fvm::laplacian(DkEff(F1), k_) - == - min(G, c1_*betaStar_*k_*omega_) - - fvm::Sp(betaStar_*omega_, k_) - ); - - - bound(k_, k0()); - - volScalarField grad_omega_k = max - ( - magSqr(gradOmega)/ - sqr(omega_ + omegaSmall_), - magSqr(gradK)/ - sqr(k_ + k0()) - ); - - // Turbulent frequency equation - solve - ( - fvm::ddt(omega_) - + fvm::div(phi(), omega_) - - fvm::Sp(fvc::div(phi()), omega_) - - fvm::laplacian(DomegaEff(F1), omega_) - == - gamma(F1)*2.0*S2 - - fvm::Sp(beta(F1)*omega_, omega_) - - fvm::SuSp // cross diffusion term - ( - (F1 - scalar(1))*CDkOmega/omega_, - omega_ - ) - + FSAS_ - *max - ( - dimensionedScalar("zero",dimensionSet(0, 0 , -2, 0, 0),0. ), - zetaTilda2_*kappa_*S2*(L/Lvk2(S2))- 2.0/alphaPhi_*k_*grad_omega_k - ) - - ); - bound(omega_, omega0_); - - // Re-calculate viscosity - nuSgs_ == a1_*k_/max(a1_*omega_, F2()*sqrt(S2)); - nuSgs_.correctBoundaryConditions(); -} - - -tmp<volScalarField> kOmegaSSTSAS::epsilon() const -{ - return 2.0*nuEff()*magSqr(symm(fvc::grad(U()))); -} - - -tmp<volSymmTensorField> kOmegaSSTSAS::B() const -{ - return ((2.0/3.0)*I)*k() - nuSgs()*twoSymm(fvc::grad(U())); -} - - -tmp<volSymmTensorField> kOmegaSSTSAS::devBeff() const -{ - return -nuEff()*dev(twoSymm(fvc::grad(U()))); -} - - -tmp<fvVectorMatrix> kOmegaSSTSAS::divDevBeff(volVectorField& U) const -{ - return - ( - - fvm::laplacian(nuEff(), U) - fvc::div(nuEff()*dev(fvc::grad(U)().T())) - ); -} - - -bool kOmegaSSTSAS::read() -{ - if (LESModel::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()); - alphaPhi_.readIfPresent(coeffDict()); - zetaTilda2_.readIfPresent(coeffDict()); - FSAS_.readIfPresent(coeffDict()); - - return true; - } - else - { - return false; - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/kOmegaSSTSAS/kOmegaSSTSAS.H b/src/turbulenceModels/LES/incompressible/kOmegaSSTSAS/kOmegaSSTSAS.H deleted file mode 100644 index 8048be0adf7..00000000000 --- a/src/turbulenceModels/LES/incompressible/kOmegaSSTSAS/kOmegaSSTSAS.H +++ /dev/null @@ -1,258 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::LESmodels::kOmegaSSTSAS - -Description - kOmegaSSTSAS LES turbulence model for incompressible flows - - Note: does not have an explicit dependency on spatial discretisation - i.e. LESdelta not used. - -SourceFiles - kOmegaSSTSAS.C - -\*---------------------------------------------------------------------------*/ - -#ifndef kOmegaSSTSAS_H -#define kOmegaSSTSAS_H - -#include "LESModel.H" -#include "volFields.H" -#include "wallDist.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -/*---------------------------------------------------------------------------*\ - Class kOmegaSSTSAS Declaration -\*---------------------------------------------------------------------------*/ - -class kOmegaSSTSAS -: - public LESModel -{ - // Private member functions - - // Disallow default bitwise copy construct and assignment - kOmegaSSTSAS(const kOmegaSSTSAS&); - kOmegaSSTSAS& operator=(const kOmegaSSTSAS&); - - -protected: - - // Protected data - - // Model constants - - dimensionedScalar alphaK1_; - dimensionedScalar alphaK2_; - - dimensionedScalar alphaOmega1_; - dimensionedScalar alphaOmega2_; - - dimensionedScalar gamma1_; - dimensionedScalar gamma2_; - - dimensionedScalar beta1_; - dimensionedScalar beta2_; - - dimensionedScalar betaStar_; - - dimensionedScalar a1_; - dimensionedScalar c1_; - - dimensionedScalar alphaPhi_; - dimensionedScalar zetaTilda2_; - dimensionedScalar FSAS_; - - dimensionedScalar omega0_; - dimensionedScalar omegaSmall_; - - wallDist y_; - dimensionedScalar Cmu_; - dimensionedScalar kappa_; - - - // Fields - - volScalarField k_; - volScalarField omega_; - volScalarField nuSgs_; - - - // Protected member functions - - tmp<volScalarField> Lvk2 - ( - const volScalarField& S2 - ) const; - - tmp<volScalarField> F1(const volScalarField& CDkOmega) const; - tmp<volScalarField> F2() const; - - tmp<volScalarField> blend - ( - const volScalarField& F1, - const dimensionedScalar& psi1, - const dimensionedScalar& psi2 - ) const - { - return F1*(psi1 - psi2) + psi2; - } - - tmp<volScalarField> alphaK - ( - const volScalarField& F1 - ) const - { - return blend(F1, alphaK1_, alphaK2_); - } - - tmp<volScalarField> alphaOmega - ( - const volScalarField& F1 - ) const - { - return blend(F1, alphaOmega1_, alphaOmega2_); - } - - tmp<volScalarField> beta - ( - const volScalarField& F1 - ) const - { - return blend(F1, beta1_, beta2_); - } - - tmp<volScalarField> gamma - ( - const volScalarField& F1 - ) const - { - return blend(F1, gamma1_, gamma2_); - } - - -public: - - //- Runtime type information - TypeName("kOmegaSSTSAS"); - - - // Constructors - - //- Constructor from components - kOmegaSSTSAS - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport, - const word& modelName = typeName - ); - - - //- Destructor - virtual ~kOmegaSSTSAS() - {} - - - // Member Functions - - //- Return SGS kinetic energy - tmp<volScalarField> k() const - { - return k_; - } - - //- Return omega - tmp<volScalarField> omega() const - { - return omega_; - } - - //- Return the effective diffusivity for k - tmp<volScalarField> DkEff(const volScalarField& F1) const - { - return tmp<volScalarField> - ( - new volScalarField("DkEff", alphaK(F1)*nuSgs_ + nu()) - ); - } - - //- Return the effective diffusivity for omega - tmp<volScalarField> DomegaEff(const volScalarField& F1) const - { - return tmp<volScalarField> - ( - new volScalarField("DomegaEff", alphaOmega(F1)*nuSgs_ + nu()) - ); - } - - //- Return sub-grid disipation rate - tmp<volScalarField> epsilon() const; - - //- Return SGS viscosity - tmp<volScalarField> nuSgs() const - { - return nuSgs_; - } - - //- Return the sub-grid stress tensor. - tmp<volSymmTensorField> B() const; - - //- Return the effective sub-grid turbulence stress tensor - // including the laminar stress - tmp<volSymmTensorField> devBeff() const; - - //- Return the deviatoric part of the divergence of Beff - // i.e. the additional term in the filtered NSE. - tmp<fvVectorMatrix> divDevBeff(volVectorField& U) const; - - //- Solve the turbulence equations (k-w) and correct the turbulence viscosity - virtual void correct(const tmp<volTensorField>& gradU); - - //- Read turbulenceProperties dictionary - virtual bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/laminar/laminar.C b/src/turbulenceModels/LES/incompressible/laminar/laminar.C deleted file mode 100644 index a57d5912d52..00000000000 --- a/src/turbulenceModels/LES/incompressible/laminar/laminar.C +++ /dev/null @@ -1,166 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "laminar.H" -#include "addToRunTimeSelectionTable.H" -#include "wallDist.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(laminar, 0); -addToRunTimeSelectionTable(LESModel, laminar, dictionary); - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -laminar::laminar -( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport -) -: - LESModel(typeName, U, phi, transport) -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -tmp<volScalarField> laminar::k() const -{ - return tmp<volScalarField> - ( - new volScalarField - ( - IOobject - ( - "k", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh_, - dimensionedScalar("k", sqr(U().dimensions()), 0.0) - ) - ); -} - -tmp<volScalarField> laminar::epsilon() const -{ - return 2*nu()*magSqr(symm(fvc::grad(U()))); -} - -tmp<volScalarField> laminar::nuSgs() const -{ - return tmp<volScalarField> - ( - new volScalarField - ( - IOobject - ( - "nuSgs", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh_, - dimensionedScalar("nuSgs", nu().dimensions(), 0.0) - ) - ); -} - -tmp<volScalarField> laminar::nuEff() const -{ - return tmp<volScalarField> - ( - new volScalarField("nuEff", nu()) - ); -} - - -tmp<volSymmTensorField> laminar::B() const -{ - return tmp<volSymmTensorField> - ( - new volSymmTensorField - ( - IOobject - ( - "B", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh_, - dimensionedSymmTensor - ( - "B", sqr(U().dimensions()), symmTensor::zero - ) - ) - ); -} - - -tmp<volSymmTensorField> laminar::devBeff() const -{ - return -nu()*dev(twoSymm(fvc::grad(U()))); -} - - -tmp<fvVectorMatrix> laminar::divDevBeff(volVectorField& U) const -{ - return - ( - - fvm::laplacian(nu(), U) - fvc::div(nu()*dev(fvc::grad(U)().T())) - ); -} - - -bool laminar::read() -{ - return LESModel::read(); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/laminar/laminar.H b/src/turbulenceModels/LES/incompressible/laminar/laminar.H deleted file mode 100644 index 648e0b82291..00000000000 --- a/src/turbulenceModels/LES/incompressible/laminar/laminar.H +++ /dev/null @@ -1,130 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::LESModels::laminar - -Description - LES model for laminar incompressible flow. - It simply returns laminar properties. - -SourceFiles - laminar.C - -\*---------------------------------------------------------------------------*/ - -#ifndef laminar_H -#define laminar_H - -#include "LESModel.H" -#include "volFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -/*---------------------------------------------------------------------------*\ - Class laminar Declaration -\*---------------------------------------------------------------------------*/ - -class laminar -: - public LESModel -{ - // Private member functions - - // Disallow default bitwise copy construct and assignment - laminar(const laminar&); - laminar& operator=(const laminar&); - - -public: - - //- Runtime type information - TypeName("laminar"); - - - // Constructors - - //- Constructor from components - laminar - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ); - - - // Destructor - - ~laminar() - {} - - - // Member Functions - - //- Return SGS kinetic energy - tmp<volScalarField> k() const; - - //- Return sub-grid disipation rate - tmp<volScalarField> epsilon() const; - - //- Return SGS viscosity - tmp<volScalarField> nuSgs() const; - - //- Return the effective viscosity - tmp<volScalarField> nuEff() const; - - //- Return the sub-grid stress tensor B. - virtual tmp<volSymmTensorField> B() const; - - //- Return the deviatoric part of the effective sub-grid - // turbulence stress tensor including the laminar stress - virtual tmp<volSymmTensorField> devBeff() const; - - //- Return the deviatoric part of the divergence of Beff - // i.e. the additional term in the filtered NSE. - tmp<fvVectorMatrix> divDevBeff(volVectorField& U) const; - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/locDynOneEqEddy/locDynOneEqEddy.C b/src/turbulenceModels/LES/incompressible/locDynOneEqEddy/locDynOneEqEddy.C deleted file mode 100644 index 35f99986add..00000000000 --- a/src/turbulenceModels/LES/incompressible/locDynOneEqEddy/locDynOneEqEddy.C +++ /dev/null @@ -1,172 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "locDynOneEqEddy.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(locDynOneEqEddy, 0); -addToRunTimeSelectionTable(LESModel, locDynOneEqEddy, dictionary); - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -volScalarField locDynOneEqEddy::ck -( - const volSymmTensorField& D, - const volScalarField& KK -) const -{ - volSymmTensorField LL = - simpleFilter_(dev(filter_(sqr(U())) - (sqr(filter_(U()))))); - - volSymmTensorField MM = simpleFilter_(-2.0*delta()*pow(KK, 0.5)*filter_(D)); - - volScalarField ck = - simpleFilter_(0.5*(LL && MM)) - /( - simpleFilter_(magSqr(MM)) - + dimensionedScalar("small", sqr(MM.dimensions()), VSMALL) - ); - - return 0.5*(mag(ck) + ck); -} - - -volScalarField locDynOneEqEddy::ce -( - const volSymmTensorField& D, - const volScalarField& KK -) const -{ - volScalarField ce = - simpleFilter_(nuEff()*(filter_(magSqr(D)) - magSqr(filter_(D)))) - /simpleFilter_(pow(KK, 1.5)/(2.0*delta())); - - return 0.5*(mag(ce) + ce); -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -locDynOneEqEddy::locDynOneEqEddy -( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport -) -: - LESModel(typeName, U, phi, transport), - GenEddyVisc(U, phi, transport), - - k_ - ( - IOobject - ( - "k", - runTime_.timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh_ - ), - - simpleFilter_(U.mesh()), - filterPtr_(LESfilter::New(U.mesh(), coeffDict())), - filter_(filterPtr_()) -{ - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -locDynOneEqEddy::~locDynOneEqEddy() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void locDynOneEqEddy::correct(const tmp<volTensorField>& gradU) -{ - LESModel::correct(gradU); - - volSymmTensorField D = symm(gradU); - - volScalarField KK = 0.5*(filter_(magSqr(U())) - magSqr(filter_(U()))); - KK.max(dimensionedScalar("small", KK.dimensions(), SMALL)); - - volScalarField P = 2.0*nuSgs_*magSqr(D); - - solve - ( - fvm::ddt(k_) - + fvm::div(phi(), k_) - - fvm::laplacian(DkEff(), k_) - == - P - - fvm::Sp(ce(D, KK)*sqrt(k_)/delta(), k_) - ); - - bound(k_, k0()); - - nuSgs_ = ck(D, KK)*sqrt(k_)*delta(); - nuSgs_.correctBoundaryConditions(); -} - - -bool locDynOneEqEddy::read() -{ - if (GenEddyVisc::read()) - { - filter_.read(coeffDict()); - - return true; - } - else - { - return false; - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/locDynOneEqEddy/locDynOneEqEddy.H b/src/turbulenceModels/LES/incompressible/locDynOneEqEddy/locDynOneEqEddy.H deleted file mode 100644 index 960b6f185e4..00000000000 --- a/src/turbulenceModels/LES/incompressible/locDynOneEqEddy/locDynOneEqEddy.H +++ /dev/null @@ -1,173 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::LESModels::locDynOneEqEddy - -Description - Localised Dynamic One Equation Eddy Viscosity Model for incompressible - flows - - Eddy viscosity SGS model using a modeled balance equation to simulate - the behaviour of k, hence - @verbatim - d/dt(k) + div(U*k) - div(nuSgs*grad(k)) - = - -B*L - ce*rho*k^3/2/delta - and - B = 2/3*k*I - 2*nuSgs*dev(D) - Beff = 2/3*k*I - 2*nuEff*dev(D) - where - nuSgs = cD*delta^2*||D|| - nuEff = nuSgs + nu - @endverbatim - - A dynamic procedure is here applied to evaluate ck and ce - @verbatim - ck=<L.M>/<M.M> - and - ce=<e*m>/<m*m> - where - K = 0.5*(F(U.U) - F(U).F(U)) - L = (F(U*U) - F(U)*F(U) - 0.33*K*I) - M = delta*(F(sqrt(k)*D) - 2*sqrt(K + filter(k))*F(D)) - m = pow(K + F(k), 3.0/2.0)/(2*delta) - F(pow(k, 3.0/2.0))/delta - e = 2*delta*ck*(F(sqrt(k)*(D && D)) - 2*sqrt(K + F(k))*(F(D) && F(D)))/ - @endverbatim - -SourceFiles - locDynOneEqEddy.C - -\*---------------------------------------------------------------------------*/ - -#ifndef locDynOneEqEddy_H -#define locDynOneEqEddy_H - -#include "GenEddyVisc.H" -#include "simpleFilter.H" -#include "LESfilter.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -/*---------------------------------------------------------------------------*\ - Class locDynOneEqEddy Declaration -\*---------------------------------------------------------------------------*/ - -class locDynOneEqEddy -: - public GenEddyVisc -{ - // Private data - - volScalarField k_; - - simpleFilter simpleFilter_; - autoPtr<LESfilter> filterPtr_; - LESfilter& filter_; - - - // Private Member Functions - - //- Calculate ck, ce by filtering the velocity field U. - volScalarField ck - ( - const volSymmTensorField&, - const volScalarField& - ) const; - - volScalarField ce - ( - const volSymmTensorField&, - const volScalarField& - ) const; - - // Disallow default bitwise copy construct and assignment - locDynOneEqEddy(const locDynOneEqEddy&); - locDynOneEqEddy& operator=(const locDynOneEqEddy&); - - -public: - - //- Runtime type information - TypeName("locDynOneEqEddy"); - - // Constructors - - //- from components - locDynOneEqEddy - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ); - - - // Destructor - - ~locDynOneEqEddy(); - - - // Member Functions - - //- Return SGS kinetic energy - tmp<volScalarField> k() const - { - return k_; - } - - //- Return the effective diffusivity for k - tmp<volScalarField> DkEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DkEff", nuSgs_ + nu()) - ); - } - - //- Correct Eddy-Viscosity and related properties - void correct(const tmp<volTensorField>& gradU); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/mixedSmagorinsky/mixedSmagorinsky.C b/src/turbulenceModels/LES/incompressible/mixedSmagorinsky/mixedSmagorinsky.C deleted file mode 100644 index c75c769ced6..00000000000 --- a/src/turbulenceModels/LES/incompressible/mixedSmagorinsky/mixedSmagorinsky.C +++ /dev/null @@ -1,145 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "mixedSmagorinsky.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(mixedSmagorinsky, 0); -addToRunTimeSelectionTable(LESModel, mixedSmagorinsky, dictionary); - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -mixedSmagorinsky::mixedSmagorinsky -( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport -) -: - LESModel(typeName, U, phi, transport), - scaleSimilarity(U, phi, transport), - Smagorinsky(U, phi, transport) -{ - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -tmp<volScalarField> mixedSmagorinsky::k() const -{ - return - ( - scaleSimilarity::k() - + Smagorinsky::k() - ); -} - - -tmp<volScalarField> mixedSmagorinsky::epsilon() const -{ - return - ( - scaleSimilarity::epsilon() - + Smagorinsky::epsilon() - ); -} - - -tmp<volSymmTensorField> mixedSmagorinsky::B() const -{ - return - ( - scaleSimilarity::B() - + Smagorinsky::B() - ); -} - - -tmp<volSymmTensorField> mixedSmagorinsky::devBeff() const -{ - return - ( - scaleSimilarity::devBeff() - + Smagorinsky::devBeff() - ); -} - - -tmp<fvVectorMatrix> mixedSmagorinsky::divDevBeff -( - volVectorField& U -) const -{ - return - ( - scaleSimilarity::divDevBeff(U) - + Smagorinsky::divDevBeff(U) - ); -} - - -void mixedSmagorinsky::correct(const tmp<volTensorField>& gradU) -{ - scaleSimilarity::correct(gradU); - Smagorinsky::correct(gradU); -} - - -bool mixedSmagorinsky::read() -{ - if (LESModel::read()) - { - scaleSimilarity::read(); - Smagorinsky::read(); - - return true; - } - else - { - return false; - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/mixedSmagorinsky/mixedSmagorinsky.H b/src/turbulenceModels/LES/incompressible/mixedSmagorinsky/mixedSmagorinsky.H deleted file mode 100644 index 7fa3f0c9ecc..00000000000 --- a/src/turbulenceModels/LES/incompressible/mixedSmagorinsky/mixedSmagorinsky.H +++ /dev/null @@ -1,156 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::LESModels::mixedSmagorinsky - -Description - The mixed Isochoric Smagorinsky Model for incompressible flows. - - The mixed model is a linear combination of an eddy viscosity model - (Smagorinsky) with a scale similarity model. Hence - @verbatim - B = (L + C) + R = (F(v*v) - F(v)*F(v)) + R - @endverbatim - - The algebraic eddy viscosity SGS model is founded on the assumption - that local equilibrium prevails, hence - @verbatim - R = 2/3*k*I - 2*nuEff*dev(D) - where - k = cI*delta^2*||D||^2 - nuEff = ck*sqrt(k)*delta + nu - @endverbatim - - The Leonard and cross contributions are incorporated - by adding, - @verbatim - + div(((filter(U*U) - filter(U)*filter(U)) - - 0.333*I*tr(filter(U*U) - filter(U)*filter(U)))) - + div((filter(U*epsilon) - filter(U)*filter(epsilon))) - @endverbatim - to the rhs. of the equations. - -SourceFiles - mixedSmagorinsky.C - -\*---------------------------------------------------------------------------*/ - -#ifndef mixedSmagorinsky_H -#define mixedSmagorinsky_H - -#include "scaleSimilarity.H" -#include "Smagorinsky.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -/*---------------------------------------------------------------------------*\ - Class mixedSmagorinsky Declaration -\*---------------------------------------------------------------------------*/ - -class mixedSmagorinsky -: - public scaleSimilarity, - public Smagorinsky -{ - // Private Member Functions - - // Disallow default bitwise copy construct and assignment - mixedSmagorinsky(const mixedSmagorinsky&); - mixedSmagorinsky& operator=(const mixedSmagorinsky&); - -public: - - //- Runtime type information - TypeName("mixedSmagorinsky"); - - - // Constructors - - //- Constructor from components - mixedSmagorinsky - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ); - - - // Destructor - - ~mixedSmagorinsky() - {} - - - // Member Functions - - //- Return the SGS turbulent kinetic energy. - tmp<volScalarField> k() const; - - //- Return the SGS turbulent disipation rate. - tmp<volScalarField> epsilon() const; - - //- Return the SGS viscosity. - tmp<volScalarField> nuSgs() const - { - return nuSgs_; - } - - //- Return the sub-grid stress tensor. - tmp<volSymmTensorField> B() const; - - //- Return the effective sub-grid turbulence stress tensor - // including the laminar stress - tmp<volSymmTensorField> devBeff() const; - - //- Implementation of div(B). This is necessary to override - // (and include) the div(B) terms from both the parent classes. - tmp<fvVectorMatrix> divDevBeff(volVectorField& U) const; - - //- Correct Eddy-Viscosity and related properties - void correct(const tmp<volTensorField>& gradU); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/oneEqEddy/oneEqEddy.C b/src/turbulenceModels/LES/incompressible/oneEqEddy/oneEqEddy.C deleted file mode 100644 index 6089a313d43..00000000000 --- a/src/turbulenceModels/LES/incompressible/oneEqEddy/oneEqEddy.C +++ /dev/null @@ -1,129 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "oneEqEddy.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(oneEqEddy, 0); -addToRunTimeSelectionTable(LESModel, oneEqEddy, dictionary); - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -oneEqEddy::oneEqEddy -( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport -) -: - LESModel(typeName, U, phi, transport), - GenEddyVisc(U, phi, transport), - - k_ - ( - IOobject - ( - "k", - runTime_.timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh_ - ), - - ck_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "ck", - coeffDict(), - 0.094 - ) - ) -{ - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void oneEqEddy::correct(const tmp<volTensorField>& gradU) -{ - GenEddyVisc::correct(gradU); - - volScalarField G = 2.0*nuSgs_*magSqr(symm(gradU)); - - solve - ( - fvm::ddt(k_) - + fvm::div(phi(), k_) - - fvm::laplacian(DkEff(), k_) - == - G - - fvm::Sp(ce_*sqrt(k_)/delta(), k_) - ); - - bound(k_, k0()); - - nuSgs_ = ck_*sqrt(k_)*delta(); - nuSgs_.correctBoundaryConditions(); -} - - -bool oneEqEddy::read() -{ - if (GenEddyVisc::read()) - { - ck_.readIfPresent(coeffDict()); - - return true; - } - else - { - return false; - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/oneEqEddy/oneEqEddy.H b/src/turbulenceModels/LES/incompressible/oneEqEddy/oneEqEddy.H deleted file mode 100644 index 632530b2056..00000000000 --- a/src/turbulenceModels/LES/incompressible/oneEqEddy/oneEqEddy.H +++ /dev/null @@ -1,148 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::LESModels::oneEqEddy - -Description - One Equation Eddy Viscosity Model for incompressible flows - - Eddy viscosity SGS model using a modeled balance equation to simulate the - behaviour of k, hence, - @verbatim - d/dt(k) + div(U*k) - div(nuEff*grad(k)) - = - -B*L - ce*k^3/2/delta - - and - - B = 2/3*k*I - 2*nuSgs*dev(D) - Beff = 2/3*k*I - 2*nuEff*dev(D) - - where - - D = symm(grad(U)); - nuSgs = ck*sqrt(k)*delta - nuEff = nuSgs + nu - @endverbatim - -SourceFiles - oneEqEddy.C - -\*---------------------------------------------------------------------------*/ - -#ifndef oneEqEddy_H -#define oneEqEddy_H - -#include "GenEddyVisc.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -/*---------------------------------------------------------------------------*\ - Class oneEqEddy Declaration -\*---------------------------------------------------------------------------*/ - -class oneEqEddy -: - public GenEddyVisc -{ - // Private data - - volScalarField k_; - - dimensionedScalar ck_; - - - // Private Member Functions - - // Disallow default bitwise copy construct and assignment - oneEqEddy(const oneEqEddy&); - oneEqEddy& operator=(const oneEqEddy&); - - -public: - - //- Runtime type information - TypeName("oneEqEddy"); - - // Constructors - - //- Constructor from components - oneEqEddy - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ); - - - // Destructor - - ~oneEqEddy() - {} - - - // Member Functions - - //- Return SGS kinetic energy - tmp<volScalarField> k() const - { - return k_; - } - - //- Return the effective diffusivity for k - tmp<volScalarField> DkEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DkEff", nuSgs_ + nu()) - ); - } - - //- Correct Eddy-Viscosity and related properties - void correct(const tmp<volTensorField>& gradU); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/scaleSimilarity/scaleSimilarity.C b/src/turbulenceModels/LES/incompressible/scaleSimilarity/scaleSimilarity.C deleted file mode 100644 index 5a247e12df5..00000000000 --- a/src/turbulenceModels/LES/incompressible/scaleSimilarity/scaleSimilarity.C +++ /dev/null @@ -1,124 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "scaleSimilarity.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(scaleSimilarity, 0); - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -scaleSimilarity::scaleSimilarity -( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport -) -: - LESModel(typeName, U, phi, transport), - filterPtr_(LESfilter::New(U.mesh(), coeffDict())), - filter_(filterPtr_()) -{ - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -scaleSimilarity::~scaleSimilarity() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -tmp<volScalarField> scaleSimilarity::k() const -{ - return(0.5*(filter_(magSqr(U())) - magSqr(filter_(U())))); -} - - -tmp<volScalarField> scaleSimilarity::epsilon() const -{ - volSymmTensorField D = symm(fvc::grad(U())); - - return((filter_(sqr(U())) - sqr(filter_(U()))) && D); -} - - -tmp<volSymmTensorField> scaleSimilarity::B() const -{ - return(filter_(sqr(U())) - sqr(filter_(U()))); -} - - -tmp<volSymmTensorField> scaleSimilarity::devBeff() const -{ - return dev(B()); -} - - -tmp<fvVectorMatrix> scaleSimilarity::divDevBeff(volVectorField& U) const -{ - return fvm::Su(fvc::div(devBeff()), U); -} - - -void scaleSimilarity::correct(const tmp<volTensorField>&) -{} - - -bool scaleSimilarity::read() -{ - if (LESModel::read()) - { - filter_.read(coeffDict()); - - return true; - } - else - { - return false; - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/scaleSimilarity/scaleSimilarity.H b/src/turbulenceModels/LES/incompressible/scaleSimilarity/scaleSimilarity.H deleted file mode 100644 index 079d38a4a2f..00000000000 --- a/src/turbulenceModels/LES/incompressible/scaleSimilarity/scaleSimilarity.H +++ /dev/null @@ -1,134 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::LESModels::scaleSimilarity - -Description - General base class for all scale similarity models - for incompressible flows. - - Since such models do not work without additional eddy viscosity terms, - this class must be combined with an eddy viscosity model of some form. - -SourceFiles - scaleSimilarity.C - -\*---------------------------------------------------------------------------*/ - -#ifndef scaleSimilarity_H -#define scaleSimilarity_H - -#include "LESModel.H" -#include "LESfilter.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -/*---------------------------------------------------------------------------*\ - Class scaleSimilarity Declaration -\*---------------------------------------------------------------------------*/ - -class scaleSimilarity -: - virtual public LESModel -{ - // Private data - - autoPtr<LESfilter> filterPtr_; - LESfilter& filter_; - - - // Private Member Functions - - // Disallow default bitwise copy construct and assignment - scaleSimilarity(const scaleSimilarity&); - scaleSimilarity& operator=(const scaleSimilarity&); - - -public: - - //- Runtime type information - TypeName("scaleSimilarity"); - - // Constructors - - //- Construct from components - scaleSimilarity - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ); - - - // Destructor - - ~scaleSimilarity(); - - - // Member Functions - - //- Return the SGS turbulent kinetic energy. - tmp<volScalarField> k() const; - - //- Return the SGS turbulent dissipation. - tmp<volScalarField> epsilon() const; - - //- Return the sub-grid stress tensor. - tmp<volSymmTensorField> B() const; - - //- Return the deviatoric part of the effective sub-grid - // turbulence stress tensor including the laminar stress - tmp<volSymmTensorField> devBeff() const; - - //- Return the deviatoric part of the divergence of Beff - // i.e. the additional term in the filtered NSE. - tmp<fvVectorMatrix> divDevBeff(volVectorField& U) const; - - //- Correct Eddy-Viscosity and related properties - void correct(const tmp<volTensorField>&); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/spectEddyVisc/spectEddyVisc.C b/src/turbulenceModels/LES/incompressible/spectEddyVisc/spectEddyVisc.C deleted file mode 100644 index cda43a2ccf4..00000000000 --- a/src/turbulenceModels/LES/incompressible/spectEddyVisc/spectEddyVisc.C +++ /dev/null @@ -1,167 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "spectEddyVisc.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(spectEddyVisc, 0); -addToRunTimeSelectionTable(LESModel, spectEddyVisc, dictionary); - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// from components -spectEddyVisc::spectEddyVisc -( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport -) -: - LESModel(typeName, U, phi, transport), - GenEddyVisc(U, phi, transport), - - - cB_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "cB", - coeffDict(), - 8.22 - ) - ), - cK1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "cK1", - coeffDict(), - 0.83 - ) - ), - cK2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "cK2", - coeffDict(), - 1.03 - ) - ), - cK3_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "cK3", - coeffDict(), - 4.75 - ) - ), - cK4_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "cK4", - coeffDict(), - 2.55 - ) - ) -{ - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -tmp<volScalarField> spectEddyVisc::k() const -{ - volScalarField Eps = 2*nuEff()*magSqr(symm(fvc::grad(U()))); - - return - cK1_*pow(delta(), 2.0/3.0)*pow(Eps, 2.0/3.0) - *exp(-cK2_*pow(delta(), -4.0/3.0)*nu()/pow(Eps, 1.0/3.0)) - - cK3_*pow(Eps*nu(), 1.0/2.0) - *erfc(cK4_*pow(delta(), -2.0/3.0)*pow(Eps, -1.0/6.0)); -} - - -void spectEddyVisc::correct(const tmp<volTensorField>& gradU) -{ - GenEddyVisc::correct(gradU); - - volScalarField Re = sqr(delta())*mag(symm(gradU))/nu(); - - for (label i=0; i<5; i++) - { - nuSgs_ = - nu() - /( - scalar(1) - - exp(-cB_*pow(nu()/(nuSgs_ + nu()), 1.0/3.0)*pow(Re, -2.0/3.0)) - ); - } - - nuSgs_.correctBoundaryConditions(); -} - - -bool spectEddyVisc::read() -{ - if (GenEddyVisc::read()) - { - cB_.readIfPresent(coeffDict()); - cK1_.readIfPresent(coeffDict()); - cK2_.readIfPresent(coeffDict()); - cK3_.readIfPresent(coeffDict()); - cK4_.readIfPresent(coeffDict()); - - return true; - } - else - { - return false; - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/spectEddyVisc/spectEddyVisc.H b/src/turbulenceModels/LES/incompressible/spectEddyVisc/spectEddyVisc.H deleted file mode 100644 index dd6b4e68b02..00000000000 --- a/src/turbulenceModels/LES/incompressible/spectEddyVisc/spectEddyVisc.H +++ /dev/null @@ -1,138 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::LESModels::spectEddyVisc - -Description - The Isochoric spectral Eddy Viscosity Model for incompressible flows. - - Algebraic eddy viscosity SGS model founded on the assumption that - local equilibrium prevail and that viscous effects may be of importance. - - Thus, - @verbatim - B = 2/3*k*I - 2*nuSgs*dev(D) - Beff = 2/3*k*I - 2*nuEff*dev(D) - - where - - k = cK1*delta^(2/3)*eps^(2/3)*exp(-cK2*delta^(4/3)*nu*eps^(-1/3)) - - ck3*sqrt(eps*nu)*erfc(ck4*delta^(-2/3)*sqrt(nu)*eps^(-1/6))) - - nuEff = nu/(1 - exp(-cB*pow((nu/nuEff), 1.0/3.0)*pow(Re, -2.0/3.0))) - nuSgs = nuEff - nu - - Re = delta^2*mag(D)/nu - @endverbatim - -SourceFiles - spectEddyVisc.C - -\*---------------------------------------------------------------------------*/ - -#ifndef spectEddyVisc_H -#define spectEddyVisc_H - -#include "GenEddyVisc.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -/*---------------------------------------------------------------------------*\ - Class spectEddyVisc Declaration -\*---------------------------------------------------------------------------*/ - -class spectEddyVisc -: - public GenEddyVisc -{ - // Private data - - dimensionedScalar cB_; - dimensionedScalar cK1_; - dimensionedScalar cK2_; - dimensionedScalar cK3_; - dimensionedScalar cK4_; - - - // Private Member Functions - - // Disallow default bitwise copy construct and assignment - spectEddyVisc(const spectEddyVisc&); - spectEddyVisc& operator=(const spectEddyVisc&); - - -public: - - //- Runtime type information - TypeName("spectEddyVisc"); - - // Constructors - - // from components - spectEddyVisc - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ); - - - // Destructor - - ~spectEddyVisc() - {} - - - // Member Functions - - //- Return SGS kinetic energy - tmp<volScalarField> k() const; - - //- Correct Eddy-Viscosity and related properties - void correct(const tmp<volTensorField>&); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/vanDriestDelta/vanDriestDelta.C b/src/turbulenceModels/LES/incompressible/vanDriestDelta/vanDriestDelta.C deleted file mode 100644 index da55d3518bc..00000000000 --- a/src/turbulenceModels/LES/incompressible/vanDriestDelta/vanDriestDelta.C +++ /dev/null @@ -1,151 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "vanDriestDelta.H" -#include "LESModel.H" -#include "wallFvPatch.H" -#include "wallDistData.H" -#include "wallPointYPlus.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(vanDriestDelta, 0); -addToRunTimeSelectionTable(LESdelta, vanDriestDelta, dictionary); - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -void vanDriestDelta::calcDelta() -{ - const LESModel& sgsModel - = mesh_.lookupObject<LESModel>("LESProperties"); - - const volVectorField& U = sgsModel.U(); - const volScalarField& nu = sgsModel.nu(); - tmp<volScalarField> nuSgs = sgsModel.nuSgs(); - - volScalarField ystar - ( - IOobject - ( - "ystar", - mesh_.time().constant(), - mesh_ - ), - mesh_, - dimensionedScalar("ystar", dimLength, GREAT) - ); - - const fvPatchList& patches = mesh_.boundary(); - forAll(patches, patchi) - { - if (isType<wallFvPatch>(patches[patchi])) - { - const fvPatchVectorField& Uw = U.boundaryField()[patchi]; - const scalarField& nuw = nu.boundaryField()[patchi]; - const scalarField& nuSgsw = nuSgs().boundaryField()[patchi]; - - ystar.boundaryField()[patchi] = - nuw/sqrt((nuw + nuSgsw)*mag(Uw.snGrad()) + VSMALL); - } - } - - wallPointYPlus::yPlusCutOff = 500; - wallDistData<wallPointYPlus> y(mesh_, ystar); - - delta_ = min - ( - static_cast<const volScalarField&>(geometricDelta_()), - (kappa_/Cdelta_)*((scalar(1) + SMALL) - exp(-y/ystar/Aplus_))*y - ); -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -vanDriestDelta::vanDriestDelta -( - const word& name, - const fvMesh& mesh, - const dictionary& dd -) -: - LESdelta(name, mesh), - geometricDelta_ - ( - LESdelta::New("geometricDelta", mesh, dd.subDict(type() + "Coeffs")) - ), - kappa_(dd.lookupOrDefault<scalar>("kappa", 0.4187)), - Aplus_ - ( - dd.subDict(type() + "Coeffs").lookupOrDefault<scalar>("Aplus", 26.0) - ), - Cdelta_ - ( - dd.subDict(type() + "Coeffs").lookupOrDefault<scalar>("Cdelta", 0.158) - ) -{ - delta_ = geometricDelta_(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void vanDriestDelta::read(const dictionary& d) -{ - const dictionary& dd(d.subDict(type() + "Coeffs")); - - geometricDelta_().read(dd); - d.readIfPresent<scalar>("kappa", kappa_); - dd.readIfPresent<scalar>("Aplus", Aplus_); - dd.readIfPresent<scalar>("Cdelta", Cdelta_); - calcDelta(); -} - - -void vanDriestDelta::correct() -{ - geometricDelta_().correct(); - calcDelta(); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/LES/incompressible/vanDriestDelta/vanDriestDelta.H b/src/turbulenceModels/LES/incompressible/vanDriestDelta/vanDriestDelta.H deleted file mode 100644 index 6903765f6b3..00000000000 --- a/src/turbulenceModels/LES/incompressible/vanDriestDelta/vanDriestDelta.H +++ /dev/null @@ -1,114 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::LESModels::vanDriestDelta - -Description - Simple cube-root of cell volume delta used in incompressible LES models. - -SourceFiles - vanDriestDelta.C - -\*---------------------------------------------------------------------------*/ - -#ifndef vanDriestDelta_H -#define vanDriestDelta_H - -#include "LESdelta.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace LESModels -{ - -/*---------------------------------------------------------------------------*\ - Class vanDriestDelta Declaration -\*---------------------------------------------------------------------------*/ - -class vanDriestDelta -: - public LESdelta -{ - // Private data - - autoPtr<LESdelta> geometricDelta_; - scalar kappa_; - scalar Aplus_; - scalar Cdelta_; - - - // Private Member Functions - - //- Disallow default bitwise copy construct and assignment - vanDriestDelta(const vanDriestDelta&); - void operator=(const vanDriestDelta&); - - // Calculate the delta values - void calcDelta(); - - -public: - - //- Runtime type information - TypeName("vanDriest"); - - - // Constructors - - //- from name, mesh and IOdictionary - vanDriestDelta(const word& name, const fvMesh& mesh, const dictionary&); - - - // Destructor - - ~vanDriestDelta() - {} - - - // Member Functions - - //- Read the LESdelta dictionary - void read(const dictionary&); - - // Correct values - void correct(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace LESModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/Allwmake b/src/turbulenceModels/RAS/Allwmake deleted file mode 100755 index 5761ba6ffd7..00000000000 --- a/src/turbulenceModels/RAS/Allwmake +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh -cd ${0%/*} || exit 1 # run from this directory -set -x - -wmake libso incompressible -wmake libso compressible - -# ----------------------------------------------------------------- end-of-file diff --git a/src/turbulenceModels/RAS/compressible/LRR/LRR.C b/src/turbulenceModels/RAS/compressible/LRR/LRR.C deleted file mode 100644 index a22d4952497..00000000000 --- a/src/turbulenceModels/RAS/compressible/LRR/LRR.C +++ /dev/null @@ -1,476 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "LRR.H" -#include "addToRunTimeSelectionTable.H" -#include "wallFvPatch.H" - -#include "backwardsCompatibilityWallFunctions.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(LRR, 0); -addToRunTimeSelectionTable(RASModel, LRR, dictionary); - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// from components -LRR::LRR -( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - basicThermo& thermophysicalModel -) -: - RASModel(typeName, rho, U, phi, thermophysicalModel), - - Cmu_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cmu", - coeffDict_, - 0.09 - ) - ), - Clrr1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Clrr1", - coeffDict_, - 1.8 - ) - ), - Clrr2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Clrr2", - coeffDict_, - 0.6 - ) - ), - C1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C1", - coeffDict_, - 1.44 - ) - ), - C2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C2", - coeffDict_, - 1.92 - ) - ), - Cs_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cs", - coeffDict_, - 0.25 - ) - ), - Ceps_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Ceps", - coeffDict_, - 0.15 - ) - ), - couplingFactor_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "couplingFactor", - coeffDict_, - 0.0 - ) - ), - alphaR_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphaR", - coeffDict_, - 1.22 - ) - ), - alphaEps_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphaEps", - coeffDict_, - 0.76923 - ) - ), - alphah_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphah", - coeffDict_, - 1.0 - ) - ), - - R_ - ( - IOobject - ( - "R", - runTime_.timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - autoCreateR("R", mesh_) - ), - k_ - ( - IOobject - ( - "k", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateK("k", mesh_) - ), - epsilon_ - ( - IOobject - ( - "epsilon", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateEpsilon("epsilon", mesh_) - ), - mut_ - ( - IOobject - ( - "mut", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateMut("mut", mesh_) - ), - alphat_ - ( - IOobject - ( - "alphat", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateAlphat("alphat", mesh_) - ) -{ - if (couplingFactor_.value() < 0.0 || couplingFactor_.value() > 1.0) - { - FatalErrorIn - ( - "LRR::LRR" - "( const volScalarField&, const volVectorField&" - ", const surfaceScalarField&, incompressibleTransportModel&)" - ) << "couplingFactor = " << couplingFactor_ - << " is not in range 0 - 1" << nl - << exit(FatalError); - } - - mut_ == Cmu_*rho_*sqr(k_)/(epsilon_ + epsilonSmall_); - mut_.correctBoundaryConditions(); - - alphat_ == mut_/Prt_; - alphat_.correctBoundaryConditions(); - - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -tmp<volSymmTensorField> LRR::devRhoReff() const -{ - return tmp<volSymmTensorField> - ( - new volSymmTensorField - ( - IOobject - ( - "devRhoReff", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - rho_*R_ - mu()*dev(twoSymm(fvc::grad(U_))) - ) - ); -} - - -tmp<fvVectorMatrix> LRR::divDevRhoReff(volVectorField& U) const -{ - if (couplingFactor_.value() > 0.0) - { - return - ( - fvc::div(rho_*R_ + couplingFactor_*mut_*fvc::grad(U)) - + fvc::laplacian((1.0 - couplingFactor_)*mut_, U) - - fvm::laplacian(muEff(), U) - - fvc::div(mu()*dev2(fvc::grad(U)().T())) - ); - } - else - { - return - ( - fvc::div(rho_*R_) - + fvc::laplacian(mut_, U) - - fvm::laplacian(muEff(), U) - - fvc::div(mu()*dev2(fvc::grad(U)().T())) - ); - } -} - - -bool LRR::read() -{ - if (RASModel::read()) - { - Cmu_.readIfPresent(coeffDict_); - Clrr1_.readIfPresent(coeffDict_); - Clrr2_.readIfPresent(coeffDict_); - C1_.readIfPresent(coeffDict_); - C2_.readIfPresent(coeffDict_); - Cs_.readIfPresent(coeffDict_); - Ceps_.readIfPresent(coeffDict_); - alphaR_.readIfPresent(coeffDict_); - alphaEps_.readIfPresent(coeffDict_); - alphah_.readIfPresent(coeffDict_); - couplingFactor_.readIfPresent(coeffDict_); - - if (couplingFactor_.value() < 0.0 || couplingFactor_.value() > 1.0) - { - FatalErrorIn("LRR::read()") - << "couplingFactor = " << couplingFactor_ - << " is not in range 0 - 1" << nl - << exit(FatalError); - } - - return true; - } - else - { - return false; - } -} - - -void LRR::correct() -{ - if (!turbulence_) - { - // Re-calculate viscosity - mut_ == rho_*Cmu_*sqr(k_)/(epsilon_ + epsilonSmall_); - mut_.correctBoundaryConditions(); - - // Re-calculate thermal diffusivity - alphat_ = mut_/Prt_; - alphat_.correctBoundaryConditions(); - - return; - } - - RASModel::correct(); - - volSymmTensorField P = -twoSymm(R_ & fvc::grad(U_)); - volScalarField G("G", 0.5*tr(P)); - - // Update espsilon and G at the wall - epsilon_.boundaryField().updateCoeffs(); - - // Dissipation equation - tmp<fvScalarMatrix> epsEqn - ( - fvm::ddt(rho_, epsilon_) - + fvm::div(phi_, epsilon_) - //- fvm::laplacian(Ceps*rho_*(k_/epsilon_)*R_, epsilon_) - - fvm::laplacian(DepsilonEff(), epsilon_) - == - C1_*rho_*G*epsilon_/k_ - - fvm::Sp(C2_*rho_*epsilon_/k_, epsilon_) - ); - - epsEqn().relax(); - - epsEqn().boundaryManipulate(epsilon_.boundaryField()); - - solve(epsEqn); - bound(epsilon_, epsilon0_); - - - // Reynolds stress equation - - const fvPatchList& patches = mesh_.boundary(); - - forAll(patches, patchi) - { - const fvPatch& curPatch = patches[patchi]; - - if (typeid(curPatch) == typeid(wallFvPatch)) - { - forAll(curPatch, facei) - { - label faceCelli = curPatch.faceCells()[facei]; - P[faceCelli] - *= min(G[faceCelli]/(0.5*tr(P[faceCelli]) + SMALL), 100.0); - } - } - } - - - tmp<fvSymmTensorMatrix> REqn - ( - fvm::ddt(rho_, R_) - + fvm::div(phi_, R_) - //- fvm::laplacian(Cs*rho_*(k_/epsilon_)*R_, R_) - - fvm::laplacian(DREff(), R_) - + fvm::Sp(Clrr1_*rho_*epsilon_/k_, R_) - == - rho_*P - - (2.0/3.0*(1 - Clrr1_)*I)*rho_*epsilon_ - - Clrr2_*rho_*dev(P) - ); - - REqn().relax(); - solve(REqn); - - R_.max - ( - dimensionedSymmTensor - ( - "zero", - R_.dimensions(), - symmTensor - ( - k0_.value(), -GREAT, -GREAT, - k0_.value(), -GREAT, - k0_.value() - ) - ) - ); - - k_ = 0.5*tr(R_); - bound(k_, k0_); - - - // Re-calculate viscosity - mut_ == rho_*Cmu_*sqr(k_)/epsilon_; - mut_.correctBoundaryConditions(); - - // Re-calculate thermal diffusivity - alphat_ = mut_/Prt_; - alphat_.correctBoundaryConditions(); - - - // Correct wall shear stresses - - forAll(patches, patchi) - { - const fvPatch& curPatch = patches[patchi]; - - if (typeid(curPatch) == typeid(wallFvPatch)) - { - symmTensorField& Rw = R_.boundaryField()[patchi]; - - const scalarField& rhow = rho_.boundaryField()[patchi]; - const scalarField& mutw = mut_.boundaryField()[patchi]; - - vectorField snGradU = U_.boundaryField()[patchi].snGrad(); - - const vectorField& faceAreas - = mesh_.Sf().boundaryField()[patchi]; - - const scalarField& magFaceAreas - = mesh_.magSf().boundaryField()[patchi]; - - forAll(curPatch, facei) - { - // Calculate near-wall velocity gradient - tensor gradUw - = (faceAreas[facei]/magFaceAreas[facei])*snGradU[facei]; - - // Calculate near-wall shear-stress tensor - tensor tauw = -(mutw[facei]/rhow[facei])*2*dev(symm(gradUw)); - - // Reset the shear components of the stress tensor - Rw[facei].xy() = tauw.xy(); - Rw[facei].xz() = tauw.xz(); - Rw[facei].yz() = tauw.yz(); - } - } - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace compressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/LRR/LRR.H b/src/turbulenceModels/RAS/compressible/LRR/LRR.H deleted file mode 100644 index 0dc2ed2ad85..00000000000 --- a/src/turbulenceModels/RAS/compressible/LRR/LRR.H +++ /dev/null @@ -1,202 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::compressible::RASModels::LRR - -Description - Launder, Reece and Rodi Reynolds-stress turbulence model for - compressible flows. - - The default model coefficients correspond to the following: - @verbatim - LRRCoeffs - { - Cmu 0.09; - Clrr1 1.8; - Clrr2 0.6; - C1 1.44; - C2 1.92; - Cs 0.25; - Ceps 0.15; - alphah 1.0; // only for compressible - alphaEps 0.76923; - alphaR 1.22; // only for compressible - couplingFactor 0.0; // only for incompressible - } - @endverbatim - -SourceFiles - LRR.C - LRRcorrect.C - -\*---------------------------------------------------------------------------*/ - -#ifndef compressibleLRR_H -#define compressibleLRR_H - -#include "RASModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class LRR Declaration -\*---------------------------------------------------------------------------*/ - -class LRR -: - public RASModel -{ - // Private data - - dimensionedScalar Cmu_; - - dimensionedScalar Clrr1_; - dimensionedScalar Clrr2_; - - dimensionedScalar C1_; - dimensionedScalar C2_; - dimensionedScalar Cs_; - dimensionedScalar Ceps_; - - dimensionedScalar couplingFactor_; - - dimensionedScalar alphaR_; - dimensionedScalar alphaEps_; - dimensionedScalar alphah_; - - volSymmTensorField R_; - volScalarField k_; - volScalarField epsilon_; - volScalarField mut_; - volScalarField alphat_; - - -public: - - //- Runtime type information - TypeName("LRR"); - - // Constructors - - //- from components - LRR - ( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - basicThermo& thermophysicalModel - ); - - - // Destructor - - ~LRR(){} - - - // Member Functions - - //- Return the turbulence viscosity - tmp<volScalarField> mut() const - { - return mut_; - } - - //- Return the effective diffusivity for R - tmp<volScalarField> DREff() const - { - return tmp<volScalarField> - ( - new volScalarField("DREff", alphaR_*mut_ + mu()) - ); - } - - //- Return the effective diffusivity for epsilon - tmp<volScalarField> DepsilonEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DepsilonEff", alphaEps_*mut_ + mu()) - ); - } - - //- Return the effective turbulent thermal diffusivity - tmp<volScalarField> alphaEff() const - { - return tmp<volScalarField> - ( - new volScalarField("alphaEff", alphah_*alphat_ + alpha()) - ); - } - - //- Return the turbulence kinetic energy - tmp<volScalarField> k() const - { - return k_; - } - - //- Return the turbulence kinetic energy dissipation rate - tmp<volScalarField> epsilon() const - { - return epsilon_; - } - - //- Return the Reynolds stress tensor - tmp<volSymmTensorField> R() const - { - return R_; - } - - //- Return the effective stress tensor including the laminar stress - tmp<volSymmTensorField> devRhoReff() const; - - //- Return the source term for the momentum equation - tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const; - - //- Solve the turbulence equations and correct the turbulence viscosity - void correct(); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace compressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/LaunderGibsonRSTM/LaunderGibsonRSTM.C b/src/turbulenceModels/RAS/compressible/LaunderGibsonRSTM/LaunderGibsonRSTM.C deleted file mode 100644 index 0181605fb19..00000000000 --- a/src/turbulenceModels/RAS/compressible/LaunderGibsonRSTM/LaunderGibsonRSTM.C +++ /dev/null @@ -1,514 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "LaunderGibsonRSTM.H" -#include "addToRunTimeSelectionTable.H" -#include "wallFvPatch.H" -#include "wallDist.H" -#include "wallDistReflection.H" - -#include "backwardsCompatibilityWallFunctions.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(LaunderGibsonRSTM, 0); -addToRunTimeSelectionTable(RASModel, LaunderGibsonRSTM, dictionary); - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// from components -LaunderGibsonRSTM::LaunderGibsonRSTM -( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - basicThermo& thermophysicalModel -) -: - RASModel(typeName, rho, U, phi, thermophysicalModel), - - Cmu_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cmu", - coeffDict_, - 0.09 - ) - ), - Clg1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Clg1", - coeffDict_, - 1.8 - ) - ), - Clg2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Clg2", - coeffDict_, - 0.6 - ) - ), - C1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C1", - coeffDict_, - 1.44 - ) - ), - C2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C2", - coeffDict_, - 1.92 - ) - ), - Cs_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cs", - coeffDict_, - 0.25 - ) - ), - Ceps_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Ceps", - coeffDict_, - 0.15 - ) - ), - C1Ref_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C1Ref", - coeffDict_, - 0.5 - ) - ), - C2Ref_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C2Ref", - coeffDict_, - 0.3 - ) - ), - couplingFactor_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "couplingFactor", - coeffDict_, - 0.0 - ) - ), - alphaR_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphaR", - coeffDict_, - 1.22 - ) - ), - alphaEps_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphaEps", - coeffDict_, - 0.76923 - ) - ), - alphah_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphah", - coeffDict_, - 1.0 - ) - ), - - y_(mesh_), - - R_ - ( - IOobject - ( - "R", - runTime_.timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - autoCreateR("R", mesh_) - ), - k_ - ( - IOobject - ( - "k", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateK("k", mesh_) - ), - epsilon_ - ( - IOobject - ( - "epsilon", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateEpsilon("epsilon", mesh_) - ), - mut_ - ( - IOobject - ( - "mut", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateMut("mut", mesh_) - ), - alphat_ - ( - IOobject - ( - "alphat", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateAlphat("alphat", mesh_) - ) -{ - if (couplingFactor_.value() < 0.0 || couplingFactor_.value() > 1.0) - { - FatalErrorIn - ( - "LaunderGibsonRSTM::LaunderGibsonRSTM" - "(const volScalarField&, const volVectorField&" - ", const surfaceScalarField&, basicThermo&)" - ) << "couplingFactor = " << couplingFactor_ - << " is not in range 0 - 1" << nl - << exit(FatalError); - } - - mut_ == Cmu_*rho_*sqr(k_)/(epsilon_ + epsilonSmall_); - mut_.correctBoundaryConditions(); - - alphat_ == mut_/Prt_; - alphat_.correctBoundaryConditions(); - - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -tmp<volSymmTensorField> LaunderGibsonRSTM::devRhoReff() const -{ - return tmp<volSymmTensorField> - ( - new volSymmTensorField - ( - IOobject - ( - "devRhoReff", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - rho_*R_ - mu()*dev(twoSymm(fvc::grad(U_))) - ) - ); -} - - -tmp<fvVectorMatrix> LaunderGibsonRSTM::divDevRhoReff(volVectorField& U) const -{ - if (couplingFactor_.value() > 0.0) - { - return - ( - fvc::div(rho_*R_ + couplingFactor_*mut_*fvc::grad(U)) - + fvc::laplacian((1.0 - couplingFactor_)*mut_, U) - - fvm::laplacian(muEff(), U) - - fvc::div(mu()*dev2(fvc::grad(U)().T())) - ); - } - else - { - return - ( - fvc::div(rho_*R_) - + fvc::laplacian(mut_, U) - - fvm::laplacian(muEff(), U) - - fvc::div(mu()*dev2(fvc::grad(U)().T())) - ); - } -} - - -bool LaunderGibsonRSTM::read() -{ - if (RASModel::read()) - { - Cmu_.readIfPresent(coeffDict_); - Clg1_.readIfPresent(coeffDict_); - Clg2_.readIfPresent(coeffDict_); - C1_.readIfPresent(coeffDict_); - C2_.readIfPresent(coeffDict_); - Cs_.readIfPresent(coeffDict_); - Ceps_.readIfPresent(coeffDict_); - C1Ref_.readIfPresent(coeffDict_); - C2Ref_.readIfPresent(coeffDict_); - alphaR_.readIfPresent(coeffDict_); - alphaEps_.readIfPresent(coeffDict_); - alphah_.readIfPresent(coeffDict_); - - couplingFactor_.readIfPresent(coeffDict_); - - if (couplingFactor_.value() < 0.0 || couplingFactor_.value() > 1.0) - { - FatalErrorIn("LaunderGibsonRSTM::read()") - << "couplingFactor = " << couplingFactor_ - << " is not in range 0 - 1" << nl - << exit(FatalError); - } - - return true; - } - else - { - return false; - } -} - - -void LaunderGibsonRSTM::correct() -{ - if (!turbulence_) - { - // Re-calculate viscosity - mut_ == rho_*Cmu_*sqr(k_)/(epsilon_ + epsilonSmall_); - mut_.correctBoundaryConditions(); - - // Re-calculate thermal diffusivity - alphat_ = mut_/Prt_; - alphat_.correctBoundaryConditions(); - - return; - } - - RASModel::correct(); - - if (mesh_.changing()) - { - y_.correct(); - } - - volSymmTensorField P = -twoSymm(R_ & fvc::grad(U_)); - volScalarField G("G", 0.5*tr(P)); - - // Update espsilon and G at the wall - epsilon_.boundaryField().updateCoeffs(); - - // Dissipation equation - tmp<fvScalarMatrix> epsEqn - ( - fvm::ddt(rho_, epsilon_) - + fvm::div(phi_, epsilon_) - //- fvm::laplacian(Ceps*rho_*(k_/epsilon_)*R_, epsilon_) - - fvm::laplacian(DepsilonEff(), epsilon_) - == - C1_*rho_*G*epsilon_/k_ - - fvm::Sp(C2_*rho_*epsilon_/k_, epsilon_) - ); - - epsEqn().relax(); - - epsEqn().boundaryManipulate(epsilon_.boundaryField()); - - solve(epsEqn); - bound(epsilon_, epsilon0_); - - - // Reynolds stress equation - - const fvPatchList& patches = mesh_.boundary(); - - forAll(patches, patchi) - { - const fvPatch& curPatch = patches[patchi]; - - if (typeid(curPatch) == typeid(wallFvPatch)) - { - forAll(curPatch, facei) - { - label faceCelli = curPatch.faceCells()[facei]; - P[faceCelli] *= - min(G[faceCelli]/(0.5*tr(P[faceCelli]) + SMALL), 100.0); - } - } - } - - volSymmTensorField reflect = C1Ref_*epsilon_/k_*R_ - C2Ref_*Clg2_*dev(P); - - tmp<fvSymmTensorMatrix> REqn - ( - fvm::ddt(rho_, R_) - + fvm::div(phi_, R_) - //- fvm::laplacian(Cs*rho_*(k_/epsilon_)*R_, R_) - - fvm::laplacian(DREff(), R_) - + fvm::Sp(Clg1_*rho_*epsilon_/k_, R_) - == - rho_*P - + (2.0/3.0*(Clg1_ - 1)*I)*rho_*epsilon_ - - Clg2_*rho_*dev(P) - - // wall reflection terms - + symm - ( - I*((y_.n() & reflect) & y_.n()) - - 1.5*(y_.n()*(reflect & y_.n()) - + (y_.n() & reflect)*y_.n()) - )*pow(Cmu_, 0.75)*rho_*pow(k_, 1.5)/(kappa_*y_*epsilon_) - ); - - REqn().relax(); - solve(REqn); - - R_.max - ( - dimensionedSymmTensor - ( - "zero", - R_.dimensions(), - symmTensor - ( - k0_.value(), -GREAT, -GREAT, - k0_.value(), -GREAT, - k0_.value() - ) - ) - ); - - k_ == 0.5*tr(R_); - bound(k_, k0_); - - - // Re-calculate turbulent viscosity - mut_ == Cmu_*rho_*sqr(k_)/epsilon_; - mut_.correctBoundaryConditions(); - - // Re-calculate thermal diffusivity - alphat_ = mut_/Prt_; - alphat_.correctBoundaryConditions(); - - // Correct wall shear stresses - - forAll(patches, patchi) - { - const fvPatch& curPatch = patches[patchi]; - - if (typeid(curPatch) == typeid(wallFvPatch)) - { - symmTensorField& Rw = R_.boundaryField()[patchi]; - - const scalarField& mutw = mut_.boundaryField()[patchi]; - const scalarField& rhow = rho_.boundaryField()[patchi]; - - vectorField snGradU = U_.boundaryField()[patchi].snGrad(); - - const vectorField& faceAreas - = mesh_.Sf().boundaryField()[patchi]; - - const scalarField& magFaceAreas - = mesh_.magSf().boundaryField()[patchi]; - - forAll(curPatch, facei) - { - // Calculate near-wall velocity gradient - tensor gradUw - = (faceAreas[facei]/magFaceAreas[facei])*snGradU[facei]; - - // Calculate near-wall shear-stress tensor - tensor tauw = -(mutw[facei]/rhow[facei])*2*dev(symm(gradUw)); - - // Reset the shear components of the stress tensor - Rw[facei].xy() = tauw.xy(); - Rw[facei].xz() = tauw.xz(); - Rw[facei].yz() = tauw.yz(); - } - } - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace compressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/LaunderGibsonRSTM/LaunderGibsonRSTM.H b/src/turbulenceModels/RAS/compressible/LaunderGibsonRSTM/LaunderGibsonRSTM.H deleted file mode 100644 index 4fa0e9315ea..00000000000 --- a/src/turbulenceModels/RAS/compressible/LaunderGibsonRSTM/LaunderGibsonRSTM.H +++ /dev/null @@ -1,211 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::compressible::RASModels::LaunderGibsonRSTM - -Description - Launder-Gibson Reynolds stress turbulence model for compressible flows. - - The default model coefficients correspond to the following: - @verbatim - LaunderGibsonRSTMCoeffs - { - Cmu 0.09; - Clg1 1.8; - Clg2 0.6; - C1 1.44; - C2 1.92; - C1Ref 0.5; - C2Ref 0.3; - Cs 0.25; - Ceps 0.15; - alphah 1.0; // only for compressible - alphaEps 0.76923; - alphaR 1.22; - couplingFactor 0.0; - } - @endverbatim - -SourceFiles - LaunderGibsonRSTM.C - LaunderGibsonRSTMcorrect.C - -\*---------------------------------------------------------------------------*/ - -#ifndef compressibleLaunderGibsonRSTM_H -#define compressibleLaunderGibsonRSTM_H - -#include "RASModel.H" -#include "wallDistReflection.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class LaunderGibsonRSTM Declaration -\*---------------------------------------------------------------------------*/ - -class LaunderGibsonRSTM -: - public RASModel -{ - // Private data - - dimensionedScalar Cmu_; - - dimensionedScalar Clg1_; - dimensionedScalar Clg2_; - - dimensionedScalar C1_; - dimensionedScalar C2_; - dimensionedScalar Cs_; - dimensionedScalar Ceps_; - - dimensionedScalar C1Ref_; - dimensionedScalar C2Ref_; - - dimensionedScalar couplingFactor_; - - dimensionedScalar alphaR_; - dimensionedScalar alphaEps_; - dimensionedScalar alphah_; - - wallDistReflection y_; - - volSymmTensorField R_; - volScalarField k_; - volScalarField epsilon_; - volScalarField mut_; - volScalarField alphat_; - - -public: - - //- Runtime type information - TypeName("LaunderGibsonRSTM"); - - // Constructors - - //- from components - LaunderGibsonRSTM - ( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - basicThermo& thermophysicalModel - ); - - - // Destructor - - ~LaunderGibsonRSTM(){} - - - // Member Functions - - // Access - - //- Return the turbulence viscosity - tmp<volScalarField> mut() const - { - return mut_; - } - - //- Return the effective diffusivity for R - tmp<volScalarField> DREff() const - { - return tmp<volScalarField> - ( - new volScalarField("DREff", alphaR_*mut_ + mu()) - ); - } - - //- Return the effective diffusivity for epsilon - tmp<volScalarField> DepsilonEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DepsilonEff", alphaEps_*mut_ + mu()) - ); - } - - //- Return the effective turbulent thermal diffusivity - tmp<volScalarField> alphaEff() const - { - return tmp<volScalarField> - ( - new volScalarField("alphaEff", alphah_*alphat_ + alpha()) - ); - } - - //- Return the turbulence kinetic energy - tmp<volScalarField> k() const - { - return k_; - } - - //- Return the turbulence kinetic energy dissipation rate - tmp<volScalarField> epsilon() const - { - return epsilon_; - } - - //- Return the Reynolds stress tensor - tmp<volSymmTensorField> R() const - { - return R_; - } - - //- Return the effective stress tensor including the laminar stress - tmp<volSymmTensorField> devRhoReff() const; - - //- Return the source term for the momentum equation - tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const; - - //- Solve the turbulence equations and correct the turbulence viscosity - void correct(); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace compressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/LaunderSharmaKE/LaunderSharmaKE.C b/src/turbulenceModels/RAS/compressible/LaunderSharmaKE/LaunderSharmaKE.C deleted file mode 100644 index b5774100973..00000000000 --- a/src/turbulenceModels/RAS/compressible/LaunderSharmaKE/LaunderSharmaKE.C +++ /dev/null @@ -1,331 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "LaunderSharmaKE.H" -#include "addToRunTimeSelectionTable.H" -#include "wallFvPatch.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(LaunderSharmaKE, 0); -addToRunTimeSelectionTable(RASModel, LaunderSharmaKE, dictionary); - -// * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * * // - -tmp<volScalarField> LaunderSharmaKE::fMu() const -{ - return exp(-3.4/sqr(scalar(1) + rho_*sqr(k_)/(mu()*epsilon_)/50.0)); -} - - -tmp<volScalarField> LaunderSharmaKE::f2() const -{ - return - scalar(1) - - 0.3*exp(-min(sqr(rho_*sqr(k_)/(mu()*epsilon_)), scalar(50.0))); -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// from components -LaunderSharmaKE::LaunderSharmaKE -( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - basicThermo& thermophysicalModel -) -: - RASModel(typeName, rho, U, phi, thermophysicalModel), - - Cmu_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cmu", - coeffDict_, - 0.09 - ) - ), - C1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C1", - coeffDict_, - 1.44 - ) - ), - C2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C2", - coeffDict_, - 1.92 - ) - ), - C3_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C3", - coeffDict_, - -0.33 - ) - ), - alphak_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphak", - coeffDict_, - 1.0 - ) - ), - alphaEps_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphaEps", - coeffDict_, - 0.76923 - ) - ), - alphah_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphah", - coeffDict_, - 1.0 - ) - ), - - k_ - ( - IOobject - ( - "k", - runTime_.timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh_ - ), - - epsilon_ - ( - IOobject - ( - "epsilon", - runTime_.timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh_ - ), - - mut_ - ( - IOobject - ( - "mut", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - Cmu_*fMu()*rho_*sqr(k_)/(epsilon_ + epsilonSmall_) - ) -{ - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -tmp<volSymmTensorField> LaunderSharmaKE::R() const -{ - return tmp<volSymmTensorField> - ( - new volSymmTensorField - ( - IOobject - ( - "R", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - ((2.0/3.0)*I)*k_ - (mut_/rho_)*dev(twoSymm(fvc::grad(U_))), - k_.boundaryField().types() - ) - ); -} - - -tmp<volSymmTensorField> LaunderSharmaKE::devRhoReff() const -{ - return tmp<volSymmTensorField> - ( - new volSymmTensorField - ( - IOobject - ( - "devRhoReff", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - -muEff()*dev(twoSymm(fvc::grad(U_))) - ) - ); -} - - -tmp<fvVectorMatrix> LaunderSharmaKE::divDevRhoReff(volVectorField& U) const -{ - return - ( - - fvm::laplacian(muEff(), U) - fvc::div(muEff()*dev2(fvc::grad(U)().T())) - ); -} - - -bool LaunderSharmaKE::read() -{ - if (RASModel::read()) - { - Cmu_.readIfPresent(coeffDict_); - C1_.readIfPresent(coeffDict_); - C2_.readIfPresent(coeffDict_); - C3_.readIfPresent(coeffDict_); - alphak_.readIfPresent(coeffDict_); - alphaEps_.readIfPresent(coeffDict_); - alphah_.readIfPresent(coeffDict_); - - return true; - } - else - { - return false; - } -} - - -void LaunderSharmaKE::correct() -{ - if (!turbulence_) - { - // Re-calculate viscosity - mut_ = rho_*Cmu_*fMu()*sqr(k_)/(epsilon_ + epsilonSmall_); - return; - } - - RASModel::correct(); - - // Calculate parameters and coefficients for Launder-Sharma low-Reynolds - // number model - - volScalarField E = 2.0*mu()*mut_*fvc::magSqrGradGrad(U_)/rho_; - volScalarField D = 2.0*mu()*magSqr(fvc::grad(sqrt(k_)))/rho_; - - volScalarField divU = fvc::div(phi_/fvc::interpolate(rho_)); - - if (mesh_.moving()) - { - divU += fvc::div(mesh_.phi()); - } - - tmp<volTensorField> tgradU = fvc::grad(U_); - volScalarField G = mut_*(tgradU() && dev(twoSymm(tgradU()))); - tgradU.clear(); - - - // Dissipation equation - - tmp<fvScalarMatrix> epsEqn - ( - fvm::ddt(rho_, epsilon_) - + fvm::div(phi_, epsilon_) - - fvm::laplacian(DepsilonEff(), epsilon_) - == - C1_*G*epsilon_/k_ + fvm::SuSp((C3_ - 2.0/3.0*C1_)*rho_*divU, epsilon_) - - fvm::Sp(C2_*f2()*rho_*epsilon_/k_, epsilon_) - //+ 0.75*1.5*flameKproduction*epsilon_/k_ - + E - ); - - epsEqn().relax(); - solve(epsEqn); - bound(epsilon_, epsilon0_); - - - // Turbulent kinetic energy equation - - tmp<fvScalarMatrix> kEqn - ( - fvm::ddt(rho_, k_) - + fvm::div(phi_, k_) - - fvm::laplacian(DkEff(), k_) - == - G - fvm::SuSp(2.0/3.0*rho_*divU, k_) - - fvm::Sp(rho_*(epsilon_ + D)/k_, k_) - //+ flameKproduction - ); - - kEqn().relax(); - solve(kEqn); - bound(k_, k0_); - - - // Re-calculate viscosity - mut_ = Cmu_*fMu()*rho_*sqr(k_)/epsilon_; -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace compressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/LaunderSharmaKE/LaunderSharmaKE.H b/src/turbulenceModels/RAS/compressible/LaunderSharmaKE/LaunderSharmaKE.H deleted file mode 100644 index 731e0cdb02a..00000000000 --- a/src/turbulenceModels/RAS/compressible/LaunderSharmaKE/LaunderSharmaKE.H +++ /dev/null @@ -1,191 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::compressible::RASModels::LaunderSharmaKE - -Description - Launder and Sharma low-Reynolds k-epsilon turbulence model for - compressible and combusting flows. - - The default model coefficients correspond to the following: - @verbatim - LaunderSharmaKECoeffs - { - Cmu 0.09; - C1 1.44; - C2 1.92; - C3 -0.33; - alphah 1.0; // only for compressible - alphahk 1.0; // only for compressible - alphaEps 0.76923; - } - @endverbatim - -SourceFiles - LaunderSharmaKE.C - LaunderSharmaKECorrect.C - -\*---------------------------------------------------------------------------*/ - -#ifndef compressibleLaunderSharmaKE_H -#define compressibleLaunderSharmaKE_H - -#include "RASModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class LaunderSharmaKE Declaration -\*---------------------------------------------------------------------------*/ - -class LaunderSharmaKE -: - public RASModel -{ - // Private data - - dimensionedScalar Cmu_; - dimensionedScalar C1_; - dimensionedScalar C2_; - dimensionedScalar C3_; - dimensionedScalar alphak_; - dimensionedScalar alphaEps_; - dimensionedScalar alphah_; - - volScalarField k_; - volScalarField epsilon_; - volScalarField mut_; - - - // Private member functions - - tmp<volScalarField> fMu() const; - tmp<volScalarField> f2() const; - - -public: - - //- Runtime type information - TypeName("LaunderSharmaKE"); - - // Constructors - - //- from components - LaunderSharmaKE - ( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - basicThermo& thermophysicalModel - ); - - - // Destructor - - ~LaunderSharmaKE(){} - - - // Member Functions - - //- Return the turbulence viscosity - tmp<volScalarField> mut() const - { - return mut_; - } - - //- Return the effective diffusivity for k - tmp<volScalarField> DkEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DkEff", alphak_*mut_ + mu()) - ); - } - - //- Return the effective diffusivity for epsilon - tmp<volScalarField> DepsilonEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DepsilonEff", alphaEps_*mut_ + mu()) - ); - } - - //- Return the effective turbulent thermal diffusivity - tmp<volScalarField> alphaEff() const - { - return tmp<volScalarField> - ( - new volScalarField("alphaEff", alphah_*mut_ + alpha()) - ); - } - - //- Return the turbulence kinetic energy - tmp<volScalarField> k() const - { - return k_; - } - - //- Return the turbulence kinetic energy dissipation rate - tmp<volScalarField> epsilon() const - { - return epsilon_; - } - - //- Return the Reynolds stress tensor - tmp<volSymmTensorField> R() const; - - //- Return the effective stress tensor including the laminar stress - tmp<volSymmTensorField> devRhoReff() const; - - //- Return the source term for the momentum equation - tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const; - - //- Solve the turbulence equations and correct the turbulence viscosity - void correct(); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace compressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/Make/files b/src/turbulenceModels/RAS/compressible/Make/files deleted file mode 100644 index 0598d06a00e..00000000000 --- a/src/turbulenceModels/RAS/compressible/Make/files +++ /dev/null @@ -1,43 +0,0 @@ -/* RAS turbulence models */ -RASModel/RASModel.C -RASModel/newRASModel.C -laminar/laminar.C -kEpsilon/kEpsilon.C -RNGkEpsilon/RNGkEpsilon.C -LaunderSharmaKE/LaunderSharmaKE.C -LRR/LRR.C -LaunderGibsonRSTM/LaunderGibsonRSTM.C -realizableKE/realizableKE.C -SpalartAllmaras/SpalartAllmaras.C -kOmegaSST/kOmegaSST.C - -/* Wall functions */ -wallFunctions = derivedFvPatchFields/wallFunctions - -alphatWallFunctions = $(wallFunctions)/alphatWallFunctions -$(alphatWallFunctions)/alphatWallFunction/alphatWallFunctionFvPatchScalarField.C - -mutWallFunctions = $(wallFunctions)/mutWallFunctions -$(mutWallFunctions)/mutWallFunction/mutWallFunctionFvPatchScalarField.C -$(mutWallFunctions)/mutRoughWallFunction/mutRoughWallFunctionFvPatchScalarField.C -$(mutWallFunctions)/mutSpalartAllmarasWallFunction/mutSpalartAllmarasWallFunctionFvPatchScalarField.C -$(mutWallFunctions)/mutSpalartAllmarasStandardWallFunction/mutSpalartAllmarasStandardWallFunctionFvPatchScalarField.C -$(mutWallFunctions)/mutSpalartAllmarasStandardRoughWallFunction/mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.C - -epsilonWallFunctions = $(wallFunctions)/epsilonWallFunctions -$(epsilonWallFunctions)/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.C - -omegaWallFunctions = $(wallFunctions)/omegaWallFunctions -$(omegaWallFunctions)/omegaWallFunction/omegaWallFunctionFvPatchScalarField.C - -kQRWallFunctions = $(wallFunctions)/kQRWallFunctions -$(kQRWallFunctions)/kQRWallFunction/kQRWallFunctionFvPatchFields.C - -/* Patch fields */ -derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C -derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.C -derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.C - -backwardsCompatibilityWallFunctions/backwardsCompatibilityWallFunctions.C - -LIB = $(FOAM_LIBBIN)/libcompressibleRASModels diff --git a/src/turbulenceModels/RAS/compressible/Make/options b/src/turbulenceModels/RAS/compressible/Make/options deleted file mode 100644 index 6c12c9d7819..00000000000 --- a/src/turbulenceModels/RAS/compressible/Make/options +++ /dev/null @@ -1,8 +0,0 @@ -EXE_INC = \ - -I$(LIB_SRC)/finiteVolume/lnInclude \ - -I$(LIB_SRC)/meshTools/lnInclude \ - -I$(LIB_SRC)/thermophysicalModels/basic/lnInclude - -LIB_LIBS = \ - -lfiniteVolume \ - -lmeshTools diff --git a/src/turbulenceModels/RAS/compressible/RASModel/RASModel.C b/src/turbulenceModels/RAS/compressible/RASModel/RASModel.C deleted file mode 100644 index c1bbdc1684e..00000000000 --- a/src/turbulenceModels/RAS/compressible/RASModel/RASModel.C +++ /dev/null @@ -1,228 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "RASModel.H" -#include "wallDist.H" -#include "wallFvPatch.H" -#include "fixedValueFvPatchFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(RASModel, 0); -defineRunTimeSelectionTable(RASModel, dictionary); - -// * * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * // - -void RASModel::printCoeffs() -{ - if (printCoeffs_) - { - Info<< type() << "Coeffs" << coeffDict_ << nl - << "wallFunctionCoeffs" << wallFunctionDict_ << endl; - } -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -RASModel::RASModel -( - const word& type, - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - basicThermo& thermophysicalModel -) -: - IOdictionary - ( - IOobject - ( - "RASProperties", - U.time().constant(), - U.db(), - IOobject::MUST_READ, - IOobject::NO_WRITE - ) - ), - - runTime_(U.time()), - mesh_(U.mesh()), - - rho_(rho), - U_(U), - phi_(phi), - thermophysicalModel_(thermophysicalModel), - - turbulence_(lookup("turbulence")), - printCoeffs_(lookupOrDefault<Switch>("printCoeffs", false)), - coeffDict_(subDict(type + "Coeffs")), - - wallFunctionDict_(subDict("wallFunctionCoeffs")), - kappa_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "kappa", - subDict("wallFunctionCoeffs"), - 0.4187 - ) - ), - E_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "E", - subDict("wallFunctionCoeffs"), - 9.0 - ) - ), - Cmu_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cmu", - wallFunctionDict_, - 0.09 - ) - ), - Prt_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Prt", - wallFunctionDict_, - 0.85 - ) - ), - - yPlusLam_(yPlusLam(kappa_.value(), E_.value())), - - k0_("k0", dimVelocity*dimVelocity, SMALL), - epsilon0_("epsilon", k0_.dimensions()/dimTime, SMALL), - epsilonSmall_("epsilonSmall", epsilon0_.dimensions(), SMALL), - - y_(mesh_) -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -scalar RASModel::yPlusLam(const scalar kappa, const scalar E) const -{ - scalar ypl = 11.0; - - for (int i=0; i<10; i++) - { - ypl = log(E*ypl)/kappa; - } - - return ypl; -} - - -tmp<scalarField> RASModel::yPlus(const label patchNo) const -{ - const fvPatch& curPatch = mesh_.boundary()[patchNo]; - - tmp<scalarField> tYp(new scalarField(curPatch.size())); - scalarField& Yp = tYp(); - - if (isType<wallFvPatch>(curPatch)) - { - Yp = pow(Cmu_.value(), 0.25) - *y_[patchNo] - *sqrt(k()().boundaryField()[patchNo].patchInternalField()) - /( - mu().boundaryField()[patchNo].patchInternalField() - /rho_.boundaryField()[patchNo] - ); - } - else - { - WarningIn - ( - "tmp<scalarField> RASModel::yPlus(const label patchNo) const" - ) << "Patch " << patchNo << " is not a wall. Returning null field" - << nl << endl; - - Yp.setSize(0); - } - - return tYp; -} - - -void RASModel::correct() -{ - if (mesh_.changing()) - { - y_.correct(); - } -} - - -bool RASModel::read() -{ - if (regIOobject::read()) - { - lookup("turbulence") >> turbulence_; - coeffDict_ = subDict(type() + "Coeffs"); - - wallFunctionDict_ = subDict("wallFunctionCoeffs"); - kappa_.readIfPresent(wallFunctionDict_); - E_.readIfPresent(wallFunctionDict_); - Cmu_.readIfPresent(wallFunctionDict_); - Prt_.readIfPresent(wallFunctionDict_); - - yPlusLam_ = yPlusLam(kappa_.value(), E_.value()); - - k0_.readIfPresent(*this); - epsilon0_.readIfPresent(*this); - epsilonSmall_.readIfPresent(*this); - - return true; - } - else - { - return false; - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace compressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/RASModel/RASModel.H b/src/turbulenceModels/RAS/compressible/RASModel/RASModel.H deleted file mode 100644 index 1be29e6e792..00000000000 --- a/src/turbulenceModels/RAS/compressible/RASModel/RASModel.H +++ /dev/null @@ -1,339 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Namespace - Foam::compressible::RASModels - -Description - Namespace for compressible RAS turbulence models. - - -Class - Foam::compressible::RASModel - -Description - Abstract base class for turbulence models for compressible and combusting - flows. - -SourceFiles - RASModel.C - newTurbulenceModel.C - -\*---------------------------------------------------------------------------*/ - -#ifndef compressibleRASModel_H -#define compressibleRASModel_H - -#include "volFields.H" -#include "surfaceFields.H" -#include "nearWallDist.H" -#include "fvm.H" -#include "fvc.H" -#include "fvMatrices.H" -#include "basicThermo.H" -#include "IOdictionary.H" -#include "Switch.H" -#include "bound.H" -#include "autoPtr.H" -#include "runTimeSelectionTables.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ - -/*---------------------------------------------------------------------------*\ - Class RASModel Declaration -\*---------------------------------------------------------------------------*/ - -class RASModel -: - public IOdictionary -{ - -protected: - - // Protected data - - const Time& runTime_; - const fvMesh& mesh_; - - const volScalarField& rho_; - const volVectorField& U_; - const surfaceScalarField& phi_; - - basicThermo& thermophysicalModel_; - - Switch turbulence_; - Switch printCoeffs_; - dictionary coeffDict_; - - dictionary wallFunctionDict_; - dimensionedScalar kappa_; - dimensionedScalar E_; - dimensionedScalar Cmu_; - dimensionedScalar Prt_; - - scalar yPlusLam_; - - dimensionedScalar k0_; - dimensionedScalar epsilon0_; - dimensionedScalar epsilonSmall_; - - nearWallDist y_; - - - // Protected member functions - - //- Print model coefficients - virtual void printCoeffs(); - - //- Return the laminar thermal conductivity - const volScalarField& alpha() const - { - return thermophysicalModel_.alpha(); - } - - -private: - - // Private Member Functions - - //- Disallow default bitwise copy construct - RASModel(const RASModel&); - - //- Disallow default bitwise assignment - void operator=(const RASModel&); - - -public: - - //- Runtime type information - TypeName("RASModel"); - - - // Declare run-time constructor selection table - - declareRunTimeSelectionTable - ( - autoPtr, - RASModel, - dictionary, - ( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - basicThermo& thermoPhysicalModel - ), - (rho, U, phi, thermoPhysicalModel) - ); - - - // Constructors - - //- Construct from components - RASModel - ( - const word& type, - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - basicThermo& thermoPhysicalModel - ); - - - // Selectors - - //- Return a reference to the selected turbulence model - static autoPtr<RASModel> New - ( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - basicThermo& thermoPhysicalModel - ); - - - // Destructor - - virtual ~RASModel() - {} - - - // Member Functions - - // Access - - //- Return the value of k0 which k is not allowed to be less than - const dimensionedScalar& k0() const - { - return k0_; - } - - //- Return the value of epsilon0 which epsilon is not allowed to be - // less than - const dimensionedScalar& epsilon0() const - { - return epsilon0_; - } - - //- Return the value of epsilonSmall which is added to epsilon when - // calculating nut - const dimensionedScalar& epsilonSmall() const - { - return epsilonSmall_; - } - - - //- Allow k0 to be changed - dimensionedScalar& k0() - { - return k0_; - } - - //- Allow epsilon0 to be changed - dimensionedScalar& epsilon0() - { - return epsilon0_; - } - - //- Allow epsilonSmall to be changed - dimensionedScalar& epsilonSmall() - { - return epsilonSmall_; - } - - - //- Return kappa for use in wall-functions - dimensionedScalar kappa() const - { - return kappa_; - } - - //- Return E for use in wall-functions - dimensionedScalar E() const - { - return E_; - } - - //- Return Cmu for use in wall-functions - dimensionedScalar Cmu() const - { - return Cmu_; - } - - //- Return turbulent Prandtl number for use in wall-functions - dimensionedScalar Prt() const - { - return Prt_; - } - - //- Return the near wall distances - const nearWallDist& y() const - { - return y_; - } - - //- Calculate y+ at the edge of the laminar sublayer - scalar yPlusLam(const scalar kappa, const scalar E) const; - - //- Return y+ at the edge of the laminar sublayer - // for use in wall-functions - scalar yPlusLam() const - { - return yPlusLam_; - } - - //- Const access to the coefficients dictionary - const dictionary& coeffDict() const - { - return coeffDict_; - } - - //- Const access to the wall functions coefficients dictionary - const dictionary& walLFunctionDict() const - { - return wallFunctionDict_; - } - - - //- Return the laminar viscosity - const volScalarField& mu() const - { - return thermophysicalModel_.mu(); - } - - //- Return the turbulence viscosity - virtual tmp<volScalarField> mut() const = 0; - - //- Return the effective viscosity - virtual tmp<volScalarField> muEff() const - { - return tmp<volScalarField> - ( - new volScalarField("muEff", mut() + mu()) - ); - } - - //- Return the effective turbulent thermal diffusivity - virtual tmp<volScalarField> alphaEff() const = 0; - - //- Return the turbulence kinetic energy - virtual tmp<volScalarField> k() const = 0; - - //- Return the turbulence kinetic energy dissipation rate - virtual tmp<volScalarField> epsilon() const = 0; - - //- Return the Reynolds stress tensor - virtual tmp<volSymmTensorField> R() const = 0; - - //- Return the effective stress tensor including the laminar stress - virtual tmp<volSymmTensorField> devRhoReff() const = 0; - - //- Return the source term for the momentum equation - virtual tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const = 0; - - //- Return yPlus for the given patch - virtual tmp<scalarField> yPlus(const label patchI) const; - - //- Solve the turbulence equations and correct the turbulence viscosity - virtual void correct() = 0; - - //- Read turbulenceProperties dictionary - virtual bool read() = 0; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace compressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/RASModel/newRASModel.C b/src/turbulenceModels/RAS/compressible/RASModel/newRASModel.C deleted file mode 100644 index 339e9ad2d2a..00000000000 --- a/src/turbulenceModels/RAS/compressible/RASModel/newRASModel.C +++ /dev/null @@ -1,99 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "RASModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -autoPtr<RASModel> RASModel::New -( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - basicThermo& thermophysicalModel -) -{ - word RASModelTypeName; - - // Enclose the creation of the turbulencePropertiesDict to ensure it is - // deleted before the RASModel is created otherwise the dictionary - // is entered in the database twice - { - IOdictionary turbulencePropertiesDict - ( - IOobject - ( - "RASProperties", - U.time().constant(), - U.db(), - IOobject::MUST_READ, - IOobject::NO_WRITE - ) - ); - - turbulencePropertiesDict.lookup("RASModel") - >> RASModelTypeName; - } - - Info<< "Selecting RAS turbulence model " << RASModelTypeName << endl; - - dictionaryConstructorTable::iterator cstrIter = - dictionaryConstructorTablePtr_->find(RASModelTypeName); - - if (cstrIter == dictionaryConstructorTablePtr_->end()) - { - FatalErrorIn - ( - "RASModel::New(const volScalarField&, " - "const volVectorField&, const surfaceScalarField&, " - "basicThermo&)" - ) << "Unknown RASModel type " << RASModelTypeName - << endl << endl - << "Valid RASModel types are :" << endl - << dictionaryConstructorTablePtr_->toc() - << exit(FatalError); - } - - return autoPtr<RASModel> - ( - cstrIter()(rho, U, phi, thermophysicalModel) - ); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace compressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/RNGkEpsilon/RNGkEpsilon.C b/src/turbulenceModels/RAS/compressible/RNGkEpsilon/RNGkEpsilon.C deleted file mode 100644 index 8f6ba823213..00000000000 --- a/src/turbulenceModels/RAS/compressible/RNGkEpsilon/RNGkEpsilon.C +++ /dev/null @@ -1,368 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "RNGkEpsilon.H" -#include "addToRunTimeSelectionTable.H" -#include "wallFvPatch.H" - -#include "backwardsCompatibilityWallFunctions.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(RNGkEpsilon, 0); -addToRunTimeSelectionTable(RASModel, RNGkEpsilon, dictionary); - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// from components -RNGkEpsilon::RNGkEpsilon -( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - basicThermo& thermophysicalModel -) -: - RASModel(typeName, rho, U, phi, thermophysicalModel), - - Cmu_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cmu", - coeffDict_, - 0.0845 - ) - ), - C1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C1", - coeffDict_, - 1.42 - ) - ), - C2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C2", - coeffDict_, - 1.68 - ) - ), - C3_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C3", - coeffDict_, - -0.33 - ) - ), - alphak_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphak", - coeffDict_, - 1.39 - ) - ), - alphaEps_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphaEps", - coeffDict_, - 1.39 - ) - ), - alphah_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphah", - coeffDict_, - 1.0 - ) - ), - eta0_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "eta0", - coeffDict_, - 4.38 - ) - ), - beta_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "beta", - coeffDict_, - 0.012 - ) - ), - - k_ - ( - IOobject - ( - "k", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateK("k", mesh_) - ), - epsilon_ - ( - IOobject - ( - "epsilon", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateEpsilon("epsilon", mesh_) - ), - mut_ - ( - IOobject - ( - "mut", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateMut("mut", mesh_) - ), - alphat_ - ( - IOobject - ( - "alphat", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateAlphat("alphat", mesh_) - ) -{ - mut_ == Cmu_*rho_*sqr(k_)/(epsilon_ + epsilonSmall_); - mut_.correctBoundaryConditions(); - - alphat_ == mut_/Prt_; - alphat_.correctBoundaryConditions(); - - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -tmp<volSymmTensorField> RNGkEpsilon::R() const -{ - return tmp<volSymmTensorField> - ( - new volSymmTensorField - ( - IOobject - ( - "R", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - ((2.0/3.0)*I)*k_ - (mut_/rho_)*dev(twoSymm(fvc::grad(U_))), - k_.boundaryField().types() - ) - ); -} - - -tmp<volSymmTensorField> RNGkEpsilon::devRhoReff() const -{ - return tmp<volSymmTensorField> - ( - new volSymmTensorField - ( - IOobject - ( - "devRhoReff", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - -muEff()*dev(twoSymm(fvc::grad(U_))) - ) - ); -} - - -tmp<fvVectorMatrix> RNGkEpsilon::divDevRhoReff(volVectorField& U) const -{ - return - ( - - fvm::laplacian(muEff(), U) - fvc::div(muEff()*dev2(fvc::grad(U)().T())) - ); -} - - -bool RNGkEpsilon::read() -{ - if (RASModel::read()) - { - Cmu_.readIfPresent(coeffDict_); - C1_.readIfPresent(coeffDict_); - C2_.readIfPresent(coeffDict_); - C3_.readIfPresent(coeffDict_); - alphak_.readIfPresent(coeffDict_); - alphaEps_.readIfPresent(coeffDict_); - alphah_.readIfPresent(coeffDict_); - eta0_.readIfPresent(coeffDict_); - beta_.readIfPresent(coeffDict_); - - return true; - } - else - { - return false; - } -} - - -void RNGkEpsilon::correct() -{ - if (!turbulence_) - { - // Re-calculate viscosity - mut_ == rho_*Cmu_*sqr(k_)/(epsilon_ + epsilonSmall_); - mut_.correctBoundaryConditions(); - - // Re-calculate thermal diffusivity - alphat_ = mut_/Prt_; - alphat_.correctBoundaryConditions(); - - return; - } - - RASModel::correct(); - - volScalarField divU = fvc::div(phi_/fvc::interpolate(rho_)); - - if (mesh_.moving()) - { - divU += fvc::div(mesh_.phi()); - } - - tmp<volTensorField> tgradU = fvc::grad(U_); - volScalarField S2 = (tgradU() && dev(twoSymm(tgradU()))); - tgradU.clear(); - - volScalarField G("G", mut_*S2); - - volScalarField eta = sqrt(mag(S2))*k_/epsilon_; - volScalarField eta3 = eta*sqr(eta); - - volScalarField R = - ((eta*(-eta/eta0_ + scalar(1)))/(beta_*eta3 + scalar(1))); - - // Update espsilon and G at the wall - epsilon_.boundaryField().updateCoeffs(); - - // Dissipation equation - tmp<fvScalarMatrix> epsEqn - ( - fvm::ddt(rho_, epsilon_) - + fvm::div(phi_, epsilon_) - - fvm::laplacian(DepsilonEff(), epsilon_) - == - (C1_ - R)*G*epsilon_/k_ - - fvm::SuSp(((2.0/3.0)*C1_ + C3_)*rho_*divU, epsilon_) - - fvm::Sp(C2_*rho_*epsilon_/k_, epsilon_) - ); - - epsEqn().relax(); - - epsEqn().boundaryManipulate(epsilon_.boundaryField()); - - solve(epsEqn); - bound(epsilon_, epsilon0_); - - - // Turbulent kinetic energy equation - - tmp<fvScalarMatrix> kEqn - ( - fvm::ddt(rho_, k_) - + fvm::div(phi_, k_) - - fvm::laplacian(DkEff(), k_) - == - G - fvm::SuSp(2.0/3.0*rho_*divU, k_) - - fvm::Sp(rho_*(epsilon_)/k_, k_) - ); - - kEqn().relax(); - solve(kEqn); - bound(k_, k0_); - - - // Re-calculate viscosity - mut_ == rho_*Cmu_*sqr(k_)/epsilon_; - mut_.correctBoundaryConditions(); - - // Re-calculate thermal diffusivity - alphat_ = mut_/Prt_; - alphat_.correctBoundaryConditions(); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace compressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/RNGkEpsilon/RNGkEpsilon.H b/src/turbulenceModels/RAS/compressible/RNGkEpsilon/RNGkEpsilon.H deleted file mode 100644 index 98445ced1db..00000000000 --- a/src/turbulenceModels/RAS/compressible/RNGkEpsilon/RNGkEpsilon.H +++ /dev/null @@ -1,189 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::compressible::RASModels::RNGkEpsilon - -Description - Renormalisation group k-epsilon turbulence model for compressible flows. - - The default model coefficients correspond to the following: - @verbatim - RNGkEpsilonCoeffs - { - Cmu 0.0845; - C1 1.42; - C2 1.68; - C3 -0.33; // only for compressible - alphah 1.0; // only for compressible - alphak 1.39; - alphaEps 1.39; - eta0 4.38; - beta 0.012; - } - @endverbatim - -SourceFiles - RNGkEpsilon.C - RNGkEpsilonCorrect.C - -\*---------------------------------------------------------------------------*/ - -#ifndef compressibleRNGkEpsilon_H -#define compressibleRNGkEpsilon_H - -#include "RASModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class RNGkEpsilon Declaration -\*---------------------------------------------------------------------------*/ - -class RNGkEpsilon -: - public RASModel -{ - // Private data - - dimensionedScalar Cmu_; - dimensionedScalar C1_; - dimensionedScalar C2_; - dimensionedScalar C3_; - dimensionedScalar alphak_; - dimensionedScalar alphaEps_; - dimensionedScalar alphah_; - dimensionedScalar eta0_; - dimensionedScalar beta_; - - volScalarField k_; - volScalarField epsilon_; - volScalarField mut_; - volScalarField alphat_; - - -public: - - //- Runtime type information - TypeName("RNGkEpsilon"); - - // Constructors - - //- from components - RNGkEpsilon - ( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - basicThermo& thermophysicalModel - ); - - - // Destructor - - ~RNGkEpsilon(){} - - - // Member Functions - - //- Return the turbulence viscosity - tmp<volScalarField> mut() const - { - return mut_; - } - - //- Return the effective diffusivity for k - tmp<volScalarField> DkEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DkEff", alphak_*mut_ + mu()) - ); - } - - //- Return the effective diffusivity for epsilon - tmp<volScalarField> DepsilonEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DepsilonEff", alphaEps_*mut_ + mu()) - ); - } - - //- Return the effective turbulent thermal diffusivity - tmp<volScalarField> alphaEff() const - { - return tmp<volScalarField> - ( - new volScalarField("alphaEff", alphah_*alphat_ + alpha()) - ); - } - - //- Return the turbulence kinetic energy - tmp<volScalarField> k() const - { - return k_; - } - - //- Return the turbulence kinetic energy dissipation rate - tmp<volScalarField> epsilon() const - { - return epsilon_; - } - - //- Return the Reynolds stress tensor - tmp<volSymmTensorField> R() const; - - //- Return the effective stress tensor including the laminar stress - tmp<volSymmTensorField> devRhoReff() const; - - //- Return the effective stress tensor including the laminar stress - tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const; - - //- Solve the turbulence equations and correct the turbulence viscosity - void correct(); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace compressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/SpalartAllmaras/SpalartAllmaras.C b/src/turbulenceModels/RAS/compressible/SpalartAllmaras/SpalartAllmaras.C deleted file mode 100644 index d0757ab1428..00000000000 --- a/src/turbulenceModels/RAS/compressible/SpalartAllmaras/SpalartAllmaras.C +++ /dev/null @@ -1,353 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "SpalartAllmaras.H" -#include "addToRunTimeSelectionTable.H" -#include "wallDist.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(SpalartAllmaras, 0); -addToRunTimeSelectionTable(RASModel, SpalartAllmaras, dictionary); - -// * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * * // - -tmp<volScalarField> SpalartAllmaras::chi() const -{ - return rho_*nuTilda_/mu(); -} - - -tmp<volScalarField> SpalartAllmaras::fv1(const volScalarField& chi) const -{ - volScalarField chi3 = pow3(chi); - return chi3/(chi3 + pow3(Cv1_)); -} - - -tmp<volScalarField> SpalartAllmaras::fv2 -( - const volScalarField& chi, - const volScalarField& fv1 -) const -{ - return 1.0 - chi/(1.0 + chi*fv1); - //return 1.0/pow3(scalar(1) + chi/Cv2); -} - - -tmp<volScalarField> SpalartAllmaras::fv3 -( - const volScalarField& chi, - const volScalarField& fv1 -) const -{ - volScalarField chiByCv2 = (1/Cv2_)*chi; - - return - (scalar(1) + chi*fv1) - *(1/Cv2_) - *(3*(scalar(1) + chiByCv2) + sqr(chiByCv2)) - /pow3(scalar(1) + chiByCv2); -} - - -tmp<volScalarField> SpalartAllmaras::fw(const volScalarField& Stilda) const -{ - volScalarField r = min - ( - nuTilda_ - /( - max(Stilda, dimensionedScalar("SMALL", Stilda.dimensions(), SMALL)) - *sqr(kappa_*d_) - ), - scalar(10.0) - ); - r.boundaryField() == 0.0; - - volScalarField g = r + Cw2_*(pow6(r) - r); - - return g*pow((1.0 + pow6(Cw3_))/(pow6(g) + pow6(Cw3_)), 1.0/6.0); -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -SpalartAllmaras::SpalartAllmaras -( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - basicThermo& thermophysicalModel -) -: - RASModel(typeName, rho, U, phi, thermophysicalModel), - - alphaNut_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphaNut", - coeffDict_, - 1.5 - ) - ), - alphah_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphah", - coeffDict_, - 1.0 - ) - ), - - Cb1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cb1", - coeffDict_, - 0.1355 - ) - ), - Cb2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cb2", - coeffDict_, - 0.622 - ) - ), - Cw1_(Cb1_/sqr(kappa_) + alphaNut_*(1.0 + Cb2_)), - Cw2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cw2", - coeffDict_, - 0.3 - ) - ), - Cw3_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cw3", - coeffDict_, - 2.0 - ) - ), - Cv1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cv1", - coeffDict_, - 7.1 - ) - ), - Cv2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cv2", - coeffDict_, - 5.0 - ) - ), - - nuTilda_ - ( - IOobject - ( - "nuTilda", - runTime_.timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh_ - ), - - mut_ - ( - IOobject - ( - "mut", - runTime_.timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh_ - ), - - d_(mesh_) -{ - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -tmp<volSymmTensorField> SpalartAllmaras::R() const -{ - return tmp<volSymmTensorField> - ( - new volSymmTensorField - ( - IOobject - ( - "R", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - ((2.0/3.0)*I)*k() - (mut_/rho_)*dev(twoSymm(fvc::grad(U_))) - ) - ); -} - - -tmp<volSymmTensorField> SpalartAllmaras::devRhoReff() const -{ - return tmp<volSymmTensorField> - ( - new volSymmTensorField - ( - IOobject - ( - "devRhoReff", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - -muEff()*dev(twoSymm(fvc::grad(U_))) - ) - ); -} - - -tmp<fvVectorMatrix> SpalartAllmaras::divDevRhoReff(volVectorField& U) const -{ - volScalarField muEff_ = muEff(); - - return - ( - - fvm::laplacian(muEff_, U) - - fvc::div(muEff_*dev2(fvc::grad(U)().T())) - ); -} - - -bool SpalartAllmaras::read() -{ - if (RASModel::read()) - { - alphaNut_.readIfPresent(coeffDict_); - alphah_.readIfPresent(coeffDict_); - - Cb1_.readIfPresent(coeffDict_); - Cb2_.readIfPresent(coeffDict_); - Cw1_ = Cb1_/sqr(kappa_) + alphaNut_*(1.0 + Cb2_); - Cw2_.readIfPresent(coeffDict_); - Cw3_.readIfPresent(coeffDict_); - Cv1_.readIfPresent(coeffDict_); - Cv2_.readIfPresent(coeffDict_); - - return true; - } - else - { - return false; - } -} - - -void SpalartAllmaras::correct() -{ - if (!turbulence_) - { - // Re-calculate viscosity - mut_ = rho_*nuTilda_*fv1(chi()); - return; - } - - RASModel::correct(); - - if (mesh_.changing()) - { - d_.correct(); - } - - volScalarField chi = this->chi(); - volScalarField fv1 = this->fv1(chi); - - volScalarField Stilda = - fv3(chi, fv1)*::sqrt(2.0)*mag(skew(fvc::grad(U_))) - + fv2(chi, fv1)*nuTilda_/sqr(kappa_*d_); - - tmp<fvScalarMatrix> nuTildaEqn - ( - fvm::ddt(rho_, nuTilda_) - + fvm::div(phi_, nuTilda_) - - fvm::laplacian(DnuTildaEff(), nuTilda_) - - alphaNut_*Cb2_*rho_*magSqr(fvc::grad(nuTilda_)) - == - Cb1_*rho_*Stilda*nuTilda_ - - fvm::Sp(Cw1_*fw(Stilda)*nuTilda_*rho_/sqr(d_), nuTilda_) - ); - - nuTildaEqn().relax(); - solve(nuTildaEqn); - bound(nuTilda_, dimensionedScalar("0", nuTilda_.dimensions(), 0.0)); - nuTilda_.correctBoundaryConditions(); - - mut_.internalField() = fv1*nuTilda_.internalField()*rho_.internalField(); - mut_.correctBoundaryConditions(); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace compressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/SpalartAllmaras/SpalartAllmaras.H b/src/turbulenceModels/RAS/compressible/SpalartAllmaras/SpalartAllmaras.H deleted file mode 100644 index da3aa6fc2e5..00000000000 --- a/src/turbulenceModels/RAS/compressible/SpalartAllmaras/SpalartAllmaras.H +++ /dev/null @@ -1,245 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::compressible::RASModels::SpalartAllmaras - -Description - Spalart-Allmaras one-eqn mixing-length model for compressible - external flows. - - Reference: - @verbatim - "A One-Equation Turbulence Model for Aerodynamic Flows" - P.R. Spalart, - S.R. Allmaras, - La Recherche A´rospatiale, No. 1, 1994, pp. 5–21. - - Extended according to: - - "An Unstructured Grid Generation and Adaptive Solution Technique - for High Reynolds Number Compressible Flows" - G.A. Ashford, - Ph.D. thesis, University of Michigan, 1996. - @endverbatim - - The default model coefficients correspond to the following: - @verbatim - SpalartAllmarasCoeffs - { - Cb1 0.1355; - Cb2 0.622; - Cw2 0.3; - Cw3 2.0; - Cv1 7.1; - Cv2 5.0; - alphaNut 1.5; - alphah 1.0; // only for compressible - } - @endverbatim - -SourceFiles - SpalartAllmaras.C - SpalartAllmarasCorrect.C - -\*---------------------------------------------------------------------------*/ - -#ifndef compressibleSpalartAllmaras_H -#define combressibleSpalartAllmaras_H - -#include "RASModel.H" -#include "wallDist.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class SpalartAllmaras Declaration -\*---------------------------------------------------------------------------*/ - -class SpalartAllmaras -: - public RASModel -{ - // Private data - - dimensionedScalar alphaNut_; - dimensionedScalar alphah_; - - dimensionedScalar Cb1_; - dimensionedScalar Cb2_; - dimensionedScalar Cw1_; - dimensionedScalar Cw2_; - dimensionedScalar Cw3_; - dimensionedScalar Cv1_; - dimensionedScalar Cv2_; - - volScalarField nuTilda_; - volScalarField mut_; - - wallDist d_; - - - // Private member functions - - tmp<volScalarField> chi() const; - tmp<volScalarField> fv1(const volScalarField& chi) const; - tmp<volScalarField> fv2 - ( - const volScalarField& chi, - const volScalarField& fv1 - ) const; - tmp<volScalarField> fv3 - ( - const volScalarField& chi, - const volScalarField& fv1 - ) const; - tmp<volScalarField> fw(const volScalarField& Stilda) const; - - -public: - - //- Runtime type information - TypeName("SpalartAllmaras"); - - - // Constructors - - //- from components - SpalartAllmaras - ( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - basicThermo& thermophysicalModel - ); - - - // Destructor - - ~SpalartAllmaras() - {} - - - // Member Functions - - //- Return the turbulence viscosity - tmp<volScalarField> mut() const - { - return mut_; - } - - //- Return the effective diffusivity for nuTilda - tmp<volScalarField> DnuTildaEff() const - { - return tmp<volScalarField> - ( - new volScalarField - ( - "DnuTildaEff", - alphaNut_*rho_*nuTilda_ + mu() - ) - ); - } - //- Return the effective turbulent thermal diffusivity - tmp<volScalarField> alphaEff() const - { - return tmp<volScalarField> - ( - new volScalarField("alphaEff", alphah_*mut_ + alpha()) - ); - } - - //- Return the turbulence kinetic energy - tmp<volScalarField> k() const - { - return tmp<volScalarField> - ( - new volScalarField - ( - IOobject - ( - "k", - runTime_.timeName(), - mesh_ - ), - mesh_, - dimensionedScalar("0", dimensionSet(0, 2, -2, 0, 0), 0) - ) - ); - } - - //- Return the turbulence kinetic energy dissipation rate - tmp<volScalarField> epsilon() const - { - return tmp<volScalarField> - ( - new volScalarField - ( - IOobject - ( - "epslion", - runTime_.timeName(), - mesh_ - ), - mesh_, - dimensionedScalar("0", dimensionSet(0, 2, -3, 0, 0), 0) - ) - ); - } - - //- Return the Reynolds stress tensor - tmp<volSymmTensorField> R() const; - - //- Return the effective stress tensor including the laminar stress - tmp<volSymmTensorField> devRhoReff() const; - - //- Return the source term for the momentum equation - tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const; - - //- Solve the turbulence equations and correct the turbulence viscosity - void correct(); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace compressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/backwardsCompatibilityWallFunctions/backwardsCompatibilityWallFunctions.C b/src/turbulenceModels/RAS/compressible/backwardsCompatibilityWallFunctions/backwardsCompatibilityWallFunctions.C deleted file mode 100644 index 19df95a3d5b..00000000000 --- a/src/turbulenceModels/RAS/compressible/backwardsCompatibilityWallFunctions/backwardsCompatibilityWallFunctions.C +++ /dev/null @@ -1,286 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "backwardsCompatibilityWallFunctions.H" - -#include "calculatedFvPatchField.H" -#include "alphatWallFunctionFvPatchScalarField.H" -#include "mutWallFunctionFvPatchScalarField.H" -#include "epsilonWallFunctionFvPatchScalarField.H" -#include "kQRWallFunctionFvPatchField.H" -#include "omegaWallFunctionFvPatchScalarField.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -tmp<volScalarField> autoCreateAlphat -( - const word& fieldName, - const fvMesh& mesh -) -{ - IOobject alphatHeader - ( - fieldName, - mesh.time().timeName(), - mesh, - IOobject::MUST_READ, - IOobject::NO_WRITE, - false - ); - - if (alphatHeader.headerOk()) - { - return tmp<volScalarField>(new volScalarField(alphatHeader, mesh)); - } - else - { - Info<< "--> Upgrading " << fieldName << " to employ run-time " - << "selectable wall functions" << endl; - - const fvBoundaryMesh& bm = mesh.boundary(); - - wordList alphatBoundaryTypes(bm.size()); - - forAll(bm, patchI) - { - if (isType<wallFvPatch>(bm[patchI])) - { - alphatBoundaryTypes[patchI] = - RASModels::alphatWallFunctionFvPatchScalarField::typeName; - } - else - { - alphatBoundaryTypes[patchI] = - calculatedFvPatchField<scalar>::typeName; - } - } - - tmp<volScalarField> alphat - ( - new volScalarField - ( - IOobject - ( - fieldName, - mesh.time().timeName(), - mesh, - IOobject::NO_READ, - IOobject::NO_WRITE, - false - ), - mesh, - dimensionedScalar("zero", dimDensity*dimArea/dimTime, 0.0), - alphatBoundaryTypes - ) - ); - - Info<< " Writing updated " << fieldName << endl; - alphat().write(); - - return alphat; - } -} - - -tmp<volScalarField> autoCreateMut -( - const word& fieldName, - const fvMesh& mesh -) -{ - IOobject mutHeader - ( - fieldName, - mesh.time().timeName(), - mesh, - IOobject::MUST_READ, - IOobject::NO_WRITE, - false - ); - - if (mutHeader.headerOk()) - { - return tmp<volScalarField>(new volScalarField(mutHeader, mesh)); - } - else - { - Info<< "--> Upgrading " << fieldName << " to employ run-time " - << "selectable wall functions" << endl; - - const fvBoundaryMesh& bm = mesh.boundary(); - - wordList mutBoundaryTypes(bm.size()); - - forAll(bm, patchI) - { - if (isType<wallFvPatch>(bm[patchI])) - { - mutBoundaryTypes[patchI] = - RASModels::mutWallFunctionFvPatchScalarField::typeName; - } - else - { - mutBoundaryTypes[patchI] = - calculatedFvPatchField<scalar>::typeName; - } - } - - tmp<volScalarField> mut - ( - new volScalarField - ( - IOobject - ( - fieldName, - mesh.time().timeName(), - mesh, - IOobject::NO_READ, - IOobject::NO_WRITE, - false - ), - mesh, - dimensionedScalar("zero", dimDensity*dimArea/dimTime, 0.0), - mutBoundaryTypes - ) - ); - - Info<< " Writing updated " << fieldName << endl; - mut().write(); - - return mut; - } -} - - -tmp<volScalarField> autoCreateEpsilon -( - const word& fieldName, - const fvMesh& mesh -) -{ - return - autoCreateWallFunctionField - < - scalar, - RASModels::epsilonWallFunctionFvPatchScalarField - > - ( - fieldName, - mesh - ); -} - - -tmp<volScalarField> autoCreateOmega -( - const word& fieldName, - const fvMesh& mesh -) -{ - return - autoCreateWallFunctionField - < - scalar, - RASModels::omegaWallFunctionFvPatchScalarField - > - ( - fieldName, - mesh - ); -} - - -tmp<volScalarField> autoCreateK -( - const word& fieldName, - const fvMesh& mesh -) -{ - return - autoCreateWallFunctionField - < - scalar, - RASModels::kQRWallFunctionFvPatchField<scalar> - > - ( - fieldName, - mesh - ); -} - - -tmp<volScalarField> autoCreateQ -( - const word& fieldName, - const fvMesh& mesh -) -{ - return - autoCreateWallFunctionField - < - scalar, - RASModels::kQRWallFunctionFvPatchField<scalar> - > - ( - fieldName, - mesh - ); -} - - -tmp<volSymmTensorField> autoCreateR -( - const word& fieldName, - const fvMesh& mesh -) -{ - return - autoCreateWallFunctionField - < - symmTensor, - RASModels::kQRWallFunctionFvPatchField<symmTensor> - > - ( - fieldName, - mesh - ); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace compressible -} // End namespace Foam - -// ************************************************************************* // - diff --git a/src/turbulenceModels/RAS/compressible/backwardsCompatibilityWallFunctions/backwardsCompatibilityWallFunctions.H b/src/turbulenceModels/RAS/compressible/backwardsCompatibilityWallFunctions/backwardsCompatibilityWallFunctions.H deleted file mode 100644 index bcc812a6b4d..00000000000 --- a/src/turbulenceModels/RAS/compressible/backwardsCompatibilityWallFunctions/backwardsCompatibilityWallFunctions.H +++ /dev/null @@ -1,123 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::compressible - -Description - Auto creation of fields to provide backwards compatibility with - runtime selectable wall functions - -SourceFiles - backwardsCompatibilityWallFunctions.C - backwardsCompatibilityWallFunctionsTemplates.C - -\*---------------------------------------------------------------------------*/ - -#ifndef backwardsCompatibilityWallFunctions_H -#define backwardsCompatibilityWallFunctions_H - -#include "fvMesh.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ - //- mut - tmp<volScalarField> autoCreateMut - ( - const word& fieldName, - const fvMesh& mesh - ); - - //- alphat - tmp<volScalarField> autoCreateAlphat - ( - const word& fieldName, - const fvMesh& mesh - ); - - //- epsilon - tmp<volScalarField> autoCreateEpsilon - ( - const word& fieldName, - const fvMesh& mesh - ); - - //- omega - tmp<volScalarField> autoCreateOmega - ( - const word& fieldName, - const fvMesh& mesh - ); - - //- k - tmp<volScalarField> autoCreateK - ( - const word& fieldName, - const fvMesh& mesh - ); - - //- Q - tmp<volScalarField> autoCreateQ - ( - const word& fieldName, - const fvMesh& mesh - ); - - //- R - tmp<volSymmTensorField> autoCreateR - ( - const word& fieldName, - const fvMesh& mesh - ); - - //- Helper function to create the new field - template<class Type, class PatchType> - tmp<GeometricField<Type, fvPatchField, volMesh> > - autoCreateWallFunctionField - ( - const word& fieldName, - const fvMesh& mesh - ); - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace compressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#ifdef NoRepository -# include "backwardsCompatibilityWallFunctionsTemplates.C" -#endif - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/turbulenceModels/RAS/compressible/backwardsCompatibilityWallFunctions/backwardsCompatibilityWallFunctionsTemplates.C b/src/turbulenceModels/RAS/compressible/backwardsCompatibilityWallFunctions/backwardsCompatibilityWallFunctionsTemplates.C deleted file mode 100644 index d6b489ffeab..00000000000 --- a/src/turbulenceModels/RAS/compressible/backwardsCompatibilityWallFunctions/backwardsCompatibilityWallFunctionsTemplates.C +++ /dev/null @@ -1,166 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "backwardsCompatibilityWallFunctions.H" -#include "Time.H" - -#include "wallPolyPatch.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -template<class Type, class PatchType> -tmp<GeometricField<Type, fvPatchField, volMesh> > -autoCreateWallFunctionField -( - const word& fieldName, - const fvMesh& mesh -) -{ - IOobject mutHeader - ( - "mut", - mesh.time().timeName(), - mesh, - IOobject::MUST_READ - ); - - typedef GeometricField<Type, fvPatchField, volMesh> fieldType; - - if (mutHeader.headerOk()) - { - return tmp<fieldType> - ( - new fieldType - ( - IOobject - ( - fieldName, - mesh.time().timeName(), - mesh, - IOobject::MUST_READ, - IOobject::NO_WRITE, - false - ), - mesh - ) - ); - } - else - { - Info<< "--> Upgrading " << fieldName << " to employ run-time " - << "selectable wall functions" << endl; - - // Read existing epsilon field - tmp<fieldType> fieldOrig - ( - new fieldType - ( - IOobject - ( - fieldName, - mesh.time().timeName(), - mesh, - IOobject::MUST_READ, - IOobject::NO_WRITE, - false - ), - mesh - ) - ); - - PtrList<fvPatchField<Type> > newPatchFields(mesh.boundary().size()); - - forAll(newPatchFields, patchI) - { - if (isType<wallPolyPatch>(mesh.boundaryMesh()[patchI])) - { - newPatchFields.set - ( - patchI, - new PatchType - ( - mesh.boundary()[patchI], - fieldOrig().dimensionedInternalField() - ) - ); - newPatchFields[patchI] == fieldOrig().boundaryField()[patchI]; - } - else - { - newPatchFields.set - ( - patchI, - fieldOrig().boundaryField()[patchI].clone() - ); - } - } - - tmp<fieldType> fieldNew - ( - new fieldType - ( - IOobject - ( - fieldName, - mesh.time().timeName(), - mesh, - IOobject::NO_READ, - IOobject::NO_WRITE, - false - ), - mesh, - fieldOrig().dimensions(), - fieldOrig().internalField(), - newPatchFields - ) - ); - - Info<< " Writing backup of original " << fieldName << " to " - << fieldName << ".old" << endl; - fieldOrig().rename(fieldName + ".old"); - fieldOrig().write(); - - Info<< " Writing updated " << fieldName << endl; - fieldNew().write(); - - return fieldNew; - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace compressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C b/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C deleted file mode 100644 index 9cd3901fe3d..00000000000 --- a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C +++ /dev/null @@ -1,203 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "turbulentHeatFluxTemperatureFvPatchScalarField.H" -#include "addToRunTimeSelectionTable.H" -#include "fvPatchFieldMapper.H" -#include "volFields.H" -#include "RASModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -turbulentHeatFluxTemperatureFvPatchScalarField:: -turbulentHeatFluxTemperatureFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedGradientFvPatchScalarField(p, iF), - q_(p.size(), 0.0), - rhoName_("undefinedRho") -{} - - -turbulentHeatFluxTemperatureFvPatchScalarField:: -turbulentHeatFluxTemperatureFvPatchScalarField -( - const turbulentHeatFluxTemperatureFvPatchScalarField& ptf, - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const fvPatchFieldMapper& mapper -) -: - fixedGradientFvPatchScalarField(ptf, p, iF, mapper), - q_(ptf.q_, mapper), - rhoName_(ptf.rhoName_) -{} - - -turbulentHeatFluxTemperatureFvPatchScalarField:: -turbulentHeatFluxTemperatureFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const dictionary& dict -) -: - fixedGradientFvPatchScalarField(p, iF), - q_("q", dict, p.size()), - rhoName_(dict.lookup("rho")) -{ - fvPatchField<scalar>::operator=(patchInternalField()); - gradient() = 0.0; -} - - -turbulentHeatFluxTemperatureFvPatchScalarField:: -turbulentHeatFluxTemperatureFvPatchScalarField -( - const turbulentHeatFluxTemperatureFvPatchScalarField& thftpsf -) -: - fixedGradientFvPatchScalarField(thftpsf), - q_(thftpsf.q_), - rhoName_(thftpsf.rhoName_) -{} - - -turbulentHeatFluxTemperatureFvPatchScalarField:: -turbulentHeatFluxTemperatureFvPatchScalarField -( - const turbulentHeatFluxTemperatureFvPatchScalarField& thftpsf, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedGradientFvPatchScalarField(thftpsf, iF), - q_(thftpsf.q_), - rhoName_(thftpsf.rhoName_) -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void turbulentHeatFluxTemperatureFvPatchScalarField::autoMap -( - const fvPatchFieldMapper& m -) -{ - fixedGradientFvPatchScalarField::autoMap(m); - q_.autoMap(m); -} - - -void turbulentHeatFluxTemperatureFvPatchScalarField::rmap -( - const fvPatchScalarField& ptf, - const labelList& addr -) -{ - fixedGradientFvPatchScalarField::rmap(ptf, addr); - - const turbulentHeatFluxTemperatureFvPatchScalarField& thftptf = - refCast<const turbulentHeatFluxTemperatureFvPatchScalarField> - ( - ptf - ); - - q_.rmap(thftptf.q_, addr); -} - - -void turbulentHeatFluxTemperatureFvPatchScalarField::updateCoeffs() -{ - if (updated()) - { - return; - } - - const label patchI = patch().index(); - - const RASModel& ras = db().lookupObject<RASModel>("RASProperties"); - - const scalarField alphaEffp = ras.alphaEff()().boundaryField()[patchI]; - - const basicThermo& thermo = - db().lookupObject<basicThermo>("thermophysicalProperties"); - -// const scalarField& Tp = thermo.T().boundaryField()[patchI]; - const scalarField& Tp = *this; - - const scalarField Cpp = thermo.Cp(Tp, patchI); - - const scalarField& rhop = - patch().lookupPatchField<volScalarField, scalar>(rhoName_); - - const scalar Ap = gSum(patch().magSf()); - - gradient() = q_/(Ap*rhop*Cpp*alphaEffp); - - fixedGradientFvPatchScalarField::updateCoeffs(); -} - - -void turbulentHeatFluxTemperatureFvPatchScalarField::write -( - Ostream& os -) const -{ - fvPatchScalarField::write(os); - q_.writeEntry("q", os); - os.writeKeyword("rho") << rhoName_ << token::END_STATEMENT << nl; - gradient().writeEntry("gradient", os); - writeEntry("value", os); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -makePatchTypeField -( - fvPatchScalarField, - turbulentHeatFluxTemperatureFvPatchScalarField -); - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace compressible -} // End namespace Foam - - -// ************************************************************************* // - diff --git a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.H b/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.H deleted file mode 100644 index c2ee7be0125..00000000000 --- a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.H +++ /dev/null @@ -1,176 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::turbulentHeatFluxTemperatureFvPatchScalarField - -Description - Fixed heat flux boundary condition for temperature. - -SourceFiles - turbulentHeatFluxTemperatureFvPatchScalarField.C - -\*---------------------------------------------------------------------------*/ - -#ifndef turbulentHeatFluxTemperatureFvPatchScalarFields_H -#define turbulentHeatFluxTemperatureFvPatchScalarFields_H - -#include "fvPatchFields.H" -#include "fixedGradientFvPatchFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ - -/*---------------------------------------------------------------------------*\ - Class turbulentHeatFluxTemperatureFvPatchScalarField Declaration -\*---------------------------------------------------------------------------*/ - -class turbulentHeatFluxTemperatureFvPatchScalarField -: - public fixedGradientFvPatchScalarField -{ -// Private data - - //- Heat flux [W] - scalarField q_; - - //- Name of density field - word rhoName_; - - -public: - - //- Runtime type information - TypeName("turbulentHeatFluxTemperature"); - - - // Constructors - - //- Construct from patch and internal field - turbulentHeatFluxTemperatureFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct from patch, internal field and dictionary - turbulentHeatFluxTemperatureFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const dictionary& - ); - - //- Construct by mapping given - // turbulentHeatFluxTemperatureFvPatchScalarField onto - // a new patch - turbulentHeatFluxTemperatureFvPatchScalarField - ( - const turbulentHeatFluxTemperatureFvPatchScalarField&, - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const fvPatchFieldMapper& - ); - - //- Construct as copy - turbulentHeatFluxTemperatureFvPatchScalarField - ( - const turbulentHeatFluxTemperatureFvPatchScalarField& - ); - - //- Construct and return a clone - virtual tmp<fvPatchScalarField> clone() const - { - return tmp<fvPatchScalarField> - ( - new turbulentHeatFluxTemperatureFvPatchScalarField(*this) - ); - } - - //- Construct as copy setting internal field reference - turbulentHeatFluxTemperatureFvPatchScalarField - ( - const turbulentHeatFluxTemperatureFvPatchScalarField&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct and return a clone setting internal field reference - virtual tmp<fvPatchScalarField> clone - ( - const DimensionedField<scalar, volMesh>& iF - ) const - { - return tmp<fvPatchScalarField> - ( - new turbulentHeatFluxTemperatureFvPatchScalarField - ( - *this, - iF - ) - ); - } - - - // Member functions - - // Mapping functions - - //- Map (and resize as needed) from self given a mapping object - virtual void autoMap(const fvPatchFieldMapper&); - - //- Reverse map the given fvPatchField onto this fvPatchField - virtual void rmap - ( - const fvPatchScalarField&, - const labelList& - ); - - - // Evaluation functions - - //- Update the coefficients associated with the patch field - virtual void updateCoeffs(); - - - // I-O - - //- Write - virtual void write(Ostream&) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace compressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.C b/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.C deleted file mode 100644 index 01b341748df..00000000000 --- a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.C +++ /dev/null @@ -1,152 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 2006-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "turbulentMixingLengthDissipationRateInletFvPatchScalarField.H" -#include "addToRunTimeSelectionTable.H" -#include "fvPatchFieldMapper.H" -#include "surfaceFields.H" -#include "volFields.H" -#include "RASModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -turbulentMixingLengthDissipationRateInletFvPatchScalarField:: -turbulentMixingLengthDissipationRateInletFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedValueFvPatchField<scalar>(p, iF), - mixingLength_(0.001) -{} - -turbulentMixingLengthDissipationRateInletFvPatchScalarField:: -turbulentMixingLengthDissipationRateInletFvPatchScalarField -( - const turbulentMixingLengthDissipationRateInletFvPatchScalarField& ptf, - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const fvPatchFieldMapper& mapper -) -: - fixedValueFvPatchField<scalar>(ptf, p, iF, mapper), - mixingLength_(ptf.mixingLength_) -{} - -turbulentMixingLengthDissipationRateInletFvPatchScalarField:: -turbulentMixingLengthDissipationRateInletFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const dictionary& dict -) -: - fixedValueFvPatchField<scalar>(p, iF, dict), - mixingLength_(readScalar(dict.lookup("mixingLength"))) -{} - -turbulentMixingLengthDissipationRateInletFvPatchScalarField:: -turbulentMixingLengthDissipationRateInletFvPatchScalarField -( - const turbulentMixingLengthDissipationRateInletFvPatchScalarField& ptf -) -: - fixedValueFvPatchField<scalar>(ptf), - mixingLength_(ptf.mixingLength_) -{} - -turbulentMixingLengthDissipationRateInletFvPatchScalarField:: -turbulentMixingLengthDissipationRateInletFvPatchScalarField -( - const turbulentMixingLengthDissipationRateInletFvPatchScalarField& ptf, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedValueFvPatchField<scalar>(ptf, iF), - mixingLength_(ptf.mixingLength_) -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void turbulentMixingLengthDissipationRateInletFvPatchScalarField::updateCoeffs() -{ - if (updated()) - { - return; - } - - // Lookup Cmu corresponding to the turbulence model selected - const compressible::RASModel& RAS = - db().lookupObject<compressible::RASModel>("RASProperties"); - scalar Cmu = readScalar(RAS.coeffDict().lookup("Cmu")); - - scalar Cmu75 = pow(Cmu, 0.75); - - const fvPatchField<scalar>& k = - patch().lookupPatchField<volScalarField, scalar>("k"); - - operator==(Cmu75*k*sqrt(k)/mixingLength_); - - fixedValueFvPatchField<scalar>::updateCoeffs(); -} - - -void turbulentMixingLengthDissipationRateInletFvPatchScalarField::write -( - Ostream& os -) const -{ - fvPatchField<scalar>::write(os); - os.writeKeyword("mixingLength") - << mixingLength_ << token::END_STATEMENT << nl; - writeEntry("value", os); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -makePatchTypeField -( - fvPatchScalarField, - turbulentMixingLengthDissipationRateInletFvPatchScalarField -); - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace compressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.H b/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.H deleted file mode 100644 index 8b13df2af02..00000000000 --- a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.H +++ /dev/null @@ -1,167 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 2006-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::compressible:: - turbulentMixingLengthDissipationRateInletFvPatchScalarField - -Description - Calculate epsilon via the mixing length [m] - - Example of the boundary condition specification: - @verbatim - inlet - { - type turbulentMixingLengthDissipationRateInlet; - mixingLength 0.005; // 5 mm - value uniform 200; // placeholder - } - @endverbatim - -SourceFiles - turbulentMixingLengthDissipationRateInletFvPatchScalarField.C - -\*---------------------------------------------------------------------------*/ - -#ifndef compressibleturbulentMixingLengthDissipationRateInletFvPatchField_H -#define compressibleturbulentMixingLengthDissipationRateInletFvPatchField_H - -#include "fixedValueFvPatchFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ - -/*---------------------------------------------------------------------------*\ - Class turbulentMixingLengthDissipationRateInletFvPatch Declaration -\*---------------------------------------------------------------------------*/ - -class turbulentMixingLengthDissipationRateInletFvPatchScalarField -: - public fixedValueFvPatchScalarField -{ - // Private data - - //- turbulent length scale - scalar mixingLength_; - -public: - - //- Runtime type information - TypeName("turbulentMixingLengthDissipationRateInlet"); - - - // Constructors - - //- Construct from patch and internal field - turbulentMixingLengthDissipationRateInletFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct from patch, internal field and dictionary - turbulentMixingLengthDissipationRateInletFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const dictionary& - ); - - //- Construct by mapping given - // turbulentMixingLengthDissipationRateInletFvPatchScalarField - // onto a new patch - turbulentMixingLengthDissipationRateInletFvPatchScalarField - ( - const turbulentMixingLengthDissipationRateInletFvPatchScalarField&, - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const fvPatchFieldMapper& - ); - - //- Construct as copy - turbulentMixingLengthDissipationRateInletFvPatchScalarField - ( - const turbulentMixingLengthDissipationRateInletFvPatchScalarField& - ); - - //- Construct and return a clone - virtual tmp<fvPatchScalarField> clone() const - { - return tmp<fvPatchScalarField> - ( - new turbulentMixingLengthDissipationRateInletFvPatchScalarField - ( - *this - ) - ); - } - - //- Construct as copy setting internal field reference - turbulentMixingLengthDissipationRateInletFvPatchScalarField - ( - const turbulentMixingLengthDissipationRateInletFvPatchScalarField&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct and return a clone setting internal field reference - virtual tmp<fvPatchScalarField> clone - ( - const DimensionedField<scalar, volMesh>& iF - ) const - { - return tmp<fvPatchScalarField> - ( - new turbulentMixingLengthDissipationRateInletFvPatchScalarField - ( - *this, - iF - ) - ); - } - - - // Member functions - - //- Update the coefficients associated with the patch field - virtual void updateCoeffs(); - - //- Write - virtual void write(Ostream&) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace compressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.C b/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.C deleted file mode 100644 index 92f01a9a7b4..00000000000 --- a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.C +++ /dev/null @@ -1,158 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 2006-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "turbulentMixingLengthFrequencyInletFvPatchScalarField.H" -#include "addToRunTimeSelectionTable.H" -#include "fvPatchFieldMapper.H" -#include "surfaceFields.H" -#include "volFields.H" -#include "RASModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -turbulentMixingLengthFrequencyInletFvPatchScalarField:: -turbulentMixingLengthFrequencyInletFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedValueFvPatchField<scalar>(p, iF), - mixingLength_(0.0), - kName_("undefined-k") -{} - -turbulentMixingLengthFrequencyInletFvPatchScalarField:: -turbulentMixingLengthFrequencyInletFvPatchScalarField -( - const turbulentMixingLengthFrequencyInletFvPatchScalarField& ptf, - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const fvPatchFieldMapper& mapper -) -: - fixedValueFvPatchField<scalar>(ptf, p, iF, mapper), - mixingLength_(ptf.mixingLength_), - kName_(ptf.kName_) -{} - -turbulentMixingLengthFrequencyInletFvPatchScalarField:: -turbulentMixingLengthFrequencyInletFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const dictionary& dict -) -: - fixedValueFvPatchField<scalar>(p, iF, dict), - mixingLength_(readScalar(dict.lookup("mixingLength"))), - kName_(dict.lookup("k")) -{} - -turbulentMixingLengthFrequencyInletFvPatchScalarField:: -turbulentMixingLengthFrequencyInletFvPatchScalarField -( - const turbulentMixingLengthFrequencyInletFvPatchScalarField& ptf -) -: - fixedValueFvPatchField<scalar>(ptf), - mixingLength_(ptf.mixingLength_), - kName_(ptf.kName_) -{} - -turbulentMixingLengthFrequencyInletFvPatchScalarField:: -turbulentMixingLengthFrequencyInletFvPatchScalarField -( - const turbulentMixingLengthFrequencyInletFvPatchScalarField& ptf, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedValueFvPatchField<scalar>(ptf, iF), - mixingLength_(ptf.mixingLength_), - kName_(ptf.kName_) -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void turbulentMixingLengthFrequencyInletFvPatchScalarField::updateCoeffs() -{ - if (updated()) - { - return; - } - - // Lookup Cmu corresponding to the turbulence model selected - const compressible::RASModel& RAS = - db().lookupObject<compressible::RASModel>("RASProperties"); - scalar Cmu = readScalar(RAS.coeffDict().lookup("Cmu")); - - scalar Cmu25 = pow(Cmu, 0.25); - - const fvPatchField<scalar>& kp = - patch().lookupPatchField<volScalarField, scalar>(kName_); - - operator==(sqrt(kp)/(Cmu25*mixingLength_)); - - fixedValueFvPatchField<scalar>::updateCoeffs(); -} - - -void turbulentMixingLengthFrequencyInletFvPatchScalarField::write -( - Ostream& os -) const -{ - fvPatchField<scalar>::write(os); - os.writeKeyword("mixingLength") - << mixingLength_ << token::END_STATEMENT << nl; - os.writeKeyword("k") << kName_ << token::END_STATEMENT << nl; - writeEntry("value", os); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -makePatchTypeField -( - fvPatchScalarField, - turbulentMixingLengthFrequencyInletFvPatchScalarField -); - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace compressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.H b/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.H deleted file mode 100644 index ebba209f1ef..00000000000 --- a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.H +++ /dev/null @@ -1,171 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 2006-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::compressible::turbulentMixingLengthFrequencyInletFvPatchScalarField - -Description - Calculate omega via the mixing length - - Example of the boundary condition specification: - @verbatim - inlet - { - type turbulentMixingLengthFrequencyInlet; - mixingLength 0.005; // 5 mm - k k; // turbulent k field - value uniform 5; // initial value - } - @endverbatim - -SourceFiles - turbulentMixingLengthFrequencyInletFvPatchScalarField.C - -\*---------------------------------------------------------------------------*/ - -#ifndef compressibleturbulentMixingLengthFrequencyInletFvPatchScalarField_H -#define compressibleturbulentMixingLengthFrequencyInletFvPatchScalarField_H - -#include "fixedValueFvPatchFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ - -/*---------------------------------------------------------------------------*\ - Class turbulentMixingLengthFrequencyInletFvPatchScalarField Declaration -\*---------------------------------------------------------------------------*/ - -class turbulentMixingLengthFrequencyInletFvPatchScalarField -: - public fixedValueFvPatchScalarField -{ - // Private data - - //- Turbulent length scale - scalar mixingLength_; - - //- Name of the turbulent kinetic energy field - word kName_; - - -public: - - //- Runtime type information - TypeName("turbulentMixingLengthFrequencyInlet"); - - - // Constructors - - //- Construct from patch and internal field - turbulentMixingLengthFrequencyInletFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct from patch, internal field and dictionary - turbulentMixingLengthFrequencyInletFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const dictionary& - ); - - //- Construct by mapping given - // turbulentMixingLengthFrequencyInletFvPatchScalarField - // onto a new patch - turbulentMixingLengthFrequencyInletFvPatchScalarField - ( - const turbulentMixingLengthFrequencyInletFvPatchScalarField&, - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const fvPatchFieldMapper& - ); - - //- Construct as copy - turbulentMixingLengthFrequencyInletFvPatchScalarField - ( - const turbulentMixingLengthFrequencyInletFvPatchScalarField& - ); - - //- Construct and return a clone - virtual tmp<fvPatchScalarField> clone() const - { - return tmp<fvPatchScalarField> - ( - new turbulentMixingLengthFrequencyInletFvPatchScalarField - ( - *this - ) - ); - } - - //- Construct as copy setting internal field reference - turbulentMixingLengthFrequencyInletFvPatchScalarField - ( - const turbulentMixingLengthFrequencyInletFvPatchScalarField&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct and return a clone setting internal field reference - virtual tmp<fvPatchScalarField> clone - ( - const DimensionedField<scalar, volMesh>& iF - ) const - { - return tmp<fvPatchScalarField> - ( - new turbulentMixingLengthFrequencyInletFvPatchScalarField - ( - *this, - iF - ) - ); - } - - - // Member functions - - //- Update the coefficients associated with the patch field - virtual void updateCoeffs(); - - //- Write - virtual void write(Ostream&) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace compressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.C b/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.C deleted file mode 100644 index a34631cc3c2..00000000000 --- a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.C +++ /dev/null @@ -1,132 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "alphatWallFunctionFvPatchScalarField.H" -#include "RASModel.H" -#include "fvPatchFieldMapper.H" -#include "volFields.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -alphatWallFunctionFvPatchScalarField:: -alphatWallFunctionFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedValueFvPatchScalarField(p, iF) -{} - - -alphatWallFunctionFvPatchScalarField:: -alphatWallFunctionFvPatchScalarField -( - const alphatWallFunctionFvPatchScalarField& ptf, - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const fvPatchFieldMapper& mapper -) -: - fixedValueFvPatchScalarField(ptf, p, iF, mapper) -{} - - -alphatWallFunctionFvPatchScalarField:: -alphatWallFunctionFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const dictionary& dict -) -: - fixedValueFvPatchScalarField(p, iF, dict) -{} - - -alphatWallFunctionFvPatchScalarField:: -alphatWallFunctionFvPatchScalarField -( - const alphatWallFunctionFvPatchScalarField& awfpsf -) -: - fixedValueFvPatchScalarField(awfpsf) -{} - - -alphatWallFunctionFvPatchScalarField:: -alphatWallFunctionFvPatchScalarField -( - const alphatWallFunctionFvPatchScalarField& awfpsf, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedValueFvPatchScalarField(awfpsf, iF) -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void alphatWallFunctionFvPatchScalarField::updateCoeffs() -{ - const RASModel& ras = db().lookupObject<RASModel>("RASProperties"); - const scalar Prt = ras.Prt().value(); - - const scalarField& mutw = - patch().lookupPatchField<volScalarField, scalar>("mut"); - - operator==(mutw/Prt); -} - - -void alphatWallFunctionFvPatchScalarField::write(Ostream& os) const -{ - fvPatchField<scalar>::write(os); - writeEntry("value", os); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -makePatchTypeField(fvPatchScalarField, alphatWallFunctionFvPatchScalarField); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace compressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.H b/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.H deleted file mode 100644 index d94775a342e..00000000000 --- a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatWallFunction/alphatWallFunctionFvPatchScalarField.H +++ /dev/null @@ -1,155 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::compressible::RASModels::alphatWallFunctionFvPatchScalarField - -Description - Boundary condition for turbulent thermal diffusivity when using wall - functions - - replicates OpenFOAM v1.5 (and earlier) behaviour - -SourceFiles - alphatWallFunctionFvPatchScalarField.C - -\*---------------------------------------------------------------------------*/ - -#ifndef alphatWallFunctionFvPatchScalarField_H -#define alphatWallFunctionFvPatchScalarField_H - -#include "fixedValueFvPatchFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class alphatWallFunctionFvPatchScalarField Declaration -\*---------------------------------------------------------------------------*/ - -class alphatWallFunctionFvPatchScalarField -: - public fixedValueFvPatchScalarField -{ - -public: - - //- Runtime type information - TypeName("alphatWallFunction"); - - - // Constructors - - //- Construct from patch and internal field - alphatWallFunctionFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct from patch, internal field and dictionary - alphatWallFunctionFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const dictionary& - ); - - //- Construct by mapping given - // alphatWallFunctionFvPatchScalarField - // onto a new patch - alphatWallFunctionFvPatchScalarField - ( - const alphatWallFunctionFvPatchScalarField&, - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const fvPatchFieldMapper& - ); - - //- Construct as copy - alphatWallFunctionFvPatchScalarField - ( - const alphatWallFunctionFvPatchScalarField& - ); - - //- Construct and return a clone - virtual tmp<fvPatchScalarField> clone() const - { - return tmp<fvPatchScalarField> - ( - new alphatWallFunctionFvPatchScalarField(*this) - ); - } - - //- Construct as copy setting internal field reference - alphatWallFunctionFvPatchScalarField - ( - const alphatWallFunctionFvPatchScalarField&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct and return a clone setting internal field reference - virtual tmp<fvPatchScalarField> clone - ( - const DimensionedField<scalar, volMesh>& iF - ) const - { - return tmp<fvPatchScalarField> - ( - new alphatWallFunctionFvPatchScalarField(*this, iF) - ); - } - - - // Member functions - - // Evaluation functions - - //- Update the coefficients associated with the patch field - virtual void updateCoeffs(); - - - // I-O - - //- Write - void write(Ostream&) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace compressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.C b/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.C deleted file mode 100644 index b22c101340d..00000000000 --- a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.C +++ /dev/null @@ -1,218 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "epsilonWallFunctionFvPatchScalarField.H" -#include "RASModel.H" -#include "fvPatchFieldMapper.H" -#include "volFields.H" -#include "addToRunTimeSelectionTable.H" -#include "wallFvPatch.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -void epsilonWallFunctionFvPatchScalarField::checkType() -{ - if (!isA<wallFvPatch>(patch())) - { - FatalErrorIn("epsilonWallFunctionFvPatchScalarField::checkType()") - << "Invalid wall function specification" << nl - << " Patch type for patch " << patch().name() - << " must be wall" << nl - << " Current patch type is " << patch().type() << nl << endl - << abort(FatalError); - } -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedInternalValueFvPatchField<scalar>(p, iF) -{ - checkType(); -} - - -epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField -( - const epsilonWallFunctionFvPatchScalarField& ptf, - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const fvPatchFieldMapper& mapper -) -: - fixedInternalValueFvPatchField<scalar>(ptf, p, iF, mapper) -{ - checkType(); -} - - -epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const dictionary& dict -) -: - fixedInternalValueFvPatchField<scalar>(p, iF, dict) -{ - checkType(); -} - - -epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField -( - const epsilonWallFunctionFvPatchScalarField& ewfpsf -) -: - fixedInternalValueFvPatchField<scalar>(ewfpsf) -{ - checkType(); -} - - -epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField -( - const epsilonWallFunctionFvPatchScalarField& ewfpsf, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedInternalValueFvPatchField<scalar>(ewfpsf, iF) -{ - checkType(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void epsilonWallFunctionFvPatchScalarField::updateCoeffs() -{ - const RASModel& ras = db().lookupObject<RASModel>("RASProperties"); - - const scalar Cmu = ras.Cmu().value(); - const scalar Cmu25 = pow(Cmu, 0.25); - const scalar Cmu75 = pow(Cmu, 0.75); - const scalar kappa = ras.kappa().value(); - const scalar yPlusLam = ras.yPlusLam(); - - const scalarField& y = ras.y()[patch().index()]; - - volScalarField& G = const_cast<volScalarField&> - (db().lookupObject<volScalarField>("G")); - - volScalarField& epsilon = const_cast<volScalarField&> - (db().lookupObject<volScalarField>("epsilon")); - - const volScalarField& k = db().lookupObject<volScalarField>("k"); - - const scalarField& rhow = - patch().lookupPatchField<volScalarField, scalar>("rho"); - - const scalarField& muw = - patch().lookupPatchField<volScalarField, scalar>("mu"); - - const scalarField& mutw = - patch().lookupPatchField<volScalarField, scalar>("mut"); - - const fvPatchVectorField& Uw = - patch().lookupPatchField<volVectorField, vector>("U"); - - const scalarField magGradUw = mag(Uw.snGrad()); - - // Set epsilon and G - forAll(mutw, faceI) - { - label faceCellI = patch().faceCells()[faceI]; - - scalar yPlus = - Cmu25*y[faceI]*sqrt(k[faceCellI]) - /(muw[faceI]/rhow[faceI]); - - epsilon[faceCellI] = Cmu75*pow(k[faceCellI], 1.5)/(kappa*y[faceI]); - - if (yPlus > yPlusLam) - { - G[faceCellI] = - (mutw[faceI] + muw[faceI]) - *magGradUw[faceI] - *Cmu25*sqrt(k[faceCellI]) - /(kappa*y[faceI]); - } - else - { - G[faceCellI] = 0.0; - } - } - - // TODO: perform averaging for cells sharing more than one boundary face -} - - -void epsilonWallFunctionFvPatchScalarField::evaluate -( - const Pstream::commsTypes commsType -) -{ - fixedInternalValueFvPatchField<scalar>::evaluate(commsType); -} - - -void epsilonWallFunctionFvPatchScalarField::write(Ostream& os) const -{ - fixedInternalValueFvPatchField<scalar>::write(os); - writeEntry("value", os); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -makePatchTypeField -( - fvPatchScalarField, - epsilonWallFunctionFvPatchScalarField -); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace compressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H b/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H deleted file mode 100644 index 2cb6b336bfb..00000000000 --- a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H +++ /dev/null @@ -1,164 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::compressible::RASModels::epsilonWallFunctionFvPatchScalarField - -Description - Boundary condition for epsilon when using wall functions - - calculates epsilon and G - - epsilon values added directly into the matrix to act as a constraint - -SourceFiles - epsilonWallFunctionFvPatchScalarField.C - -\*---------------------------------------------------------------------------*/ - -#ifndef epsilonWallFunctionFvPatchScalarField_H -#define epsilonWallFunctionFvPatchScalarField_H - -#include "fixedInternalValueFvPatchField.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class epsilonWallFunctionFvPatchScalarField Declaration -\*---------------------------------------------------------------------------*/ - -class epsilonWallFunctionFvPatchScalarField -: - public fixedInternalValueFvPatchField<scalar> -{ - - // Private member functions - - //- Check the type of the patch - void checkType(); - - -public: - - //- Runtime type information - TypeName("epsilonWallFunction"); - - - // Constructors - - //- Construct from patch and internal field - epsilonWallFunctionFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct from patch, internal field and dictionary - epsilonWallFunctionFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const dictionary& - ); - - //- Construct by mapping given - // epsilonWallFunctionFvPatchScalarField - // onto a new patch - epsilonWallFunctionFvPatchScalarField - ( - const epsilonWallFunctionFvPatchScalarField&, - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const fvPatchFieldMapper& - ); - - //- Construct as copy - epsilonWallFunctionFvPatchScalarField - ( - const epsilonWallFunctionFvPatchScalarField& - ); - - //- Construct and return a clone - virtual tmp<fvPatchScalarField> clone() const - { - return tmp<fvPatchScalarField> - ( - new epsilonWallFunctionFvPatchScalarField(*this) - ); - } - - //- Construct as copy setting internal field reference - epsilonWallFunctionFvPatchScalarField - ( - const epsilonWallFunctionFvPatchScalarField&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct and return a clone setting internal field reference - virtual tmp<fvPatchScalarField> clone - ( - const DimensionedField<scalar, volMesh>& iF - ) const - { - return tmp<fvPatchScalarField> - ( - new epsilonWallFunctionFvPatchScalarField(*this, iF) - ); - } - - - // Member functions - - // Evaluation functions - - //- Update the coefficients associated with the patch field - virtual void updateCoeffs(); - - //- Evaluate the patchField - virtual void evaluate(const Pstream::commsTypes); - - - // I-O - - //- Write - void write(Ostream&) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace compressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchField.C b/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchField.C deleted file mode 100644 index 9f6a7d71f99..00000000000 --- a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchField.C +++ /dev/null @@ -1,155 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "kQRWallFunctionFvPatchField.H" -#include "RASModel.H" -#include "fvPatchFieldMapper.H" -#include "volFields.H" -#include "addToRunTimeSelectionTable.H" -#include "wallFvPatch.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -template<class Type> -void kQRWallFunctionFvPatchField<Type>::checkType() -{ - if (!isA<wallFvPatch>(this->patch())) - { - FatalErrorIn("kQRWallFunctionFvPatchField::checkType()") - << "Invalid wall function specification" << nl - << " Patch type for patch " << this->patch().name() - << " must be wall" << nl - << " Current patch type is " << this->patch().type() - << nl << endl << abort(FatalError); - } -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -template<class Type> -kQRWallFunctionFvPatchField<Type>::kQRWallFunctionFvPatchField -( - const fvPatch& p, - const DimensionedField<Type, volMesh>& iF -) -: - zeroGradientFvPatchField<Type>(p, iF) -{ - checkType(); -} - - -template<class Type> -kQRWallFunctionFvPatchField<Type>::kQRWallFunctionFvPatchField -( - const kQRWallFunctionFvPatchField& ptf, - const fvPatch& p, - const DimensionedField<Type, volMesh>& iF, - const fvPatchFieldMapper& mapper -) -: - zeroGradientFvPatchField<Type>(ptf, p, iF, mapper) -{ - checkType(); -} - - -template<class Type> -kQRWallFunctionFvPatchField<Type>::kQRWallFunctionFvPatchField -( - const fvPatch& p, - const DimensionedField<Type, volMesh>& iF, - const dictionary& dict -) -: - zeroGradientFvPatchField<Type>(p, iF, dict) -{ - checkType(); -} - - -template<class Type> -kQRWallFunctionFvPatchField<Type>::kQRWallFunctionFvPatchField -( - const kQRWallFunctionFvPatchField& tkqrwfpf -) -: - zeroGradientFvPatchField<Type>(tkqrwfpf) -{ - checkType(); -} - - -template<class Type> -kQRWallFunctionFvPatchField<Type>::kQRWallFunctionFvPatchField -( - const kQRWallFunctionFvPatchField& tkqrwfpf, - const DimensionedField<Type, volMesh>& iF -) -: - zeroGradientFvPatchField<Type>(tkqrwfpf, iF) -{ - checkType(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -template<class Type> -void kQRWallFunctionFvPatchField<Type>::evaluate -( - const Pstream::commsTypes commsType -) -{ - zeroGradientFvPatchField<Type>::evaluate(commsType); -} - - -template<class Type> -void kQRWallFunctionFvPatchField<Type>::write(Ostream& os) const -{ - zeroGradientFvPatchField<Type>::write(os); - this->writeEntry("value", os); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace compressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchField.H b/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchField.H deleted file mode 100644 index 05ed2fbcb81..00000000000 --- a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchField.H +++ /dev/null @@ -1,170 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::compressible::RASModels::kQRWallFunctionFvPatchField - -Description - Boundary condition for turbulence k, Q, and R when using wall functions. - Simply acts as a zero gradient condition. - -SourceFiles - kQRWallFunctionFvPatchField.C - -\*---------------------------------------------------------------------------*/ - -#ifndef kQRWallFunctionFvPatchField_H -#define kQRWallFunctionFvPatchField_H - -#include "zeroGradientFvPatchField.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class kQRWallFunctionFvPatchField Declaration -\*---------------------------------------------------------------------------*/ - -template<class Type> -class kQRWallFunctionFvPatchField -: - public zeroGradientFvPatchField<Type> -{ - - // Private member functions - - //- Check the type of the patch - void checkType(); - - -public: - - //- Runtime type information - TypeName("kQRWallFunction"); - - - // Constructors - - //- Construct from patch and internal field - kQRWallFunctionFvPatchField - ( - const fvPatch&, - const DimensionedField<Type, volMesh>& - ); - - //- Construct from patch, internal field and dictionary - kQRWallFunctionFvPatchField - ( - const fvPatch&, - const DimensionedField<Type, volMesh>&, - const dictionary& - ); - - //- Construct by mapping given - // kQRWallFunctionFvPatchField - // onto a new patch - kQRWallFunctionFvPatchField - ( - const kQRWallFunctionFvPatchField&, - const fvPatch&, - const DimensionedField<Type, volMesh>&, - const fvPatchFieldMapper& - ); - - //- Construct as copy - kQRWallFunctionFvPatchField - ( - const kQRWallFunctionFvPatchField& - ); - - //- Construct and return a clone - virtual tmp<fvPatchField<Type> > clone() const - { - return tmp<fvPatchField<Type> > - ( - new kQRWallFunctionFvPatchField(*this) - ); - } - - //- Construct as copy setting internal field reference - kQRWallFunctionFvPatchField - ( - const kQRWallFunctionFvPatchField&, - const DimensionedField<Type, volMesh>& - ); - - //- Construct and return a clone setting internal field reference - virtual tmp<fvPatchField<Type> > clone - ( - const DimensionedField<Type, volMesh>& iF - ) const - { - return tmp<fvPatchField<Type> > - ( - new kQRWallFunctionFvPatchField(*this, iF) - ); - } - - - // Member functions - - // Evaluation functions - - //- Evaluate the patchField - virtual void evaluate - ( - const Pstream::commsTypes commsType=Pstream::Pstream::blocking - ); - - - // I-O - - //- Write - void write(Ostream&) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace compressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#ifdef NoRepository -# include "kQRWallFunctionFvPatchField.C" -#endif - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchFields.C b/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchFields.C deleted file mode 100644 index 6942ba56b12..00000000000 --- a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchFields.C +++ /dev/null @@ -1,51 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "kQRWallFunctionFvPatchFields.H" -#include "fvPatchFields.H" -#include "addToRunTimeSelectionTable.H" -#include "volFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -makePatchFields(kQRWallFunction); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace compressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchFields.H b/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchFields.H deleted file mode 100644 index e1297548bee..00000000000 --- a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchFields.H +++ /dev/null @@ -1,56 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#ifndef kQRWallFunctionFvPatchFields_H -#define kQRWallFunctionFvPatchFields_H - -#include "kQRWallFunctionFvPatchField.H" -#include "fieldTypes.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -makePatchTypeFieldTypedefs(kQRWallFunction) - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace compressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutRoughWallFunction/mutRoughWallFunctionFvPatchScalarField.C b/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutRoughWallFunction/mutRoughWallFunctionFvPatchScalarField.C deleted file mode 100644 index 67ad5536df5..00000000000 --- a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutRoughWallFunction/mutRoughWallFunctionFvPatchScalarField.C +++ /dev/null @@ -1,248 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "mutRoughWallFunctionFvPatchScalarField.H" -#include "RASModel.H" -#include "fvPatchFieldMapper.H" -#include "volFields.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace RASModels -{ - - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -scalar mutRoughWallFunctionFvPatchScalarField::fnRough -( - const scalar KsPlus, - const scalar Cs, - const scalar kappa -) const -{ - // Set deltaB based on non-dimensional roughness height - scalar deltaB = 0.0; - if (KsPlus < 90.0) - { - deltaB = - 1.0/kappa - *log((KsPlus - 2.25)/87.75 + Cs*KsPlus) - *sin(0.4258*(log(KsPlus) - 0.811)); - } - else - { - deltaB = 1.0/kappa*log(1.0 + Cs*KsPlus); - } - - return exp(min(deltaB*kappa, 50.0)); -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -mutRoughWallFunctionFvPatchScalarField:: -mutRoughWallFunctionFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedValueFvPatchScalarField(p, iF), - Ks_(p.size(), 0.0), - Cs_(p.size(), 0.0) -{} - - -mutRoughWallFunctionFvPatchScalarField:: -mutRoughWallFunctionFvPatchScalarField -( - const mutRoughWallFunctionFvPatchScalarField& ptf, - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const fvPatchFieldMapper& mapper -) -: - fixedValueFvPatchScalarField(ptf, p, iF, mapper), - Ks_(ptf.Ks_, mapper), - Cs_(ptf.Cs_, mapper) -{} - - -mutRoughWallFunctionFvPatchScalarField:: -mutRoughWallFunctionFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const dictionary& dict -) -: - fixedValueFvPatchScalarField(p, iF, dict), - Ks_("Ks", dict, p.size()), - Cs_("Cs", dict, p.size()) -{} - - -mutRoughWallFunctionFvPatchScalarField:: -mutRoughWallFunctionFvPatchScalarField -( - const mutRoughWallFunctionFvPatchScalarField& nrwfpsf -) -: - fixedValueFvPatchScalarField(nrwfpsf), - Ks_(nrwfpsf.Ks_), - Cs_(nrwfpsf.Cs_) -{} - - -mutRoughWallFunctionFvPatchScalarField:: -mutRoughWallFunctionFvPatchScalarField -( - const mutRoughWallFunctionFvPatchScalarField& nrwfpsf, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedValueFvPatchScalarField(nrwfpsf, iF), - Ks_(nrwfpsf.Ks_), - Cs_(nrwfpsf.Cs_) -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void mutRoughWallFunctionFvPatchScalarField::autoMap -( - const fvPatchFieldMapper& m -) -{ - fixedValueFvPatchScalarField::autoMap(m); - Ks_.autoMap(m); - Cs_.autoMap(m); -} - - -void mutRoughWallFunctionFvPatchScalarField::rmap -( - const fvPatchScalarField& ptf, - const labelList& addr -) -{ - fixedValueFvPatchScalarField::rmap(ptf, addr); - - const mutRoughWallFunctionFvPatchScalarField& nrwfpsf = - refCast<const mutRoughWallFunctionFvPatchScalarField>(ptf); - - Cs_.rmap(nrwfpsf.Cs_, addr); - Ks_.rmap(nrwfpsf.Ks_, addr); -} - - -void mutRoughWallFunctionFvPatchScalarField::updateCoeffs() -{ - const RASModel& ras = db().lookupObject<RASModel>("RASProperties"); - - const scalar Cmu = ras.Cmu().value(); - const scalar Cmu25 = pow(Cmu, 0.25); - const scalar kappa = ras.kappa().value(); - const scalar E = ras.E().value(); - scalar yPlusLam = ras.yPlusLam(); - - const scalarField& y = ras.y()[patch().index()]; - - const scalarField& rhow = - patch().lookupPatchField<volScalarField, scalar>("rho"); - - const scalarField& k = db().lookupObject<volScalarField>("k"); - - const scalarField& muw = - patch().lookupPatchField<volScalarField, scalar>("mu"); - - scalarField& mutw = *this; - - forAll(mutw, faceI) - { - label faceCellI = patch().faceCells()[faceI]; - - scalar uStar = Cmu25*sqrt(k[faceCellI]); - - scalar yPlus = uStar*y[faceI]/(muw[faceI]/rhow[faceI]); - - scalar KsPlus = uStar*Ks_[faceI]/(muw[faceI]/rhow[faceI]); - - scalar Edash = E; - scalar yPlusLamNew = yPlusLam; - if (KsPlus > 2.25) - { - Edash = E/fnRough(KsPlus, Cs_[faceI], kappa); - yPlusLam = ras.yPlusLam(kappa, Edash); - } - - if (debug) - { - Info<< "yPlus = " << yPlus - << ", KsPlus = " << KsPlus - << ", Edash = " << Edash - << ", yPlusLam = " << yPlusLam - << endl; - } - - if (yPlus > yPlusLamNew) - { - mutw[faceI] = muw[faceI]*(yPlus*kappa/log(Edash*yPlus) - 1); - } - else - { - mutw[faceI] = 0.0; - } - } -} - - -void mutRoughWallFunctionFvPatchScalarField::write(Ostream& os) const -{ - fvPatchField<scalar>::write(os); - Cs_.writeEntry("Cs", os); - Ks_.writeEntry("Ks", os); - writeEntry("value", os); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -makePatchTypeField(fvPatchScalarField, mutRoughWallFunctionFvPatchScalarField); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace compressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutRoughWallFunction/mutRoughWallFunctionFvPatchScalarField.H b/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutRoughWallFunction/mutRoughWallFunctionFvPatchScalarField.H deleted file mode 100644 index 830e320646c..00000000000 --- a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutRoughWallFunction/mutRoughWallFunctionFvPatchScalarField.H +++ /dev/null @@ -1,194 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::compressible::RASModels::nutRoughWallFunctionFvPatchScalarField - -Description - Boundary condition for turbulent (kinematic) viscosity when using wall - functions for rough walls. - - Manipulates the E parameter to account for roughness effects, based on - KsPlus. - - - roughness height = sand-grain roughness (0 for smooth walls) - - roughness constant = 0.5-1.0 (0.5 default) - -SourceFiles - mutRoughWallFunctionFvPatchScalarField.C - -\*---------------------------------------------------------------------------*/ - -#ifndef mutRoughWallFunctionFvPatchScalarField_H -#define mutRoughWallFunctionFvPatchScalarField_H - -#include "fixedValueFvPatchFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class mutRoughWallFunctionFvPatchScalarField Declaration -\*---------------------------------------------------------------------------*/ - -class mutRoughWallFunctionFvPatchScalarField -: - public fixedValueFvPatchScalarField -{ - // Private data - - //- Roughness height - scalarField Ks_; - - //- Roughness constant - scalarField Cs_; - - - // Private member functions - - //- Compute the roughness function - scalar fnRough - ( - const scalar KsPlus, - const scalar Cs, - const scalar kappa - ) const; - - -public: - - //- Runtime type information - TypeName("mutRoughWallFunction"); - - - // Constructors - - //- Construct from patch and internal field - mutRoughWallFunctionFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct from patch, internal field and dictionary - mutRoughWallFunctionFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const dictionary& - ); - - //- Construct by mapping given - // mutRoughWallFunctionFvPatchScalarField - // onto a new patch - mutRoughWallFunctionFvPatchScalarField - ( - const mutRoughWallFunctionFvPatchScalarField&, - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const fvPatchFieldMapper& - ); - - //- Construct as copy - mutRoughWallFunctionFvPatchScalarField - ( - const mutRoughWallFunctionFvPatchScalarField& - ); - - //- Construct and return a clone - virtual tmp<fvPatchScalarField> clone() const - { - return tmp<fvPatchScalarField> - ( - new mutRoughWallFunctionFvPatchScalarField(*this) - ); - } - - //- Construct as copy setting internal field reference - mutRoughWallFunctionFvPatchScalarField - ( - const mutRoughWallFunctionFvPatchScalarField&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct and return a clone setting internal field reference - virtual tmp<fvPatchScalarField> clone - ( - const DimensionedField<scalar, volMesh>& iF - ) const - { - return tmp<fvPatchScalarField> - ( - new mutRoughWallFunctionFvPatchScalarField(*this, iF) - ); - } - - - // Member functions - - // Mapping functions - - //- Map (and resize as needed) from self given a mapping object - virtual void autoMap - ( - const fvPatchFieldMapper& - ); - - //- Reverse map the given fvPatchField onto this fvPatchField - virtual void rmap - ( - const fvPatchScalarField&, - const labelList& - ); - - // Evaluation functions - - //- Update the coefficients associated with the patch field - virtual void updateCoeffs(); - - - // I-O - - //- Write - void write(Ostream&) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace compressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardRoughWallFunction/mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.C b/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardRoughWallFunction/mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.C deleted file mode 100644 index 8cff5793be3..00000000000 --- a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardRoughWallFunction/mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.C +++ /dev/null @@ -1,314 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.H" -#include "RASModel.H" -#include "fvPatchFieldMapper.H" -#include "volFields.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField:: -mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedValueFvPatchScalarField(p, iF), - roughnessHeight_(pTraits<scalar>::zero), - roughnessConstant_(pTraits<scalar>::zero), - roughnessFudgeFactor_(pTraits<scalar>::zero) -{} - - -mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField:: -mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField -( - const mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField& ptf, - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const fvPatchFieldMapper& mapper -) -: - fixedValueFvPatchScalarField(ptf, p, iF, mapper), - roughnessHeight_(ptf.roughnessHeight_), - roughnessConstant_(ptf.roughnessConstant_), - roughnessFudgeFactor_(ptf.roughnessFudgeFactor_) -{} - - -mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField:: -mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const dictionary& dict -) -: - fixedValueFvPatchScalarField(p, iF, dict), - roughnessHeight_(readScalar(dict.lookup("roughnessHeight"))), - roughnessConstant_(readScalar(dict.lookup("roughnessConstant"))), - roughnessFudgeFactor_(readScalar(dict.lookup("roughnessFudgeFactor"))) -{} - - -mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField:: -mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField -( - const mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField& tppsf -) -: - fixedValueFvPatchScalarField(tppsf), - roughnessHeight_(tppsf.roughnessHeight_), - roughnessConstant_(tppsf.roughnessConstant_), - roughnessFudgeFactor_(tppsf.roughnessFudgeFactor_) -{} - - -mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField:: -mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField -( - const mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField& tppsf, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedValueFvPatchScalarField(tppsf, iF), - roughnessHeight_(tppsf.roughnessHeight_), - roughnessConstant_(tppsf.roughnessConstant_), - roughnessFudgeFactor_(tppsf.roughnessFudgeFactor_) -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField::evaluate -( - const Pstream::commsTypes -) -{ - const RASModel& rasModel - = db().lookupObject<RASModel>("RASProperties"); - - const scalar kappa = rasModel.kappa().value(); - const scalar E = rasModel.E().value(); - const scalar yPlusLam = 11.225; - - // The reciprical of the distance to the adjacent cell centre. - const scalarField& ry = patch().deltaCoeffs(); - - const fvPatchVectorField& U = - patch().lookupPatchField<volVectorField, vector>("U"); - - const fvPatchScalarField& rho = - patch().lookupPatchField<volScalarField, scalar>("rho"); - - // The flow velocity at the adjacent cell centre. - scalarField magUp = mag(U.patchInternalField() - U); - - const scalarField& muw = - patch().lookupPatchField<volScalarField, scalar>("mu"); - scalarField& mutw = *this; - - scalarField magFaceGradU = mag(U.snGrad()); - - if(roughnessHeight_ > 0.0) - { - // Rough Walls. - const scalar c_1 = 1/(90 - 2.25) + roughnessConstant_; - static const scalar c_2 = 2.25/(90 - 2.25); - static const scalar c_3 = 2.0*atan(1.0)/log(90/2.25); - static const scalar c_4 = c_3*log(2.25); - - //if (KsPlusBasedOnYPlus_) - { - // If KsPlus is based on YPlus the extra term added to the law - // of the wall will depend on yPlus. - forAll(mutw, facei) - { - const scalar magUpara = magUp[facei]; - const scalar Re = rho[facei]*magUpara/(muw[facei]*ry[facei]); - const scalar kappaRe = kappa*Re; - - scalar yPlus = yPlusLam; - const scalar ryPlusLam = 1.0/yPlus; - - int iter = 0; - scalar yPlusLast = 0.0; - scalar dKsPlusdYPlus = roughnessHeight_*ry[facei]; - - // Enforce the roughnessHeight to be less than the distance to - // the first cell centre. - if(dKsPlusdYPlus > 1) - { - dKsPlusdYPlus = 1; - } - - // Fudge factor to get results to be similar to fluent - // (at least difference between rough and smooth). - dKsPlusdYPlus *= roughnessFudgeFactor_; - - do - { - yPlusLast = yPlus; - - // The non-dimensional roughness height. - scalar KsPlus = yPlus*dKsPlusdYPlus; - - // The extra term in the law-of-the-wall. - scalar G = 0.0; - - scalar yPlusGPrime = 0.0; - - if (KsPlus >= 90) - { - const scalar t_1 = 1 + roughnessConstant_*KsPlus; - G = log(t_1); - yPlusGPrime = roughnessConstant_*KsPlus/t_1; - } - else if (KsPlus > 2.25) - { - const scalar t_1 = c_1*KsPlus - c_2; - const scalar t_2 = c_3*log(KsPlus) - c_4; - const scalar sint_2 = sin(t_2); - const scalar logt_1 = log(t_1); - G = logt_1*sint_2; - yPlusGPrime = - (c_1*sint_2*KsPlus/t_1) + (c_3*logt_1*cos(t_2)); - } - - scalar denom = 1.0 + log(E* yPlus) - G - yPlusGPrime; - if(mag(denom) > VSMALL) - { - yPlus = (kappaRe + yPlus*(1 - yPlusGPrime))/denom; - if( yPlus < 0 ) - { - yPlus = 0; - } - } - else - { - // Ensure immediate end and mutw = 0. - yPlus = 0; - } - - } while - ( - mag(ryPlusLam*(yPlus - yPlusLast)) > 0.0001 - && ++iter < 10 - && yPlus > VSMALL - ); - - if (yPlus > yPlusLam) - { - mutw[facei] = muw[facei]*(yPlus*yPlus/Re - 1); - } - else - { - mutw[facei] = 0.0; - } - } - } - } - else - { - // Smooth Walls. - forAll(mutw, facei) - { - const scalar magUpara = magUp[facei]; - const scalar Re = rho[facei]*magUpara/(muw[facei]*ry[facei]); - const scalar kappaRe = kappa*Re; - - scalar yPlus = yPlusLam; - const scalar ryPlusLam = 1.0/yPlus; - - int iter = 0; - scalar yPlusLast = 0.0; - - do - { - yPlusLast = yPlus; - yPlus = (kappaRe + yPlus)/(1.0 + log(E*yPlus)); - - } while - ( - mag(ryPlusLam*(yPlus - yPlusLast)) > 0.0001 - && ++iter < 10 - ); - - if (yPlus > yPlusLam) - { - mutw[facei] = muw[facei]*(yPlus*yPlus/Re - 1); - } - else - { - mutw[facei] = 0.0; - } - } - } -} - - -void mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField::write -( - Ostream& os -) const -{ - fixedValueFvPatchScalarField::write(os); - os.writeKeyword("roughnessHeight") - << roughnessHeight_ << token::END_STATEMENT << nl; - os.writeKeyword("roughnessConstant") - << roughnessConstant_ << token::END_STATEMENT << nl; - os.writeKeyword("roughnessFudgeFactor") - << roughnessFudgeFactor_ << token::END_STATEMENT << nl; -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -makePatchTypeField -( - fvPatchScalarField, - mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField -); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace compressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardRoughWallFunction/mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.H b/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardRoughWallFunction/mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.H deleted file mode 100644 index 7341cea2417..00000000000 --- a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardRoughWallFunction/mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.H +++ /dev/null @@ -1,208 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::compressible::RASModels:: - mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField - -Description - Wall function boundary condition for rough walls - -SourceFiles - mutSpalartAllamarasStandardWallFunctionFvPatchScalarField.C - -\*---------------------------------------------------------------------------*/ - -#ifndef mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField_H -#define mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField_H - -#include "fixedValueFvPatchFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ -Class mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField Declaration -\*---------------------------------------------------------------------------*/ - -class mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField -: - public fixedValueFvPatchScalarField -{ - // Private data - - scalar roughnessHeight_; - scalar roughnessConstant_; - scalar roughnessFudgeFactor_; - - -public: - - //- Runtime type information - TypeName("mutSpalartAllmarasStandardRoughWallFunction"); - - - // Constructors - - //- Construct from patch and internal field - mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct from patch, internal field and dictionary - mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const dictionary& - ); - - //- Construct by mapping given - // mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField - // onto a new patch - mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField - ( - const mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField&, - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const fvPatchFieldMapper& - ); - - //- Construct as copy - mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField - ( - const mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField& - ); - - //- Construct and return a clone - virtual tmp<fvPatchScalarField> clone() const - { - return tmp<fvPatchScalarField> - ( - new mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField - ( - *this - ) - ); - } - - //- Construct as copy setting internal field reference - mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField - ( - const mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct and return a clone setting internal field reference - virtual tmp<fvPatchScalarField> clone - ( - const DimensionedField<scalar, volMesh>& iF - ) const - { - return tmp<fvPatchScalarField> - ( - new mutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField - ( - *this, - iF - ) - ); - } - - - // Member functions - - // Access - - //- Return the fluctuation scale - const scalar& roughnessHeight() const - { - return roughnessHeight_; - } - - //- Return reference to the fluctuation scale to allow adjustment - scalar& roughnessHeight() - { - return roughnessHeight_; - } - - - //- Return the fluctuation scale - const scalar& roughnessConstant() const - { - return roughnessConstant_; - } - - //- Return reference to the fluctuation scale to allow adjustment - scalar& roughnessConstant() - { - return roughnessConstant_; - } - - //- Return the fluctuation scale - const scalar& roughnessFudgeFactor() const - { - return roughnessFudgeFactor_; - } - - //- Return reference to the fluctuation scale to allow adjustment - scalar& roughnessFudgeFactor() - { - return roughnessFudgeFactor_; - } - - - // Evaluation functions - - //- Evaluate the patchField - virtual void evaluate - ( - const Pstream::commsTypes commsType=Pstream::blocking - ); - - - //- Write - virtual void write(Ostream& os) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace compressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardWallFunction/mutSpalartAllmarasStandardWallFunctionFvPatchScalarField.C b/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardWallFunction/mutSpalartAllmarasStandardWallFunctionFvPatchScalarField.C deleted file mode 100644 index 669d0e72f84..00000000000 --- a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardWallFunction/mutSpalartAllmarasStandardWallFunctionFvPatchScalarField.C +++ /dev/null @@ -1,175 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "mutSpalartAllmarasStandardWallFunctionFvPatchScalarField.H" -#include "RASModel.H" -#include "fvPatchFieldMapper.H" -#include "volFields.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -mutSpalartAllmarasStandardWallFunctionFvPatchScalarField:: -mutSpalartAllmarasStandardWallFunctionFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedValueFvPatchScalarField(p, iF) -{} - - -mutSpalartAllmarasStandardWallFunctionFvPatchScalarField:: -mutSpalartAllmarasStandardWallFunctionFvPatchScalarField -( - const mutSpalartAllmarasStandardWallFunctionFvPatchScalarField& ptf, - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const fvPatchFieldMapper& mapper -) -: - fixedValueFvPatchScalarField(ptf, p, iF, mapper) -{} - - -mutSpalartAllmarasStandardWallFunctionFvPatchScalarField:: -mutSpalartAllmarasStandardWallFunctionFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const dictionary& dict -) -: - fixedValueFvPatchScalarField(p, iF, dict) -{} - - -mutSpalartAllmarasStandardWallFunctionFvPatchScalarField:: -mutSpalartAllmarasStandardWallFunctionFvPatchScalarField -( - const mutSpalartAllmarasStandardWallFunctionFvPatchScalarField& tppsf -) -: - fixedValueFvPatchScalarField(tppsf) -{} - - -mutSpalartAllmarasStandardWallFunctionFvPatchScalarField:: -mutSpalartAllmarasStandardWallFunctionFvPatchScalarField -( - const mutSpalartAllmarasStandardWallFunctionFvPatchScalarField& tppsf, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedValueFvPatchScalarField(tppsf, iF) -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void mutSpalartAllmarasStandardWallFunctionFvPatchScalarField::evaluate -( - const Pstream::commsTypes -) -{ - const RASModel& ras = db().lookupObject<RASModel>("RASProperties"); - - scalar kappa = ras.kappa().value(); - scalar E = ras.E().value(); - scalar yPlusLam = ras.yPlusLam(); - - const scalarField& ry = patch().deltaCoeffs(); - - const fvPatchVectorField& U = - patch().lookupPatchField<volVectorField, vector>("U"); - - scalarField magUp = mag(U.patchInternalField() - U); - - const scalarField& rhow = - patch().lookupPatchField<volScalarField, scalar>("rho"); - - const scalarField& muw = - patch().lookupPatchField<volScalarField, scalar>("mu"); - scalarField& mutw = *this; - - scalarField magFaceGradU = mag(U.snGrad()); - - forAll(mutw, faceI) - { - scalar magUpara = magUp[faceI]; - - scalar kappaRe = kappa*magUpara/((muw[faceI]/rhow[faceI])*ry[faceI]); - - scalar yPlus = yPlusLam; - scalar ryPlusLam = 1.0/yPlus; - - int iter = 0; - scalar yPlusLast = 0.0; - - do - { - yPlusLast = yPlus; - yPlus = (kappaRe + yPlus)/(1.0 + log(E*yPlus)); - - } while(mag(ryPlusLam*(yPlus - yPlusLast)) > 0.01 && ++iter < 10 ); - - if (yPlus > yPlusLam) - { - mutw[faceI] = muw[faceI]*(yPlus*kappa/log(E*yPlus) - 1); - } - else - { - mutw[faceI] = 0.0; - } - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -makePatchTypeField -( - fvPatchScalarField, - mutSpalartAllmarasStandardWallFunctionFvPatchScalarField -); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace compressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardWallFunction/mutSpalartAllmarasStandardWallFunctionFvPatchScalarField.H b/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardWallFunction/mutSpalartAllmarasStandardWallFunctionFvPatchScalarField.H deleted file mode 100644 index c55a1fb0c6a..00000000000 --- a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasStandardWallFunction/mutSpalartAllmarasStandardWallFunctionFvPatchScalarField.H +++ /dev/null @@ -1,158 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::compressible::RASModels:: - mutSpalartAllmarasStandardWallFunctionFvPatchScalarField - -Description - Wall function boundary condition for walls - -SourceFiles - mutSpalartAllmarasStandardWallFunctionFvPatchScalarField.C - -\*---------------------------------------------------------------------------*/ - -#ifndef mutSpalartAllmarasStandardWallFunctionFvPatchScalarField_H -#define mutSpalartAllmarasStandardWallFunctionFvPatchScalarField_H - -#include "fixedValueFvPatchFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class mutSpalartAllmarasStandardWallFunctionFvPatchScalarField Declaration -\*---------------------------------------------------------------------------*/ - -class mutSpalartAllmarasStandardWallFunctionFvPatchScalarField -: - public fixedValueFvPatchScalarField -{ - -public: - - //- Runtime type information - TypeName("mutSpalartAllmarasStandardWallFunction"); - - - // Constructors - - //- Construct from patch and internal field - mutSpalartAllmarasStandardWallFunctionFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct from patch, internal field and dictionary - mutSpalartAllmarasStandardWallFunctionFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const dictionary& - ); - - //- Construct by mapping given - // mutSpalartAllmarasStandardWallFunctionFvPatchScalarField - // onto a new patch - mutSpalartAllmarasStandardWallFunctionFvPatchScalarField - ( - const mutSpalartAllmarasStandardWallFunctionFvPatchScalarField&, - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const fvPatchFieldMapper& - ); - - //- Construct as copy - mutSpalartAllmarasStandardWallFunctionFvPatchScalarField - ( - const mutSpalartAllmarasStandardWallFunctionFvPatchScalarField& - ); - - //- Construct and return a clone - virtual tmp<fvPatchScalarField> clone() const - { - return tmp<fvPatchScalarField> - ( - new mutSpalartAllmarasStandardWallFunctionFvPatchScalarField - ( - *this - ) - ); - } - - //- Construct as copy setting internal field reference - mutSpalartAllmarasStandardWallFunctionFvPatchScalarField - ( - const mutSpalartAllmarasStandardWallFunctionFvPatchScalarField&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct and return a clone setting internal field reference - virtual tmp<fvPatchScalarField> clone - ( - const DimensionedField<scalar, volMesh>& iF - ) const - { - return tmp<fvPatchScalarField> - ( - new mutSpalartAllmarasStandardWallFunctionFvPatchScalarField - ( - *this, - iF - ) - ); - } - - - // Member functions - - // Evaluation functions - - //- Evaluate the patchField - virtual void evaluate - ( - const Pstream::commsTypes commsType=Pstream::blocking - ); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace compressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasWallFunction/mutSpalartAllmarasWallFunctionFvPatchScalarField.C b/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasWallFunction/mutSpalartAllmarasWallFunctionFvPatchScalarField.C deleted file mode 100644 index f9e92d19bae..00000000000 --- a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasWallFunction/mutSpalartAllmarasWallFunctionFvPatchScalarField.C +++ /dev/null @@ -1,187 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "mutSpalartAllmarasWallFunctionFvPatchScalarField.H" -#include "RASModel.H" -#include "fvPatchFieldMapper.H" -#include "volFields.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -mutSpalartAllmarasWallFunctionFvPatchScalarField:: -mutSpalartAllmarasWallFunctionFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedValueFvPatchScalarField(p, iF) -{} - - -mutSpalartAllmarasWallFunctionFvPatchScalarField:: -mutSpalartAllmarasWallFunctionFvPatchScalarField -( - const mutSpalartAllmarasWallFunctionFvPatchScalarField& ptf, - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const fvPatchFieldMapper& mapper -) -: - fixedValueFvPatchScalarField(ptf, p, iF, mapper) -{} - - -mutSpalartAllmarasWallFunctionFvPatchScalarField:: -mutSpalartAllmarasWallFunctionFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const dictionary& dict -) -: - fixedValueFvPatchScalarField(p, iF, dict) -{} - - -mutSpalartAllmarasWallFunctionFvPatchScalarField:: -mutSpalartAllmarasWallFunctionFvPatchScalarField -( - const mutSpalartAllmarasWallFunctionFvPatchScalarField& tppsf -) -: - fixedValueFvPatchScalarField(tppsf) -{} - - -mutSpalartAllmarasWallFunctionFvPatchScalarField:: -mutSpalartAllmarasWallFunctionFvPatchScalarField -( - const mutSpalartAllmarasWallFunctionFvPatchScalarField& tppsf, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedValueFvPatchScalarField(tppsf, iF) -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void mutSpalartAllmarasWallFunctionFvPatchScalarField::evaluate -( - const Pstream::commsTypes -) -{ - const RASModel& ras = db().lookupObject<RASModel>("RASProperties"); - - scalar kappa = ras.kappa().value(); - scalar E = ras.E().value(); - - const scalarField& ry = patch().deltaCoeffs(); - - const fvPatchVectorField& U = - patch().lookupPatchField<volVectorField, vector>("U"); - - scalarField magUp = mag(U.patchInternalField() - U); - - const scalarField& rhow = - patch().lookupPatchField<volScalarField, scalar>("rho"); - - const scalarField& muw = - patch().lookupPatchField<volScalarField, scalar>("mu"); - - scalarField& mutw = *this; - - scalarField magFaceGradU = mag(U.snGrad()); - - forAll(mutw, faceI) - { - scalar magUpara = magUp[faceI]; - - scalar utau = - sqrt((mutw[faceI] + muw[faceI])*magFaceGradU[faceI]/rhow[faceI]); - - if (utau > VSMALL) - { - int iter = 0; - scalar err = GREAT; - - do - { - scalar kUu = min(kappa*magUpara/utau, 50); - scalar fkUu = exp(kUu) - 1 - kUu*(1 + 0.5*kUu); - - scalar f = - - utau/(ry[faceI]*(muw[faceI]/rhow[faceI])) - + magUpara/utau - + 1/E*(fkUu - 1.0/6.0*kUu*sqr(kUu)); - - scalar df = - 1.0/(ry[faceI]*(muw[faceI]/rhow[faceI])) - + magUpara/sqr(utau) - + 1/E*kUu*fkUu/utau; - - scalar utauNew = utau + f/df; - err = mag((utau - utauNew)/utau); - utau = utauNew; - - } while (utau > VSMALL && err > 0.01 && ++iter < 10); - - mutw[faceI] = max - ( - rhow[faceI]*sqr(max(utau, 0))/magFaceGradU[faceI]- muw[faceI], - 0.0 - ); - } - else - { - mutw[faceI] = 0; - } - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -makePatchTypeField(fvPatchScalarField, mutSpalartAllmarasWallFunctionFvPatchScalarField); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace compressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasWallFunction/mutSpalartAllmarasWallFunctionFvPatchScalarField.H b/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasWallFunction/mutSpalartAllmarasWallFunctionFvPatchScalarField.H deleted file mode 100644 index 8967a243c2a..00000000000 --- a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutSpalartAllmarasWallFunction/mutSpalartAllmarasWallFunctionFvPatchScalarField.H +++ /dev/null @@ -1,150 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::compressible::RASModels:: - mutSpalartAllmarasWallFunctionFvPatchScalarField - -Description - Wall function boundary condition for walls - -SourceFiles - mutSpalartAllmarasWallFunctionFvPatchScalarField.C - -\*---------------------------------------------------------------------------*/ - -#ifndef mutSpalartAllmarasWallFunctionFvPatchScalarField_H -#define mutSpalartAllmarasWallFunctionFvPatchScalarField_H - -#include "fixedValueFvPatchFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class mutSpalartAllmarasWallFunctionFvPatchScalarField Declaration -\*---------------------------------------------------------------------------*/ - -class mutSpalartAllmarasWallFunctionFvPatchScalarField -: - public fixedValueFvPatchScalarField -{ -public: - - //- Runtime type information - TypeName("mutSpalartAllmarasWallFunction"); - - - // Constructors - - //- Construct from patch and internal field - mutSpalartAllmarasWallFunctionFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct from patch, internal field and dictionary - mutSpalartAllmarasWallFunctionFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const dictionary& - ); - - //- Construct by mapping given - // mutSpalartAllmarasWallFunctionFvPatchScalarField - // onto a new patch - mutSpalartAllmarasWallFunctionFvPatchScalarField - ( - const mutSpalartAllmarasWallFunctionFvPatchScalarField&, - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const fvPatchFieldMapper& - ); - - //- Construct as copy - mutSpalartAllmarasWallFunctionFvPatchScalarField - ( - const mutSpalartAllmarasWallFunctionFvPatchScalarField& - ); - - //- Construct and return a clone - virtual tmp<fvPatchScalarField> clone() const - { - return tmp<fvPatchScalarField> - ( - new mutSpalartAllmarasWallFunctionFvPatchScalarField(*this) - ); - } - - //- Construct as copy setting internal field reference - mutSpalartAllmarasWallFunctionFvPatchScalarField - ( - const mutSpalartAllmarasWallFunctionFvPatchScalarField&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct and return a clone setting internal field reference - virtual tmp<fvPatchScalarField> clone - ( - const DimensionedField<scalar, volMesh>& iF - ) const - { - return tmp<fvPatchScalarField> - ( - new mutSpalartAllmarasWallFunctionFvPatchScalarField(*this, iF) - ); - } - - - // Member functions - - // Evaluation functions - - //- Evaluate the patchField - virtual void evaluate - ( - const Pstream::commsTypes commsType=Pstream::blocking - ); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace compressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutWallFunction/mutWallFunctionFvPatchScalarField.C b/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutWallFunction/mutWallFunctionFvPatchScalarField.C deleted file mode 100644 index f73e5b2a899..00000000000 --- a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutWallFunction/mutWallFunctionFvPatchScalarField.C +++ /dev/null @@ -1,162 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "mutWallFunctionFvPatchScalarField.H" -#include "RASModel.H" -#include "fvPatchFieldMapper.H" -#include "volFields.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -mutWallFunctionFvPatchScalarField:: -mutWallFunctionFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedValueFvPatchScalarField(p, iF) -{} - - -mutWallFunctionFvPatchScalarField:: -mutWallFunctionFvPatchScalarField -( - const mutWallFunctionFvPatchScalarField& ptf, - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const fvPatchFieldMapper& mapper -) -: - fixedValueFvPatchScalarField(ptf, p, iF, mapper) -{} - - -mutWallFunctionFvPatchScalarField:: -mutWallFunctionFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const dictionary& dict -) -: - fixedValueFvPatchScalarField(p, iF, dict) -{} - - -mutWallFunctionFvPatchScalarField:: -mutWallFunctionFvPatchScalarField -( - const mutWallFunctionFvPatchScalarField& tppsf -) -: - fixedValueFvPatchScalarField(tppsf) -{} - - -mutWallFunctionFvPatchScalarField:: -mutWallFunctionFvPatchScalarField -( - const mutWallFunctionFvPatchScalarField& tppsf, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedValueFvPatchScalarField(tppsf, iF) -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void mutWallFunctionFvPatchScalarField::updateCoeffs() -{ - const RASModel& ras = db().lookupObject<RASModel>("RASProperties"); - - const scalar Cmu = ras.Cmu().value(); - const scalar Cmu25 = pow(Cmu, 0.25); - const scalar kappa = ras.kappa().value(); - const scalar E = ras.E().value(); - const scalar yPlusLam = ras.yPlusLam(); - - const scalarField& y = ras.y()[patch().index()]; - - const scalarField& rhow = - patch().lookupPatchField<volScalarField, scalar>("rho"); - - const volScalarField& k = db().lookupObject<volScalarField>("k"); - - const scalarField& muw = - patch().lookupPatchField<volScalarField, scalar>("mu"); - - scalarField& mutw = *this; - - forAll(mutw, faceI) - { - label faceCellI = patch().faceCells()[faceI]; - - scalar yPlus = - Cmu25*y[faceI]*sqrt(k[faceCellI]) - /(muw[faceI]/rhow[faceI]); - - if (yPlus > yPlusLam) - { - mutw[faceI] = muw[faceI]*(yPlus*kappa/log(E*yPlus) - 1); - } - else - { - mutw[faceI] = 0.0; - } - } -} - - -void mutWallFunctionFvPatchScalarField::write(Ostream& os) const -{ - fvPatchField<scalar>::write(os); - writeEntry("value", os); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -makePatchTypeField(fvPatchScalarField, mutWallFunctionFvPatchScalarField); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace compressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutWallFunction/mutWallFunctionFvPatchScalarField.H b/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutWallFunction/mutWallFunctionFvPatchScalarField.H deleted file mode 100644 index 815e50ca700..00000000000 --- a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/mutWallFunctions/mutWallFunction/mutWallFunctionFvPatchScalarField.H +++ /dev/null @@ -1,155 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::compressible::RASModels::mutWallFunctionFvPatchScalarField - -Description - Boundary condition for turbulent (kinematic) viscosity when using wall - functions - - replicates OpenFOAM v1.5 (and earlier) behaviour - -SourceFiles - mutWallFunctionFvPatchScalarField.C - -\*---------------------------------------------------------------------------*/ - -#ifndef mutWallFunctionFvPatchScalarField_H -#define mutWallFunctionFvPatchScalarField_H - -#include "fixedValueFvPatchFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class mutWallFunctionFvPatchScalarField Declaration -\*---------------------------------------------------------------------------*/ - -class mutWallFunctionFvPatchScalarField -: - public fixedValueFvPatchScalarField -{ - -public: - - //- Runtime type information - TypeName("mutWallFunction"); - - - // Constructors - - //- Construct from patch and internal field - mutWallFunctionFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct from patch, internal field and dictionary - mutWallFunctionFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const dictionary& - ); - - //- Construct by mapping given - // mutWallFunctionFvPatchScalarField - // onto a new patch - mutWallFunctionFvPatchScalarField - ( - const mutWallFunctionFvPatchScalarField&, - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const fvPatchFieldMapper& - ); - - //- Construct as copy - mutWallFunctionFvPatchScalarField - ( - const mutWallFunctionFvPatchScalarField& - ); - - //- Construct and return a clone - virtual tmp<fvPatchScalarField> clone() const - { - return tmp<fvPatchScalarField> - ( - new mutWallFunctionFvPatchScalarField(*this) - ); - } - - //- Construct as copy setting internal field reference - mutWallFunctionFvPatchScalarField - ( - const mutWallFunctionFvPatchScalarField&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct and return a clone setting internal field reference - virtual tmp<fvPatchScalarField> clone - ( - const DimensionedField<scalar, volMesh>& iF - ) const - { - return tmp<fvPatchScalarField> - ( - new mutWallFunctionFvPatchScalarField(*this, iF) - ); - } - - - // Member functions - - // Evaluation functions - - //- Update the coefficients associated with the patch field - virtual void updateCoeffs(); - - - // I-O - - //- Write - void write(Ostream&) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace compressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.C b/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.C deleted file mode 100644 index 5b0ee67630f..00000000000 --- a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.C +++ /dev/null @@ -1,209 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "omegaWallFunctionFvPatchScalarField.H" -#include "RASModel.H" -#include "fvPatchFieldMapper.H" -#include "volFields.H" -#include "addToRunTimeSelectionTable.H" -#include "wallFvPatch.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -void omegaWallFunctionFvPatchScalarField::checkType() -{ - if (!isA<wallFvPatch>(patch())) - { - FatalErrorIn("omegaWallFunctionFvPatchScalarField::checkType()") - << "Invalid wall function specification" << nl - << " Patch type for patch " << patch().name() - << " must be wall" << nl - << " Current patch type is " << patch().type() << nl << endl - << abort(FatalError); - } -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedInternalValueFvPatchField<scalar>(p, iF) -{ - checkType(); -} - - -omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField -( - const omegaWallFunctionFvPatchScalarField& ptf, - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const fvPatchFieldMapper& mapper -) -: - fixedInternalValueFvPatchField<scalar>(ptf, p, iF, mapper) -{ - checkType(); -} - - -omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const dictionary& dict -) -: - fixedInternalValueFvPatchField<scalar>(p, iF, dict) -{ - checkType(); -} - - -omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField -( - const omegaWallFunctionFvPatchScalarField& ewfpsf -) -: - fixedInternalValueFvPatchField<scalar>(ewfpsf) -{ - checkType(); -} - - -omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField -( - const omegaWallFunctionFvPatchScalarField& ewfpsf, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedInternalValueFvPatchField<scalar>(ewfpsf, iF) -{ - checkType(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void omegaWallFunctionFvPatchScalarField::updateCoeffs() -{ - const RASModel& ras = db().lookupObject<RASModel>("RASProperties"); - - const scalar Cmu = ras.Cmu().value(); - const scalar Cmu25 = pow(Cmu, 0.25); - - const scalar kappa = ras.kappa().value(); - const scalar yPlusLam = ras.yPlusLam(); - - const scalarField& y = ras.y()[patch().index()]; - - volScalarField& G = const_cast<volScalarField&> - (db().lookupObject<volScalarField>("G")); - - volScalarField& omega = const_cast<volScalarField&> - (db().lookupObject<volScalarField>("omega")); - - const scalarField& k = db().lookupObject<volScalarField>("k"); - - const scalarField& rhow = - patch().lookupPatchField<volScalarField, scalar>("rho"); - - const scalarField& muw = - patch().lookupPatchField<volScalarField, scalar>("mu"); - - const scalarField& mutw = - patch().lookupPatchField<volScalarField, scalar>("mut"); - - const fvPatchVectorField& Uw = - patch().lookupPatchField<volVectorField, vector>("U"); - - const scalarField magGradUw = mag(Uw.snGrad()); - - // Set epsilon and G - forAll(mutw, faceI) - { - label faceCellI = patch().faceCells()[faceI]; - - scalar yPlus = - Cmu25*y[faceI]*sqrt(k[faceCellI]) - /(muw[faceI]/rhow[faceI]); - - omega[faceCellI] = sqrt(k[faceCellI])/(Cmu25*kappa*y[faceI]); - - if (yPlus > yPlusLam) - { - G[faceCellI] = - (mutw[faceI] + muw[faceI]) - *magGradUw[faceI] - *Cmu25*sqrt(k[faceCellI]) - /(kappa*y[faceI]); - } - else - { - G[faceCellI] = 0.0; - } - } - - // TODO: perform averaging for cells sharing more than one boundary face -} - - -void omegaWallFunctionFvPatchScalarField::write(Ostream& os) const -{ - fixedInternalValueFvPatchField<scalar>::write(os); - writeEntry("value", os); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -makePatchTypeField -( - fvPatchScalarField, - omegaWallFunctionFvPatchScalarField -); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace compressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H b/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H deleted file mode 100644 index 266e7987d54..00000000000 --- a/src/turbulenceModels/RAS/compressible/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H +++ /dev/null @@ -1,159 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::compressible::RASModels::omegaWallFunctionFvPatchScalarField - -Description - Replaces functionality in wallFunctionsI.H - -SourceFiles - omegaWallFunctionFvPatchScalarField.C - -\*---------------------------------------------------------------------------*/ - -#ifndef omegaWallFunctionFvPatchScalarField_H -#define omegaWallFunctionFvPatchScalarField_H - -#include "fixedInternalValueFvPatchField.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class omegaWallFunctionFvPatchScalarField Declaration -\*---------------------------------------------------------------------------*/ - -class omegaWallFunctionFvPatchScalarField -: - public fixedInternalValueFvPatchField<scalar> -{ - - // Private member functions - - //- Check the type of the patch - void checkType(); - - -public: - - //- Runtime type information - TypeName("omegaWallFunction"); - - - // Constructors - - //- Construct from patch and internal field - omegaWallFunctionFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct from patch, internal field and dictionary - omegaWallFunctionFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const dictionary& - ); - - //- Construct by mapping given - // omegaWallFunctionFvPatchScalarField - // onto a new patch - omegaWallFunctionFvPatchScalarField - ( - const omegaWallFunctionFvPatchScalarField&, - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const fvPatchFieldMapper& - ); - - //- Construct as copy - omegaWallFunctionFvPatchScalarField - ( - const omegaWallFunctionFvPatchScalarField& - ); - - //- Construct and return a clone - virtual tmp<fvPatchScalarField> clone() const - { - return tmp<fvPatchScalarField> - ( - new omegaWallFunctionFvPatchScalarField(*this) - ); - } - - //- Construct as copy setting internal field reference - omegaWallFunctionFvPatchScalarField - ( - const omegaWallFunctionFvPatchScalarField&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct and return a clone setting internal field reference - virtual tmp<fvPatchScalarField> clone - ( - const DimensionedField<scalar, volMesh>& iF - ) const - { - return tmp<fvPatchScalarField> - ( - new omegaWallFunctionFvPatchScalarField(*this, iF) - ); - } - - - // Member functions - - // Evaluation functions - - //- Update the coefficients associated with the patch field - virtual void updateCoeffs(); - - - // I-O - - //- Write - void write(Ostream&) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace compressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/include/wallDissipationI.H b/src/turbulenceModels/RAS/compressible/include/wallDissipationI.H deleted file mode 100644 index 5eb3f49171c..00000000000 --- a/src/turbulenceModels/RAS/compressible/include/wallDissipationI.H +++ /dev/null @@ -1,51 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Global - wallDissipation - -Description - Set wall dissipation in the epsilon matrix - -\*---------------------------------------------------------------------------*/ - -{ - const fvPatchList& patches = mesh_.boundary(); - - forAll(patches, patchi) - { - const fvPatch& p = patches[patchi]; - - if (isType<wallFvPatch>(p)) - { - epsEqn().setValues - ( - p.faceCells(), - epsilon_.boundaryField()[patchi].patchInternalField() - ); - } - } -} - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/include/wallFunctionsI.H b/src/turbulenceModels/RAS/compressible/include/wallFunctionsI.H deleted file mode 100644 index 19aa023b1ce..00000000000 --- a/src/turbulenceModels/RAS/compressible/include/wallFunctionsI.H +++ /dev/null @@ -1,128 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Global - wallFunctions - -Description - Calculate wall dissipation from wall-functions. - -\*---------------------------------------------------------------------------*/ - -{ - labelList cellBoundaryFaceCount(epsilon_.size(), 0); - - scalar Cmu25 = pow(Cmu_.value(), 0.25); - scalar Cmu75 = pow(Cmu_.value(), 0.75); - - const fvPatchList& patches = mesh_.boundary(); - - //- Initialise the near-wall G field to zero - forAll(patches, patchi) - { - const fvPatch& curPatch = patches[patchi]; - - if (isType<wallFvPatch>(curPatch)) - { - forAll(curPatch, facei) - { - label faceCelli = curPatch.faceCells()[facei]; - - epsilon_[faceCelli] = 0.0; - G[faceCelli] = 0.0; - } - } - } - - //- Accumulate the wall face contributions to epsilon and G - // Increment cellBoundaryFaceCount for each face for averaging - forAll(patches, patchi) - { - const fvPatch& curPatch = patches[patchi]; - - if (isType<wallFvPatch>(curPatch)) - { -# include "checkPatchFieldTypes.H" - - const scalarField& rhow = rho_.boundaryField()[patchi]; - - const scalarField& muw = mu().boundaryField()[patchi]; - const scalarField& mutw = mut_.boundaryField()[patchi]; - - scalarField magFaceGradU = - mag(U_.boundaryField()[patchi].snGrad()); - - forAll(curPatch, facei) - { - label faceCelli = curPatch.faceCells()[facei]; - - scalar yPlus = - Cmu25*RASModel::y_[patchi][facei] - *sqrt(k_[faceCelli]) - /(muw[facei]/rhow[facei]); - - // For corner cells (with two boundary or more faces), - // epsilon and G in the near-wall cell are calculated - // as an average - - cellBoundaryFaceCount[faceCelli]++; - - epsilon_[faceCelli] += - Cmu75*pow(k_[faceCelli], 1.5) - /(kappa_.value()*RASModel::y_[patchi][facei]); - - if (yPlus > yPlusLam_) - { - G[faceCelli] += - (mutw[facei] + muw[facei]) - *magFaceGradU[facei] - *Cmu25*sqrt(k_[faceCelli]) - /(kappa_.value()*RASModel::y_[patchi][facei]); - } - } - } - } - - - // Perform the averaging - - forAll(patches, patchi) - { - const fvPatch& curPatch = patches[patchi]; - - if (isType<wallFvPatch>(curPatch)) - { - forAll(curPatch, facei) - { - label faceCelli = curPatch.faceCells()[facei]; - - epsilon_[faceCelli] /= cellBoundaryFaceCount[faceCelli]; - G[faceCelli] /= cellBoundaryFaceCount[faceCelli]; - } - } - } -} - - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/include/wallViscosityI.H b/src/turbulenceModels/RAS/compressible/include/wallViscosityI.H deleted file mode 100644 index 38992cb5134..00000000000 --- a/src/turbulenceModels/RAS/compressible/include/wallViscosityI.H +++ /dev/null @@ -1,73 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Global - wallViscosity - -Description - Calculate wall viscosity from wall-functions. - -\*---------------------------------------------------------------------------*/ - -{ - scalar Cmu25 = pow(Cmu_.value(), 0.25); - - const fvPatchList& patches = mesh_.boundary(); - - forAll(patches, patchi) - { - const fvPatch& curPatch = patches[patchi]; - - if (isType<wallFvPatch>(curPatch)) - { - const scalarField& rhow = rho_.boundaryField()[patchi]; - - const scalarField& muw = mu().boundaryField()[patchi]; - scalarField& mutw = mut_.boundaryField()[patchi]; - - forAll(curPatch, facei) - { - label faceCelli = curPatch.faceCells()[facei]; - - scalar yPlus = - Cmu25*RASModel::y_[patchi][facei] - *sqrt(k_[faceCelli])/(muw[facei]/rhow[facei]); - - if (yPlus > yPlusLam_) - { - mutw[facei] = - muw[facei] - *(yPlus*kappa_.value()/log(E_.value()*yPlus) - 1); - } - else - { - mutw[facei] = 0.0; - } - } - } - } -} - - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/kEpsilon/kEpsilon.C b/src/turbulenceModels/RAS/compressible/kEpsilon/kEpsilon.C deleted file mode 100644 index cb0fecc03dc..00000000000 --- a/src/turbulenceModels/RAS/compressible/kEpsilon/kEpsilon.C +++ /dev/null @@ -1,341 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "kEpsilon.H" -#include "addToRunTimeSelectionTable.H" -#include "wallFvPatch.H" - -#include "backwardsCompatibilityWallFunctions.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(kEpsilon, 0); -addToRunTimeSelectionTable(RASModel, kEpsilon, dictionary); - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -kEpsilon::kEpsilon -( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - basicThermo& thermophysicalModel -) -: - RASModel(typeName, rho, U, phi, thermophysicalModel), - - Cmu_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cmu", - coeffDict_, - 0.09 - ) - ), - C1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C1", - coeffDict_, - 1.44 - ) - ), - C2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C2", - coeffDict_, - 1.92 - ) - ), - C3_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C3", - coeffDict_, - -0.33 - ) - ), - alphak_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphak", - coeffDict_, - 1.0 - ) - ), - alphaEps_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphaEps", - coeffDict_, - 0.76923 - ) - ), - alphah_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphah", - coeffDict_, - 1.0 - ) - ), - - k_ - ( - IOobject - ( - "k", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateK("k", mesh_) - ), - epsilon_ - ( - IOobject - ( - "epsilon", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateEpsilon("epsilon", mesh_) - ), - mut_ - ( - IOobject - ( - "mut", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateMut("mut", mesh_) - ), - alphat_ - ( - IOobject - ( - "alphat", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateAlphat("alphat", mesh_) - ) -{ - mut_ == Cmu_*rho_*sqr(k_)/(epsilon_ + epsilonSmall_); - mut_.correctBoundaryConditions(); - - alphat_ == mut_/Prt_; - alphat_.correctBoundaryConditions(); - - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -tmp<volSymmTensorField> kEpsilon::R() const -{ - return tmp<volSymmTensorField> - ( - new volSymmTensorField - ( - IOobject - ( - "R", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - ((2.0/3.0)*I)*k_ - (mut_/rho_)*dev(twoSymm(fvc::grad(U_))), - k_.boundaryField().types() - ) - ); -} - - -tmp<volSymmTensorField> kEpsilon::devRhoReff() const -{ - return tmp<volSymmTensorField> - ( - new volSymmTensorField - ( - IOobject - ( - "devRhoReff", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - -muEff()*dev(twoSymm(fvc::grad(U_))) - ) - ); -} - - -tmp<fvVectorMatrix> kEpsilon::divDevRhoReff(volVectorField& U) const -{ - return - ( - - fvm::laplacian(muEff(), U) - - fvc::div(muEff()*dev2(fvc::grad(U)().T())) - ); -} - - -bool kEpsilon::read() -{ - if (RASModel::read()) - { - Cmu_.readIfPresent(coeffDict_); - C1_.readIfPresent(coeffDict_); - C2_.readIfPresent(coeffDict_); - C3_.readIfPresent(coeffDict_); - alphak_.readIfPresent(coeffDict_); - alphaEps_.readIfPresent(coeffDict_); - alphah_.readIfPresent(coeffDict_); - - return true; - } - else - { - return false; - } -} - - -void kEpsilon::correct() -{ - if (!turbulence_) - { - // Re-calculate viscosity - mut_ == rho_*Cmu_*sqr(k_)/(epsilon_ + epsilonSmall_); - mut_.correctBoundaryConditions(); - - // Re-calculate thermal diffusivity - alphat_ = mut_/Prt_; - alphat_.correctBoundaryConditions(); - - return; - } - - RASModel::correct(); - - volScalarField divU = fvc::div(phi_/fvc::interpolate(rho_)); - - if (mesh_.moving()) - { - divU += fvc::div(mesh_.phi()); - } - - tmp<volTensorField> tgradU = fvc::grad(U_); - volScalarField G("G", mut_*(tgradU() && dev(twoSymm(tgradU())))); - tgradU.clear(); - - // Update espsilon and G at the wall - epsilon_.boundaryField().updateCoeffs(); - - // Dissipation equation - tmp<fvScalarMatrix> epsEqn - ( - fvm::ddt(rho_, epsilon_) - + fvm::div(phi_, epsilon_) - - fvm::laplacian(DepsilonEff(), epsilon_) - == - C1_*G*epsilon_/k_ - - fvm::SuSp(((2.0/3.0)*C1_ + C3_)*rho_*divU, epsilon_) - - fvm::Sp(C2_*rho_*epsilon_/k_, epsilon_) - ); - - epsEqn().relax(); - - epsEqn().boundaryManipulate(epsilon_.boundaryField()); - - solve(epsEqn); - bound(epsilon_, epsilon0_); - - - // Turbulent kinetic energy equation - - tmp<fvScalarMatrix> kEqn - ( - fvm::ddt(rho_, k_) - + fvm::div(phi_, k_) - - fvm::laplacian(DkEff(), k_) - == - G - - fvm::SuSp((2.0/3.0)*rho_*divU, k_) - - fvm::Sp(rho_*epsilon_/k_, k_) - ); - - kEqn().relax(); - solve(kEqn); - bound(k_, k0_); - - - // Re-calculate viscosity - mut_ == rho_*Cmu_*sqr(k_)/epsilon_; - mut_.correctBoundaryConditions(); - - // Re-calculate thermal diffusivity - alphat_ = mut_/Prt_; - alphat_.correctBoundaryConditions(); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace compressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/kEpsilon/kEpsilon.H b/src/turbulenceModels/RAS/compressible/kEpsilon/kEpsilon.H deleted file mode 100644 index 76d952d40da..00000000000 --- a/src/turbulenceModels/RAS/compressible/kEpsilon/kEpsilon.H +++ /dev/null @@ -1,190 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::compressible::RASModels::kEpsilon - -Description - Standard k-epsilon turbulence model for compressible flows - - The default model coefficients correspond to the following: - @verbatim - kEpsilonCoeffs - { - Cmu 0.09; - C1 1.44; - C2 1.92; - C3 -0.33; // only for compressible - alphak 1.0; // only for compressible - alphaEps 0.76923; - alphah 1.0; // only for compressible - } - @endverbatim - -SourceFiles - kEpsilon.C - kEpsilonCorrect.C - -\*---------------------------------------------------------------------------*/ - -#ifndef compressiblekEpsilon_H -#define compressiblekEpsilon_H - -#include "RASModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class kEpsilon Declaration -\*---------------------------------------------------------------------------*/ - -class kEpsilon -: - public RASModel -{ - // Private data - - // Model coefficients - - dimensionedScalar Cmu_; - dimensionedScalar C1_; - dimensionedScalar C2_; - dimensionedScalar C3_; - dimensionedScalar alphak_; - dimensionedScalar alphaEps_; - dimensionedScalar alphah_; - - // Fields - - volScalarField k_; - volScalarField epsilon_; - volScalarField mut_; - volScalarField alphat_; - - -public: - - //- Runtime type information - TypeName("kEpsilon"); - - // Constructors - - //- from components - kEpsilon - ( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - basicThermo& thermophysicalModel - ); - - - // Destructor - - ~kEpsilon() - {} - - - // Member Functions - - //- Return the turbulence viscosity - tmp<volScalarField> mut() const - { - return mut_; - } - - //- Return the effective diffusivity for k - tmp<volScalarField> DkEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DkEff", alphak_*mut_ + mu()) - ); - } - - //- Return the effective diffusivity for epsilon - tmp<volScalarField> DepsilonEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DepsilonEff", alphaEps_*mut_ + mu()) - ); - } - - //- Return the effective turbulent thermal diffusivity - tmp<volScalarField> alphaEff() const - { - return tmp<volScalarField> - ( - new volScalarField("alphaEff", alphah_*alphat_ + alpha()) - ); - } - - //- Return the turbulence kinetic energy - tmp<volScalarField> k() const - { - return k_; - } - - //- Return the turbulence kinetic energy dissipation rate - tmp<volScalarField> epsilon() const - { - return epsilon_; - } - - //- Return the Reynolds stress tensor - tmp<volSymmTensorField> R() const; - - //- Return the effective stress tensor including the laminar stress - tmp<volSymmTensorField> devRhoReff() const; - - //- Return the source term for the momentum equation - tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const; - - //- Solve the turbulence equations and correct the turbulence viscosity - void correct(); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace compressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/kOmegaSST/kOmegaSST.C b/src/turbulenceModels/RAS/compressible/kOmegaSST/kOmegaSST.C deleted file mode 100644 index 1181169f879..00000000000 --- a/src/turbulenceModels/RAS/compressible/kOmegaSST/kOmegaSST.C +++ /dev/null @@ -1,467 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "kOmegaSST.H" -#include "addToRunTimeSelectionTable.H" -#include "wallFvPatch.H" - -#include "backwardsCompatibilityWallFunctions.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -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)*(mu()/rho_)/(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)*(mu()/rho_)/(sqr(y_)*omega_) - ), - scalar(100) - ); - - return tanh(sqr(arg2)); -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -kOmegaSST::kOmegaSST -( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - basicThermo& thermophysicalModel -) -: - RASModel(typeName, rho, U, phi, thermophysicalModel), - - 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 - ) - ), - alphah_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphah", - coeffDict_, - 1.0 - ) - ), - 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 - ) - ), - - omega0_("omega0", dimless/dimTime, SMALL), - omegaSmall_("omegaSmall", dimless/dimTime, SMALL), - - Cmu_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cmu", - coeffDict_, - 0.09 - ) - ), - - 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_) - ), - mut_ - ( - IOobject - ( - "mut", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateMut("mut", mesh_) - ), - alphat_ - ( - IOobject - ( - "alphat", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateAlphat("alphat", mesh_) - ) -{ - mut_ == a1_*rho_*k_/max(a1_*omega_, F2()*sqrt(magSqr(symm(fvc::grad(U_))))); - mut_.correctBoundaryConditions(); - - alphat_ == mut_/Prt_; - alphat_.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_ - (mut_/rho_)*dev(twoSymm(fvc::grad(U_))), - k_.boundaryField().types() - ) - ); -} - - -tmp<volSymmTensorField> kOmegaSST::devRhoReff() const -{ - return tmp<volSymmTensorField> - ( - new volSymmTensorField - ( - IOobject - ( - "devRhoReff", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - -muEff()*dev(twoSymm(fvc::grad(U_))) - ) - ); -} - - -tmp<fvVectorMatrix> kOmegaSST::divDevRhoReff(volVectorField& U) const -{ - return - ( - - fvm::laplacian(muEff(), U) - fvc::div(muEff()*dev2(fvc::grad(U)().T())) - ); -} - - -bool kOmegaSST::read() -{ - if (RASModel::read()) - { - alphaK1_.readIfPresent(coeffDict_); - alphaK2_.readIfPresent(coeffDict_); - alphaOmega1_.readIfPresent(coeffDict_); - alphaOmega2_.readIfPresent(coeffDict_); - alphah_.readIfPresent(coeffDict_); - gamma1_.readIfPresent(coeffDict_); - gamma2_.readIfPresent(coeffDict_); - beta1_.readIfPresent(coeffDict_); - beta2_.readIfPresent(coeffDict_); - betaStar_.readIfPresent(coeffDict_); - a1_.readIfPresent(coeffDict_); - c1_.readIfPresent(coeffDict_); - Cmu_.readIfPresent(coeffDict_); - - return true; - } - else - { - return false; - } -} - - -void kOmegaSST::correct() -{ - if (!turbulence_) - { - // Re-calculate viscosity - mut_ == - a1_*rho_*k_ - /max(a1_*omega_, F2()*sqrt(magSqr(symm(fvc::grad(U_))))); - mut_.correctBoundaryConditions(); - - // Re-calculate thermal diffusivity - alphat_ = mut_/Prt_; - alphat_.correctBoundaryConditions(); - - return; - } - - RASModel::correct(); - - volScalarField divU = fvc::div(phi_/fvc::interpolate(rho_)); - - if (mesh_.changing()) - { - y_.correct(); - } - - if (mesh_.moving()) - { - divU += fvc::div(mesh_.phi()); - } - - tmp<volTensorField> tgradU = fvc::grad(U_); - volScalarField S2 = magSqr(symm(tgradU())); - volScalarField GbyMu = (tgradU() && dev(twoSymm(tgradU()))); - volScalarField G("G", mut_*GbyMu); - tgradU.clear(); - - // Update omega and G at the wall - omega_.boundaryField().updateCoeffs(); - - volScalarField CDkOmega = - (2*alphaOmega2_)*(fvc::grad(k_) & fvc::grad(omega_))/omega_; - - volScalarField F1 = this->F1(CDkOmega); - volScalarField rhoGammaF1 = rho_*gamma(F1); - - // Turbulent frequency equation - tmp<fvScalarMatrix> omegaEqn - ( - fvm::ddt(rho_, omega_) - + fvm::div(phi_, omega_) - - fvm::laplacian(DomegaEff(F1), omega_) - == - rhoGammaF1*GbyMu - - fvm::SuSp((2.0/3.0)*rhoGammaF1*divU, omega_) - - fvm::Sp(rho_*beta(F1)*omega_, omega_) - - fvm::SuSp - ( - rho_*(F1 - scalar(1))*CDkOmega/omega_, - omega_ - ) - ); - - omegaEqn().relax(); - - omegaEqn().boundaryManipulate(omega_.boundaryField()); - - solve(omegaEqn); - bound(omega_, omega0_); - - // Turbulent kinetic energy equation - tmp<fvScalarMatrix> kEqn - ( - fvm::ddt(rho_, k_) - + fvm::div(phi_, k_) - - fvm::laplacian(DkEff(F1), k_) - == - min(G, (c1_*betaStar_)*rho_*k_*omega_) - - fvm::SuSp(2.0/3.0*rho_*divU, k_) - - fvm::Sp(rho_*betaStar_*omega_, k_) - ); - - kEqn().relax(); - solve(kEqn); - bound(k_, k0_); - - - // Re-calculate viscosity - mut_ == a1_*rho_*k_/max(a1_*omega_, F2()*sqrt(S2)); - mut_.correctBoundaryConditions(); - - // Re-calculate thermal diffusivity - alphat_ = mut_/Prt_; - alphat_.correctBoundaryConditions(); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace compressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/kOmegaSST/kOmegaSST.H b/src/turbulenceModels/RAS/compressible/kOmegaSST/kOmegaSST.H deleted file mode 100644 index 3f9c1486d3e..00000000000 --- a/src/turbulenceModels/RAS/compressible/kOmegaSST/kOmegaSST.H +++ /dev/null @@ -1,303 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::compressible::RASModels::kOmegaSST - -Description - Implementation of the k-omega-SST turbulence model for compressible flows. - - Turbulence model described in: - @verbatim - Menter, F., Esch, T. - "Elements of Industrial Heat Transfer Prediction" - 16th Brazilian Congress of Mechanical Engineering (COBEM), - Nov. 2001 - @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 - manner. The paper suggests that sigma is blended but this would not be - consistent with the blending of the k-epsilon and k-omega models. - - Also note that the error in the last term of equation (2) relating to - sigma has been corrected. - - Wall-functions are applied in this implementation by using equations (14) - to specify the near-wall omega as appropriate. - - The blending functions (15) and (16) are not currently used because of the - uncertainty in their origin, range of applicability and that is y+ becomes - sufficiently small blending u_tau in this manner clearly becomes nonsense. - - The default model coefficients correspond to the following: - @verbatim - kOmegaSST - { - Cmu 0.09; - alphaK1 0.85034; - alphaK2 1.0; - alphaOmega1 0.5; - alphaOmega2 0.85616; - alphah 1.0; // only for compressible - beta1 0.075; - beta2 0.0828; - betaStar 0.09; - gamma1 0.5532; - gamma2 0.4403; - a1 0.31; - c1 10.0; - } - @endverbatim - -SourceFiles - kOmegaSST.C - kOmegaWallFunctionsI.H - kOmegaWallViscosityI.H - wallOmegaI.H - -\*---------------------------------------------------------------------------*/ - -#ifndef compressiblekOmegaSST_H -#define compressiblekOmegaSST_H - -#include "RASModel.H" -#include "wallDist.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class kOmega Declaration -\*---------------------------------------------------------------------------*/ - -class kOmegaSST -: - public RASModel -{ - // Private data - - dimensionedScalar alphaK1_; - dimensionedScalar alphaK2_; - - dimensionedScalar alphaOmega1_; - dimensionedScalar alphaOmega2_; - - dimensionedScalar alphah_; - - dimensionedScalar gamma1_; - dimensionedScalar gamma2_; - - dimensionedScalar beta1_; - dimensionedScalar beta2_; - - dimensionedScalar betaStar_; - - dimensionedScalar a1_; - dimensionedScalar c1_; - - dimensionedScalar omega0_; - dimensionedScalar omegaSmall_; - - dimensionedScalar Cmu_; - - wallDist y_; - - volScalarField k_; - volScalarField omega_; - volScalarField mut_; - volScalarField alphat_; - - - // Private member functions - - tmp<volScalarField> F1(const volScalarField& CDkOmega) const; - tmp<volScalarField> F2() const; - - tmp<volScalarField> blend - ( - const volScalarField& F1, - const dimensionedScalar& psi1, - const dimensionedScalar& psi2 - ) const - { - return F1*(psi1 - psi2) + psi2; - } - - tmp<volScalarField> alphaK - ( - const volScalarField& F1 - ) const - { - return blend(F1, alphaK1_, alphaK2_); - } - - tmp<volScalarField> alphaOmega - ( - const volScalarField& F1 - ) const - { - return blend(F1, alphaOmega1_, alphaOmega2_); - } - - tmp<volScalarField> beta - ( - const volScalarField& F1 - ) const - { - return blend(F1, beta1_, beta2_); - } - - tmp<volScalarField> gamma - ( - const volScalarField& F1 - ) const - { - return blend(F1, gamma1_, gamma2_); - } - - -public: - - //- Runtime type information - TypeName("kOmegaSST"); - - - // Constructors - - //- Construct from components - kOmegaSST - ( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - basicThermo& thermophysicalModel - ); - - - // Destructor - - ~kOmegaSST() - {} - - - // Member Functions - - tmp<volScalarField> mut() const - { - return mut_; - } - - //- Return the effective diffusivity for k - tmp<volScalarField> DkEff(const volScalarField& F1) const - { - return tmp<volScalarField> - ( - new volScalarField("DkEff", alphaK(F1)*mut_ + mu()) - ); - } - - //- Return the effective diffusivity for omega - tmp<volScalarField> DomegaEff(const volScalarField& F1) const - { - return tmp<volScalarField> - ( - new volScalarField("DomegaEff", alphaOmega(F1)*mut_ + mu()) - ); - } - - //- Return the effective turbulent thermal diffusivity - tmp<volScalarField> alphaEff() const - { - return tmp<volScalarField> - ( - new volScalarField("alphaEff", alphah_*alphat_ + alpha()) - ); - } - - //- Return the turbulence kinetic energy - tmp<volScalarField> k() const - { - return k_; - } - - tmp<volScalarField> omega() const - { - return omega_; - } - - //- Return the turbulence kinetic energy dissipation rate - tmp<volScalarField> epsilon() const - { - return tmp<volScalarField> - ( - new volScalarField - ( - IOobject - ( - "epsilon", - mesh_.time().timeName(), - mesh_ - ), - betaStar_*k_*omega_, - omega_.boundaryField().types() - ) - ); - } - - //- Return the Reynolds stress tensor - tmp<volSymmTensorField> R() const; - - //- Return the effective stress tensor including the laminar stress - tmp<volSymmTensorField> devRhoReff() const; - - //- Return the source term for the momentum equation - tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const; - - //- Solve the turbulence equations and correct the turbulence viscosity - void correct(); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace compressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/laminar/laminar.C b/src/turbulenceModels/RAS/compressible/laminar/laminar.C deleted file mode 100644 index 7a24cacc7ad..00000000000 --- a/src/turbulenceModels/RAS/compressible/laminar/laminar.C +++ /dev/null @@ -1,195 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "laminar.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(laminar, 0); -addToRunTimeSelectionTable(RASModel, laminar, dictionary); - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -laminar::laminar -( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - basicThermo& thermophysicalModel -) -: - RASModel(typeName, rho, U, phi, thermophysicalModel) -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -tmp<volScalarField> laminar::mut() const -{ - return tmp<volScalarField> - ( - new volScalarField - ( - IOobject - ( - "mut", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh_, - dimensionedScalar("mut", mu().dimensions(), 0.0) - ) - ); -} - - -tmp<volScalarField> laminar::k() const -{ - return tmp<volScalarField> - ( - new volScalarField - ( - IOobject - ( - "k", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh_, - dimensionedScalar("k", sqr(U_.dimensions()), 0.0) - ) - ); -} - - -tmp<volScalarField> laminar::epsilon() const -{ - return tmp<volScalarField> - ( - new volScalarField - ( - IOobject - ( - "epsilon", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh_, - dimensionedScalar - ( - "epsilon", sqr(U_.dimensions())/dimTime, 0.0 - ) - ) - ); -} - - -tmp<volSymmTensorField> laminar::R() const -{ - return tmp<volSymmTensorField> - ( - new volSymmTensorField - ( - IOobject - ( - "R", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh_, - dimensionedSymmTensor - ( - "R", sqr(U_.dimensions()), symmTensor::zero - ) - ) - ); -} - - -tmp<volSymmTensorField> laminar::devRhoReff() const -{ - return tmp<volSymmTensorField> - ( - new volSymmTensorField - ( - IOobject - ( - "devRhoReff", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - -mu()*dev(twoSymm(fvc::grad(U_))) - ) - ); -} - - -tmp<fvVectorMatrix> laminar::divDevRhoReff(volVectorField& U) const -{ - return - ( - - fvm::laplacian(muEff(), U) - fvc::div(muEff()*dev2(fvc::grad(U)().T())) - ); -} - - -bool laminar::read() -{ - return RASModel::read(); -} - - -void laminar::correct() -{} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace compressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/laminar/laminar.H b/src/turbulenceModels/RAS/compressible/laminar/laminar.H deleted file mode 100644 index dda7f731179..00000000000 --- a/src/turbulenceModels/RAS/compressible/laminar/laminar.H +++ /dev/null @@ -1,135 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::compressible::RASModels::laminar - -Description - Dummy turbulence model for laminar compressible flow. - -SourceFiles - laminar.C - laminarCorrect.C - -\*---------------------------------------------------------------------------*/ - -#ifndef compressibleLaminar_H -#define compressibleLaminar_H - -#include "RASModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class laminar Declaration -\*---------------------------------------------------------------------------*/ - -class laminar -: - public RASModel -{ - -public: - - //- Runtime type information - TypeName("laminar"); - - // Constructors - - //- from components - laminar - ( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - basicThermo& thermophysicalModel - ); - - - // Destructor - - ~laminar() - {} - - - // Member Functions - - //- Return the turbulence viscosity, i.e. 0 for laminar flow - tmp<volScalarField> mut() const; - - //- Return the effective viscosity, i.e. the laminar viscosity - tmp<volScalarField> muEff() const - { - return tmp<volScalarField>(new volScalarField("muEff", mu())); - } - - //- Return the effective turbulent thermal diffusivity, - // i.e. the laminar thermal diffusivity - tmp<volScalarField> alphaEff() const - { - return tmp<volScalarField>(new volScalarField("alphaEff", alpha())); - } - - //- Return the turbulence kinetic energy, i.e. 0 for laminar flow - tmp<volScalarField> k() const; - - //- Return the turbulence kinetic energy dissipation rate, - // i.e. 0 for laminar flow - tmp<volScalarField> epsilon() const; - - //- Return the Reynolds stress tensor, i.e. 0 for laminar flow - tmp<volSymmTensorField> R() const; - - //- Return the effective stress tensor, i.e. the laminar stress - tmp<volSymmTensorField> devRhoReff() const; - - //- Return the source term for the momentum equation - tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const; - - //- Correct the laminar viscosity - void correct(); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace compressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/realizableKE/realizableKE.C b/src/turbulenceModels/RAS/compressible/realizableKE/realizableKE.C deleted file mode 100644 index 1e762433f3e..00000000000 --- a/src/turbulenceModels/RAS/compressible/realizableKE/realizableKE.C +++ /dev/null @@ -1,380 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "realizableKE.H" -#include "addToRunTimeSelectionTable.H" -#include "wallFvPatch.H" - -#include "backwardsCompatibilityWallFunctions.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(realizableKE, 0); -addToRunTimeSelectionTable(RASModel, realizableKE, dictionary); - -// * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * * // - -tmp<volScalarField> realizableKE::rCmu -( - const volTensorField& gradU, - const volScalarField& S2, - const volScalarField& magS -) -{ - tmp<volSymmTensorField> tS = dev(symm(gradU)); - const volSymmTensorField& S = tS(); - - volScalarField W = - (2*sqrt(2.0))*((S&S)&&S) - /( - magS*S2 - + dimensionedScalar("small", dimensionSet(0, 0, -3, 0, 0), SMALL) - ); - - tS.clear(); - - volScalarField phis = - (1.0/3.0)*acos(min(max(sqrt(6.0)*W, -scalar(1)), scalar(1))); - volScalarField As = sqrt(6.0)*cos(phis); - volScalarField Us = sqrt(S2/2.0 + magSqr(skew(gradU))); - - return 1.0/(A0_ + As*Us*k_/(epsilon_ + epsilonSmall_)); -} - - -tmp<volScalarField> realizableKE::rCmu -( - const volTensorField& gradU -) -{ - volScalarField S2 = 2*magSqr(dev(symm(gradU))); - volScalarField magS = sqrt(S2); - return rCmu(gradU, S2, magS); -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -realizableKE::realizableKE -( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - basicThermo& thermophysicalModel -) -: - RASModel(typeName, rho, U, phi, thermophysicalModel), - - Cmu_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cmu", - coeffDict_, - 0.09 - ) - ), - A0_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "A0", - coeffDict_, - 4.0 - ) - ), - C2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C2", - coeffDict_, - 1.9 - ) - ), - alphak_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphak", - coeffDict_, - 1.0 - ) - ), - alphaEps_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphaEps", - coeffDict_, - 0.833333 - ) - ), - alphah_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphah", - coeffDict_, - 1.0 - ) - ), - - k_ - ( - IOobject - ( - "k", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateK("k", mesh_) - ), - epsilon_ - ( - IOobject - ( - "epsilon", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateEpsilon("epsilon", mesh_) - ), - mut_ - ( - IOobject - ( - "mut", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateMut("mut", mesh_) - ), - alphat_ - ( - IOobject - ( - "alphat", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateAlphat("alphat", mesh_) - ) -{ - bound(k_, k0_); - bound(epsilon_, epsilon0_); - - mut_ == rCmu(fvc::grad(U_))*rho_*sqr(k_)/(epsilon_ + epsilonSmall_); - mut_.correctBoundaryConditions(); - - alphat_ == mut_/Prt_; - alphat_.correctBoundaryConditions(); - - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -tmp<volSymmTensorField> realizableKE::R() const -{ - return tmp<volSymmTensorField> - ( - new volSymmTensorField - ( - IOobject - ( - "R", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - ((2.0/3.0)*I)*k_ - (mut_/rho_)*dev(twoSymm(fvc::grad(U_))), - k_.boundaryField().types() - ) - ); -} - - -tmp<volSymmTensorField> realizableKE::devRhoReff() const -{ - return tmp<volSymmTensorField> - ( - new volSymmTensorField - ( - IOobject - ( - "devRhoReff", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - -muEff()*dev(twoSymm(fvc::grad(U_))) - ) - ); -} - - -tmp<fvVectorMatrix> realizableKE::divDevRhoReff(volVectorField& U) const -{ - return - ( - - fvm::laplacian(muEff(), U) - fvc::div(muEff()*dev2(fvc::grad(U)().T())) - ); -} - - -bool realizableKE::read() -{ - if (RASModel::read()) - { - Cmu_.readIfPresent(coeffDict_); - A0_.readIfPresent(coeffDict_); - C2_.readIfPresent(coeffDict_); - alphak_.readIfPresent(coeffDict_); - alphaEps_.readIfPresent(coeffDict_); - alphah_.readIfPresent(coeffDict_); - - return true; - } - else - { - return false; - } -} - - -void realizableKE::correct() -{ - if (!turbulence_) - { - // Re-calculate viscosity - mut_ == rCmu(fvc::grad(U_))*rho_*sqr(k_)/epsilon_; - mut_.correctBoundaryConditions(); - - // Re-calculate thermal diffusivity - alphat_ = mut_/Prt_; - alphat_.correctBoundaryConditions(); - - return; - } - - RASModel::correct(); - - volScalarField divU = fvc::div(phi_/fvc::interpolate(rho_)); - - if (mesh_.moving()) - { - divU += fvc::div(mesh_.phi()); - } - - volTensorField gradU = fvc::grad(U_); - volScalarField S2 = 2*magSqr(dev(symm(gradU))); - volScalarField magS = sqrt(S2); - - volScalarField eta = magS*k_/epsilon_; - volScalarField C1 = max(eta/(scalar(5) + eta), scalar(0.43)); - - volScalarField G("G", mut_*(gradU && dev(twoSymm(gradU)))); - - // Update espsilon and G at the wall - epsilon_.boundaryField().updateCoeffs(); - - // Dissipation equation - tmp<fvScalarMatrix> epsEqn - ( - fvm::ddt(rho_, epsilon_) - + fvm::div(phi_, epsilon_) - - fvm::laplacian(DepsilonEff(), epsilon_) - == - C1*rho_*magS*epsilon_ - - fvm::Sp - ( - C2_*rho_*epsilon_/(k_ + sqrt((mu()/rho_)*epsilon_)), - epsilon_ - ) - ); - - epsEqn().relax(); - - epsEqn().boundaryManipulate(epsilon_.boundaryField()); - - solve(epsEqn); - bound(epsilon_, epsilon0_); - - - // Turbulent kinetic energy equation - - tmp<fvScalarMatrix> kEqn - ( - fvm::ddt(rho_, k_) - + fvm::div(phi_, k_) - - fvm::laplacian(DkEff(), k_) - == - G - fvm::SuSp(2.0/3.0*rho_*divU, k_) - - fvm::Sp(rho_*(epsilon_)/k_, k_) - ); - - kEqn().relax(); - solve(kEqn); - bound(k_, k0_); - - // Re-calculate viscosity - mut_ == rCmu(gradU, S2, magS)*rho_*sqr(k_)/epsilon_; - mut_.correctBoundaryConditions(); - - // Re-calculate thermal diffusivity - alphat_ = mut_/Prt_; - alphat_.correctBoundaryConditions(); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace compressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/compressible/realizableKE/realizableKE.H b/src/turbulenceModels/RAS/compressible/realizableKE/realizableKE.H deleted file mode 100644 index f997efdd5f8..00000000000 --- a/src/turbulenceModels/RAS/compressible/realizableKE/realizableKE.H +++ /dev/null @@ -1,204 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::compressible::RASModels::realizableKE - -Description - Realizable k-epsilon turbulence model for compressible flows. - - Model described in the paper: - @verbatim - "A New k-epsilon Eddy Viscosity Model for High Reynolds Number - Turbulent Flows" - - Tsan-Hsing Shih, William W. Liou, Aamir Shabbir, Zhigang Tang and - Jiang Zhu - - Computers and Fluids Vol. 24, No. 3, pp. 227-238, 1995 - @endverbatim - - The default model coefficients correspond to the following: - @verbatim - realizableKE - { - Cmu 0.09; - A0 4.0; - C2 1.9; - alphak 1.0; - alphaEps 0.833333; - alphah 1.0; // only for compressible - } - @endverbatim - -SourceFiles - realizableKE.C - -\*---------------------------------------------------------------------------*/ - -#ifndef realizableKE_H -#define realizableKE_H - -#include "RASModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace compressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class realizableKE Declaration -\*---------------------------------------------------------------------------*/ - -class realizableKE -: - public RASModel -{ - // Private data - - dimensionedScalar Cmu_; - dimensionedScalar A0_; - dimensionedScalar C2_; - dimensionedScalar alphak_; - dimensionedScalar alphaEps_; - dimensionedScalar alphah_; - - volScalarField k_; - volScalarField epsilon_; - volScalarField mut_; - volScalarField alphat_; - - tmp<volScalarField> rCmu - ( - const volTensorField& gradU, - const volScalarField& S2, - const volScalarField& magS - ); - - tmp<volScalarField> rCmu - ( - const volTensorField& gradU - ); - -public: - - //- Runtime type information - TypeName("realizableKE"); - - // Constructors - - //- from components - realizableKE - ( - const volScalarField& rho, - const volVectorField& U, - const surfaceScalarField& phi, - basicThermo& thermophysicalModel - ); - - - // Destructor - - ~realizableKE(){} - - - // Member Functions - - //- Return the turbulence viscosity - tmp<volScalarField> mut() const - { - return mut_; - } - - //- Return the effective diffusivity for k - tmp<volScalarField> DkEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DkEff", alphak_*mut_ + mu()) - ); - } - - //- Return the effective diffusivity for epsilon - tmp<volScalarField> DepsilonEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DepsilonEff", alphaEps_*mut_ + mu()) - ); - } - - //- Return the effective turbulent thermal diffusivity - tmp<volScalarField> alphaEff() const - { - return tmp<volScalarField> - ( - new volScalarField("alphaEff", alphah_*alphat_ + alpha()) - ); - } - - //- Return the turbulence kinetic energy - tmp<volScalarField> k() const - { - return k_; - } - - //- Return the turbulence kinetic energy dissipation rate - tmp<volScalarField> epsilon() const - { - return epsilon_; - } - - //- Return the Reynolds stress tensor - tmp<volSymmTensorField> R() const; - - //- Return the effective stress tensor including the laminar stress - tmp<volSymmTensorField> devRhoReff() const; - - //- Return the source term for the momentum equation - tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const; - - //- Solve the turbulence equations and correct the turbulence viscosity - void correct(); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace compressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/LRR/LRR.C b/src/turbulenceModels/RAS/incompressible/LRR/LRR.C deleted file mode 100644 index 7bf38a99825..00000000000 --- a/src/turbulenceModels/RAS/incompressible/LRR/LRR.C +++ /dev/null @@ -1,433 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "LRR.H" -#include "addToRunTimeSelectionTable.H" -#include "wallFvPatch.H" - -#include "backwardsCompatibilityWallFunctions.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(LRR, 0); -addToRunTimeSelectionTable(RASModel, LRR, dictionary); - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// from components -LRR::LRR -( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& lamTransportModel -) -: - RASModel(typeName, U, phi, lamTransportModel), - - Cmu_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cmu", - coeffDict_, - 0.09 - ) - ), - Clrr1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Clrr1", - coeffDict_, - 1.8 - ) - ), - Clrr2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Clrr2", - coeffDict_, - 0.6 - ) - ), - C1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C1", - coeffDict_, - 1.44 - ) - ), - C2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C2", - coeffDict_, - 1.92 - ) - ), - Cs_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cs", - coeffDict_, - 0.25 - ) - ), - Ceps_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Ceps", - coeffDict_, - 0.15 - ) - ), - alphaEps_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphaEps", - coeffDict_, - 0.76923 - ) - ), - couplingFactor_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "couplingFactor", - coeffDict_, - 0.0 - ) - ), - - R_ - ( - IOobject - ( - "R", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateR("R", mesh_) - ), - k_ - ( - IOobject - ( - "k", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateK("k", mesh_) - ), - epsilon_ - ( - IOobject - ( - "epsilon", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateEpsilon("epsilon", mesh_) - ), - nut_ - ( - IOobject - ( - "nut", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateNut("nut", mesh_) - ) -{ - nut_ == Cmu_*sqr(k_)/(epsilon_ + epsilonSmall_); - nut_.correctBoundaryConditions(); - - if (couplingFactor_.value() < 0.0 || couplingFactor_.value() > 1.0) - { - FatalErrorIn - ( - "LRR::LRR" - "(const volVectorField& U, const surfaceScalarField& phi," - "transportModel& lamTransportModel)" - ) << "couplingFactor = " << couplingFactor_ - << " is not in range 0 - 1" << nl - << exit(FatalError); - } - - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -tmp<volSymmTensorField> LRR::devReff() const -{ - return tmp<volSymmTensorField> - ( - new volSymmTensorField - ( - IOobject - ( - "devRhoReff", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - R_ - nu()*dev(twoSymm(fvc::grad(U_))) - ) - ); -} - - -tmp<fvVectorMatrix> LRR::divDevReff(volVectorField& U) const -{ - if (couplingFactor_.value() > 0.0) - { - return - ( - fvc::div(R_ + couplingFactor_*nut_*fvc::grad(U), "div(R)") - + fvc::laplacian - ( - (1.0 - couplingFactor_)*nut_, - U, - "laplacian(nuEff,U)" - ) - - fvm::laplacian(nuEff(), U) - ); - } - else - { - return - ( - fvc::div(R_) - + fvc::laplacian(nut_, U, "laplacian(nuEff,U)") - - fvm::laplacian(nuEff(), U) - ); - } -} - - -bool LRR::read() -{ - if (RASModel::read()) - { - Cmu_.readIfPresent(coeffDict_); - Clrr1_.readIfPresent(coeffDict_); - Clrr2_.readIfPresent(coeffDict_); - C1_.readIfPresent(coeffDict_); - C2_.readIfPresent(coeffDict_); - Cs_.readIfPresent(coeffDict_); - Ceps_.readIfPresent(coeffDict_); - alphaEps_.readIfPresent(coeffDict_); - - couplingFactor_.readIfPresent(coeffDict_); - - if (couplingFactor_.value() < 0.0 || couplingFactor_.value() > 1.0) - { - FatalErrorIn("LRR::read()") - << "couplingFactor = " << couplingFactor_ - << " is not in range 0 - 1" - << exit(FatalError); - } - - return true; - } - else - { - return false; - } -} - - -void LRR::correct() -{ - transportModel_.correct(); - - if (!turbulence_) - { - return; - } - - RASModel::correct(); - - volSymmTensorField P = -twoSymm(R_ & fvc::grad(U_)); - volScalarField G("G", 0.5*tr(P)); - - // Update espsilon and G at the wall - epsilon_.boundaryField().updateCoeffs(); - - // Dissipation equation - tmp<fvScalarMatrix> epsEqn - ( - fvm::ddt(epsilon_) - + fvm::div(phi_, epsilon_) - //- fvm::laplacian(Ceps*(K/epsilon_)*R, epsilon_) - - fvm::laplacian(DepsilonEff(), epsilon_) - == - C1_*G*epsilon_/k_ - - fvm::Sp(C2_*epsilon_/k_, epsilon_) - ); - - epsEqn().relax(); - - epsEqn().boundaryManipulate(epsilon_.boundaryField()); - - solve(epsEqn); - bound(epsilon_, epsilon0_); - - - // Reynolds stress equation - - const fvPatchList& patches = mesh_.boundary(); - - forAll(patches, patchi) - { - const fvPatch& curPatch = patches[patchi]; - - if (typeid(curPatch) == typeid(wallFvPatch)) - { - forAll(curPatch, facei) - { - label faceCelli = curPatch.faceCells()[facei]; - P[faceCelli] - *= min(G[faceCelli]/(0.5*tr(P[faceCelli]) + SMALL), 1.0); - } - } - } - - - tmp<fvSymmTensorMatrix> REqn - ( - fvm::ddt(R_) - + fvm::div(phi_, R_) - //- fvm::laplacian(Cs*(k_/epsilon_)*R_, R_) - - fvm::laplacian(DREff(), R_) - + fvm::Sp(Clrr1_*epsilon_/k_, R_) - == - P - - (2.0/3.0*(1 - Clrr1_)*I)*epsilon_ - - Clrr2_*dev(P) - ); - - REqn().relax(); - solve(REqn); - - R_.max - ( - dimensionedSymmTensor - ( - "zero", - R_.dimensions(), - symmTensor - ( - k0_.value(), -GREAT, -GREAT, - k0_.value(), -GREAT, - k0_.value() - ) - ) - ); - - k_ = 0.5*tr(R_); - bound(k_, k0_); - - - // Re-calculate viscosity - nut_ == Cmu_*sqr(k_)/epsilon_; - nut_.correctBoundaryConditions(); - - - // Correct wall shear stresses - - forAll(patches, patchi) - { - const fvPatch& curPatch = patches[patchi]; - - if (typeid(curPatch) == typeid(wallFvPatch)) - { - symmTensorField& Rw = R_.boundaryField()[patchi]; - - const scalarField& nutw = nut_.boundaryField()[patchi]; - - vectorField snGradU = U_.boundaryField()[patchi].snGrad(); - - const vectorField& faceAreas - = mesh_.Sf().boundaryField()[patchi]; - - const scalarField& magFaceAreas - = mesh_.magSf().boundaryField()[patchi]; - - forAll(curPatch, facei) - { - // Calculate near-wall velocity gradient - tensor gradUw - = (faceAreas[facei]/magFaceAreas[facei])*snGradU[facei]; - - // Calculate near-wall shear-stress tensor - tensor tauw = -nutw[facei]*2*symm(gradUw); - - // Reset the shear components of the stress tensor - Rw[facei].xy() = tauw.xy(); - Rw[facei].xz() = tauw.xz(); - Rw[facei].yz() = tauw.yz(); - } - } - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/LRR/LRR.H b/src/turbulenceModels/RAS/incompressible/LRR/LRR.H deleted file mode 100644 index 45b3df83e86..00000000000 --- a/src/turbulenceModels/RAS/incompressible/LRR/LRR.H +++ /dev/null @@ -1,188 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::RASModels::LRR - -Description - Launder, Reece and Rodi Reynolds-stress turbulence model for - incompressible flows. - - The default model coefficients correspond to the following: - @verbatim - LRRCoeffs - { - Cmu 0.09; - Clrr1 1.8; - Clrr2 0.6; - C1 1.44; - C2 1.92; - Cs 0.25; - Ceps 0.15; - alphah 1.0; // only for compressible - alphaEps 0.76923; - alphaR 1.22; // only for compressible - couplingFactor 0.0; // only for incompressible - } - @endverbatim - -SourceFiles - LRR.C - -\*---------------------------------------------------------------------------*/ - -#ifndef LRR_H -#define LRR_H - -#include "RASModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class LRR Declaration -\*---------------------------------------------------------------------------*/ - -class LRR -: - public RASModel -{ - // Private data - - dimensionedScalar Cmu_; - - dimensionedScalar Clrr1_; - dimensionedScalar Clrr2_; - - dimensionedScalar C1_; - dimensionedScalar C2_; - dimensionedScalar Cs_; - dimensionedScalar Ceps_; - dimensionedScalar alphaEps_; - - dimensionedScalar couplingFactor_; - - volSymmTensorField R_; - volScalarField k_; - volScalarField epsilon_; - volScalarField nut_; - - -public: - - //- Runtime type information - TypeName("LRR"); - - // Constructors - - //- from components - LRR - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ); - - - // Destructor - - ~LRR() - {} - - - // Member Functions - - //- Return the turbulence viscosity - tmp<volScalarField> nut() const - { - return nut_; - } - - //- Return the effective diffusivity for R - tmp<volScalarField> DREff() const - { - return tmp<volScalarField> - ( - new volScalarField("DREff", nut_ + nu()) - ); - } - - //- Return the effective diffusivity for epsilon - tmp<volScalarField> DepsilonEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DepsilonEff", alphaEps_*nut_ + nu()) - ); - } - - //- Return the turbulence kinetic energy - tmp<volScalarField> k() const - { - return k_; - } - - //- Return the turbulence kinetic energy dissipation rate - tmp<volScalarField> epsilon() const - { - return epsilon_; - } - - //- Return the Reynolds stress tensor - tmp<volSymmTensorField> R() const - { - return R_; - } - - //- Return the effective stress tensor including the laminar stress - tmp<volSymmTensorField> devReff() const; - - //- Return the source term for the momentum equation - tmp<fvVectorMatrix> divDevReff(volVectorField& U) const; - - //- Solve the turbulence equations and correct the turbulence viscosity - void correct(); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/LamBremhorstKE/LamBremhorstKE.C b/src/turbulenceModels/RAS/incompressible/LamBremhorstKE/LamBremhorstKE.C deleted file mode 100644 index 52145f9b4bd..00000000000 --- a/src/turbulenceModels/RAS/incompressible/LamBremhorstKE/LamBremhorstKE.C +++ /dev/null @@ -1,280 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "LamBremhorstKE.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(LamBremhorstKE, 0); -addToRunTimeSelectionTable(RASModel, LamBremhorstKE, dictionary); - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// from components -LamBremhorstKE::LamBremhorstKE -( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& lamTransportModel -) -: - RASModel(typeName, U, phi, lamTransportModel), - - Cmu_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cmu", - coeffDict_, - 0.09 - ) - ), - C1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C1", - coeffDict_, - 1.44 - ) - ), - C2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C2", - coeffDict_, - 1.92 - ) - ), - alphaEps_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphaEps", - coeffDict_, - 0.76923 - ) - ), - - k_ - ( - IOobject - ( - "k", - runTime_.timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh_ - ), - - epsilon_ - ( - IOobject - ( - "epsilon", - runTime_.timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh_ - ), - - y_(mesh_), - - Rt_(sqr(k_)/(nu()*epsilon_)), - - fMu_ - ( - sqr(scalar(1) - exp(-0.0165*(sqrt(k_)*y_/nu()))) - *(scalar(1) + 20.5/(Rt_ + SMALL)) - ), - - nut_(Cmu_*fMu_*sqr(k_)/(epsilon_ + epsilonSmall_)) -{ - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -tmp<volSymmTensorField> LamBremhorstKE::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> LamBremhorstKE::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> LamBremhorstKE::divDevReff(volVectorField& U) const -{ - return - ( - - fvm::laplacian(nuEff(), U) - - fvc::div(nuEff()*dev(fvc::grad(U)().T())) - ); -} - - -bool LamBremhorstKE::read() -{ - if (RASModel::read()) - { - Cmu_.readIfPresent(coeffDict_); - C1_.readIfPresent(coeffDict_); - C2_.readIfPresent(coeffDict_); - alphaEps_.readIfPresent(coeffDict_); - - return true; - } - else - { - return false; - } -} - - -void LamBremhorstKE::correct() -{ - transportModel_.correct(); - - if (!turbulence_) - { - return; - } - - RASModel::correct(); - - if (mesh_.changing()) - { - y_.correct(); - } - - volScalarField G = nut_*2*magSqr(symm(fvc::grad(U_))); - - // Calculate parameters and coefficients for low-Reynolds number model - - Rt_ = sqr(k_)/(nu()*epsilon_); - volScalarField Ry = sqrt(k_)*y_/nu(); - - fMu_ = sqr(scalar(1) - exp(-0.0165*Ry)) - *(scalar(1) + 20.5/(Rt_ + SMALL)); - - volScalarField f1 = scalar(1) + pow(0.05/(fMu_ + SMALL), 3); - volScalarField f2 = scalar(1) - exp(-sqr(Rt_)); - - - // Dissipation equation - - tmp<fvScalarMatrix> epsEqn - ( - fvm::ddt(epsilon_) - + fvm::div(phi_, epsilon_) - - fvm::laplacian(DepsilonEff(), epsilon_) - == - C1_*f1*G*epsilon_/k_ - - fvm::Sp(C2_*f2*epsilon_/k_, epsilon_) - ); - - epsEqn().relax(); - solve(epsEqn); - bound(epsilon_, epsilon0_); - - - // Turbulent kinetic energy equation - - tmp<fvScalarMatrix> kEqn - ( - fvm::ddt(k_) - + fvm::div(phi_, k_) - - fvm::laplacian(DkEff(), k_) - == - G - fvm::Sp(epsilon_/k_, k_) - ); - - kEqn().relax(); - solve(kEqn); - bound(k_, k0_); - - - // Re-calculate viscosity - nut_ = Cmu_*fMu_*sqr(k_)/epsilon_; -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/LamBremhorstKE/LamBremhorstKE.H b/src/turbulenceModels/RAS/incompressible/LamBremhorstKE/LamBremhorstKE.H deleted file mode 100644 index f0e8a0ba591..00000000000 --- a/src/turbulenceModels/RAS/incompressible/LamBremhorstKE/LamBremhorstKE.H +++ /dev/null @@ -1,165 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::RASModels::LamBremhorstKE - -Description - Lam and Bremhorst low-Reynolds number k-epsilon turbulence model - for incompressible flows - -SourceFiles - LamBremhorstKE.C - -\*---------------------------------------------------------------------------*/ - -#ifndef LamBremhorstKE_H -#define LamBremhorstKE_H - -#include "RASModel.H" -#include "wallDist.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class LamBremhorstKE Declaration -\*---------------------------------------------------------------------------*/ - -class LamBremhorstKE -: - public RASModel -{ - // Private data - - dimensionedScalar Cmu_; - dimensionedScalar C1_; - dimensionedScalar C2_; - dimensionedScalar alphaEps_; - - volScalarField k_; - volScalarField epsilon_; - - wallDist y_; - volScalarField Rt_; - - volScalarField fMu_; - volScalarField nut_; - - -public: - - //- Runtime type information - TypeName("LamBremhorstKE"); - - - // Constructors - - //- from components - LamBremhorstKE - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ); - - - // Destructor - - ~LamBremhorstKE() - {} - - - // Member Functions - - //- Return the turbulence viscosity - tmp<volScalarField> nut() const - { - return nut_; - } - - //- Return the effective diffusivity for k - tmp<volScalarField> DkEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DkEff", nut_ + nu()) - ); - } - - //- Return the effective diffusivity for epsilon - tmp<volScalarField> DepsilonEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DepsilonEff", alphaEps_*nut_ + nu()) - ); - } - - //- Return the turbulence kinetic energy - tmp<volScalarField> k() const - { - return k_; - } - - //- Return the turbulence kinetic energy dissipation rate - tmp<volScalarField> epsilon() const - { - return epsilon_; - } - - //- Return the Reynolds stress tensor - tmp<volSymmTensorField> R() const; - - //- Return the effective stress tensor including the laminar stress - tmp<volSymmTensorField> devReff() const; - - //- Return the source term for the momentum equation - tmp<fvVectorMatrix> divDevReff(volVectorField& U) const; - - //- Solve the turbulence equations and correct the turbulence viscosity - void correct(); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/LaunderGibsonRSTM/LaunderGibsonRSTM.C b/src/turbulenceModels/RAS/incompressible/LaunderGibsonRSTM/LaunderGibsonRSTM.C deleted file mode 100644 index d67c91a227d..00000000000 --- a/src/turbulenceModels/RAS/incompressible/LaunderGibsonRSTM/LaunderGibsonRSTM.C +++ /dev/null @@ -1,474 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "LaunderGibsonRSTM.H" -#include "addToRunTimeSelectionTable.H" -#include "wallFvPatch.H" - -#include "backwardsCompatibilityWallFunctions.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(LaunderGibsonRSTM, 0); -addToRunTimeSelectionTable(RASModel, LaunderGibsonRSTM, dictionary); - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// from components -LaunderGibsonRSTM::LaunderGibsonRSTM -( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& lamTransportModel -) -: - RASModel(typeName, U, phi, lamTransportModel), - - Cmu_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cmu", - coeffDict_, - 0.09 - ) - ), - Clg1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Clg1", - coeffDict_, - 1.8 - ) - ), - Clg2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Clg2", - coeffDict_, - 0.6 - ) - ), - C1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C1", - coeffDict_, - 1.44 - ) - ), - C2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C2", - coeffDict_, - 1.92 - ) - ), - Cs_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cs", - coeffDict_, - 0.25 - ) - ), - Ceps_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Ceps", - coeffDict_, - 0.15 - ) - ), - alphaR_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphaR", - coeffDict_, - 1.22 - ) - ), - alphaEps_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphaEps", - coeffDict_, - 0.76923 - ) - ), - C1Ref_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C1Ref", - coeffDict_, - 0.5 - ) - ), - C2Ref_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C2Ref", - coeffDict_, - 0.3 - ) - ), - couplingFactor_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "couplingFactor", - coeffDict_, - 0.0 - ) - ), - - yr_(mesh_), - - R_ - ( - IOobject - ( - "R", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateR("R", mesh_) - ), - k_ - ( - IOobject - ( - "k", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateK("k", mesh_) - ), - epsilon_ - ( - IOobject - ( - "epsilon", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateEpsilon("epsilon", mesh_) - ), - nut_ - ( - IOobject - ( - "nut", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateNut("nut", mesh_) - ) -{ - nut_ == Cmu_*sqr(k_)/(epsilon_ + epsilonSmall_); - nut_.correctBoundaryConditions(); - - if (couplingFactor_.value() < 0.0 || couplingFactor_.value() > 1.0) - { - FatalErrorIn - ( - "LaunderGibsonRSTM::LaunderGibsonRSTM" - "(const volVectorField& U, const surfaceScalarField& phi," - "transportModel& lamTransportModel)" - ) << "couplingFactor = " << couplingFactor_ - << " is not in range 0 - 1" << nl - << exit(FatalError); - } - - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -tmp<volSymmTensorField> LaunderGibsonRSTM::devReff() const -{ - return tmp<volSymmTensorField> - ( - new volSymmTensorField - ( - IOobject - ( - "devRhoReff", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - R_ - nu()*dev(twoSymm(fvc::grad(U_))) - ) - ); -} - - -tmp<fvVectorMatrix> LaunderGibsonRSTM::divDevReff(volVectorField& U) const -{ - if (couplingFactor_.value() > 0.0) - { - return - ( - fvc::div(R_ + couplingFactor_*nut_*fvc::grad(U), "div(R)") - + fvc::laplacian((1.0-couplingFactor_)*nut_, U, "laplacian(nuEff,U)") - - fvm::laplacian(nuEff(), U) - ); - } - else - { - return - ( - fvc::div(R_) - + fvc::laplacian(nut_, U, "laplacian(nuEff,U)") - - fvm::laplacian(nuEff(), U) - ); - } -} - - -bool LaunderGibsonRSTM::read() -{ - if (RASModel::read()) - { - Cmu_.readIfPresent(coeffDict_); - Clg1_.readIfPresent(coeffDict_); - Clg2_.readIfPresent(coeffDict_); - C1_.readIfPresent(coeffDict_); - C2_.readIfPresent(coeffDict_); - Cs_.readIfPresent(coeffDict_); - Ceps_.readIfPresent(coeffDict_); - alphaR_.readIfPresent(coeffDict_); - alphaEps_.readIfPresent(coeffDict_); - C1Ref_.readIfPresent(coeffDict_); - C2Ref_.readIfPresent(coeffDict_); - - couplingFactor_.readIfPresent(coeffDict_); - - if (couplingFactor_.value() < 0.0 || couplingFactor_.value() > 1.0) - { - FatalErrorIn("LaunderGibsonRSTM::read()") - << "couplingFactor = " << couplingFactor_ - << " is not in range 0 - 1" - << exit(FatalError); - } - - return true; - } - else - { - return false; - } -} - - -void LaunderGibsonRSTM::correct() -{ - transportModel_.correct(); - - if (!turbulence_) - { - return; - } - - RASModel::correct(); - - if (mesh_.changing()) - { - yr_.correct(); - } - - volSymmTensorField P = -twoSymm(R_ & fvc::grad(U_)); - volScalarField G("G", 0.5*tr(P)); - - // Update espsilon and G at the wall - epsilon_.boundaryField().updateCoeffs(); - - // Dissipation equation - tmp<fvScalarMatrix> epsEqn - ( - fvm::ddt(epsilon_) - + fvm::div(phi_, epsilon_) - //- fvm::laplacian(Ceps*(k_/epsilon_)*R_, epsilon_) - - fvm::laplacian(DepsilonEff(), epsilon_) - == - C1_*G*epsilon_/k_ - - fvm::Sp(C2_*epsilon_/k_, epsilon_) - ); - - epsEqn().relax(); - - epsEqn().boundaryManipulate(epsilon_.boundaryField()); - - solve(epsEqn); - bound(epsilon_, epsilon0_); - - - // Reynolds stress equation - - const fvPatchList& patches = mesh_.boundary(); - - forAll(patches, patchi) - { - const fvPatch& curPatch = patches[patchi]; - - if (typeid(curPatch) == typeid(wallFvPatch)) - { - forAll(curPatch, facei) - { - label faceCelli = curPatch.faceCells()[facei]; - P[faceCelli] *= - min(G[faceCelli]/(0.5*tr(P[faceCelli]) + SMALL), 1.0); - } - } - } - - volSymmTensorField reflect = C1Ref_*epsilon_/k_*R_ - C2Ref_*Clg2_*dev(P); - - tmp<fvSymmTensorMatrix> REqn - ( - fvm::ddt(R_) - + fvm::div(phi_, R_) - //- fvm::laplacian(Cs*(k_/epsilon_)*R_, R_) - - fvm::laplacian(DREff(), R_) - + fvm::Sp(Clg1_*epsilon_/k_, R_) - == - P - + (2.0/3.0*(Clg1_ - 1)*I)*epsilon_ - - Clg2_*dev(P) - - // wall reflection terms - + symm - ( - I*((yr_.n() & reflect) & yr_.n()) - - 1.5*(yr_.n()*(reflect & yr_.n()) - + (yr_.n() & reflect)*yr_.n()) - )*pow(Cmu_, 0.75)*pow(k_, 1.5)/(kappa_*yr_*epsilon_) - ); - - REqn().relax(); - solve(REqn); - - R_.max - ( - dimensionedSymmTensor - ( - "zero", - R_.dimensions(), - symmTensor - ( - k0_.value(), -GREAT, -GREAT, - k0_.value(), -GREAT, - k0_.value() - ) - ) - ); - - k_ == 0.5*tr(R_); - bound(k_, k0_); - - - // Re-calculate turbulent viscosity - nut_ == Cmu_*sqr(k_)/epsilon_; - nut_.correctBoundaryConditions(); - - - // Correct wall shear stresses - - forAll(patches, patchi) - { - const fvPatch& curPatch = patches[patchi]; - - if (typeid(curPatch) == typeid(wallFvPatch)) - { - symmTensorField& Rw = R_.boundaryField()[patchi]; - - const scalarField& nutw = nut_.boundaryField()[patchi]; - - vectorField snGradU = U_.boundaryField()[patchi].snGrad(); - - const vectorField& faceAreas - = mesh_.Sf().boundaryField()[patchi]; - - const scalarField& magFaceAreas - = mesh_.magSf().boundaryField()[patchi]; - - forAll(curPatch, facei) - { - // Calculate near-wall velocity gradient - tensor gradUw - = (faceAreas[facei]/magFaceAreas[facei])*snGradU[facei]; - - // Calculate near-wall shear-stress tensor - tensor tauw = -nutw[facei]*2*symm(gradUw); - - // Reset the shear components of the stress tensor - Rw[facei].xy() = tauw.xy(); - Rw[facei].xz() = tauw.xz(); - Rw[facei].yz() = tauw.yz(); - } - } - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/LaunderGibsonRSTM/LaunderGibsonRSTM.H b/src/turbulenceModels/RAS/incompressible/LaunderGibsonRSTM/LaunderGibsonRSTM.H deleted file mode 100644 index 73169b389ff..00000000000 --- a/src/turbulenceModels/RAS/incompressible/LaunderGibsonRSTM/LaunderGibsonRSTM.H +++ /dev/null @@ -1,196 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::RASModels::LaunderGibsonRSTM - -Description - Launder-Gibson Reynolds stress turbulence model for incompressible flows. - - The default model coefficients correspond to the following: - @verbatim - LaunderGibsonRSTMCoeffs - { - Cmu 0.09; - Clg1 1.8; - Clg2 0.6; - C1 1.44; - C2 1.92; - C1Ref 0.5; - C2Ref 0.3; - Cs 0.25; - Ceps 0.15; - alphah 1.0; // only for compressible - alphaEps 0.76923; - alphaR 1.22; - couplingFactor 0.0; - } - @endverbatim - -SourceFiles - LaunderGibsonRSTM.C - -\*---------------------------------------------------------------------------*/ - -#ifndef LaunderGibsonRSTM_H -#define LaunderGibsonRSTM_H - -#include "RASModel.H" -#include "wallDistReflection.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class LaunderGibsonRSTM Declaration -\*---------------------------------------------------------------------------*/ - -class LaunderGibsonRSTM -: - public RASModel -{ - // Private data - - dimensionedScalar Cmu_; - - dimensionedScalar Clg1_; - dimensionedScalar Clg2_; - - dimensionedScalar C1_; - dimensionedScalar C2_; - dimensionedScalar Cs_; - dimensionedScalar Ceps_; - dimensionedScalar alphaR_; - dimensionedScalar alphaEps_; - - dimensionedScalar C1Ref_; - dimensionedScalar C2Ref_; - - dimensionedScalar couplingFactor_; - - wallDistReflection yr_; - - volSymmTensorField R_; - volScalarField k_; - volScalarField epsilon_; - volScalarField nut_; - - -public: - - //- Runtime type information - TypeName("LaunderGibsonRSTM"); - - // Constructors - - //- from components - LaunderGibsonRSTM - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ); - - - // Destructor - - ~LaunderGibsonRSTM() - {} - - - // Member Functions - - //- Return the turbulence viscosity - tmp<volScalarField> nut() const - { - return nut_; - } - - //- Return the effective diffusivity for R - tmp<volScalarField> DREff() const - { - return tmp<volScalarField> - ( - new volScalarField("DREff", alphaR_*nut_ + nu()) - ); - } - - //- Return the effective diffusivity for epsilon - tmp<volScalarField> DepsilonEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DepsilonEff", alphaEps_*nut_ + nu()) - ); - } - - //- Return the turbulence kinetic energy - tmp<volScalarField> k() const - { - return k_; - } - - //- Return the turbulence kinetic energy dissipation rate - tmp<volScalarField> epsilon() const - { - return epsilon_; - } - - //- Return the Reynolds stress tensor - tmp<volSymmTensorField> R() const - { - return R_; - } - - //- Return the effective stress tensor including the laminar stress - tmp<volSymmTensorField> devReff() const; - - //- Return the source term for the momentum equation - tmp<fvVectorMatrix> divDevReff(volVectorField& U) const; - - //- Solve the turbulence equations and correct the turbulence viscosity - void correct(); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/LaunderSharmaKE/LaunderSharmaKE.C b/src/turbulenceModels/RAS/incompressible/LaunderSharmaKE/LaunderSharmaKE.C deleted file mode 100644 index 2e48e876305..00000000000 --- a/src/turbulenceModels/RAS/incompressible/LaunderSharmaKE/LaunderSharmaKE.C +++ /dev/null @@ -1,275 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "LaunderSharmaKE.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(LaunderSharmaKE, 0); -addToRunTimeSelectionTable(RASModel, LaunderSharmaKE, dictionary); - -// * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * * // - -tmp<volScalarField> LaunderSharmaKE::fMu() const -{ - return exp(-3.4/sqr(scalar(1) + sqr(k_)/(nu()*epsilonTilda_)/50.0)); -} - - -tmp<volScalarField> LaunderSharmaKE::f2() const -{ - return - scalar(1) - - 0.3*exp(-min(sqr(sqr(k_)/(nu()*epsilonTilda_)), scalar(50.0))); -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -LaunderSharmaKE::LaunderSharmaKE -( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& lamTransportModel -) -: - RASModel(typeName, U, phi, lamTransportModel), - - Cmu_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cmu", - coeffDict_, - 0.09 - ) - ), - C1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C1", - coeffDict_, - 1.44 - ) - ), - C2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C2", - coeffDict_, - 1.92 - ) - ), - alphaEps_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphaEps", - coeffDict_, - 0.76923 - ) - ), - - k_ - ( - IOobject - ( - "k", - runTime_.timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh_ - ), - - epsilonTilda_ - ( - IOobject - ( - "epsilon", - runTime_.timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh_ - ), - - nut_(Cmu_*fMu()*sqr(k_)/(epsilonTilda_ + epsilonSmall_)) -{ - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -tmp<volSymmTensorField> LaunderSharmaKE::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> LaunderSharmaKE::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> LaunderSharmaKE::divDevReff(volVectorField& U) const -{ - return - ( - - fvm::laplacian(nuEff(), U) - - fvc::div(nuEff()*dev(fvc::grad(U)().T())) - ); -} - - -bool LaunderSharmaKE::read() -{ - if (RASModel::read()) - { - Cmu_.readIfPresent(coeffDict_); - C1_.readIfPresent(coeffDict_); - C2_.readIfPresent(coeffDict_); - alphaEps_.readIfPresent(coeffDict_); - - return true; - } - else - { - return false; - } -} - - -void LaunderSharmaKE::correct() -{ - transportModel_.correct(); - - if (!turbulence_) - { - return; - } - - RASModel::correct(); - - volScalarField S2 = 2*magSqr(symm(fvc::grad(U_))); - - volScalarField G = nut_*S2; - - volScalarField E = 2.0*nu()*nut_*fvc::magSqrGradGrad(U_); - volScalarField D = 2.0*nu()*magSqr(fvc::grad(sqrt(k_))); - - - // Dissipation rate equation - - tmp<fvScalarMatrix> epsEqn - ( - fvm::ddt(epsilonTilda_) - + fvm::div(phi_, epsilonTilda_) - - fvm::laplacian(DepsilonEff(), epsilonTilda_) - == - C1_*G*epsilonTilda_/k_ - - fvm::Sp(C2_*f2()*epsilonTilda_/k_, epsilonTilda_) - + E - ); - - epsEqn().relax(); - solve(epsEqn); - bound(epsilonTilda_, epsilon0_); - - - // Turbulent kinetic energy equation - - tmp<fvScalarMatrix> kEqn - ( - fvm::ddt(k_) - + fvm::div(phi_, k_) - - fvm::laplacian(DkEff(), k_) - == - G - fvm::Sp((epsilonTilda_ + D)/k_, k_) - ); - - kEqn().relax(); - solve(kEqn); - bound(k_, k0_); - - - // Re-calculate viscosity - nut_ = Cmu_*fMu()*sqr(k_)/epsilonTilda_; -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/LaunderSharmaKE/LaunderSharmaKE.H b/src/turbulenceModels/RAS/incompressible/LaunderSharmaKE/LaunderSharmaKE.H deleted file mode 100644 index a16a1d8f3a2..00000000000 --- a/src/turbulenceModels/RAS/incompressible/LaunderSharmaKE/LaunderSharmaKE.H +++ /dev/null @@ -1,180 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::RASModels::LaunderSharmaKE - -Description - Launder and Sharma low-Reynolds k-epsilon turbulence model for - incompressible flows. - - The default model coefficients correspond to the following: - @verbatim - LaunderSharmaKECoeffs - { - Cmu 0.09; - C1 1.44; - C2 1.92; - C3 -0.33; - alphah 1.0; // only for compressible - alphahk 1.0; // only for compressible - alphaEps 0.76923; - } - @endverbatim - -SourceFiles - LaunderSharmaKE.C - -\*---------------------------------------------------------------------------*/ - -#ifndef LaunderSharmaKE_H -#define LaunderSharmaKE_H - -#include "RASModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class LaunderSharmaKE Declaration -\*---------------------------------------------------------------------------*/ - -class LaunderSharmaKE -: - public RASModel -{ - // Private data - - dimensionedScalar Cmu_; - dimensionedScalar C1_; - dimensionedScalar C2_; - dimensionedScalar alphaEps_; - - volScalarField k_; - volScalarField epsilonTilda_; - - volScalarField nut_; - - - // Private member functions - - tmp<volScalarField> fMu() const; - tmp<volScalarField> f2() const; - - -public: - - //- Runtime type information - TypeName("LaunderSharmaKE"); - - // Constructors - - //- from components - LaunderSharmaKE - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ); - - - // Destructor - - ~LaunderSharmaKE() - {} - - - // Member Functions - - //- Return the turbulence viscosity - tmp<volScalarField> nut() const - { - return nut_; - } - - //- Return the effective diffusivity for k - tmp<volScalarField> DkEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DkEff", nut_ + nu()) - ); - } - - //- Return the effective diffusivity for epsilon - tmp<volScalarField> DepsilonEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DepsilonEff", alphaEps_*nut_ + nu()) - ); - } - - //- Return the turbulence kinetic energy - tmp<volScalarField> k() const - { - return k_; - } - - //- Note that epsilonTilda is returned as epsilon. - // This is the appropriate variable for most purposes. - tmp<volScalarField> epsilon() const - { - return epsilonTilda_; - } - - //- Return the Reynolds stress tensor - tmp<volSymmTensorField> R() const; - - //- Return the effective stress tensor including the laminar stress - tmp<volSymmTensorField> devReff() const; - - //- Return the source term for the momentum equation - tmp<fvVectorMatrix> divDevReff(volVectorField& U) const; - - //- Solve the turbulence equations and correct the turbulence viscosity - void correct(); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/LienCubicKE/LienCubicKE.C b/src/turbulenceModels/RAS/incompressible/LienCubicKE/LienCubicKE.C deleted file mode 100644 index b347693adc4..00000000000 --- a/src/turbulenceModels/RAS/incompressible/LienCubicKE/LienCubicKE.C +++ /dev/null @@ -1,423 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "LienCubicKE.H" -#include "addToRunTimeSelectionTable.H" -#include "wallFvPatch.H" - -#include "backwardsCompatibilityWallFunctions.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(LienCubicKE, 0); -addToRunTimeSelectionTable(RASModel, LienCubicKE, dictionary); - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// from components -LienCubicKE::LienCubicKE -( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& lamTransportModel -) -: - RASModel(typeName, U, phi, lamTransportModel), - - C1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C1", - coeffDict_, - 1.44 - ) - ), - C2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C2", - coeffDict_, - 1.92 - ) - ), - alphak_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphak", - coeffDict_, - 1.0 - ) - ), - alphaEps_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphaEps", - coeffDict_, - 0.76923 - ) - ), - A1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "A1", - coeffDict_, - 1.25 - ) - ), - A2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "A2", - coeffDict_, - 1000.0 - ) - ), - Ctau1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Ctau1", - coeffDict_, - -4.0 - ) - ), - Ctau2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Ctau2", - coeffDict_, - 13.0 - ) - ), - Ctau3_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Ctau3", - coeffDict_, - -2.0 - ) - ), - alphaKsi_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphaKsi", - coeffDict_, - 0.9 - ) - ), - - k_ - ( - IOobject - ( - "k", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateK("k", mesh_) - ), - epsilon_ - ( - IOobject - ( - "epsilon", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateEpsilon("epsilon", mesh_) - ), - - gradU_(fvc::grad(U)), - eta_(k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU_ + gradU_.T())))), - ksi_(k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU_ - gradU_.T())))), - Cmu_(2.0/(3.0*(A1_ + eta_ + alphaKsi_*ksi_))), - fEta_(A2_ + pow(eta_, 3.0)), - - C5viscosity_ - ( - - 2.0*pow3(Cmu_)*pow4(k_)/pow3(epsilon_) - *( - magSqr(gradU_ + gradU_.T()) - - magSqr(gradU_ - gradU_.T()) - ) - ), - - nut_ - ( - IOobject - ( - "nut", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateNut("nut", mesh_) - ), - - nonlinearStress_ - ( - "nonlinearStress", - // quadratic terms - symm - ( - pow(k_, 3.0)/sqr(epsilon_) - *( - Ctau1_/fEta_ - *( - (gradU_ & gradU_) - + (gradU_ & gradU_)().T() - ) - + Ctau2_/fEta_*(gradU_ & gradU_.T()) - + Ctau3_/fEta_*(gradU_.T() & gradU_) - ) - // cubic term C4 - - 20.0*pow(k_, 4.0)/pow(epsilon_, 3.0) - *pow(Cmu_, 3.0) - *( - ((gradU_ & gradU_) & gradU_.T()) - + ((gradU_ & gradU_.T()) & gradU_.T()) - - ((gradU_.T() & gradU_) & gradU_) - - ((gradU_.T() & gradU_.T()) & gradU_) - ) - ) - ) -{ - nut_ == Cmu_*sqr(k_)/(epsilon_ + epsilonSmall_) + C5viscosity_; - nut_.correctBoundaryConditions(); - - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -tmp<volSymmTensorField> LienCubicKE::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(gradU_) + nonlinearStress_, - k_.boundaryField().types() - ) - ); -} - - -tmp<volSymmTensorField> LienCubicKE::devReff() const -{ - return tmp<volSymmTensorField> - ( - new volSymmTensorField - ( - IOobject - ( - "devRhoReff", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - -nuEff()*dev(twoSymm(fvc::grad(U_))) + nonlinearStress_ - ) - ); -} - - -tmp<fvVectorMatrix> LienCubicKE::divDevReff(volVectorField& U) const -{ - return - ( - fvc::div(nonlinearStress_) - - fvm::laplacian(nuEff(), U) - - fvc::div(nuEff()*dev(fvc::grad(U)().T())) - ); -} - - -bool LienCubicKE::read() -{ - if (RASModel::read()) - { - C1_.readIfPresent(coeffDict_); - C2_.readIfPresent(coeffDict_); - alphak_.readIfPresent(coeffDict_); - alphaEps_.readIfPresent(coeffDict_); - A1_.readIfPresent(coeffDict_); - A2_.readIfPresent(coeffDict_); - Ctau1_.readIfPresent(coeffDict_); - Ctau2_.readIfPresent(coeffDict_); - Ctau3_.readIfPresent(coeffDict_); - alphaKsi_.readIfPresent(coeffDict_); - - return true; - } - else - { - return false; - } -} - - -void LienCubicKE::correct() -{ - transportModel_.correct(); - - if (!turbulence_) - { - return; - } - - RASModel::correct(); - - gradU_ = fvc::grad(U_); - - // generation term - volScalarField S2 = symm(gradU_) && gradU_; - - volScalarField G - ( - "G", - Cmu_*sqr(k_)/epsilon_*S2 - (nonlinearStress_ && gradU_) - ); - - // Update espsilon and G at the wall - epsilon_.boundaryField().updateCoeffs(); - - // Dissipation equation - tmp<fvScalarMatrix> epsEqn - ( - fvm::ddt(epsilon_) - + fvm::div(phi_, epsilon_) - - fvm::laplacian(DepsilonEff(), epsilon_) - == - C1_*G*epsilon_/k_ - - fvm::Sp(C2_*epsilon_/k_, epsilon_) - ); - - epsEqn().relax(); - - epsEqn().boundaryManipulate(epsilon_.boundaryField()); - - solve(epsEqn); - bound(epsilon_, epsilon0_); - - - // Turbulent kinetic energy equation - - tmp<fvScalarMatrix> kEqn - ( - fvm::ddt(k_) - + fvm::div(phi_, k_) - - fvm::laplacian(DkEff(), k_) - == - G - - fvm::Sp(epsilon_/k_, k_) - ); - - kEqn().relax(); - solve(kEqn); - bound(k_, k0_); - - - // Re-calculate viscosity - - eta_ = k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU_ + gradU_.T()))); - ksi_ = k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU_ - gradU_.T()))); - Cmu_ = 2.0/(3.0*(A1_ + eta_ + alphaKsi_*ksi_)); - fEta_ = A2_ + pow(eta_, 3.0); - - C5viscosity_ = - - 2.0*pow(Cmu_, 3.0)*pow(k_, 4.0)/pow(epsilon_, 3.0) - *(magSqr(gradU_ + gradU_.T()) - magSqr(gradU_ - gradU_.T())); - - nut_ == Cmu_*sqr(k_)/epsilon_ + C5viscosity_; - nut_.correctBoundaryConditions(); - - nonlinearStress_ = symm - ( - // quadratic terms - pow(k_, 3.0)/sqr(epsilon_)* - ( - Ctau1_/fEta_* - ( - (gradU_ & gradU_) - + (gradU_ & gradU_)().T() - ) - + Ctau2_/fEta_*(gradU_ & gradU_.T()) - + Ctau3_/fEta_*(gradU_.T() & gradU_) - ) - // cubic term C4 - - 20.0*pow(k_, 4.0)/pow(epsilon_, 3.0) - *pow(Cmu_, 3.0) - *( - ((gradU_ & gradU_) & gradU_.T()) - + ((gradU_ & gradU_.T()) & gradU_.T()) - - ((gradU_.T() & gradU_) & gradU_) - - ((gradU_.T() & gradU_.T()) & gradU_) - ) - ); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/LienCubicKE/LienCubicKE.H b/src/turbulenceModels/RAS/incompressible/LienCubicKE/LienCubicKE.H deleted file mode 100644 index 005c8257751..00000000000 --- a/src/turbulenceModels/RAS/incompressible/LienCubicKE/LienCubicKE.H +++ /dev/null @@ -1,173 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::RASModels::LienCubicKE - -Description - Lien cubic non-linear k-epsilon turbulence model for incompressible flows. - -SourceFiles - LienCubicKE.C - -\*---------------------------------------------------------------------------*/ - -#ifndef LienCubicKE_H -#define LienCubicKE_H - -#include "RASModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class LienCubicKE Declaration -\*---------------------------------------------------------------------------*/ - -class LienCubicKE -: - public RASModel -{ - // Private data - - dimensionedScalar C1_; - dimensionedScalar C2_; - dimensionedScalar alphak_; - dimensionedScalar alphaEps_; - dimensionedScalar A1_; - dimensionedScalar A2_; - dimensionedScalar Ctau1_; - dimensionedScalar Ctau2_; - dimensionedScalar Ctau3_; - dimensionedScalar alphaKsi_; - - volScalarField k_; - volScalarField epsilon_; - - volTensorField gradU_; - volScalarField eta_; - volScalarField ksi_; - volScalarField Cmu_; - volScalarField fEta_; - volScalarField C5viscosity_; - - volScalarField nut_; - - volSymmTensorField nonlinearStress_; - - -public: - - //- Runtime type information - TypeName("LienCubicKE"); - - // Constructors - - //- from components - LienCubicKE - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ); - - - // Destructor - - ~LienCubicKE() - {} - - - // Member Functions - - //- Return the turbulence viscosity - tmp<volScalarField> nut() const - { - return nut_; - } - - //- Return the effective diffusivity for k - tmp<volScalarField> DkEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DkEff", alphak_*nut_ + nu()) - ); - } - - //- Return the effective diffusivity for epsilon - tmp<volScalarField> DepsilonEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DepsilonEff", alphaEps_*nut_ + nu()) - ); - } - - //- Return the turbulence kinetic energy - tmp<volScalarField> k() const - { - return k_; - } - - //- Return the turbulence kinetic energy dissipation rate - tmp<volScalarField> epsilon() const - { - return epsilon_; - } - - //- Return the Reynolds stress tensor - tmp<volSymmTensorField> R() const; - - //- Return the effective stress tensor including the laminar stress - tmp<volSymmTensorField> devReff() const; - - //- Return the source term for the momentum equation - tmp<fvVectorMatrix> divDevReff(volVectorField& U) const; - - //- Solve the turbulence equations and correct the turbulence viscosity - void correct(); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/LienCubicKELowRe/LienCubicKELowRe.C b/src/turbulenceModels/RAS/incompressible/LienCubicKELowRe/LienCubicKELowRe.C deleted file mode 100644 index 4a6963883de..00000000000 --- a/src/turbulenceModels/RAS/incompressible/LienCubicKELowRe/LienCubicKELowRe.C +++ /dev/null @@ -1,495 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "LienCubicKELowRe.H" -#include "wallFvPatch.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(LienCubicKELowRe, 0); -addToRunTimeSelectionTable(RASModel, LienCubicKELowRe, dictionary); - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// from components -LienCubicKELowRe::LienCubicKELowRe -( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& lamTransportModel -) -: - RASModel(typeName, U, phi, lamTransportModel), - - C1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C1", - coeffDict_, - 1.44 - ) - ), - C2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C2", - coeffDict_, - 1.92 - ) - ), - alphak_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphak", - coeffDict_, - 1.0 - ) - ), - alphaEps_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphaEps", - coeffDict_, - 0.76923 - ) - ), - A1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "A1", - coeffDict_, - 1.25 - ) - ), - A2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "A2", - coeffDict_, - 1000.0 - ) - ), - Ctau1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Ctau1", - coeffDict_, - -4.0 - ) - ), - Ctau2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Ctau2", - coeffDict_, - 13.0 - ) - ), - Ctau3_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Ctau3", - coeffDict_, - -2.0 - ) - ), - alphaKsi_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphaKsi", - coeffDict_, - 0.9 - ) - ), - CmuWall_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cmu", - coeffDict_, - 0.09 - ) - ), - Am_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Am", - coeffDict_, - 0.016 - ) - ), - Aepsilon_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Aepsilon", - coeffDict_, - 0.263 - ) - ), - Amu_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Amu", - coeffDict_, - 0.00222 - ) - ), - - k_ - ( - IOobject - ( - "k", - runTime_.timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh_ - ), - - epsilon_ - ( - IOobject - ( - "epsilon", - runTime_.timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh_ - ), - - y_(mesh_), - - gradU_(fvc::grad(U)), - eta_(k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU_ + gradU_.T())))), - ksi_(k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU_ - gradU_.T())))), - Cmu_(2.0/(3.0*(A1_ + eta_ + alphaKsi_*ksi_))), - fEta_(A2_ + pow(eta_, 3.0)), - - C5viscosity_ - ( - -2.0*pow(Cmu_, 3.0)*pow(k_, 4.0)/pow(epsilon_, 3.0) - *(magSqr(gradU_ + gradU_.T()) - magSqr(gradU_ - gradU_.T())) - ), - - yStar_(sqrt(k_)*y_/nu() + SMALL), - - nut_ - ( - Cmu_ - *( - scalar(1) - exp(-Am_*yStar_)) - /(scalar(1) - exp(-Aepsilon_*yStar_) + SMALL - ) - *sqr(k_)/(epsilon_ + epsilonSmall_) - // cubic term C5, implicit part - + max - ( - C5viscosity_, - dimensionedScalar("0", C5viscosity_.dimensions(), 0.0) - ) - ), - // turbulent viscosity, with implicit part of C5 - - nonlinearStress_ - ( - "nonlinearStress", - symm - ( - // quadratic terms - pow(k_, 3.0)/sqr(epsilon_) - *( - Ctau1_/fEta_ - *( - (gradU_ & gradU_) - + (gradU_ & gradU_)().T() - ) - + Ctau2_/fEta_*(gradU_ & gradU_.T()) - + Ctau3_/fEta_*(gradU_.T() & gradU_) - ) - // cubic term C4 - - 20.0*pow(k_, 4.0)/pow(epsilon_, 3.0) - *pow(Cmu_, 3.0) - *( - ((gradU_ & gradU_) & gradU_.T()) - + ((gradU_ & gradU_.T()) & gradU_.T()) - - ((gradU_.T() & gradU_) & gradU_) - - ((gradU_.T() & gradU_.T()) & gradU_) - ) - // cubic term C5, explicit part - + min - ( - C5viscosity_, - dimensionedScalar("0", C5viscosity_.dimensions(), 0.0) - )*gradU_ - ) - ) -{ - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -tmp<volSymmTensorField> LienCubicKELowRe::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(gradU_) + nonlinearStress_, - k_.boundaryField().types() - ) - ); -} - - -tmp<volSymmTensorField> LienCubicKELowRe::devReff() const -{ - return tmp<volSymmTensorField> - ( - new volSymmTensorField - ( - IOobject - ( - "devRhoReff", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - -nuEff()*dev(twoSymm(fvc::grad(U_))) + nonlinearStress_ - ) - ); -} - - -tmp<fvVectorMatrix> LienCubicKELowRe::divDevReff(volVectorField& U) const -{ - return - ( - fvc::div(nonlinearStress_) - - fvm::laplacian(nuEff(), U) - - fvc::div(nuEff()*dev(fvc::grad(U)().T())) - ); -} - - -bool LienCubicKELowRe::read() -{ - if (RASModel::read()) - { - C1_.readIfPresent(coeffDict_); - C2_.readIfPresent(coeffDict_); - alphak_.readIfPresent(coeffDict_); - alphaEps_.readIfPresent(coeffDict_); - A1_.readIfPresent(coeffDict_); - A2_.readIfPresent(coeffDict_); - Ctau1_.readIfPresent(coeffDict_); - Ctau2_.readIfPresent(coeffDict_); - Ctau3_.readIfPresent(coeffDict_); - alphaKsi_.readIfPresent(coeffDict_); - CmuWall_.readIfPresent(coeffDict_); - Am_.readIfPresent(coeffDict_); - Aepsilon_.readIfPresent(coeffDict_); - Amu_.readIfPresent(coeffDict_); - - return true; - } - else - { - return false; - } -} - - -void LienCubicKELowRe::correct() -{ - transportModel_.correct(); - - if (!turbulence_) - { - return; - } - - RASModel::correct(); - - if (mesh_.changing()) - { - y_.correct(); - } - - gradU_ = fvc::grad(U_); - - // generation term - volScalarField S2 = symm(gradU_) && gradU_; - - yStar_ = sqrt(k_)*y_/nu() + SMALL; - volScalarField Rt = sqr(k_)/(nu()*epsilon_); - - volScalarField fMu = - (scalar(1) - exp(-Am_*yStar_)) - /(scalar(1) - exp(-Aepsilon_*yStar_) + SMALL); - - volScalarField f2 = scalar(1) - 0.3*exp(-sqr(Rt)); - - volScalarField G = - Cmu_*fMu*sqr(k_)/epsilon_*S2 - (nonlinearStress_ && gradU_); - - // Dissipation equation - tmp<fvScalarMatrix> epsEqn - ( - fvm::ddt(epsilon_) - + fvm::div(phi_, epsilon_) - - fvm::laplacian(DepsilonEff(), epsilon_) - == - C1_*G*epsilon_/k_ - // E-term - + C2_*f2*pow(Cmu_, 0.75)*pow(k_, scalar(0.5)) - /(kappa_*y_*(scalar(1) - exp(-Aepsilon_*yStar_))) - *exp(-Amu_*sqr(yStar_))*epsilon_ - - fvm::Sp(C2_*f2*epsilon_/k_, epsilon_) - ); - - epsEqn().relax(); - -# include "LienCubicKELowReSetWallDissipation.H" -# include "wallDissipationI.H" - - solve(epsEqn); - bound(epsilon_, epsilon0_); - - - // Turbulent kinetic energy equation - - tmp<fvScalarMatrix> kEqn - ( - fvm::ddt(k_) - + fvm::div(phi_, k_) - - fvm::laplacian(DkEff(), k_) - == - G - - fvm::Sp(epsilon_/k_, k_) - ); - - kEqn().relax(); - solve(kEqn); - bound(k_, k0_); - - - // Re-calculate viscosity - - eta_ = k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU_ + gradU_.T()))); - ksi_ = k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU_ - gradU_.T()))); - Cmu_ = 2.0/(3.0*(A1_ + eta_ + alphaKsi_*ksi_)); - fEta_ = A2_ + pow(eta_, 3.0); - - C5viscosity_ = - - 2.0*pow(Cmu_, 3.0)*pow(k_, 4.0)/pow(epsilon_, 3.0) - *(magSqr(gradU_ + gradU_.T()) - magSqr(gradU_ - gradU_.T())); - - nut_ = - Cmu_*fMu*sqr(k_)/epsilon_ - // C5 term, implicit - + max - ( - C5viscosity_, - dimensionedScalar("0", C5viscosity_.dimensions(), 0.0) - ); - - nonlinearStress_ = symm - ( - // quadratic terms - pow(k_, 3.0)/sqr(epsilon_) - *( - Ctau1_/fEta_ - *( - (gradU_ & gradU_) - + (gradU_ & gradU_)().T() - ) - + Ctau2_/fEta_*(gradU_ & gradU_.T()) - + Ctau3_/fEta_*(gradU_.T() & gradU_) - ) - // cubic term C4 - - 20.0*pow(k_, 4.0)/pow(epsilon_, 3.0) - *pow(Cmu_, 3.0) - *( - ((gradU_ & gradU_) & gradU_.T()) - + ((gradU_ & gradU_.T()) & gradU_.T()) - - ((gradU_.T() & gradU_) & gradU_) - - ((gradU_.T() & gradU_.T()) & gradU_) - ) - // cubic term C5, explicit part - + min - ( - C5viscosity_, - dimensionedScalar("0", C5viscosity_.dimensions(), 0.0) - )*gradU_ - ); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/LienCubicKELowRe/LienCubicKELowRe.H b/src/turbulenceModels/RAS/incompressible/LienCubicKELowRe/LienCubicKELowRe.H deleted file mode 100644 index 1708dde2446..00000000000 --- a/src/turbulenceModels/RAS/incompressible/LienCubicKELowRe/LienCubicKELowRe.H +++ /dev/null @@ -1,198 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::RASModels::LienCubicKELowRe - -Description - Lien cubic non-linear low-Reynolds k-epsilon turbulence models for - incompressible flows. - - References: - @verbatim - Lien, F.S., Chen, W.L., Leschziner, M.A., - "Low-Reynolds-number eddy-viscosity modeling based on non-linear - stress-strain/vorticity relations" - Engineering Turbulence Modelling and Experiments 3 - (Edited by Rodi, W. and Bergeles, G.), 91-100. 1996. - Elsevier Science Publishers. - - Etemad, S., et al., - "Turbulent flow and heat transfer in a square-sectioned U bend" - Progress in compuational fluid dynamics 6, 89-100. 2006. - @endverbatim - -SourceFiles - LienCubicKELowRe.C - -\*---------------------------------------------------------------------------*/ - -#ifndef LienCubicKELowRe_H -#define LienCubicKELowRe_H - -#include "RASModel.H" -#include "wallDist.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class LienCubicKELowRe Declaration -\*---------------------------------------------------------------------------*/ - -class LienCubicKELowRe -: - public RASModel -{ - // Private data - - dimensionedScalar C1_; - dimensionedScalar C2_; - dimensionedScalar alphak_; - dimensionedScalar alphaEps_; - dimensionedScalar A1_; - dimensionedScalar A2_; - dimensionedScalar Ctau1_; - dimensionedScalar Ctau2_; - dimensionedScalar Ctau3_; - dimensionedScalar alphaKsi_; - - dimensionedScalar CmuWall_; - - dimensionedScalar Am_; - dimensionedScalar Aepsilon_; - dimensionedScalar Amu_; - - volScalarField k_; - volScalarField epsilon_; - - wallDist y_; - - volTensorField gradU_; - volScalarField eta_; - volScalarField ksi_; - volScalarField Cmu_; - volScalarField fEta_; - volScalarField C5viscosity_; - - volScalarField yStar_; - - volScalarField nut_; - - volSymmTensorField nonlinearStress_; - -public: - - //- Runtime type information - TypeName("LienCubicKELowRe"); - - // Constructors - - //- from components - LienCubicKELowRe - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ); - - - // Destructor - - ~LienCubicKELowRe() - {} - - - // Member Functions - - //- Return the turbulence viscosity - tmp<volScalarField> nut() const - { - return nut_; - } - - //- Return the effective diffusivity for k - tmp<volScalarField> DkEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DkEff", alphak_*nut_ + nu()) - ); - } - - //- Return the effective diffusivity for epsilon - tmp<volScalarField> DepsilonEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DepsilonEff", alphaEps_*nut_ + nu()) - ); - } - - //- Return the turbulence kinetic energy - tmp<volScalarField> k() const - { - return k_; - } - - //- Return the turbulence kinetic energy dissipation rate - tmp<volScalarField> epsilon() const - { - return epsilon_; - } - - //- Return the Reynolds stress tensor - tmp<volSymmTensorField> R() const; - - //- Return the effective stress tensor including the laminar stress - tmp<volSymmTensorField> devReff() const; - - //- Return the source term for the momentum equation - tmp<fvVectorMatrix> divDevReff(volVectorField& U) const; - - //- Solve the turbulence equations and correct the turbulence viscosity - void correct(); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // Edn namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/LienCubicKELowRe/LienCubicKELowReSetWallDissipation.H b/src/turbulenceModels/RAS/incompressible/LienCubicKELowRe/LienCubicKELowReSetWallDissipation.H deleted file mode 100644 index ef216dcf687..00000000000 --- a/src/turbulenceModels/RAS/incompressible/LienCubicKELowRe/LienCubicKELowReSetWallDissipation.H +++ /dev/null @@ -1,71 +0,0 @@ -// Set the dissipation in the near-wall cell to the value prescribed by the -// Lien-Leschziner low-Re model with Wolfstein length-scale prescription - -{ - labelList cellBoundaryFaceCount(epsilon_.size(), 0); - - //- use constant Cmu for epsilon in the near-wall cell - scalar Cmu75 = pow(CmuWall_.value(), 0.75); - - const fvPatchList& patches = mesh_.boundary(); - - //- Initialise the near-wall epsilon field to zero - forAll(patches, patchi) - { - const fvPatch& curPatch = patches[patchi]; - - if (isType<wallFvPatch>(curPatch)) - { - forAll(curPatch, facei) - { - label faceCelli = curPatch.faceCells()[facei]; - - epsilon_[faceCelli] = 0.0; - } - } - } - - forAll(patches, patchi) - { - const fvPatch& curPatch = patches[patchi]; - - if (isType<wallFvPatch>(curPatch)) - { - forAll(curPatch, facei) - { - label faceCelli = curPatch.faceCells()[facei]; - - // For corner cells (with two boundary or more faces), - // epsilon in the near-wall cell are calculated as an average - - cellBoundaryFaceCount[faceCelli]++; - - epsilon_[faceCelli] += - Cmu75*pow(k_[faceCelli], 1.5) - /( - kappa_.value()*y_[faceCelli] - *(1.0 - exp(-Aepsilon_.value()*yStar_[faceCelli])) - ) - *exp(-Amu_.value()*sqr(yStar_[faceCelli])); - - } - } - } - - // perform the averaging - - forAll(patches, patchi) - { - const fvPatch& curPatch = patches[patchi]; - - if (isType<wallFvPatch>(curPatch)) - { - forAll(curPatch, facei) - { - label faceCelli = curPatch.faceCells()[facei]; - - epsilon_[faceCelli] /= cellBoundaryFaceCount[faceCelli]; - } - } - } -} diff --git a/src/turbulenceModels/RAS/incompressible/LienLeschzinerLowRe/LienLeschzinerLowRe.C b/src/turbulenceModels/RAS/incompressible/LienLeschzinerLowRe/LienLeschzinerLowRe.C deleted file mode 100644 index 2dd14b9d9a1..00000000000 --- a/src/turbulenceModels/RAS/incompressible/LienLeschzinerLowRe/LienLeschzinerLowRe.C +++ /dev/null @@ -1,278 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "LienLeschzinerLowRe.H" -#include "wallFvPatch.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(LienLeschzinerLowRe, 0); -addToRunTimeSelectionTable(RASModel, LienLeschzinerLowRe, dictionary); - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// from components -LienLeschzinerLowRe::LienLeschzinerLowRe -( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& lamTransportModel -) -: - RASModel(typeName, U, phi, lamTransportModel), - - C1(coeffDict_.lookupOrAddDefault<scalar>("C1", 1.44)), - C2(coeffDict_.lookupOrAddDefault<scalar>("C2", 1.92)), - alphak(coeffDict_.lookupOrAddDefault<scalar>("alphak", 1.0)), - alphaEps - ( - coeffDict_.lookupOrAddDefault<scalar>("alphaEps", 0.76923) - ), - Cmu(coeffDict_.lookupOrAddDefault<scalar>("Cmu", 0.09)), - Am(coeffDict_.lookupOrAddDefault<scalar>("Am", 0.016)), - Aepsilon - ( - coeffDict_.lookupOrAddDefault<scalar>("Aepsilon", 0.263) - ), - Amu(coeffDict_.lookupOrAddDefault<scalar>("Amu", 0.00222)), - - k_ - ( - IOobject - ( - "k", - runTime_.timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh_ - ), - - epsilon_ - ( - IOobject - ( - "epsilon", - runTime_.timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh_ - ), - - y_(mesh_), - - yStar_(sqrt(k_)*y_/nu() + SMALL), - - nut_ - ( - Cmu*(scalar(1) - exp(-Am*yStar_)) - /(scalar(1) - exp(-Aepsilon*yStar_) + SMALL)*sqr(k_) - /(epsilon_ + epsilonSmall_) - ) -{ - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -tmp<volSymmTensorField> LienLeschzinerLowRe::R() const -{ - volTensorField gradU = fvc::grad(U_); - - return tmp<volSymmTensorField> - ( - new volSymmTensorField - ( - IOobject - ( - "R", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - ((2.0/3.0)*I)*k_ - nut_*twoSymm(gradU), - k_.boundaryField().types() - ) - ); -} - - -tmp<volSymmTensorField> LienLeschzinerLowRe::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> LienLeschzinerLowRe::divDevReff(volVectorField& U) const -{ - return - ( - - fvm::laplacian(nuEff(), U) - //- (fvc::grad(U) & fvc::grad(nuEff())) - - fvc::div(nuEff()*fvc::grad(U)().T()) - ); -} - - -bool LienLeschzinerLowRe::read() -{ - if (RASModel::read()) - { - coeffDict_.readIfPresent<scalar>("C1", C1); - coeffDict_.readIfPresent<scalar>("C2", C2); - coeffDict_.readIfPresent<scalar>("alphak", alphak); - coeffDict_.readIfPresent<scalar>("alphaEps", alphaEps); - coeffDict_.readIfPresent<scalar>("Cmu", Cmu); - coeffDict_.readIfPresent<scalar>("Am", Am); - coeffDict_.readIfPresent<scalar>("Aepsilon", Aepsilon); - coeffDict_.readIfPresent<scalar>("Amu", Amu); - - return true; - } - else - { - return false; - } -} - - -void LienLeschzinerLowRe::correct() -{ - transportModel_.correct(); - - if (!turbulence_) - { - return; - } - - RASModel::correct(); - - if (mesh_.changing()) - { - y_.correct(); - } - - scalar Cmu75 = pow(Cmu, 0.75); - - volTensorField gradU = fvc::grad(U_); - - // generation term - volScalarField S2 = symm(gradU) && gradU; - - yStar_ = sqrt(k_)*y_/nu() + SMALL; - volScalarField Rt = sqr(k_)/(nu()*epsilon_); - - volScalarField fMu = - (scalar(1) - exp(-Am*yStar_)) - /(scalar(1) - exp(-Aepsilon*yStar_) + SMALL); - - volScalarField f2 = scalar(1) - 0.3*exp(-sqr(Rt)); - - volScalarField G = Cmu*fMu*sqr(k_)/epsilon_*S2; - - - // Dissipation equation - tmp<fvScalarMatrix> epsEqn - ( - fvm::ddt(epsilon_) - + fvm::div(phi_, epsilon_) - - fvm::laplacian(DepsilonEff(), epsilon_) - == - C1*G*epsilon_/k_ - // E-term - + C2*f2*Cmu75*pow(k_, scalar(0.5)) - /(kappa_*y_*(scalar(1) - exp(-Aepsilon*yStar_))) - *exp(-Amu*sqr(yStar_))*epsilon_ - - fvm::Sp(C2*f2*epsilon_/k_, epsilon_) - ); - - epsEqn().relax(); - -# include "LienLeschzinerLowReSetWallDissipation.H" -# include "wallDissipationI.H" - - solve(epsEqn); - bound(epsilon_, epsilon0_); - - - // Turbulent kinetic energy equation - - tmp<fvScalarMatrix> kEqn - ( - fvm::ddt(k_) - + fvm::div(phi_, k_) - - fvm::laplacian(DkEff(), k_) - == - G - - fvm::Sp(epsilon_/k_, k_) - ); - - kEqn().relax(); - solve(kEqn); - bound(k_, k0_); - - - // Re-calculate viscosity - nut_ = Cmu*fMu*sqr(k_)/epsilon_; -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/LienLeschzinerLowRe/LienLeschzinerLowRe.H b/src/turbulenceModels/RAS/incompressible/LienLeschzinerLowRe/LienLeschzinerLowRe.H deleted file mode 100644 index 59efb82c982..00000000000 --- a/src/turbulenceModels/RAS/incompressible/LienLeschzinerLowRe/LienLeschzinerLowRe.H +++ /dev/null @@ -1,168 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::RASModels::LienLeschzinerLowRe - -Description - Lien and Leschziner low-Reynolds k-epsilon turbulence model for - incompressible flows. - -SourceFiles - LienLeschzinerLowRe.C - -\*---------------------------------------------------------------------------*/ - -#ifndef LienLeschzinerLowRe_H -#define LienLeschzinerLowRe_H - -#include "RASModel.H" -#include "wallDist.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class LienLeschzinerLowRe Declaration -\*---------------------------------------------------------------------------*/ - -class LienLeschzinerLowRe -: - public RASModel -{ - // Private data - - scalar C1; - scalar C2; - scalar alphak; - scalar alphaEps; - scalar Cmu; - - scalar Am; - scalar Aepsilon; - scalar Amu; - - volScalarField k_; - volScalarField epsilon_; - - wallDist y_; - - volScalarField yStar_; - - volScalarField nut_; - - -public: - - TypeName("LienLeschzinerLowRe"); - - // Constructors - - //- from components - LienLeschzinerLowRe - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ); - - - // Destructor - - ~LienLeschzinerLowRe() - {} - - - // Member Functions - - //- Return the turbulence viscosity - tmp<volScalarField> nut() const - { - return nut_; - } - - //- Return the effective diffusivity for k - tmp<volScalarField> DkEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DkEff", alphak*nut_ + nu()) - ); - } - - //- Return the effective diffusivity for epsilon - tmp<volScalarField> DepsilonEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DepsilonEff", alphaEps*nut_ + nu()) - ); - } - - //- Return the turbulence kinetic energy - tmp<volScalarField> k() const - { - return k_; - } - - //- Return the turbulence kinetic energy dissipation rate - tmp<volScalarField> epsilon() const - { - return epsilon_; - } - - //- Return the Reynolds stress tensor - tmp<volSymmTensorField> R() const; - - //- Return the effective stress tensor including the laminar stress - tmp<volSymmTensorField> devReff() const; - - //- Return the source term for the momentum equation - tmp<fvVectorMatrix> divDevReff(volVectorField& U) const; - - //- Solve the turbulence equations and correct the turbulence viscosity - void correct(); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/LienLeschzinerLowRe/LienLeschzinerLowReSetWallDissipation.H b/src/turbulenceModels/RAS/incompressible/LienLeschzinerLowRe/LienLeschzinerLowReSetWallDissipation.H deleted file mode 100644 index a998d3af8e0..00000000000 --- a/src/turbulenceModels/RAS/incompressible/LienLeschzinerLowRe/LienLeschzinerLowReSetWallDissipation.H +++ /dev/null @@ -1,71 +0,0 @@ -// Set the dissipation in the near-wall cell to the value prescribed by the -// Lien-Leschziner low-Re model with Wolfstein length-scale prescription - -{ - labelList cellBoundaryFaceCount(epsilon_.size(), 0); - - //- use constant Cmu for epsilon in the near-wall cell - scalar Cmu75 = pow(Cmu, 0.75); - - const fvPatchList& patches = mesh_.boundary(); - - //- Initialise the near-wall epsilon field to zero - forAll(patches, patchi) - { - const fvPatch& curPatch = patches[patchi]; - - if (isType<wallFvPatch>(curPatch)) - { - forAll(curPatch, facei) - { - label faceCelli = curPatch.faceCells()[facei]; - - epsilon_[faceCelli] = 0.0; - } - } - } - - forAll(patches, patchi) - { - const fvPatch& curPatch = patches[patchi]; - - if (isType<wallFvPatch>(curPatch)) - { - forAll(curPatch, facei) - { - label faceCelli = curPatch.faceCells()[facei]; - - // For corner cells (with two boundary or more faces), - // epsilon in the near-wall cell are calculated as an average - - cellBoundaryFaceCount[faceCelli]++; - - epsilon_[faceCelli] += - Cmu75*pow(k_[faceCelli], 1.5) - /( - kappa_.value()*y_[faceCelli] - *(1.0 - exp(-Aepsilon*yStar_[faceCelli])) - ) - *exp(-Amu*sqr(yStar_[faceCelli])); - - } - } - } - - // perform the averaging - - forAll(patches, patchi) - { - const fvPatch& curPatch = patches[patchi]; - - if (isType<wallFvPatch>(curPatch)) - { - forAll(curPatch, facei) - { - label faceCelli = curPatch.faceCells()[facei]; - - epsilon_[faceCelli] /= cellBoundaryFaceCount[faceCelli]; - } - } - } -} diff --git a/src/turbulenceModels/RAS/incompressible/Make/files b/src/turbulenceModels/RAS/incompressible/Make/files deleted file mode 100644 index 32b29db2fe8..00000000000 --- a/src/turbulenceModels/RAS/incompressible/Make/files +++ /dev/null @@ -1,48 +0,0 @@ -/* RAS turbulence models */ -RASModel/RASModel.C -RASModel/newRASModel.C -laminar/laminar.C -kEpsilon/kEpsilon.C -RNGkEpsilon/RNGkEpsilon.C -realizableKE/realizableKE.C -kOmega/kOmega.C -kOmegaSST/kOmegaSST.C -SpalartAllmaras/SpalartAllmaras.C -LRR/LRR.C -LaunderGibsonRSTM/LaunderGibsonRSTM.C -LaunderSharmaKE/LaunderSharmaKE.C -QZeta/QZeta.C -LienCubicKE/LienCubicKE.C -LienCubicKELowRe/LienCubicKELowRe.C -NonlinearKEShih/NonlinearKEShih.C -LienLeschzinerLowRe/LienLeschzinerLowRe.C -LamBremhorstKE/LamBremhorstKE.C - -/* Wall functions */ -wallFunctions = derivedFvPatchFields/wallFunctions - -nutWallFunctions = $(wallFunctions)/nutWallFunctions -$(nutWallFunctions)/nutWallFunction/nutWallFunctionFvPatchScalarField.C -$(nutWallFunctions)/nutRoughWallFunction/nutRoughWallFunctionFvPatchScalarField.C -$(nutWallFunctions)/nutSpalartAllmarasWallFunction/nutSpalartAllmarasWallFunctionFvPatchScalarField.C -$(nutWallFunctions)/nutSpalartAllmarasStandardWallFunction/nutSpalartAllmarasStandardWallFunctionFvPatchScalarField.C -$(nutWallFunctions)/nutSpalartAllmarasStandardRoughWallFunction/nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.C - -epsilonWallFunctions = $(wallFunctions)/epsilonWallFunctions -$(epsilonWallFunctions)/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.C - -omegaWallFunctions = $(wallFunctions)/omegaWallFunctions -$(omegaWallFunctions)/omegaWallFunction/omegaWallFunctionFvPatchScalarField.C - -kQRWallFunctions = $(wallFunctions)/kQRWallFunctions -$(kQRWallFunctions)/kQRWallFunction/kQRWallFunctionFvPatchFields.C - - -/* Patch fields */ -derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C -derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.C -derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.C - -backwardsCompatibilityWallFunctions/backwardsCompatibilityWallFunctions.C - -LIB = $(FOAM_LIBBIN)/libincompressibleRASModels diff --git a/src/turbulenceModels/RAS/incompressible/Make/options b/src/turbulenceModels/RAS/incompressible/Make/options deleted file mode 100644 index a6f6e7f4536..00000000000 --- a/src/turbulenceModels/RAS/incompressible/Make/options +++ /dev/null @@ -1,8 +0,0 @@ -EXE_INC = \ - -I$(LIB_SRC)/finiteVolume/lnInclude \ - -I$(LIB_SRC)/meshTools/lnInclude \ - -I$(LIB_SRC)/transportModels - -LIB_LIBS = \ - -lfiniteVolume \ - -lmeshTools diff --git a/src/turbulenceModels/RAS/incompressible/NonlinearKEShih/NonlinearKEShih.C b/src/turbulenceModels/RAS/incompressible/NonlinearKEShih/NonlinearKEShih.C deleted file mode 100644 index cef22b9d84e..00000000000 --- a/src/turbulenceModels/RAS/incompressible/NonlinearKEShih/NonlinearKEShih.C +++ /dev/null @@ -1,377 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "NonlinearKEShih.H" -#include "addToRunTimeSelectionTable.H" -#include "wallFvPatch.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(NonlinearKEShih, 0); -addToRunTimeSelectionTable(RASModel, NonlinearKEShih, dictionary); - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// from components -NonlinearKEShih::NonlinearKEShih -( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& lamTransportModel -) -: - RASModel(typeName, U, phi, lamTransportModel), - - C1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C1", - coeffDict_, - 1.44 - ) - ), - C2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C2", - coeffDict_, - 1.92 - ) - ), - alphak_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphak", - coeffDict_, - 1.0 - ) - ), - alphaEps_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphaEps", - coeffDict_, - 0.76923 - ) - ), - A1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "A1", - coeffDict_, - 1.25 - ) - ), - A2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "A2", - coeffDict_, - 1000.0 - ) - ), - Ctau1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Ctau1", - coeffDict_, - -4.0 - ) - ), - Ctau2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Ctau2", - coeffDict_, - 13.0 - ) - ), - Ctau3_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Ctau3", - coeffDict_, - -2.0 - ) - ), - alphaKsi_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphaKsi", - coeffDict_, - 0.9 - ) - ), - - k_ - ( - IOobject - ( - "k", - runTime_.timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh_ - ), - - epsilon_ - ( - IOobject - ( - "epsilon", - runTime_.timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh_ - ), - - gradU_(fvc::grad(U)), - eta_(k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU_ + gradU_.T())))), - ksi_(k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU_ - gradU_.T())))), - Cmu_(2.0/(3.0*(A1_ + eta_ + alphaKsi_*ksi_))), - fEta_(A2_ + pow(eta_, 3.0)), - - nut_(Cmu_*sqr(k_)/(epsilon_ + epsilonSmall_)), - - nonlinearStress_ - ( - "nonlinearStress", - symm - ( - pow(k_, 3.0)/sqr(epsilon_) - *( - Ctau1_/fEta_ - *( - (gradU_ & gradU_) - + (gradU_ & gradU_)().T() - ) - + Ctau2_/fEta_*(gradU_ & gradU_.T()) - + Ctau3_/fEta_*(gradU_.T() & gradU_) - ) - ) - ) -{ -# include "wallNonlinearViscosityI.H" - - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -tmp<volSymmTensorField> NonlinearKEShih::R() const -{ - volTensorField gradU_ = fvc::grad(U_); - - return tmp<volSymmTensorField> - ( - new volSymmTensorField - ( - IOobject - ( - "R", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - ((2.0/3.0)*I)*k_ - nut_*twoSymm(gradU_) + nonlinearStress_, - k_.boundaryField().types() - ) - ); -} - - -tmp<volSymmTensorField> NonlinearKEShih::devReff() const -{ - return tmp<volSymmTensorField> - ( - new volSymmTensorField - ( - IOobject - ( - "devRhoReff", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - -nuEff()*dev(twoSymm(fvc::grad(U_))) + nonlinearStress_ - ) - ); -} - - -tmp<fvVectorMatrix> NonlinearKEShih::divDevReff(volVectorField& U) const -{ - return - ( - fvc::div(nonlinearStress_) - - fvm::laplacian(nuEff(), U) - - fvc::div(nuEff()*dev(fvc::grad(U)().T())) - ); -} - - -bool NonlinearKEShih::read() -{ - if (RASModel::read()) - { - C1_.readIfPresent(coeffDict_); - C2_.readIfPresent(coeffDict_); - alphak_.readIfPresent(coeffDict_); - alphaEps_.readIfPresent(coeffDict_); - A1_.readIfPresent(coeffDict_); - A2_.readIfPresent(coeffDict_); - Ctau1_.readIfPresent(coeffDict_); - Ctau2_.readIfPresent(coeffDict_); - Ctau3_.readIfPresent(coeffDict_); - alphaKsi_.readIfPresent(coeffDict_); - - return true; - } - else - { - return false; - } -} - - -void NonlinearKEShih::correct() -{ - transportModel_.correct(); - - if (!turbulence_) - { - return; - } - - RASModel::correct(); - - gradU_ = fvc::grad(U_); - - // generation term - volScalarField S2 = symm(gradU_) && gradU_; - - volScalarField G = - Cmu_*sqr(k_)/epsilon_*S2 - - (nonlinearStress_ && gradU_); - -# include "nonLinearWallFunctionsI.H" - - // Dissipation equation - tmp<fvScalarMatrix> epsEqn - ( - fvm::ddt(epsilon_) - + fvm::div(phi_, epsilon_) - - fvm::laplacian(DepsilonEff(), epsilon_) - == - C1_*G*epsilon_/k_ - - fvm::Sp(C2_*epsilon_/k_, epsilon_) - ); - - epsEqn().relax(); - -# include "wallDissipationI.H" - - solve(epsEqn); - bound(epsilon_, epsilon0_); - - - // Turbulent kinetic energy equation - - tmp<fvScalarMatrix> kEqn - ( - fvm::ddt(k_) - + fvm::div(phi_, k_) - - fvm::laplacian(DkEff(), k_) - == - G - - fvm::Sp(epsilon_/k_, k_) - ); - - kEqn().relax(); - solve(kEqn); - bound(k_, k0_); - - - // Re-calculate viscosity - - eta_ = k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU_ + gradU_.T()))); - ksi_ = k_/epsilon_*sqrt(2.0*magSqr(0.5*(gradU_ - gradU_.T()))); - Cmu_ = 2.0/(3.0*(A1_ + eta_ + alphaKsi_*ksi_)); - fEta_ = A2_ + pow(eta_, 3.0); - - nut_ = Cmu_*sqr(k_)/epsilon_; - -# include "wallNonlinearViscosityI.H" - - nonlinearStress_ = symm - ( - pow(k_, 3.0)/sqr(epsilon_) - *( - Ctau1_/fEta_ - *( - (gradU_ & gradU_) - + (gradU_ & gradU_)().T() - ) - + Ctau2_/fEta_*(gradU_ & gradU_.T()) - + Ctau3_/fEta_*(gradU_.T() & gradU_) - ) - ); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/NonlinearKEShih/NonlinearKEShih.H b/src/turbulenceModels/RAS/incompressible/NonlinearKEShih/NonlinearKEShih.H deleted file mode 100644 index 7f8f6ebc8ff..00000000000 --- a/src/turbulenceModels/RAS/incompressible/NonlinearKEShih/NonlinearKEShih.H +++ /dev/null @@ -1,172 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::RASModels::NonlinearKEShih - -Description - Shih's quadratic non-linear k-epsilon turbulence model for - incompressible flows - -SourceFiles - NonlinearKEShih.C - -\*---------------------------------------------------------------------------*/ - -#ifndef NonlinearKEShih_H -#define NonlinearKEShih_H - -#include "RASModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class NonlinearKEShih Declaration -\*---------------------------------------------------------------------------*/ - -class NonlinearKEShih -: - public RASModel -{ - // Private data - - dimensionedScalar C1_; - dimensionedScalar C2_; - dimensionedScalar alphak_; - dimensionedScalar alphaEps_; - dimensionedScalar A1_; - dimensionedScalar A2_; - dimensionedScalar Ctau1_; - dimensionedScalar Ctau2_; - dimensionedScalar Ctau3_; - dimensionedScalar alphaKsi_; - - volScalarField k_; - volScalarField epsilon_; - - volTensorField gradU_; - volScalarField eta_; - volScalarField ksi_; - volScalarField Cmu_; - volScalarField fEta_; - - volScalarField nut_; - - volSymmTensorField nonlinearStress_; - -public: - - //- Runtime type information - TypeName("NonlinearKEShih"); - - // Constructors - - //- from components - NonlinearKEShih - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ); - - - // Destructor - - ~NonlinearKEShih() - {} - - - // Member Functions - - //- Return the turbulence viscosity - tmp<volScalarField> nut() const - { - return nut_; - } - - //- Return the effective diffusivity for k - tmp<volScalarField> DkEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DkEff", alphak_*nut_ + nu()) - ); - } - - //- Return the effective diffusivity for epsilon - tmp<volScalarField> DepsilonEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DepsilonEff", alphaEps_*nut_ + nu()) - ); - } - - //- Return the turbulence kinetic energy - tmp<volScalarField> k() const - { - return k_; - } - - //- Return the turbulence kinetic energy dissipation rate - tmp<volScalarField> epsilon() const - { - return epsilon_; - } - - //- Return the Reynolds stress tensor - tmp<volSymmTensorField> R() const; - - //- Return the effective stress tensor including the laminar stress - tmp<volSymmTensorField> devReff() const; - - //- Return the source term for the momentum equation - tmp<fvVectorMatrix> divDevReff(volVectorField& U) const; - - //- Solve the turbulence equations and correct the turbulence viscosity - void correct(); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/QZeta/QZeta.C b/src/turbulenceModels/RAS/incompressible/QZeta/QZeta.C deleted file mode 100644 index 1790d67fcb7..00000000000 --- a/src/turbulenceModels/RAS/incompressible/QZeta/QZeta.C +++ /dev/null @@ -1,330 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "QZeta.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(QZeta, 0); -addToRunTimeSelectionTable(RASModel, QZeta, dictionary); - -// * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * * // - -tmp<volScalarField> QZeta::fMu() const -{ - volScalarField Rt = q_*k_/(2.0*nu()*zeta_); - - if (anisotropic_) - { - return exp((-scalar(2.5) + Rt/20.0)/pow(scalar(1) + Rt/130.0, 3.0)); - } - else - { - return - exp(-6.0/sqr(scalar(1) + Rt/50.0)) - *(scalar(1) + 3.0*exp(-Rt/10.0)); - } -} - - -tmp<volScalarField> QZeta::f2() const -{ - volScalarField Rt = q_*k_/(2.0*nu()*zeta_); - return scalar(1) - 0.3*exp(-sqr(Rt)); -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// from components -QZeta::QZeta -( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& lamTransportModel -) -: - RASModel(typeName, U, phi, lamTransportModel), - - Cmu_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cmu", - coeffDict_, - 0.09 - ) - ), - C1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C1", - coeffDict_, - 1.44 - ) - ), - C2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C2", - coeffDict_, - 1.92 - ) - ), - alphaZeta_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphaZeta", - coeffDict_, - 0.76923 - ) - ), - anisotropic_ - ( - Switch::lookupOrAddToDict - ( - "anisotropic", - coeffDict_, - false - ) - ), - - k_ - ( - IOobject - ( - "k", - runTime_.timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh_ - ), - - epsilon_ - ( - IOobject - ( - "epsilon", - runTime_.timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh_ - ), - - q_ - ( - IOobject - ( - "q", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - sqrt(k_), - k_.boundaryField().types() - ), - - zeta_ - ( - IOobject - ( - "zeta", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - epsilon_/(2.0*q_), - epsilon_.boundaryField().types() - ), - - nut_(Cmu_*fMu()*sqr(k_)/(epsilon_ + epsilonSmall_)) -{ - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -tmp<volSymmTensorField> QZeta::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> QZeta::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> QZeta::divDevReff(volVectorField& U) const -{ - return - ( - - fvm::laplacian(nuEff(), U) - - fvc::div(nuEff()*dev(fvc::grad(U)().T())) - ); -} - - -bool QZeta::read() -{ - if (RASModel::read()) - { - Cmu_.readIfPresent(coeffDict_); - C1_.readIfPresent(coeffDict_); - C2_.readIfPresent(coeffDict_); - alphaZeta_.readIfPresent(coeffDict_); - anisotropic_.readIfPresent("anisotropic", coeffDict_); - - return true; - } - else - { - return false; - } -} - - -void QZeta::correct() -{ - transportModel_.correct(); - - if (!turbulence_) - { - return; - } - - RASModel::correct(); - - volScalarField S2 = 2*magSqr(symm(fvc::grad(U_))); - - volScalarField G = nut_/(2.0*q_)*S2; - volScalarField E = nu()*nut_/q_*fvc::magSqrGradGrad(U_); - - - // Zeta equation - - tmp<fvScalarMatrix> zetaEqn - ( - fvm::ddt(zeta_) - + fvm::div(phi_, zeta_) - - fvm::laplacian(DzetaEff(), zeta_) - == - (2.0*C1_ - 1)*G*zeta_/q_ - - fvm::Sp((2.0*C2_ - dimensionedScalar(1.0))*f2()*zeta_/q_, zeta_) - + E - ); - - zetaEqn().relax(); - solve(zetaEqn); - bound(zeta_, epsilon0_/(2*sqrt(k0_))); - - - // q equation - - tmp<fvScalarMatrix> qEqn - ( - fvm::ddt(q_) - + fvm::div(phi_, q_) - - fvm::laplacian(DqEff(), q_) - == - G - fvm::Sp(zeta_/q_, q_) - ); - - qEqn().relax(); - solve(qEqn); - bound(q_, sqrt(k0_)); - - - // Re-calculate k and epsilon - k_ = sqr(q_); - k_.correctBoundaryConditions(); - - epsilon_ = 2*q_*zeta_; - epsilon_.correctBoundaryConditions(); - - - // Re-calculate viscosity - nut_ = Cmu_*fMu()*sqr(k_)/epsilon_; -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/QZeta/QZeta.H b/src/turbulenceModels/RAS/incompressible/QZeta/QZeta.H deleted file mode 100644 index 8c675a8fc1f..00000000000 --- a/src/turbulenceModels/RAS/incompressible/QZeta/QZeta.H +++ /dev/null @@ -1,179 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::RASModels::QZeta - -Description - Gibson and Dafa'Alla's q-zeta two-equation low-Re turbulence model - for incompressible flows - -SourceFiles - QZeta.C - -\*---------------------------------------------------------------------------*/ - -#ifndef QZeta_H -#define QZeta_H - -#include "RASModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class QZeta Declaration -\*---------------------------------------------------------------------------*/ - -class QZeta -: - public RASModel -{ - // Private data - - dimensionedScalar Cmu_; - dimensionedScalar C1_; - dimensionedScalar C2_; - dimensionedScalar alphaZeta_; - Switch anisotropic_; - - volScalarField k_; - volScalarField epsilon_; - - volScalarField q_; - volScalarField zeta_; - - volScalarField nut_; - - - // Private member functions - - tmp<volScalarField> fMu() const; - tmp<volScalarField> f2() const; - - -public: - - //- Runtime type information - TypeName("QZeta"); - - // Constructors - - //- from components - QZeta - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ); - - - // Destructor - - ~QZeta() - {} - - - // Member Functions - - //- Return the turbulence viscosity - tmp<volScalarField> nut() const - { - return nut_; - } - - //- Return the effective diffusivity for q - tmp<volScalarField> DqEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DqEff", nut_ + nu()) - ); - } - - //- Return the effective diffusivity for epsilon - tmp<volScalarField> DzetaEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DzetaEff", alphaZeta_*nut_ + nu()) - ); - } - - //- Return the turbulence kinetic energy - tmp<volScalarField> k() const - { - return k_; - } - - //- Return the turbulence kinetic energy dissipation rate - tmp<volScalarField> epsilon() const - { - return epsilon_; - } - - //- Return the Reynolds stress tensor - tmp<volSymmTensorField> R() const; - - const volScalarField& q() const - { - return q_; - } - - const volScalarField& zeta() const - { - return zeta_; - } - - //- Return the effective stress tensor including the laminar stress - tmp<volSymmTensorField> devReff() const; - - //- Return the source term for the momentum equation - tmp<fvVectorMatrix> divDevReff(volVectorField& U) const; - - //- Solve the turbulence equations and correct the turbulence viscosity - void correct(); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/RASModel/RASModel.C b/src/turbulenceModels/RAS/incompressible/RASModel/RASModel.C deleted file mode 100644 index 46236828f23..00000000000 --- a/src/turbulenceModels/RAS/incompressible/RASModel/RASModel.C +++ /dev/null @@ -1,215 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "RASModel.H" -#include "wallFvPatch.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -defineTypeNameAndDebug(RASModel, 0); -defineRunTimeSelectionTable(RASModel, dictionary); - -// * * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * // - -void RASModel::printCoeffs() -{ - if (printCoeffs_) - { - Info<< type() << "Coeffs" << coeffDict_ << nl - << "wallFunctionCoeffs" << wallFunctionDict_ << endl; - } -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -RASModel::RASModel -( - const word& type, - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& lamTransportModel -) -: - IOdictionary - ( - IOobject - ( - "RASProperties", - U.time().constant(), - U.db(), - IOobject::MUST_READ, - IOobject::NO_WRITE - ) - ), - - runTime_(U.time()), - mesh_(U.mesh()), - - U_(U), - phi_(phi), - transportModel_(lamTransportModel), - - turbulence_(lookup("turbulence")), - printCoeffs_(lookupOrDefault<Switch>("printCoeffs", false)), - coeffDict_(subDict(type + "Coeffs")), - - wallFunctionDict_(subDict("wallFunctionCoeffs")), - kappa_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "kappa", - wallFunctionDict_, - 0.4187 - ) - ), - E_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "E", - wallFunctionDict_, - 9.0 - ) - ), - Cmu_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cmu", - wallFunctionDict_, - 0.09 - ) - ), - - yPlusLam_(yPlusLam(kappa_.value(), E_.value())), - - k0_("k0", dimVelocity*dimVelocity, SMALL), - epsilon0_("epsilon", k0_.dimensions()/dimTime, SMALL), - epsilonSmall_("epsilonSmall", epsilon0_.dimensions(), SMALL), - - y_(mesh_) -{} - - -RASModel::~RASModel() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -scalar RASModel::yPlusLam(const scalar kappa, const scalar E) const -{ - scalar ypl = 11.0; - - for (int i=0; i<10; i++) - { - ypl = log(max(E*ypl, 1))/kappa; - } - - return ypl; -} - - -tmp<scalarField> RASModel::yPlus(const label patchNo) const -{ - const fvPatch& curPatch = mesh_.boundary()[patchNo]; - - tmp<scalarField> tYp(new scalarField(curPatch.size())); - scalarField& Yp = tYp(); - - if (isType<wallFvPatch>(curPatch)) - { - Yp = pow(Cmu_.value(), 0.25) - *y_[patchNo] - *sqrt(k()().boundaryField()[patchNo].patchInternalField()) - /nu().boundaryField()[patchNo]; - } - else - { - WarningIn - ( - "tmp<scalarField> RASModel::yPlus(const label patchNo) const" - ) << "Patch " << patchNo << " is not a wall. Returning null field" - << nl << endl; - - Yp.setSize(0); - } - - return tYp; -} - - -void RASModel::correct() -{ - if (mesh_.changing()) - { - y_.correct(); - } -} - - -bool RASModel::read() -{ - if (regIOobject::read()) - { - lookup("turbulence") >> turbulence_; - coeffDict_ = subDict(type() + "Coeffs"); - - wallFunctionDict_ = subDict("wallFunctionCoeffs"); - kappa_.readIfPresent(wallFunctionDict_); - E_.readIfPresent(wallFunctionDict_); - Cmu_.readIfPresent(wallFunctionDict_); - - yPlusLam_ = yPlusLam(kappa_.value(), E_.value()); - - k0_.readIfPresent(*this); - epsilon0_.readIfPresent(*this); - epsilonSmall_.readIfPresent(*this); - - return true; - } - else - { - return false; - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/RASModel/RASModel.H b/src/turbulenceModels/RAS/incompressible/RASModel/RASModel.H deleted file mode 100644 index b5edce3ea31..00000000000 --- a/src/turbulenceModels/RAS/incompressible/RASModel/RASModel.H +++ /dev/null @@ -1,314 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Namespace - Foam::incompressible::RASModels - -Description - Namespace for incompressible RAS turbulence models. - -Class - Foam::incompressible::RASModel - -Description - Abstract base class for incompressible turbulence models. - -SourceFiles - RASModel.C - newTurbulenceModel.C - -\*---------------------------------------------------------------------------*/ - -#ifndef RASModel_H -#define RASModel_H - -#include "volFields.H" -#include "surfaceFields.H" -#include "nearWallDist.H" -#include "fvm.H" -#include "fvc.H" -#include "fvMatrices.H" -#include "incompressible/transportModel/transportModel.H" -#include "IOdictionary.H" -#include "Switch.H" -#include "bound.H" -#include "autoPtr.H" -#include "runTimeSelectionTables.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ - -/*---------------------------------------------------------------------------*\ - Class RASModel Declaration -\*---------------------------------------------------------------------------*/ - -class RASModel -: - public IOdictionary -{ - -protected: - - // Protected data - - const Time& runTime_; - const fvMesh& mesh_; - - const volVectorField& U_; - const surfaceScalarField& phi_; - - transportModel& transportModel_; - - Switch turbulence_; - Switch printCoeffs_; - dictionary coeffDict_; - - dictionary wallFunctionDict_; - dimensionedScalar kappa_; - dimensionedScalar E_; - dimensionedScalar Cmu_; - - scalar yPlusLam_; - - dimensionedScalar k0_; - dimensionedScalar epsilon0_; - dimensionedScalar epsilonSmall_; - - nearWallDist y_; - - - // Protected member functions - - //- Print model coefficients - virtual void printCoeffs(); - - -private: - - // Private Member Functions - - //- Disallow default bitwise copy construct - RASModel(const RASModel&); - - //- Disallow default bitwise assignment - void operator=(const RASModel&); - - -public: - - //- Runtime type information - TypeName("RASModel"); - - - // Declare run-time constructor selection table - - declareRunTimeSelectionTable - ( - autoPtr, - RASModel, - dictionary, - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ), - (U, phi, transport) - ); - - - // Constructors - - //- Construct from components - RASModel - ( - const word& type, - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ); - - - // Selectors - - //- Return a reference to the selected turbulence model - static autoPtr<RASModel> New - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ); - - - // Destructor - - virtual ~RASModel(); - - - // Member Functions - - // Access - - //- Return the value of k0 which k is not allowed to be less than - const dimensionedScalar& k0() const - { - return k0_; - } - - //- Return the value of epsilon0 which epsilon is not allowed to be - // less than - const dimensionedScalar& epsilon0() const - { - return epsilon0_; - } - - //- Return the value of epsilonSmall which is added to epsilon when - // calculating nut - const dimensionedScalar& epsilonSmall() const - { - return epsilonSmall_; - } - - //- Allow k0 to be changed - dimensionedScalar& k0() - { - return k0_; - } - - //- Allow epsilon0 to be changed - dimensionedScalar& epsilon0() - { - return epsilon0_; - } - - //- Allow epsilonSmall to be changed - dimensionedScalar& epsilonSmall() - { - return epsilonSmall_; - } - - //- Return kappa for use in wall-functions - dimensionedScalar kappa() const - { - return kappa_; - } - - //- Return E for use in wall-functions - dimensionedScalar E() const - { - return E_; - } - - //- Return Cmu for use in wall-functions - dimensionedScalar Cmu() const - { - return Cmu_; - } - - //- Return the near wall distances - const nearWallDist& y() const - { - return y_; - } - - //- Calculate y+ at the edge of the laminar sublayer - scalar yPlusLam(const scalar kappa, const scalar E) const; - - //- Return y+ at the edge of the laminar sublayer - // for use in wall-functions - scalar yPlusLam() const - { - return yPlusLam_; - } - - //- Const access to the coefficients dictionary - const dictionary& coeffDict() const - { - return coeffDict_; - } - - //- Const access to the wall functions coefficients dictionary - const dictionary& walLFunctionDict() const - { - return wallFunctionDict_; - } - - - //- Return the laminar viscosity - const volScalarField& nu() const - { - return transportModel_.nu(); - } - - //- Return the turbulence viscosity - virtual tmp<volScalarField> nut() const = 0; - - //- Return the effective viscosity - virtual tmp<volScalarField> nuEff() const - { - return tmp<volScalarField> - ( - new volScalarField("nuEff", nut() + nu()) - ); - } - - //- Return the turbulence kinetic energy - virtual tmp<volScalarField> k() const = 0; - - //- Return the turbulence kinetic energy dissipation rate - virtual tmp<volScalarField> epsilon() const = 0; - - //- Return the Reynolds stress tensor - virtual tmp<volSymmTensorField> R() const = 0; - - //- Return the effective stress tensor including the laminar stress - virtual tmp<volSymmTensorField> devReff() const = 0; - - //- Return the source term for the momentum equation - virtual tmp<fvVectorMatrix> divDevReff(volVectorField& U) const = 0; - - //- Return yPlus for the given patch - virtual tmp<scalarField> yPlus(const label patchI) const; - - //- Solve the turbulence equations and correct the turbulence viscosity - virtual void correct() = 0; - - //- Read turbulenceProperties dictionary - virtual bool read() = 0; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/RASModel/newRASModel.C b/src/turbulenceModels/RAS/incompressible/RASModel/newRASModel.C deleted file mode 100644 index b3f0a9876a3..00000000000 --- a/src/turbulenceModels/RAS/incompressible/RASModel/newRASModel.C +++ /dev/null @@ -1,96 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "error.H" - -#include "RASModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -autoPtr<RASModel> RASModel::New -( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport -) -{ - word RASModelTypeName; - - // Enclose the creation of the turbulencePropertiesDict to ensure it is - // deleted before the RASModel is created otherwise the dictionary - // is entered in the database twice - { - IOdictionary turbulencePropertiesDict - ( - IOobject - ( - "RASProperties", - U.time().constant(), - U.db(), - IOobject::MUST_READ, - IOobject::NO_WRITE - ) - ); - - turbulencePropertiesDict.lookup("RASModel") - >> RASModelTypeName; - } - - Info<< "Selecting RAS turbulence model " << RASModelTypeName << endl; - - dictionaryConstructorTable::iterator cstrIter = - dictionaryConstructorTablePtr_->find(RASModelTypeName); - - if (cstrIter == dictionaryConstructorTablePtr_->end()) - { - FatalErrorIn - ( - "RASModel::New(const volVectorField&, " - "const surfaceScalarField&, transportModel&)" - ) << "Unknown RASModel type " << RASModelTypeName - << endl << endl - << "Valid RASModel types are :" << endl - << dictionaryConstructorTablePtr_->toc() - << exit(FatalError); - } - - return autoPtr<RASModel>(cstrIter()(U, phi, transport)); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/RNGkEpsilon/RNGkEpsilon.C b/src/turbulenceModels/RAS/incompressible/RNGkEpsilon/RNGkEpsilon.C deleted file mode 100644 index 3c98bfec9e3..00000000000 --- a/src/turbulenceModels/RAS/incompressible/RNGkEpsilon/RNGkEpsilon.C +++ /dev/null @@ -1,311 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "RNGkEpsilon.H" -#include "addToRunTimeSelectionTable.H" -#include "wallFvPatch.H" - -#include "backwardsCompatibilityWallFunctions.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(RNGkEpsilon, 0); -addToRunTimeSelectionTable(RASModel, RNGkEpsilon, dictionary); - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -RNGkEpsilon::RNGkEpsilon -( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& lamTransportModel -) -: - RASModel(typeName, U, phi, lamTransportModel), - - Cmu_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cmu", - coeffDict_, - 0.0845 - ) - ), - C1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C1", - coeffDict_, - 1.42 - ) - ), - C2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C2", - coeffDict_, - 1.68 - ) - ), - alphak_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphak", - coeffDict_, - 1.39 - ) - ), - alphaEps_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphaEps", - coeffDict_, - 1.39 - ) - ), - eta0_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "eta0", - coeffDict_, - 4.38 - ) - ), - beta_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "beta", - coeffDict_, - 0.012 - ) - ), - - k_ - ( - IOobject - ( - "k", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateK("k", mesh_) - ), - epsilon_ - ( - IOobject - ( - "epsilon", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateEpsilon("epsilon", mesh_) - ), - nut_ - ( - IOobject - ( - "nut", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateNut("nut", mesh_) - ) -{ - nut_ == Cmu_*sqr(k_)/(epsilon_ + epsilonSmall_); - nut_.correctBoundaryConditions(); - - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - - -tmp<volSymmTensorField> RNGkEpsilon::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> RNGkEpsilon::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> RNGkEpsilon::divDevReff(volVectorField& U) const -{ - return - ( - - fvm::laplacian(nuEff(), U) - - fvc::div(nuEff()*dev(fvc::grad(U)().T())) - ); -} - - -bool RNGkEpsilon::read() -{ - if (RASModel::read()) - { - Cmu_.readIfPresent(coeffDict_); - C1_.readIfPresent(coeffDict_); - C2_.readIfPresent(coeffDict_); - alphak_.readIfPresent(coeffDict_); - alphaEps_.readIfPresent(coeffDict_); - eta0_.readIfPresent(coeffDict_); - beta_.readIfPresent(coeffDict_); - - return true; - } - else - { - return false; - } -} - - -void RNGkEpsilon::correct() -{ - transportModel_.correct(); - - if (!turbulence_) - { - return; - } - - RASModel::correct(); - - volScalarField S2 = 2*magSqr(symm(fvc::grad(U_))); - - volScalarField G("G", nut_*S2); - - volScalarField eta = sqrt(S2)*k_/epsilon_; - volScalarField R = - ((eta*(scalar(1) - eta/eta0_))/(scalar(1) + beta_*eta*sqr(eta))); - - // Update espsilon and G at the wall - epsilon_.boundaryField().updateCoeffs(); - - // Dissipation equation - tmp<fvScalarMatrix> epsEqn - ( - fvm::ddt(epsilon_) - + fvm::div(phi_, epsilon_) - - fvm::laplacian(DepsilonEff(), epsilon_) - == - (C1_ - R)*G*epsilon_/k_ - //- fvm::SuSp(R*G/k_, epsilon_) - - fvm::Sp(C2_*epsilon_/k_, epsilon_) - ); - - epsEqn().relax(); - - epsEqn().boundaryManipulate(epsilon_.boundaryField()); - - solve(epsEqn); - bound(epsilon_, epsilon0_); - - - // Turbulent kinetic energy equation - - tmp<fvScalarMatrix> kEqn - ( - fvm::ddt(k_) - + fvm::div(phi_, k_) - - fvm::laplacian(DkEff(), k_) - == - G - fvm::Sp(epsilon_/k_, k_) - ); - - kEqn().relax(); - solve(kEqn); - bound(k_, k0_); - - - // Re-calculate viscosity - nut_ == Cmu_*sqr(k_)/epsilon_; - nut_.correctBoundaryConditions(); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/RNGkEpsilon/RNGkEpsilon.H b/src/turbulenceModels/RAS/incompressible/RNGkEpsilon/RNGkEpsilon.H deleted file mode 100644 index 960d0a344d7..00000000000 --- a/src/turbulenceModels/RAS/incompressible/RNGkEpsilon/RNGkEpsilon.H +++ /dev/null @@ -1,176 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::RASModels::RNGkEpsilon - -Description - Renormalisation group k-epsilon turbulence model for incompressible flows. - - The default model coefficients correspond to the following: - @verbatim - RNGkEpsilonCoeffs - { - Cmu 0.0845; - C1 1.42; - C2 1.68; - C3 -0.33; // only for compressible - alphah 1.0; // only for compressible - alphak 1.39; - alphaEps 1.39; - eta0 4.38; - beta 0.012; - } - @endverbatim - -SourceFiles - RNGkEpsilon.C - -\*---------------------------------------------------------------------------*/ - -#ifndef RNGkEpsilon_H -#define RNGkEpsilon_H - -#include "RASModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class RNGkEpsilon Declaration -\*---------------------------------------------------------------------------*/ - -class RNGkEpsilon -: - public RASModel -{ - // Private data - - dimensionedScalar Cmu_; - dimensionedScalar C1_; - dimensionedScalar C2_; - dimensionedScalar alphak_; - dimensionedScalar alphaEps_; - dimensionedScalar eta0_; - dimensionedScalar beta_; - - volScalarField k_; - volScalarField epsilon_; - volScalarField nut_; - - -public: - - //- Runtime type information - TypeName("RNGkEpsilon"); - - // Constructors - - //- from components - RNGkEpsilon - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ); - - - // Destructor - - ~RNGkEpsilon() - {} - - - // Member Functions - - //- Return the turbulence viscosity - tmp<volScalarField> nut() const - { - return nut_; - } - - //- Return the effective diffusivity for k - tmp<volScalarField> DkEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DkEff", alphak_*nut_ + nu()) - ); - } - - //- Return the effective diffusivity for epsilon - tmp<volScalarField> DepsilonEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DepsilonEff", alphaEps_*nut_ + nu()) - ); - } - - //- Return the turbulence kinetic energy - tmp<volScalarField> k() const - { - return k_; - } - - //- Return the turbulence kinetic energy dissipation rate - tmp<volScalarField> epsilon() const - { - return epsilon_; - } - - //- Return the Reynolds stress tensor - tmp<volSymmTensorField> R() const; - - //- Return the effective stress tensor including the laminar stress - tmp<volSymmTensorField> devReff() const; - - //- Return the source term for the momentum equation - tmp<fvVectorMatrix> divDevReff(volVectorField& U) const; - - //- Solve the turbulence equations and correct the turbulence viscosity - void correct(); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/SpalartAllmaras/SpalartAllmaras.C b/src/turbulenceModels/RAS/incompressible/SpalartAllmaras/SpalartAllmaras.C deleted file mode 100644 index 7c0253db739..00000000000 --- a/src/turbulenceModels/RAS/incompressible/SpalartAllmaras/SpalartAllmaras.C +++ /dev/null @@ -1,390 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "SpalartAllmaras.H" -#include "addToRunTimeSelectionTable.H" -#include "wallDist.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(SpalartAllmaras, 0); -addToRunTimeSelectionTable(RASModel, SpalartAllmaras, dictionary); - -// * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * * // - -tmp<volScalarField> SpalartAllmaras::chi() const -{ - return nuTilda_/nu(); -} - - -tmp<volScalarField> SpalartAllmaras::fv1(const volScalarField& chi) const -{ - volScalarField chi3 = pow3(chi); - return chi3/(chi3 + pow3(Cv1_)); -} - - -tmp<volScalarField> SpalartAllmaras::fv2 -( - const volScalarField& chi, - const volScalarField& fv1 -) const -{ - return 1.0 - chi/(1.0 + chi*fv1); - //return 1.0/pow3(scalar(1) + chi/Cv2); -} - - -tmp<volScalarField> SpalartAllmaras::fv3 -( - const volScalarField& chi, - const volScalarField& fv1 -) const -{ - volScalarField chiByCv2 = (1/Cv2_)*chi; - - return - (scalar(1) + chi*fv1) - *(1/Cv2_) - *(3*(scalar(1) + chiByCv2) + sqr(chiByCv2)) - /pow3(scalar(1) + chiByCv2); -} - - -tmp<volScalarField> SpalartAllmaras::fw(const volScalarField& Stilda) const -{ - volScalarField r = min - ( - nuTilda_ - /( - max(Stilda, dimensionedScalar("SMALL", Stilda.dimensions(), SMALL)) - *sqr(kappa_*d_) - ), - scalar(10.0) - ); - r.boundaryField() == 0.0; - - volScalarField g = r + Cw2_*(pow6(r) - r); - - return g*pow((1.0 + pow6(Cw3_))/(pow6(g) + pow6(Cw3_)), 1.0/6.0); -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -SpalartAllmaras::SpalartAllmaras -( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& lamTransportModel -) -: - RASModel(typeName, U, phi, lamTransportModel), - - alphaNut_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphaNut", - coeffDict_, - 1.5 - ) - ), - - Cb1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cb1", - coeffDict_, - 0.1355 - ) - ), - Cb2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cb2", - coeffDict_, - 0.622 - ) - ), - Cw1_(Cb1_/sqr(kappa_) + alphaNut_*(1.0 + Cb2_)), - Cw2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cw2", - coeffDict_, - 0.3 - ) - ), - Cw3_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cw3", - coeffDict_, - 2.0 - ) - ), - Cv1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cv1", - coeffDict_, - 7.1 - ) - ), - Cv2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cv2", - coeffDict_, - 5.0 - ) - ), - - nuTilda_ - ( - IOobject - ( - "nuTilda", - runTime_.timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh_ - ), - - nut_ - ( - IOobject - ( - "nut", - runTime_.timeName(), - mesh_, - IOobject::MUST_READ, - IOobject::AUTO_WRITE - ), - mesh_ - ), - - d_(mesh_) -{ - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -tmp<volScalarField> SpalartAllmaras::DnuTildaEff() const -{ - return tmp<volScalarField> - ( - new volScalarField("DnuTildaEff", alphaNut_*nuTilda_ + nu()) - ); -} - - -tmp<volScalarField> SpalartAllmaras::k() const -{ - return tmp<volScalarField> - ( - new volScalarField - ( - IOobject - ( - "k", - runTime_.timeName(), - mesh_ - ), - mesh_, - dimensionedScalar("0", dimensionSet(0, 2, -2, 0, 0), 0) - ) - ); -} - - -tmp<volScalarField> SpalartAllmaras::epsilon() const -{ - return tmp<volScalarField> - ( - new volScalarField - ( - IOobject - ( - "epslion", - runTime_.timeName(), - mesh_ - ), - mesh_, - dimensionedScalar("0", dimensionSet(0, 2, -3, 0, 0), 0) - ) - ); -} - - -tmp<volSymmTensorField> SpalartAllmaras::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_)) - ) - ); -} - - -tmp<volSymmTensorField> SpalartAllmaras::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> SpalartAllmaras::divDevReff(volVectorField& U) const -{ - volScalarField nuEff_ = nuEff(); - - return - ( - - fvm::laplacian(nuEff_, U) - - fvc::div(nuEff_*dev(fvc::grad(U)().T())) - ); -} - - -bool SpalartAllmaras::read() -{ - if (RASModel::read()) - { - alphaNut_.readIfPresent(coeffDict_); - - Cb1_.readIfPresent(coeffDict_); - Cb2_.readIfPresent(coeffDict_); - Cw1_ = Cb1_/sqr(kappa_) + alphaNut_*(1.0 + Cb2_); - Cw2_.readIfPresent(coeffDict_); - Cw3_.readIfPresent(coeffDict_); - Cv1_.readIfPresent(coeffDict_); - Cv2_.readIfPresent(coeffDict_); - - return true; - } - else - { - return false; - } -} - - -void SpalartAllmaras::correct() -{ - transportModel_.correct(); - - if (!turbulence_) - { - return; - } - - RASModel::correct(); - - if (mesh_.changing()) - { - d_.correct(); - } - - volScalarField chi = this->chi(); - volScalarField fv1 = this->fv1(chi); - - volScalarField Stilda = - fv3(chi, fv1)*::sqrt(2.0)*mag(skew(fvc::grad(U_))) - + fv2(chi, fv1)*nuTilda_/sqr(kappa_*d_); - - tmp<fvScalarMatrix> nuTildaEqn - ( - fvm::ddt(nuTilda_) - + fvm::div(phi_, nuTilda_) - - fvm::Sp(fvc::div(phi_), nuTilda_) - - fvm::laplacian(DnuTildaEff(), nuTilda_) - - alphaNut_*Cb2_*magSqr(fvc::grad(nuTilda_)) - == - Cb1_*Stilda*nuTilda_ - - fvm::Sp(Cw1_*fw(Stilda)*nuTilda_/sqr(d_), nuTilda_) - ); - - nuTildaEqn().relax(); - solve(nuTildaEqn); - bound(nuTilda_, dimensionedScalar("0", nuTilda_.dimensions(), 0.0)); - nuTilda_.correctBoundaryConditions(); - - nut_.internalField() = fv1*nuTilda_.internalField(); - nut_.correctBoundaryConditions(); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/SpalartAllmaras/SpalartAllmaras.H b/src/turbulenceModels/RAS/incompressible/SpalartAllmaras/SpalartAllmaras.H deleted file mode 100644 index 39cb3977e0c..00000000000 --- a/src/turbulenceModels/RAS/incompressible/SpalartAllmaras/SpalartAllmaras.H +++ /dev/null @@ -1,192 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::RASModels::SpalartAllmaras - -Description - Spalart-Allmaras 1-eqn mixing-length model for incompressible external - flows. - - References: - @verbatim - "A One-Equation Turbulence Model for Aerodynamic Flows" - P.R. Spalart, - S.R. Allmaras, - La Recherche A´rospatiale, No. 1, 1994, pp. 5–21. - - Extended according to: - - "An Unstructured Grid Generation and Adaptive Solution Technique - for High Reynolds Number Compressible Flows" - G.A. Ashford, - Ph.D. thesis, University of Michigan, 1996. - @endverbatim - - The default model coefficients correspond to the following: - @verbatim - SpalartAllmarasCoeffs - { - Cb1 0.1355; - Cb2 0.622; - Cw2 0.3; - Cw3 2.0; - Cv1 7.1; - Cv2 5.0; - alphaNut 1.5; - alphah 1.0; // only for compressible - } - @endverbatim - -SourceFiles - SpalartAllmaras.C - -\*---------------------------------------------------------------------------*/ - -#ifndef SpalartAllmaras_H -#define SpalartAllmaras_H - -#include "RASModel.H" -#include "wallDist.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class SpalartAllmaras Declaration -\*---------------------------------------------------------------------------*/ - -class SpalartAllmaras -: - public RASModel -{ - // Private data - - dimensionedScalar alphaNut_; - - dimensionedScalar Cb1_; - dimensionedScalar Cb2_; - dimensionedScalar Cw1_; - dimensionedScalar Cw2_; - dimensionedScalar Cw3_; - dimensionedScalar Cv1_; - dimensionedScalar Cv2_; - - volScalarField nuTilda_; - volScalarField nut_; - - wallDist d_; - - - // Private member functions - - tmp<volScalarField> chi() const; - tmp<volScalarField> fv1(const volScalarField& chi) const; - tmp<volScalarField> fv2 - ( - const volScalarField& chi, - const volScalarField& fv1 - ) const; - tmp<volScalarField> fv3 - ( - const volScalarField& chi, - const volScalarField& fv1 - ) const; - tmp<volScalarField> fw(const volScalarField& Stilda) const; - - -public: - - //- Runtime type information - TypeName("SpalartAllmaras"); - - - // Constructors - - //- from components - SpalartAllmaras - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ); - - - // Destructor - - ~SpalartAllmaras() - {} - - - // Member Functions - - //- Return the turbulence viscosity - tmp<volScalarField> nut() const - { - return nut_; - } - - //- Return the effective diffusivity for nuTilda - tmp<volScalarField> DnuTildaEff() const; - - //- Return the turbulence kinetic energy - tmp<volScalarField> k() const; - - //- Return the turbulence kinetic energy dissipation rate - tmp<volScalarField> epsilon() const; - - //- Return the Reynolds stress tensor - tmp<volSymmTensorField> R() const; - - //- Return the effective stress tensor including the laminar stress - tmp<volSymmTensorField> devReff() const; - - //- Return the source term for the momentum equation - tmp<fvVectorMatrix> divDevReff(volVectorField& U) const; - - //- Solve the turbulence equations and correct the turbulence viscosity - void correct(); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/backwardsCompatibilityWallFunctions/backwardsCompatibilityWallFunctions.C b/src/turbulenceModels/RAS/incompressible/backwardsCompatibilityWallFunctions/backwardsCompatibilityWallFunctions.C deleted file mode 100644 index 4e8352414df..00000000000 --- a/src/turbulenceModels/RAS/incompressible/backwardsCompatibilityWallFunctions/backwardsCompatibilityWallFunctions.C +++ /dev/null @@ -1,215 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "backwardsCompatibilityWallFunctions.H" - -#include "calculatedFvPatchField.H" -#include "nutWallFunctionFvPatchScalarField.H" -#include "epsilonWallFunctionFvPatchScalarField.H" -#include "kQRWallFunctionFvPatchField.H" -#include "omegaWallFunctionFvPatchScalarField.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -tmp<volScalarField> autoCreateNut -( - const word& fieldName, - const fvMesh& mesh -) -{ - IOobject nutHeader - ( - fieldName, - mesh.time().timeName(), - mesh, - IOobject::MUST_READ, - IOobject::NO_WRITE, - false - ); - - if (nutHeader.headerOk()) - { - return tmp<volScalarField>(new volScalarField(nutHeader, mesh)); - } - else - { - Info<< "--> Upgrading " << fieldName << " to employ run-time " - << "selectable wall functions" << endl; - - const fvBoundaryMesh& bm = mesh.boundary(); - - wordList nutBoundaryTypes(bm.size()); - - forAll(bm, patchI) - { - if (isType<wallFvPatch>(bm[patchI])) - { - nutBoundaryTypes[patchI] = - RASModels::nutWallFunctionFvPatchScalarField::typeName; - } - else - { - nutBoundaryTypes[patchI] = - calculatedFvPatchField<scalar>::typeName; - } - } - - tmp<volScalarField> nut - ( - new volScalarField - ( - IOobject - ( - fieldName, - mesh.time().timeName(), - mesh, - IOobject::NO_READ, - IOobject::NO_WRITE, - false - ), - mesh, - dimensionedScalar("zero", dimArea/dimTime, 0.0), - nutBoundaryTypes - ) - ); - - Info<< " Writing updated " << fieldName << endl; - nut().write(); - - return nut; - } -} - - -tmp<volScalarField> autoCreateEpsilon -( - const word& fieldName, - const fvMesh& mesh -) -{ - return - autoCreateWallFunctionField - < - scalar, - RASModels::epsilonWallFunctionFvPatchScalarField - > - ( - fieldName, - mesh - ); -} - - -tmp<volScalarField> autoCreateOmega -( - const word& fieldName, - const fvMesh& mesh -) -{ - return - autoCreateWallFunctionField - < - scalar, - RASModels::omegaWallFunctionFvPatchScalarField - > - ( - fieldName, - mesh - ); -} - - -tmp<volScalarField> autoCreateK -( - const word& fieldName, - const fvMesh& mesh -) -{ - return - autoCreateWallFunctionField - < - scalar, - RASModels::kQRWallFunctionFvPatchField<scalar> - > - ( - fieldName, - mesh - ); -} - - -tmp<volScalarField> autoCreateQ -( - const word& fieldName, - const fvMesh& mesh -) -{ - return - autoCreateWallFunctionField - < - scalar, - RASModels::kQRWallFunctionFvPatchField<scalar> - > - ( - fieldName, - mesh - ); -} - - -tmp<volSymmTensorField> autoCreateR -( - const word& fieldName, - const fvMesh& mesh -) -{ - return - autoCreateWallFunctionField - < - symmTensor, - RASModels::kQRWallFunctionFvPatchField<symmTensor> - > - ( - fieldName, - mesh - ); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // - diff --git a/src/turbulenceModels/RAS/incompressible/backwardsCompatibilityWallFunctions/backwardsCompatibilityWallFunctions.H b/src/turbulenceModels/RAS/incompressible/backwardsCompatibilityWallFunctions/backwardsCompatibilityWallFunctions.H deleted file mode 100644 index 28ba0652143..00000000000 --- a/src/turbulenceModels/RAS/incompressible/backwardsCompatibilityWallFunctions/backwardsCompatibilityWallFunctions.H +++ /dev/null @@ -1,116 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible - -Description - Auto creation of fields to provide backwards compatibility with - runtime selectable wall functions - -SourceFiles - backwardsCompatibilityWallFunctions.C - backwardsCompatibilityWallFunctionsTemplates.C - -\*---------------------------------------------------------------------------*/ - -#ifndef backwardsCompatibilityWallFunctions_H -#define backwardsCompatibilityWallFunctions_H - -#include "fvMesh.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ - //- nut - tmp<volScalarField> autoCreateNut - ( - const word& fieldName, - const fvMesh& mesh - ); - - //- epsilon - tmp<volScalarField> autoCreateEpsilon - ( - const word& fieldName, - const fvMesh& mesh - ); - - //- omega - tmp<volScalarField> autoCreateOmega - ( - const word& fieldName, - const fvMesh& mesh - ); - - //- k - tmp<volScalarField> autoCreateK - ( - const word& fieldName, - const fvMesh& mesh - ); - - //- Q - tmp<volScalarField> autoCreateQ - ( - const word& fieldName, - const fvMesh& mesh - ); - - //- R - tmp<volSymmTensorField> autoCreateR - ( - const word& fieldName, - const fvMesh& mesh - ); - - //- Helper function to create the new field - template<class Type, class PatchType> - tmp<GeometricField<Type, fvPatchField, volMesh> > - autoCreateWallFunctionField - ( - const word& fieldName, - const fvMesh& mesh - ); - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#ifdef NoRepository -# include "backwardsCompatibilityWallFunctionsTemplates.C" -#endif - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/turbulenceModels/RAS/incompressible/backwardsCompatibilityWallFunctions/backwardsCompatibilityWallFunctionsTemplates.C b/src/turbulenceModels/RAS/incompressible/backwardsCompatibilityWallFunctions/backwardsCompatibilityWallFunctionsTemplates.C deleted file mode 100644 index 9b6850bc946..00000000000 --- a/src/turbulenceModels/RAS/incompressible/backwardsCompatibilityWallFunctions/backwardsCompatibilityWallFunctionsTemplates.C +++ /dev/null @@ -1,166 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "backwardsCompatibilityWallFunctions.H" -#include "Time.H" - -#include "wallPolyPatch.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -template<class Type, class PatchType> -tmp<GeometricField<Type, fvPatchField, volMesh> > -autoCreateWallFunctionField -( - const word& fieldName, - const fvMesh& mesh -) -{ - IOobject nutHeader - ( - "nut", - mesh.time().timeName(), - mesh, - IOobject::MUST_READ - ); - - typedef GeometricField<Type, fvPatchField, volMesh> fieldType; - - if (nutHeader.headerOk()) - { - return tmp<fieldType> - ( - new fieldType - ( - IOobject - ( - fieldName, - mesh.time().timeName(), - mesh, - IOobject::MUST_READ, - IOobject::NO_WRITE, - false - ), - mesh - ) - ); - } - else - { - Info<< "--> Upgrading " << fieldName << " to employ run-time " - << "selectable wall functions" << endl; - - // Read existing epsilon field - tmp<fieldType> fieldOrig - ( - new fieldType - ( - IOobject - ( - fieldName, - mesh.time().timeName(), - mesh, - IOobject::MUST_READ, - IOobject::NO_WRITE, - false - ), - mesh - ) - ); - - PtrList<fvPatchField<Type> > newPatchFields(mesh.boundary().size()); - - forAll(newPatchFields, patchI) - { - if (isType<wallPolyPatch>(mesh.boundaryMesh()[patchI])) - { - newPatchFields.set - ( - patchI, - new PatchType - ( - mesh.boundary()[patchI], - fieldOrig().dimensionedInternalField() - ) - ); - newPatchFields[patchI] == fieldOrig().boundaryField()[patchI]; - } - else - { - newPatchFields.set - ( - patchI, - fieldOrig().boundaryField()[patchI].clone() - ); - } - } - - tmp<fieldType> fieldNew - ( - new fieldType - ( - IOobject - ( - fieldName, - mesh.time().timeName(), - mesh, - IOobject::NO_READ, - IOobject::NO_WRITE, - false - ), - mesh, - fieldOrig().dimensions(), - fieldOrig().internalField(), - newPatchFields - ) - ); - - Info<< " Writing backup of original " << fieldName << " to " - << fieldName << ".old" << endl; - fieldOrig().rename(fieldName + ".old"); - fieldOrig().write(); - - Info<< " Writing updated " << fieldName << endl; - fieldNew().write(); - - return fieldNew; - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C b/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C deleted file mode 100644 index f51ccb7251d..00000000000 --- a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C +++ /dev/null @@ -1,191 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "turbulentHeatFluxTemperatureFvPatchScalarField.H" -#include "addToRunTimeSelectionTable.H" -#include "fvPatchFieldMapper.H" -#include "volFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -turbulentHeatFluxTemperatureFvPatchScalarField:: -turbulentHeatFluxTemperatureFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedGradientFvPatchScalarField(p, iF), - q_(p.size(), 0.0), - alphaEffName_("undefinedAlphaEff"), - CpName_("undefinedCp") -{} - - -turbulentHeatFluxTemperatureFvPatchScalarField:: -turbulentHeatFluxTemperatureFvPatchScalarField -( - const turbulentHeatFluxTemperatureFvPatchScalarField& ptf, - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const fvPatchFieldMapper& mapper -) -: - fixedGradientFvPatchScalarField(ptf, p, iF, mapper), - q_(ptf.q_, mapper), - alphaEffName_(ptf.alphaEffName_), - CpName_(ptf.CpName_) -{} - - -turbulentHeatFluxTemperatureFvPatchScalarField:: -turbulentHeatFluxTemperatureFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const dictionary& dict -) -: - fixedGradientFvPatchScalarField(p, iF), - q_("q", dict, p.size()), - alphaEffName_(dict.lookup("alphaEff")), - CpName_(dict.lookup("Cp")) -{ - fvPatchField<scalar>::operator=(patchInternalField()); - gradient() = 0.0; -} - - -turbulentHeatFluxTemperatureFvPatchScalarField:: -turbulentHeatFluxTemperatureFvPatchScalarField -( - const turbulentHeatFluxTemperatureFvPatchScalarField& thftpsf -) -: - fixedGradientFvPatchScalarField(thftpsf), - q_(thftpsf.q_), - alphaEffName_(thftpsf.alphaEffName_), - CpName_(thftpsf.CpName_) -{} - - -turbulentHeatFluxTemperatureFvPatchScalarField:: -turbulentHeatFluxTemperatureFvPatchScalarField -( - const turbulentHeatFluxTemperatureFvPatchScalarField& thftpsf, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedGradientFvPatchScalarField(thftpsf, iF), - q_(thftpsf.q_), - alphaEffName_(thftpsf.alphaEffName_), - CpName_(thftpsf.CpName_) -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void turbulentHeatFluxTemperatureFvPatchScalarField::autoMap -( - const fvPatchFieldMapper& m -) -{ - scalarField::autoMap(m); - q_.autoMap(m); -} - - -void turbulentHeatFluxTemperatureFvPatchScalarField::rmap -( - const fvPatchScalarField& ptf, - const labelList& addr -) -{ - fixedGradientFvPatchScalarField::rmap(ptf, addr); - - const turbulentHeatFluxTemperatureFvPatchScalarField& thftptf = - refCast<const turbulentHeatFluxTemperatureFvPatchScalarField> - ( - ptf - ); - - q_.rmap(thftptf.q_, addr); -} - - -void turbulentHeatFluxTemperatureFvPatchScalarField::updateCoeffs() -{ - if (updated()) - { - return; - } - - const scalarField& alphaEffp = - patch().lookupPatchField<volScalarField, scalar>(alphaEffName_); - - const scalarField& Cpp = - patch().lookupPatchField<volScalarField, scalar>(CpName_); - - gradient() = q_/(Cpp*alphaEffp); - - fixedGradientFvPatchScalarField::updateCoeffs(); -} - - -void turbulentHeatFluxTemperatureFvPatchScalarField::write(Ostream& os) const -{ - fixedGradientFvPatchScalarField::write(os); - q_.writeEntry("q", os); - os.writeKeyword("alphaEff") << alphaEffName_ << token::END_STATEMENT << nl; - os.writeKeyword("Cp") << CpName_ << token::END_STATEMENT << nl; - writeEntry("value", os); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -makePatchTypeField -( - fvPatchScalarField, - turbulentHeatFluxTemperatureFvPatchScalarField -); - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace incompressible -} // End namespace Foam - - -// ************************************************************************* // - diff --git a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.H b/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.H deleted file mode 100644 index de677f0e91b..00000000000 --- a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.H +++ /dev/null @@ -1,179 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::turbulentHeatFluxTemperatureFvPatchScalarField - -Description - Fixed heat flux boundary condition for temperature. - -SourceFiles - turbulentHeatFluxTemperatureFvPatchScalarField.C - -\*---------------------------------------------------------------------------*/ - -#ifndef turbulentHeatFluxTemperatureFvPatchScalarFields_H -#define turbulentHeatFluxTemperatureFvPatchScalarFields_H - -#include "fvPatchFields.H" -#include "fixedGradientFvPatchFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ - -/*---------------------------------------------------------------------------*\ - Class turbulentHeatFluxTemperatureFvPatchScalarField Declaration -\*---------------------------------------------------------------------------*/ - -class turbulentHeatFluxTemperatureFvPatchScalarField -: - public fixedGradientFvPatchScalarField -{ -// Private data - - //- Heat flux [W/m2] - scalarField q_; - - //- Name of effective thermal diffusivity field - word alphaEffName_; - - //- Name of specific heat capacity field - word CpName_; - - -public: - - //- Runtime type information - TypeName("turbulentHeatFluxTemperature"); - - - // Constructors - - //- Construct from patch and internal field - turbulentHeatFluxTemperatureFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct from patch, internal field and dictionary - turbulentHeatFluxTemperatureFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const dictionary& - ); - - //- Construct by mapping given - // turbulentHeatFluxTemperatureFvPatchScalarField onto - // a new patch - turbulentHeatFluxTemperatureFvPatchScalarField - ( - const turbulentHeatFluxTemperatureFvPatchScalarField&, - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const fvPatchFieldMapper& - ); - - //- Construct as copy - turbulentHeatFluxTemperatureFvPatchScalarField - ( - const turbulentHeatFluxTemperatureFvPatchScalarField& - ); - - //- Construct and return a clone - virtual tmp<fvPatchScalarField> clone() const - { - return tmp<fvPatchScalarField> - ( - new turbulentHeatFluxTemperatureFvPatchScalarField(*this) - ); - } - - //- Construct as copy setting internal field reference - turbulentHeatFluxTemperatureFvPatchScalarField - ( - const turbulentHeatFluxTemperatureFvPatchScalarField&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct and return a clone setting internal field reference - virtual tmp<fvPatchScalarField> clone - ( - const DimensionedField<scalar, volMesh>& iF - ) const - { - return tmp<fvPatchScalarField> - ( - new turbulentHeatFluxTemperatureFvPatchScalarField - ( - *this, - iF - ) - ); - } - - - // Member functions - - // Mapping functions - - //- Map (and resize as needed) from self given a mapping object - virtual void autoMap(const fvPatchFieldMapper&); - - //- Reverse map the given fvPatchField onto this fvPatchField - virtual void rmap - ( - const fvPatchScalarField&, - const labelList& - ); - - - // Evaluation functions - - //- Update the coefficients associated with the patch field - virtual void updateCoeffs(); - - - // I-O - - //- Write - virtual void write(Ostream&) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.C b/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.C deleted file mode 100644 index 699559c2cf6..00000000000 --- a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.C +++ /dev/null @@ -1,152 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 2006-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "turbulentMixingLengthDissipationRateInletFvPatchScalarField.H" -#include "addToRunTimeSelectionTable.H" -#include "fvPatchFieldMapper.H" -#include "surfaceFields.H" -#include "volFields.H" -#include "RASModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -turbulentMixingLengthDissipationRateInletFvPatchScalarField:: -turbulentMixingLengthDissipationRateInletFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedValueFvPatchField<scalar>(p, iF), - mixingLength_(0.001) -{} - -turbulentMixingLengthDissipationRateInletFvPatchScalarField:: -turbulentMixingLengthDissipationRateInletFvPatchScalarField -( - const turbulentMixingLengthDissipationRateInletFvPatchScalarField& ptf, - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const fvPatchFieldMapper& mapper -) -: - fixedValueFvPatchField<scalar>(ptf, p, iF, mapper), - mixingLength_(ptf.mixingLength_) -{} - -turbulentMixingLengthDissipationRateInletFvPatchScalarField:: -turbulentMixingLengthDissipationRateInletFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const dictionary& dict -) -: - fixedValueFvPatchField<scalar>(p, iF, dict), - mixingLength_(readScalar(dict.lookup("mixingLength"))) -{} - -turbulentMixingLengthDissipationRateInletFvPatchScalarField:: -turbulentMixingLengthDissipationRateInletFvPatchScalarField -( - const turbulentMixingLengthDissipationRateInletFvPatchScalarField& ptf -) -: - fixedValueFvPatchField<scalar>(ptf), - mixingLength_(ptf.mixingLength_) -{} - -turbulentMixingLengthDissipationRateInletFvPatchScalarField:: -turbulentMixingLengthDissipationRateInletFvPatchScalarField -( - const turbulentMixingLengthDissipationRateInletFvPatchScalarField& ptf, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedValueFvPatchField<scalar>(ptf, iF), - mixingLength_(ptf.mixingLength_) -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void turbulentMixingLengthDissipationRateInletFvPatchScalarField::updateCoeffs() -{ - if (updated()) - { - return; - } - - // Lookup Cmu corresponding to the turbulence model selected - const incompressible::RASModel& RAS = - db().lookupObject<incompressible::RASModel>("RASProperties"); - scalar Cmu = readScalar(RAS.coeffDict().lookup("Cmu")); - - scalar Cmu75 = pow(Cmu, 0.75); - - const fvPatchField<scalar>& k = - patch().lookupPatchField<volScalarField, scalar>("k"); - - operator==(Cmu75*k*sqrt(k)/mixingLength_); - - fixedValueFvPatchField<scalar>::updateCoeffs(); -} - - -void turbulentMixingLengthDissipationRateInletFvPatchScalarField::write -( - Ostream& os -) const -{ - fvPatchField<scalar>::write(os); - os.writeKeyword("mixingLength") - << mixingLength_ << token::END_STATEMENT << nl; - writeEntry("value", os); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -makePatchTypeField -( - fvPatchScalarField, - turbulentMixingLengthDissipationRateInletFvPatchScalarField -); - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.H b/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.H deleted file mode 100644 index 63a764f2250..00000000000 --- a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/turbulentMixingLengthDissipationRateInlet/turbulentMixingLengthDissipationRateInletFvPatchScalarField.H +++ /dev/null @@ -1,167 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 2006-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible:: - turbulentMixingLengthDissipationRateInletFvPatchScalarField - -Description - Calculate epsilon via the mixing length [m] - - Example of the boundary condition specification: - @verbatim - inlet - { - type turbulentMixingLengthDissipationRateInlet; - mixingLength 0.005; // 5 mm - value uniform 200; // placeholder - } - @endverbatim - -SourceFiles - turbulentMixingLengthDissipationRateInletFvPatchScalarField.C - -\*---------------------------------------------------------------------------*/ - -#ifndef incompressibleturbulentMixingLengthDissipationRateInlet_H -#define incompressibleturbulentMixingLengthDissipationRateInlet_H - -#include "fixedValueFvPatchFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ - -/*---------------------------------------------------------------------------*\ - Class turbulentMixingLengthDissipationRateInletFvPatch Declaration -\*---------------------------------------------------------------------------*/ - -class turbulentMixingLengthDissipationRateInletFvPatchScalarField -: - public fixedValueFvPatchScalarField -{ - // Private data - - //- turbulent length scale - scalar mixingLength_; - -public: - - //- Runtime type information - TypeName("turbulentMixingLengthDissipationRateInlet"); - - - // Constructors - - //- Construct from patch and internal field - turbulentMixingLengthDissipationRateInletFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct from patch, internal field and dictionary - turbulentMixingLengthDissipationRateInletFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const dictionary& - ); - - //- Construct by mapping given - // turbulentMixingLengthDissipationRateInletFvPatchScalarField - // onto a new patch - turbulentMixingLengthDissipationRateInletFvPatchScalarField - ( - const turbulentMixingLengthDissipationRateInletFvPatchScalarField&, - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const fvPatchFieldMapper& - ); - - //- Construct as copy - turbulentMixingLengthDissipationRateInletFvPatchScalarField - ( - const turbulentMixingLengthDissipationRateInletFvPatchScalarField& - ); - - //- Construct and return a clone - virtual tmp<fvPatchScalarField> clone() const - { - return tmp<fvPatchScalarField> - ( - new turbulentMixingLengthDissipationRateInletFvPatchScalarField - ( - *this - ) - ); - } - - //- Construct as copy setting internal field reference - turbulentMixingLengthDissipationRateInletFvPatchScalarField - ( - const turbulentMixingLengthDissipationRateInletFvPatchScalarField&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct and return a clone setting internal field reference - virtual tmp<fvPatchScalarField> clone - ( - const DimensionedField<scalar, volMesh>& iF - ) const - { - return tmp<fvPatchScalarField> - ( - new turbulentMixingLengthDissipationRateInletFvPatchScalarField - ( - *this, - iF - ) - ); - } - - - // Member functions - - //- Update the coefficients associated with the patch field - virtual void updateCoeffs(); - - //- Write - virtual void write(Ostream&) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.C b/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.C deleted file mode 100644 index 465118cdbfc..00000000000 --- a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.C +++ /dev/null @@ -1,158 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 2006-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "turbulentMixingLengthFrequencyInletFvPatchScalarField.H" -#include "addToRunTimeSelectionTable.H" -#include "fvPatchFieldMapper.H" -#include "surfaceFields.H" -#include "volFields.H" -#include "RASModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -turbulentMixingLengthFrequencyInletFvPatchScalarField:: -turbulentMixingLengthFrequencyInletFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedValueFvPatchField<scalar>(p, iF), - mixingLength_(0.0), - kName_("undefined-k") -{} - -turbulentMixingLengthFrequencyInletFvPatchScalarField:: -turbulentMixingLengthFrequencyInletFvPatchScalarField -( - const turbulentMixingLengthFrequencyInletFvPatchScalarField& ptf, - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const fvPatchFieldMapper& mapper -) -: - fixedValueFvPatchField<scalar>(ptf, p, iF, mapper), - mixingLength_(ptf.mixingLength_), - kName_(ptf.kName_) -{} - -turbulentMixingLengthFrequencyInletFvPatchScalarField:: -turbulentMixingLengthFrequencyInletFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const dictionary& dict -) -: - fixedValueFvPatchField<scalar>(p, iF, dict), - mixingLength_(readScalar(dict.lookup("mixingLength"))), - kName_(dict.lookup("k")) -{} - -turbulentMixingLengthFrequencyInletFvPatchScalarField:: -turbulentMixingLengthFrequencyInletFvPatchScalarField -( - const turbulentMixingLengthFrequencyInletFvPatchScalarField& ptf -) -: - fixedValueFvPatchField<scalar>(ptf), - mixingLength_(ptf.mixingLength_), - kName_(ptf.kName_) -{} - -turbulentMixingLengthFrequencyInletFvPatchScalarField:: -turbulentMixingLengthFrequencyInletFvPatchScalarField -( - const turbulentMixingLengthFrequencyInletFvPatchScalarField& ptf, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedValueFvPatchField<scalar>(ptf, iF), - mixingLength_(ptf.mixingLength_), - kName_(ptf.kName_) -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void turbulentMixingLengthFrequencyInletFvPatchScalarField::updateCoeffs() -{ - if (updated()) - { - return; - } - - // Lookup Cmu corresponding to the turbulence model selected - const incompressible::RASModel& RAS = - db().lookupObject<incompressible::RASModel>("RASProperties"); - scalar Cmu = readScalar(RAS.coeffDict().lookup("Cmu")); - - scalar Cmu25 = pow(Cmu, 0.25); - - const fvPatchField<scalar>& kp = - patch().lookupPatchField<volScalarField, scalar>(kName_); - - operator==(sqrt(kp)/(Cmu25*mixingLength_)); - - fixedValueFvPatchField<scalar>::updateCoeffs(); -} - - -void turbulentMixingLengthFrequencyInletFvPatchScalarField::write -( - Ostream& os -) const -{ - fvPatchField<scalar>::write(os); - os.writeKeyword("mixingLength") - << mixingLength_ << token::END_STATEMENT << nl; - os.writeKeyword("k") << kName_ << token::END_STATEMENT << nl; - writeEntry("value", os); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -makePatchTypeField -( - fvPatchScalarField, - turbulentMixingLengthFrequencyInletFvPatchScalarField -); - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.H b/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.H deleted file mode 100644 index bdfa5e845ac..00000000000 --- a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/turbulentMixingLengthFrequencyInlet/turbulentMixingLengthFrequencyInletFvPatchScalarField.H +++ /dev/null @@ -1,171 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 2006-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::turbulentMixingLengthFrequencyInletFvPatchScalarField - -Description - Calculate omega via the mixing length - - Example of the boundary condition specification: - @verbatim - inlet - { - type turbulentMixingLengthFrequencyInlet; - mixingLength 0.005; // 5 mm - k k; // turbulent k field - value uniform 5; // initial value - } - @endverbatim - -SourceFiles - turbulentMixingLengthFrequencyInletFvPatchScalarField.C - -\*---------------------------------------------------------------------------*/ - -#ifndef incompressibleturbulentMixingLengthFrequencyInletFvPatchScalarField_H -#define incompressibleturbulentMixingLengthFrequencyInletFvPatchScalarField_H - -#include "fixedValueFvPatchFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ - -/*---------------------------------------------------------------------------*\ - Class turbulentMixingLengthFrequencyInletFvPatchScalarField Declaration -\*---------------------------------------------------------------------------*/ - -class turbulentMixingLengthFrequencyInletFvPatchScalarField -: - public fixedValueFvPatchScalarField -{ - // Private data - - //- Turbulent length scale - scalar mixingLength_; - - //- Name of the turbulent kinetic energy field - word kName_; - - -public: - - //- Runtime type information - TypeName("turbulentMixingLengthFrequencyInlet"); - - - // Constructors - - //- Construct from patch and internal field - turbulentMixingLengthFrequencyInletFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct from patch, internal field and dictionary - turbulentMixingLengthFrequencyInletFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const dictionary& - ); - - //- Construct by mapping given - // turbulentMixingLengthFrequencyInletFvPatchScalarField - // onto a new patch - turbulentMixingLengthFrequencyInletFvPatchScalarField - ( - const turbulentMixingLengthFrequencyInletFvPatchScalarField&, - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const fvPatchFieldMapper& - ); - - //- Construct as copy - turbulentMixingLengthFrequencyInletFvPatchScalarField - ( - const turbulentMixingLengthFrequencyInletFvPatchScalarField& - ); - - //- Construct and return a clone - virtual tmp<fvPatchScalarField> clone() const - { - return tmp<fvPatchScalarField> - ( - new turbulentMixingLengthFrequencyInletFvPatchScalarField - ( - *this - ) - ); - } - - //- Construct as copy setting internal field reference - turbulentMixingLengthFrequencyInletFvPatchScalarField - ( - const turbulentMixingLengthFrequencyInletFvPatchScalarField&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct and return a clone setting internal field reference - virtual tmp<fvPatchScalarField> clone - ( - const DimensionedField<scalar, volMesh>& iF - ) const - { - return tmp<fvPatchScalarField> - ( - new turbulentMixingLengthFrequencyInletFvPatchScalarField - ( - *this, - iF - ) - ); - } - - - // Member functions - - //- Update the coefficients associated with the patch field - virtual void updateCoeffs(); - - //- Write - virtual void write(Ostream&) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.C b/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.C deleted file mode 100644 index a4f0bd13f75..00000000000 --- a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.C +++ /dev/null @@ -1,213 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "epsilonWallFunctionFvPatchScalarField.H" -#include "RASModel.H" -#include "fvPatchFieldMapper.H" -#include "volFields.H" -#include "addToRunTimeSelectionTable.H" -#include "wallFvPatch.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -void epsilonWallFunctionFvPatchScalarField::checkType() -{ - if (!isA<wallFvPatch>(patch())) - { - FatalErrorIn("epsilonWallFunctionFvPatchScalarField::checkType()") - << "Invalid wall function specification" << nl - << " Patch type for patch " << patch().name() - << " must be wall" << nl - << " Current patch type is " << patch().type() << nl << endl - << abort(FatalError); - } -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedInternalValueFvPatchField<scalar>(p, iF) -{ - checkType(); -} - - -epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField -( - const epsilonWallFunctionFvPatchScalarField& ptf, - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const fvPatchFieldMapper& mapper -) -: - fixedInternalValueFvPatchField<scalar>(ptf, p, iF, mapper) -{ - checkType(); -} - - -epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const dictionary& dict -) -: - fixedInternalValueFvPatchField<scalar>(p, iF, dict) -{ - checkType(); -} - - -epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField -( - const epsilonWallFunctionFvPatchScalarField& ewfpsf -) -: - fixedInternalValueFvPatchField<scalar>(ewfpsf) -{ - checkType(); -} - - -epsilonWallFunctionFvPatchScalarField::epsilonWallFunctionFvPatchScalarField -( - const epsilonWallFunctionFvPatchScalarField& ewfpsf, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedInternalValueFvPatchField<scalar>(ewfpsf, iF) -{ - checkType(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void epsilonWallFunctionFvPatchScalarField::updateCoeffs() -{ - const RASModel& ras = db().lookupObject<RASModel>("RASProperties"); - - const scalar Cmu = ras.Cmu().value(); - const scalar Cmu25 = pow(Cmu, 0.25); - const scalar Cmu75 = pow(Cmu, 0.75); - const scalar kappa = ras.kappa().value(); - const scalar yPlusLam = ras.yPlusLam(); - - const scalarField& y = ras.y()[patch().index()]; - - volScalarField& G = const_cast<volScalarField&> - (db().lookupObject<volScalarField>("G")); - - volScalarField& epsilon = const_cast<volScalarField&> - (db().lookupObject<volScalarField>("epsilon")); - - const volScalarField& k = db().lookupObject<volScalarField>("k"); - - const scalarField& nuw = - patch().lookupPatchField<volScalarField, scalar>("nu"); - - const scalarField& nutw = - patch().lookupPatchField<volScalarField, scalar>("nut"); - - const fvPatchVectorField& Uw = - patch().lookupPatchField<volVectorField, vector>("U"); - - const scalarField magGradUw = mag(Uw.snGrad()); - - // Set epsilon and G - forAll(nutw, faceI) - { - label faceCellI = patch().faceCells()[faceI]; - - scalar yPlus = Cmu25*y[faceI]*sqrt(k[faceCellI])/nuw[faceI]; - - epsilon[faceCellI] = Cmu75*pow(k[faceCellI], 1.5)/(kappa*y[faceI]); - - if (yPlus > yPlusLam) - { - G[faceCellI] = - (nutw[faceI] + nuw[faceI]) - *magGradUw[faceI] - *Cmu25*sqrt(k[faceCellI]) - /(kappa*y[faceI]); - } - else - { - G[faceCellI] = 0.0; - } - } - - // TODO: perform averaging for cells sharing more than one boundary face -} - - -void epsilonWallFunctionFvPatchScalarField::evaluate -( - const Pstream::commsTypes commsType -) -{ - fixedInternalValueFvPatchField<scalar>::evaluate(commsType); -} - - -void epsilonWallFunctionFvPatchScalarField::write(Ostream& os) const -{ - fixedInternalValueFvPatchField<scalar>::write(os); - writeEntry("value", os); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -makePatchTypeField -( - fvPatchScalarField, - epsilonWallFunctionFvPatchScalarField -); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H b/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H deleted file mode 100644 index 7e81a50a342..00000000000 --- a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/epsilonWallFunctions/epsilonWallFunction/epsilonWallFunctionFvPatchScalarField.H +++ /dev/null @@ -1,164 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::RASModels::epsilonWallFunctionFvPatchScalarField - -Description - Boundary condition for epsilon when using wall functions - - calculates epsilon and G - - epsilon values added directly into the matrix to act as a constraint - -SourceFiles - epsilonWallFunctionFvPatchScalarField.C - -\*---------------------------------------------------------------------------*/ - -#ifndef epsilonWallFunctionFvPatchScalarField_H -#define epsilonWallFunctionFvPatchScalarField_H - -#include "fixedInternalValueFvPatchField.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class epsilonWallFunctionFvPatchScalarField Declaration -\*---------------------------------------------------------------------------*/ - -class epsilonWallFunctionFvPatchScalarField -: - public fixedInternalValueFvPatchField<scalar> -{ - - // Private member functions - - //- Check the type of the patch - void checkType(); - - -public: - - //- Runtime type information - TypeName("epsilonWallFunction"); - - - // Constructors - - //- Construct from patch and internal field - epsilonWallFunctionFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct from patch, internal field and dictionary - epsilonWallFunctionFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const dictionary& - ); - - //- Construct by mapping given - // epsilonWallFunctionFvPatchScalarField - // onto a new patch - epsilonWallFunctionFvPatchScalarField - ( - const epsilonWallFunctionFvPatchScalarField&, - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const fvPatchFieldMapper& - ); - - //- Construct as copy - epsilonWallFunctionFvPatchScalarField - ( - const epsilonWallFunctionFvPatchScalarField& - ); - - //- Construct and return a clone - virtual tmp<fvPatchScalarField> clone() const - { - return tmp<fvPatchScalarField> - ( - new epsilonWallFunctionFvPatchScalarField(*this) - ); - } - - //- Construct as copy setting internal field reference - epsilonWallFunctionFvPatchScalarField - ( - const epsilonWallFunctionFvPatchScalarField&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct and return a clone setting internal field reference - virtual tmp<fvPatchScalarField> clone - ( - const DimensionedField<scalar, volMesh>& iF - ) const - { - return tmp<fvPatchScalarField> - ( - new epsilonWallFunctionFvPatchScalarField(*this, iF) - ); - } - - - // Member functions - - // Evaluation functions - - //- Update the coefficients associated with the patch field - virtual void updateCoeffs(); - - //- Evaluate the patchField - virtual void evaluate(const Pstream::commsTypes); - - - // I-O - - //- Write - void write(Ostream&) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchField.C b/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchField.C deleted file mode 100644 index afe0cd24c84..00000000000 --- a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchField.C +++ /dev/null @@ -1,155 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "kQRWallFunctionFvPatchField.H" -#include "RASModel.H" -#include "fvPatchFieldMapper.H" -#include "volFields.H" -#include "addToRunTimeSelectionTable.H" -#include "wallFvPatch.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -template<class Type> -void kQRWallFunctionFvPatchField<Type>::checkType() -{ - if (!isA<wallFvPatch>(this->patch())) - { - FatalErrorIn("kQRWallFunctionFvPatchField::checkType()") - << "Invalid wall function specification" << nl - << " Patch type for patch " << this->patch().name() - << " must be wall" << nl - << " Current patch type is " << this->patch().type() << nl << endl - << abort(FatalError); - } -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -template<class Type> -kQRWallFunctionFvPatchField<Type>::kQRWallFunctionFvPatchField -( - const fvPatch& p, - const DimensionedField<Type, volMesh>& iF -) -: - zeroGradientFvPatchField<Type>(p, iF) -{ - checkType(); -} - - -template<class Type> -kQRWallFunctionFvPatchField<Type>::kQRWallFunctionFvPatchField -( - const kQRWallFunctionFvPatchField& ptf, - const fvPatch& p, - const DimensionedField<Type, volMesh>& iF, - const fvPatchFieldMapper& mapper -) -: - zeroGradientFvPatchField<Type>(ptf, p, iF, mapper) -{ - checkType(); -} - - -template<class Type> -kQRWallFunctionFvPatchField<Type>::kQRWallFunctionFvPatchField -( - const fvPatch& p, - const DimensionedField<Type, volMesh>& iF, - const dictionary& dict -) -: - zeroGradientFvPatchField<Type>(p, iF, dict) -{ - checkType(); -} - - -template<class Type> -kQRWallFunctionFvPatchField<Type>::kQRWallFunctionFvPatchField -( - const kQRWallFunctionFvPatchField& tkqrwfpf -) -: - zeroGradientFvPatchField<Type>(tkqrwfpf) -{ - checkType(); -} - - -template<class Type> -kQRWallFunctionFvPatchField<Type>::kQRWallFunctionFvPatchField -( - const kQRWallFunctionFvPatchField& tkqrwfpf, - const DimensionedField<Type, volMesh>& iF -) -: - zeroGradientFvPatchField<Type>(tkqrwfpf, iF) -{ - checkType(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -template<class Type> -void kQRWallFunctionFvPatchField<Type>::evaluate -( - const Pstream::commsTypes commsType -) -{ - zeroGradientFvPatchField<Type>::evaluate(commsType); -} - - -template<class Type> -void kQRWallFunctionFvPatchField<Type>::write(Ostream& os) const -{ - zeroGradientFvPatchField<Type>::write(os); - this->writeEntry("value", os); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchField.H b/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchField.H deleted file mode 100644 index 719836cf8ff..00000000000 --- a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchField.H +++ /dev/null @@ -1,170 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::RASModels::kQRWallFunctionFvPatchField - -Description - Boundary condition for turbulence k, Q, and R when using wall functions. - Simply acts as a zero gradient condition. - -SourceFiles - kQRWallFunctionFvPatchField.C - -\*---------------------------------------------------------------------------*/ - -#ifndef kQRWallFunctionFvPatchField_H -#define kQRWallFunctionFvPatchField_H - -#include "zeroGradientFvPatchField.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class kQRWallFunctionFvPatchField Declaration -\*---------------------------------------------------------------------------*/ - -template<class Type> -class kQRWallFunctionFvPatchField -: - public zeroGradientFvPatchField<Type> -{ - - // Private member functions - - //- Check the type of the patch - void checkType(); - - -public: - - //- Runtime type information - TypeName("kQRWallFunction"); - - - // Constructors - - //- Construct from patch and internal field - kQRWallFunctionFvPatchField - ( - const fvPatch&, - const DimensionedField<Type, volMesh>& - ); - - //- Construct from patch, internal field and dictionary - kQRWallFunctionFvPatchField - ( - const fvPatch&, - const DimensionedField<Type, volMesh>&, - const dictionary& - ); - - //- Construct by mapping given - // kQRWallFunctionFvPatchField - // onto a new patch - kQRWallFunctionFvPatchField - ( - const kQRWallFunctionFvPatchField&, - const fvPatch&, - const DimensionedField<Type, volMesh>&, - const fvPatchFieldMapper& - ); - - //- Construct as copy - kQRWallFunctionFvPatchField - ( - const kQRWallFunctionFvPatchField& - ); - - //- Construct and return a clone - virtual tmp<fvPatchField<Type> > clone() const - { - return tmp<fvPatchField<Type> > - ( - new kQRWallFunctionFvPatchField(*this) - ); - } - - //- Construct as copy setting internal field reference - kQRWallFunctionFvPatchField - ( - const kQRWallFunctionFvPatchField&, - const DimensionedField<Type, volMesh>& - ); - - //- Construct and return a clone setting internal field reference - virtual tmp<fvPatchField<Type> > clone - ( - const DimensionedField<Type, volMesh>& iF - ) const - { - return tmp<fvPatchField<Type> > - ( - new kQRWallFunctionFvPatchField(*this, iF) - ); - } - - - // Member functions - - // Evaluation functions - - //- Evaluate the patchField - virtual void evaluate - ( - const Pstream::commsTypes commsType=Pstream::Pstream::blocking - ); - - - // I-O - - //- Write - void write(Ostream&) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#ifdef NoRepository -# include "kQRWallFunctionFvPatchField.C" -#endif - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchFields.C b/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchFields.C deleted file mode 100644 index 4378e877235..00000000000 --- a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchFields.C +++ /dev/null @@ -1,51 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "kQRWallFunctionFvPatchFields.H" -#include "fvPatchFields.H" -#include "addToRunTimeSelectionTable.H" -#include "volFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -makePatchFields(kQRWallFunction); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchFields.H b/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchFields.H deleted file mode 100644 index f7a312a7805..00000000000 --- a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/kQRWallFunctions/kQRWallFunction/kQRWallFunctionFvPatchFields.H +++ /dev/null @@ -1,56 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#ifndef kQRWallFunctionFvPatchFields_H -#define kQRWallFunctionFvPatchFields_H - -#include "kQRWallFunctionFvPatchField.H" -#include "fieldTypes.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -makePatchTypeFieldTypedefs(kQRWallFunction) - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutRoughWallFunction/nutRoughWallFunctionFvPatchScalarField.C b/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutRoughWallFunction/nutRoughWallFunctionFvPatchScalarField.C deleted file mode 100644 index b4fd633432b..00000000000 --- a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutRoughWallFunction/nutRoughWallFunctionFvPatchScalarField.C +++ /dev/null @@ -1,245 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "nutRoughWallFunctionFvPatchScalarField.H" -#include "RASModel.H" -#include "fvPatchFieldMapper.H" -#include "volFields.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -scalar nutRoughWallFunctionFvPatchScalarField::fnRough -( - const scalar KsPlus, - const scalar Cs, - const scalar kappa -) const -{ - // Set deltaB based on non-dimensional roughness height - scalar deltaB = 0.0; - if (KsPlus < 90.0) - { - deltaB = - 1.0/kappa - *log((KsPlus - 2.25)/87.75 + Cs*KsPlus) - *sin(0.4258*(log(KsPlus) - 0.811)); - } - else - { - deltaB = 1.0/kappa*log(1.0 + Cs*KsPlus); - } - - return exp(min(deltaB*kappa, 50.0)); -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -nutRoughWallFunctionFvPatchScalarField:: -nutRoughWallFunctionFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedValueFvPatchScalarField(p, iF), - Ks_(p.size(), 0.0), - Cs_(p.size(), 0.0) -{} - - -nutRoughWallFunctionFvPatchScalarField:: -nutRoughWallFunctionFvPatchScalarField -( - const nutRoughWallFunctionFvPatchScalarField& ptf, - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const fvPatchFieldMapper& mapper -) -: - fixedValueFvPatchScalarField(ptf, p, iF, mapper), - Ks_(ptf.Ks_, mapper), - Cs_(ptf.Cs_, mapper) -{} - - -nutRoughWallFunctionFvPatchScalarField:: -nutRoughWallFunctionFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const dictionary& dict -) -: - fixedValueFvPatchScalarField(p, iF, dict), - Ks_("Ks", dict, p.size()), - Cs_("Cs", dict, p.size()) -{} - - -nutRoughWallFunctionFvPatchScalarField:: -nutRoughWallFunctionFvPatchScalarField -( - const nutRoughWallFunctionFvPatchScalarField& nrwfpsf -) -: - fixedValueFvPatchScalarField(nrwfpsf), - Ks_(nrwfpsf.Ks_), - Cs_(nrwfpsf.Cs_) -{} - - -nutRoughWallFunctionFvPatchScalarField:: -nutRoughWallFunctionFvPatchScalarField -( - const nutRoughWallFunctionFvPatchScalarField& nrwfpsf, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedValueFvPatchScalarField(nrwfpsf, iF), - Ks_(nrwfpsf.Ks_), - Cs_(nrwfpsf.Cs_) -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void nutRoughWallFunctionFvPatchScalarField::autoMap -( - const fvPatchFieldMapper& m -) -{ - fixedValueFvPatchScalarField::autoMap(m); - Ks_.autoMap(m); - Cs_.autoMap(m); -} - - -void nutRoughWallFunctionFvPatchScalarField::rmap -( - const fvPatchScalarField& ptf, - const labelList& addr -) -{ - fixedValueFvPatchScalarField::rmap(ptf, addr); - - const nutRoughWallFunctionFvPatchScalarField& nrwfpsf = - refCast<const nutRoughWallFunctionFvPatchScalarField>(ptf); - - Cs_.rmap(nrwfpsf.Cs_, addr); - Ks_.rmap(nrwfpsf.Ks_, addr); -} - - -void nutRoughWallFunctionFvPatchScalarField::updateCoeffs() -{ - const RASModel& ras = db().lookupObject<RASModel>("RASProperties"); - - const scalar Cmu = ras.Cmu().value(); - const scalar Cmu25 = pow(Cmu, 0.25); - const scalar kappa = ras.kappa().value(); - const scalar E = ras.E().value(); - scalar yPlusLam = ras.yPlusLam(); - - const scalarField& y = ras.y()[patch().index()]; - - const scalarField& k = db().lookupObject<volScalarField>("k"); - - const scalarField& nuw = - patch().lookupPatchField<volScalarField, scalar>("nu"); - - scalarField& nutw = *this; - - forAll(nutw, faceI) - { - label faceCellI = patch().faceCells()[faceI]; - - scalar uStar = Cmu25*sqrt(k[faceCellI]); - - scalar yPlus = uStar*y[faceI]/nuw[faceI]; - - scalar KsPlus = uStar*Ks_[faceI]/nuw[faceI]; - - scalar Edash = E; - scalar yPlusLamNew = yPlusLam; - if (KsPlus > 2.25) - { - Edash = E/fnRough(KsPlus, Cs_[faceI], kappa); - yPlusLam = ras.yPlusLam(kappa, Edash); - } - - if (debug) - { - Info<< "yPlus = " << yPlus - << ", KsPlus = " << KsPlus - << ", Edash = " << Edash - << ", yPlusLam = " << yPlusLam - << endl; - } - - if (yPlus > yPlusLamNew) - { - nutw[faceI] = nuw[faceI]*(yPlus*kappa/log(Edash*yPlus) - 1); - } - else - { - nutw[faceI] = 0.0; - } - } -} - - -void nutRoughWallFunctionFvPatchScalarField::write(Ostream& os) const -{ - fvPatchField<scalar>::write(os); - Cs_.writeEntry("Cs", os); - Ks_.writeEntry("Ks", os); - writeEntry("value", os); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -makePatchTypeField(fvPatchScalarField, nutRoughWallFunctionFvPatchScalarField); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutRoughWallFunction/nutRoughWallFunctionFvPatchScalarField.H b/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutRoughWallFunction/nutRoughWallFunctionFvPatchScalarField.H deleted file mode 100644 index 299e55cc03c..00000000000 --- a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutRoughWallFunction/nutRoughWallFunctionFvPatchScalarField.H +++ /dev/null @@ -1,194 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::RASModels::nutRoughWallFunctionFvPatchScalarField - -Description - Boundary condition for turbulent (kinematic) viscosity when using wall - functions for rough walls. - - Manipulates the E parameter to account for roughness effects, based on - KsPlus. - - - roughness height = sand-grain roughness (0 for smooth walls) - - roughness constant = 0.5-1.0 (0.5 default) - -SourceFiles - nutRoughWallFunctionFvPatchScalarField.C - -\*---------------------------------------------------------------------------*/ - -#ifndef nutRoughWallFunctionFvPatchScalarField_H -#define nutRoughWallFunctionFvPatchScalarField_H - -#include "fixedValueFvPatchFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class nutRoughWallFunctionFvPatchScalarField Declaration -\*---------------------------------------------------------------------------*/ - -class nutRoughWallFunctionFvPatchScalarField -: - public fixedValueFvPatchScalarField -{ - // Private data - - //- Roughness height - scalarField Ks_; - - //- Roughness constant - scalarField Cs_; - - - // Private member functions - - //- Compute the roughness function - scalar fnRough - ( - const scalar KsPlus, - const scalar Cs, - const scalar kappa - ) const; - - -public: - - //- Runtime type information - TypeName("nutRoughWallFunction"); - - - // Constructors - - //- Construct from patch and internal field - nutRoughWallFunctionFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct from patch, internal field and dictionary - nutRoughWallFunctionFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const dictionary& - ); - - //- Construct by mapping given - // nutRoughWallFunctionFvPatchScalarField - // onto a new patch - nutRoughWallFunctionFvPatchScalarField - ( - const nutRoughWallFunctionFvPatchScalarField&, - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const fvPatchFieldMapper& - ); - - //- Construct as copy - nutRoughWallFunctionFvPatchScalarField - ( - const nutRoughWallFunctionFvPatchScalarField& - ); - - //- Construct and return a clone - virtual tmp<fvPatchScalarField> clone() const - { - return tmp<fvPatchScalarField> - ( - new nutRoughWallFunctionFvPatchScalarField(*this) - ); - } - - //- Construct as copy setting internal field reference - nutRoughWallFunctionFvPatchScalarField - ( - const nutRoughWallFunctionFvPatchScalarField&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct and return a clone setting internal field reference - virtual tmp<fvPatchScalarField> clone - ( - const DimensionedField<scalar, volMesh>& iF - ) const - { - return tmp<fvPatchScalarField> - ( - new nutRoughWallFunctionFvPatchScalarField(*this, iF) - ); - } - - - // Member functions - - // Mapping functions - - //- Map (and resize as needed) from self given a mapping object - virtual void autoMap - ( - const fvPatchFieldMapper& - ); - - //- Reverse map the given fvPatchField onto this fvPatchField - virtual void rmap - ( - const fvPatchScalarField&, - const labelList& - ); - - // Evaluation functions - - //- Update the coefficients associated with the patch field - virtual void updateCoeffs(); - - - // I-O - - //- Write - void write(Ostream&) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardRoughWallFunction/nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.C b/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardRoughWallFunction/nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.C deleted file mode 100644 index 0455576df4d..00000000000 --- a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardRoughWallFunction/nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.C +++ /dev/null @@ -1,302 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.H" -#include "RASModel.H" -#include "fvPatchFieldMapper.H" -#include "volFields.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField:: -nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedValueFvPatchScalarField(p, iF), - roughnessHeight_(pTraits<scalar>::zero), - roughnessConstant_(pTraits<scalar>::zero), - roughnessFudgeFactor_(pTraits<scalar>::zero) -{} - - -nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField:: -nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField -( - const nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField& ptf, - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const fvPatchFieldMapper& mapper -) -: - fixedValueFvPatchScalarField(ptf, p, iF, mapper), - roughnessHeight_(ptf.roughnessHeight_), - roughnessConstant_(ptf.roughnessConstant_), - roughnessFudgeFactor_(ptf.roughnessFudgeFactor_) -{} - - -nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField:: -nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const dictionary& dict -) -: - fixedValueFvPatchScalarField(p, iF, dict), - roughnessHeight_(readScalar(dict.lookup("roughnessHeight"))), - roughnessConstant_(readScalar(dict.lookup("roughnessConstant"))), - roughnessFudgeFactor_(readScalar(dict.lookup("roughnessFudgeFactor"))) -{} - - -nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField:: -nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField -( - const nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField& tppsf -) -: - fixedValueFvPatchScalarField(tppsf), - roughnessHeight_(tppsf.roughnessHeight_), - roughnessConstant_(tppsf.roughnessConstant_), - roughnessFudgeFactor_(tppsf.roughnessFudgeFactor_) -{} - - -nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField:: -nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField -( - const nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField& tppsf, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedValueFvPatchScalarField(tppsf, iF), - roughnessHeight_(tppsf.roughnessHeight_), - roughnessConstant_(tppsf.roughnessConstant_), - roughnessFudgeFactor_(tppsf.roughnessFudgeFactor_) -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField::evaluate -( - const Pstream::commsTypes -) -{ - const RASModel& ras = db().lookupObject<RASModel>("RASProperties"); - - const scalar kappa = ras.kappa().value(); - const scalar E = ras.E().value(); - const scalar yPlusLam = 11.225; - - // The reciprical of the distance to the adjacent cell centre. - const scalarField& ry = patch().deltaCoeffs(); - - const fvPatchVectorField& U = - patch().lookupPatchField<volVectorField, vector>("U"); - - // The flow velocity at the adjacent cell centre. - scalarField magUp = mag(U.patchInternalField() - U); - - const scalarField& nuw = - patch().lookupPatchField<volScalarField, scalar>("nu"); - scalarField& nutw = *this; - - scalarField magFaceGradU = mag(U.snGrad()); - - if (roughnessHeight_ > 0.0) - { - // Rough Walls. - const scalar c_1 = 1/(90 - 2.25) + roughnessConstant_; - static const scalar c_2 = 2.25/(90 - 2.25); - static const scalar c_3 = 2.0*atan(1.0)/log(90/2.25); - static const scalar c_4 = c_3*log(2.25); - - //if (KsPlusBasedOnYPlus_) - { - // If KsPlus is based on YPlus the extra term added to the law - // of the wall will depend on yPlus. - forAll(nutw, facei) - { - const scalar magUpara = magUp[facei]; - const scalar Re = magUpara/(nuw[facei]*ry[facei]); - const scalar kappaRe = kappa*Re; - - scalar yPlus = yPlusLam; - const scalar ryPlusLam = 1.0/yPlus; - - int iter = 0; - scalar yPlusLast = 0.0; - scalar dKsPlusdYPlus = roughnessHeight_*ry[facei]; - - // Enforce the roughnessHeight to be less than the distance to - // the first cell centre. - if(dKsPlusdYPlus > 1) - { - dKsPlusdYPlus = 1; - } - - // Fudge factor to get results to be similar to fluent - // (at least difference between rough and smooth). - dKsPlusdYPlus *= roughnessFudgeFactor_; - - do - { - yPlusLast = yPlus; - - // The non-dimensional roughness height. - scalar KsPlus = yPlus*dKsPlusdYPlus; - - // The extra term in the law-of-the-wall. - scalar G = 0.0; - - scalar yPlusGPrime = 0.0; - - if (KsPlus >= 90) - { - const scalar t_1 = 1 + roughnessConstant_*KsPlus; - G = log(t_1); - yPlusGPrime = roughnessConstant_*KsPlus/t_1; - } - else if (KsPlus > 2.25) - { - const scalar t_1 = c_1*KsPlus - c_2; - const scalar t_2 = c_3*log(KsPlus) - c_4; - const scalar sint_2 = sin(t_2); - const scalar logt_1 = log(t_1); - G = logt_1*sint_2; - yPlusGPrime = - (c_1*sint_2*KsPlus/t_1) + (c_3*logt_1*cos(t_2)); - } - - scalar denom = 1.0 + log(E* yPlus) - G - yPlusGPrime; - if (mag(denom) > VSMALL) - { - yPlus = (kappaRe + yPlus*(1 - yPlusGPrime))/denom; - } - else - { - // Ensure immediate end and nutw = 0. - yPlus = 0; - } - - } while - ( - mag(ryPlusLam*(yPlus - yPlusLast)) > 0.0001 - && ++iter < 10 - && yPlus > VSMALL - ); - - if (yPlus > yPlusLam) - { - nutw[facei] = nuw[facei]*(yPlus*yPlus/Re - 1); - } - else - { - nutw[facei] = 0.0; - } - } - } - } - else - { - // Smooth Walls. - forAll(nutw, facei) - { - const scalar magUpara = magUp[facei]; - const scalar Re = magUpara/(nuw[facei]*ry[facei]); - const scalar kappaRe = kappa*Re; - - scalar yPlus = yPlusLam; - const scalar ryPlusLam = 1.0/yPlus; - - int iter = 0; - scalar yPlusLast = 0.0; - - do - { - yPlusLast = yPlus; - yPlus = (kappaRe + yPlus)/(1.0 + log(E*yPlus)); - - } while(mag(ryPlusLam*(yPlus - yPlusLast)) > 0.0001 && ++iter < 10); - - if (yPlus > yPlusLam) - { - nutw[facei] = nuw[facei]*(yPlus*yPlus/Re - 1); - } - else - { - nutw[facei] = 0.0; - } - } - } -} - - -void nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField::write -( - Ostream& os -) const -{ - fixedValueFvPatchScalarField::write(os); - os.writeKeyword("roughnessHeight") - << roughnessHeight_ << token::END_STATEMENT << nl; - os.writeKeyword("roughnessConstant") - << roughnessConstant_ << token::END_STATEMENT << nl; - os.writeKeyword("roughnessFudgeFactor") - << roughnessFudgeFactor_ << token::END_STATEMENT << nl; -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -makePatchTypeField -( - fvPatchScalarField, - nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField -); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardRoughWallFunction/nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.H b/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardRoughWallFunction/nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.H deleted file mode 100644 index 2806288b2a9..00000000000 --- a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardRoughWallFunction/nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField.H +++ /dev/null @@ -1,208 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::RASModels:: - nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField - -Description - Wall function boundary condition for rough walls - -SourceFiles - nutSpalartAllmarasStandardWallFunctionFvPatchScalarField.C - -\*---------------------------------------------------------------------------*/ - -#ifndef nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField_H -#define nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField_H - -#include "fixedValueFvPatchFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ -Class nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField Declaration -\*---------------------------------------------------------------------------*/ - -class nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField -: - public fixedValueFvPatchScalarField -{ - // Private data - - scalar roughnessHeight_; - scalar roughnessConstant_; - scalar roughnessFudgeFactor_; - - -public: - - //- Runtime type information - TypeName("nutSpalartAllmarasStandardRoughWallFunction"); - - - // Constructors - - //- Construct from patch and internal field - nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct from patch, internal field and dictionary - nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const dictionary& - ); - - //- Construct by mapping given - // nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField - // onto a new patch - nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField - ( - const nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField&, - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const fvPatchFieldMapper& - ); - - //- Construct as copy - nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField - ( - const nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField& - ); - - //- Construct and return a clone - virtual tmp<fvPatchScalarField> clone() const - { - return tmp<fvPatchScalarField> - ( - new nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField - ( - *this - ) - ); - } - - //- Construct as copy setting internal field reference - nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField - ( - const nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct and return a clone setting internal field reference - virtual tmp<fvPatchScalarField> clone - ( - const DimensionedField<scalar, volMesh>& iF - ) const - { - return tmp<fvPatchScalarField> - ( - new nutSpalartAllmarasStandardRoughWallFunctionFvPatchScalarField - ( - *this, - iF - ) - ); - } - - - // Member functions - - // Access - - //- Return the fluctuation scale - const scalar& roughnessHeight() const - { - return roughnessHeight_; - } - - //- Return reference to the fluctuation scale to allow adjustment - scalar& roughnessHeight() - { - return roughnessHeight_; - } - - - //- Return the fluctuation scale - const scalar& roughnessConstant() const - { - return roughnessConstant_; - } - - //- Return reference to the fluctuation scale to allow adjustment - scalar& roughnessConstant() - { - return roughnessConstant_; - } - - //- Return the fluctuation scale - const scalar& roughnessFudgeFactor() const - { - return roughnessFudgeFactor_; - } - - //- Return reference to the fluctuation scale to allow adjustment - scalar& roughnessFudgeFactor() - { - return roughnessFudgeFactor_; - } - - - // Evaluation functions - - //- Evaluate the patchField - virtual void evaluate - ( - const Pstream::commsTypes commsType=Pstream::blocking - ); - - - //- Write - virtual void write(Ostream& os) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardWallFunction/nutSpalartAllmarasStandardWallFunctionFvPatchScalarField.C b/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardWallFunction/nutSpalartAllmarasStandardWallFunctionFvPatchScalarField.C deleted file mode 100644 index c60e065f052..00000000000 --- a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardWallFunction/nutSpalartAllmarasStandardWallFunctionFvPatchScalarField.C +++ /dev/null @@ -1,172 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "nutSpalartAllmarasStandardWallFunctionFvPatchScalarField.H" -#include "RASModel.H" -#include "fvPatchFieldMapper.H" -#include "volFields.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -nutSpalartAllmarasStandardWallFunctionFvPatchScalarField:: -nutSpalartAllmarasStandardWallFunctionFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedValueFvPatchScalarField(p, iF) -{} - - -nutSpalartAllmarasStandardWallFunctionFvPatchScalarField:: -nutSpalartAllmarasStandardWallFunctionFvPatchScalarField -( - const nutSpalartAllmarasStandardWallFunctionFvPatchScalarField& ptf, - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const fvPatchFieldMapper& mapper -) -: - fixedValueFvPatchScalarField(ptf, p, iF, mapper) -{} - - -nutSpalartAllmarasStandardWallFunctionFvPatchScalarField:: -nutSpalartAllmarasStandardWallFunctionFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const dictionary& dict -) -: - fixedValueFvPatchScalarField(p, iF, dict) -{} - - -nutSpalartAllmarasStandardWallFunctionFvPatchScalarField:: -nutSpalartAllmarasStandardWallFunctionFvPatchScalarField -( - const nutSpalartAllmarasStandardWallFunctionFvPatchScalarField& tppsf -) -: - fixedValueFvPatchScalarField(tppsf) -{} - - -nutSpalartAllmarasStandardWallFunctionFvPatchScalarField:: -nutSpalartAllmarasStandardWallFunctionFvPatchScalarField -( - const nutSpalartAllmarasStandardWallFunctionFvPatchScalarField& tppsf, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedValueFvPatchScalarField(tppsf, iF) -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void nutSpalartAllmarasStandardWallFunctionFvPatchScalarField::evaluate -( - const Pstream::commsTypes -) -{ - const RASModel& ras = db().lookupObject<RASModel>("RASProperties"); - - scalar kappa = ras.kappa().value(); - scalar E = ras.E().value(); - scalar yPlusLam = ras.yPlusLam(); - - const scalarField& ry = patch().deltaCoeffs(); - - const fvPatchVectorField& U = - patch().lookupPatchField<volVectorField, vector>("U"); - - scalarField magUp = mag(U.patchInternalField() - U); - - const scalarField& nuw = - patch().lookupPatchField<volScalarField, scalar>("nu"); - scalarField& nutw = *this; - - scalarField magFaceGradU = mag(U.snGrad()); - - forAll(nutw, facei) - { - scalar magUpara = magUp[facei]; - - scalar kappaRe = kappa*magUpara/(nuw[facei]*ry[facei]); - - scalar yPlus = yPlusLam; - scalar ryPlusLam = 1.0/yPlus; - - int iter = 0; - scalar yPlusLast = 0.0; - - do - { - yPlusLast = yPlus; - yPlus = (kappaRe + yPlus)/(1.0 + log(E*yPlus)); - - } while(mag(ryPlusLam*(yPlus - yPlusLast)) > 0.01 && ++iter < 10 ); - - if (yPlus > yPlusLam) - { - nutw[facei] = nuw[facei]*(yPlus*kappa/log(E*yPlus) - 1); - } - else - { - nutw[facei] = 0.0; - } - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -makePatchTypeField -( - fvPatchScalarField, - nutSpalartAllmarasStandardWallFunctionFvPatchScalarField -); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardWallFunction/nutSpalartAllmarasStandardWallFunctionFvPatchScalarField.H b/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardWallFunction/nutSpalartAllmarasStandardWallFunctionFvPatchScalarField.H deleted file mode 100644 index 51ecc156f76..00000000000 --- a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasStandardWallFunction/nutSpalartAllmarasStandardWallFunctionFvPatchScalarField.H +++ /dev/null @@ -1,160 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::RASModels:: - nutSpalartAllmarasStandardWallFunctionFvPatchScalarField - -Description - Wall function boundary condition for walls - -SourceFiles - nutSpalartAllmarasStandardWallFunctionFvPatchScalarField.C - -\*---------------------------------------------------------------------------*/ - -#ifndef nutSpalartAllmarasStandardWallFunctionFvPatchScalarField_H -#define nutSpalartAllmarasStandardWallFunctionFvPatchScalarField_H - -#include "fixedValueFvPatchFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class nutSpalartAllmarasStandardWallFunctionFvPatchScalarField Declaration -\*---------------------------------------------------------------------------*/ - -class nutSpalartAllmarasStandardWallFunctionFvPatchScalarField -: - public fixedValueFvPatchScalarField -{ - // Private data - - -public: - - //- Runtime type information - TypeName("nutSpalartAllmarasStandardWallFunction"); - - - // Constructors - - //- Construct from patch and internal field - nutSpalartAllmarasStandardWallFunctionFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct from patch, internal field and dictionary - nutSpalartAllmarasStandardWallFunctionFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const dictionary& - ); - - //- Construct by mapping given - // nutSpalartAllmarasStandardWallFunctionFvPatchScalarField - // onto a new patch - nutSpalartAllmarasStandardWallFunctionFvPatchScalarField - ( - const nutSpalartAllmarasStandardWallFunctionFvPatchScalarField&, - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const fvPatchFieldMapper& - ); - - //- Construct as copy - nutSpalartAllmarasStandardWallFunctionFvPatchScalarField - ( - const nutSpalartAllmarasStandardWallFunctionFvPatchScalarField& - ); - - //- Construct and return a clone - virtual tmp<fvPatchScalarField> clone() const - { - return tmp<fvPatchScalarField> - ( - new nutSpalartAllmarasStandardWallFunctionFvPatchScalarField - ( - *this - ) - ); - } - - //- Construct as copy setting internal field reference - nutSpalartAllmarasStandardWallFunctionFvPatchScalarField - ( - const nutSpalartAllmarasStandardWallFunctionFvPatchScalarField&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct and return a clone setting internal field reference - virtual tmp<fvPatchScalarField> clone - ( - const DimensionedField<scalar, volMesh>& iF - ) const - { - return tmp<fvPatchScalarField> - ( - new nutSpalartAllmarasStandardWallFunctionFvPatchScalarField - ( - *this, - iF - ) - ); - } - - - // Member functions - - // Evaluation functions - - //- Evaluate the patchField - virtual void evaluate - ( - const Pstream::commsTypes commsType=Pstream::blocking - ); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasWallFunction/nutSpalartAllmarasWallFunctionFvPatchScalarField.C b/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasWallFunction/nutSpalartAllmarasWallFunctionFvPatchScalarField.C deleted file mode 100644 index 6e37a19949a..00000000000 --- a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasWallFunction/nutSpalartAllmarasWallFunctionFvPatchScalarField.C +++ /dev/null @@ -1,180 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "nutSpalartAllmarasWallFunctionFvPatchScalarField.H" -#include "RASModel.H" -#include "fvPatchFieldMapper.H" -#include "volFields.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -nutSpalartAllmarasWallFunctionFvPatchScalarField:: -nutSpalartAllmarasWallFunctionFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedValueFvPatchScalarField(p, iF) -{} - - -nutSpalartAllmarasWallFunctionFvPatchScalarField:: -nutSpalartAllmarasWallFunctionFvPatchScalarField -( - const nutSpalartAllmarasWallFunctionFvPatchScalarField& ptf, - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const fvPatchFieldMapper& mapper -) -: - fixedValueFvPatchScalarField(ptf, p, iF, mapper) -{} - - -nutSpalartAllmarasWallFunctionFvPatchScalarField:: -nutSpalartAllmarasWallFunctionFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const dictionary& dict -) -: - fixedValueFvPatchScalarField(p, iF, dict) -{} - - -nutSpalartAllmarasWallFunctionFvPatchScalarField:: -nutSpalartAllmarasWallFunctionFvPatchScalarField -( - const nutSpalartAllmarasWallFunctionFvPatchScalarField& tppsf -) -: - fixedValueFvPatchScalarField(tppsf) -{} - - -nutSpalartAllmarasWallFunctionFvPatchScalarField:: -nutSpalartAllmarasWallFunctionFvPatchScalarField -( - const nutSpalartAllmarasWallFunctionFvPatchScalarField& tppsf, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedValueFvPatchScalarField(tppsf, iF) -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void nutSpalartAllmarasWallFunctionFvPatchScalarField::evaluate -( - const Pstream::commsTypes -) -{ - const RASModel& ras = db().lookupObject<RASModel>("RASProperties"); - - scalar kappa = ras.kappa().value(); - scalar E = ras.E().value(); - - const scalarField& ry = patch().deltaCoeffs(); - - const fvPatchVectorField& U = - patch().lookupPatchField<volVectorField, vector>("U"); - - scalarField magUp = mag(U.patchInternalField() - U); - - const scalarField& nuw = - patch().lookupPatchField<volScalarField, scalar>("nu"); - - scalarField& nutw = *this; - - scalarField magFaceGradU = mag(U.snGrad()); - - forAll(nutw, facei) - { - scalar magUpara = magUp[facei]; - - scalar utau = sqrt((nutw[facei] + nuw[facei])*magFaceGradU[facei]); - - if (utau > VSMALL) - { - int iter = 0; - scalar err = GREAT; - - do - { - scalar kUu = min(kappa*magUpara/utau, 50); - scalar fkUu = exp(kUu) - 1 - kUu*(1 + 0.5*kUu); - - scalar f = - - utau/(ry[facei]*nuw[facei]) - + magUpara/utau - + 1/E*(fkUu - 1.0/6.0*kUu*sqr(kUu)); - - scalar df = - 1.0/(ry[facei]*nuw[facei]) - + magUpara/sqr(utau) - + 1/E*kUu*fkUu/utau; - - scalar utauNew = utau + f/df; - err = mag((utau - utauNew)/utau); - utau = utauNew; - - } while (utau > VSMALL && err > 0.01 && ++iter < 10); - - nutw[facei] = - max(sqr(max(utau, 0))/magFaceGradU[facei] - nuw[facei], 0.0); - } - else - { - nutw[facei] = 0; - } - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -makePatchTypeField(fvPatchScalarField, nutSpalartAllmarasWallFunctionFvPatchScalarField); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasWallFunction/nutSpalartAllmarasWallFunctionFvPatchScalarField.H b/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasWallFunction/nutSpalartAllmarasWallFunctionFvPatchScalarField.H deleted file mode 100644 index 70f1107de3d..00000000000 --- a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutSpalartAllmarasWallFunction/nutSpalartAllmarasWallFunctionFvPatchScalarField.H +++ /dev/null @@ -1,153 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::RASModels:: - nutSpalartAllmarasWallFunctionFvPatchScalarField - -Description - Wall function boundary condition for walls - -SourceFiles - nutSpalartAllmarasWallFunctionFvPatchScalarField.C - -\*---------------------------------------------------------------------------*/ - -#ifndef nutSpalartAllmarasWallFunctionFvPatchScalarField_H -#define nutSpalartAllmarasWallFunctionFvPatchScalarField_H - -#include "fixedValueFvPatchFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class nutSpalartAllmarasWallFunctionFvPatch Declaration -\*---------------------------------------------------------------------------*/ - -class nutSpalartAllmarasWallFunctionFvPatchScalarField -: - public fixedValueFvPatchScalarField -{ - // Private data - - -public: - - //- Runtime type information - TypeName("nutSpalartAllmarasWallFunction"); - - - // Constructors - - //- Construct from patch and internal field - nutSpalartAllmarasWallFunctionFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct from patch, internal field and dictionary - nutSpalartAllmarasWallFunctionFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const dictionary& - ); - - //- Construct by mapping given - // nutSpalartAllmarasWallFunctionFvPatchScalarField - // onto a new patch - nutSpalartAllmarasWallFunctionFvPatchScalarField - ( - const nutSpalartAllmarasWallFunctionFvPatchScalarField&, - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const fvPatchFieldMapper& - ); - - //- Construct as copy - nutSpalartAllmarasWallFunctionFvPatchScalarField - ( - const nutSpalartAllmarasWallFunctionFvPatchScalarField& - ); - - //- Construct and return a clone - virtual tmp<fvPatchScalarField> clone() const - { - return tmp<fvPatchScalarField> - ( - new nutSpalartAllmarasWallFunctionFvPatchScalarField(*this) - ); - } - - //- Construct as copy setting internal field reference - nutSpalartAllmarasWallFunctionFvPatchScalarField - ( - const nutSpalartAllmarasWallFunctionFvPatchScalarField&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct and return a clone setting internal field reference - virtual tmp<fvPatchScalarField> clone - ( - const DimensionedField<scalar, volMesh>& iF - ) const - { - return tmp<fvPatchScalarField> - ( - new nutSpalartAllmarasWallFunctionFvPatchScalarField(*this, iF) - ); - } - - - // Member functions - - // Evaluation functions - - //- Evaluate the patchField - virtual void evaluate - ( - const Pstream::commsTypes commsType=Pstream::blocking - ); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.C b/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.C deleted file mode 100644 index d86963a7921..00000000000 --- a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.C +++ /dev/null @@ -1,157 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "nutWallFunctionFvPatchScalarField.H" -#include "RASModel.H" -#include "fvPatchFieldMapper.H" -#include "volFields.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -nutWallFunctionFvPatchScalarField:: -nutWallFunctionFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedValueFvPatchScalarField(p, iF) -{} - - -nutWallFunctionFvPatchScalarField:: -nutWallFunctionFvPatchScalarField -( - const nutWallFunctionFvPatchScalarField& ptf, - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const fvPatchFieldMapper& mapper -) -: - fixedValueFvPatchScalarField(ptf, p, iF, mapper) -{} - - -nutWallFunctionFvPatchScalarField:: -nutWallFunctionFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const dictionary& dict -) -: - fixedValueFvPatchScalarField(p, iF, dict) -{} - - -nutWallFunctionFvPatchScalarField:: -nutWallFunctionFvPatchScalarField -( - const nutWallFunctionFvPatchScalarField& tppsf -) -: - fixedValueFvPatchScalarField(tppsf) -{} - - -nutWallFunctionFvPatchScalarField:: -nutWallFunctionFvPatchScalarField -( - const nutWallFunctionFvPatchScalarField& tppsf, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedValueFvPatchScalarField(tppsf, iF) -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void nutWallFunctionFvPatchScalarField::updateCoeffs() -{ - const RASModel& ras = db().lookupObject<RASModel>("RASProperties"); - - const scalar Cmu = ras.Cmu().value(); - const scalar Cmu25 = pow(Cmu, 0.25); - const scalar kappa = ras.kappa().value(); - const scalar E = ras.E().value(); - const scalar yPlusLam = ras.yPlusLam(); - - const scalarField& y = ras.y()[patch().index()]; - - const volScalarField& k = db().lookupObject<volScalarField>("k"); - - const scalarField& nuw = - patch().lookupPatchField<volScalarField, scalar>("nu"); - - scalarField& nutw = *this; - - forAll(nutw, faceI) - { - label faceCellI = patch().faceCells()[faceI]; - - scalar yPlus = Cmu25*y[faceI]*sqrt(k[faceCellI])/nuw[faceI]; - - if (yPlus > yPlusLam) - { - nutw[faceI] = nuw[faceI]*(yPlus*kappa/log(E*yPlus) - 1); - } - else - { - nutw[faceI] = 0.0; - } - } -} - - -void nutWallFunctionFvPatchScalarField::write(Ostream& os) const -{ - fvPatchField<scalar>::write(os); - writeEntry("value", os); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -makePatchTypeField(fvPatchScalarField, nutWallFunctionFvPatchScalarField); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.H b/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.H deleted file mode 100644 index ffb370608ab..00000000000 --- a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/nutWallFunctions/nutWallFunction/nutWallFunctionFvPatchScalarField.H +++ /dev/null @@ -1,155 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::RASModels::nutWallFunctionFvPatchScalarField - -Description - Boundary condition for turbulent (kinematic) viscosity when using wall - functions - - replicates OpenFOAM v1.5 (and earlier) behaviour - -SourceFiles - nutWallFunctionFvPatchScalarField.C - -\*---------------------------------------------------------------------------*/ - -#ifndef nutWallFunctionFvPatchScalarField_H -#define nutWallFunctionFvPatchScalarField_H - -#include "fixedValueFvPatchFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class nutWallFunctionFvPatchScalarField Declaration -\*---------------------------------------------------------------------------*/ - -class nutWallFunctionFvPatchScalarField -: - public fixedValueFvPatchScalarField -{ - -public: - - //- Runtime type information - TypeName("nutWallFunction"); - - - // Constructors - - //- Construct from patch and internal field - nutWallFunctionFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct from patch, internal field and dictionary - nutWallFunctionFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const dictionary& - ); - - //- Construct by mapping given - // nutWallFunctionFvPatchScalarField - // onto a new patch - nutWallFunctionFvPatchScalarField - ( - const nutWallFunctionFvPatchScalarField&, - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const fvPatchFieldMapper& - ); - - //- Construct as copy - nutWallFunctionFvPatchScalarField - ( - const nutWallFunctionFvPatchScalarField& - ); - - //- Construct and return a clone - virtual tmp<fvPatchScalarField> clone() const - { - return tmp<fvPatchScalarField> - ( - new nutWallFunctionFvPatchScalarField(*this) - ); - } - - //- Construct as copy setting internal field reference - nutWallFunctionFvPatchScalarField - ( - const nutWallFunctionFvPatchScalarField&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct and return a clone setting internal field reference - virtual tmp<fvPatchScalarField> clone - ( - const DimensionedField<scalar, volMesh>& iF - ) const - { - return tmp<fvPatchScalarField> - ( - new nutWallFunctionFvPatchScalarField(*this, iF) - ); - } - - - // Member functions - - // Evaluation functions - - //- Update the coefficients associated with the patch field - virtual void updateCoeffs(); - - - // I-O - - //- Write - void write(Ostream&) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.C b/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.C deleted file mode 100644 index 84793a2c420..00000000000 --- a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.C +++ /dev/null @@ -1,204 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "omegaWallFunctionFvPatchScalarField.H" -#include "RASModel.H" -#include "fvPatchFieldMapper.H" -#include "volFields.H" -#include "addToRunTimeSelectionTable.H" -#include "wallFvPatch.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // - -void omegaWallFunctionFvPatchScalarField::checkType() -{ - if (!isA<wallFvPatch>(patch())) - { - FatalErrorIn("omegaWallFunctionFvPatchScalarField::checkType()") - << "Invalid wall function specification" << nl - << " Patch type for patch " << patch().name() - << " must be wall" << nl - << " Current patch type is " << patch().type() << nl << endl - << abort(FatalError); - } -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedInternalValueFvPatchField<scalar>(p, iF) -{ - checkType(); -} - - -omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField -( - const omegaWallFunctionFvPatchScalarField& ptf, - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const fvPatchFieldMapper& mapper -) -: - fixedInternalValueFvPatchField<scalar>(ptf, p, iF, mapper) -{ - checkType(); -} - - -omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField -( - const fvPatch& p, - const DimensionedField<scalar, volMesh>& iF, - const dictionary& dict -) -: - fixedInternalValueFvPatchField<scalar>(p, iF, dict) -{ - checkType(); -} - - -omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField -( - const omegaWallFunctionFvPatchScalarField& ewfpsf -) -: - fixedInternalValueFvPatchField<scalar>(ewfpsf) -{ - checkType(); -} - - -omegaWallFunctionFvPatchScalarField::omegaWallFunctionFvPatchScalarField -( - const omegaWallFunctionFvPatchScalarField& ewfpsf, - const DimensionedField<scalar, volMesh>& iF -) -: - fixedInternalValueFvPatchField<scalar>(ewfpsf, iF) -{ - checkType(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -void omegaWallFunctionFvPatchScalarField::updateCoeffs() -{ - const RASModel& ras = db().lookupObject<RASModel>("RASProperties"); - - const scalar Cmu = ras.Cmu().value(); - const scalar Cmu25 = pow(Cmu, 0.25); - - const scalar kappa = ras.kappa().value(); - const scalar yPlusLam = ras.yPlusLam(); - - const scalarField& y = ras.y()[patch().index()]; - - volScalarField& G = const_cast<volScalarField&> - (db().lookupObject<volScalarField>("G")); - - volScalarField& omega = const_cast<volScalarField&> - (db().lookupObject<volScalarField>("omega")); - - const scalarField& k = db().lookupObject<volScalarField>("k"); - - const scalarField& nuw = - patch().lookupPatchField<volScalarField, scalar>("nu"); - - const scalarField& nutw = - patch().lookupPatchField<volScalarField, scalar>("nut"); - - const fvPatchVectorField& Uw = - patch().lookupPatchField<volVectorField, vector>("U"); - - const scalarField magGradUw = mag(Uw.snGrad()); - - // Set epsilon and G - forAll(nutw, faceI) - { - label faceCellI = patch().faceCells()[faceI]; - - scalar yPlus = Cmu25*y[faceI]*sqrt(k[faceCellI])/nuw[faceI]; - - omega[faceCellI] = sqrt(k[faceCellI])/(Cmu25*kappa*y[faceI]); - - if (yPlus > yPlusLam) - { - G[faceCellI] = - (nutw[faceI] + nuw[faceI]) - *magGradUw[faceI] - *Cmu25*sqrt(k[faceCellI]) - /(kappa*y[faceI]); - } - else - { - G[faceCellI] = 0.0; - } - } - - // TODO: perform averaging for cells sharing more than one boundary face -} - - -void omegaWallFunctionFvPatchScalarField::write(Ostream& os) const -{ - fixedInternalValueFvPatchField<scalar>::write(os); - writeEntry("value", os); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -makePatchTypeField -( - fvPatchScalarField, - omegaWallFunctionFvPatchScalarField -); - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H b/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H deleted file mode 100644 index 37c8d90188a..00000000000 --- a/src/turbulenceModels/RAS/incompressible/derivedFvPatchFields/wallFunctions/omegaWallFunctions/omegaWallFunction/omegaWallFunctionFvPatchScalarField.H +++ /dev/null @@ -1,159 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2007 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::RASModels::omegaWallFunctionFvPatchScalarField - -Description - Replaces functionality in wallFunctionsI.H - -SourceFiles - omegaWallFunctionFvPatchScalarField.C - -\*---------------------------------------------------------------------------*/ - -#ifndef omegaWallFunctionFvPatchScalarField_H -#define omegaWallFunctionFvPatchScalarField_H - -#include "fixedInternalValueFvPatchField.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class omegaWallFunctionFvPatchScalarField Declaration -\*---------------------------------------------------------------------------*/ - -class omegaWallFunctionFvPatchScalarField -: - public fixedInternalValueFvPatchField<scalar> -{ - - // Private member functions - - //- Check the type of the patch - void checkType(); - - -public: - - //- Runtime type information - TypeName("omegaWallFunction"); - - - // Constructors - - //- Construct from patch and internal field - omegaWallFunctionFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct from patch, internal field and dictionary - omegaWallFunctionFvPatchScalarField - ( - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const dictionary& - ); - - //- Construct by mapping given - // omegaWallFunctionFvPatchScalarField - // onto a new patch - omegaWallFunctionFvPatchScalarField - ( - const omegaWallFunctionFvPatchScalarField&, - const fvPatch&, - const DimensionedField<scalar, volMesh>&, - const fvPatchFieldMapper& - ); - - //- Construct as copy - omegaWallFunctionFvPatchScalarField - ( - const omegaWallFunctionFvPatchScalarField& - ); - - //- Construct and return a clone - virtual tmp<fvPatchScalarField> clone() const - { - return tmp<fvPatchScalarField> - ( - new omegaWallFunctionFvPatchScalarField(*this) - ); - } - - //- Construct as copy setting internal field reference - omegaWallFunctionFvPatchScalarField - ( - const omegaWallFunctionFvPatchScalarField&, - const DimensionedField<scalar, volMesh>& - ); - - //- Construct and return a clone setting internal field reference - virtual tmp<fvPatchScalarField> clone - ( - const DimensionedField<scalar, volMesh>& iF - ) const - { - return tmp<fvPatchScalarField> - ( - new omegaWallFunctionFvPatchScalarField(*this, iF) - ); - } - - - // Member functions - - // Evaluation functions - - //- Update the coefficients associated with the patch field - virtual void updateCoeffs(); - - - // I-O - - //- Write - void write(Ostream&) const; -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/include/nonLinearWallFunctionsI.H b/src/turbulenceModels/RAS/incompressible/include/nonLinearWallFunctionsI.H deleted file mode 100644 index 2efc4efe966..00000000000 --- a/src/turbulenceModels/RAS/incompressible/include/nonLinearWallFunctionsI.H +++ /dev/null @@ -1,127 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Global - nonLinearwallFunctions - -Description - Calculate wall generation and dissipation from wall-functions - for non-linear models. - -\*---------------------------------------------------------------------------*/ - -{ - labelList cellBoundaryFaceCount(epsilon_.size(), 0); - - const fvPatchList& patches = mesh_.boundary(); - - //- Initialise the near-wall G and epsilon fields to zero - forAll(patches, patchi) - { - const fvPatch& curPatch = patches[patchi]; - - if (isType<wallFvPatch>(curPatch)) - { - forAll(curPatch, facei) - { - label faceCelli = curPatch.faceCells()[facei]; - - epsilon_[faceCelli] = 0.0; - G[faceCelli] = 0.0; - } - } - } - - //- Accumulate the wall face contributions to epsilon and G - // Increment cellBoundaryFaceCount for each face for averaging - forAll(patches, patchi) - { - const fvPatch& curPatch = patches[patchi]; - - if (isType<wallFvPatch>(curPatch)) - { -# include "checkPatchFieldTypes.H" - - const scalarField& nuw = nu().boundaryField()[patchi]; - const scalarField& nutw = nut_.boundaryField()[patchi]; - - scalarField magFaceGradU = mag(U_.boundaryField()[patchi].snGrad()); - - forAll(curPatch, facei) - { - label faceCelli = curPatch.faceCells()[facei]; - - //- using local Cmu ! - scalar Cmu25 = pow(Cmu_[faceCelli], 0.25); - scalar Cmu75 = pow(Cmu_[faceCelli], 0.75); - - scalar yPlus = - Cmu25*y_[patchi][facei] - *sqrt(k_[faceCelli]) - /nuw[facei]; - - // For corner cells (with two boundary or more faces), - // epsilon and G in the near-wall cell are calculated - // as an average - - cellBoundaryFaceCount[faceCelli]++; - - epsilon_[faceCelli] += - Cmu75*pow(k_[faceCelli], 1.5) - /(kappa_.value()*y_[patchi][facei]); - - if (yPlus > yPlusLam_) - { - G[faceCelli] += - (nutw[facei] + nuw[facei]) - *magFaceGradU[facei] - *Cmu25*sqrt(k_[faceCelli]) - /(kappa_.value()*y_[patchi][facei]) - - (nonlinearStress_[faceCelli] && gradU_[faceCelli]); - } - } - } - } - - // Perform the averaging - - forAll(patches, patchi) - { - const fvPatch& curPatch = patches[patchi]; - - if (isType<wallFvPatch>(curPatch)) - { - forAll(curPatch, facei) - { - label faceCelli = curPatch.faceCells()[facei]; - - epsilon_[faceCelli] /= cellBoundaryFaceCount[faceCelli]; - G[faceCelli] /= cellBoundaryFaceCount[faceCelli]; - } - } - } -} - - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/include/wallDissipationI.H b/src/turbulenceModels/RAS/incompressible/include/wallDissipationI.H deleted file mode 100644 index 5eb3f49171c..00000000000 --- a/src/turbulenceModels/RAS/incompressible/include/wallDissipationI.H +++ /dev/null @@ -1,51 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Global - wallDissipation - -Description - Set wall dissipation in the epsilon matrix - -\*---------------------------------------------------------------------------*/ - -{ - const fvPatchList& patches = mesh_.boundary(); - - forAll(patches, patchi) - { - const fvPatch& p = patches[patchi]; - - if (isType<wallFvPatch>(p)) - { - epsEqn().setValues - ( - p.faceCells(), - epsilon_.boundaryField()[patchi].patchInternalField() - ); - } - } -} - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/include/wallFunctionsI.H.old b/src/turbulenceModels/RAS/incompressible/include/wallFunctionsI.H.old deleted file mode 100644 index ce89e329ffc..00000000000 --- a/src/turbulenceModels/RAS/incompressible/include/wallFunctionsI.H.old +++ /dev/null @@ -1,126 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Global - wallFunctions - -Description - Calculate wall generation and dissipation from wall-functions. - -\*---------------------------------------------------------------------------*/ - -{ - labelList cellBoundaryFaceCount(epsilon_.size(), 0); - - scalar Cmu25 = pow(Cmu_.value(), 0.25); - scalar Cmu75 = pow(Cmu_.value(), 0.75); - - const fvPatchList& patches = mesh_.boundary(); - - //- Initialise the near-wall epsilon and G fields to zero - forAll(patches, patchi) - { - const fvPatch& curPatch = patches[patchi]; - - if (isType<wallFvPatch>(curPatch)) - { - forAll(curPatch, facei) - { - label faceCelli = curPatch.faceCells()[facei]; - - epsilon_[faceCelli] = 0.0; - G[faceCelli] = 0.0; - } - } - } - - //- Accumulate the wall face contributions to epsilon and G - // Increment cellBoundaryFaceCount for each face for averaging - forAll(patches, patchi) - { - const fvPatch& curPatch = patches[patchi]; - - if (isType<wallFvPatch>(curPatch)) - { -# include "checkPatchFieldTypes.H" - - const scalarField& nuw = nu().boundaryField()[patchi]; - const scalarField& nutw = nut_.boundaryField()[patchi]; - - scalarField magFaceGradU = - mag(U_.boundaryField()[patchi].snGrad()); - - forAll(curPatch, facei) - { - label faceCelli = curPatch.faceCells()[facei]; - - scalar yPlus = - Cmu25*RASModel::y_[patchi][facei] - *sqrt(k_[faceCelli]) - /nuw[facei]; - - // For corner cells (with two boundary or more faces), - // epsilon and G in the near-wall cell are calculated - // as an average - - cellBoundaryFaceCount[faceCelli]++; - - epsilon_[faceCelli] += - Cmu75*pow(k_[faceCelli], 1.5) - /(kappa_.value()*RASModel::y_[patchi][facei]); - - if (yPlus > yPlusLam_) - { - G[faceCelli] += - (nutw[facei] + nuw[facei]) - *magFaceGradU[facei] - *Cmu25*sqrt(k_[faceCelli]) - /(kappa_.value()*RASModel::y_[patchi][facei]); - } - } - } - } - - - // Perform the averaging - - forAll(patches, patchi) - { - const fvPatch& curPatch = patches[patchi]; - - if (isType<wallFvPatch>(curPatch)) - { - forAll(curPatch, facei) - { - label faceCelli = curPatch.faceCells()[facei]; - - epsilon_[faceCelli] /= cellBoundaryFaceCount[faceCelli]; - G[faceCelli] /= cellBoundaryFaceCount[faceCelli]; - } - } - } -} - - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/include/wallNonlinearViscosityI.H b/src/turbulenceModels/RAS/incompressible/include/wallNonlinearViscosityI.H deleted file mode 100644 index 2c5517b468e..00000000000 --- a/src/turbulenceModels/RAS/incompressible/include/wallNonlinearViscosityI.H +++ /dev/null @@ -1,70 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Global - wallNonlinearViscosity - -Description - Calculate wall viscosity for non-linear models - -\*---------------------------------------------------------------------------*/ - -{ - const fvPatchList& patches = mesh_.boundary(); - - forAll(patches, patchi) - { - const fvPatch& curPatch = patches[patchi]; - - if (isType<wallFvPatch>(curPatch)) - { - const scalarField& nuw = nu().boundaryField()[patchi]; - scalarField& nutw = nut_.boundaryField()[patchi]; - - forAll(curPatch, facei) - { - label faceCelli = curPatch.faceCells()[facei]; - - //- Using local Cmu - scalar Cmu25 = pow(Cmu_[faceCelli], 0.25); - - scalar yPlus = - Cmu25*y_[patchi][facei]*sqrt(k_[faceCelli])/nuw[facei]; - - if (yPlus > yPlusLam_) - { - nutw[facei] = nuw[facei] - *(yPlus*kappa_.value()/log(E_.value()*yPlus) - 1); - } - else - { - nutw[facei] = 0.0; - } - } - } - } -} - - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/include/wallViscosityI.H.old b/src/turbulenceModels/RAS/incompressible/include/wallViscosityI.H.old deleted file mode 100644 index a9a8e8bafa5..00000000000 --- a/src/turbulenceModels/RAS/incompressible/include/wallViscosityI.H.old +++ /dev/null @@ -1,70 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Global - wallViscosity - -Description - Calculate wall viscosity from wall-functions. - -\*---------------------------------------------------------------------------*/ - -{ - scalar Cmu25 = pow(Cmu_.value(), 0.25); - - const fvPatchList& patches = mesh_.boundary(); - - forAll(patches, patchi) - { - const fvPatch& curPatch = patches[patchi]; - - if (isType<wallFvPatch>(curPatch)) - { - const scalarField& nuw = nu().boundaryField()[patchi]; - scalarField& nutw = nut_.boundaryField()[patchi]; - - forAll(curPatch, facei) - { - label faceCelli = curPatch.faceCells()[facei]; - - scalar yPlus = - Cmu25*y_[patchi][facei]*sqrt(k_[faceCelli])/nuw[facei]; - - if (yPlus > yPlusLam_) - { - nutw[facei] = - nuw[facei] - *(yPlus*kappa_.value()/log(E_.value()*yPlus) - 1); - } - else - { - nutw[facei] = 0.0; - } - } - } - } -} - - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/kEpsilon/kEpsilon.C b/src/turbulenceModels/RAS/incompressible/kEpsilon/kEpsilon.C deleted file mode 100644 index c3876043015..00000000000 --- a/src/turbulenceModels/RAS/incompressible/kEpsilon/kEpsilon.C +++ /dev/null @@ -1,281 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "kEpsilon.H" -#include "addToRunTimeSelectionTable.H" -#include "wallFvPatch.H" - -#include "backwardsCompatibilityWallFunctions.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(kEpsilon, 0); -addToRunTimeSelectionTable(RASModel, kEpsilon, dictionary); - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -// Construct from components -kEpsilon::kEpsilon -( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& lamTransportModel -) -: - RASModel(typeName, U, phi, lamTransportModel), - - Cmu_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cmu", - coeffDict_, - 0.09 - ) - ), - C1_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C1", - coeffDict_, - 1.44 - ) - ), - C2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C2", - coeffDict_, - 1.92 - ) - ), - alphaEps_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphaEps", - coeffDict_, - 0.76923 - ) - ), - - k_ - ( - IOobject - ( - "k", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateK("k", mesh_) - ), - epsilon_ - ( - IOobject - ( - "epsilon", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateEpsilon("epsilon", mesh_) - ), - nut_ - ( - IOobject - ( - "nut", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateNut("nut", mesh_) - ) -{ - nut_ == Cmu_*sqr(k_)/(epsilon_ + epsilonSmall_); - nut_.correctBoundaryConditions(); - - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -tmp<volSymmTensorField> kEpsilon::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> kEpsilon::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> kEpsilon::divDevReff(volVectorField& U) const -{ - return - ( - - fvm::laplacian(nuEff(), U) - - fvc::div(nuEff()*dev(fvc::grad(U)().T())) - ); -} - - -bool kEpsilon::read() -{ - if (RASModel::read()) - { - Cmu_.readIfPresent(coeffDict_); - C1_.readIfPresent(coeffDict_); - C2_.readIfPresent(coeffDict_); - alphaEps_.readIfPresent(coeffDict_); - - return true; - } - else - { - return false; - } -} - - -void kEpsilon::correct() -{ - transportModel_.correct(); - - if (!turbulence_) - { - return; - } - - RASModel::correct(); - - if (mesh_.changing()) - { - y_.correct(); - } - - volScalarField G("G", nut_*2*magSqr(symm(fvc::grad(U_)))); - - // Update espsilon and G at the wall - epsilon_.boundaryField().updateCoeffs(); - - // Dissipation equation - tmp<fvScalarMatrix> epsEqn - ( - fvm::ddt(epsilon_) - + fvm::div(phi_, epsilon_) - - fvm::Sp(fvc::div(phi_), epsilon_) - - fvm::laplacian(DepsilonEff(), epsilon_) - == - C1_*G*epsilon_/k_ - - fvm::Sp(C2_*epsilon_/k_, epsilon_) - ); - - epsEqn().relax(); - - epsEqn().boundaryManipulate(epsilon_.boundaryField()); - - solve(epsEqn); - bound(epsilon_, epsilon0_); - - - // Turbulent kinetic energy equation - tmp<fvScalarMatrix> kEqn - ( - fvm::ddt(k_) - + fvm::div(phi_, k_) - - fvm::Sp(fvc::div(phi_), k_) - - fvm::laplacian(DkEff(), k_) - == - G - - fvm::Sp(epsilon_/k_, k_) - ); - - kEqn().relax(); - solve(kEqn); - bound(k_, k0_); - - - // Re-calculate viscosity - nut_ == Cmu_*sqr(k_)/epsilon_; - nut_.correctBoundaryConditions(); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/kEpsilon/kEpsilon.H b/src/turbulenceModels/RAS/incompressible/kEpsilon/kEpsilon.H deleted file mode 100644 index 5ac0d5a4614..00000000000 --- a/src/turbulenceModels/RAS/incompressible/kEpsilon/kEpsilon.H +++ /dev/null @@ -1,176 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::RASModels::kEpsilon - -Description - Standard k-epsilon turbulence model for incompressible flows. - - The default model coefficients correspond to the following: - @verbatim - kEpsilonCoeffs - { - Cmu 0.09; - C1 1.44; - C2 1.92; - C3 -0.33; // only for compressible - alphak 1.0; // only for compressible - alphaEps 0.76923; - alphah 1.0; // only for compressible - } - @endverbatim - -SourceFiles - kEpsilon.C - -\*---------------------------------------------------------------------------*/ - -#ifndef kEpsilon_H -#define kEpsilon_H - -#include "RASModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class kEpsilon Declaration -\*---------------------------------------------------------------------------*/ - -class kEpsilon -: - public RASModel -{ - // Private data - - // Model coefficients - - dimensionedScalar Cmu_; - dimensionedScalar C1_; - dimensionedScalar C2_; - dimensionedScalar alphaEps_; - - - // Fields - - volScalarField k_; - volScalarField epsilon_; - volScalarField nut_; - - -public: - - //- Runtime type information - TypeName("kEpsilon"); - - // Constructors - - //- Construct from components - kEpsilon - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ); - - - // Destructor - - ~kEpsilon() - {} - - - // Member Functions - - //- Return the turbulence viscosity - tmp<volScalarField> nut() const - { - return nut_; - } - - //- Return the effective diffusivity for k - tmp<volScalarField> DkEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DkEff", nut_ + nu()) - ); - } - - //- Return the effective diffusivity for epsilon - tmp<volScalarField> DepsilonEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DepsilonEff", alphaEps_*nut_ + nu()) - ); - } - - //- Return the turbulence kinetic energy - tmp<volScalarField> k() const - { - return k_; - } - - //- Return the turbulence kinetic energy dissipation rate - tmp<volScalarField> epsilon() const - { - return epsilon_; - } - - //- Return the Reynolds stress tensor - tmp<volSymmTensorField> R() const; - - //- Return the effective stress tensor including the laminar stress - tmp<volSymmTensorField> devReff() const; - - //- Return the source term for the momentum equation - tmp<fvVectorMatrix> divDevReff(volVectorField& U) const; - - //- Solve the turbulence equations and correct the turbulence viscosity - void correct(); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/kOmega/kOmega.C b/src/turbulenceModels/RAS/incompressible/kOmega/kOmega.C deleted file mode 100644 index ff2dceca5ad..00000000000 --- a/src/turbulenceModels/RAS/incompressible/kOmega/kOmega.C +++ /dev/null @@ -1,287 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "kOmega.H" -#include "addToRunTimeSelectionTable.H" -#include "wallFvPatch.H" - -#include "backwardsCompatibilityWallFunctions.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(kOmega, 0); -addToRunTimeSelectionTable(RASModel, kOmega, dictionary); - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -kOmega::kOmega -( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& lamTransportModel -) -: - RASModel(typeName, U, phi, lamTransportModel), - - Cmu_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "betaStar", - coeffDict_, - 0.09 - ) - ), - beta_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "beta", - coeffDict_, - 0.072 - ) - ), - alpha_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alpha", - coeffDict_, - 0.52 - ) - ), - alphaK_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphaK", - coeffDict_, - 0.5 - ) - ), - alphaOmega_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphaOmega", - coeffDict_, - 0.5 - ) - ), - - omega0_("omega0", dimless/dimTime, SMALL), - omegaSmall_("omegaSmall", dimless/dimTime, SMALL), - - 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_ == k_/(omega_ + omegaSmall_); - nut_.correctBoundaryConditions(); - - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -tmp<volSymmTensorField> kOmega::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> kOmega::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> kOmega::divDevReff(volVectorField& U) const -{ - return - ( - - fvm::laplacian(nuEff(), U) - - fvc::div(nuEff()*dev(fvc::grad(U)().T())) - ); -} - - -bool kOmega::read() -{ - if (RASModel::read()) - { - Cmu_.readIfPresent(coeffDict_); - beta_.readIfPresent(coeffDict_); - alphaK_.readIfPresent(coeffDict_); - alphaOmega_.readIfPresent(coeffDict_); - - return true; - } - else - { - return false; - } -} - - -void kOmega::correct() -{ - transportModel_.correct(); - - if (!turbulence_) - { - return; - } - - RASModel::correct(); - - volScalarField G("G", nut_*2*magSqr(symm(fvc::grad(U_)))); - - // Update omega and G at the wall - omega_.boundaryField().updateCoeffs(); - - // Turbulence specific dissipation rate equation - tmp<fvScalarMatrix> omegaEqn - ( - fvm::ddt(omega_) - + fvm::div(phi_, omega_) - - fvm::Sp(fvc::div(phi_), omega_) - - fvm::laplacian(DomegaEff(), omega_) - == - alpha_*G*omega_/k_ - - fvm::Sp(beta_*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::Sp(fvc::div(phi_), k_) - - fvm::laplacian(DkEff(), k_) - == - G - - fvm::Sp(Cmu_*omega_, k_) - ); - - kEqn().relax(); - solve(kEqn); - bound(k_, k0_); - - - // Re-calculate viscosity - nut_ == k_/omega_; - nut_.correctBoundaryConditions(); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/kOmega/kOmega.H b/src/turbulenceModels/RAS/incompressible/kOmega/kOmega.H deleted file mode 100644 index 6501a691f85..00000000000 --- a/src/turbulenceModels/RAS/incompressible/kOmega/kOmega.H +++ /dev/null @@ -1,210 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::RASModels::kOmega - -Description - Standard high Reynolds-number k-omega turbulence model for - incompressible flows. - - References: - @verbatim - "Turbulence Modeling for CFD" - D. C. Wilcox, - DCW Industries, Inc., La Canada, - California, 1998. - - See also: - http://www.cfd-online.com/Wiki/Wilcox's_k-omega_model - @endverbatim - - The default model coefficients correspond to the following: - @verbatim - kOmegaCoeffs - { - Cmu 0.09; // Equivalent to betaStar - alpha 0.52; - beta 0.072; - alphak 0.5; - alphaOmega 0.5; - } - @endverbatim - -SourceFiles - kOmega.C - -\*---------------------------------------------------------------------------*/ - -#ifndef kOmega_H -#define kOmega_H - -#include "RASModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class kOmega Declaration -\*---------------------------------------------------------------------------*/ - -class kOmega -: - public RASModel -{ - // Private data - - // Model coefficients - - dimensionedScalar Cmu_; - dimensionedScalar beta_; - dimensionedScalar alpha_; - dimensionedScalar alphaK_; - dimensionedScalar alphaOmega_; - - - dimensionedScalar omega0_; - dimensionedScalar omegaSmall_; - - - // Fields - - volScalarField k_; - volScalarField omega_; - volScalarField nut_; - - -public: - - //- Runtime type information - TypeName("kOmega"); - - // Constructors - - //- Construct from components - kOmega - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ); - - - // Destructor - - ~kOmega() - {} - - - // Member Functions - - //- Return the turbulence viscosity - tmp<volScalarField> nut() const - { - return nut_; - } - - //- Return the effective diffusivity for k - tmp<volScalarField> DkEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DkEff", alphaK_*nut_ + nu()) - ); - } - - //- Return the effective diffusivity for omega - tmp<volScalarField> DomegaEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DomegaEff", alphaOmega_*nut_ + nu()) - ); - } - - //- Return the turbulence kinetic energy - tmp<volScalarField> k() const - { - return k_; - } - - //- Return the turbulence specific dissipation rate - tmp<volScalarField> omega() const - { - return omega_; - } - - //- Return the turbulence kinetic energy dissipation rate - tmp<volScalarField> epsilon() const - { - return tmp<volScalarField> - ( - new volScalarField - ( - IOobject - ( - "epsilon", - mesh_.time().timeName(), - mesh_ - ), - Cmu_*k_*omega_, - omega_.boundaryField().types() - ) - ); - } - - //- Return the Reynolds stress tensor - tmp<volSymmTensorField> R() const; - - //- Return the effective stress tensor including the laminar stress - tmp<volSymmTensorField> devReff() const; - - //- Return the source term for the momentum equation - tmp<fvVectorMatrix> divDevReff(volVectorField& U) const; - - //- Solve the turbulence equations and correct the turbulence viscosity - void correct(); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/kOmegaSST/kOmegaSST.C b/src/turbulenceModels/RAS/incompressible/kOmegaSST/kOmegaSST.C deleted file mode 100644 index 4760c17152e..00000000000 --- a/src/turbulenceModels/RAS/incompressible/kOmegaSST/kOmegaSST.C +++ /dev/null @@ -1,425 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "kOmegaSST.H" -#include "addToRunTimeSelectionTable.H" -#include "wallFvPatch.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 - ) - ), - - omega0_("omega0", dimless/dimTime, SMALL), - omegaSmall_("omegaSmall", dimless/dimTime, SMALL), - - Cmu_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cmu", - coeffDict_, - 0.09 - ) - ), - - 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_); - Cmu_.readIfPresent(coeffDict_); - - return true; - } - else - { - return false; - } -} - - -void kOmegaSST::correct() -{ - transportModel_.correct(); - - if (!turbulence_) - { - return; - } - - RASModel::correct(); - - if (mesh_.changing()) - { - y_.correct(); - } - - volScalarField S2 = magSqr(symm(fvc::grad(U_))); - volScalarField G("G", nut_*2*S2); - - // Update omega and G at the wall - omega_.boundaryField().updateCoeffs(); - - volScalarField CDkOmega = - (2*alphaOmega2_)*(fvc::grad(k_) & fvc::grad(omega_))/omega_; - - volScalarField F1 = this->F1(CDkOmega); - - // Turbulent frequency equation - tmp<fvScalarMatrix> omegaEqn - ( - fvm::ddt(omega_) - + fvm::div(phi_, omega_) - - fvm::Sp(fvc::div(phi_), omega_) - - fvm::laplacian(DomegaEff(F1), omega_) - == - gamma(F1)*2*S2 - - fvm::Sp(beta(F1)*omega_, omega_) - - fvm::SuSp - ( - (F1 - scalar(1))*CDkOmega/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::Sp(fvc::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/RAS/incompressible/kOmegaSST/kOmegaSST.H b/src/turbulenceModels/RAS/incompressible/kOmegaSST/kOmegaSST.H deleted file mode 100644 index 8b406d6ea74..00000000000 --- a/src/turbulenceModels/RAS/incompressible/kOmegaSST/kOmegaSST.H +++ /dev/null @@ -1,290 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::RASModels::kOmegaSST - -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" - 16th Brazilian Congress of Mechanical Engineering (COBEM), - Nov. 2001 - @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 - manner. The paper suggests that sigma is blended but this would not be - consistent with the blending of the k-epsilon and k-omega models. - - Also note that the error in the last term of equation (2) relating to - sigma has been corrected. - - Wall-functions are applied in this implementation by using equations (14) - to specify the near-wall omega as appropriate. - - The blending functions (15) and (16) are not currently used because of the - uncertainty in their origin, range of applicability and that is y+ becomes - sufficiently small blending u_tau in this manner clearly becomes nonsense. - - The default model coefficients correspond to the following: - @verbatim - kOmegaSST - { - Cmu 0.09; - alphaK1 0.85034; - alphaK2 1.0; - alphaOmega1 0.5; - alphaOmega2 0.85616; - alphah 1.0; // only for compressible - beta1 0.075; - beta2 0.0828; - betaStar 0.09; - gamma1 0.5532; - gamma2 0.4403; - a1 0.31; - c1 10.0; - } - @endverbatim - -SourceFiles - kOmegaSST.C - -\*---------------------------------------------------------------------------*/ - -#ifndef kOmegaSST_H -#define kOmegaSST_H - -#include "RASModel.H" -#include "wallDist.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class kOmega Declaration -\*---------------------------------------------------------------------------*/ - -class kOmegaSST -: - public RASModel -{ - // Private data - - dimensionedScalar alphaK1_; - dimensionedScalar alphaK2_; - - dimensionedScalar alphaOmega1_; - dimensionedScalar alphaOmega2_; - - dimensionedScalar gamma1_; - dimensionedScalar gamma2_; - - dimensionedScalar beta1_; - dimensionedScalar beta2_; - - dimensionedScalar betaStar_; - - dimensionedScalar a1_; - dimensionedScalar c1_; - - dimensionedScalar omega0_; - dimensionedScalar omegaSmall_; - - dimensionedScalar Cmu_; - - wallDist y_; - - volScalarField k_; - volScalarField omega_; - volScalarField nut_; - - - // Private member functions - - tmp<volScalarField> F1(const volScalarField& CDkOmega) const; - tmp<volScalarField> F2() const; - - tmp<volScalarField> blend - ( - const volScalarField& F1, - const dimensionedScalar& psi1, - const dimensionedScalar& psi2 - ) const - { - return F1*(psi1 - psi2) + psi2; - } - - tmp<volScalarField> alphaK - ( - const volScalarField& F1 - ) const - { - return blend(F1, alphaK1_, alphaK2_); - } - - tmp<volScalarField> alphaOmega - ( - const volScalarField& F1 - ) const - { - return blend(F1, alphaOmega1_, alphaOmega2_); - } - - tmp<volScalarField> beta - ( - const volScalarField& F1 - ) const - { - return blend(F1, beta1_, beta2_); - } - - tmp<volScalarField> gamma - ( - const volScalarField& F1 - ) const - { - return blend(F1, gamma1_, gamma2_); - } - - -public: - - //- Runtime type information - TypeName("kOmegaSST"); - - - // Constructors - - //- Construct from components - kOmegaSST - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ); - - - // Destructor - - ~kOmegaSST() - {} - - - // Member Functions - - //- Return the turbulence viscosity - tmp<volScalarField> nut() const - { - return nut_; - } - - //- Return the effective diffusivity for k - tmp<volScalarField> DkEff(const volScalarField& F1) const - { - return tmp<volScalarField> - ( - new volScalarField("DkEff", alphaK(F1)*nut_ + nu()) - ); - } - - //- Return the effective diffusivity for omega - tmp<volScalarField> DomegaEff(const volScalarField& F1) const - { - return tmp<volScalarField> - ( - new volScalarField("DomegaEff", alphaOmega(F1)*nut_ + nu()) - ); - } - - //- Return the turbulence kinetic energy - tmp<volScalarField> k() const - { - return k_; - } - - //- Return the turbulence specific dissipation rate - tmp<volScalarField> omega() const - { - return omega_; - } - - //- Return the turbulence kinetic energy dissipation rate - tmp<volScalarField> epsilon() const - { - return tmp<volScalarField> - ( - new volScalarField - ( - IOobject - ( - "epsilon", - mesh_.time().timeName(), - mesh_ - ), - betaStar_*k_*omega_, - omega_.boundaryField().types() - ) - ); - } - - //- Return the Reynolds stress tensor - tmp<volSymmTensorField> R() const; - - //- Return the effective stress tensor including the laminar stress - tmp<volSymmTensorField> devReff() const; - - //- Return the source term for the momentum equation - tmp<fvVectorMatrix> divDevReff(volVectorField& U) const; - - //- Solve the turbulence equations and correct the turbulence viscosity - void correct(); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/laminar/laminar.C b/src/turbulenceModels/RAS/incompressible/laminar/laminar.C deleted file mode 100644 index 9ef6730bc9d..00000000000 --- a/src/turbulenceModels/RAS/incompressible/laminar/laminar.C +++ /dev/null @@ -1,203 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "laminar.H" -#include "addToRunTimeSelectionTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(laminar, 0); -addToRunTimeSelectionTable(RASModel, laminar, dictionary); - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -laminar::laminar -( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& lamTransportModel -) -: - RASModel(typeName, U, phi, lamTransportModel) -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -tmp<volScalarField> laminar::nut() const -{ - return tmp<volScalarField> - ( - new volScalarField - ( - IOobject - ( - "nut", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh_, - dimensionedScalar("nut", nu().dimensions(), 0.0) - ) - ); -} - - -tmp<volScalarField> laminar::nuEff() const -{ - return tmp<volScalarField>(new volScalarField("nuEff", nu())); -} - - -tmp<volScalarField> laminar::k() const -{ - return tmp<volScalarField> - ( - new volScalarField - ( - IOobject - ( - "k", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh_, - dimensionedScalar("k", sqr(U_.dimensions()), 0.0) - ) - ); -} - - -tmp<volScalarField> laminar::epsilon() const -{ - return tmp<volScalarField> - ( - new volScalarField - ( - IOobject - ( - "epsilon", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh_, - dimensionedScalar - ( - "epsilon", sqr(U_.dimensions())/dimTime, 0.0 - ) - ) - ); -} - - -tmp<volSymmTensorField> laminar::R() const -{ - return tmp<volSymmTensorField> - ( - new volSymmTensorField - ( - IOobject - ( - "R", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - mesh_, - dimensionedSymmTensor - ( - "R", sqr(U_.dimensions()), symmTensor::zero - ) - ) - ); -} - - -tmp<volSymmTensorField> laminar::devReff() const -{ - return tmp<volSymmTensorField> - ( - new volSymmTensorField - ( - IOobject - ( - "devRhoReff", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - -nu()*dev(twoSymm(fvc::grad(U_))) - ) - ); -} - - -tmp<fvVectorMatrix> laminar::divDevReff(volVectorField& U) const -{ - return - ( - - fvm::laplacian(nuEff(), U) - - fvc::div(nuEff()*dev(fvc::grad(U)().T())) - ); -} - - -bool laminar::read() -{ - return RASModel::read(); -} - - -void laminar::correct() -{ - transportModel_.correct(); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/laminar/laminar.H b/src/turbulenceModels/RAS/incompressible/laminar/laminar.H deleted file mode 100644 index 7f07045aa3e..00000000000 --- a/src/turbulenceModels/RAS/incompressible/laminar/laminar.H +++ /dev/null @@ -1,123 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::RASModels::laminar - -Description - Dummy turbulence model for laminar incompressible flow. - -SourceFiles - laminar.C - -\*---------------------------------------------------------------------------*/ - -#ifndef laminar_H -#define laminar_H - -#include "RASModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class laminar Declaration -\*---------------------------------------------------------------------------*/ - -class laminar -: - public RASModel -{ - -public: - - //- Runtime type information - TypeName("laminar"); - - // Constructors - - //- from components - laminar - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ); - - - // Destructor - - ~laminar() - {} - - - // Member Functions - - //- Return the turbulence viscosity, i.e. 0 for laminar flow - tmp<volScalarField> nut() const; - - //- Return the effective viscosity, i.e. the laminar viscosity - tmp<volScalarField> nuEff() const; - - //- Return the turbulence kinetic energy, i.e. 0 for laminar flow - tmp<volScalarField> k() const; - - //- Return the turbulence kinetic energy dissipation rate, - // i.e. 0 for laminar flow - tmp<volScalarField> epsilon() const; - - //- Return the Reynolds stress tensor, i.e. 0 for laminar flow - tmp<volSymmTensorField> R() const; - - //- Return the effective stress tensor including the laminar stress - tmp<volSymmTensorField> devReff() const; - - //- Return the source term for the momentum equation - tmp<fvVectorMatrix> divDevReff(volVectorField& U) const; - - //- Correct the laminar viscosity - void correct(); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/realizableKE/realizableKE.C b/src/turbulenceModels/RAS/incompressible/realizableKE/realizableKE.C deleted file mode 100644 index ffeba065d75..00000000000 --- a/src/turbulenceModels/RAS/incompressible/realizableKE/realizableKE.C +++ /dev/null @@ -1,340 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -\*---------------------------------------------------------------------------*/ - -#include "realizableKE.H" -#include "addToRunTimeSelectionTable.H" -#include "wallFvPatch.H" - -#include "backwardsCompatibilityWallFunctions.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -defineTypeNameAndDebug(realizableKE, 0); -addToRunTimeSelectionTable(RASModel, realizableKE, dictionary); - -// * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * * // - -tmp<volScalarField> realizableKE::rCmu -( - const volTensorField& gradU, - const volScalarField& S2, - const volScalarField& magS -) -{ - tmp<volSymmTensorField> tS = dev(symm(gradU)); - const volSymmTensorField& S = tS(); - - volScalarField W = - (2*sqrt(2.0))*((S&S)&&S) - /( - magS*S2 - + dimensionedScalar("small", dimensionSet(0, 0, -3, 0, 0), SMALL) - ); - - tS.clear(); - - volScalarField phis = - (1.0/3.0)*acos(min(max(sqrt(6.0)*W, -scalar(1)), scalar(1))); - volScalarField As = sqrt(6.0)*cos(phis); - volScalarField Us = sqrt(S2/2.0 + magSqr(skew(gradU))); - - return 1.0/(A0_ + As*Us*k_/(epsilon_ + epsilonSmall_)); -} - - -tmp<volScalarField> realizableKE::rCmu -( - const volTensorField& gradU -) -{ - volScalarField S2 = 2*magSqr(dev(symm(gradU))); - volScalarField magS = sqrt(S2); - return rCmu(gradU, S2, magS); -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -realizableKE::realizableKE -( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& lamTransportModel -) -: - RASModel(typeName, U, phi, lamTransportModel), - - Cmu_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "Cmu", - coeffDict_, - 0.09 - ) - ), - A0_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "A0", - coeffDict_, - 4.0 - ) - ), - C2_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "C2", - coeffDict_, - 1.9 - ) - ), - alphak_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphak", - coeffDict_, - 1.0 - ) - ), - alphaEps_ - ( - dimensioned<scalar>::lookupOrAddToDict - ( - "alphaEps", - coeffDict_, - 0.833333 - ) - ), - - k_ - ( - IOobject - ( - "k", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateK("k", mesh_) - ), - epsilon_ - ( - IOobject - ( - "epsilon", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateEpsilon("epsilon", mesh_) - ), - nut_ - ( - IOobject - ( - "nut", - runTime_.timeName(), - mesh_, - IOobject::NO_READ, - IOobject::AUTO_WRITE - ), - autoCreateNut("nut", mesh_) - ) -{ - bound(k_, k0_); - bound(epsilon_, epsilon0_); - - nut_ == rCmu(fvc::grad(U_))*sqr(k_)/(epsilon_ + epsilonSmall_); - nut_.correctBoundaryConditions(); - - printCoeffs(); -} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -tmp<volSymmTensorField> realizableKE::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> realizableKE::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> realizableKE::divDevReff(volVectorField& U) const -{ - return - ( - - fvm::laplacian(nuEff(), U) - - fvc::div(nuEff()*dev(fvc::grad(U)().T())) - ); -} - - -bool realizableKE::read() -{ - if (RASModel::read()) - { - Cmu_.readIfPresent(coeffDict_); - A0_.readIfPresent(coeffDict_); - C2_.readIfPresent(coeffDict_); - alphak_.readIfPresent(coeffDict_); - alphaEps_.readIfPresent(coeffDict_); - - return true; - } - else - { - return false; - } -} - - -void realizableKE::correct() -{ - transportModel_.correct(); - - if (!turbulence_) - { - return; - } - - RASModel::correct(); - - volTensorField gradU = fvc::grad(U_); - volScalarField S2 = 2*magSqr(dev(symm(gradU))); - volScalarField magS = sqrt(S2); - - volScalarField eta = magS*k_/epsilon_; - volScalarField C1 = max(eta/(scalar(5) + eta), scalar(0.43)); - - volScalarField G("G", nut_*S2); - - // Update espsilon and G at the wall - epsilon_.boundaryField().updateCoeffs(); - - - // Dissipation equation - tmp<fvScalarMatrix> epsEqn - ( - fvm::ddt(epsilon_) - + fvm::div(phi_, epsilon_) - - fvm::Sp(fvc::div(phi_), epsilon_) - - fvm::laplacian(DepsilonEff(), epsilon_) - == - C1*magS*epsilon_ - - fvm::Sp - ( - C2_*epsilon_/(k_ + sqrt(nu()*epsilon_)), - epsilon_ - ) - ); - - epsEqn().relax(); - - epsEqn().boundaryManipulate(epsilon_.boundaryField()); - - solve(epsEqn); - bound(epsilon_, epsilon0_); - - - // Turbulent kinetic energy equation - tmp<fvScalarMatrix> kEqn - ( - fvm::ddt(k_) - + fvm::div(phi_, k_) - - fvm::Sp(fvc::div(phi_), k_) - - fvm::laplacian(DkEff(), k_) - == - G - fvm::Sp(epsilon_/k_, k_) - ); - - kEqn().relax(); - solve(kEqn); - bound(k_, k0_); - - - // Re-calculate viscosity - nut_ == rCmu(gradU, S2, magS)*sqr(k_)/epsilon_; - nut_.correctBoundaryConditions(); -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// ************************************************************************* // diff --git a/src/turbulenceModels/RAS/incompressible/realizableKE/realizableKE.H b/src/turbulenceModels/RAS/incompressible/realizableKE/realizableKE.H deleted file mode 100644 index d3587b2f51b..00000000000 --- a/src/turbulenceModels/RAS/incompressible/realizableKE/realizableKE.H +++ /dev/null @@ -1,193 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 1991-2008 OpenCFD Ltd. - \\/ 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 2 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, write to the Free Software Foundation, - Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - -Class - Foam::incompressible::RASModels::realizableKE - -Description - Realizable k-epsilon turbulence model for incompressible flows. - - Model described in the paper: - @verbatim - "A New k-epsilon Eddy Viscosity Model for High Reynolds Number - Turbulent Flows" - - Tsan-Hsing Shih, William W. Liou, Aamir Shabbir, Zhigang Tang and - Jiang Zhu - - Computers and Fluids Vol. 24, No. 3, pp. 227-238, 1995 - @endverbatim - - The default model coefficients correspond to the following: - @verbatim - realizableKE - { - Cmu 0.09; - A0 4.0; - C2 1.9; - alphak 1.0; - alphaEps 0.833333; - alphah 1.0; // only for compressible - } - @endverbatim - -SourceFiles - realizableKE.C - -\*---------------------------------------------------------------------------*/ - -#ifndef realizableKE_H -#define realizableKE_H - -#include "RASModel.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ -namespace incompressible -{ -namespace RASModels -{ - -/*---------------------------------------------------------------------------*\ - Class realizableKE Declaration -\*---------------------------------------------------------------------------*/ - -class realizableKE -: - public RASModel -{ - // Private data - - dimensionedScalar Cmu_; - dimensionedScalar A0_; - dimensionedScalar C2_; - dimensionedScalar alphak_; - dimensionedScalar alphaEps_; - - volScalarField k_; - volScalarField epsilon_; - volScalarField nut_; - - tmp<volScalarField> rCmu - ( - const volTensorField& gradU, - const volScalarField& S2, - const volScalarField& magS - ); - - tmp<volScalarField> rCmu - ( - const volTensorField& gradU - ); - -public: - - //- Runtime type information - TypeName("realizableKE"); - - // Constructors - - //- from components - realizableKE - ( - const volVectorField& U, - const surfaceScalarField& phi, - transportModel& transport - ); - - - // Destructor - - ~realizableKE() - {} - - - // Member Functions - - //- Return the turbulence viscosity - tmp<volScalarField> nut() const - { - return nut_; - } - - //- Return the effective diffusivity for k - tmp<volScalarField> DkEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DkEff", alphak_*nut_ + nu()) - ); - } - - //- Return the effective diffusivity for epsilon - tmp<volScalarField> DepsilonEff() const - { - return tmp<volScalarField> - ( - new volScalarField("DepsilonEff", alphaEps_*nut_ + nu()) - ); - } - - //- Return the turbulence kinetic energy - tmp<volScalarField> k() const - { - return k_; - } - - //- Return the turbulence kinetic energy dissipation rate - tmp<volScalarField> epsilon() const - { - return epsilon_; - } - - //- Return the Reynolds stress tensor - tmp<volSymmTensorField> R() const; - - //- Return the effective stress tensor including the laminar stress - tmp<volSymmTensorField> devReff() const; - - //- Return the source term for the momentum equation - tmp<fvVectorMatrix> divDevReff(volVectorField& U) const; - - //- Solve the turbulence equations and correct the turbulence viscosity - void correct(); - - //- Read turbulenceProperties dictionary - bool read(); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace RASModels -} // End namespace incompressible -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // diff --git a/tutorials/buoyantSimpleFoam/hotRoom/0/epsilon b/tutorials/buoyantSimpleFoam/hotRoom/0/epsilon index 46a465314bb..243a852f894 100644 --- a/tutorials/buoyantSimpleFoam/hotRoom/0/epsilon +++ b/tutorials/buoyantSimpleFoam/hotRoom/0/epsilon @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ @@ -10,6 +10,7 @@ FoamFile version 2.0; format ascii; class volScalarField; + location "0"; object epsilon; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -20,20 +21,22 @@ internalField uniform 0.01; boundaryField { - floor + floor { - type zeroGradient; + type epsilonWallFunction; + value uniform 0.01; } - - ceiling + ceiling { - type zeroGradient; + type epsilonWallFunction; + value uniform 0.01; } - - fixedWalls + fixedWalls { - type zeroGradient; + type epsilonWallFunction; + value uniform 0.01; } } + // ************************************************************************* // diff --git a/tutorials/buoyantSimpleFoam/hotRoom/0/k b/tutorials/buoyantSimpleFoam/hotRoom/0/k index 5485bd3e573..1b8a55e1b59 100644 --- a/tutorials/buoyantSimpleFoam/hotRoom/0/k +++ b/tutorials/buoyantSimpleFoam/hotRoom/0/k @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ @@ -10,6 +10,7 @@ FoamFile version 2.0; format ascii; class volScalarField; + location "0"; object k; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -20,20 +21,22 @@ internalField uniform 0.1; boundaryField { - floor + floor { - type zeroGradient; + type kQRWallFunction; + value uniform 0.1; } - - ceiling + ceiling { - type zeroGradient; + type kQRWallFunction; + value uniform 0.1; } - - fixedWalls + fixedWalls { - type zeroGradient; + type kQRWallFunction; + value uniform 0.1; } } + // ************************************************************************* // diff --git a/tutorials/buoyantSimpleFoam/hotRoom/constant/polyMesh/boundary b/tutorials/buoyantSimpleFoam/hotRoom/constant/polyMesh/boundary index 713344455a1..9590626e73b 100644 --- a/tutorials/buoyantSimpleFoam/hotRoom/constant/polyMesh/boundary +++ b/tutorials/buoyantSimpleFoam/hotRoom/constant/polyMesh/boundary @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ @@ -10,6 +10,7 @@ FoamFile version 2.0; format ascii; class polyBoundaryMesh; + location "constant/polyMesh"; object boundary; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/tutorials/interFoam/Allclean b/tutorials/interFoam/Allclean index 62275784712..942950db4e3 100755 --- a/tutorials/interFoam/Allclean +++ b/tutorials/interFoam/Allclean @@ -12,7 +12,7 @@ do if [ "$case" = "damBreak" ] then - cp $case/0/gamma.org $case/0/gamma + cp $case/0/alpha1.org $case/0/alpha1 fi done @@ -20,3 +20,7 @@ for case in $loseCases do removeCase $case done + +cd nozzleFlow2D + ./Allclean +cd .. diff --git a/tutorials/interFoam/Allrun b/tutorials/interFoam/Allrun index 4adf8e9374f..99db32d37ae 100755 --- a/tutorials/interFoam/Allrun +++ b/tutorials/interFoam/Allrun @@ -37,7 +37,7 @@ cloneCase damBreak damBreakFine cd damBreakFine # Modify case setDamBreakFine - cp ../damBreak/0/gamma.org 0/gamma + cp ../damBreak/0/alpha1.org 0/alpha1 # And execute runApplication blockMesh runApplication setFields @@ -46,3 +46,7 @@ cd damBreakFine runParallel $application 4 system/machines runApplication reconstructPar cd .. + +cd nozzleFlow2D + ./Allrun +cd .. diff --git a/tutorials/interFoam/damBreak/0/U b/tutorials/interFoam/damBreak/0/U index d4cc4c65a67..9dcf5eae9a4 100644 --- a/tutorials/interFoam/damBreak/0/U +++ b/tutorials/interFoam/damBreak/0/U @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ @@ -10,6 +10,7 @@ FoamFile version 2.0; format ascii; class volVectorField; + location "0"; object U; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -38,7 +39,6 @@ boundaryField atmosphere { type pressureInletOutletVelocity; - phi phi; value uniform (0 0 0); } defaultFaces @@ -47,4 +47,5 @@ boundaryField } } + // ************************************************************************* // diff --git a/tutorials/interFoam/damBreak/0/gamma b/tutorials/interFoam/damBreak/0/gamma deleted file mode 100644 index 742f2974431..00000000000 --- a/tutorials/interFoam/damBreak/0/gamma +++ /dev/null @@ -1,51 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | -| \\ / A nd | Web: http://www.OpenFOAM.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class volScalarField; - object gamma; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -dimensions [0 0 0 0 0 0 0]; - -internalField uniform 0; - -boundaryField -{ - leftWall - { - type zeroGradient; - } - - rightWall - { - type zeroGradient; - } - - lowerWall - { - type zeroGradient; - } - - atmosphere - { - type inletOutlet; - inletValue uniform 0; - value uniform 0; - } - - defaultFaces - { - type empty; - } -} - -// ************************************************************************* // diff --git a/tutorials/interFoam/damBreak/0/gamma.org b/tutorials/interFoam/damBreak/0/gamma.org deleted file mode 100644 index 742f2974431..00000000000 --- a/tutorials/interFoam/damBreak/0/gamma.org +++ /dev/null @@ -1,51 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | -| \\ / A nd | Web: http://www.OpenFOAM.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class volScalarField; - object gamma; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -dimensions [0 0 0 0 0 0 0]; - -internalField uniform 0; - -boundaryField -{ - leftWall - { - type zeroGradient; - } - - rightWall - { - type zeroGradient; - } - - lowerWall - { - type zeroGradient; - } - - atmosphere - { - type inletOutlet; - inletValue uniform 0; - value uniform 0; - } - - defaultFaces - { - type empty; - } -} - -// ************************************************************************* // diff --git a/tutorials/interFoam/damBreak/constant/polyMesh/boundary b/tutorials/interFoam/damBreak/constant/polyMesh/boundary index 2ade45bf8af..eb22ec5273f 100644 --- a/tutorials/interFoam/damBreak/constant/polyMesh/boundary +++ b/tutorials/interFoam/damBreak/constant/polyMesh/boundary @@ -1,7 +1,7 @@ /*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | +| \\ / O peration | Version: dev | | \\ / A nd | Web: http://www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ @@ -10,6 +10,7 @@ FoamFile version 2.0; format ascii; class polyBoundaryMesh; + location "constant/polyMesh"; object boundary; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/tutorials/interFoam/damBreak/system/fvSchemes b/tutorials/interFoam/damBreak/system/fvSchemes index bc9ad1d53d2..6b8e4385b40 100644 --- a/tutorials/interFoam/damBreak/system/fvSchemes +++ b/tutorials/interFoam/damBreak/system/fvSchemes @@ -23,14 +23,14 @@ gradSchemes { default Gauss linear; grad(U) Gauss linear; - grad(gamma) Gauss linear; + grad(alpha1) Gauss linear; } divSchemes { div(rho*phi,U) Gauss limitedLinearV 1; - div(phi,gamma) Gauss vanLeer; - div(phirb,gamma) Gauss interfaceCompression; + div(phi,alpha) Gauss vanLeer; + div(phirb,alpha) Gauss interfaceCompression; } laplacianSchemes @@ -53,7 +53,7 @@ fluxRequired default no; pd; pcorr; - gamma; + alpha1; } // ************************************************************************* // diff --git a/tutorials/interFoam/damBreak/system/fvSolution b/tutorials/interFoam/damBreak/system/fvSolution index 4c158476b8e..57f82927779 100644 --- a/tutorials/interFoam/damBreak/system/fvSolution +++ b/tutorials/interFoam/damBreak/system/fvSolution @@ -47,9 +47,9 @@ PISO momentumPredictor no; nCorrectors 3; nNonOrthogonalCorrectors 0; - nGammaCorr 1; - nGammaSubCycles 2; - cGamma 1; + nAlphaCorr 1; + nAlphaSubCycles 2; + cAlpha 1; } // ************************************************************************* // diff --git a/tutorials/interFoam/damBreak/system/setFieldsDict b/tutorials/interFoam/damBreak/system/setFieldsDict index e7666438bbe..8e031272ac3 100644 --- a/tutorials/interFoam/damBreak/system/setFieldsDict +++ b/tutorials/interFoam/damBreak/system/setFieldsDict @@ -16,7 +16,7 @@ FoamFile defaultFieldValues ( - volScalarFieldValue gamma 0 + volScalarFieldValue alpha1 0 volVectorFieldValue U (0 0 0) ); @@ -28,7 +28,7 @@ regions fieldValues ( - volScalarFieldValue gamma 1 + volScalarFieldValue alpha1 1 ); } ); diff --git a/tutorials/lesInterFoam/nozzleFlow2D/0/B b/tutorials/lesInterFoam/nozzleFlow2D/0/B deleted file mode 100644 index 393db806cff..00000000000 --- a/tutorials/lesInterFoam/nozzleFlow2D/0/B +++ /dev/null @@ -1,57 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | -| \\ / A nd | Web: http://www.OpenFOAM.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class volTensorField; - object B; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -dimensions [0 2 -2 0 0 0 0]; - -internalField uniform (0 0 0 0 0 0 0 0 0); - -boundaryField -{ - axis - { - type empty; - } - - inlet - { - type fixedValue; - value uniform (0 0 0 0 0 0 0 0 0); - } - - wall - { - type zeroGradient; - } - - atmosphere - { - type inletOutlet; - inletValue uniform (0 0 0 0 0 0 0 0 0); - value uniform (0 0 0 0 0 0 0 0 0); - } - - front - { - type wedge; - } - - back - { - type wedge; - } -} - -// ************************************************************************* // diff --git a/tutorials/lesInterFoam/nozzleFlow2D/0/U b/tutorials/lesInterFoam/nozzleFlow2D/0/U deleted file mode 100644 index 8e48224239a..00000000000 --- a/tutorials/lesInterFoam/nozzleFlow2D/0/U +++ /dev/null @@ -1,57 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | -| \\ / A nd | Web: http://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 -{ - axis - { - type empty; - } - - inlet - { - type fixedValue; - value uniform (460 0 0); - } - - wall - { - type fixedValue; - value uniform (0 0 0); - } - - atmosphere - { - type pressureInletOutletVelocity; - value uniform (0 0 0); - } - - front - { - type wedge; - } - - back - { - type wedge; - } -} - -// ************************************************************************* // diff --git a/tutorials/lesInterFoam/nozzleFlow2D/0/data/Ubulk b/tutorials/lesInterFoam/nozzleFlow2D/0/data/Ubulk deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/tutorials/lesInterFoam/nozzleFlow2D/0/data/ptrace b/tutorials/lesInterFoam/nozzleFlow2D/0/data/ptrace deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/tutorials/lesInterFoam/nozzleFlow2D/0/gamma b/tutorials/lesInterFoam/nozzleFlow2D/0/gamma deleted file mode 100644 index 910ca9d25ff..00000000000 --- a/tutorials/lesInterFoam/nozzleFlow2D/0/gamma +++ /dev/null @@ -1,57 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | -| \\ / A nd | Web: http://www.OpenFOAM.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class volScalarField; - object gamma; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -dimensions [0 0 0 0 0 0 0]; - -internalField uniform 0; - -boundaryField -{ - axis - { - type empty; - } - - inlet - { - type fixedValue; - value uniform 1; - } - - wall - { - type zeroGradient; - } - - atmosphere - { - type inletOutlet; - inletValue uniform 0; - value uniform 0; - } - - front - { - type wedge; - } - - back - { - type wedge; - } -} - -// ************************************************************************* // diff --git a/tutorials/lesInterFoam/nozzleFlow2D/0/k b/tutorials/lesInterFoam/nozzleFlow2D/0/k deleted file mode 100644 index 20e12127aee..00000000000 --- a/tutorials/lesInterFoam/nozzleFlow2D/0/k +++ /dev/null @@ -1,58 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | -| \\ / A nd | Web: http://www.OpenFOAM.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class volScalarField; - object k; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -dimensions [0 2 -2 0 0 0 0]; - -internalField uniform 1e-11; - -boundaryField -{ - axis - { - type empty; - } - - inlet - { - type fixedValue; - value uniform 1e-05; - } - - wall - { - type fixedValue; - value uniform 1e-11; - } - - atmosphere - { - type inletOutlet; - inletValue uniform 0.001; - value uniform 1e-11; - } - - front - { - type wedge; - } - - back - { - type wedge; - } -} - -// ************************************************************************* // diff --git a/tutorials/lesInterFoam/nozzleFlow2D/0/nuSgs b/tutorials/lesInterFoam/nozzleFlow2D/0/nuSgs deleted file mode 100644 index ba060ef66c5..00000000000 --- a/tutorials/lesInterFoam/nozzleFlow2D/0/nuSgs +++ /dev/null @@ -1,54 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | -| \\ / A nd | Web: http://www.OpenFOAM.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class volScalarField; - object nuSgs; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -dimensions [0 2 -1 0 0 0 0]; - -internalField uniform 1e-11; - -boundaryField -{ - axis - { - type empty; - } - - inlet - { - type zeroGradient; - } - - wall - { - type zeroGradient; - } - - atmosphere - { - type zeroGradient; - } - - front - { - type wedge; - } - - back - { - type wedge; - } -} - -// ************************************************************************* // diff --git a/tutorials/lesInterFoam/nozzleFlow2D/0/nuTilda b/tutorials/lesInterFoam/nozzleFlow2D/0/nuTilda deleted file mode 100644 index d02f2919636..00000000000 --- a/tutorials/lesInterFoam/nozzleFlow2D/0/nuTilda +++ /dev/null @@ -1,58 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | -| \\ / A nd | Web: http://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 -{ - axis - { - type empty; - } - - inlet - { - type fixedValue; - value uniform 0; - } - - wall - { - type fixedValue; - value uniform 0; - } - - atmosphere - { - type inletOutlet; - inletValue uniform 0; - value uniform 0; - } - - front - { - type wedge; - } - - back - { - type wedge; - } -} - -// ************************************************************************* // diff --git a/tutorials/lesInterFoam/nozzleFlow2D/0/pd b/tutorials/lesInterFoam/nozzleFlow2D/0/pd deleted file mode 100644 index 58eb97f2613..00000000000 --- a/tutorials/lesInterFoam/nozzleFlow2D/0/pd +++ /dev/null @@ -1,61 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | -| \\ / A nd | Web: http://www.OpenFOAM.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class volScalarField; - object pd; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -dimensions [1 -1 -2 0 0 0 0]; - -internalField uniform 0; - -boundaryField -{ - axis - { - type empty; - } - - inlet - { - type zeroGradient; - } - - wall - { - type zeroGradient; - } - - atmosphere - { - type totalPressure; - p0 uniform 0; - U U; - phi phi; - rho none; - psi none; - gamma 1; - value uniform 0; - } - - front - { - type wedge; - } - - back - { - type wedge; - } -} - -// ************************************************************************* // diff --git a/tutorials/lesInterFoam/nozzleFlow2D/Allclean b/tutorials/lesInterFoam/nozzleFlow2D/Allclean deleted file mode 100755 index 0bf8736235a..00000000000 --- a/tutorials/lesInterFoam/nozzleFlow2D/Allclean +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh - -# Source tutorial clean functions -. $WM_PROJECT_DIR/bin/tools/CleanFunctions - -cleanCase -cp constant/polyMesh/boundary.org constant/polyMesh/boundary diff --git a/tutorials/lesInterFoam/nozzleFlow2D/Allrun b/tutorials/lesInterFoam/nozzleFlow2D/Allrun deleted file mode 100755 index 8b76469d5ee..00000000000 --- a/tutorials/lesInterFoam/nozzleFlow2D/Allrun +++ /dev/null @@ -1,33 +0,0 @@ -#!/bin/sh -# Source tutorial run functions -. $WM_PROJECT_DIR/bin/tools/RunFunctions - -# Get application name from directory -application="lesInterFoam" - -runRefineMesh () -{ - echo "Running refineMesh on $PWD" - refineMesh -dict > log.refineMesh 2>&1 -} - -runApplication blockMesh - -i=1 -if [ -f log.cellSet ] ; then - i=3 -fi -while [ "$i" -lt 3 ] ; do - if [ -f log.cellSet ] ; then - mv log.cellSet log.cellSet.1 - fi - cp system/cellSetDict.${i} system/cellSetDict - runApplication cellSet - runRefineMesh - cp -r 1e-08/polyMesh/* constant/polyMesh - rm -rf 1e-08 - i=`expr $i + 1` -done -cp constant/polyMesh/boundary.org constant/polyMesh/boundary - -runApplication $application diff --git a/tutorials/lesInterFoam/nozzleFlow2D/constant/LESProperties b/tutorials/lesInterFoam/nozzleFlow2D/constant/LESProperties deleted file mode 100644 index dab2d58091b..00000000000 --- a/tutorials/lesInterFoam/nozzleFlow2D/constant/LESProperties +++ /dev/null @@ -1,176 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | -| \\ / A nd | Web: http://www.OpenFOAM.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - object LESProperties; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -LESModel oneEqEddy; - -delta smooth; - -printCoeffs on; - -laminarCoeffs -{ -} - -oneEqEddyCoeffs -{ - ck 0.07; - ce 1.05; -} - -dynOneEqEddyCoeffs -{ - ce 1.05; - filter simple; -} - -locDynOneEqEddyCoeffs -{ - ce 1.05; - filter simple; -} - -SmagorinskyCoeffs -{ - ce 1.05; - ck 0.07; -} - -Smagorinsky2Coeffs -{ - ce 1.05; - ck 0.07; - cD2 0.02; -} - -spectEddyViscCoeffs -{ - ce 1.05; - cB 8.22; - cK1 0.83; - cK2 1.03; - cK3 4.75; - cK4 2.55; -} - -dynSmagorinskyCoeffs -{ - ce 1.05; - filter simple; -} - -mixedSmagorinskyCoeffs -{ - ce 1.05; - ck 0.07; - filter simple; -} - -dynMixedSmagorinskyCoeffs -{ - ce 1.05; - filter simple; -} - -LRRDiffStressCoeffs -{ - ce 1.05; - ck 0.09; - c1 1.8; - c2 0.6; -} - -DeardorffDiffStressCoeffs -{ - ce 1.05; - ck 0.09; - cm 4.13; -} - -SpalartAllmarasCoeffs -{ - alphaNut 1.5; - Cb1 0.1355; - Cb2 0.622; - Cw2 0.3; - Cw3 2; - Cv1 7.1; - Cv2 5.0; - CDES 0.65; - ck 0.07; -} - -cubeRootVolCoeffs -{ - deltaCoeff 1; -} - -PrandtlCoeffs -{ - delta cubeRootVol; - cubeRootVolCoeffs - { - deltaCoeff 1; - } - smoothCoeffs - { - delta cubeRootVol; - cubeRootVolCoeffs - { - deltaCoeff 1; - } - maxDeltaRatio 1.1; - } - Cdelta 0.158; -} - -vanDriestCoeffs -{ - delta cubeRootVol; - cubeRootVolCoeffs - { - deltaCoeff 1; - } - smoothCoeffs - { - delta cubeRootVol; - cubeRootVolCoeffs - { - deltaCoeff 1; - } - maxDeltaRatio 1.1; - } - Aplus 26; - Cdelta 0.158; -} - -smoothCoeffs -{ - delta cubeRootVol; - cubeRootVolCoeffs - { - deltaCoeff 1; - } - maxDeltaRatio 1.1; -} - -kappa 0.4187; - -wallFunctionCoeffs -{ - E 9; -} - -// ************************************************************************* // diff --git a/tutorials/lesInterFoam/nozzleFlow2D/constant/environmentalProperties b/tutorials/lesInterFoam/nozzleFlow2D/constant/environmentalProperties deleted file mode 100644 index ca80af21ee6..00000000000 --- a/tutorials/lesInterFoam/nozzleFlow2D/constant/environmentalProperties +++ /dev/null @@ -1,19 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | -| \\ / A nd | Web: http://www.OpenFOAM.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - object environmentalProperties; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -g g [0 1 -2 0 0 0 0] (0 0 0); - -// ************************************************************************* // diff --git a/tutorials/lesInterFoam/nozzleFlow2D/constant/polyMesh/blockMeshDict b/tutorials/lesInterFoam/nozzleFlow2D/constant/polyMesh/blockMeshDict deleted file mode 100644 index 6285892ea29..00000000000 --- a/tutorials/lesInterFoam/nozzleFlow2D/constant/polyMesh/blockMeshDict +++ /dev/null @@ -1,114 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | -| \\ / A nd | Web: http://www.OpenFOAM.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - object blockMeshDict; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -convertToMeters 1e-06; - -vertices -( - (0 0 0) - (3000 0 0) - (0 100 -4.36609429085) - (3000 300 -13.0982828726) - (0 400 -17.4643771634) - (3000 700 -30.562660036) - (0 800 -34.9287543268) - (3000 1000 -43.6609429085) - (0 1600 -69.8575086536) - (3000 1600 -69.8575086536) - - (0 100 4.36609429085) - (3000 300 13.0982828726) - (0 400 17.4643771634) - (3000 700 30.562660036) - (0 800 34.9287543268) - (3000 1000 43.6609429085) - (0 1600 69.8575086536) - (3000 1600 69.8575086536) -); - -blocks -( - hex (0 1 3 2 0 1 11 10) - (75 30 1) - edgeGrading (1 1 1 1 0.1666667 1 1 0.1666667 1 1 1 1) - - hex (2 3 5 4 10 11 13 12) - (75 40 1) - edgeGrading (1 1 1 1 20 1 1 20 1 1 1 1) - - hex (4 5 7 6 12 13 15 14) - (75 15 1) - simpleGrading (1.0 1.0 1.0) - - hex (6 7 9 8 14 15 17 16) - (75 15 1) - simpleGrading (1.0 1.0 1.0) -); - -edges -( -); - -patches -( - empty axis - ( - (0 1 1 0) - ) - - patch inlet - ( - (0 0 10 2) - ) - - wall wall - ( - (2 10 12 4) - (4 12 14 6) - (6 14 16 8) - ) - - patch atmosphere - ( - (8 16 17 9) - (7 9 17 15) - (5 7 15 13) - (3 5 13 11) - (1 3 11 1) - ) - - wedge front - ( - (0 1 11 10) - (10 11 13 12) - (12 13 15 14) - (14 15 17 16) - ) - - wedge back - ( - (0 2 3 1) - (2 4 5 3) - (4 6 7 5) - (6 8 9 7) - ) -); - -mergePatchPairs -( -); - -// ************************************************************************* // diff --git a/tutorials/lesInterFoam/nozzleFlow2D/constant/polyMesh/boundary b/tutorials/lesInterFoam/nozzleFlow2D/constant/polyMesh/boundary deleted file mode 100644 index b3394ff8e88..00000000000 --- a/tutorials/lesInterFoam/nozzleFlow2D/constant/polyMesh/boundary +++ /dev/null @@ -1,68 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | -| \\ / A nd | Web: http://www.OpenFOAM.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class polyBoundaryMesh; - object boundary; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -6 -( -axis -{ - type empty; - physicalType empty; - nFaces 0; - startFace 41031; -} - -inlet -{ - type patch; - physicalType inlet; - nFaces 30; - startFace 41031; -} - -wall -{ - type wall; - physicalType wall; - nFaces 70; - startFace 41061; -} - -atmosphere -{ - type patch; - physicalType atmosphere; - nFaces 175; - startFace 41131; -} - -front -{ - type wedge; - physicalType wedge; - nFaces 20603; - startFace 41306; -} - -back -{ - type wedge; - physicalType wedge; - nFaces 20603; - startFace 61909; -} -) - -// ************************************************************************* // diff --git a/tutorials/lesInterFoam/nozzleFlow2D/constant/polyMesh/boundary.org b/tutorials/lesInterFoam/nozzleFlow2D/constant/polyMesh/boundary.org deleted file mode 100644 index b3394ff8e88..00000000000 --- a/tutorials/lesInterFoam/nozzleFlow2D/constant/polyMesh/boundary.org +++ /dev/null @@ -1,68 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | -| \\ / A nd | Web: http://www.OpenFOAM.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class polyBoundaryMesh; - object boundary; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -6 -( -axis -{ - type empty; - physicalType empty; - nFaces 0; - startFace 41031; -} - -inlet -{ - type patch; - physicalType inlet; - nFaces 30; - startFace 41031; -} - -wall -{ - type wall; - physicalType wall; - nFaces 70; - startFace 41061; -} - -atmosphere -{ - type patch; - physicalType atmosphere; - nFaces 175; - startFace 41131; -} - -front -{ - type wedge; - physicalType wedge; - nFaces 20603; - startFace 41306; -} - -back -{ - type wedge; - physicalType wedge; - nFaces 20603; - startFace 61909; -} -) - -// ************************************************************************* // diff --git a/tutorials/lesInterFoam/nozzleFlow2D/constant/polyMesh/sets/c0 b/tutorials/lesInterFoam/nozzleFlow2D/constant/polyMesh/sets/c0 deleted file mode 100644 index ad041779915..00000000000 --- a/tutorials/lesInterFoam/nozzleFlow2D/constant/polyMesh/sets/c0 +++ /dev/null @@ -1,7090 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | -| \\ / A nd | Web: http://www.OpenFOAM.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class cellSet; - object c0; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -7069 -( -10832 -0 -10833 -1 -10834 -2 -10835 -3 -10836 -4 -10837 -5 -10838 -6 -10839 -7 -10840 -8 -10841 -9 -10842 -10 -10843 -11 -10844 -12 -10845 -13 -10846 -14 -10847 -15 -10848 -16 -10849 -17 -10850 -18 -10851 -19 -10852 -20 -10853 -21 -10854 -22 -10855 -23 -10856 -24 -10857 -25 -10858 -26 -10859 -27 -10860 -28 -10861 -29 -10862 -30 -10863 -31 -10864 -32 -10865 -33 -10866 -34 -10867 -35 -10868 -36 -10869 -37 -10870 -38 -10871 -39 -10872 -40 -10873 -41 -10874 -42 -10875 -43 -10876 -44 -10877 -45 -10878 -46 -10879 -47 -10880 -48 -10881 -49 -10882 -50 -10883 -51 -10884 -52 -10885 -53 -10886 -54 -10887 -55 -10888 -56 -10889 -57 -10890 -58 -10891 -59 -10892 -60 -10893 -61 -10894 -62 -10895 -63 -10896 -64 -10897 -65 -10898 -66 -10899 -67 -10900 -68 -10901 -69 -10902 -70 -10903 -71 -10904 -72 -10905 -73 -10906 -74 -10907 -75 -10908 -76 -10909 -77 -10910 -78 -10911 -79 -10912 -80 -10913 -81 -10914 -82 -10915 -83 -10916 -84 -10917 -85 -10918 -86 -10919 -87 -10920 -88 -10921 -89 -10922 -90 -10923 -91 -10924 -92 -10925 -93 -10926 -94 -10927 -95 -10928 -96 -10929 -97 -10930 -98 -10931 -99 -10932 -100 -10933 -101 -10934 -102 -10935 -103 -10936 -104 -10937 -105 -10938 -106 -10939 -107 -10940 -108 -10941 -109 -10942 -110 -10943 -111 -10944 -112 -10945 -113 -10946 -114 -10947 -115 -10948 -116 -10949 -117 -10950 -118 -10951 -119 -10952 -120 -10953 -121 -10954 -122 -10955 -123 -10956 -124 -10957 -125 -10958 -126 -10959 -127 -10960 -128 -10961 -129 -10962 -130 -10963 -131 -10964 -132 -10965 -133 -10966 -134 -10967 -135 -10968 -136 -10969 -137 -10970 -138 -10971 -139 -10972 -140 -10973 -141 -10974 -142 -10975 -143 -10976 -144 -10977 -145 -10978 -146 -10979 -147 -10980 -148 -10981 -149 -10982 -150 -10983 -151 -10984 -152 -10985 -153 -10986 -154 -10987 -155 -10988 -156 -10989 -157 -10990 -158 -10991 -159 -10992 -160 -10993 -161 -10994 -162 -10995 -163 -10996 -164 -10997 -165 -10998 -166 -10999 -167 -11000 -168 -11001 -169 -11002 -170 -11003 -171 -11004 -172 -11005 -173 -11006 -174 -11007 -175 -11008 -176 -11009 -177 -11010 -178 -11011 -179 -11012 -180 -11013 -181 -11014 -182 -11015 -183 -11016 -184 -11017 -185 -11018 -186 -11019 -187 -11020 -188 -11021 -189 -11022 -190 -11023 -191 -11024 -192 -11025 -193 -11026 -194 -11027 -195 -11028 -196 -11029 -197 -11030 -198 -11031 -199 -11032 -200 -11033 -201 -11034 -202 -11035 -203 -11036 -204 -11037 -205 -11038 -206 -11039 -207 -11040 -208 -11041 -209 -11042 -210 -11043 -211 -11044 -212 -11045 -213 -11046 -214 -11047 -215 -11048 -216 -11049 -217 -11050 -218 -11051 -219 -11052 -220 -11053 -221 -11054 -222 -11055 -223 -11056 -224 -11057 -225 -11058 -226 -11059 -227 -11060 -228 -11061 -229 -11062 -230 -11063 -231 -11064 -232 -11065 -233 -11066 -234 -11067 -235 -11068 -236 -11069 -237 -11070 -238 -11071 -239 -11072 -240 -11073 -241 -11074 -242 -11075 -243 -11076 -244 -11077 -245 -11078 -246 -11079 -247 -11080 -248 -11081 -249 -11082 -250 -11083 -251 -11084 -252 -11085 -253 -11086 -254 -11087 -255 -11088 -256 -11089 -257 -11090 -258 -11091 -259 -11092 -260 -11093 -261 -11094 -262 -11095 -263 -11096 -264 -11097 -265 -11098 -266 -11099 -267 -11100 -268 -11101 -269 -11102 -270 -11103 -271 -11104 -272 -11105 -273 -11106 -274 -11107 -275 -11108 -276 -11109 -277 -11110 -278 -11111 -279 -11112 -280 -11113 -281 -11114 -282 -11115 -283 -11116 -284 -11117 -285 -11118 -286 -11119 -287 -11120 -288 -11121 -289 -11122 -290 -11123 -291 -11124 -292 -11125 -293 -11126 -294 -11127 -295 -11128 -296 -11129 -297 -11130 -298 -11131 -299 -11132 -300 -11133 -301 -11134 -302 -11135 -303 -11136 -304 -11137 -305 -11138 -306 -11139 -307 -11140 -308 -11141 -309 -11142 -310 -11143 -311 -11144 -312 -11145 -313 -11146 -314 -11147 -315 -11148 -316 -11149 -317 -11150 -318 -11151 -319 -11152 -320 -11153 -321 -11154 -322 -11155 -323 -11156 -324 -11157 -325 -11158 -326 -11159 -327 -11160 -328 -11161 -329 -11162 -330 -11163 -331 -11164 -332 -11165 -333 -11166 -334 -11167 -335 -11168 -336 -11169 -337 -11170 -338 -11171 -339 -11172 -340 -11173 -341 -11174 -342 -11175 -343 -11176 -344 -11177 -345 -11178 -346 -11179 -347 -11180 -348 -11181 -349 -11182 -350 -11183 -351 -11184 -352 -11185 -353 -11186 -354 -11187 -355 -11188 -356 -11189 -357 -11190 -358 -11191 -359 -11192 -360 -11193 -361 -11194 -362 -11195 -363 -11196 -364 -11197 -365 -11198 -366 -11199 -367 -11200 -368 -11201 -369 -11202 -370 -11203 -371 -11204 -372 -11205 -373 -11206 -374 -11207 -375 -11208 -376 -11209 -377 -11210 -378 -11211 -379 -11212 -380 -11213 -381 -11214 -382 -11215 -383 -11216 -384 -11217 -385 -11218 -386 -11219 -387 -11220 -388 -11221 -389 -11222 -390 -11223 -391 -11224 -392 -11225 -393 -11226 -394 -11227 -395 -11228 -396 -11229 -397 -11230 -398 -11231 -399 -11232 -400 -11233 -401 -11234 -402 -11235 -403 -11236 -404 -11237 -405 -11238 -406 -11239 -407 -11240 -408 -11241 -409 -11242 -410 -11243 -411 -11244 -412 -11245 -413 -11246 -414 -11247 -415 -11248 -416 -11249 -417 -11250 -418 -11251 -419 -11252 -420 -11253 -421 -11254 -422 -11255 -423 -11256 -424 -11257 -425 -11258 -426 -11259 -427 -11260 -428 -11261 -429 -11262 -430 -11263 -431 -11264 -432 -11265 -433 -11266 -434 -11267 -435 -11268 -436 -11269 -437 -11270 -438 -11271 -439 -11272 -440 -11273 -441 -11274 -442 -11275 -443 -11276 -444 -11277 -445 -11278 -446 -11279 -447 -11280 -448 -11281 -449 -11282 -450 -11283 -451 -11284 -452 -11285 -453 -11286 -454 -11287 -455 -11288 -456 -11289 -457 -11290 -458 -11291 -459 -11292 -460 -11293 -461 -11294 -462 -11295 -463 -11296 -464 -11297 -465 -11298 -466 -11299 -467 -11300 -468 -11301 -469 -11302 -470 -11303 -471 -11304 -472 -11305 -473 -11306 -474 -11307 -475 -11308 -476 -11309 -477 -11310 -478 -11311 -479 -11312 -480 -11313 -481 -11314 -482 -11315 -483 -11316 -484 -11317 -485 -11318 -486 -11319 -487 -11320 -488 -11321 -489 -11322 -490 -11323 -491 -11324 -492 -11325 -493 -11326 -494 -11327 -495 -11328 -496 -11329 -497 -11330 -498 -11331 -499 -11332 -500 -11333 -501 -11334 -502 -11335 -503 -11336 -504 -11337 -505 -11338 -506 -11339 -507 -11340 -508 -11341 -509 -11342 -510 -11343 -511 -11344 -512 -11345 -513 -11346 -514 -11347 -515 -11348 -516 -11349 -517 -11350 -518 -11351 -519 -11352 -520 -11353 -521 -11354 -522 -11355 -523 -11356 -524 -11357 -525 -11358 -526 -11359 -527 -11360 -528 -11361 -529 -11362 -530 -11363 -531 -11364 -532 -11365 -533 -11366 -534 -11367 -535 -11368 -536 -11369 -537 -11370 -538 -11371 -539 -11372 -540 -11373 -541 -11374 -542 -11375 -543 -11376 -544 -11377 -545 -11378 -546 -11379 -547 -11380 -548 -11381 -549 -11382 -550 -11383 -551 -11384 -552 -11385 -553 -11386 -554 -11387 -555 -11388 -556 -11389 -557 -11390 -558 -11391 -559 -11392 -560 -11393 -561 -11394 -562 -11395 -563 -11396 -564 -11397 -565 -11398 -566 -11399 -567 -11400 -568 -11401 -569 -11402 -570 -11403 -571 -11404 -572 -11405 -573 -11406 -574 -11407 -575 -11408 -576 -11409 -577 -11410 -578 -11411 -579 -11412 -580 -11413 -581 -11414 -582 -11415 -583 -11416 -584 -11417 -585 -11418 -586 -11419 -587 -11420 -588 -11421 -589 -11422 -590 -11423 -591 -11424 -592 -11425 -593 -11426 -594 -11427 -595 -11428 -596 -11429 -597 -11430 -598 -11431 -599 -11432 -600 -11433 -601 -11434 -602 -11435 -603 -11436 -604 -11437 -605 -11438 -606 -11439 -607 -11440 -608 -11441 -609 -11442 -610 -11443 -611 -11444 -612 -11445 -613 -11446 -614 -11447 -615 -11448 -616 -11449 -617 -11450 -618 -11451 -619 -11452 -620 -11453 -621 -11454 -622 -11455 -623 -11456 -624 -11457 -625 -11458 -626 -11459 -627 -11460 -628 -11461 -629 -11462 -630 -11463 -631 -11464 -632 -11465 -633 -11466 -634 -11467 -635 -11468 -636 -11469 -637 -11470 -638 -11471 -639 -11472 -640 -11473 -641 -11474 -642 -11475 -643 -11476 -644 -11477 -645 -11478 -646 -11479 -647 -11480 -648 -11481 -649 -11482 -650 -11483 -651 -11484 -652 -11485 -653 -11486 -654 -11487 -655 -11488 -656 -11489 -657 -11490 -658 -11491 -659 -11492 -660 -11493 -661 -11494 -662 -11495 -663 -11496 -664 -11497 -665 -11498 -666 -11499 -667 -11500 -668 -11501 -669 -11502 -670 -11503 -671 -11504 -672 -11505 -673 -11506 -674 -11507 -675 -11508 -676 -11509 -677 -11510 -678 -11511 -679 -11512 -680 -11513 -681 -11514 -682 -11515 -683 -11516 -684 -11517 -685 -11518 -686 -11519 -687 -11520 -688 -11521 -689 -11522 -690 -11523 -691 -11524 -692 -11525 -693 -11526 -694 -11527 -695 -11528 -696 -11529 -697 -11530 -698 -11531 -699 -11532 -700 -11533 -701 -11534 -702 -11535 -703 -11536 -704 -11537 -705 -11538 -706 -11539 -707 -11540 -708 -11541 -709 -11542 -710 -11543 -711 -11544 -712 -11545 -713 -11546 -714 -11547 -715 -11548 -716 -11549 -717 -11550 -718 -11551 -719 -11552 -720 -11553 -721 -11554 -722 -11555 -723 -11556 -724 -11557 -725 -11558 -726 -11559 -727 -11560 -728 -11561 -729 -11562 -730 -11563 -731 -11564 -732 -11565 -733 -11566 -734 -11567 -735 -11568 -736 -11569 -737 -11570 -738 -11571 -739 -11572 -740 -11573 -741 -11574 -742 -11575 -743 -11576 -744 -11577 -745 -11578 -746 -11579 -747 -11580 -748 -11581 -749 -11582 -750 -11583 -751 -11584 -752 -11585 -753 -11586 -754 -11587 -755 -11588 -756 -11589 -757 -11590 -758 -11591 -759 -11592 -760 -11593 -761 -11594 -762 -11595 -763 -11596 -764 -11597 -765 -11598 -766 -11599 -767 -11600 -768 -11601 -769 -11602 -770 -11603 -771 -11604 -772 -11605 -773 -11606 -774 -11607 -775 -11608 -776 -11609 -777 -11610 -778 -11611 -779 -11612 -780 -11613 -781 -11614 -782 -11615 -783 -11616 -784 -11617 -785 -11618 -786 -11619 -787 -11620 -788 -11621 -789 -11622 -790 -11623 -791 -11624 -792 -11625 -793 -11626 -794 -11627 -795 -11628 -796 -11629 -797 -11630 -798 -11631 -799 -11632 -800 -11633 -801 -11634 -802 -11635 -803 -11636 -804 -11637 -805 -11638 -806 -11639 -807 -11640 -808 -11641 -809 -11642 -810 -11643 -811 -11644 -812 -11645 -813 -11646 -814 -11647 -815 -11648 -816 -11649 -817 -11650 -818 -11651 -819 -11652 -820 -11653 -821 -11654 -822 -11655 -823 -11656 -824 -11657 -825 -11658 -826 -11659 -827 -11660 -828 -11661 -829 -11662 -830 -11663 -831 -11664 -832 -11665 -833 -11666 -834 -11667 -835 -11668 -836 -11669 -837 -11670 -838 -11671 -839 -11672 -840 -11673 -841 -11674 -842 -11675 -843 -11676 -844 -11677 -845 -11678 -846 -11679 -847 -11680 -848 -11681 -849 -11682 -850 -11683 -851 -11684 -852 -11685 -853 -11686 -854 -11687 -855 -11688 -856 -11689 -857 -11690 -858 -11691 -859 -11692 -860 -11693 -861 -11694 -862 -11695 -863 -11696 -864 -11697 -865 -11698 -866 -11699 -867 -11700 -868 -11701 -869 -11702 -870 -11703 -871 -11704 -872 -11705 -873 -11706 -874 -11707 -875 -11708 -876 -11709 -877 -11710 -878 -11711 -879 -11712 -880 -11713 -881 -11714 -882 -11715 -883 -11716 -884 -11717 -885 -11718 -886 -11719 -887 -11720 -888 -11721 -889 -11722 -890 -11723 -891 -11724 -892 -11725 -893 -11726 -894 -11727 -895 -11728 -896 -11729 -897 -11730 -898 -11731 -899 -11732 -900 -11733 -901 -11734 -902 -903 -904 -905 -906 -907 -908 -909 -11742 -910 -11743 -911 -11744 -912 -11745 -913 -11746 -914 -11747 -915 -11748 -916 -11749 -917 -11750 -918 -11751 -919 -11752 -920 -11753 -921 -11754 -922 -11755 -923 -11756 -924 -11757 -925 -11758 -926 -11759 -927 -11760 -928 -11761 -929 -11762 -930 -11763 -931 -11764 -932 -11765 -933 -11766 -934 -11767 -935 -11768 -936 -11769 -937 -11770 -938 -11771 -939 -11772 -940 -11773 -941 -11774 -942 -11775 -943 -11776 -944 -11777 -945 -11778 -946 -11779 -947 -11780 -948 -11781 -949 -11782 -950 -11783 -951 -11784 -952 -11785 -953 -11786 -954 -11787 -955 -11788 -956 -11789 -957 -11790 -958 -11791 -959 -11792 -960 -11793 -961 -11794 -962 -11795 -963 -11796 -964 -11797 -965 -11798 -966 -11799 -967 -11800 -968 -11801 -969 -11802 -970 -11803 -971 -11804 -972 -973 -974 -975 -976 -977 -978 -979 -980 -981 -982 -983 -984 -11817 -985 -11818 -986 -11819 -987 -11820 -988 -11821 -989 -11822 -990 -11823 -991 -11824 -992 -11825 -993 -11826 -994 -11827 -995 -11828 -996 -11829 -997 -11830 -998 -11831 -999 -11832 -1000 -11833 -1001 -11834 -1002 -11835 -1003 -11836 -1004 -11837 -1005 -11838 -1006 -11839 -1007 -11840 -1008 -11841 -1009 -11842 -1010 -11843 -1011 -11844 -1012 -11845 -1013 -11846 -1014 -11847 -1015 -11848 -1016 -11849 -1017 -11850 -1018 -11851 -1019 -11852 -1020 -11853 -1021 -11854 -1022 -11855 -1023 -11856 -1024 -11857 -1025 -11858 -1026 -11859 -1027 -11860 -1028 -11861 -1029 -11862 -1030 -11863 -1031 -11864 -1032 -11865 -1033 -11866 -1034 -11867 -1035 -11868 -1036 -11869 -1037 -11870 -1038 -11871 -1039 -11872 -1040 -11873 -1041 -11874 -1042 -1043 -1044 -1045 -1046 -1047 -1048 -1049 -1050 -1051 -1052 -1053 -1054 -1055 -1056 -1057 -1058 -1059 -11892 -1060 -11893 -1061 -11894 -1062 -11895 -1063 -11896 -1064 -11897 -1065 -11898 -1066 -11899 -1067 -11900 -1068 -11901 -1069 -11902 -1070 -11903 -1071 -11904 -1072 -11905 -1073 -11906 -1074 -11907 -1075 -11908 -1076 -11909 -1077 -11910 -1078 -11911 -1079 -11912 -1080 -11913 -1081 -11914 -1082 -11915 -1083 -11916 -1084 -11917 -1085 -11918 -1086 -11919 -1087 -11920 -1088 -11921 -1089 -11922 -1090 -11923 -1091 -11924 -1092 -11925 -1093 -11926 -1094 -11927 -1095 -11928 -1096 -11929 -1097 -11930 -1098 -11931 -1099 -11932 -1100 -11933 -1101 -11934 -1102 -11935 -1103 -11936 -1104 -11937 -1105 -11938 -1106 -11939 -1107 -11940 -1108 -11941 -1109 -11942 -1110 -11943 -1111 -11944 -1112 -11945 -1113 -1114 -1115 -1116 -1117 -1118 -1119 -1120 -1121 -1122 -1123 -1124 -1125 -1126 -1127 -1128 -1129 -1130 -1131 -1132 -1133 -1134 -11967 -1135 -11968 -1136 -11969 -1137 -11970 -1138 -11971 -1139 -11972 -1140 -11973 -1141 -11974 -1142 -11975 -1143 -11976 -1144 -11977 -1145 -11978 -1146 -11979 -1147 -11980 -1148 -11981 -1149 -11982 -1150 -11983 -1151 -11984 -1152 -11985 -1153 -11986 -1154 -11987 -1155 -11988 -1156 -11989 -1157 -11990 -1158 -11991 -1159 -11992 -1160 -11993 -1161 -11994 -1162 -11995 -1163 -11996 -1164 -11997 -1165 -11998 -1166 -11999 -1167 -12000 -1168 -12001 -1169 -12002 -1170 -12003 -1171 -12004 -1172 -12005 -1173 -12006 -1174 -12007 -1175 -12008 -1176 -12009 -1177 -12010 -1178 -12011 -1179 -12012 -1180 -12013 -1181 -12014 -1182 -12015 -1183 -12016 -1184 -1185 -1186 -1187 -1188 -1189 -1190 -1191 -1192 -1193 -1194 -1195 -1196 -1197 -1198 -1199 -1200 -1201 -1202 -1203 -1204 -1205 -1206 -1207 -1208 -1209 -12042 -1210 -12043 -1211 -12044 -1212 -12045 -1213 -12046 -1214 -12047 -1215 -12048 -1216 -12049 -1217 -12050 -1218 -12051 -1219 -12052 -1220 -12053 -1221 -12054 -1222 -12055 -1223 -12056 -1224 -12057 -1225 -12058 -1226 -12059 -1227 -12060 -1228 -12061 -1229 -12062 -1230 -12063 -1231 -12064 -1232 -12065 -1233 -12066 -1234 -12067 -1235 -12068 -1236 -12069 -1237 -12070 -1238 -12071 -1239 -12072 -1240 -12073 -1241 -12074 -1242 -12075 -1243 -12076 -1244 -12077 -1245 -12078 -1246 -12079 -1247 -12080 -1248 -12081 -1249 -12082 -1250 -12083 -1251 -12084 -1252 -12085 -1253 -12086 -1254 -12087 -1255 -1256 -1257 -1258 -1259 -1260 -1261 -1262 -1263 -1264 -1265 -1266 -1267 -1268 -1269 -1270 -1271 -1272 -1273 -1274 -1275 -1276 -1277 -1278 -1279 -1280 -1281 -1282 -1283 -1284 -12117 -1285 -12118 -1286 -12119 -1287 -12120 -1288 -12121 -1289 -12122 -1290 -12123 -1291 -12124 -1292 -12125 -1293 -12126 -1294 -12127 -1295 -12128 -1296 -12129 -1297 -12130 -1298 -12131 -1299 -12132 -1300 -12133 -1301 -12134 -1302 -12135 -1303 -12136 -1304 -12137 -1305 -12138 -1306 -12139 -1307 -12140 -1308 -12141 -1309 -12142 -1310 -12143 -1311 -12144 -1312 -12145 -1313 -12146 -1314 -12147 -1315 -12148 -1316 -12149 -1317 -12150 -1318 -12151 -1319 -12152 -1320 -12153 -1321 -12154 -1322 -12155 -1323 -12156 -1324 -12157 -1325 -12158 -1326 -1327 -1328 -1329 -1330 -1331 -1332 -1333 -1334 -1335 -1336 -1337 -1338 -1339 -1340 -1341 -1342 -1343 -1344 -1345 -1346 -1347 -1348 -1349 -1350 -1351 -1352 -1353 -1354 -1355 -1356 -1357 -1358 -1359 -12192 -1360 -12193 -1361 -12194 -1362 -12195 -1363 -12196 -1364 -12197 -1365 -12198 -1366 -12199 -1367 -12200 -1368 -12201 -1369 -12202 -1370 -12203 -1371 -12204 -1372 -12205 -1373 -12206 -1374 -12207 -1375 -12208 -1376 -12209 -1377 -12210 -1378 -12211 -1379 -12212 -1380 -12213 -1381 -12214 -1382 -12215 -1383 -12216 -1384 -12217 -1385 -12218 -1386 -12219 -1387 -12220 -1388 -12221 -1389 -12222 -1390 -12223 -1391 -12224 -1392 -12225 -1393 -12226 -1394 -12227 -1395 -12228 -1396 -12229 -1397 -12230 -1398 -1399 -1400 -1401 -1402 -1403 -1404 -1405 -1406 -1407 -1408 -1409 -1410 -1411 -1412 -1413 -1414 -1415 -1416 -1417 -1418 -1419 -1420 -1421 -1422 -1423 -1424 -1425 -1426 -1427 -1428 -1429 -1430 -1431 -1432 -1433 -1434 -12267 -1435 -12268 -1436 -12269 -1437 -12270 -1438 -12271 -1439 -12272 -1440 -12273 -1441 -12274 -1442 -12275 -1443 -12276 -1444 -12277 -1445 -12278 -1446 -12279 -1447 -12280 -1448 -12281 -1449 -12282 -1450 -12283 -1451 -12284 -1452 -12285 -1453 -12286 -1454 -12287 -1455 -12288 -1456 -12289 -1457 -12290 -1458 -12291 -1459 -12292 -1460 -12293 -1461 -12294 -1462 -12295 -1463 -12296 -1464 -12297 -1465 -12298 -1466 -12299 -1467 -12300 -1468 -12301 -1469 -12302 -1470 -1471 -1472 -1473 -1474 -1475 -1476 -1477 -1478 -1479 -1480 -1481 -1482 -1483 -1484 -1485 -1486 -1487 -1488 -1489 -1490 -1491 -1492 -1493 -1494 -1495 -1496 -1497 -1498 -1499 -1500 -1501 -1502 -1503 -1504 -1505 -1506 -1507 -1508 -1509 -12342 -1510 -12343 -1511 -12344 -1512 -12345 -1513 -12346 -1514 -12347 -1515 -12348 -1516 -12349 -1517 -12350 -1518 -12351 -1519 -12352 -1520 -12353 -1521 -12354 -1522 -12355 -1523 -12356 -1524 -12357 -1525 -12358 -1526 -12359 -1527 -12360 -1528 -12361 -1529 -12362 -1530 -12363 -1531 -12364 -1532 -12365 -1533 -12366 -1534 -12367 -1535 -12368 -1536 -12369 -1537 -12370 -1538 -12371 -1539 -12372 -1540 -12373 -1541 -12374 -1542 -1543 -1544 -1545 -1546 -1547 -1548 -1549 -1550 -1551 -1552 -1553 -1554 -1555 -1556 -1557 -1558 -1559 -1560 -1561 -1562 -1563 -1564 -1565 -1566 -1567 -1568 -1569 -1570 -1571 -1572 -1573 -1574 -1575 -1576 -1577 -1578 -1579 -1580 -1581 -1582 -1583 -1584 -12417 -1585 -12418 -1586 -12419 -1587 -12420 -1588 -12421 -1589 -12422 -1590 -12423 -1591 -12424 -1592 -12425 -1593 -12426 -1594 -12427 -1595 -12428 -1596 -12429 -1597 -12430 -1598 -12431 -1599 -12432 -1600 -12433 -1601 -12434 -1602 -12435 -1603 -12436 -1604 -12437 -1605 -12438 -1606 -12439 -1607 -12440 -1608 -12441 -1609 -12442 -1610 -12443 -1611 -12444 -1612 -12445 -1613 -12446 -1614 -1615 -1616 -1617 -1618 -1619 -1620 -1621 -1622 -1623 -1624 -1625 -1626 -1627 -1628 -1629 -1630 -1631 -1632 -1633 -1634 -1635 -1636 -1637 -1638 -1639 -1640 -1641 -1642 -1643 -1644 -1645 -1646 -1647 -1648 -1649 -1650 -1651 -1652 -1653 -1654 -1655 -1656 -1657 -1658 -1659 -12492 -1660 -12493 -1661 -12494 -1662 -12495 -1663 -12496 -1664 -12497 -1665 -12498 -1666 -12499 -1667 -12500 -1668 -12501 -1669 -12502 -1670 -12503 -1671 -12504 -1672 -12505 -1673 -12506 -1674 -12507 -1675 -12508 -1676 -12509 -1677 -12510 -1678 -12511 -1679 -12512 -1680 -12513 -1681 -12514 -1682 -12515 -1683 -12516 -1684 -12517 -1685 -1686 -1687 -1688 -1689 -1690 -1691 -1692 -1693 -1694 -1695 -1696 -1697 -1698 -1699 -1700 -1701 -1702 -1703 -1704 -1705 -1706 -1707 -1708 -1709 -1710 -1711 -1712 -1713 -1714 -1715 -1716 -1717 -1718 -1719 -1720 -1721 -1722 -1723 -1724 -1725 -1726 -1727 -1728 -1729 -1730 -1731 -1732 -1733 -1734 -12567 -1735 -12568 -1736 -12569 -1737 -12570 -1738 -12571 -1739 -12572 -1740 -12573 -1741 -12574 -1742 -12575 -1743 -12576 -1744 -12577 -1745 -12578 -1746 -12579 -1747 -12580 -1748 -12581 -1749 -12582 -1750 -12583 -1751 -12584 -1752 -12585 -1753 -12586 -1754 -12587 -1755 -12588 -1756 -12589 -1757 -1758 -1759 -1760 -1761 -1762 -1763 -1764 -1765 -1766 -1767 -1768 -1769 -1770 -1771 -1772 -1773 -1774 -1775 -1776 -1777 -1778 -1779 -1780 -1781 -1782 -1783 -1784 -1785 -1786 -1787 -1788 -1789 -1790 -1791 -1792 -1793 -1794 -1795 -1796 -1797 -1798 -1799 -1800 -1801 -1802 -1803 -1804 -1805 -1806 -1807 -1808 -1809 -12642 -1810 -12643 -1811 -12644 -1812 -12645 -1813 -12646 -1814 -12647 -1815 -12648 -1816 -12649 -1817 -12650 -1818 -12651 -1819 -12652 -1820 -12653 -1821 -12654 -1822 -12655 -1823 -12656 -1824 -12657 -1825 -12658 -1826 -12659 -1827 -12660 -1828 -1829 -1830 -1831 -1832 -1833 -1834 -1835 -1836 -1837 -1838 -1839 -1840 -1841 -1842 -1843 -1844 -1845 -1846 -1847 -1848 -1849 -1850 -1851 -1852 -1853 -1854 -1855 -1856 -1857 -1858 -1859 -1860 -1861 -1862 -1863 -1864 -1865 -1866 -1867 -1868 -1869 -1870 -1871 -1872 -1873 -1874 -1875 -1876 -1877 -1878 -1879 -1880 -1881 -1882 -1883 -1884 -12717 -1885 -12718 -1886 -12719 -1887 -12720 -1888 -12721 -1889 -12722 -1890 -12723 -1891 -12724 -1892 -12725 -1893 -12726 -1894 -12727 -1895 -12728 -1896 -12729 -1897 -12730 -1898 -12731 -1899 -1900 -1901 -1902 -1903 -1904 -1905 -1906 -1907 -1908 -1909 -1910 -1911 -1912 -1913 -1914 -1915 -1916 -1917 -1918 -1919 -1920 -1921 -1922 -1923 -1924 -1925 -1926 -1927 -1928 -1929 -1930 -1931 -1932 -1933 -1934 -1935 -1936 -1937 -1938 -1939 -1940 -1941 -1942 -1943 -1944 -1945 -1946 -1947 -1948 -1949 -1950 -1951 -1952 -1953 -1954 -1955 -1956 -1957 -1958 -1959 -12792 -1960 -12793 -1961 -12794 -1962 -12795 -1963 -12796 -1964 -12797 -1965 -12798 -1966 -12799 -1967 -12800 -1968 -12801 -1969 -1970 -1971 -1972 -1973 -1974 -1975 -1976 -1977 -1978 -1979 -1980 -1981 -1982 -1983 -1984 -1985 -1986 -1987 -1988 -1989 -1990 -1991 -1992 -1993 -1994 -1995 -1996 -1997 -1998 -1999 -2000 -2001 -2002 -2003 -2004 -2005 -2006 -2007 -2008 -2009 -2010 -2011 -2012 -2013 -2014 -2015 -2016 -2017 -2018 -2019 -2020 -2021 -2022 -2023 -2024 -2025 -2026 -2027 -2028 -2029 -2030 -2031 -2032 -2033 -2034 -12867 -2035 -12868 -2036 -12869 -2037 -12870 -2038 -12871 -2039 -2040 -2041 -2042 -2043 -2044 -2045 -2046 -2047 -2048 -2049 -2050 -2051 -2052 -2053 -2054 -2055 -2056 -2057 -2058 -2059 -2060 -2061 -2062 -2063 -2064 -2065 -2066 -2067 -2068 -2069 -2070 -2071 -2072 -2073 -2074 -2075 -2076 -2077 -2078 -2079 -2080 -2081 -2082 -2083 -2084 -2085 -2086 -2087 -2088 -2089 -2090 -2091 -2092 -2093 -2094 -2095 -2096 -2097 -2098 -2099 -2100 -2101 -2102 -2103 -2104 -2105 -2106 -2107 -2108 -2109 -2110 -2111 -2112 -2113 -2114 -2115 -2116 -2117 -2118 -2119 -2120 -2121 -2122 -2123 -2124 -2125 -2126 -2127 -2128 -2129 -2130 -2131 -2132 -2133 -2134 -2135 -2136 -2137 -2138 -2139 -2140 -2141 -2142 -2143 -2144 -2145 -2146 -2147 -2148 -2149 -2150 -2151 -2152 -2153 -2154 -2155 -2156 -2157 -2158 -2159 -2160 -2161 -2162 -2163 -2164 -2165 -2166 -2167 -2168 -2169 -2170 -2171 -2172 -2173 -2174 -2175 -2176 -2177 -2178 -2179 -2180 -2181 -2182 -2183 -2184 -2185 -2186 -2187 -2188 -2189 -2190 -2191 -2192 -2193 -2194 -2195 -2196 -2197 -2198 -2199 -2200 -2201 -2202 -2203 -2204 -2205 -2206 -2207 -2208 -2209 -2210 -2211 -2212 -2213 -2214 -2215 -2216 -2217 -2218 -2219 -2220 -2221 -2222 -2223 -2224 -2225 -2226 -2227 -2228 -2229 -2230 -2231 -2232 -2233 -2234 -2235 -2236 -2237 -2238 -2239 -2240 -2241 -2242 -2243 -2244 -2245 -2246 -2247 -2248 -2249 -2250 -2251 -2252 -2253 -2254 -2255 -2256 -2257 -2258 -2259 -2260 -2261 -2262 -2263 -2264 -2265 -2266 -2267 -2268 -2269 -2270 -2271 -2272 -2273 -2274 -2275 -2276 -2277 -2278 -2279 -2280 -2281 -2282 -2283 -2284 -2285 -2286 -2287 -2288 -2289 -2290 -2291 -2292 -2293 -2294 -2295 -2296 -2297 -2298 -2299 -2300 -2301 -2302 -2303 -2304 -2305 -2306 -2307 -2308 -2309 -2310 -2311 -2312 -2313 -2314 -2315 -2316 -2317 -2318 -2319 -2320 -2321 -2322 -2325 -2326 -2327 -2328 -2329 -2330 -2331 -2332 -2333 -2334 -2335 -2336 -2337 -2338 -2339 -2340 -2341 -2342 -2343 -2344 -2345 -2346 -2347 -2348 -2349 -2350 -2351 -2352 -2353 -2354 -2355 -2356 -2357 -2358 -2359 -2360 -2361 -2362 -2363 -2364 -2365 -2366 -2367 -2368 -2369 -2370 -2371 -2372 -2373 -2374 -2375 -2376 -2377 -2378 -2379 -2380 -2381 -2382 -2383 -2384 -2385 -2386 -2387 -2388 -2389 -2390 -2391 -2392 -2393 -2394 -2400 -2401 -2402 -2403 -2404 -2405 -2406 -2407 -2408 -2409 -2410 -2411 -2412 -2413 -2414 -2415 -2416 -2417 -2418 -2419 -2420 -2421 -2422 -2423 -2424 -2425 -2426 -2427 -2428 -2429 -2430 -2431 -2432 -2433 -2434 -2435 -2436 -2437 -2438 -2439 -2440 -2441 -2442 -2443 -2444 -2445 -2446 -2447 -2448 -2449 -2450 -2451 -2452 -2453 -2454 -2455 -2456 -2457 -2458 -2459 -2460 -2461 -2462 -2463 -2464 -2465 -2466 -2475 -2476 -2477 -2478 -2479 -2480 -2481 -2482 -2483 -2484 -2485 -2486 -2487 -2488 -2489 -2490 -2491 -2492 -2493 -2494 -2495 -2496 -2497 -2498 -2499 -2500 -2501 -2502 -2503 -2504 -2505 -2506 -2507 -2508 -2509 -2510 -2511 -2512 -2513 -2514 -2515 -2516 -2517 -2518 -2519 -2520 -2521 -2522 -2523 -2524 -2525 -2526 -2527 -2528 -2529 -2530 -2531 -2532 -2533 -2534 -2535 -2536 -2537 -2538 -2550 -2551 -2552 -2553 -2554 -2555 -2556 -2557 -2558 -2559 -2560 -2561 -2562 -2563 -2564 -2565 -2566 -2567 -2568 -2569 -2570 -2571 -2572 -2573 -2574 -2575 -2576 -2577 -2578 -2579 -2580 -2581 -2582 -2583 -2584 -2585 -2586 -2587 -2588 -2589 -2590 -2591 -2592 -2593 -2594 -2595 -2596 -2597 -2598 -2599 -2600 -2601 -2602 -2603 -2604 -2605 -2606 -2607 -2608 -2609 -2610 -2625 -2626 -2627 -2628 -2629 -2630 -2631 -2632 -2633 -2634 -2635 -2636 -2637 -2638 -2639 -2640 -2641 -2642 -2643 -2644 -2645 -2646 -2647 -2648 -2649 -2650 -2651 -2652 -2653 -2654 -2655 -2656 -2657 -2658 -2659 -2660 -2661 -2662 -2663 -2664 -2665 -2666 -2667 -2668 -2669 -2670 -2671 -2672 -2673 -2674 -2675 -2676 -2677 -2678 -2679 -2680 -2681 -2682 -2683 -2700 -2701 -2702 -2703 -2704 -2705 -2706 -2707 -2708 -2709 -2710 -2711 -2712 -2713 -2714 -2715 -2716 -2717 -2718 -2719 -2720 -2721 -2722 -2723 -2724 -2725 -2726 -2727 -2728 -2729 -2730 -2731 -2732 -2733 -2734 -2735 -2736 -2737 -2738 -2739 -2740 -2741 -2742 -2743 -2744 -2745 -2746 -2747 -2748 -2749 -2750 -2751 -2752 -2753 -2754 -2755 -2775 -2776 -2777 -2778 -2779 -2780 -2781 -2782 -2783 -2784 -2785 -2786 -2787 -2788 -2789 -2790 -2791 -2792 -2793 -2794 -2795 -2796 -2797 -2798 -2799 -2800 -2801 -2802 -2803 -2804 -2805 -2806 -2807 -2808 -2809 -2810 -2811 -2812 -2813 -2814 -2815 -2816 -2817 -2818 -2819 -2820 -2821 -2822 -2823 -2824 -2825 -2826 -2827 -2828 -2850 -2851 -2852 -2853 -2854 -2855 -2856 -2857 -2858 -2859 -2860 -2861 -2862 -2863 -2864 -2865 -2866 -2867 -2868 -2869 -2870 -2871 -2872 -2873 -2874 -2875 -2876 -2877 -2878 -2879 -2880 -2881 -2882 -2883 -2884 -2885 -2886 -2887 -2888 -2889 -2890 -2891 -2892 -2893 -2894 -2895 -2896 -2897 -2898 -2899 -2900 -2901 -2925 -2926 -2927 -2928 -2929 -2930 -2931 -2932 -2933 -2934 -2935 -2936 -2937 -2938 -2939 -2940 -2941 -2942 -2943 -2944 -2945 -2946 -2947 -2948 -2949 -2950 -2951 -2952 -2953 -2954 -2955 -2956 -2957 -2958 -2959 -2960 -2961 -2962 -2963 -2964 -2965 -2966 -2967 -2968 -2969 -2970 -2971 -2972 -2973 -2974 -3000 -3001 -3002 -3003 -3004 -3005 -3006 -3007 -3008 -3009 -3010 -3011 -3012 -3013 -3014 -3015 -3016 -3017 -3018 -3019 -3020 -3021 -3022 -3023 -3024 -3025 -3026 -3027 -3028 -3029 -3030 -3031 -3032 -3033 -3034 -3035 -3036 -3037 -3038 -3039 -3040 -3041 -3042 -3043 -3044 -3045 -3046 -3047 -3075 -3076 -3077 -3078 -3079 -3080 -3081 -3082 -3083 -3084 -3085 -3086 -3087 -3088 -3089 -3090 -3091 -3092 -3093 -3094 -3095 -3096 -3097 -3098 -3099 -3100 -3101 -3102 -3103 -3104 -3105 -3106 -3107 -3108 -3109 -3110 -3111 -3112 -3113 -3114 -3115 -3116 -3117 -3118 -3119 -3120 -3150 -3151 -3152 -3153 -3154 -3155 -3156 -3157 -3158 -3159 -3160 -3161 -3162 -3163 -3164 -3165 -3166 -3167 -3168 -3169 -3170 -3171 -3172 -3173 -3174 -3175 -3176 -3177 -3178 -3179 -3180 -3181 -3182 -3183 -3184 -3185 -3186 -3187 -3188 -3189 -3190 -3191 -3192 -3193 -3194 -3225 -3226 -3227 -3228 -3229 -3230 -3231 -3232 -3233 -3234 -3235 -3236 -3237 -3238 -3239 -3240 -3241 -3242 -3243 -3244 -3245 -3246 -3247 -3248 -3249 -3250 -3251 -3252 -3253 -3254 -3255 -3256 -3257 -3258 -3259 -3260 -3261 -3262 -3263 -3264 -3265 -3266 -3267 -3300 -3301 -3302 -3303 -3304 -3305 -3306 -3307 -3308 -3309 -3310 -3311 -3312 -3313 -3314 -3315 -3316 -3317 -3318 -3319 -3320 -3321 -3322 -3323 -3324 -3325 -3326 -3327 -3328 -3329 -3330 -3331 -3332 -3333 -3334 -3335 -3336 -3337 -3338 -3339 -3340 -3375 -3376 -3377 -3378 -3379 -3380 -3381 -3382 -3383 -3384 -3385 -3386 -3387 -3388 -3389 -3390 -3391 -3392 -3393 -3394 -3395 -3396 -3397 -3398 -3399 -3400 -3401 -3402 -3403 -3404 -3405 -3406 -3407 -3408 -3409 -3410 -3411 -3412 -3413 -3414 -3450 -3451 -3452 -3453 -3454 -3455 -3456 -3457 -3458 -3459 -3460 -3461 -3462 -3463 -3464 -3465 -3466 -3467 -3468 -3469 -3470 -3471 -3472 -3473 -3474 -3475 -3476 -3477 -3478 -3479 -3480 -3481 -3482 -3483 -3484 -3485 -3486 -3487 -3525 -3526 -3527 -3528 -3529 -3530 -3531 -3532 -3533 -3534 -3535 -3536 -3537 -3538 -3539 -3540 -3541 -3542 -3543 -3544 -3545 -3546 -3547 -3548 -3549 -3550 -3551 -3552 -3553 -3554 -3555 -3556 -3557 -3558 -3559 -3560 -3600 -3601 -3602 -3603 -3604 -3605 -3606 -3607 -3608 -3609 -3610 -3611 -3612 -3613 -3614 -3615 -3616 -3617 -3618 -3619 -3620 -3621 -3622 -3623 -3624 -3625 -3626 -3627 -3628 -3629 -3630 -3631 -3632 -3633 -3634 -3675 -3676 -3677 -3678 -3679 -3680 -3681 -3682 -3683 -3684 -3685 -3686 -3687 -3688 -3689 -3690 -3691 -3692 -3693 -3694 -3695 -3696 -3697 -3698 -3699 -3700 -3701 -3702 -3703 -3704 -3705 -3706 -3707 -3750 -3751 -3752 -3753 -3754 -3755 -3756 -3757 -3758 -3759 -3760 -3761 -3762 -3763 -3764 -3765 -3766 -3767 -3768 -3769 -3770 -3771 -3772 -3773 -3774 -3775 -3776 -3777 -3778 -3779 -3780 -3781 -3825 -3826 -3827 -3828 -3829 -3830 -3831 -3832 -3833 -3834 -3835 -3836 -3837 -3838 -3839 -3840 -3841 -3842 -3843 -3844 -3845 -3846 -3847 -3848 -3849 -3850 -3851 -3852 -3853 -3854 -3900 -3901 -3902 -3903 -3904 -3905 -3906 -3907 -3908 -3909 -3910 -3911 -3912 -3913 -3914 -3915 -3916 -3917 -3918 -3919 -3920 -3921 -3922 -3923 -3924 -3925 -3926 -3927 -3928 -3975 -3976 -3977 -3978 -3979 -3980 -3981 -3982 -3983 -3984 -3985 -3986 -3987 -3988 -3989 -3990 -3991 -3992 -3993 -3994 -3995 -3996 -3997 -3998 -3999 -4000 -4001 -4050 -4051 -4052 -4053 -4054 -4055 -4056 -4057 -4058 -4059 -4060 -4061 -4062 -4063 -4064 -4065 -4066 -4067 -4068 -4069 -4070 -4071 -4072 -4073 -4074 -4125 -4126 -4127 -4128 -4129 -4130 -4131 -4132 -4133 -4134 -4135 -4136 -4137 -4138 -4139 -4140 -4141 -4142 -4143 -4144 -4145 -4146 -4147 -4148 -4200 -4201 -4202 -4203 -4204 -4205 -4206 -4207 -4208 -4209 -4210 -4211 -4212 -4213 -4214 -4215 -4216 -4217 -4218 -4219 -4220 -4221 -4275 -4276 -4277 -4278 -4279 -4280 -4281 -4282 -4283 -4284 -4285 -4286 -4287 -4288 -4289 -4290 -4291 -4292 -4293 -4294 -4350 -4351 -4352 -4353 -4354 -4355 -4356 -4357 -4358 -4359 -4360 -4361 -4362 -4363 -4364 -4365 -4366 -4367 -4425 -4426 -4427 -4428 -4429 -4430 -4431 -4432 -4433 -4434 -4435 -4436 -4437 -4438 -4439 -4440 -4500 -4501 -4502 -4503 -4504 -4505 -4506 -4507 -4508 -4509 -4510 -4511 -4512 -4575 -4576 -4577 -4578 -4579 -4580 -4581 -4582 -4583 -4584 -4585 -4650 -4651 -4652 -4653 -4654 -4655 -4656 -4657 -4725 -4726 -4727 -4728 -4729 -4800 -4801 -7500 -7501 -7502 -7503 -7504 -7505 -7506 -7507 -7508 -7509 -7510 -7511 -7512 -7513 -7514 -7515 -7516 -7517 -7518 -7519 -7520 -7521 -7522 -7523 -7524 -7525 -7526 -7527 -7528 -7529 -7530 -7531 -7532 -7533 -7534 -7535 -7536 -7537 -7538 -7539 -7540 -7541 -7542 -7543 -7544 -7545 -7546 -7547 -7548 -7549 -7550 -7551 -7552 -7553 -7554 -7555 -7556 -7557 -7558 -7559 -7560 -7561 -7562 -7563 -7564 -7565 -7566 -7567 -7568 -7569 -7570 -7571 -7572 -7573 -7574 -7575 -7576 -7577 -7578 -7579 -7580 -7581 -7582 -7583 -7584 -7585 -7586 -7587 -7588 -7589 -7590 -7591 -7592 -7593 -7594 -7595 -7596 -7597 -7598 -7599 -7600 -7601 -7602 -7603 -7604 -7605 -7606 -7607 -7608 -7609 -7610 -7611 -7612 -7613 -7614 -7615 -7616 -7617 -7618 -7619 -7620 -7621 -7622 -7623 -7624 -7625 -7626 -7627 -7628 -7629 -7630 -7631 -7632 -7633 -7634 -7635 -7636 -7637 -7638 -7639 -7640 -7641 -7642 -7643 -7644 -7645 -7646 -7647 -7648 -7649 -7650 -7651 -7652 -7653 -7654 -7655 -7656 -7657 -7658 -7659 -7660 -7661 -7662 -7663 -7664 -7665 -7666 -7667 -7668 -7669 -7670 -7671 -7672 -7673 -7674 -7675 -7676 -7677 -7678 -7679 -7680 -7681 -7682 -7683 -7684 -7685 -7686 -7687 -7688 -7689 -7690 -7691 -7692 -7693 -7694 -7695 -7696 -7697 -7698 -7699 -7700 -7701 -7702 -7703 -7704 -7705 -7706 -7707 -7708 -7709 -7710 -7711 -7712 -7713 -7714 -7715 -7716 -7717 -7718 -7719 -7720 -7721 -7722 -7723 -7724 -7725 -7726 -7727 -7728 -7729 -7730 -7731 -7732 -7733 -7734 -7735 -7736 -7737 -7738 -7739 -7740 -7741 -7742 -7743 -7744 -7745 -7746 -7747 -7748 -7749 -7750 -7751 -7752 -7753 -7754 -7755 -7756 -7757 -7758 -7759 -7760 -7761 -7762 -7763 -7764 -7765 -7766 -7767 -7768 -7769 -7770 -7771 -7772 -7773 -7774 -7775 -7776 -7777 -7778 -7779 -7780 -7781 -7782 -7783 -7784 -7785 -7786 -7787 -7788 -7789 -7790 -7791 -7792 -7793 -7794 -7795 -7796 -7797 -7798 -7799 -7800 -7801 -7802 -7803 -7804 -7805 -7806 -7807 -7808 -7809 -7810 -7811 -7812 -7813 -7814 -7815 -7816 -7817 -7818 -7819 -7820 -7821 -7822 -7823 -7824 -7825 -7826 -7827 -7828 -7829 -7830 -7831 -7832 -7833 -7834 -7835 -7836 -7837 -7838 -7839 -7840 -7841 -7842 -7843 -7844 -7845 -7846 -7847 -7848 -7849 -7850 -7851 -7852 -7853 -7854 -7855 -7856 -7857 -7858 -7859 -7860 -7861 -7862 -7863 -7864 -7865 -7866 -7867 -7868 -7869 -7870 -7871 -7872 -7873 -7874 -7875 -7876 -7877 -7878 -7879 -7880 -7881 -7882 -7883 -7884 -7885 -7886 -7887 -7888 -7889 -7890 -7891 -7892 -7893 -7894 -7895 -7896 -7897 -7898 -7899 -7900 -7901 -7902 -7903 -7904 -7905 -7906 -7907 -7908 -7909 -7910 -7911 -7912 -7913 -7914 -7915 -7916 -7917 -7918 -7919 -7920 -7921 -7922 -7923 -7924 -7925 -7926 -7927 -7928 -7929 -7930 -7931 -7932 -7933 -7934 -7935 -7936 -7937 -7938 -7939 -7940 -7941 -7942 -7943 -7944 -7945 -7946 -7947 -7948 -7949 -7950 -7951 -7952 -7953 -7954 -7955 -7956 -7957 -7958 -7959 -7960 -7961 -7962 -7963 -7964 -7965 -7966 -7967 -7968 -7969 -7970 -7971 -7972 -7973 -7974 -7975 -7976 -7977 -7978 -7979 -7980 -7981 -7982 -7983 -7984 -7985 -7986 -7987 -7988 -7989 -7990 -7991 -7992 -7993 -7994 -7995 -7996 -7997 -7998 -7999 -8000 -8001 -8002 -8003 -8004 -8005 -8006 -8007 -8008 -8009 -8010 -8011 -8012 -8013 -8014 -8015 -8016 -8017 -8018 -8019 -8020 -8021 -8022 -8023 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8032 -8033 -8034 -8035 -8036 -8037 -8038 -8039 -8040 -8041 -8042 -8043 -8044 -8045 -8046 -8047 -8048 -8049 -8050 -8051 -8052 -8053 -8054 -8055 -8056 -8057 -8058 -8059 -8060 -8061 -8062 -8063 -8064 -8065 -8066 -8067 -8068 -8069 -8070 -8071 -8072 -8073 -8074 -8075 -8076 -8077 -8078 -8079 -8080 -8081 -8082 -8083 -8084 -8085 -8086 -8087 -8088 -8089 -8090 -8091 -8092 -8093 -8094 -8095 -8096 -8097 -8098 -8099 -8100 -8101 -8102 -8103 -8104 -8105 -8106 -8107 -8108 -8109 -8110 -8111 -8112 -8113 -8114 -8115 -8116 -8117 -8118 -8119 -8120 -8121 -8122 -8123 -8124 -8125 -8126 -8127 -8128 -8129 -8130 -8131 -8132 -8133 -8134 -8135 -8136 -8137 -8138 -8139 -8140 -8141 -8142 -8143 -8144 -8145 -8146 -8147 -8148 -8149 -8150 -8151 -8152 -8153 -8154 -8155 -8156 -8157 -8158 -8159 -8160 -8161 -8162 -8163 -8164 -8165 -8166 -8167 -8168 -8169 -8170 -8171 -8172 -8173 -8174 -8175 -8176 -8177 -8178 -8179 -8180 -8181 -8182 -8183 -8184 -8185 -8186 -8187 -8188 -8189 -8190 -8191 -8192 -8193 -8194 -8195 -8196 -8197 -8198 -8199 -8200 -8201 -8202 -8203 -8204 -8205 -8206 -8207 -8208 -8209 -8210 -8211 -8212 -8213 -8214 -8215 -8216 -8217 -8218 -8219 -8220 -8221 -8222 -8223 -8224 -8225 -8226 -8227 -8228 -8229 -8230 -8231 -8232 -8233 -8234 -8235 -8236 -8237 -8238 -8239 -8240 -8241 -8242 -8243 -8244 -8245 -8246 -8247 -8248 -8249 -8250 -8251 -8252 -8253 -8254 -8255 -8256 -8257 -8258 -8259 -8260 -8261 -8262 -8263 -8264 -8265 -8266 -8267 -8268 -8269 -8270 -8271 -8272 -8273 -8274 -8275 -8276 -8277 -8278 -8279 -8280 -8281 -8282 -8283 -8284 -8285 -8286 -8287 -8288 -8289 -8290 -8291 -8292 -8293 -8294 -8295 -8296 -8297 -8298 -8299 -8300 -8301 -8302 -8303 -8304 -8305 -8306 -8307 -8308 -8309 -8310 -8311 -8312 -8313 -8314 -8315 -8316 -8317 -8318 -8319 -8320 -8321 -8322 -8323 -8324 -8325 -8326 -8327 -8328 -8329 -8330 -8331 -8332 -8333 -8334 -8335 -8336 -8337 -8338 -8339 -8340 -8341 -8342 -8343 -8344 -8345 -8346 -8347 -8348 -8349 -8350 -8351 -8352 -8353 -8354 -8355 -8356 -8357 -8358 -8359 -8360 -8361 -8362 -8363 -8364 -8365 -8366 -8367 -8368 -8369 -8370 -8371 -8372 -8373 -8374 -8375 -8376 -8377 -8378 -8379 -8380 -8381 -8382 -8383 -8384 -8385 -8386 -8387 -8388 -8389 -8390 -8391 -8392 -8393 -8394 -8395 -8396 -8397 -8398 -8399 -8400 -8401 -8402 -8403 -8404 -8405 -8406 -8407 -8408 -8409 -8410 -8411 -8412 -8413 -8414 -8415 -8416 -8417 -8418 -8419 -8420 -8421 -8422 -8423 -8424 -8425 -8426 -8427 -8428 -8429 -8430 -8431 -8432 -8433 -8434 -8435 -8436 -8437 -8438 -8439 -8440 -8441 -8442 -8443 -8444 -8445 -8446 -8447 -8448 -8449 -8450 -8451 -8452 -8453 -8454 -8455 -8456 -8457 -8458 -8459 -8460 -8461 -8462 -8463 -8464 -8465 -8466 -8467 -8468 -8469 -8470 -8471 -8472 -8473 -8474 -8475 -8476 -8477 -8478 -8479 -8480 -8481 -8482 -8483 -8484 -8485 -8486 -8487 -8488 -8489 -8490 -8491 -8492 -8493 -8494 -8495 -8496 -8497 -8498 -8499 -8500 -8501 -8502 -8503 -8504 -8505 -8506 -8507 -8508 -8509 -8510 -8511 -8512 -8513 -8514 -8515 -8516 -8517 -8518 -8519 -8520 -8521 -8522 -8523 -8524 -8525 -8526 -8527 -8528 -8529 -8530 -8531 -8532 -8533 -8534 -8535 -8536 -8537 -8538 -8539 -8540 -8541 -8542 -8543 -8544 -8545 -8546 -8547 -8548 -8549 -8550 -8551 -8552 -8553 -8554 -8555 -8556 -8557 -8558 -8559 -8560 -8561 -8562 -8563 -8564 -8565 -8566 -8567 -8568 -8569 -8570 -8571 -8572 -8573 -8574 -8575 -8576 -8577 -8578 -8579 -8580 -8581 -8582 -8583 -8584 -8585 -8586 -8587 -8588 -8589 -8590 -8591 -8592 -8593 -8594 -8595 -8596 -8597 -8598 -8599 -8600 -8601 -8602 -8603 -8604 -8605 -8606 -8607 -8608 -8609 -8610 -8611 -8612 -8613 -8614 -8615 -8616 -8617 -8618 -8619 -8620 -8621 -8622 -8623 -8624 -8625 -8626 -8627 -8628 -8629 -8630 -8631 -8632 -8633 -8634 -8635 -8636 -8637 -8638 -8639 -8640 -8641 -8642 -8643 -8644 -8645 -8646 -8647 -8648 -8649 -8650 -8651 -8652 -8653 -8654 -8655 -8656 -8657 -8658 -8659 -8660 -8661 -8662 -8663 -8664 -8665 -8666 -8667 -8668 -8669 -8670 -8671 -8672 -8673 -8674 -8675 -8676 -8677 -8678 -8679 -8680 -8681 -8682 -8683 -8684 -8685 -8686 -8687 -8688 -8689 -8690 -8691 -8692 -8693 -8694 -8695 -8696 -8697 -8700 -8701 -8702 -8703 -8704 -8705 -8712 -8713 -8714 -8715 -8716 -8717 -8718 -8719 -8720 -8721 -8722 -8723 -8724 -8725 -8726 -8727 -8728 -8729 -8730 -8731 -8732 -8733 -8734 -8735 -8736 -8737 -8738 -8739 -8740 -8741 -8742 -8743 -8744 -8745 -8746 -8747 -8748 -8749 -8750 -8751 -8752 -8753 -8754 -8755 -8756 -8757 -8758 -8759 -8760 -8761 -8762 -8763 -8764 -8765 -8766 -8767 -8768 -8769 -8770 -8771 -8772 -8773 -8774 -8787 -8788 -8789 -8790 -8791 -8792 -8793 -8794 -8795 -8796 -8797 -8798 -8799 -8800 -8801 -8802 -8803 -8804 -8805 -8806 -8807 -8808 -8809 -8810 -8811 -8812 -8813 -8814 -8815 -8816 -8817 -8818 -8819 -8820 -8821 -8822 -8823 -8824 -8825 -8826 -8827 -8828 -8829 -8830 -8831 -8832 -8833 -8834 -8835 -8836 -8837 -8838 -8839 -8840 -8841 -8842 -8843 -8844 -8845 -8846 -8847 -8862 -8863 -8864 -8865 -8866 -8867 -8868 -8869 -8870 -8871 -8872 -8873 -8874 -8875 -8876 -8877 -8878 -8879 -8880 -8881 -8882 -8883 -8884 -8885 -8886 -8887 -8888 -8889 -8890 -8891 -8892 -8893 -8894 -8895 -8896 -8897 -8898 -8899 -8900 -8901 -8902 -8903 -8904 -8905 -8906 -8907 -8908 -8909 -8910 -8911 -8912 -8913 -8914 -8915 -8916 -8917 -8937 -8938 -8939 -8940 -8941 -8942 -8943 -8944 -8945 -8946 -8947 -8948 -8949 -8950 -8951 -8952 -8953 -8954 -8955 -8956 -8957 -8958 -8959 -8960 -8961 -8962 -8963 -8964 -8965 -8966 -8967 -8968 -8969 -8970 -8971 -8972 -8973 -8974 -8975 -8976 -8977 -8978 -8979 -8980 -8981 -8982 -8983 -8984 -8985 -8986 -8987 -8988 -9012 -9013 -9014 -9015 -9016 -9017 -9018 -9019 -9020 -9021 -9022 -9023 -9024 -9025 -9026 -9027 -9028 -9029 -9030 -9031 -9032 -9033 -9034 -9035 -9036 -9037 -9038 -9039 -9040 -9041 -9042 -9043 -9044 -9045 -9046 -9047 -9048 -9049 -9050 -9051 -9052 -9053 -9054 -9055 -9056 -9057 -9058 -9059 -9087 -9088 -9089 -9090 -9091 -9092 -9093 -9094 -9095 -9096 -9097 -9098 -9099 -9100 -9101 -9102 -9103 -9104 -9105 -9106 -9107 -9108 -9109 -9110 -9111 -9112 -9113 -9114 -9115 -9116 -9117 -9118 -9119 -9120 -9121 -9122 -9123 -9124 -9125 -9126 -9127 -9128 -9129 -9130 -9162 -9163 -9164 -9165 -9166 -9167 -9168 -9169 -9170 -9171 -9172 -9173 -9174 -9175 -9176 -9177 -9178 -9179 -9180 -9181 -9182 -9183 -9184 -9185 -9186 -9187 -9188 -9189 -9190 -9191 -9192 -9193 -9194 -9195 -9196 -9197 -9198 -9199 -9200 -9201 -9202 -9237 -9238 -9239 -9240 -9241 -9242 -9243 -9244 -9245 -9246 -9247 -9248 -9249 -9250 -9251 -9252 -9253 -9254 -9255 -9256 -9257 -9258 -9259 -9260 -9261 -9262 -9263 -9264 -9265 -9266 -9267 -9268 -9269 -9270 -9271 -9272 -9273 -9274 -9312 -9313 -9314 -9315 -9316 -9317 -9318 -9319 -9320 -9321 -9322 -9323 -9324 -9325 -9326 -9327 -9328 -9329 -9330 -9331 -9332 -9333 -9334 -9335 -9336 -9337 -9338 -9339 -9340 -9341 -9342 -9343 -9344 -9345 -9387 -9388 -9389 -9390 -9391 -9392 -9393 -9394 -9395 -9396 -9397 -9398 -9399 -9400 -9401 -9402 -9403 -9404 -9405 -9406 -9407 -9408 -9409 -9410 -9411 -9412 -9413 -9414 -9415 -9416 -9417 -9462 -9463 -9464 -9465 -9466 -9467 -9468 -9469 -9470 -9471 -9472 -9473 -9474 -9475 -9476 -9477 -9478 -9479 -9480 -9481 -9482 -9483 -9484 -9485 -9486 -9487 -9488 -9489 -9537 -9538 -9539 -9540 -9541 -9542 -9543 -9544 -9545 -9546 -9547 -9548 -9549 -9550 -9551 -9552 -9553 -9554 -9555 -9556 -9557 -9558 -9559 -9560 -9561 -9612 -9613 -9614 -9615 -9616 -9617 -9618 -9619 -9620 -9621 -9622 -9623 -9624 -9625 -9626 -9627 -9628 -9629 -9630 -9631 -9632 -9687 -9688 -9689 -9690 -9691 -9692 -9693 -9694 -9695 -9696 -9697 -9698 -9699 -9700 -9701 -9702 -9703 -9762 -9763 -9764 -9765 -9766 -9767 -9768 -9769 -9770 -9771 -9772 -9773 -9774 -9837 -9838 -9839 -9840 -9841 -9842 -9843 -9844 -9912 -9913 -10544 -10545 -10546 -10547 -10548 -10549 -10550 -10551 -10552 -10553 -10554 -10555 -10556 -10557 -10558 -10559 -10560 -10561 -10562 -10563 -10564 -10565 -10566 -10567 -10568 -10569 -10570 -10571 -10572 -10573 -10574 -10575 -10576 -10577 -10578 -10579 -10580 -10581 -10582 -10583 -10584 -10585 -10586 -10587 -10588 -10589 -10590 -10591 -10592 -10593 -10594 -10595 -10596 -10597 -10598 -10599 -10600 -10601 -10602 -10603 -10604 -10605 -10606 -10607 -10608 -10609 -10610 -10611 -10612 -10613 -10614 -10615 -10616 -10617 -10618 -10619 -10620 -10621 -10622 -10623 -10624 -10625 -10626 -10627 -10628 -10629 -10630 -10631 -10632 -10633 -10634 -10635 -10636 -10637 -10638 -10639 -10640 -10641 -10642 -10643 -10644 -10645 -10646 -10647 -10648 -10649 -10650 -10651 -10652 -10653 -10654 -10655 -10656 -10657 -10658 -10659 -10660 -10661 -10662 -10663 -10664 -10665 -10666 -10667 -10668 -10669 -10670 -10671 -10672 -10673 -10674 -10675 -10676 -10677 -10678 -10679 -10680 -10681 -10682 -10683 -10684 -10685 -10686 -10687 -10688 -10689 -10690 -10691 -10692 -10693 -10694 -10695 -10696 -10697 -10698 -10699 -10700 -10701 -10702 -10703 -10704 -10705 -10706 -10707 -10708 -10709 -10710 -10711 -10712 -10713 -10714 -10715 -10716 -10717 -10718 -10719 -10720 -10721 -10722 -10723 -10724 -10725 -10726 -10727 -10728 -10729 -10730 -10731 -10732 -10733 -10734 -10735 -10736 -10737 -10738 -10739 -10740 -10741 -10742 -10743 -10744 -10745 -10746 -10747 -10748 -10749 -10750 -10751 -10752 -10753 -10754 -10755 -10756 -10757 -10758 -10759 -10760 -10761 -10762 -10763 -10764 -10765 -10766 -10767 -10768 -10769 -10770 -10771 -10772 -10773 -10774 -10775 -10776 -10777 -10778 -10779 -10780 -10781 -10782 -10783 -10784 -10785 -10786 -10787 -10788 -10789 -10790 -10791 -10792 -10793 -10794 -10795 -10796 -10797 -10798 -10799 -10800 -10801 -10802 -10803 -10804 -10805 -10806 -10807 -10808 -10809 -10810 -10811 -10812 -10813 -10814 -10815 -10816 -10817 -10818 -10819 -10820 -10821 -10822 -10823 -10824 -10825 -10826 -10827 -10828 -10829 -10830 -10831 -) - -// ************************************************************************* // diff --git a/tutorials/lesInterFoam/nozzleFlow2D/constant/polyMesh/sets/c0_old b/tutorials/lesInterFoam/nozzleFlow2D/constant/polyMesh/sets/c0_old deleted file mode 100644 index dd82705f59d..00000000000 --- a/tutorials/lesInterFoam/nozzleFlow2D/constant/polyMesh/sets/c0_old +++ /dev/null @@ -1,21 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | -| \\ / A nd | Web: http://www.OpenFOAM.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class topoSet; - object c0_old; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -0 -( -) - -// ************************************************************************* // diff --git a/tutorials/lesInterFoam/nozzleFlow2D/constant/polyMesh/sets/refinedCells b/tutorials/lesInterFoam/nozzleFlow2D/constant/polyMesh/sets/refinedCells deleted file mode 100644 index 9f24995858c..00000000000 --- a/tutorials/lesInterFoam/nozzleFlow2D/constant/polyMesh/sets/refinedCells +++ /dev/null @@ -1,14159 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | -| \\ / A nd | Web: http://www.OpenFOAM.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class cellSet; - object refinedCells; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -14138 -( -0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197 -198 -199 -200 -201 -202 -203 -204 -205 -206 -207 -208 -209 -210 -211 -212 -213 -214 -215 -216 -217 -218 -219 -220 -221 -222 -223 -224 -225 -226 -227 -228 -229 -230 -231 -232 -233 -234 -235 -236 -237 -238 -239 -240 -241 -242 -243 -244 -245 -246 -247 -248 -249 -250 -251 -252 -253 -254 -255 -256 -257 -258 -259 -260 -261 -262 -263 -264 -265 -266 -267 -268 -269 -270 -271 -272 -273 -274 -275 -276 -277 -278 -279 -280 -281 -282 -283 -284 -285 -286 -287 -288 -289 -290 -291 -292 -293 -294 -295 -296 -297 -298 -299 -300 -301 -302 -303 -304 -305 -306 -307 -308 -309 -310 -311 -312 -313 -314 -315 -316 -317 -318 -319 -320 -321 -322 -323 -324 -325 -326 -327 -328 -329 -330 -331 -332 -333 -334 -335 -336 -337 -338 -339 -340 -341 -342 -343 -344 -345 -346 -347 -348 -349 -350 -351 -352 -353 -354 -355 -356 -357 -358 -359 -360 -361 -362 -363 -364 -365 -366 -367 -368 -369 -370 -371 -372 -373 -374 -375 -376 -377 -378 -379 -380 -381 -382 -383 -384 -385 -386 -387 -388 -389 -390 -391 -392 -393 -394 -395 -396 -397 -398 -399 -400 -401 -402 -403 -404 -405 -406 -407 -408 -409 -410 -411 -412 -413 -414 -415 -416 -417 -418 -419 -420 -421 -422 -423 -424 -425 -426 -427 -428 -429 -430 -431 -432 -433 -434 -435 -436 -437 -438 -439 -440 -441 -442 -443 -444 -445 -446 -447 -448 -449 -450 -451 -452 -453 -454 -455 -456 -457 -458 -459 -460 -461 -462 -463 -464 -465 -466 -467 -468 -469 -470 -471 -472 -473 -474 -475 -476 -477 -478 -479 -480 -481 -482 -483 -484 -485 -486 -487 -488 -489 -490 -491 -492 -493 -494 -495 -496 -497 -498 -499 -500 -501 -502 -503 -504 -505 -506 -507 -508 -509 -510 -511 -512 -513 -514 -515 -516 -517 -518 -519 -520 -521 -522 -523 -524 -525 -526 -527 -528 -529 -530 -531 -532 -533 -534 -535 -536 -537 -538 -539 -540 -541 -542 -543 -544 -545 -546 -547 -548 -549 -550 -551 -552 -553 -554 -555 -556 -557 -558 -559 -560 -561 -562 -563 -564 -565 -566 -567 -568 -569 -570 -571 -572 -573 -574 -575 -576 -577 -578 -579 -580 -581 -582 -583 -584 -585 -586 -587 -588 -589 -590 -591 -592 -593 -594 -595 -596 -597 -598 -599 -600 -601 -602 -603 -604 -605 -606 -607 -608 -609 -610 -611 -612 -613 -614 -615 -616 -617 -618 -619 -620 -621 -622 -623 -624 -625 -626 -627 -628 -629 -630 -631 -632 -633 -634 -635 -636 -637 -638 -639 -640 -641 -642 -643 -644 -645 -646 -647 -648 -649 -650 -651 -652 -653 -654 -655 -656 -657 -658 -659 -660 -661 -662 -663 -664 -665 -666 -667 -668 -669 -670 -671 -672 -673 -674 -675 -676 -677 -678 -679 -680 -681 -682 -683 -684 -685 -686 -687 -688 -689 -690 -691 -692 -693 -694 -695 -696 -697 -698 -699 -700 -701 -702 -703 -704 -705 -706 -707 -708 -709 -710 -711 -712 -713 -714 -715 -716 -717 -718 -719 -720 -721 -722 -723 -724 -725 -726 -727 -728 -729 -730 -731 -732 -733 -734 -735 -736 -737 -738 -739 -740 -741 -742 -743 -744 -745 -746 -747 -748 -749 -750 -751 -752 -753 -754 -755 -756 -757 -758 -759 -760 -761 -762 -763 -764 -765 -766 -767 -768 -769 -770 -771 -772 -773 -774 -775 -776 -777 -778 -779 -780 -781 -782 -783 -784 -785 -786 -787 -788 -789 -790 -791 -792 -793 -794 -795 -796 -797 -798 -799 -800 -801 -802 -803 -804 -805 -806 -807 -808 -809 -810 -811 -812 -813 -814 -815 -816 -817 -818 -819 -820 -821 -822 -823 -824 -825 -826 -827 -828 -829 -830 -831 -832 -833 -834 -835 -836 -837 -838 -839 -840 -841 -842 -843 -844 -845 -846 -847 -848 -849 -850 -851 -852 -853 -854 -855 -856 -857 -858 -859 -860 -861 -862 -863 -864 -865 -866 -867 -868 -869 -870 -871 -872 -873 -874 -875 -876 -877 -878 -879 -880 -881 -882 -883 -884 -885 -886 -887 -888 -889 -890 -891 -892 -893 -894 -895 -896 -897 -898 -899 -900 -901 -902 -903 -904 -905 -906 -907 -908 -909 -910 -911 -912 -913 -914 -915 -916 -917 -918 -919 -920 -921 -922 -923 -924 -925 -926 -927 -928 -929 -930 -931 -932 -933 -934 -935 -936 -937 -938 -939 -940 -941 -942 -943 -944 -945 -946 -947 -948 -949 -950 -951 -952 -953 -954 -955 -956 -957 -958 -959 -960 -961 -962 -963 -964 -965 -966 -967 -968 -969 -970 -971 -972 -973 -974 -975 -976 -977 -978 -979 -980 -981 -982 -983 -984 -985 -986 -987 -988 -989 -990 -991 -992 -993 -994 -995 -996 -997 -998 -999 -1000 -1001 -1002 -1003 -1004 -1005 -1006 -1007 -1008 -1009 -1010 -1011 -1012 -1013 -1014 -1015 -1016 -1017 -1018 -1019 -1020 -1021 -1022 -1023 -1024 -1025 -1026 -1027 -1028 -1029 -1030 -1031 -1032 -1033 -1034 -1035 -1036 -1037 -1038 -1039 -1040 -1041 -1042 -1043 -1044 -1045 -1046 -1047 -1048 -1049 -1050 -1051 -1052 -1053 -1054 -1055 -1056 -1057 -1058 -1059 -1060 -1061 -1062 -1063 -1064 -1065 -1066 -1067 -1068 -1069 -1070 -1071 -1072 -1073 -1074 -1075 -1076 -1077 -1078 -1079 -1080 -1081 -1082 -1083 -1084 -1085 -1086 -1087 -1088 -1089 -1090 -1091 -1092 -1093 -1094 -1095 -1096 -1097 -1098 -1099 -1100 -1101 -1102 -1103 -1104 -1105 -1106 -1107 -1108 -1109 -1110 -1111 -1112 -1113 -1114 -1115 -1116 -1117 -1118 -1119 -1120 -1121 -1122 -1123 -1124 -1125 -1126 -1127 -1128 -1129 -1130 -1131 -1132 -1133 -1134 -1135 -1136 -1137 -1138 -1139 -1140 -1141 -1142 -1143 -1144 -1145 -1146 -1147 -1148 -1149 -1150 -1151 -1152 -1153 -1154 -1155 -1156 -1157 -1158 -1159 -1160 -1161 -1162 -1163 -1164 -1165 -1166 -1167 -1168 -1169 -1170 -1171 -1172 -1173 -1174 -1175 -1176 -1177 -1178 -1179 -1180 -1181 -1182 -1183 -1184 -1185 -1186 -1187 -1188 -1189 -1190 -1191 -1192 -1193 -1194 -1195 -1196 -1197 -1198 -1199 -1200 -1201 -1202 -1203 -1204 -1205 -1206 -1207 -1208 -1209 -1210 -1211 -1212 -1213 -1214 -1215 -1216 -1217 -1218 -1219 -1220 -1221 -1222 -1223 -1224 -1225 -1226 -1227 -1228 -1229 -1230 -1231 -1232 -1233 -1234 -1235 -1236 -1237 -1238 -1239 -1240 -1241 -1242 -1243 -1244 -1245 -1246 -1247 -1248 -1249 -1250 -1251 -1252 -1253 -1254 -1255 -1256 -1257 -1258 -1259 -1260 -1261 -1262 -1263 -1264 -1265 -1266 -1267 -1268 -1269 -1270 -1271 -1272 -1273 -1274 -1275 -1276 -1277 -1278 -1279 -1280 -1281 -1282 -1283 -1284 -1285 -1286 -1287 -1288 -1289 -1290 -1291 -1292 -1293 -1294 -1295 -1296 -1297 -1298 -1299 -1300 -1301 -1302 -1303 -1304 -1305 -1306 -1307 -1308 -1309 -1310 -1311 -1312 -1313 -1314 -1315 -1316 -1317 -1318 -1319 -1320 -1321 -1322 -1323 -1324 -1325 -1326 -1327 -1328 -1329 -1330 -1331 -1332 -1333 -1334 -1335 -1336 -1337 -1338 -1339 -1340 -1341 -1342 -1343 -1344 -1345 -1346 -1347 -1348 -1349 -1350 -1351 -1352 -1353 -1354 -1355 -1356 -1357 -1358 -1359 -1360 -1361 -1362 -1363 -1364 -1365 -1366 -1367 -1368 -1369 -1370 -1371 -1372 -1373 -1374 -1375 -1376 -1377 -1378 -1379 -1380 -1381 -1382 -1383 -1384 -1385 -1386 -1387 -1388 -1389 -1390 -1391 -1392 -1393 -1394 -1395 -1396 -1397 -1398 -1399 -1400 -1401 -1402 -1403 -1404 -1405 -1406 -1407 -1408 -1409 -1410 -1411 -1412 -1413 -1414 -1415 -1416 -1417 -1418 -1419 -1420 -1421 -1422 -1423 -1424 -1425 -1426 -1427 -1428 -1429 -1430 -1431 -1432 -1433 -1434 -1435 -1436 -1437 -1438 -1439 -1440 -1441 -1442 -1443 -1444 -1445 -1446 -1447 -1448 -1449 -1450 -1451 -1452 -1453 -1454 -1455 -1456 -1457 -1458 -1459 -1460 -1461 -1462 -1463 -1464 -1465 -1466 -1467 -1468 -1469 -1470 -1471 -1472 -1473 -1474 -1475 -1476 -1477 -1478 -1479 -1480 -1481 -1482 -1483 -1484 -1485 -1486 -1487 -1488 -1489 -1490 -1491 -1492 -1493 -1494 -1495 -1496 -1497 -1498 -1499 -1500 -1501 -1502 -1503 -1504 -1505 -1506 -1507 -1508 -1509 -1510 -1511 -1512 -1513 -1514 -1515 -1516 -1517 -1518 -1519 -1520 -1521 -1522 -1523 -1524 -1525 -1526 -1527 -1528 -1529 -1530 -1531 -1532 -1533 -1534 -1535 -1536 -1537 -1538 -1539 -1540 -1541 -1542 -1543 -1544 -1545 -1546 -1547 -1548 -1549 -1550 -1551 -1552 -1553 -1554 -1555 -1556 -1557 -1558 -1559 -1560 -1561 -1562 -1563 -1564 -1565 -1566 -1567 -1568 -1569 -1570 -1571 -1572 -1573 -1574 -1575 -1576 -1577 -1578 -1579 -1580 -1581 -1582 -1583 -1584 -1585 -1586 -1587 -1588 -1589 -1590 -1591 -1592 -1593 -1594 -1595 -1596 -1597 -1598 -1599 -1600 -1601 -1602 -1603 -1604 -1605 -1606 -1607 -1608 -1609 -1610 -1611 -1612 -1613 -1614 -1615 -1616 -1617 -1618 -1619 -1620 -1621 -1622 -1623 -1624 -1625 -1626 -1627 -1628 -1629 -1630 -1631 -1632 -1633 -1634 -1635 -1636 -1637 -1638 -1639 -1640 -1641 -1642 -1643 -1644 -1645 -1646 -1647 -1648 -1649 -1650 -1651 -1652 -1653 -1654 -1655 -1656 -1657 -1658 -1659 -1660 -1661 -1662 -1663 -1664 -1665 -1666 -1667 -1668 -1669 -1670 -1671 -1672 -1673 -1674 -1675 -1676 -1677 -1678 -1679 -1680 -1681 -1682 -1683 -1684 -1685 -1686 -1687 -1688 -1689 -1690 -1691 -1692 -1693 -1694 -1695 -1696 -1697 -1698 -1699 -1700 -1701 -1702 -1703 -1704 -1705 -1706 -1707 -1708 -1709 -1710 -1711 -1712 -1713 -1714 -1715 -1716 -1717 -1718 -1719 -1720 -1721 -1722 -1723 -1724 -1725 -1726 -1727 -1728 -1729 -1730 -1731 -1732 -1733 -1734 -1735 -1736 -1737 -1738 -1739 -1740 -1741 -1742 -1743 -1744 -1745 -1746 -1747 -1748 -1749 -1750 -1751 -1752 -1753 -1754 -1755 -1756 -1757 -1758 -1759 -1760 -1761 -1762 -1763 -1764 -1765 -1766 -1767 -1768 -1769 -1770 -1771 -1772 -1773 -1774 -1775 -1776 -1777 -1778 -1779 -1780 -1781 -1782 -1783 -1784 -1785 -1786 -1787 -1788 -1789 -1790 -1791 -1792 -1793 -1794 -1795 -1796 -1797 -1798 -1799 -1800 -1801 -1802 -1803 -1804 -1805 -1806 -1807 -1808 -1809 -1810 -1811 -1812 -1813 -1814 -1815 -1816 -1817 -1818 -1819 -1820 -1821 -1822 -1823 -1824 -1825 -1826 -1827 -1828 -1829 -1830 -1831 -1832 -1833 -1834 -1835 -1836 -1837 -1838 -1839 -1840 -1841 -1842 -1843 -1844 -1845 -1846 -1847 -1848 -1849 -1850 -1851 -1852 -1853 -1854 -1855 -1856 -1857 -1858 -1859 -1860 -1861 -1862 -1863 -1864 -1865 -1866 -1867 -1868 -1869 -1870 -1871 -1872 -1873 -1874 -1875 -1876 -1877 -1878 -1879 -1880 -1881 -1882 -1883 -1884 -1885 -1886 -1887 -1888 -1889 -1890 -1891 -1892 -1893 -1894 -1895 -1896 -1897 -1898 -1899 -1900 -1901 -1902 -1903 -1904 -1905 -1906 -1907 -1908 -1909 -1910 -1911 -1912 -1913 -1914 -1915 -1916 -1917 -1918 -1919 -1920 -1921 -1922 -1923 -1924 -1925 -1926 -1927 -1928 -1929 -1930 -1931 -1932 -1933 -1934 -1935 -1936 -1937 -1938 -1939 -1940 -1941 -1942 -1943 -1944 -1945 -1946 -1947 -1948 -1949 -1950 -1951 -1952 -1953 -1954 -1955 -1956 -1957 -1958 -1959 -1960 -1961 -1962 -1963 -1964 -1965 -1966 -1967 -1968 -1969 -1970 -1971 -1972 -1973 -1974 -1975 -1976 -1977 -1978 -1979 -1980 -1981 -1982 -1983 -1984 -1985 -1986 -1987 -1988 -1989 -1990 -1991 -1992 -1993 -1994 -1995 -1996 -1997 -1998 -1999 -2000 -2001 -2002 -2003 -2004 -2005 -2006 -2007 -2008 -2009 -2010 -2011 -2012 -2013 -2014 -2015 -2016 -2017 -2018 -2019 -2020 -2021 -2022 -2023 -2024 -2025 -2026 -2027 -2028 -2029 -2030 -2031 -2032 -2033 -2034 -2035 -2036 -2037 -2038 -2039 -2040 -2041 -2042 -2043 -2044 -2045 -2046 -2047 -2048 -2049 -2050 -2051 -2052 -2053 -2054 -2055 -2056 -2057 -2058 -2059 -2060 -2061 -2062 -2063 -2064 -2065 -2066 -2067 -2068 -2069 -2070 -2071 -2072 -2073 -2074 -2075 -2076 -2077 -2078 -2079 -2080 -2081 -2082 -2083 -2084 -2085 -2086 -2087 -2088 -2089 -2090 -2091 -2092 -2093 -2094 -2095 -2096 -2097 -2098 -2099 -2100 -2101 -2102 -2103 -2104 -2105 -2106 -2107 -2108 -2109 -2110 -2111 -2112 -2113 -2114 -2115 -2116 -2117 -2118 -2119 -2120 -2121 -2122 -2123 -2124 -2125 -2126 -2127 -2128 -2129 -2130 -2131 -2132 -2133 -2134 -2135 -2136 -2137 -2138 -2139 -2140 -2141 -2142 -2143 -2144 -2145 -2146 -2147 -2148 -2149 -2150 -2151 -2152 -2153 -2154 -2155 -2156 -2157 -2158 -2159 -2160 -2161 -2162 -2163 -2164 -2165 -2166 -2167 -2168 -2169 -2170 -2171 -2172 -2173 -2174 -2175 -2176 -2177 -2178 -2179 -2180 -2181 -2182 -2183 -2184 -2185 -2186 -2187 -2188 -2189 -2190 -2191 -2192 -2193 -2194 -2195 -2196 -2197 -2198 -2199 -2200 -2201 -2202 -2203 -2204 -2205 -2206 -2207 -2208 -2209 -2210 -2211 -2212 -2213 -2214 -2215 -2216 -2217 -2218 -2219 -2220 -2221 -2222 -2223 -2224 -2225 -2226 -2227 -2228 -2229 -2230 -2231 -2232 -2233 -2234 -2235 -2236 -2237 -2238 -2239 -2240 -2241 -2242 -2243 -2244 -2245 -2246 -2247 -2248 -2249 -2250 -2251 -2252 -2253 -2254 -2255 -2256 -2257 -2258 -2259 -2260 -2261 -2262 -2263 -2264 -2265 -2266 -2267 -2268 -2269 -2270 -2271 -2272 -2273 -2274 -2275 -2276 -2277 -2278 -2279 -2280 -2281 -2282 -2283 -2284 -2285 -2286 -2287 -2288 -2289 -2290 -2291 -2292 -2293 -2294 -2295 -2296 -2297 -2298 -2299 -2300 -2301 -2302 -2303 -2304 -2305 -2306 -2307 -2308 -2309 -2310 -2311 -2312 -2313 -2314 -2315 -2316 -2317 -2318 -2319 -2320 -2321 -2322 -2325 -2326 -2327 -2328 -2329 -2330 -2331 -2332 -2333 -2334 -2335 -2336 -2337 -2338 -2339 -2340 -2341 -2342 -2343 -2344 -2345 -2346 -2347 -2348 -2349 -2350 -2351 -2352 -2353 -2354 -2355 -2356 -2357 -2358 -2359 -2360 -2361 -2362 -2363 -2364 -2365 -2366 -2367 -2368 -2369 -2370 -2371 -2372 -2373 -2374 -2375 -2376 -2377 -2378 -2379 -2380 -2381 -2382 -2383 -2384 -2385 -2386 -2387 -2388 -2389 -2390 -2391 -2392 -2393 -2394 -2400 -2401 -2402 -2403 -2404 -2405 -2406 -2407 -2408 -2409 -2410 -2411 -2412 -2413 -2414 -2415 -2416 -2417 -2418 -2419 -2420 -2421 -2422 -2423 -2424 -2425 -2426 -2427 -2428 -2429 -2430 -2431 -2432 -2433 -2434 -2435 -2436 -2437 -2438 -2439 -2440 -2441 -2442 -2443 -2444 -2445 -2446 -2447 -2448 -2449 -2450 -2451 -2452 -2453 -2454 -2455 -2456 -2457 -2458 -2459 -2460 -2461 -2462 -2463 -2464 -2465 -2466 -2475 -2476 -2477 -2478 -2479 -2480 -2481 -2482 -2483 -2484 -2485 -2486 -2487 -2488 -2489 -2490 -2491 -2492 -2493 -2494 -2495 -2496 -2497 -2498 -2499 -2500 -2501 -2502 -2503 -2504 -2505 -2506 -2507 -2508 -2509 -2510 -2511 -2512 -2513 -2514 -2515 -2516 -2517 -2518 -2519 -2520 -2521 -2522 -2523 -2524 -2525 -2526 -2527 -2528 -2529 -2530 -2531 -2532 -2533 -2534 -2535 -2536 -2537 -2538 -2550 -2551 -2552 -2553 -2554 -2555 -2556 -2557 -2558 -2559 -2560 -2561 -2562 -2563 -2564 -2565 -2566 -2567 -2568 -2569 -2570 -2571 -2572 -2573 -2574 -2575 -2576 -2577 -2578 -2579 -2580 -2581 -2582 -2583 -2584 -2585 -2586 -2587 -2588 -2589 -2590 -2591 -2592 -2593 -2594 -2595 -2596 -2597 -2598 -2599 -2600 -2601 -2602 -2603 -2604 -2605 -2606 -2607 -2608 -2609 -2610 -2625 -2626 -2627 -2628 -2629 -2630 -2631 -2632 -2633 -2634 -2635 -2636 -2637 -2638 -2639 -2640 -2641 -2642 -2643 -2644 -2645 -2646 -2647 -2648 -2649 -2650 -2651 -2652 -2653 -2654 -2655 -2656 -2657 -2658 -2659 -2660 -2661 -2662 -2663 -2664 -2665 -2666 -2667 -2668 -2669 -2670 -2671 -2672 -2673 -2674 -2675 -2676 -2677 -2678 -2679 -2680 -2681 -2682 -2683 -2700 -2701 -2702 -2703 -2704 -2705 -2706 -2707 -2708 -2709 -2710 -2711 -2712 -2713 -2714 -2715 -2716 -2717 -2718 -2719 -2720 -2721 -2722 -2723 -2724 -2725 -2726 -2727 -2728 -2729 -2730 -2731 -2732 -2733 -2734 -2735 -2736 -2737 -2738 -2739 -2740 -2741 -2742 -2743 -2744 -2745 -2746 -2747 -2748 -2749 -2750 -2751 -2752 -2753 -2754 -2755 -2775 -2776 -2777 -2778 -2779 -2780 -2781 -2782 -2783 -2784 -2785 -2786 -2787 -2788 -2789 -2790 -2791 -2792 -2793 -2794 -2795 -2796 -2797 -2798 -2799 -2800 -2801 -2802 -2803 -2804 -2805 -2806 -2807 -2808 -2809 -2810 -2811 -2812 -2813 -2814 -2815 -2816 -2817 -2818 -2819 -2820 -2821 -2822 -2823 -2824 -2825 -2826 -2827 -2828 -2850 -2851 -2852 -2853 -2854 -2855 -2856 -2857 -2858 -2859 -2860 -2861 -2862 -2863 -2864 -2865 -2866 -2867 -2868 -2869 -2870 -2871 -2872 -2873 -2874 -2875 -2876 -2877 -2878 -2879 -2880 -2881 -2882 -2883 -2884 -2885 -2886 -2887 -2888 -2889 -2890 -2891 -2892 -2893 -2894 -2895 -2896 -2897 -2898 -2899 -2900 -2901 -2925 -2926 -2927 -2928 -2929 -2930 -2931 -2932 -2933 -2934 -2935 -2936 -2937 -2938 -2939 -2940 -2941 -2942 -2943 -2944 -2945 -2946 -2947 -2948 -2949 -2950 -2951 -2952 -2953 -2954 -2955 -2956 -2957 -2958 -2959 -2960 -2961 -2962 -2963 -2964 -2965 -2966 -2967 -2968 -2969 -2970 -2971 -2972 -2973 -2974 -3000 -3001 -3002 -3003 -3004 -3005 -3006 -3007 -3008 -3009 -3010 -3011 -3012 -3013 -3014 -3015 -3016 -3017 -3018 -3019 -3020 -3021 -3022 -3023 -3024 -3025 -3026 -3027 -3028 -3029 -3030 -3031 -3032 -3033 -3034 -3035 -3036 -3037 -3038 -3039 -3040 -3041 -3042 -3043 -3044 -3045 -3046 -3047 -3075 -3076 -3077 -3078 -3079 -3080 -3081 -3082 -3083 -3084 -3085 -3086 -3087 -3088 -3089 -3090 -3091 -3092 -3093 -3094 -3095 -3096 -3097 -3098 -3099 -3100 -3101 -3102 -3103 -3104 -3105 -3106 -3107 -3108 -3109 -3110 -3111 -3112 -3113 -3114 -3115 -3116 -3117 -3118 -3119 -3120 -3150 -3151 -3152 -3153 -3154 -3155 -3156 -3157 -3158 -3159 -3160 -3161 -3162 -3163 -3164 -3165 -3166 -3167 -3168 -3169 -3170 -3171 -3172 -3173 -3174 -3175 -3176 -3177 -3178 -3179 -3180 -3181 -3182 -3183 -3184 -3185 -3186 -3187 -3188 -3189 -3190 -3191 -3192 -3193 -3194 -3225 -3226 -3227 -3228 -3229 -3230 -3231 -3232 -3233 -3234 -3235 -3236 -3237 -3238 -3239 -3240 -3241 -3242 -3243 -3244 -3245 -3246 -3247 -3248 -3249 -3250 -3251 -3252 -3253 -3254 -3255 -3256 -3257 -3258 -3259 -3260 -3261 -3262 -3263 -3264 -3265 -3266 -3267 -3300 -3301 -3302 -3303 -3304 -3305 -3306 -3307 -3308 -3309 -3310 -3311 -3312 -3313 -3314 -3315 -3316 -3317 -3318 -3319 -3320 -3321 -3322 -3323 -3324 -3325 -3326 -3327 -3328 -3329 -3330 -3331 -3332 -3333 -3334 -3335 -3336 -3337 -3338 -3339 -3340 -3375 -3376 -3377 -3378 -3379 -3380 -3381 -3382 -3383 -3384 -3385 -3386 -3387 -3388 -3389 -3390 -3391 -3392 -3393 -3394 -3395 -3396 -3397 -3398 -3399 -3400 -3401 -3402 -3403 -3404 -3405 -3406 -3407 -3408 -3409 -3410 -3411 -3412 -3413 -3414 -3450 -3451 -3452 -3453 -3454 -3455 -3456 -3457 -3458 -3459 -3460 -3461 -3462 -3463 -3464 -3465 -3466 -3467 -3468 -3469 -3470 -3471 -3472 -3473 -3474 -3475 -3476 -3477 -3478 -3479 -3480 -3481 -3482 -3483 -3484 -3485 -3486 -3487 -3525 -3526 -3527 -3528 -3529 -3530 -3531 -3532 -3533 -3534 -3535 -3536 -3537 -3538 -3539 -3540 -3541 -3542 -3543 -3544 -3545 -3546 -3547 -3548 -3549 -3550 -3551 -3552 -3553 -3554 -3555 -3556 -3557 -3558 -3559 -3560 -3600 -3601 -3602 -3603 -3604 -3605 -3606 -3607 -3608 -3609 -3610 -3611 -3612 -3613 -3614 -3615 -3616 -3617 -3618 -3619 -3620 -3621 -3622 -3623 -3624 -3625 -3626 -3627 -3628 -3629 -3630 -3631 -3632 -3633 -3634 -3675 -3676 -3677 -3678 -3679 -3680 -3681 -3682 -3683 -3684 -3685 -3686 -3687 -3688 -3689 -3690 -3691 -3692 -3693 -3694 -3695 -3696 -3697 -3698 -3699 -3700 -3701 -3702 -3703 -3704 -3705 -3706 -3707 -3750 -3751 -3752 -3753 -3754 -3755 -3756 -3757 -3758 -3759 -3760 -3761 -3762 -3763 -3764 -3765 -3766 -3767 -3768 -3769 -3770 -3771 -3772 -3773 -3774 -3775 -3776 -3777 -3778 -3779 -3780 -3781 -3825 -3826 -3827 -3828 -3829 -3830 -3831 -3832 -3833 -3834 -3835 -3836 -3837 -3838 -3839 -3840 -3841 -3842 -3843 -3844 -3845 -3846 -3847 -3848 -3849 -3850 -3851 -3852 -3853 -3854 -3900 -3901 -3902 -3903 -3904 -3905 -3906 -3907 -3908 -3909 -3910 -3911 -3912 -3913 -3914 -3915 -3916 -3917 -3918 -3919 -3920 -3921 -3922 -3923 -3924 -3925 -3926 -3927 -3928 -3975 -3976 -3977 -3978 -3979 -3980 -3981 -3982 -3983 -3984 -3985 -3986 -3987 -3988 -3989 -3990 -3991 -3992 -3993 -3994 -3995 -3996 -3997 -3998 -3999 -4000 -4001 -4050 -4051 -4052 -4053 -4054 -4055 -4056 -4057 -4058 -4059 -4060 -4061 -4062 -4063 -4064 -4065 -4066 -4067 -4068 -4069 -4070 -4071 -4072 -4073 -4074 -4125 -4126 -4127 -4128 -4129 -4130 -4131 -4132 -4133 -4134 -4135 -4136 -4137 -4138 -4139 -4140 -4141 -4142 -4143 -4144 -4145 -4146 -4147 -4148 -4200 -4201 -4202 -4203 -4204 -4205 -4206 -4207 -4208 -4209 -4210 -4211 -4212 -4213 -4214 -4215 -4216 -4217 -4218 -4219 -4220 -4221 -4275 -4276 -4277 -4278 -4279 -4280 -4281 -4282 -4283 -4284 -4285 -4286 -4287 -4288 -4289 -4290 -4291 -4292 -4293 -4294 -4350 -4351 -4352 -4353 -4354 -4355 -4356 -4357 -4358 -4359 -4360 -4361 -4362 -4363 -4364 -4365 -4366 -4367 -4425 -4426 -4427 -4428 -4429 -4430 -4431 -4432 -4433 -4434 -4435 -4436 -4437 -4438 -4439 -4440 -4500 -4501 -4502 -4503 -4504 -4505 -4506 -4507 -4508 -4509 -4510 -4511 -4512 -4575 -4576 -4577 -4578 -4579 -4580 -4581 -4582 -4583 -4584 -4585 -4650 -4651 -4652 -4653 -4654 -4655 -4656 -4657 -4725 -4726 -4727 -4728 -4729 -4800 -4801 -7500 -7501 -7502 -7503 -7504 -7505 -7506 -7507 -7508 -7509 -7510 -7511 -7512 -7513 -7514 -7515 -7516 -7517 -7518 -7519 -7520 -7521 -7522 -7523 -7524 -7525 -7526 -7527 -7528 -7529 -7530 -7531 -7532 -7533 -7534 -7535 -7536 -7537 -7538 -7539 -7540 -7541 -7542 -7543 -7544 -7545 -7546 -7547 -7548 -7549 -7550 -7551 -7552 -7553 -7554 -7555 -7556 -7557 -7558 -7559 -7560 -7561 -7562 -7563 -7564 -7565 -7566 -7567 -7568 -7569 -7570 -7571 -7572 -7573 -7574 -7575 -7576 -7577 -7578 -7579 -7580 -7581 -7582 -7583 -7584 -7585 -7586 -7587 -7588 -7589 -7590 -7591 -7592 -7593 -7594 -7595 -7596 -7597 -7598 -7599 -7600 -7601 -7602 -7603 -7604 -7605 -7606 -7607 -7608 -7609 -7610 -7611 -7612 -7613 -7614 -7615 -7616 -7617 -7618 -7619 -7620 -7621 -7622 -7623 -7624 -7625 -7626 -7627 -7628 -7629 -7630 -7631 -7632 -7633 -7634 -7635 -7636 -7637 -7638 -7639 -7640 -7641 -7642 -7643 -7644 -7645 -7646 -7647 -7648 -7649 -7650 -7651 -7652 -7653 -7654 -7655 -7656 -7657 -7658 -7659 -7660 -7661 -7662 -7663 -7664 -7665 -7666 -7667 -7668 -7669 -7670 -7671 -7672 -7673 -7674 -7675 -7676 -7677 -7678 -7679 -7680 -7681 -7682 -7683 -7684 -7685 -7686 -7687 -7688 -7689 -7690 -7691 -7692 -7693 -7694 -7695 -7696 -7697 -7698 -7699 -7700 -7701 -7702 -7703 -7704 -7705 -7706 -7707 -7708 -7709 -7710 -7711 -7712 -7713 -7714 -7715 -7716 -7717 -7718 -7719 -7720 -7721 -7722 -7723 -7724 -7725 -7726 -7727 -7728 -7729 -7730 -7731 -7732 -7733 -7734 -7735 -7736 -7737 -7738 -7739 -7740 -7741 -7742 -7743 -7744 -7745 -7746 -7747 -7748 -7749 -7750 -7751 -7752 -7753 -7754 -7755 -7756 -7757 -7758 -7759 -7760 -7761 -7762 -7763 -7764 -7765 -7766 -7767 -7768 -7769 -7770 -7771 -7772 -7773 -7774 -7775 -7776 -7777 -7778 -7779 -7780 -7781 -7782 -7783 -7784 -7785 -7786 -7787 -7788 -7789 -7790 -7791 -7792 -7793 -7794 -7795 -7796 -7797 -7798 -7799 -7800 -7801 -7802 -7803 -7804 -7805 -7806 -7807 -7808 -7809 -7810 -7811 -7812 -7813 -7814 -7815 -7816 -7817 -7818 -7819 -7820 -7821 -7822 -7823 -7824 -7825 -7826 -7827 -7828 -7829 -7830 -7831 -7832 -7833 -7834 -7835 -7836 -7837 -7838 -7839 -7840 -7841 -7842 -7843 -7844 -7845 -7846 -7847 -7848 -7849 -7850 -7851 -7852 -7853 -7854 -7855 -7856 -7857 -7858 -7859 -7860 -7861 -7862 -7863 -7864 -7865 -7866 -7867 -7868 -7869 -7870 -7871 -7872 -7873 -7874 -7875 -7876 -7877 -7878 -7879 -7880 -7881 -7882 -7883 -7884 -7885 -7886 -7887 -7888 -7889 -7890 -7891 -7892 -7893 -7894 -7895 -7896 -7897 -7898 -7899 -7900 -7901 -7902 -7903 -7904 -7905 -7906 -7907 -7908 -7909 -7910 -7911 -7912 -7913 -7914 -7915 -7916 -7917 -7918 -7919 -7920 -7921 -7922 -7923 -7924 -7925 -7926 -7927 -7928 -7929 -7930 -7931 -7932 -7933 -7934 -7935 -7936 -7937 -7938 -7939 -7940 -7941 -7942 -7943 -7944 -7945 -7946 -7947 -7948 -7949 -7950 -7951 -7952 -7953 -7954 -7955 -7956 -7957 -7958 -7959 -7960 -7961 -7962 -7963 -7964 -7965 -7966 -7967 -7968 -7969 -7970 -7971 -7972 -7973 -7974 -7975 -7976 -7977 -7978 -7979 -7980 -7981 -7982 -7983 -7984 -7985 -7986 -7987 -7988 -7989 -7990 -7991 -7992 -7993 -7994 -7995 -7996 -7997 -7998 -7999 -8000 -8001 -8002 -8003 -8004 -8005 -8006 -8007 -8008 -8009 -8010 -8011 -8012 -8013 -8014 -8015 -8016 -8017 -8018 -8019 -8020 -8021 -8022 -8023 -8024 -8025 -8026 -8027 -8028 -8029 -8030 -8031 -8032 -8033 -8034 -8035 -8036 -8037 -8038 -8039 -8040 -8041 -8042 -8043 -8044 -8045 -8046 -8047 -8048 -8049 -8050 -8051 -8052 -8053 -8054 -8055 -8056 -8057 -8058 -8059 -8060 -8061 -8062 -8063 -8064 -8065 -8066 -8067 -8068 -8069 -8070 -8071 -8072 -8073 -8074 -8075 -8076 -8077 -8078 -8079 -8080 -8081 -8082 -8083 -8084 -8085 -8086 -8087 -8088 -8089 -8090 -8091 -8092 -8093 -8094 -8095 -8096 -8097 -8098 -8099 -8100 -8101 -8102 -8103 -8104 -8105 -8106 -8107 -8108 -8109 -8110 -8111 -8112 -8113 -8114 -8115 -8116 -8117 -8118 -8119 -8120 -8121 -8122 -8123 -8124 -8125 -8126 -8127 -8128 -8129 -8130 -8131 -8132 -8133 -8134 -8135 -8136 -8137 -8138 -8139 -8140 -8141 -8142 -8143 -8144 -8145 -8146 -8147 -8148 -8149 -8150 -8151 -8152 -8153 -8154 -8155 -8156 -8157 -8158 -8159 -8160 -8161 -8162 -8163 -8164 -8165 -8166 -8167 -8168 -8169 -8170 -8171 -8172 -8173 -8174 -8175 -8176 -8177 -8178 -8179 -8180 -8181 -8182 -8183 -8184 -8185 -8186 -8187 -8188 -8189 -8190 -8191 -8192 -8193 -8194 -8195 -8196 -8197 -8198 -8199 -8200 -8201 -8202 -8203 -8204 -8205 -8206 -8207 -8208 -8209 -8210 -8211 -8212 -8213 -8214 -8215 -8216 -8217 -8218 -8219 -8220 -8221 -8222 -8223 -8224 -8225 -8226 -8227 -8228 -8229 -8230 -8231 -8232 -8233 -8234 -8235 -8236 -8237 -8238 -8239 -8240 -8241 -8242 -8243 -8244 -8245 -8246 -8247 -8248 -8249 -8250 -8251 -8252 -8253 -8254 -8255 -8256 -8257 -8258 -8259 -8260 -8261 -8262 -8263 -8264 -8265 -8266 -8267 -8268 -8269 -8270 -8271 -8272 -8273 -8274 -8275 -8276 -8277 -8278 -8279 -8280 -8281 -8282 -8283 -8284 -8285 -8286 -8287 -8288 -8289 -8290 -8291 -8292 -8293 -8294 -8295 -8296 -8297 -8298 -8299 -8300 -8301 -8302 -8303 -8304 -8305 -8306 -8307 -8308 -8309 -8310 -8311 -8312 -8313 -8314 -8315 -8316 -8317 -8318 -8319 -8320 -8321 -8322 -8323 -8324 -8325 -8326 -8327 -8328 -8329 -8330 -8331 -8332 -8333 -8334 -8335 -8336 -8337 -8338 -8339 -8340 -8341 -8342 -8343 -8344 -8345 -8346 -8347 -8348 -8349 -8350 -8351 -8352 -8353 -8354 -8355 -8356 -8357 -8358 -8359 -8360 -8361 -8362 -8363 -8364 -8365 -8366 -8367 -8368 -8369 -8370 -8371 -8372 -8373 -8374 -8375 -8376 -8377 -8378 -8379 -8380 -8381 -8382 -8383 -8384 -8385 -8386 -8387 -8388 -8389 -8390 -8391 -8392 -8393 -8394 -8395 -8396 -8397 -8398 -8399 -8400 -8401 -8402 -8403 -8404 -8405 -8406 -8407 -8408 -8409 -8410 -8411 -8412 -8413 -8414 -8415 -8416 -8417 -8418 -8419 -8420 -8421 -8422 -8423 -8424 -8425 -8426 -8427 -8428 -8429 -8430 -8431 -8432 -8433 -8434 -8435 -8436 -8437 -8438 -8439 -8440 -8441 -8442 -8443 -8444 -8445 -8446 -8447 -8448 -8449 -8450 -8451 -8452 -8453 -8454 -8455 -8456 -8457 -8458 -8459 -8460 -8461 -8462 -8463 -8464 -8465 -8466 -8467 -8468 -8469 -8470 -8471 -8472 -8473 -8474 -8475 -8476 -8477 -8478 -8479 -8480 -8481 -8482 -8483 -8484 -8485 -8486 -8487 -8488 -8489 -8490 -8491 -8492 -8493 -8494 -8495 -8496 -8497 -8498 -8499 -8500 -8501 -8502 -8503 -8504 -8505 -8506 -8507 -8508 -8509 -8510 -8511 -8512 -8513 -8514 -8515 -8516 -8517 -8518 -8519 -8520 -8521 -8522 -8523 -8524 -8525 -8526 -8527 -8528 -8529 -8530 -8531 -8532 -8533 -8534 -8535 -8536 -8537 -8538 -8539 -8540 -8541 -8542 -8543 -8544 -8545 -8546 -8547 -8548 -8549 -8550 -8551 -8552 -8553 -8554 -8555 -8556 -8557 -8558 -8559 -8560 -8561 -8562 -8563 -8564 -8565 -8566 -8567 -8568 -8569 -8570 -8571 -8572 -8573 -8574 -8575 -8576 -8577 -8578 -8579 -8580 -8581 -8582 -8583 -8584 -8585 -8586 -8587 -8588 -8589 -8590 -8591 -8592 -8593 -8594 -8595 -8596 -8597 -8598 -8599 -8600 -8601 -8602 -8603 -8604 -8605 -8606 -8607 -8608 -8609 -8610 -8611 -8612 -8613 -8614 -8615 -8616 -8617 -8618 -8619 -8620 -8621 -8622 -8623 -8624 -8625 -8626 -8627 -8628 -8629 -8630 -8631 -8632 -8633 -8634 -8635 -8636 -8637 -8638 -8639 -8640 -8641 -8642 -8643 -8644 -8645 -8646 -8647 -8648 -8649 -8650 -8651 -8652 -8653 -8654 -8655 -8656 -8657 -8658 -8659 -8660 -8661 -8662 -8663 -8664 -8665 -8666 -8667 -8668 -8669 -8670 -8671 -8672 -8673 -8674 -8675 -8676 -8677 -8678 -8679 -8680 -8681 -8682 -8683 -8684 -8685 -8686 -8687 -8688 -8689 -8690 -8691 -8692 -8693 -8694 -8695 -8696 -8697 -8700 -8701 -8702 -8703 -8704 -8705 -8712 -8713 -8714 -8715 -8716 -8717 -8718 -8719 -8720 -8721 -8722 -8723 -8724 -8725 -8726 -8727 -8728 -8729 -8730 -8731 -8732 -8733 -8734 -8735 -8736 -8737 -8738 -8739 -8740 -8741 -8742 -8743 -8744 -8745 -8746 -8747 -8748 -8749 -8750 -8751 -8752 -8753 -8754 -8755 -8756 -8757 -8758 -8759 -8760 -8761 -8762 -8763 -8764 -8765 -8766 -8767 -8768 -8769 -8770 -8771 -8772 -8773 -8774 -8787 -8788 -8789 -8790 -8791 -8792 -8793 -8794 -8795 -8796 -8797 -8798 -8799 -8800 -8801 -8802 -8803 -8804 -8805 -8806 -8807 -8808 -8809 -8810 -8811 -8812 -8813 -8814 -8815 -8816 -8817 -8818 -8819 -8820 -8821 -8822 -8823 -8824 -8825 -8826 -8827 -8828 -8829 -8830 -8831 -8832 -8833 -8834 -8835 -8836 -8837 -8838 -8839 -8840 -8841 -8842 -8843 -8844 -8845 -8846 -8847 -8862 -8863 -8864 -8865 -8866 -8867 -8868 -8869 -8870 -8871 -8872 -8873 -8874 -8875 -8876 -8877 -8878 -8879 -8880 -8881 -8882 -8883 -8884 -8885 -8886 -8887 -8888 -8889 -8890 -8891 -8892 -8893 -8894 -8895 -8896 -8897 -8898 -8899 -8900 -8901 -8902 -8903 -8904 -8905 -8906 -8907 -8908 -8909 -8910 -8911 -8912 -8913 -8914 -8915 -8916 -8917 -8937 -8938 -8939 -8940 -8941 -8942 -8943 -8944 -8945 -8946 -8947 -8948 -8949 -8950 -8951 -8952 -8953 -8954 -8955 -8956 -8957 -8958 -8959 -8960 -8961 -8962 -8963 -8964 -8965 -8966 -8967 -8968 -8969 -8970 -8971 -8972 -8973 -8974 -8975 -8976 -8977 -8978 -8979 -8980 -8981 -8982 -8983 -8984 -8985 -8986 -8987 -8988 -9012 -9013 -9014 -9015 -9016 -9017 -9018 -9019 -9020 -9021 -9022 -9023 -9024 -9025 -9026 -9027 -9028 -9029 -9030 -9031 -9032 -9033 -9034 -9035 -9036 -9037 -9038 -9039 -9040 -9041 -9042 -9043 -9044 -9045 -9046 -9047 -9048 -9049 -9050 -9051 -9052 -9053 -9054 -9055 -9056 -9057 -9058 -9059 -9087 -9088 -9089 -9090 -9091 -9092 -9093 -9094 -9095 -9096 -9097 -9098 -9099 -9100 -9101 -9102 -9103 -9104 -9105 -9106 -9107 -9108 -9109 -9110 -9111 -9112 -9113 -9114 -9115 -9116 -9117 -9118 -9119 -9120 -9121 -9122 -9123 -9124 -9125 -9126 -9127 -9128 -9129 -9130 -9162 -9163 -9164 -9165 -9166 -9167 -9168 -9169 -9170 -9171 -9172 -9173 -9174 -9175 -9176 -9177 -9178 -9179 -9180 -9181 -9182 -9183 -9184 -9185 -9186 -9187 -9188 -9189 -9190 -9191 -9192 -9193 -9194 -9195 -9196 -9197 -9198 -9199 -9200 -9201 -9202 -9237 -9238 -9239 -9240 -9241 -9242 -9243 -9244 -9245 -9246 -9247 -9248 -9249 -9250 -9251 -9252 -9253 -9254 -9255 -9256 -9257 -9258 -9259 -9260 -9261 -9262 -9263 -9264 -9265 -9266 -9267 -9268 -9269 -9270 -9271 -9272 -9273 -9274 -9312 -9313 -9314 -9315 -9316 -9317 -9318 -9319 -9320 -9321 -9322 -9323 -9324 -9325 -9326 -9327 -9328 -9329 -9330 -9331 -9332 -9333 -9334 -9335 -9336 -9337 -9338 -9339 -9340 -9341 -9342 -9343 -9344 -9345 -9387 -9388 -9389 -9390 -9391 -9392 -9393 -9394 -9395 -9396 -9397 -9398 -9399 -9400 -9401 -9402 -9403 -9404 -9405 -9406 -9407 -9408 -9409 -9410 -9411 -9412 -9413 -9414 -9415 -9416 -9417 -9462 -9463 -9464 -9465 -9466 -9467 -9468 -9469 -9470 -9471 -9472 -9473 -9474 -9475 -9476 -9477 -9478 -9479 -9480 -9481 -9482 -9483 -9484 -9485 -9486 -9487 -9488 -9489 -9537 -9538 -9539 -9540 -9541 -9542 -9543 -9544 -9545 -9546 -9547 -9548 -9549 -9550 -9551 -9552 -9553 -9554 -9555 -9556 -9557 -9558 -9559 -9560 -9561 -9612 -9613 -9614 -9615 -9616 -9617 -9618 -9619 -9620 -9621 -9622 -9623 -9624 -9625 -9626 -9627 -9628 -9629 -9630 -9631 -9632 -9687 -9688 -9689 -9690 -9691 -9692 -9693 -9694 -9695 -9696 -9697 -9698 -9699 -9700 -9701 -9702 -9703 -9762 -9763 -9764 -9765 -9766 -9767 -9768 -9769 -9770 -9771 -9772 -9773 -9774 -9837 -9838 -9839 -9840 -9841 -9842 -9843 -9844 -9912 -9913 -10544 -10545 -10546 -10547 -10548 -10549 -10550 -10551 -10552 -10553 -10554 -10555 -10556 -10557 -10558 -10559 -10560 -10561 -10562 -10563 -10564 -10565 -10566 -10567 -10568 -10569 -10570 -10571 -10572 -10573 -10574 -10575 -10576 -10577 -10578 -10579 -10580 -10581 -10582 -10583 -10584 -10585 -10586 -10587 -10588 -10589 -10590 -10591 -10592 -10593 -10594 -10595 -10596 -10597 -10598 -10599 -10600 -10601 -10602 -10603 -10604 -10605 -10606 -10607 -10608 -10609 -10610 -10611 -10612 -10613 -10614 -10615 -10616 -10617 -10618 -10619 -10620 -10621 -10622 -10623 -10624 -10625 -10626 -10627 -10628 -10629 -10630 -10631 -10632 -10633 -10634 -10635 -10636 -10637 -10638 -10639 -10640 -10641 -10642 -10643 -10644 -10645 -10646 -10647 -10648 -10649 -10650 -10651 -10652 -10653 -10654 -10655 -10656 -10657 -10658 -10659 -10660 -10661 -10662 -10663 -10664 -10665 -10666 -10667 -10668 -10669 -10670 -10671 -10672 -10673 -10674 -10675 -10676 -10677 -10678 -10679 -10680 -10681 -10682 -10683 -10684 -10685 -10686 -10687 -10688 -10689 -10690 -10691 -10692 -10693 -10694 -10695 -10696 -10697 -10698 -10699 -10700 -10701 -10702 -10703 -10704 -10705 -10706 -10707 -10708 -10709 -10710 -10711 -10712 -10713 -10714 -10715 -10716 -10717 -10718 -10719 -10720 -10721 -10722 -10723 -10724 -10725 -10726 -10727 -10728 -10729 -10730 -10731 -10732 -10733 -10734 -10735 -10736 -10737 -10738 -10739 -10740 -10741 -10742 -10743 -10744 -10745 -10746 -10747 -10748 -10749 -10750 -10751 -10752 -10753 -10754 -10755 -10756 -10757 -10758 -10759 -10760 -10761 -10762 -10763 -10764 -10765 -10766 -10767 -10768 -10769 -10770 -10771 -10772 -10773 -10774 -10775 -10776 -10777 -10778 -10779 -10780 -10781 -10782 -10783 -10784 -10785 -10786 -10787 -10788 -10789 -10790 -10791 -10792 -10793 -10794 -10795 -10796 -10797 -10798 -10799 -10800 -10801 -10802 -10803 -10804 -10805 -10806 -10807 -10808 -10809 -10810 -10811 -10812 -10813 -10814 -10815 -10816 -10817 -10818 -10819 -10820 -10821 -10822 -10823 -10824 -10825 -10826 -10827 -10828 -10829 -10830 -10831 -10832 -10833 -10834 -10835 -10836 -10837 -10838 -10839 -10840 -10841 -10842 -10843 -10844 -10845 -10846 -10847 -10848 -10849 -10850 -10851 -10852 -10853 -10854 -10855 -10856 -10857 -10858 -10859 -10860 -10861 -10862 -10863 -10864 -10865 -10866 -10867 -10868 -10869 -10870 -10871 -10872 -10873 -10874 -10875 -10876 -10877 -10878 -10879 -10880 -10881 -10882 -10883 -10884 -10885 -10886 -10887 -10888 -10889 -10890 -10891 -10892 -10893 -10894 -10895 -10896 -10897 -10898 -10899 -10900 -10901 -10902 -10903 -10904 -10905 -10906 -10907 -10908 -10909 -10910 -10911 -10912 -10913 -10914 -10915 -10916 -10917 -10918 -10919 -10920 -10921 -10922 -10923 -10924 -10925 -10926 -10927 -10928 -10929 -10930 -10931 -10932 -10933 -10934 -10935 -10936 -10937 -10938 -10939 -10940 -10941 -10942 -10943 -10944 -10945 -10946 -10947 -10948 -10949 -10950 -10951 -10952 -10953 -10954 -10955 -10956 -10957 -10958 -10959 -10960 -10961 -10962 -10963 -10964 -10965 -10966 -10967 -10968 -10969 -10970 -10971 -10972 -10973 -10974 -10975 -10976 -10977 -10978 -10979 -10980 -10981 -10982 -10983 -10984 -10985 -10986 -10987 -10988 -10989 -10990 -10991 -10992 -10993 -10994 -10995 -10996 -10997 -10998 -10999 -11000 -11001 -11002 -11003 -11004 -11005 -11006 -11007 -11008 -11009 -11010 -11011 -11012 -11013 -11014 -11015 -11016 -11017 -11018 -11019 -11020 -11021 -11022 -11023 -11024 -11025 -11026 -11027 -11028 -11029 -11030 -11031 -11032 -11033 -11034 -11035 -11036 -11037 -11038 -11039 -11040 -11041 -11042 -11043 -11044 -11045 -11046 -11047 -11048 -11049 -11050 -11051 -11052 -11053 -11054 -11055 -11056 -11057 -11058 -11059 -11060 -11061 -11062 -11063 -11064 -11065 -11066 -11067 -11068 -11069 -11070 -11071 -11072 -11073 -11074 -11075 -11076 -11077 -11078 -11079 -11080 -11081 -11082 -11083 -11084 -11085 -11086 -11087 -11088 -11089 -11090 -11091 -11092 -11093 -11094 -11095 -11096 -11097 -11098 -11099 -11100 -11101 -11102 -11103 -11104 -11105 -11106 -11107 -11108 -11109 -11110 -11111 -11112 -11113 -11114 -11115 -11116 -11117 -11118 -11119 -11120 -11121 -11122 -11123 -11124 -11125 -11126 -11127 -11128 -11129 -11130 -11131 -11132 -11133 -11134 -11135 -11136 -11137 -11138 -11139 -11140 -11141 -11142 -11143 -11144 -11145 -11146 -11147 -11148 -11149 -11150 -11151 -11152 -11153 -11154 -11155 -11156 -11157 -11158 -11159 -11160 -11161 -11162 -11163 -11164 -11165 -11166 -11167 -11168 -11169 -11170 -11171 -11172 -11173 -11174 -11175 -11176 -11177 -11178 -11179 -11180 -11181 -11182 -11183 -11184 -11185 -11186 -11187 -11188 -11189 -11190 -11191 -11192 -11193 -11194 -11195 -11196 -11197 -11198 -11199 -11200 -11201 -11202 -11203 -11204 -11205 -11206 -11207 -11208 -11209 -11210 -11211 -11212 -11213 -11214 -11215 -11216 -11217 -11218 -11219 -11220 -11221 -11222 -11223 -11224 -11225 -11226 -11227 -11228 -11229 -11230 -11231 -11232 -11233 -11234 -11235 -11236 -11237 -11238 -11239 -11240 -11241 -11242 -11243 -11244 -11245 -11246 -11247 -11248 -11249 -11250 -11251 -11252 -11253 -11254 -11255 -11256 -11257 -11258 -11259 -11260 -11261 -11262 -11263 -11264 -11265 -11266 -11267 -11268 -11269 -11270 -11271 -11272 -11273 -11274 -11275 -11276 -11277 -11278 -11279 -11280 -11281 -11282 -11283 -11284 -11285 -11286 -11287 -11288 -11289 -11290 -11291 -11292 -11293 -11294 -11295 -11296 -11297 -11298 -11299 -11300 -11301 -11302 -11303 -11304 -11305 -11306 -11307 -11308 -11309 -11310 -11311 -11312 -11313 -11314 -11315 -11316 -11317 -11318 -11319 -11320 -11321 -11322 -11323 -11324 -11325 -11326 -11327 -11328 -11329 -11330 -11331 -11332 -11333 -11334 -11335 -11336 -11337 -11338 -11339 -11340 -11341 -11342 -11343 -11344 -11345 -11346 -11347 -11348 -11349 -11350 -11351 -11352 -11353 -11354 -11355 -11356 -11357 -11358 -11359 -11360 -11361 -11362 -11363 -11364 -11365 -11366 -11367 -11368 -11369 -11370 -11371 -11372 -11373 -11374 -11375 -11376 -11377 -11378 -11379 -11380 -11381 -11382 -11383 -11384 -11385 -11386 -11387 -11388 -11389 -11390 -11391 -11392 -11393 -11394 -11395 -11396 -11397 -11398 -11399 -11400 -11401 -11402 -11403 -11404 -11405 -11406 -11407 -11408 -11409 -11410 -11411 -11412 -11413 -11414 -11415 -11416 -11417 -11418 -11419 -11420 -11421 -11422 -11423 -11424 -11425 -11426 -11427 -11428 -11429 -11430 -11431 -11432 -11433 -11434 -11435 -11436 -11437 -11438 -11439 -11440 -11441 -11442 -11443 -11444 -11445 -11446 -11447 -11448 -11449 -11450 -11451 -11452 -11453 -11454 -11455 -11456 -11457 -11458 -11459 -11460 -11461 -11462 -11463 -11464 -11465 -11466 -11467 -11468 -11469 -11470 -11471 -11472 -11473 -11474 -11475 -11476 -11477 -11478 -11479 -11480 -11481 -11482 -11483 -11484 -11485 -11486 -11487 -11488 -11489 -11490 -11491 -11492 -11493 -11494 -11495 -11496 -11497 -11498 -11499 -11500 -11501 -11502 -11503 -11504 -11505 -11506 -11507 -11508 -11509 -11510 -11511 -11512 -11513 -11514 -11515 -11516 -11517 -11518 -11519 -11520 -11521 -11522 -11523 -11524 -11525 -11526 -11527 -11528 -11529 -11530 -11531 -11532 -11533 -11534 -11535 -11536 -11537 -11538 -11539 -11540 -11541 -11542 -11543 -11544 -11545 -11546 -11547 -11548 -11549 -11550 -11551 -11552 -11553 -11554 -11555 -11556 -11557 -11558 -11559 -11560 -11561 -11562 -11563 -11564 -11565 -11566 -11567 -11568 -11569 -11570 -11571 -11572 -11573 -11574 -11575 -11576 -11577 -11578 -11579 -11580 -11581 -11582 -11583 -11584 -11585 -11586 -11587 -11588 -11589 -11590 -11591 -11592 -11593 -11594 -11595 -11596 -11597 -11598 -11599 -11600 -11601 -11602 -11603 -11604 -11605 -11606 -11607 -11608 -11609 -11610 -11611 -11612 -11613 -11614 -11615 -11616 -11617 -11618 -11619 -11620 -11621 -11622 -11623 -11624 -11625 -11626 -11627 -11628 -11629 -11630 -11631 -11632 -11633 -11634 -11635 -11636 -11637 -11638 -11639 -11640 -11641 -11642 -11643 -11644 -11645 -11646 -11647 -11648 -11649 -11650 -11651 -11652 -11653 -11654 -11655 -11656 -11657 -11658 -11659 -11660 -11661 -11662 -11663 -11664 -11665 -11666 -11667 -11668 -11669 -11670 -11671 -11672 -11673 -11674 -11675 -11676 -11677 -11678 -11679 -11680 -11681 -11682 -11683 -11684 -11685 -11686 -11687 -11688 -11689 -11690 -11691 -11692 -11693 -11694 -11695 -11696 -11697 -11698 -11699 -11700 -11701 -11702 -11703 -11704 -11705 -11706 -11707 -11708 -11709 -11710 -11711 -11712 -11713 -11714 -11715 -11716 -11717 -11718 -11719 -11720 -11721 -11722 -11723 -11724 -11725 -11726 -11727 -11728 -11729 -11730 -11731 -11732 -11733 -11734 -11742 -11743 -11744 -11745 -11746 -11747 -11748 -11749 -11750 -11751 -11752 -11753 -11754 -11755 -11756 -11757 -11758 -11759 -11760 -11761 -11762 -11763 -11764 -11765 -11766 -11767 -11768 -11769 -11770 -11771 -11772 -11773 -11774 -11775 -11776 -11777 -11778 -11779 -11780 -11781 -11782 -11783 -11784 -11785 -11786 -11787 -11788 -11789 -11790 -11791 -11792 -11793 -11794 -11795 -11796 -11797 -11798 -11799 -11800 -11801 -11802 -11803 -11804 -11817 -11818 -11819 -11820 -11821 -11822 -11823 -11824 -11825 -11826 -11827 -11828 -11829 -11830 -11831 -11832 -11833 -11834 -11835 -11836 -11837 -11838 -11839 -11840 -11841 -11842 -11843 -11844 -11845 -11846 -11847 -11848 -11849 -11850 -11851 -11852 -11853 -11854 -11855 -11856 -11857 -11858 -11859 -11860 -11861 -11862 -11863 -11864 -11865 -11866 -11867 -11868 -11869 -11870 -11871 -11872 -11873 -11874 -11892 -11893 -11894 -11895 -11896 -11897 -11898 -11899 -11900 -11901 -11902 -11903 -11904 -11905 -11906 -11907 -11908 -11909 -11910 -11911 -11912 -11913 -11914 -11915 -11916 -11917 -11918 -11919 -11920 -11921 -11922 -11923 -11924 -11925 -11926 -11927 -11928 -11929 -11930 -11931 -11932 -11933 -11934 -11935 -11936 -11937 -11938 -11939 -11940 -11941 -11942 -11943 -11944 -11945 -11967 -11968 -11969 -11970 -11971 -11972 -11973 -11974 -11975 -11976 -11977 -11978 -11979 -11980 -11981 -11982 -11983 -11984 -11985 -11986 -11987 -11988 -11989 -11990 -11991 -11992 -11993 -11994 -11995 -11996 -11997 -11998 -11999 -12000 -12001 -12002 -12003 -12004 -12005 -12006 -12007 -12008 -12009 -12010 -12011 -12012 -12013 -12014 -12015 -12016 -12042 -12043 -12044 -12045 -12046 -12047 -12048 -12049 -12050 -12051 -12052 -12053 -12054 -12055 -12056 -12057 -12058 -12059 -12060 -12061 -12062 -12063 -12064 -12065 -12066 -12067 -12068 -12069 -12070 -12071 -12072 -12073 -12074 -12075 -12076 -12077 -12078 -12079 -12080 -12081 -12082 -12083 -12084 -12085 -12086 -12087 -12117 -12118 -12119 -12120 -12121 -12122 -12123 -12124 -12125 -12126 -12127 -12128 -12129 -12130 -12131 -12132 -12133 -12134 -12135 -12136 -12137 -12138 -12139 -12140 -12141 -12142 -12143 -12144 -12145 -12146 -12147 -12148 -12149 -12150 -12151 -12152 -12153 -12154 -12155 -12156 -12157 -12158 -12192 -12193 -12194 -12195 -12196 -12197 -12198 -12199 -12200 -12201 -12202 -12203 -12204 -12205 -12206 -12207 -12208 -12209 -12210 -12211 -12212 -12213 -12214 -12215 -12216 -12217 -12218 -12219 -12220 -12221 -12222 -12223 -12224 -12225 -12226 -12227 -12228 -12229 -12230 -12267 -12268 -12269 -12270 -12271 -12272 -12273 -12274 -12275 -12276 -12277 -12278 -12279 -12280 -12281 -12282 -12283 -12284 -12285 -12286 -12287 -12288 -12289 -12290 -12291 -12292 -12293 -12294 -12295 -12296 -12297 -12298 -12299 -12300 -12301 -12302 -12342 -12343 -12344 -12345 -12346 -12347 -12348 -12349 -12350 -12351 -12352 -12353 -12354 -12355 -12356 -12357 -12358 -12359 -12360 -12361 -12362 -12363 -12364 -12365 -12366 -12367 -12368 -12369 -12370 -12371 -12372 -12373 -12374 -12417 -12418 -12419 -12420 -12421 -12422 -12423 -12424 -12425 -12426 -12427 -12428 -12429 -12430 -12431 -12432 -12433 -12434 -12435 -12436 -12437 -12438 -12439 -12440 -12441 -12442 -12443 -12444 -12445 -12446 -12492 -12493 -12494 -12495 -12496 -12497 -12498 -12499 -12500 -12501 -12502 -12503 -12504 -12505 -12506 -12507 -12508 -12509 -12510 -12511 -12512 -12513 -12514 -12515 -12516 -12517 -12567 -12568 -12569 -12570 -12571 -12572 -12573 -12574 -12575 -12576 -12577 -12578 -12579 -12580 -12581 -12582 -12583 -12584 -12585 -12586 -12587 -12588 -12589 -12642 -12643 -12644 -12645 -12646 -12647 -12648 -12649 -12650 -12651 -12652 -12653 -12654 -12655 -12656 -12657 -12658 -12659 -12660 -12717 -12718 -12719 -12720 -12721 -12722 -12723 -12724 -12725 -12726 -12727 -12728 -12729 -12730 -12731 -12792 -12793 -12794 -12795 -12796 -12797 -12798 -12799 -12800 -12801 -12867 -12868 -12869 -12870 -12871 -13534 -13535 -13536 -13537 -13538 -13539 -13540 -13541 -13542 -13543 -13544 -13545 -13546 -13547 -13548 -13549 -13550 -13551 -13552 -13553 -13554 -13555 -13556 -13557 -13558 -13559 -13560 -13561 -13562 -13563 -13564 -13565 -13566 -13567 -13568 -13569 -13570 -13571 -13572 -13573 -13574 -13575 -13576 -13577 -13578 -13579 -13580 -13581 -13582 -13583 -13584 -13585 -13586 -13587 -13588 -13589 -13590 -13591 -13592 -13593 -13594 -13595 -13596 -13597 -13598 -13599 -13600 -13601 -13602 -13603 -13604 -13605 -13606 -13607 -13608 -13609 -13610 -13611 -13612 -13613 -13614 -13615 -13616 -13617 -13618 -13619 -13620 -13621 -13622 -13623 -13624 -13625 -13626 -13627 -13628 -13629 -13630 -13631 -13632 -13633 -13634 -13635 -13636 -13637 -13638 -13639 -13640 -13641 -13642 -13643 -13644 -13645 -13646 -13647 -13648 -13649 -13650 -13651 -13652 -13653 -13654 -13655 -13656 -13657 -13658 -13659 -13660 -13661 -13662 -13663 -13664 -13665 -13666 -13667 -13668 -13669 -13670 -13671 -13672 -13673 -13674 -13675 -13676 -13677 -13678 -13679 -13680 -13681 -13682 -13683 -13684 -13685 -13686 -13687 -13688 -13689 -13690 -13691 -13692 -13693 -13694 -13695 -13696 -13697 -13698 -13699 -13700 -13701 -13702 -13703 -13704 -13705 -13706 -13707 -13708 -13709 -13710 -13711 -13712 -13713 -13714 -13715 -13716 -13717 -13718 -13719 -13720 -13721 -13722 -13723 -13724 -13725 -13726 -13727 -13728 -13729 -13730 -13731 -13732 -13733 -13734 -13735 -13736 -13737 -13738 -13739 -13740 -13741 -13742 -13743 -13744 -13745 -13746 -13747 -13748 -13749 -13750 -13751 -13752 -13753 -13754 -13755 -13756 -13757 -13758 -13759 -13760 -13761 -13762 -13763 -13764 -13765 -13766 -13767 -13768 -13769 -13770 -13771 -13772 -13773 -13774 -13775 -13776 -13777 -13778 -13779 -13780 -13781 -13782 -13783 -13784 -13785 -13786 -13787 -13788 -13789 -13790 -13791 -13792 -13793 -13794 -13795 -13796 -13797 -13798 -13799 -13800 -13801 -13802 -13803 -13804 -13805 -13806 -13807 -13808 -13809 -13810 -13811 -13812 -13813 -13814 -13815 -13816 -13817 -13818 -13819 -13820 -13821 -13822 -13823 -13824 -13825 -13826 -13827 -13828 -13829 -13830 -13831 -13832 -13833 -13834 -13835 -13836 -13837 -13838 -13839 -13840 -13841 -13842 -13843 -13844 -13845 -13846 -13847 -13848 -13849 -13850 -13851 -13852 -13853 -13854 -13855 -13856 -13857 -13858 -13859 -13860 -13861 -13862 -13863 -13864 -13865 -13866 -13867 -13868 -13869 -13870 -13871 -13872 -13873 -13874 -13875 -13876 -13877 -13878 -13879 -13880 -13881 -13882 -13883 -13884 -13885 -13886 -13887 -13888 -13889 -13890 -13891 -13892 -13893 -13894 -13895 -13896 -13897 -13898 -13899 -13900 -13901 -13902 -13903 -13904 -13905 -13906 -13907 -13908 -13909 -13910 -13911 -13912 -13913 -13914 -13915 -13916 -13917 -13918 -13919 -13920 -13921 -13922 -13923 -13924 -13925 -13926 -13927 -13928 -13929 -13930 -13931 -13932 -13933 -13934 -13935 -13936 -13937 -13938 -13939 -13940 -13941 -13942 -13943 -13944 -13945 -13946 -13947 -13948 -13949 -13950 -13951 -13952 -13953 -13954 -13955 -13956 -13957 -13958 -13959 -13960 -13961 -13962 -13963 -13964 -13965 -13966 -13967 -13968 -13969 -13970 -13971 -13972 -13973 -13974 -13975 -13976 -13977 -13978 -13979 -13980 -13981 -13982 -13983 -13984 -13985 -13986 -13987 -13988 -13989 -13990 -13991 -13992 -13993 -13994 -13995 -13996 -13997 -13998 -13999 -14000 -14001 -14002 -14003 -14004 -14005 -14006 -14007 -14008 -14009 -14010 -14011 -14012 -14013 -14014 -14015 -14016 -14017 -14018 -14019 -14020 -14021 -14022 -14023 -14024 -14025 -14026 -14027 -14028 -14029 -14030 -14031 -14032 -14033 -14034 -14035 -14036 -14037 -14038 -14039 -14040 -14041 -14042 -14043 -14044 -14045 -14046 -14047 -14048 -14049 -14050 -14051 -14052 -14053 -14054 -14055 -14056 -14057 -14058 -14059 -14060 -14061 -14062 -14063 -14064 -14065 -14066 -14067 -14068 -14069 -14070 -14071 -14072 -14073 -14074 -14075 -14076 -14077 -14078 -14079 -14080 -14081 -14082 -14083 -14084 -14085 -14086 -14087 -14088 -14089 -14090 -14091 -14092 -14093 -14094 -14095 -14096 -14097 -14098 -14099 -14100 -14101 -14102 -14103 -14104 -14105 -14106 -14107 -14108 -14109 -14110 -14111 -14112 -14113 -14114 -14115 -14116 -14117 -14118 -14119 -14120 -14121 -14122 -14123 -14124 -14125 -14126 -14127 -14128 -14129 -14130 -14131 -14132 -14133 -14134 -14135 -14136 -14137 -14138 -14139 -14140 -14141 -14142 -14143 -14144 -14145 -14146 -14147 -14148 -14149 -14150 -14151 -14152 -14153 -14154 -14155 -14156 -14157 -14158 -14159 -14160 -14161 -14162 -14163 -14164 -14165 -14166 -14167 -14168 -14169 -14170 -14171 -14172 -14173 -14174 -14175 -14176 -14177 -14178 -14179 -14180 -14181 -14182 -14183 -14184 -14185 -14186 -14187 -14188 -14189 -14190 -14191 -14192 -14193 -14194 -14195 -14196 -14197 -14198 -14199 -14200 -14201 -14202 -14203 -14204 -14205 -14206 -14207 -14208 -14209 -14210 -14211 -14212 -14213 -14214 -14215 -14216 -14217 -14218 -14219 -14220 -14221 -14222 -14223 -14224 -14225 -14226 -14227 -14228 -14229 -14230 -14231 -14232 -14233 -14234 -14235 -14236 -14237 -14238 -14239 -14240 -14241 -14242 -14243 -14244 -14245 -14246 -14247 -14248 -14249 -14250 -14251 -14252 -14253 -14254 -14255 -14256 -14257 -14258 -14259 -14260 -14261 -14262 -14263 -14264 -14265 -14266 -14267 -14268 -14269 -14270 -14271 -14272 -14273 -14274 -14275 -14276 -14277 -14278 -14279 -14280 -14281 -14282 -14283 -14284 -14285 -14286 -14287 -14288 -14289 -14290 -14291 -14292 -14293 -14294 -14295 -14296 -14297 -14298 -14299 -14300 -14301 -14302 -14303 -14304 -14305 -14306 -14307 -14308 -14309 -14310 -14311 -14312 -14313 -14314 -14315 -14316 -14317 -14318 -14319 -14320 -14321 -14322 -14323 -14324 -14325 -14326 -14327 -14328 -14329 -14330 -14331 -14332 -14333 -14334 -14335 -14336 -14337 -14338 -14339 -14340 -14341 -14342 -14343 -14344 -14345 -14346 -14347 -14348 -14349 -14350 -14351 -14352 -14353 -14354 -14355 -14356 -14357 -14358 -14359 -14360 -14361 -14362 -14363 -14364 -14365 -14366 -14367 -14368 -14369 -14370 -14371 -14372 -14373 -14374 -14375 -14376 -14377 -14378 -14379 -14380 -14381 -14382 -14383 -14384 -14385 -14386 -14387 -14388 -14389 -14390 -14391 -14392 -14393 -14394 -14395 -14396 -14397 -14398 -14399 -14400 -14401 -14402 -14403 -14404 -14405 -14406 -14407 -14408 -14409 -14410 -14411 -14412 -14413 -14414 -14415 -14416 -14417 -14418 -14419 -14420 -14421 -14422 -14423 -14424 -14425 -14426 -14427 -14428 -14429 -14430 -14431 -14432 -14433 -14434 -14435 -14436 -14437 -14438 -14439 -14440 -14441 -14442 -14443 -14444 -14445 -14446 -14447 -14448 -14449 -14450 -14451 -14452 -14453 -14454 -14455 -14456 -14457 -14458 -14459 -14460 -14461 -14462 -14463 -14464 -14465 -14466 -14467 -14468 -14469 -14470 -14471 -14472 -14473 -14474 -14475 -14476 -14477 -14478 -14479 -14480 -14481 -14482 -14483 -14484 -14485 -14486 -14487 -14488 -14489 -14490 -14491 -14492 -14493 -14494 -14495 -14496 -14497 -14498 -14499 -14500 -14501 -14502 -14503 -14504 -14505 -14506 -14507 -14508 -14509 -14510 -14511 -14512 -14513 -14514 -14515 -14516 -14517 -14518 -14519 -14520 -14521 -14522 -14523 -14524 -14525 -14526 -14527 -14528 -14529 -14530 -14531 -14532 -14533 -14534 -14535 -14536 -14537 -14538 -14539 -14540 -14541 -14542 -14543 -14544 -14545 -14546 -14547 -14548 -14549 -14550 -14551 -14552 -14553 -14554 -14555 -14556 -14557 -14558 -14559 -14560 -14561 -14562 -14563 -14564 -14565 -14566 -14567 -14568 -14569 -14570 -14571 -14572 -14573 -14574 -14575 -14576 -14577 -14578 -14579 -14580 -14581 -14582 -14583 -14584 -14585 -14586 -14587 -14588 -14589 -14590 -14591 -14592 -14593 -14594 -14595 -14596 -14597 -14598 -14599 -14600 -14601 -14602 -14603 -14604 -14605 -14606 -14607 -14608 -14609 -14610 -14611 -14612 -14613 -14614 -14615 -14616 -14617 -14618 -14619 -14620 -14621 -14622 -14623 -14624 -14625 -14626 -14627 -14628 -14629 -14630 -14631 -14632 -14633 -14634 -14635 -14636 -14637 -14638 -14639 -14640 -14641 -14642 -14643 -14644 -14645 -14646 -14647 -14648 -14649 -14650 -14651 -14652 -14653 -14654 -14655 -14656 -14657 -14658 -14659 -14660 -14661 -14662 -14663 -14664 -14665 -14666 -14667 -14668 -14669 -14670 -14671 -14672 -14673 -14674 -14675 -14676 -14677 -14678 -14679 -14680 -14681 -14682 -14683 -14684 -14685 -14686 -14687 -14688 -14689 -14690 -14691 -14692 -14693 -14694 -14695 -14696 -14697 -14698 -14699 -14700 -14701 -14702 -14703 -14704 -14705 -14706 -14707 -14708 -14709 -14710 -14711 -14712 -14713 -14714 -14715 -14716 -14717 -14718 -14719 -14720 -14721 -14722 -14723 -14724 -14725 -14726 -14727 -14728 -14729 -14730 -14731 -14732 -14733 -14734 -14735 -14736 -14737 -14738 -14739 -14740 -14741 -14742 -14743 -14744 -14745 -14746 -14747 -14748 -14749 -14750 -14751 -14752 -14753 -14754 -14755 -14756 -14757 -14758 -14759 -14760 -14761 -14762 -14763 -14764 -14765 -14766 -14767 -14768 -14769 -14770 -14771 -14772 -14773 -14774 -14775 -14776 -14777 -14778 -14779 -14780 -14781 -14782 -14783 -14784 -14785 -14786 -14787 -14788 -14789 -14790 -14791 -14792 -14793 -14794 -14795 -14796 -14797 -14798 -14799 -14800 -14801 -14802 -14803 -14804 -14805 -14806 -14807 -14808 -14809 -14810 -14811 -14812 -14813 -14814 -14815 -14816 -14817 -14818 -14819 -14820 -14821 -14822 -14823 -14824 -14825 -14826 -14827 -14828 -14829 -14830 -14831 -14832 -14833 -14834 -14835 -14836 -14837 -14838 -14839 -14840 -14841 -14842 -14843 -14844 -14845 -14846 -14847 -14848 -14849 -14850 -14851 -14852 -14853 -14854 -14855 -14856 -14857 -14858 -14859 -14860 -14861 -14862 -14863 -14864 -14865 -14866 -14867 -14868 -14869 -14870 -14871 -14872 -14873 -14874 -14875 -14876 -14877 -14878 -14879 -14880 -14881 -14882 -14883 -14884 -14885 -14886 -14887 -14888 -14889 -14890 -14891 -14892 -14893 -14894 -14895 -14896 -14897 -14898 -14899 -14900 -14901 -14902 -14903 -14904 -14905 -14906 -14907 -14908 -14909 -14910 -14911 -14912 -14913 -14914 -14915 -14916 -14917 -14918 -14919 -14920 -14921 -14922 -14923 -14924 -14925 -14926 -14927 -14928 -14929 -14930 -14931 -14932 -14933 -14934 -14935 -14936 -14937 -14938 -14939 -14940 -14941 -14942 -14943 -14944 -14945 -14946 -14947 -14948 -14949 -14950 -14951 -14952 -14953 -14954 -14955 -14956 -14957 -14958 -14959 -14960 -14961 -14962 -14963 -14964 -14965 -14966 -14967 -14968 -14969 -14970 -14971 -14972 -14973 -14974 -14975 -14976 -14977 -14978 -14979 -14980 -14981 -14982 -14983 -14984 -14985 -14986 -14987 -14988 -14989 -14990 -14991 -14992 -14993 -14994 -14995 -14996 -14997 -14998 -14999 -15000 -15001 -15002 -15003 -15004 -15005 -15006 -15007 -15008 -15009 -15010 -15011 -15012 -15013 -15014 -15015 -15016 -15017 -15018 -15019 -15020 -15021 -15022 -15023 -15024 -15025 -15026 -15027 -15028 -15029 -15030 -15031 -15032 -15033 -15034 -15035 -15036 -15037 -15038 -15039 -15040 -15041 -15042 -15043 -15044 -15045 -15046 -15047 -15048 -15049 -15050 -15051 -15052 -15053 -15054 -15055 -15056 -15057 -15058 -15059 -15060 -15061 -15062 -15063 -15064 -15065 -15066 -15067 -15068 -15069 -15070 -15071 -15072 -15073 -15074 -15075 -15076 -15077 -15078 -15079 -15080 -15081 -15082 -15083 -15084 -15085 -15086 -15087 -15088 -15089 -15090 -15091 -15092 -15093 -15094 -15095 -15096 -15097 -15098 -15099 -15100 -15101 -15102 -15103 -15104 -15105 -15106 -15107 -15108 -15109 -15110 -15111 -15112 -15113 -15114 -15115 -15116 -15117 -15118 -15119 -15120 -15121 -15122 -15123 -15124 -15125 -15126 -15127 -15128 -15129 -15130 -15131 -15132 -15133 -15134 -15135 -15136 -15137 -15138 -15139 -15140 -15141 -15142 -15143 -15144 -15145 -15146 -15147 -15148 -15149 -15150 -15151 -15152 -15153 -15154 -15155 -15156 -15157 -15158 -15159 -15160 -15161 -15162 -15163 -15164 -15165 -15166 -15167 -15168 -15169 -15170 -15171 -15172 -15173 -15174 -15175 -15176 -15177 -15178 -15179 -15180 -15181 -15182 -15183 -15184 -15185 -15186 -15187 -15188 -15189 -15190 -15191 -15192 -15193 -15194 -15195 -15196 -15197 -15198 -15199 -15200 -15201 -15202 -15203 -15204 -15205 -15206 -15207 -15208 -15209 -15210 -15211 -15212 -15213 -15214 -15215 -15216 -15217 -15218 -15219 -15220 -15221 -15222 -15223 -15224 -15225 -15226 -15227 -15228 -15229 -15230 -15231 -15232 -15233 -15234 -15235 -15236 -15237 -15238 -15239 -15240 -15241 -15242 -15243 -15244 -15245 -15246 -15247 -15248 -15249 -15250 -15251 -15252 -15253 -15254 -15255 -15256 -15257 -15258 -15259 -15260 -15261 -15262 -15263 -15264 -15265 -15266 -15267 -15268 -15269 -15270 -15271 -15272 -15273 -15274 -15275 -15276 -15277 -15278 -15279 -15280 -15281 -15282 -15283 -15284 -15285 -15286 -15287 -15288 -15289 -15290 -15291 -15292 -15293 -15294 -15295 -15296 -15297 -15298 -15299 -15300 -15301 -15302 -15303 -15304 -15305 -15306 -15307 -15308 -15309 -15310 -15311 -15312 -15313 -15314 -15315 -15316 -15317 -15318 -15319 -15320 -15321 -15322 -15323 -15324 -15325 -15326 -15327 -15328 -15329 -15330 -15331 -15332 -15333 -15334 -15335 -15336 -15337 -15338 -15339 -15340 -15341 -15342 -15343 -15344 -15345 -15346 -15347 -15348 -15349 -15350 -15351 -15352 -15353 -15354 -15355 -15356 -15357 -15358 -15359 -15360 -15361 -15362 -15363 -15364 -15365 -15366 -15367 -15368 -15369 -15370 -15371 -15372 -15373 -15374 -15375 -15376 -15377 -15378 -15379 -15380 -15381 -15382 -15383 -15384 -15385 -15386 -15387 -15388 -15389 -15390 -15391 -15392 -15393 -15394 -15395 -15396 -15397 -15398 -15399 -15400 -15401 -15402 -15403 -15404 -15405 -15406 -15407 -15408 -15409 -15410 -15411 -15412 -15413 -15414 -15415 -15416 -15417 -15418 -15419 -15420 -15421 -15422 -15423 -15424 -15425 -15426 -15427 -15428 -15429 -15430 -15431 -15432 -15433 -15434 -15435 -15436 -15437 -15438 -15439 -15440 -15441 -15442 -15443 -15444 -15445 -15446 -15447 -15448 -15449 -15450 -15451 -15452 -15453 -15454 -15455 -15456 -15457 -15458 -15459 -15460 -15461 -15462 -15463 -15464 -15465 -15466 -15467 -15468 -15469 -15470 -15471 -15472 -15473 -15474 -15475 -15476 -15477 -15478 -15479 -15480 -15481 -15482 -15483 -15484 -15485 -15486 -15487 -15488 -15489 -15490 -15491 -15492 -15493 -15494 -15495 -15496 -15497 -15498 -15499 -15500 -15501 -15502 -15503 -15504 -15505 -15506 -15507 -15508 -15509 -15510 -15511 -15512 -15513 -15514 -15515 -15516 -15517 -15518 -15519 -15520 -15521 -15522 -15523 -15524 -15525 -15526 -15527 -15528 -15529 -15530 -15531 -15532 -15533 -15534 -15535 -15536 -15537 -15538 -15539 -15540 -15541 -15542 -15543 -15544 -15545 -15546 -15547 -15548 -15549 -15550 -15551 -15552 -15553 -15554 -15555 -15556 -15557 -15558 -15559 -15560 -15561 -15562 -15563 -15564 -15565 -15566 -15567 -15568 -15569 -15570 -15571 -15572 -15573 -15574 -15575 -15576 -15577 -15578 -15579 -15580 -15581 -15582 -15583 -15584 -15585 -15586 -15587 -15588 -15589 -15590 -15591 -15592 -15593 -15594 -15595 -15596 -15597 -15598 -15599 -15600 -15601 -15602 -15603 -15604 -15605 -15606 -15607 -15608 -15609 -15610 -15611 -15612 -15613 -15614 -15615 -15616 -15617 -15618 -15619 -15620 -15621 -15622 -15623 -15624 -15625 -15626 -15627 -15628 -15629 -15630 -15631 -15632 -15633 -15634 -15635 -15636 -15637 -15638 -15639 -15640 -15641 -15642 -15643 -15644 -15645 -15646 -15647 -15648 -15649 -15650 -15651 -15652 -15653 -15654 -15655 -15656 -15657 -15658 -15659 -15660 -15661 -15662 -15663 -15664 -15665 -15666 -15667 -15668 -15669 -15670 -15671 -15672 -15673 -15674 -15675 -15676 -15677 -15678 -15679 -15680 -15681 -15682 -15683 -15684 -15685 -15686 -15687 -15688 -15689 -15690 -15691 -15692 -15693 -15694 -15695 -15696 -15697 -15698 -15699 -15700 -15701 -15702 -15703 -15704 -15705 -15706 -15707 -15708 -15709 -15710 -15711 -15712 -15713 -15714 -15715 -15716 -15717 -15718 -15719 -15720 -15721 -15722 -15723 -15724 -15725 -15726 -15727 -15728 -15729 -15730 -15731 -15732 -15733 -15734 -15735 -15736 -15737 -15738 -15739 -15740 -15741 -15742 -15743 -15744 -15745 -15746 -15747 -15748 -15749 -15750 -15751 -15752 -15753 -15754 -15755 -15756 -15757 -15758 -15759 -15760 -15761 -15762 -15763 -15764 -15765 -15766 -15767 -15768 -15769 -15770 -15771 -15772 -15773 -15774 -15775 -15776 -15777 -15778 -15779 -15780 -15781 -15782 -15783 -15784 -15785 -15786 -15787 -15788 -15789 -15790 -15791 -15792 -15793 -15794 -15795 -15796 -15797 -15798 -15799 -15800 -15801 -15802 -15803 -15804 -15805 -15806 -15807 -15808 -15809 -15810 -15811 -15812 -15813 -15814 -15815 -15816 -15817 -15818 -15819 -15820 -15821 -15822 -15823 -15824 -15825 -15826 -15827 -15828 -15829 -15830 -15831 -15832 -15833 -15834 -15835 -15836 -15837 -15838 -15839 -15840 -15841 -15842 -15843 -15844 -15845 -15846 -15847 -15848 -15849 -15850 -15851 -15852 -15853 -15854 -15855 -15856 -15857 -15858 -15859 -15860 -15861 -15862 -15863 -15864 -15865 -15866 -15867 -15868 -15869 -15870 -15871 -15872 -15873 -15874 -15875 -15876 -15877 -15878 -15879 -15880 -15881 -15882 -15883 -15884 -15885 -15886 -15887 -15888 -15889 -15890 -15891 -15892 -15893 -15894 -15895 -15896 -15897 -15898 -15899 -15900 -15901 -15902 -15903 -15904 -15905 -15906 -15907 -15908 -15909 -15910 -15911 -15912 -15913 -15914 -15915 -15916 -15917 -15918 -15919 -15920 -15921 -15922 -15923 -15924 -15925 -15926 -15927 -15928 -15929 -15930 -15931 -15932 -15933 -15934 -15935 -15936 -15937 -15938 -15939 -15940 -15941 -15942 -15943 -15944 -15945 -15946 -15947 -15948 -15949 -15950 -15951 -15952 -15953 -15954 -15955 -15956 -15957 -15958 -15959 -15960 -15961 -15962 -15963 -15964 -15965 -15966 -15967 -15968 -15969 -15970 -15971 -15972 -15973 -15974 -15975 -15976 -15977 -15978 -15979 -15980 -15981 -15982 -15983 -15984 -15985 -15986 -15987 -15988 -15989 -15990 -15991 -15992 -15993 -15994 -15995 -15996 -15997 -15998 -15999 -16000 -16001 -16002 -16003 -16004 -16005 -16006 -16007 -16008 -16009 -16010 -16011 -16012 -16013 -16014 -16015 -16016 -16017 -16018 -16019 -16020 -16021 -16022 -16023 -16024 -16025 -16026 -16027 -16028 -16029 -16030 -16031 -16032 -16033 -16034 -16035 -16036 -16037 -16038 -16039 -16040 -16041 -16042 -16043 -16044 -16045 -16046 -16047 -16048 -16049 -16050 -16051 -16052 -16053 -16054 -16055 -16056 -16057 -16058 -16059 -16060 -16061 -16062 -16063 -16064 -16065 -16066 -16067 -16068 -16069 -16070 -16071 -16072 -16073 -16074 -16075 -16076 -16077 -16078 -16079 -16080 -16081 -16082 -16083 -16084 -16085 -16086 -16087 -16088 -16089 -16090 -16091 -16092 -16093 -16094 -16095 -16096 -16097 -16098 -16099 -16100 -16101 -16102 -16103 -16104 -16105 -16106 -16107 -16108 -16109 -16110 -16111 -16112 -16113 -16114 -16115 -16116 -16117 -16118 -16119 -16120 -16121 -16122 -16123 -16124 -16125 -16126 -16127 -16128 -16129 -16130 -16131 -16132 -16133 -16134 -16135 -16136 -16137 -16138 -16139 -16140 -16141 -16142 -16143 -16144 -16145 -16146 -16147 -16148 -16149 -16150 -16151 -16152 -16153 -16154 -16155 -16156 -16157 -16158 -16159 -16160 -16161 -16162 -16163 -16164 -16165 -16166 -16167 -16168 -16169 -16170 -16171 -16172 -16173 -16174 -16175 -16176 -16177 -16178 -16179 -16180 -16181 -16182 -16183 -16184 -16185 -16186 -16187 -16188 -16189 -16190 -16191 -16192 -16193 -16194 -16195 -16196 -16197 -16198 -16199 -16200 -16201 -16202 -16203 -16204 -16205 -16206 -16207 -16208 -16209 -16210 -16211 -16212 -16213 -16214 -16215 -16216 -16217 -16218 -16219 -16220 -16221 -16222 -16223 -16224 -16225 -16226 -16227 -16228 -16229 -16230 -16231 -16232 -16233 -16234 -16235 -16236 -16237 -16238 -16239 -16240 -16241 -16242 -16243 -16244 -16245 -16246 -16247 -16248 -16249 -16250 -16251 -16252 -16253 -16254 -16255 -16256 -16257 -16258 -16259 -16260 -16261 -16262 -16263 -16264 -16265 -16266 -16267 -16268 -16269 -16270 -16271 -16272 -16273 -16274 -16275 -16276 -16277 -16278 -16279 -16280 -16281 -16282 -16283 -16284 -16285 -16286 -16287 -16288 -16289 -16290 -16291 -16292 -16293 -16294 -16295 -16296 -16297 -16298 -16299 -16300 -16301 -16302 -16303 -16304 -16305 -16306 -16307 -16308 -16309 -16310 -16311 -16312 -16313 -16314 -16315 -16316 -16317 -16318 -16319 -16320 -16321 -16322 -16323 -16324 -16325 -16326 -16327 -16328 -16329 -16330 -16331 -16332 -16333 -16334 -16335 -16336 -16337 -16338 -16339 -16340 -16341 -16342 -16343 -16344 -16345 -16346 -16347 -16348 -16349 -16350 -16351 -16352 -16353 -16354 -16355 -16356 -16357 -16358 -16359 -16360 -16361 -16362 -16363 -16364 -16365 -16366 -16367 -16368 -16369 -16370 -16371 -16372 -16373 -16374 -16375 -16376 -16377 -16378 -16379 -16380 -16381 -16382 -16383 -16384 -16385 -16386 -16387 -16388 -16389 -16390 -16391 -16392 -16393 -16394 -16395 -16396 -16397 -16398 -16399 -16400 -16401 -16402 -16403 -16404 -16405 -16406 -16407 -16408 -16409 -16410 -16411 -16412 -16413 -16414 -16415 -16416 -16417 -16418 -16419 -16420 -16421 -16422 -16423 -16424 -16425 -16426 -16427 -16428 -16429 -16430 -16431 -16432 -16433 -16434 -16435 -16436 -16437 -16438 -16439 -16440 -16441 -16442 -16443 -16444 -16445 -16446 -16447 -16448 -16449 -16450 -16451 -16452 -16453 -16454 -16455 -16456 -16457 -16458 -16459 -16460 -16461 -16462 -16463 -16464 -16465 -16466 -16467 -16468 -16469 -16470 -16471 -16472 -16473 -16474 -16475 -16476 -16477 -16478 -16479 -16480 -16481 -16482 -16483 -16484 -16485 -16486 -16487 -16488 -16489 -16490 -16491 -16492 -16493 -16494 -16495 -16496 -16497 -16498 -16499 -16500 -16501 -16502 -16503 -16504 -16505 -16506 -16507 -16508 -16509 -16510 -16511 -16512 -16513 -16514 -16515 -16516 -16517 -16518 -16519 -16520 -16521 -16522 -16523 -16524 -16525 -16526 -16527 -16528 -16529 -16530 -16531 -16532 -16533 -16534 -16535 -16536 -16537 -16538 -16539 -16540 -16541 -16542 -16543 -16544 -16545 -16546 -16547 -16548 -16549 -16550 -16551 -16552 -16553 -16554 -16555 -16556 -16557 -16558 -16559 -16560 -16561 -16562 -16563 -16564 -16565 -16566 -16567 -16568 -16569 -16570 -16571 -16572 -16573 -16574 -16575 -16576 -16577 -16578 -16579 -16580 -16581 -16582 -16583 -16584 -16585 -16586 -16587 -16588 -16589 -16590 -16591 -16592 -16593 -16594 -16595 -16596 -16597 -16598 -16599 -16600 -16601 -16602 -16603 -16604 -16605 -16606 -16607 -16608 -16609 -16610 -16611 -16612 -16613 -16614 -16615 -16616 -16617 -16618 -16619 -16620 -16621 -16622 -16623 -16624 -16625 -16626 -16627 -16628 -16629 -16630 -16631 -16632 -16633 -16634 -16635 -16636 -16637 -16638 -16639 -16640 -16641 -16642 -16643 -16644 -16645 -16646 -16647 -16648 -16649 -16650 -16651 -16652 -16653 -16654 -16655 -16656 -16657 -16658 -16659 -16660 -16661 -16662 -16663 -16664 -16665 -16666 -16667 -16668 -16669 -16670 -16671 -16672 -16673 -16674 -16675 -16676 -16677 -16678 -16679 -16680 -16681 -16682 -16683 -16684 -16685 -16686 -16687 -16688 -16689 -16690 -16691 -16692 -16693 -16694 -16695 -16696 -16697 -16698 -16699 -16700 -16701 -16702 -16703 -16704 -16705 -16706 -16707 -16708 -16709 -16710 -16711 -16712 -16713 -16714 -16715 -16716 -16717 -16718 -16719 -16720 -16721 -16722 -16723 -16724 -16725 -16726 -16727 -16728 -16729 -16730 -16731 -16732 -16733 -16734 -16735 -16736 -16737 -16738 -16739 -16740 -16741 -16742 -16743 -16744 -16745 -16746 -16747 -16748 -16749 -16750 -16751 -16752 -16753 -16754 -16755 -16756 -16757 -16758 -16759 -16760 -16761 -16762 -16763 -16764 -16765 -16766 -16767 -16768 -16769 -16770 -16771 -16772 -16773 -16774 -16775 -16776 -16777 -16778 -16779 -16780 -16781 -16782 -16783 -16784 -16785 -16786 -16787 -16788 -16789 -16790 -16791 -16792 -16793 -16794 -16795 -16796 -16797 -16798 -16799 -16800 -16801 -16802 -16803 -16804 -16805 -16806 -16807 -16808 -16809 -16810 -16811 -16812 -16813 -16814 -16815 -16816 -16817 -16818 -16819 -16820 -16821 -16822 -16823 -16824 -16825 -16826 -16827 -16828 -16829 -16830 -16831 -16832 -16833 -16834 -16835 -16836 -16837 -16838 -16839 -16840 -16841 -16842 -16843 -16844 -16845 -16846 -16847 -16848 -16849 -16850 -16851 -16852 -16853 -16854 -16855 -16856 -16857 -16858 -16859 -16860 -16861 -16862 -16863 -16864 -16865 -16866 -16867 -16868 -16869 -16870 -16871 -16872 -16873 -16874 -16875 -16876 -16877 -16878 -16879 -16880 -16881 -16882 -16883 -16884 -16885 -16886 -16887 -16888 -16889 -16890 -16891 -16892 -16893 -16894 -16895 -16896 -16897 -16898 -16899 -16900 -16901 -16902 -16903 -16904 -16905 -16906 -16907 -16908 -16909 -16910 -16911 -16912 -16913 -16914 -16915 -16916 -16917 -16918 -16919 -16920 -16921 -16922 -16923 -16924 -16925 -16926 -16927 -16928 -16929 -16930 -16931 -16932 -16933 -16934 -16935 -16936 -16937 -16938 -16939 -16940 -16941 -16942 -16943 -16944 -16945 -16946 -16947 -16948 -16949 -16950 -16951 -16952 -16953 -16954 -16955 -16956 -16957 -16958 -16959 -16960 -16961 -16962 -16963 -16964 -16965 -16966 -16967 -16968 -16969 -16970 -16971 -16972 -16973 -16974 -16975 -16976 -16977 -16978 -16979 -16980 -16981 -16982 -16983 -16984 -16985 -16986 -16987 -16988 -16989 -16990 -16991 -16992 -16993 -16994 -16995 -16996 -16997 -16998 -16999 -17000 -17001 -17002 -17003 -17004 -17005 -17006 -17007 -17008 -17009 -17010 -17011 -17012 -17013 -17014 -17015 -17016 -17017 -17018 -17019 -17020 -17021 -17022 -17023 -17024 -17025 -17026 -17027 -17028 -17029 -17030 -17031 -17032 -17033 -17034 -17035 -17036 -17037 -17038 -17039 -17040 -17041 -17042 -17043 -17044 -17045 -17046 -17047 -17048 -17049 -17050 -17051 -17052 -17053 -17054 -17055 -17056 -17057 -17058 -17059 -17060 -17061 -17062 -17063 -17064 -17065 -17066 -17067 -17068 -17069 -17070 -17071 -17072 -17073 -17074 -17075 -17076 -17077 -17078 -17079 -17080 -17081 -17082 -17083 -17084 -17085 -17086 -17087 -17088 -17089 -17090 -17091 -17092 -17093 -17094 -17095 -17096 -17097 -17098 -17099 -17100 -17101 -17102 -17103 -17104 -17105 -17106 -17107 -17108 -17109 -17110 -17111 -17112 -17113 -17114 -17115 -17116 -17117 -17118 -17119 -17120 -17121 -17122 -17123 -17124 -17125 -17126 -17127 -17128 -17129 -17130 -17131 -17132 -17133 -17134 -17135 -17136 -17137 -17138 -17139 -17140 -17141 -17142 -17143 -17144 -17145 -17146 -17147 -17148 -17149 -17150 -17151 -17152 -17153 -17154 -17155 -17156 -17157 -17158 -17159 -17160 -17161 -17162 -17163 -17164 -17165 -17166 -17167 -17168 -17169 -17170 -17171 -17172 -17173 -17174 -17175 -17176 -17177 -17178 -17179 -17180 -17181 -17182 -17183 -17184 -17185 -17186 -17187 -17188 -17189 -17190 -17191 -17192 -17193 -17194 -17195 -17196 -17197 -17198 -17199 -17200 -17201 -17202 -17203 -17204 -17205 -17206 -17207 -17208 -17209 -17210 -17211 -17212 -17213 -17214 -17215 -17216 -17217 -17218 -17219 -17220 -17221 -17222 -17223 -17224 -17225 -17226 -17227 -17228 -17229 -17230 -17231 -17232 -17233 -17234 -17235 -17236 -17237 -17238 -17239 -17240 -17241 -17242 -17243 -17244 -17245 -17246 -17247 -17248 -17249 -17250 -17251 -17252 -17253 -17254 -17255 -17256 -17257 -17258 -17259 -17260 -17261 -17262 -17263 -17264 -17265 -17266 -17267 -17268 -17269 -17270 -17271 -17272 -17273 -17274 -17275 -17276 -17277 -17278 -17279 -17280 -17281 -17282 -17283 -17284 -17285 -17286 -17287 -17288 -17289 -17290 -17291 -17292 -17293 -17294 -17295 -17296 -17297 -17298 -17299 -17300 -17301 -17302 -17303 -17304 -17305 -17306 -17307 -17308 -17309 -17310 -17311 -17312 -17313 -17314 -17315 -17316 -17317 -17318 -17319 -17320 -17321 -17322 -17323 -17324 -17325 -17326 -17327 -17328 -17329 -17330 -17331 -17332 -17333 -17334 -17335 -17336 -17337 -17338 -17339 -17340 -17341 -17342 -17343 -17344 -17345 -17346 -17347 -17348 -17349 -17350 -17351 -17352 -17353 -17354 -17355 -17356 -17357 -17358 -17359 -17360 -17361 -17362 -17363 -17364 -17365 -17366 -17367 -17368 -17369 -17370 -17371 -17372 -17373 -17374 -17375 -17376 -17377 -17378 -17379 -17380 -17381 -17382 -17383 -17384 -17385 -17386 -17387 -17388 -17389 -17390 -17391 -17392 -17393 -17394 -17395 -17396 -17397 -17398 -17399 -17400 -17401 -17402 -17403 -17404 -17405 -17406 -17407 -17408 -17409 -17410 -17411 -17412 -17413 -17414 -17415 -17416 -17417 -17418 -17419 -17420 -17421 -17422 -17423 -17424 -17425 -17426 -17427 -17428 -17429 -17430 -17431 -17432 -17433 -17434 -17435 -17436 -17437 -17438 -17439 -17440 -17441 -17442 -17443 -17444 -17445 -17446 -17447 -17448 -17449 -17450 -17451 -17452 -17453 -17454 -17455 -17456 -17457 -17458 -17459 -17460 -17461 -17462 -17463 -17464 -17465 -17466 -17467 -17468 -17469 -17470 -17471 -17472 -17473 -17474 -17475 -17476 -17477 -17478 -17479 -17480 -17481 -17482 -17483 -17484 -17485 -17486 -17487 -17488 -17489 -17490 -17491 -17492 -17493 -17494 -17495 -17496 -17497 -17498 -17499 -17500 -17501 -17502 -17503 -17504 -17505 -17506 -17507 -17508 -17509 -17510 -17511 -17512 -17513 -17514 -17515 -17516 -17517 -17518 -17519 -17520 -17521 -17522 -17523 -17524 -17525 -17526 -17527 -17528 -17529 -17530 -17531 -17532 -17533 -17534 -17535 -17536 -17537 -17538 -17539 -17540 -17541 -17542 -17543 -17544 -17545 -17546 -17547 -17548 -17549 -17550 -17551 -17552 -17553 -17554 -17555 -17556 -17557 -17558 -17559 -17560 -17561 -17562 -17563 -17564 -17565 -17566 -17567 -17568 -17569 -17570 -17571 -17572 -17573 -17574 -17575 -17576 -17577 -17578 -17579 -17580 -17581 -17582 -17583 -17584 -17585 -17586 -17587 -17588 -17589 -17590 -17591 -17592 -17593 -17594 -17595 -17596 -17597 -17598 -17599 -17600 -17601 -17602 -17603 -17604 -17605 -17606 -17607 -17608 -17609 -17610 -17611 -17612 -17613 -17614 -17615 -17616 -17617 -17618 -17619 -17620 -17621 -17622 -17623 -17624 -17625 -17626 -17627 -17628 -17629 -17630 -17631 -17632 -17633 -17634 -17635 -17636 -17637 -17638 -17639 -17640 -17641 -17642 -17643 -17644 -17645 -17646 -17647 -17648 -17649 -17650 -17651 -17652 -17653 -17654 -17655 -17656 -17657 -17658 -17659 -17660 -17661 -17662 -17663 -17664 -17665 -17666 -17667 -17668 -17669 -17670 -17671 -17672 -17673 -17674 -17675 -17676 -17677 -17678 -17679 -17680 -17681 -17682 -17683 -17684 -17685 -17686 -17687 -17688 -17689 -17690 -17691 -17692 -17693 -17694 -17695 -17696 -17697 -17698 -17699 -17700 -17701 -17702 -17703 -17704 -17705 -17706 -17707 -17708 -17709 -17710 -17711 -17712 -17713 -17714 -17715 -17716 -17717 -17718 -17719 -17720 -17721 -17722 -17723 -17724 -17725 -17726 -17727 -17728 -17729 -17730 -17731 -17732 -17733 -17734 -17735 -17736 -17737 -17738 -17739 -17740 -17741 -17742 -17743 -17744 -17745 -17746 -17747 -17748 -17749 -17750 -17751 -17752 -17753 -17754 -17755 -17756 -17757 -17758 -17759 -17760 -17761 -17762 -17763 -17764 -17765 -17766 -17767 -17768 -17769 -17770 -17771 -17772 -17773 -17774 -17775 -17776 -17777 -17778 -17779 -17780 -17781 -17782 -17783 -17784 -17785 -17786 -17787 -17788 -17789 -17790 -17791 -17792 -17793 -17794 -17795 -17796 -17797 -17798 -17799 -17800 -17801 -17802 -17803 -17804 -17805 -17806 -17807 -17808 -17809 -17810 -17811 -17812 -17813 -17814 -17815 -17816 -17817 -17818 -17819 -17820 -17821 -17822 -17823 -17824 -17825 -17826 -17827 -17828 -17829 -17830 -17831 -17832 -17833 -17834 -17835 -17836 -17837 -17838 -17839 -17840 -17841 -17842 -17843 -17844 -17845 -17846 -17847 -17848 -17849 -17850 -17851 -17852 -17853 -17854 -17855 -17856 -17857 -17858 -17859 -17860 -17861 -17862 -17863 -17864 -17865 -17866 -17867 -17868 -17869 -17870 -17871 -17872 -17873 -17874 -17875 -17876 -17877 -17878 -17879 -17880 -17881 -17882 -17883 -17884 -17885 -17886 -17887 -17888 -17889 -17890 -17891 -17892 -17893 -17894 -17895 -17896 -17897 -17898 -17899 -17900 -17901 -17902 -17903 -17904 -17905 -17906 -17907 -17908 -17909 -17910 -17911 -17912 -17913 -17914 -17915 -17916 -17917 -17918 -17919 -17920 -17921 -17922 -17923 -17924 -17925 -17926 -17927 -17928 -17929 -17930 -17931 -17932 -17933 -17934 -17935 -17936 -17937 -17938 -17939 -17940 -17941 -17942 -17943 -17944 -17945 -17946 -17947 -17948 -17949 -17950 -17951 -17952 -17953 -17954 -17955 -17956 -17957 -17958 -17959 -17960 -17961 -17962 -17963 -17964 -17965 -17966 -17967 -17968 -17969 -17970 -17971 -17972 -17973 -17974 -17975 -17976 -17977 -17978 -17979 -17980 -17981 -17982 -17983 -17984 -17985 -17986 -17987 -17988 -17989 -17990 -17991 -17992 -17993 -17994 -17995 -17996 -17997 -17998 -17999 -18000 -18001 -18002 -18003 -18004 -18005 -18006 -18007 -18008 -18009 -18010 -18011 -18012 -18013 -18014 -18015 -18016 -18017 -18018 -18019 -18020 -18021 -18022 -18023 -18024 -18025 -18026 -18027 -18028 -18029 -18030 -18031 -18032 -18033 -18034 -18035 -18036 -18037 -18038 -18039 -18040 -18041 -18042 -18043 -18044 -18045 -18046 -18047 -18048 -18049 -18050 -18051 -18052 -18053 -18054 -18055 -18056 -18057 -18058 -18059 -18060 -18061 -18062 -18063 -18064 -18065 -18066 -18067 -18068 -18069 -18070 -18071 -18072 -18073 -18074 -18075 -18076 -18077 -18078 -18079 -18080 -18081 -18082 -18083 -18084 -18085 -18086 -18087 -18088 -18089 -18090 -18091 -18092 -18093 -18094 -18095 -18096 -18097 -18098 -18099 -18100 -18101 -18102 -18103 -18104 -18105 -18106 -18107 -18108 -18109 -18110 -18111 -18112 -18113 -18114 -18115 -18116 -18117 -18118 -18119 -18120 -18121 -18122 -18123 -18124 -18125 -18126 -18127 -18128 -18129 -18130 -18131 -18132 -18133 -18134 -18135 -18136 -18137 -18138 -18139 -18140 -18141 -18142 -18143 -18144 -18145 -18146 -18147 -18148 -18149 -18150 -18151 -18152 -18153 -18154 -18155 -18156 -18157 -18158 -18159 -18160 -18161 -18162 -18163 -18164 -18165 -18166 -18167 -18168 -18169 -18170 -18171 -18172 -18173 -18174 -18175 -18176 -18177 -18178 -18179 -18180 -18181 -18182 -18183 -18184 -18185 -18186 -18187 -18188 -18189 -18190 -18191 -18192 -18193 -18194 -18195 -18196 -18197 -18198 -18199 -18200 -18201 -18202 -18203 -18204 -18205 -18206 -18207 -18208 -18209 -18210 -18211 -18212 -18213 -18214 -18215 -18216 -18217 -18218 -18219 -18220 -18221 -18222 -18223 -18224 -18225 -18226 -18227 -18228 -18229 -18230 -18231 -18232 -18233 -18234 -18235 -18236 -18237 -18238 -18239 -18240 -18241 -18242 -18243 -18244 -18245 -18246 -18247 -18248 -18249 -18250 -18251 -18252 -18253 -18254 -18255 -18256 -18257 -18258 -18259 -18260 -18261 -18262 -18263 -18264 -18265 -18266 -18267 -18268 -18269 -18270 -18271 -18272 -18273 -18274 -18275 -18276 -18277 -18278 -18279 -18280 -18281 -18282 -18283 -18284 -18285 -18286 -18287 -18288 -18289 -18290 -18291 -18292 -18293 -18294 -18295 -18296 -18297 -18298 -18299 -18300 -18301 -18302 -18303 -18304 -18305 -18306 -18307 -18308 -18309 -18310 -18311 -18312 -18313 -18314 -18315 -18316 -18317 -18318 -18319 -18320 -18321 -18322 -18323 -18324 -18325 -18326 -18327 -18328 -18329 -18330 -18331 -18332 -18333 -18334 -18335 -18336 -18337 -18338 -18339 -18340 -18341 -18342 -18343 -18344 -18345 -18346 -18347 -18348 -18349 -18350 -18351 -18352 -18353 -18354 -18355 -18356 -18357 -18358 -18359 -18360 -18361 -18362 -18363 -18364 -18365 -18366 -18367 -18368 -18369 -18370 -18371 -18372 -18373 -18374 -18375 -18376 -18377 -18378 -18379 -18380 -18381 -18382 -18383 -18384 -18385 -18386 -18387 -18388 -18389 -18390 -18391 -18392 -18393 -18394 -18395 -18396 -18397 -18398 -18399 -18400 -18401 -18402 -18403 -18404 -18405 -18406 -18407 -18408 -18409 -18410 -18411 -18412 -18413 -18414 -18415 -18416 -18417 -18418 -18419 -18420 -18421 -18422 -18423 -18424 -18425 -18426 -18427 -18428 -18429 -18430 -18431 -18432 -18433 -18434 -18435 -18436 -18437 -18438 -18439 -18440 -18441 -18442 -18443 -18444 -18445 -18446 -18447 -18448 -18449 -18450 -18451 -18452 -18453 -18454 -18455 -18456 -18457 -18458 -18459 -18460 -18461 -18462 -18463 -18464 -18465 -18466 -18467 -18468 -18469 -18470 -18471 -18472 -18473 -18474 -18475 -18476 -18477 -18478 -18479 -18480 -18481 -18482 -18483 -18484 -18485 -18486 -18487 -18488 -18489 -18490 -18491 -18492 -18493 -18494 -18495 -18496 -18497 -18498 -18499 -18500 -18501 -18502 -18503 -18504 -18505 -18506 -18507 -18508 -18509 -18510 -18511 -18512 -18513 -18514 -18515 -18516 -18517 -18518 -18519 -18520 -18521 -18522 -18523 -18524 -18525 -18526 -18527 -18528 -18529 -18530 -18531 -18532 -18533 -18534 -18535 -18536 -18537 -18538 -18539 -18540 -18541 -18542 -18543 -18544 -18545 -18546 -18547 -18548 -18549 -18550 -18551 -18552 -18553 -18554 -18555 -18556 -18557 -18558 -18559 -18560 -18561 -18562 -18563 -18564 -18565 -18566 -18567 -18568 -18569 -18570 -18571 -18572 -18573 -18574 -18575 -18576 -18577 -18578 -18579 -18580 -18581 -18582 -18583 -18584 -18585 -18586 -18587 -18588 -18589 -18590 -18591 -18592 -18593 -18594 -18595 -18596 -18597 -18598 -18599 -18600 -18601 -18602 -18603 -18604 -18605 -18606 -18607 -18608 -18609 -18610 -18611 -18612 -18613 -18614 -18615 -18616 -18617 -18618 -18619 -18620 -18621 -18622 -18623 -18624 -18625 -18626 -18627 -18628 -18629 -18630 -18631 -18632 -18633 -18634 -18635 -18636 -18637 -18638 -18639 -18640 -18641 -18642 -18643 -18644 -18645 -18646 -18647 -18648 -18649 -18650 -18651 -18652 -18653 -18654 -18655 -18656 -18657 -18658 -18659 -18660 -18661 -18662 -18663 -18664 -18665 -18666 -18667 -18668 -18669 -18670 -18671 -18672 -18673 -18674 -18675 -18676 -18677 -18678 -18679 -18680 -18681 -18682 -18683 -18684 -18685 -18686 -18687 -18688 -18689 -18690 -18691 -18692 -18693 -18694 -18695 -18696 -18697 -18698 -18699 -18700 -18701 -18702 -18703 -18704 -18705 -18706 -18707 -18708 -18709 -18710 -18711 -18712 -18713 -18714 -18715 -18716 -18717 -18718 -18719 -18720 -18721 -18722 -18723 -18724 -18725 -18726 -18727 -18728 -18729 -18730 -18731 -18732 -18733 -18734 -18735 -18736 -18737 -18738 -18739 -18740 -18741 -18742 -18743 -18744 -18745 -18746 -18747 -18748 -18749 -18750 -18751 -18752 -18753 -18754 -18755 -18756 -18757 -18758 -18759 -18760 -18761 -18762 -18763 -18764 -18765 -18766 -18767 -18768 -18769 -18770 -18771 -18772 -18773 -18774 -18775 -18776 -18777 -18778 -18779 -18780 -18781 -18782 -18783 -18784 -18785 -18786 -18787 -18788 -18789 -18790 -18791 -18792 -18793 -18794 -18795 -18796 -18797 -18798 -18799 -18800 -18801 -18802 -18803 -18804 -18805 -18806 -18807 -18808 -18809 -18810 -18811 -18812 -18813 -18814 -18815 -18816 -18817 -18818 -18819 -18820 -18821 -18822 -18823 -18824 -18825 -18826 -18827 -18828 -18829 -18830 -18831 -18832 -18833 -18834 -18835 -18836 -18837 -18838 -18839 -18840 -18841 -18842 -18843 -18844 -18845 -18846 -18847 -18848 -18849 -18850 -18851 -18852 -18853 -18854 -18855 -18856 -18857 -18858 -18859 -18860 -18861 -18862 -18863 -18864 -18865 -18866 -18867 -18868 -18869 -18870 -18871 -18872 -18873 -18874 -18875 -18876 -18877 -18878 -18879 -18880 -18881 -18882 -18883 -18884 -18885 -18886 -18887 -18888 -18889 -18890 -18891 -18892 -18893 -18894 -18895 -18896 -18897 -18898 -18899 -18900 -18901 -18902 -18903 -18904 -18905 -18906 -18907 -18908 -18909 -18910 -18911 -18912 -18913 -18914 -18915 -18916 -18917 -18918 -18919 -18920 -18921 -18922 -18923 -18924 -18925 -18926 -18927 -18928 -18929 -18930 -18931 -18932 -18933 -18934 -18935 -18936 -18937 -18938 -18939 -18940 -18941 -18942 -18943 -18944 -18945 -18946 -18947 -18948 -18949 -18950 -18951 -18952 -18953 -18954 -18955 -18956 -18957 -18958 -18959 -18960 -18961 -18962 -18963 -18964 -18965 -18966 -18967 -18968 -18969 -18970 -18971 -18972 -18973 -18974 -18975 -18976 -18977 -18978 -18979 -18980 -18981 -18982 -18983 -18984 -18985 -18986 -18987 -18988 -18989 -18990 -18991 -18992 -18993 -18994 -18995 -18996 -18997 -18998 -18999 -19000 -19001 -19002 -19003 -19004 -19005 -19006 -19007 -19008 -19009 -19010 -19011 -19012 -19013 -19014 -19015 -19016 -19017 -19018 -19019 -19020 -19021 -19022 -19023 -19024 -19025 -19026 -19027 -19028 -19029 -19030 -19031 -19032 -19033 -19034 -19035 -19036 -19037 -19038 -19039 -19040 -19041 -19042 -19043 -19044 -19045 -19046 -19047 -19048 -19049 -19050 -19051 -19052 -19053 -19054 -19055 -19056 -19057 -19058 -19059 -19060 -19061 -19062 -19063 -19064 -19065 -19066 -19067 -19068 -19069 -19070 -19071 -19072 -19073 -19074 -19075 -19076 -19077 -19078 -19079 -19080 -19081 -19082 -19083 -19084 -19085 -19086 -19087 -19088 -19089 -19090 -19091 -19092 -19093 -19094 -19095 -19096 -19097 -19098 -19099 -19100 -19101 -19102 -19103 -19104 -19105 -19106 -19107 -19108 -19109 -19110 -19111 -19112 -19113 -19114 -19115 -19116 -19117 -19118 -19119 -19120 -19121 -19122 -19123 -19124 -19125 -19126 -19127 -19128 -19129 -19130 -19131 -19132 -19133 -19134 -19135 -19136 -19137 -19138 -19139 -19140 -19141 -19142 -19143 -19144 -19145 -19146 -19147 -19148 -19149 -19150 -19151 -19152 -19153 -19154 -19155 -19156 -19157 -19158 -19159 -19160 -19161 -19162 -19163 -19164 -19165 -19166 -19167 -19168 -19169 -19170 -19171 -19172 -19173 -19174 -19175 -19176 -19177 -19178 -19179 -19180 -19181 -19182 -19183 -19184 -19185 -19186 -19187 -19188 -19189 -19190 -19191 -19192 -19193 -19194 -19195 -19196 -19197 -19198 -19199 -19200 -19201 -19202 -19203 -19204 -19205 -19206 -19207 -19208 -19209 -19210 -19211 -19212 -19213 -19214 -19215 -19216 -19217 -19218 -19219 -19220 -19221 -19222 -19223 -19224 -19225 -19226 -19227 -19228 -19229 -19230 -19231 -19232 -19233 -19234 -19235 -19236 -19237 -19238 -19239 -19240 -19241 -19242 -19243 -19244 -19245 -19246 -19247 -19248 -19249 -19250 -19251 -19252 -19253 -19254 -19255 -19256 -19257 -19258 -19259 -19260 -19261 -19262 -19263 -19264 -19265 -19266 -19267 -19268 -19269 -19270 -19271 -19272 -19273 -19274 -19275 -19276 -19277 -19278 -19279 -19280 -19281 -19282 -19283 -19284 -19285 -19286 -19287 -19288 -19289 -19290 -19291 -19292 -19293 -19294 -19295 -19296 -19297 -19298 -19299 -19300 -19301 -19302 -19303 -19304 -19305 -19306 -19307 -19308 -19309 -19310 -19311 -19312 -19313 -19314 -19315 -19316 -19317 -19318 -19319 -19320 -19321 -19322 -19323 -19324 -19325 -19326 -19327 -19328 -19329 -19330 -19331 -19332 -19333 -19334 -19335 -19336 -19337 -19338 -19339 -19340 -19341 -19342 -19343 -19344 -19345 -19346 -19347 -19348 -19349 -19350 -19351 -19352 -19353 -19354 -19355 -19356 -19357 -19358 -19359 -19360 -19361 -19362 -19363 -19364 -19365 -19366 -19367 -19368 -19369 -19370 -19371 -19372 -19373 -19374 -19375 -19376 -19377 -19378 -19379 -19380 -19381 -19382 -19383 -19384 -19385 -19386 -19387 -19388 -19389 -19390 -19391 -19392 -19393 -19394 -19395 -19396 -19397 -19398 -19399 -19400 -19401 -19402 -19403 -19404 -19405 -19406 -19407 -19408 -19409 -19410 -19411 -19412 -19413 -19414 -19415 -19416 -19417 -19418 -19419 -19420 -19421 -19422 -19423 -19424 -19425 -19426 -19427 -19428 -19429 -19430 -19431 -19432 -19433 -19434 -19435 -19436 -19437 -19438 -19439 -19440 -19441 -19442 -19443 -19444 -19445 -19446 -19447 -19448 -19449 -19450 -19451 -19452 -19453 -19454 -19455 -19456 -19457 -19458 -19459 -19460 -19461 -19462 -19463 -19464 -19465 -19466 -19467 -19468 -19469 -19470 -19471 -19472 -19473 -19474 -19475 -19476 -19477 -19478 -19479 -19480 -19481 -19482 -19483 -19484 -19485 -19486 -19487 -19488 -19489 -19490 -19491 -19492 -19493 -19494 -19495 -19496 -19497 -19498 -19499 -19500 -19501 -19502 -19503 -19504 -19505 -19506 -19507 -19508 -19509 -19510 -19511 -19512 -19513 -19514 -19515 -19516 -19517 -19518 -19519 -19520 -19521 -19522 -19523 -19524 -19525 -19526 -19527 -19528 -19529 -19530 -19531 -19532 -19533 -19534 -19535 -19536 -19537 -19538 -19539 -19540 -19541 -19542 -19543 -19544 -19545 -19546 -19547 -19548 -19549 -19550 -19551 -19552 -19553 -19554 -19555 -19556 -19557 -19558 -19559 -19560 -19561 -19562 -19563 -19564 -19565 -19566 -19567 -19568 -19569 -19570 -19571 -19572 -19573 -19574 -19575 -19576 -19577 -19578 -19579 -19580 -19581 -19582 -19583 -19584 -19585 -19586 -19587 -19588 -19589 -19590 -19591 -19592 -19593 -19594 -19595 -19596 -19597 -19598 -19599 -19600 -19601 -19602 -19603 -19604 -19605 -19606 -19607 -19608 -19609 -19610 -19611 -19612 -19613 -19614 -19615 -19616 -19617 -19618 -19619 -19620 -19621 -19622 -19623 -19624 -19625 -19626 -19627 -19628 -19629 -19630 -19631 -19632 -19633 -19634 -19635 -19636 -19637 -19638 -19639 -19640 -19641 -19642 -19643 -19644 -19645 -19646 -19647 -19648 -19649 -19650 -19651 -19652 -19653 -19654 -19655 -19656 -19657 -19658 -19659 -19660 -19661 -19662 -19663 -19664 -19665 -19666 -19667 -19668 -19669 -19670 -19671 -19672 -19673 -19674 -19675 -19676 -19677 -19678 -19679 -19680 -19681 -19682 -19683 -19684 -19685 -19686 -19687 -19688 -19689 -19690 -19691 -19692 -19693 -19694 -19695 -19696 -19697 -19698 -19699 -19700 -19701 -19702 -19703 -19704 -19705 -19706 -19707 -19708 -19709 -19710 -19711 -19712 -19713 -19714 -19715 -19716 -19717 -19718 -19719 -19720 -19721 -19722 -19723 -19724 -19725 -19726 -19727 -19728 -19729 -19730 -19731 -19732 -19733 -19734 -19735 -19736 -19737 -19738 -19739 -19740 -19741 -19742 -19743 -19744 -19745 -19746 -19747 -19748 -19749 -19750 -19751 -19752 -19753 -19754 -19755 -19756 -19757 -19758 -19759 -19760 -19761 -19762 -19763 -19764 -19765 -19766 -19767 -19768 -19769 -19770 -19771 -19772 -19773 -19774 -19775 -19776 -19777 -19778 -19779 -19780 -19781 -19782 -19783 -19784 -19785 -19786 -19787 -19788 -19789 -19790 -19791 -19792 -19793 -19794 -19795 -19796 -19797 -19798 -19799 -19800 -19801 -19802 -19803 -19804 -19805 -19806 -19807 -19808 -19809 -19810 -19811 -19812 -19813 -19814 -19815 -19816 -19817 -19818 -19819 -19820 -19821 -19822 -19823 -19824 -19825 -19826 -19827 -19828 -19829 -19830 -19831 -19832 -19833 -19834 -19835 -19836 -19837 -19838 -19839 -19840 -19841 -19842 -19843 -19844 -19845 -19846 -19847 -19848 -19849 -19850 -19851 -19852 -19853 -19854 -19855 -19856 -19857 -19858 -19859 -19860 -19861 -19862 -19863 -19864 -19865 -19866 -19867 -19868 -19869 -19870 -19871 -19872 -19873 -19874 -19875 -19876 -19877 -19878 -19879 -19880 -19881 -19882 -19883 -19884 -19885 -19886 -19887 -19888 -19889 -19890 -19891 -19892 -19893 -19894 -19895 -19896 -19897 -19898 -19899 -19900 -19901 -19902 -19903 -19904 -19905 -19906 -19907 -19908 -19909 -19910 -19911 -19912 -19913 -19914 -19915 -19916 -19917 -19918 -19919 -19920 -19921 -19922 -19923 -19924 -19925 -19926 -19927 -19928 -19929 -19930 -19931 -19932 -19933 -19934 -19935 -19936 -19937 -19938 -19939 -19940 -19941 -19942 -19943 -19944 -19945 -19946 -19947 -19948 -19949 -19950 -19951 -19952 -19953 -19954 -19955 -19956 -19957 -19958 -19959 -19960 -19961 -19962 -19963 -19964 -19965 -19966 -19967 -19968 -19969 -19970 -19971 -19972 -19973 -19974 -19975 -19976 -19977 -19978 -19979 -19980 -19981 -19982 -19983 -19984 -19985 -19986 -19987 -19988 -19989 -19990 -19991 -19992 -19993 -19994 -19995 -19996 -19997 -19998 -19999 -20000 -20001 -20002 -20003 -20004 -20005 -20006 -20007 -20008 -20009 -20010 -20011 -20012 -20013 -20014 -20015 -20016 -20017 -20018 -20019 -20020 -20021 -20022 -20023 -20024 -20025 -20026 -20027 -20028 -20029 -20030 -20031 -20032 -20033 -20034 -20035 -20036 -20037 -20038 -20039 -20040 -20041 -20042 -20043 -20044 -20045 -20046 -20047 -20048 -20049 -20050 -20051 -20052 -20053 -20054 -20055 -20056 -20057 -20058 -20059 -20060 -20061 -20062 -20063 -20064 -20065 -20066 -20067 -20068 -20069 -20070 -20071 -20072 -20073 -20074 -20075 -20076 -20077 -20078 -20079 -20080 -20081 -20082 -20083 -20084 -20085 -20086 -20087 -20088 -20089 -20090 -20091 -20092 -20093 -20094 -20095 -20096 -20097 -20098 -20099 -20100 -20101 -20102 -20103 -20104 -20105 -20106 -20107 -20108 -20109 -20110 -20111 -20112 -20113 -20114 -20115 -20116 -20117 -20118 -20119 -20120 -20121 -20122 -20123 -20124 -20125 -20126 -20127 -20128 -20129 -20130 -20131 -20132 -20133 -20134 -20135 -20136 -20137 -20138 -20139 -20140 -20141 -20142 -20143 -20144 -20145 -20146 -20147 -20148 -20149 -20150 -20151 -20152 -20153 -20154 -20155 -20156 -20157 -20158 -20159 -20160 -20161 -20162 -20163 -20164 -20165 -20166 -20167 -20168 -20169 -20170 -20171 -20172 -20173 -20174 -20175 -20176 -20177 -20178 -20179 -20180 -20181 -20182 -20183 -20184 -20185 -20186 -20187 -20188 -20189 -20190 -20191 -20192 -20193 -20194 -20195 -20196 -20197 -20198 -20199 -20200 -20201 -20202 -20203 -20204 -20205 -20206 -20207 -20208 -20209 -20210 -20211 -20212 -20213 -20214 -20215 -20216 -20217 -20218 -20219 -20220 -20221 -20222 -20223 -20224 -20225 -20226 -20227 -20228 -20229 -20230 -20231 -20232 -20233 -20234 -20235 -20236 -20237 -20238 -20239 -20240 -20241 -20242 -20243 -20244 -20245 -20246 -20247 -20248 -20249 -20250 -20251 -20252 -20253 -20254 -20255 -20256 -20257 -20258 -20259 -20260 -20261 -20262 -20263 -20264 -20265 -20266 -20267 -20268 -20269 -20270 -20271 -20272 -20273 -20274 -20275 -20276 -20277 -20278 -20279 -20280 -20281 -20282 -20283 -20284 -20285 -20286 -20287 -20288 -20289 -20290 -20291 -20292 -20293 -20294 -20295 -20296 -20297 -20298 -20299 -20300 -20301 -20302 -20303 -20304 -20305 -20306 -20307 -20308 -20309 -20310 -20311 -20312 -20313 -20314 -20315 -20316 -20317 -20318 -20319 -20320 -20321 -20322 -20323 -20324 -20325 -20326 -20327 -20328 -20329 -20330 -20331 -20332 -20333 -20334 -20335 -20336 -20337 -20338 -20339 -20340 -20341 -20342 -20343 -20344 -20345 -20346 -20347 -20348 -20349 -20350 -20351 -20352 -20353 -20354 -20355 -20356 -20357 -20358 -20359 -20360 -20361 -20362 -20363 -20364 -20365 -20366 -20367 -20368 -20369 -20370 -20371 -20372 -20373 -20374 -20375 -20376 -20377 -20378 -20379 -20380 -20381 -20382 -20383 -20384 -20385 -20386 -20387 -20388 -20389 -20390 -20391 -20392 -20393 -20394 -20395 -20396 -20397 -20398 -20399 -20400 -20401 -20402 -20403 -20404 -20405 -20406 -20407 -20408 -20409 -20410 -20411 -20412 -20413 -20414 -20415 -20416 -20417 -20418 -20419 -20420 -20421 -20422 -20423 -20424 -20425 -20426 -20427 -20428 -20429 -20430 -20431 -20432 -20433 -20434 -20435 -20436 -20437 -20438 -20439 -20440 -20441 -20442 -20443 -20444 -20445 -20446 -20447 -20448 -20449 -20450 -20451 -20452 -20453 -20454 -20455 -20456 -20457 -20458 -20459 -20460 -20461 -20462 -20463 -20464 -20465 -20466 -20467 -20468 -20469 -20470 -20471 -20472 -20473 -20474 -20475 -20476 -20477 -20478 -20479 -20480 -20481 -20482 -20483 -20484 -20485 -20486 -20487 -20488 -20489 -20490 -20491 -20492 -20493 -20494 -20495 -20496 -20497 -20498 -20499 -20500 -20501 -20502 -20503 -20504 -20505 -20506 -20507 -20508 -20509 -20510 -20511 -20512 -20513 -20514 -20515 -20516 -20517 -20518 -20519 -20520 -20521 -20522 -20523 -20524 -20525 -20526 -20527 -20528 -20529 -20530 -20531 -20532 -20533 -20534 -20535 -20536 -20537 -20538 -20539 -20540 -20541 -20542 -20543 -20544 -20545 -20546 -20547 -20548 -20549 -20550 -20551 -20552 -20553 -20554 -20555 -20556 -20557 -20558 -20559 -20560 -20561 -20562 -20563 -20564 -20565 -20566 -20567 -20568 -20569 -20570 -20571 -20572 -20573 -20574 -20575 -20576 -20577 -20578 -20579 -20580 -20581 -20582 -20583 -20584 -20585 -20586 -20587 -20588 -20589 -20590 -20591 -20592 -20593 -20594 -20595 -20596 -20597 -20598 -20599 -20600 -20601 -20602 -) - -// ************************************************************************* // diff --git a/tutorials/lesInterFoam/nozzleFlow2D/constant/transportProperties b/tutorials/lesInterFoam/nozzleFlow2D/constant/transportProperties deleted file mode 100644 index ef321fd883b..00000000000 --- a/tutorials/lesInterFoam/nozzleFlow2D/constant/transportProperties +++ /dev/null @@ -1,68 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | -| \\ / A nd | Web: http://www.OpenFOAM.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - object transportProperties; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -twoPhase -{ - transportModel twoPhase; - phase1 phase1; - phase2 phase2; -} - -phase1 -{ - transportModel Newtonian; - nu nu [0 2 -1 0 0 0 0] 5.952e-06; - rho rho [1 -3 0 0 0 0 0] 840; - 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] 0; - } - BirdCarreauCoeffs - { - nu0 nu0 [0 2 -1 0 0 0 0] 0.0142515; - nuInf nuInf [0 2 -1 0 0 0 0] 1e-06; - k k [0 0 1 0 0 0 0] 99.6; - n n [0 0 0 0 0 0 0] 0.1003; - } -} - -phase2 -{ - transportModel Newtonian; - nu nu [0 2 -1 0 0 0 0] 8.5e-07; - rho rho [1 -3 0 0 0 0 0] 20; - 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] 0; - } - BirdCarreauCoeffs - { - nu0 nu0 [0 2 -1 0 0 0 0] 0.0142515; - nuInf nuInf [0 2 -1 0 0 0 0] 1e-06; - k k [0 0 1 0 0 0 0] 99.6; - n n [0 0 0 0 0 0 0] 0.1003; - } -} - -sigma sigma [1 0 -2 0 0 0 0] 0.0261; - -// ************************************************************************* // diff --git a/tutorials/lesInterFoam/nozzleFlow2D/system/cellSetDict b/tutorials/lesInterFoam/nozzleFlow2D/system/cellSetDict deleted file mode 100644 index d56de07c7ff..00000000000 --- a/tutorials/lesInterFoam/nozzleFlow2D/system/cellSetDict +++ /dev/null @@ -1,29 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | -| \\ / A nd | Web: http://www.OpenFOAM.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - object cellSetDict; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -name c0; - -action new; - -topoSetSources -( - boxToCell - { - box (0 0 -20e-06) (3600e-6 300e-06 20e-06); - } -); - -// ************************************************************************* // diff --git a/tutorials/lesInterFoam/nozzleFlow2D/system/cellSetDict.1 b/tutorials/lesInterFoam/nozzleFlow2D/system/cellSetDict.1 deleted file mode 100644 index ae151cca9d7..00000000000 --- a/tutorials/lesInterFoam/nozzleFlow2D/system/cellSetDict.1 +++ /dev/null @@ -1,29 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | -| \\ / A nd | Web: http://www.OpenFOAM.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - object cellSetDict; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -name c0; - -action new; - -topoSetSources -( - boxToCell - { - box (0 0 -20e-06) (3600e-6 800e-06 40e-06); - } -); - -// ************************************************************************* // diff --git a/tutorials/lesInterFoam/nozzleFlow2D/system/cellSetDict.2 b/tutorials/lesInterFoam/nozzleFlow2D/system/cellSetDict.2 deleted file mode 100644 index d56de07c7ff..00000000000 --- a/tutorials/lesInterFoam/nozzleFlow2D/system/cellSetDict.2 +++ /dev/null @@ -1,29 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | -| \\ / A nd | Web: http://www.OpenFOAM.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - object cellSetDict; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -name c0; - -action new; - -topoSetSources -( - boxToCell - { - box (0 0 -20e-06) (3600e-6 300e-06 20e-06); - } -); - -// ************************************************************************* // diff --git a/tutorials/lesInterFoam/nozzleFlow2D/system/controlDict b/tutorials/lesInterFoam/nozzleFlow2D/system/controlDict deleted file mode 100644 index 06a945316da..00000000000 --- a/tutorials/lesInterFoam/nozzleFlow2D/system/controlDict +++ /dev/null @@ -1,53 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | -| \\ / A nd | Web: http://www.OpenFOAM.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - object controlDict; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -application lesInterFoam; - -startFrom latestTime; - -startTime 0; - -stopAt endTime; - -endTime 4e-05; - -deltaT 1e-08; - -writeControl adjustableRunTime; - -writeInterval 1e-06; - -purgeWrite 0; - -writeFormat ascii; - -writePrecision 8; - -writeCompression uncompressed; - -timeFormat general; - -timePrecision 6; - -runTimeModifiable yes; - -adjustTimeStep yes; - -maxCo 0.5; - -maxDeltaT 1e-08; - -// ************************************************************************* // diff --git a/tutorials/lesInterFoam/nozzleFlow2D/system/fvSchemes b/tutorials/lesInterFoam/nozzleFlow2D/system/fvSchemes deleted file mode 100644 index 40eb2c65132..00000000000 --- a/tutorials/lesInterFoam/nozzleFlow2D/system/fvSchemes +++ /dev/null @@ -1,63 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | -| \\ / A nd | Web: http://www.OpenFOAM.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - object fvSchemes; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -ddtSchemes -{ - default Euler; -} - -gradSchemes -{ - default Gauss linear; -} - -divSchemes -{ - div(rho*phi,U) Gauss linear; - div(phi,gamma) Gauss vanLeer; - div(phirb,gamma) Gauss interfaceCompression; - div(phi,k) Gauss limitedLinear 1; - div(phi,B) Gauss limitedLinear 1; - div(B) Gauss linear; - div(phi,nuTilda) Gauss limitedLinear 1; - div((nuEff*dev(grad(U).T()))) Gauss linear; -} - -laplacianSchemes -{ - default Gauss linear corrected; -} - -interpolationSchemes -{ - default linear; - interpolate(HbyA) linear; -} - -snGradSchemes -{ - default corrected; -} - -fluxRequired -{ - default no; - pd; - pcorr; - gamma; -} - -// ************************************************************************* // diff --git a/tutorials/lesInterFoam/nozzleFlow2D/system/fvSolution b/tutorials/lesInterFoam/nozzleFlow2D/system/fvSolution deleted file mode 100644 index 8aa83e86f6e..00000000000 --- a/tutorials/lesInterFoam/nozzleFlow2D/system/fvSolution +++ /dev/null @@ -1,121 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | -| \\ / A nd | Web: http://www.OpenFOAM.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - object fvSolution; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -solvers -{ - pcorr PCG - { - preconditioner GAMG - { - tolerance 1e-5; - relTol 0; - - smoother DICGaussSeidel; - nPreSweeps 0; - nPostSweeps 2; - nBottomSweeps 2; - - cacheAgglomeration false; - nCellsInCoarsestLevel 10; - agglomerator faceAreaPair; - mergeLevels 1; - }; - - tolerance 1e-5; - relTol 0; - maxIter 100; - }; - - pd GAMG - { - tolerance 1e-7; - relTol 0.01; - - smoother DIC; //GaussSeidel; - nPreSweeps 0; - nPostSweeps 2; - nFinestSweeps 2; - - cacheAgglomeration true; - nCellsInCoarsestLevel 10; - agglomerator faceAreaPair; - mergeLevels 1; - }; - - pdFinal PCG - { - preconditioner GAMG - { - tolerance 1e-7; - relTol 0; - - nVcycles 2; - - smoother DICGaussSeidel; - nPreSweeps 2; - nPostSweeps 2; - nFinestSweeps 2; - - cacheAgglomeration true; - nCellsInCoarsestLevel 10; - agglomerator faceAreaPair; - mergeLevels 1; - }; - - tolerance 1e-7; - relTol 0; - maxIter 20; - }; - - U smoothSolver - { - smoother GaussSeidel; - tolerance 1e-6; - relTol 0; - nSweeps 1; - }; - - k PBiCG - { - preconditioner DILU; - tolerance 1e-08; - relTol 0; - }; - B PBiCG - { - preconditioner DILU; - tolerance 1e-08; - relTol 0; - }; - nuTilda PBiCG - { - preconditioner DILU; - tolerance 1e-08; - relTol 0; - }; -} - -PISO -{ - momentumPredictor no; - nCorrectors 2; - nNonOrthogonalCorrectors 1; - nGammaCorr 1; - nGammaSubCycles 4; - cGamma 2; -} - -// ************************************************************************* // diff --git a/tutorials/lesInterFoam/nozzleFlow2D/system/refineMeshDict b/tutorials/lesInterFoam/nozzleFlow2D/system/refineMeshDict deleted file mode 100644 index 170cf1ffab6..00000000000 --- a/tutorials/lesInterFoam/nozzleFlow2D/system/refineMeshDict +++ /dev/null @@ -1,44 +0,0 @@ -/*--------------------------------*- C++ -*----------------------------------*\ -| ========= | | -| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | -| \\ / O peration | Version: 1.5 | -| \\ / A nd | Web: http://www.OpenFOAM.org | -| \\/ M anipulation | | -\*---------------------------------------------------------------------------*/ -FoamFile -{ - version 2.0; - format ascii; - class dictionary; - object refineMeshDict; -} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -set c0; - -coordinateSystem global; - -globalCoeffs -{ - tan1 (1 0 0); - tan2 (0 1 0); -} - -patchLocalCoeffs -{ - patch outside; - tan1 (1 0 0); -} - -directions -( - tan1 -); - -useHexTopology no; - -geometricCut yes; - -writeMesh no; - -// ************************************************************************* // -- GitLab