diff --git a/src/finiteVolume/Make/files b/src/finiteVolume/Make/files index 855fb1fd6f..8b184cfaf1 100644 --- a/src/finiteVolume/Make/files +++ b/src/finiteVolume/Make/files @@ -456,6 +456,7 @@ $(snGradSchemes)/orthogonalSnGrad/orthogonalSnGrads.C $(snGradSchemes)/quadraticFitSnGrad/quadraticFitSnGrads.C $(snGradSchemes)/linearFitSnGrad/linearFitSnGrads.C $(snGradSchemes)/skewCorrectedSnGrad/skewCorrectedSnGrads.C +$(snGradSchemes)/relaxedSnGrad/relaxedSnGrads.C convectionSchemes = finiteVolume/convectionSchemes $(convectionSchemes)/convectionScheme/convectionSchemes.C @@ -466,6 +467,7 @@ $(convectionSchemes)/boundedConvectionScheme/boundedConvectionSchemes.C laplacianSchemes = finiteVolume/laplacianSchemes $(laplacianSchemes)/laplacianScheme/laplacianSchemes.C $(laplacianSchemes)/gaussLaplacianScheme/gaussLaplacianSchemes.C +$(laplacianSchemes)/relaxedNonOrthoGaussLaplacianScheme/relaxedNonOrthoGaussLaplacianSchemes.C finiteVolume/fvc/fvcFlux.C finiteVolume/fvc/fvcMeshPhi.C diff --git a/src/finiteVolume/finiteVolume/laplacianSchemes/relaxedNonOrthoGaussLaplacianScheme/relaxedNonOrthoGaussLaplacianScheme.C b/src/finiteVolume/finiteVolume/laplacianSchemes/relaxedNonOrthoGaussLaplacianScheme/relaxedNonOrthoGaussLaplacianScheme.C new file mode 100644 index 0000000000..d0732bf124 --- /dev/null +++ b/src/finiteVolume/finiteVolume/laplacianSchemes/relaxedNonOrthoGaussLaplacianScheme/relaxedNonOrthoGaussLaplacianScheme.C @@ -0,0 +1,276 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | www.openfoam.com + \\/ M anipulation | +------------------------------------------------------------------------------- + Copyright (C) 2019 OpenCFD Ltd. +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "relaxedNonOrthoGaussLaplacianScheme.H" +#include "surfaceInterpolate.H" +#include "fvcDiv.H" +#include "fvcGrad.H" +#include "fvMatrices.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace fv +{ + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +template +tmp> +relaxedNonOrthoGaussLaplacianScheme::fvmLaplacianUncorrected +( + const surfaceScalarField& gammaMagSf, + const surfaceScalarField& deltaCoeffs, + const GeometricField& vf +) +{ + tmp> tfvm + ( + new fvMatrix + ( + vf, + deltaCoeffs.dimensions()*gammaMagSf.dimensions()*vf.dimensions() + ) + ); + fvMatrix& fvm = tfvm.ref(); + + fvm.upper() = deltaCoeffs.primitiveField()*gammaMagSf.primitiveField(); + fvm.negSumDiag(); + + forAll(vf.boundaryField(), patchi) + { + const fvPatchField& pvf = vf.boundaryField()[patchi]; + const fvsPatchScalarField& pGamma = gammaMagSf.boundaryField()[patchi]; + const fvsPatchScalarField& pDeltaCoeffs = + deltaCoeffs.boundaryField()[patchi]; + + if (pvf.coupled()) + { + fvm.internalCoeffs()[patchi] = + pGamma*pvf.gradientInternalCoeffs(pDeltaCoeffs); + fvm.boundaryCoeffs()[patchi] = + -pGamma*pvf.gradientBoundaryCoeffs(pDeltaCoeffs); + } + else + { + fvm.internalCoeffs()[patchi] = pGamma*pvf.gradientInternalCoeffs(); + fvm.boundaryCoeffs()[patchi] = -pGamma*pvf.gradientBoundaryCoeffs(); + } + } + + return tfvm; +} + + +template +tmp> +relaxedNonOrthoGaussLaplacianScheme::gammaSnGradCorr +( + const surfaceVectorField& SfGammaCorr, + const GeometricField& vf +) +{ + const fvMesh& mesh = this->mesh(); + + tmp> tgammaSnGradCorr + ( + new GeometricField + ( + IOobject + ( + "gammaSnGradCorr("+vf.name()+')', + vf.instance(), + mesh, + IOobject::NO_READ, + IOobject::NO_WRITE + ), + mesh, + SfGammaCorr.dimensions() + *vf.dimensions()*mesh.deltaCoeffs().dimensions() + ) + ); + + for (direction cmpt = 0; cmpt < pTraits::nComponents; cmpt++) + { + tgammaSnGradCorr.ref().replace + ( + cmpt, + fvc::dotInterpolate(SfGammaCorr, fvc::grad(vf.component(cmpt))) + ); + } + + return tgammaSnGradCorr; +} + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +template +tmp> +relaxedNonOrthoGaussLaplacianScheme::fvcLaplacian +( + const GeometricField& vf +) +{ + const fvMesh& mesh = this->mesh(); + + tmp> tLaplacian + ( + fvc::div(this->tsnGradScheme_().snGrad(vf)*mesh.magSf()) + ); + + tLaplacian.ref().rename("laplacian(" + vf.name() + ')'); + + return tLaplacian; +} + + +template +tmp> +relaxedNonOrthoGaussLaplacianScheme::fvmLaplacian +( + const GeometricField& gamma, + const GeometricField& vf +) +{ + const fvMesh& mesh = this->mesh(); + + typedef GeometricField SType; + + const surfaceVectorField Sn(mesh.Sf()/mesh.magSf()); + + const surfaceVectorField SfGamma(mesh.Sf() & gamma); + const GeometricField SfGammaSn + ( + SfGamma & Sn + ); + const surfaceVectorField SfGammaCorr(SfGamma - SfGammaSn*Sn); + + tmp> tfvm = fvmLaplacianUncorrected + ( + SfGammaSn, + this->tsnGradScheme_().deltaCoeffs(vf), + vf + ); + fvMatrix& fvm = tfvm.ref(); + + tmp tfaceFluxCorrection = gammaSnGradCorr(SfGammaCorr, vf); + + if (this->tsnGradScheme_().corrected()) + { + tfaceFluxCorrection.ref() += + SfGammaSn*this->tsnGradScheme_().correction(vf); + } + + const word corrName(tfaceFluxCorrection().name()); + + tmp trelaxedCorrection(new SType(tfaceFluxCorrection())); + + const word oldName(corrName + "_0"); + const scalar relax(vf.mesh().equationRelaxationFactor(oldName)); + + const objectRegistry& obr = vf.db(); + if (obr.foundObject(oldName)) + { + SType& oldCorrection = obr.lookupObjectRef(oldName); + + trelaxedCorrection.ref() *= relax; + trelaxedCorrection.ref() += (1.0-relax)*oldCorrection; + + oldCorrection = tfaceFluxCorrection; + } + else + { + SType* s = new SType(oldName, tfaceFluxCorrection); + s->store(); + } + + fvm.source() -= + mesh.V() + *fvc::div + ( + trelaxedCorrection() + )().primitiveField(); + + if (mesh.fluxRequired(vf.name())) + { + fvm.faceFluxCorrectionPtr() = trelaxedCorrection.ptr(); + } + + return tfvm; +} + + +template +tmp> +relaxedNonOrthoGaussLaplacianScheme::fvcLaplacian +( + const GeometricField& gamma, + const GeometricField& vf +) +{ + const fvMesh& mesh = this->mesh(); + + const surfaceVectorField Sn(mesh.Sf()/mesh.magSf()); + const surfaceVectorField SfGamma(mesh.Sf() & gamma); + const GeometricField SfGammaSn + ( + SfGamma & Sn + ); + const surfaceVectorField SfGammaCorr(SfGamma - SfGammaSn*Sn); + + tmp> tLaplacian + ( + fvc::div + ( + SfGammaSn*this->tsnGradScheme_().snGrad(vf) + + gammaSnGradCorr(SfGammaCorr, vf) + ) + ); + + tLaplacian.ref().rename + ( + "laplacian(" + gamma.name() + ',' + vf.name() + ')' + ); + + return tLaplacian; +} + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace fv + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// ************************************************************************* // diff --git a/src/finiteVolume/finiteVolume/laplacianSchemes/relaxedNonOrthoGaussLaplacianScheme/relaxedNonOrthoGaussLaplacianScheme.H b/src/finiteVolume/finiteVolume/laplacianSchemes/relaxedNonOrthoGaussLaplacianScheme/relaxedNonOrthoGaussLaplacianScheme.H new file mode 100644 index 0000000000..ff4a7f6c67 --- /dev/null +++ b/src/finiteVolume/finiteVolume/laplacianSchemes/relaxedNonOrthoGaussLaplacianScheme/relaxedNonOrthoGaussLaplacianScheme.H @@ -0,0 +1,210 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | www.openfoam.com + \\/ M anipulation | +------------------------------------------------------------------------------- + Copyright (C) 2019 OpenCFD Ltd. +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +Class + Foam::fv::relaxedNonOrthoGaussLaplacianScheme + +Description + Basic second-order laplacian using face-gradients and Gauss' theorem. + +Usage + Minimal example by using \c system/fvSchemes: + \verbatim + laplacianSchemes + { + laplacian() relaxedNonOrthoGauss ; + } + \endverbatim + + and by using \c system/fvSolution: + \verbatim + relaxationFactors + { + equations + { + ; + } + } + \endverbatim + +SourceFiles + relaxedNonOrthoGaussLaplacianScheme.C + +\*---------------------------------------------------------------------------*/ + +#ifndef relaxedNonOrthoGaussLaplacianScheme_H +#define relaxedNonOrthoGaussLaplacianScheme_H + +#include "laplacianScheme.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace fv +{ + +/*---------------------------------------------------------------------------*\ + Class relaxedNonOrthoGaussLaplacianScheme Declaration +\*---------------------------------------------------------------------------*/ + +template +class relaxedNonOrthoGaussLaplacianScheme +: + public fv::laplacianScheme +{ + // Private Member Functions + + tmp> gammaSnGradCorr + ( + const surfaceVectorField& SfGammaCorr, + const GeometricField& + ); + + //- No copy construct + relaxedNonOrthoGaussLaplacianScheme + ( + const relaxedNonOrthoGaussLaplacianScheme& + ) = delete; + + //- No copy assignment + void operator=(const relaxedNonOrthoGaussLaplacianScheme&) = delete; + + +public: + + //- Runtime type information + TypeName("relaxedNonOrthoGauss"); + + + // Constructors + + //- Construct null + relaxedNonOrthoGaussLaplacianScheme(const fvMesh& mesh) + : + laplacianScheme(mesh) + {} + + //- Construct from Istream + relaxedNonOrthoGaussLaplacianScheme(const fvMesh& mesh, Istream& is) + : + laplacianScheme(mesh, is) + {} + + //- Construct from mesh, interpolation and snGradScheme schemes + relaxedNonOrthoGaussLaplacianScheme + ( + const fvMesh& mesh, + const tmp>& igs, + const tmp>& sngs + ) + : + laplacianScheme(mesh, igs, sngs) + {} + + + //- Destructor + virtual ~relaxedNonOrthoGaussLaplacianScheme() = default; + + + // Member Functions + + static tmp> fvmLaplacianUncorrected + ( + const surfaceScalarField& gammaMagSf, + const surfaceScalarField& deltaCoeffs, + const GeometricField& + ); + + tmp> fvcLaplacian + ( + const GeometricField& + ); + + tmp> fvmLaplacian + ( + const GeometricField&, + const GeometricField& + ); + + tmp> fvcLaplacian + ( + const GeometricField&, + const GeometricField& + ); +}; + + +// Use macros to emulate partial-specialisation of the Laplacian functions +// for scalar diffusivity gamma + +#define defineFvmLaplacianScalarGamma(Type) \ + \ +template<> \ +tmp> \ +relaxedNonOrthoGaussLaplacianScheme::fvmLaplacian \ +( \ + const GeometricField&, \ + const GeometricField& \ +); \ + \ +template<> \ +tmp> \ +relaxedNonOrthoGaussLaplacianScheme::fvcLaplacian \ +( \ + const GeometricField&, \ + const GeometricField& \ +); + + +defineFvmLaplacianScalarGamma(scalar); +defineFvmLaplacianScalarGamma(vector); +defineFvmLaplacianScalarGamma(sphericalTensor); +defineFvmLaplacianScalarGamma(symmTensor); +defineFvmLaplacianScalarGamma(tensor); + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace fv + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#ifdef NoRepository + #include "relaxedNonOrthoGaussLaplacianScheme.C" +#endif + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/finiteVolume/finiteVolume/laplacianSchemes/relaxedNonOrthoGaussLaplacianScheme/relaxedNonOrthoGaussLaplacianSchemes.C b/src/finiteVolume/finiteVolume/laplacianSchemes/relaxedNonOrthoGaussLaplacianScheme/relaxedNonOrthoGaussLaplacianSchemes.C new file mode 100644 index 0000000000..7aa0027ec9 --- /dev/null +++ b/src/finiteVolume/finiteVolume/laplacianSchemes/relaxedNonOrthoGaussLaplacianScheme/relaxedNonOrthoGaussLaplacianSchemes.C @@ -0,0 +1,140 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | www.openfoam.com + \\/ M anipulation | +------------------------------------------------------------------------------- + Copyright (C) 2019 OpenCFD Ltd. +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "relaxedNonOrthoGaussLaplacianScheme.H" +#include "fvMesh.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +makeFvLaplacianScheme(relaxedNonOrthoGaussLaplacianScheme) + +#define declareFvmLaplacianScalarGamma(Type) \ + \ +template<> \ +Foam::tmp> \ +Foam::fv::relaxedNonOrthoGaussLaplacianScheme:: \ +fvmLaplacian \ +( \ + const GeometricField& gamma, \ + const GeometricField& vf \ +) \ +{ \ + const fvMesh& mesh = this->mesh(); \ + \ + typedef GeometricField SType; \ + \ + GeometricField gammaMagSf \ + ( \ + gamma*mesh.magSf() \ + ); \ + \ + tmp> tfvm = fvmLaplacianUncorrected \ + ( \ + gammaMagSf, \ + this->tsnGradScheme_().deltaCoeffs(vf), \ + vf \ + ); \ + fvMatrix& fvm = tfvm.ref(); \ + \ + if (this->tsnGradScheme_().corrected()) \ + { \ + tmp tCorr(this->tsnGradScheme_().correction(vf)); \ + const word corrName(tCorr().name()); \ + tmp tfaceFluxCorrection(gammaMagSf*tCorr); \ + \ + tmp trelaxedCorrection(new SType(tfaceFluxCorrection())); \ + \ + const word oldName(corrName + "_0"); \ + const scalar relax(vf.mesh().equationRelaxationFactor(corrName)); \ + const objectRegistry& obr = vf.db(); \ + if (obr.foundObject(oldName)) \ + { \ + SType& oldCorrection = obr.lookupObjectRef(oldName); \ + trelaxedCorrection.ref() *= relax; \ + trelaxedCorrection.ref() += (1.0-relax)*oldCorrection; \ + \ + oldCorrection = trelaxedCorrection(); \ + } \ + else \ + { \ + SType* s = new SType(oldName, tfaceFluxCorrection); \ + s->store(); \ + } \ + \ + tmp> tcorr \ + ( \ + mesh.V() \ + *fvc::div \ + ( \ + trelaxedCorrection() \ + )().primitiveField() \ + ); \ + \ + fvm.source() -= tcorr(); \ + \ + if (mesh.fluxRequired(vf.name())) \ + { \ + fvm.faceFluxCorrectionPtr() = trelaxedCorrection.ptr(); \ + } \ + } \ + \ + return tfvm; \ +} \ + \ + \ +template<> \ +Foam::tmp> \ +Foam::fv::relaxedNonOrthoGaussLaplacianScheme::fvcLaplacian \ +( \ + const GeometricField& gamma, \ + const GeometricField& vf \ +) \ +{ \ + const fvMesh& mesh = this->mesh(); \ + \ + tmp> tLaplacian \ + ( \ + fvc::div(gamma*this->tsnGradScheme_().snGrad(vf)*mesh.magSf()) \ + ); \ + \ + tLaplacian.ref().rename \ + ( \ + "laplacian(" + gamma.name() + ',' + vf.name() + ')' \ + ); \ + \ + return tLaplacian; \ +} + + +declareFvmLaplacianScalarGamma(scalar); +declareFvmLaplacianScalarGamma(vector); +declareFvmLaplacianScalarGamma(sphericalTensor); +declareFvmLaplacianScalarGamma(symmTensor); +declareFvmLaplacianScalarGamma(tensor); + + +// ************************************************************************* // diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/CentredFitSnGrad/CentredFitSnGradScheme.H b/src/finiteVolume/finiteVolume/snGradSchemes/CentredFitSnGrad/CentredFitSnGradScheme.H index 81b7cdf0ef..7a7a80366c 100644 --- a/src/finiteVolume/finiteVolume/snGradSchemes/CentredFitSnGrad/CentredFitSnGradScheme.H +++ b/src/finiteVolume/finiteVolume/snGradSchemes/CentredFitSnGrad/CentredFitSnGradScheme.H @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2013-2016 OpenFOAM Foundation + Copyright (C) 2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -109,7 +110,7 @@ public: } //- Return true if this scheme uses an explicit correction - virtual bool corrected() const + virtual bool corrected() const noexcept { return true; } diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/correctedSnGrad/correctedSnGrad.C b/src/finiteVolume/finiteVolume/snGradSchemes/correctedSnGrad/correctedSnGrad.C index 174d11bbb9..ab5d7f4063 100644 --- a/src/finiteVolume/finiteVolume/snGradSchemes/correctedSnGrad/correctedSnGrad.C +++ b/src/finiteVolume/finiteVolume/snGradSchemes/correctedSnGrad/correctedSnGrad.C @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2016 OpenFOAM Foundation + Copyright (C) 2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -32,13 +33,6 @@ License #include "fvcGrad.H" #include "gaussGrad.H" -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -template -Foam::fv::correctedSnGrad::~correctedSnGrad() -{} - - // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template @@ -96,7 +90,7 @@ Foam::fv::correctedSnGrad::correction GeometricField& ssf = tssf.ref(); ssf.setOriented(); - for (direction cmpt = 0; cmpt < pTraits::nComponents; cmpt++) + for (direction cmpt = 0; cmpt < pTraits::nComponents; ++cmpt) { ssf.replace ( diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/correctedSnGrad/correctedSnGrad.H b/src/finiteVolume/finiteVolume/snGradSchemes/correctedSnGrad/correctedSnGrad.H index 8f0b7c3abe..4533778dc8 100644 --- a/src/finiteVolume/finiteVolume/snGradSchemes/correctedSnGrad/correctedSnGrad.H +++ b/src/finiteVolume/finiteVolume/snGradSchemes/correctedSnGrad/correctedSnGrad.H @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2016 OpenFOAM Foundation + Copyright (C) 2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -30,7 +31,16 @@ Group grpFvSnGradSchemes Description - Simple central-difference snGrad scheme with non-orthogonal correction. + Surface gradient scheme with full explicit non-orthogonal correction. + +Usage + Minimal example by using \c system/fvSchemes: + \verbatim + snGradSchemes + { + snGrad() corrected; + } + \endverbatim SourceFiles correctedSnGrad.C @@ -53,7 +63,7 @@ namespace fv { /*---------------------------------------------------------------------------*\ - Class correctedSnGrad Declaration + Class correctedSnGrad Declaration \*---------------------------------------------------------------------------*/ template @@ -81,7 +91,6 @@ public: snGradScheme(mesh) {} - //- Construct from mesh and data stream correctedSnGrad(const fvMesh& mesh, Istream&) : @@ -90,7 +99,7 @@ public: //- Destructor - virtual ~correctedSnGrad(); + virtual ~correctedSnGrad() = default; // Member Functions @@ -105,13 +114,13 @@ public: } //- Return true if this scheme uses an explicit correction - virtual bool corrected() const + virtual bool corrected() const noexcept { return true; } //- Return the explicit correction to the correctedSnGrad - // for the given field using the gradient of the field + //- for the given field using the gradient of the field tmp> fullGradCorrection ( @@ -119,7 +128,7 @@ public: ) const; //- Return the explicit correction to the correctedSnGrad - // for the given field using the gradients of the field components + //- for the given field using the gradients of the field components virtual tmp> correction(const GeometricField&) const; }; diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/faceCorrectedSnGrad/faceCorrectedSnGrad.C b/src/finiteVolume/finiteVolume/snGradSchemes/faceCorrectedSnGrad/faceCorrectedSnGrad.C index 913af1e61b..46982ebda8 100644 --- a/src/finiteVolume/finiteVolume/snGradSchemes/faceCorrectedSnGrad/faceCorrectedSnGrad.C +++ b/src/finiteVolume/finiteVolume/snGradSchemes/faceCorrectedSnGrad/faceCorrectedSnGrad.C @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2016 OpenFOAM Foundation + Copyright (C) 2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -29,13 +30,6 @@ License #include "volPointInterpolation.H" #include "triangle.H" -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -template -Foam::fv::faceCorrectedSnGrad::~faceCorrectedSnGrad() -{} - - // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template @@ -89,18 +83,18 @@ Foam::fv::faceCorrectedSnGrad::fullGradCorrection const face& fi = faces[facei]; - vector nf(Sf[facei]/magSf[facei]); + const vector nf(Sf[facei]/magSf[facei]); - for (label pi=0; pi::fullGradCorrection vector dCorr(C[neighbour[facei]] - C[owner[facei]]); dCorr /= (nf & dCorr); - // if (mag(dCorr) > 2) dCorr *= 2/mag(dCorr); - sfCorr[facei] = dCorr&fgrad; } @@ -152,7 +144,7 @@ Foam::fv::faceCorrectedSnGrad::correction ); GeometricField& ssf = tssf.ref(); - for (direction cmpt = 0; cmpt < pTraits::nComponents; cmpt++) + for (direction cmpt = 0; cmpt < pTraits::nComponents; ++cmpt) { ssf.replace ( diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/faceCorrectedSnGrad/faceCorrectedSnGrad.H b/src/finiteVolume/finiteVolume/snGradSchemes/faceCorrectedSnGrad/faceCorrectedSnGrad.H index 13bb277464..f4540ba0c0 100644 --- a/src/finiteVolume/finiteVolume/snGradSchemes/faceCorrectedSnGrad/faceCorrectedSnGrad.H +++ b/src/finiteVolume/finiteVolume/snGradSchemes/faceCorrectedSnGrad/faceCorrectedSnGrad.H @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2016 OpenFOAM Foundation + Copyright (C) 2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -30,7 +31,16 @@ Group grpFvSnGradSchemes Description - Simple central-difference snGrad scheme with non-orthogonal correction. + Surface gradient scheme with full explicit non-orthogonal correction. + +Usage + Minimal example by using \c system/fvSchemes: + \verbatim + snGradSchemes + { + snGrad() faceCorrected; + } + \endverbatim SourceFiles faceCorrectedSnGrad.C @@ -53,7 +63,7 @@ namespace fv { /*---------------------------------------------------------------------------*\ - Class faceCorrectedSnGrad Declaration + Class faceCorrectedSnGrad Declaration \*---------------------------------------------------------------------------*/ template @@ -81,7 +91,6 @@ public: snGradScheme(mesh) {} - //- Construct from mesh and data stream faceCorrectedSnGrad(const fvMesh& mesh, Istream&) : @@ -90,7 +99,7 @@ public: //- Destructor - virtual ~faceCorrectedSnGrad(); + virtual ~faceCorrectedSnGrad() = default; // Member Functions @@ -105,13 +114,13 @@ public: } //- Return true if this scheme uses an explicit correction - virtual bool corrected() const + virtual bool corrected() const noexcept { return true; } //- Return the explicit correction to the faceCorrectedSnGrad - // for the given field using the gradient of the field + //- for the given field using the gradient of the field tmp> fullGradCorrection ( @@ -119,7 +128,7 @@ public: ) const; //- Return the explicit correction to the faceCorrectedSnGrad - // for the given field using the gradients of the field components + //- for the given field using the gradients of the field components virtual tmp> correction(const GeometricField&) const; }; diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/limitedSnGrad/limitedSnGrad.C b/src/finiteVolume/finiteVolume/snGradSchemes/limitedSnGrad/limitedSnGrad.C index babc458a20..6f0f95ee35 100644 --- a/src/finiteVolume/finiteVolume/snGradSchemes/limitedSnGrad/limitedSnGrad.C +++ b/src/finiteVolume/finiteVolume/snGradSchemes/limitedSnGrad/limitedSnGrad.C @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2016 OpenFOAM Foundation + Copyright (C) 2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -42,13 +43,6 @@ namespace Foam namespace fv { -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -template -limitedSnGrad::~limitedSnGrad() -{} - - // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/limitedSnGrad/limitedSnGrad.H b/src/finiteVolume/finiteVolume/snGradSchemes/limitedSnGrad/limitedSnGrad.H index b14abfa5cf..1922fe14d8 100644 --- a/src/finiteVolume/finiteVolume/snGradSchemes/limitedSnGrad/limitedSnGrad.H +++ b/src/finiteVolume/finiteVolume/snGradSchemes/limitedSnGrad/limitedSnGrad.H @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2016 OpenFOAM Foundation + Copyright (C) 2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -30,20 +31,26 @@ Group grpFvSnGradSchemes Description - Run-time selected snGrad scheme with limited non-orthogonal correction. + Surface gradient scheme with limited explicit non-orthogonal correction. The limiter is controlled by a coefficient with a value between 0 and 1 which when 0 switches the correction off and the scheme behaves as - uncorrectedSnGrad, when set to 1 the full correction of the selected scheme - is used and when set to 0.5 the limiter is calculated such that the - non-orthogonal contribution does not exceed the orthogonal part. + \c uncorrected \c snGrad, when set to 1 the full correction of the + selected scheme is used and the scheme behaves as \c corrected \c snGrad, + and when set to 0.5 the limiter is calculated such that the non-orthogonal + component does not exceed the orthogonal component. - Format: - limited \ \; +Usage + Minimal example by using \c system/fvSchemes: + \verbatim + snGradSchemes + { + snGrad() limited ; - or - - limited \; // Backward compatibility + // Backward compatibility + snGrad() limited ; + } + \endverbatim SourceFiles limitedSnGrad.C @@ -66,7 +73,7 @@ namespace fv { /*---------------------------------------------------------------------------*\ - Class limitedSnGrad Declaration + Class limitedSnGrad Declaration \*---------------------------------------------------------------------------*/ template @@ -74,10 +81,12 @@ class limitedSnGrad : public snGradScheme { - // Private data + // Private Data + //- Type of correction scheme tmp> correctedScheme_; + //- Limiter coefficient scalar limitCoeff_; @@ -87,7 +96,7 @@ class limitedSnGrad void operator=(const limitedSnGrad&) = delete; //- Lookup function for the corrected to support backward compatibility - // of dictionary specification + //- of dictionary specification tmp> lookupCorrectedScheme(Istream& schemeData) { token nextToken(schemeData); @@ -131,7 +140,6 @@ public: limitCoeff_(1) {} - //- Construct from mesh and data stream limitedSnGrad(const fvMesh& mesh, Istream& schemeData) : @@ -149,7 +157,7 @@ public: //- Destructor - virtual ~limitedSnGrad(); + virtual ~limitedSnGrad() = default; // Member Functions @@ -164,13 +172,13 @@ public: } //- Return true if this scheme uses an explicit correction - virtual bool corrected() const + virtual bool corrected() const noexcept { return true; } //- Return the explicit correction to the limitedSnGrad - // for the given field + //- for the given field virtual tmp> correction(const GeometricField&) const; }; diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/limitedSnGrad/limitedSnGrads.C b/src/finiteVolume/finiteVolume/snGradSchemes/limitedSnGrad/limitedSnGrads.C index ef02a344a5..5a385681bf 100644 --- a/src/finiteVolume/finiteVolume/snGradSchemes/limitedSnGrad/limitedSnGrads.C +++ b/src/finiteVolume/finiteVolume/snGradSchemes/limitedSnGrad/limitedSnGrads.C @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2015 OpenFOAM Foundation + Copyright (C) 2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -23,13 +24,6 @@ License You should have received a copy of the GNU General Public License along with OpenFOAM. If not, see . -Description - Central-difference snGrad scheme with limited non-orthogonal correction. - The limiter is controlled by a coefficient with a value between 0 and 1 - which when zero switches the limiter off and the scheme behaves as - correctedSnGrad, and when set to 1 the limiter is calculated such that the - non-orthogonal contribution does not exceed the orthogonal part. - \*---------------------------------------------------------------------------*/ #include "limitedSnGrad.H" diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/orthogonalSnGrad/orthogonalSnGrad.C b/src/finiteVolume/finiteVolume/snGradSchemes/orthogonalSnGrad/orthogonalSnGrad.C index 1ea8894bbf..64380af3ad 100644 --- a/src/finiteVolume/finiteVolume/snGradSchemes/orthogonalSnGrad/orthogonalSnGrad.C +++ b/src/finiteVolume/finiteVolume/snGradSchemes/orthogonalSnGrad/orthogonalSnGrad.C @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2016 OpenFOAM Foundation + Copyright (C) 2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -23,9 +24,6 @@ License You should have received a copy of the GNU General Public License along with OpenFOAM. If not, see . -Description - Simple central-difference snGrad scheme without non-orthogonal correction. - \*---------------------------------------------------------------------------*/ #include "orthogonalSnGrad.H" @@ -42,13 +40,6 @@ namespace Foam namespace fv { -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -template -orthogonalSnGrad::~orthogonalSnGrad() -{} - - // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/orthogonalSnGrad/orthogonalSnGrad.H b/src/finiteVolume/finiteVolume/snGradSchemes/orthogonalSnGrad/orthogonalSnGrad.H index 747870a911..c242628b84 100644 --- a/src/finiteVolume/finiteVolume/snGradSchemes/orthogonalSnGrad/orthogonalSnGrad.H +++ b/src/finiteVolume/finiteVolume/snGradSchemes/orthogonalSnGrad/orthogonalSnGrad.H @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2016 OpenFOAM Foundation + Copyright (C) 2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -30,8 +31,21 @@ Group grpFvSnGradSchemes Description - Simple central-difference snGrad scheme using the cell-centre to cell-centre - delta-coefficients. + Surface gradient scheme with no non-orthogonal correction. + +Usage + Minimal example by using \c system/fvSchemes: + \verbatim + snGradSchemes + { + snGrad() orthogonal; + } + \endverbatim + +Note + - Interpolation weighting factors (i.e. delta coefficients) are based + on the \c deltaCoeffs function rather than the \c nonOrthDeltaCoeffs + function, which is used by the \c uncorrected scheme. SourceFiles orthogonalSnGrad.C @@ -54,7 +68,7 @@ namespace fv { /*---------------------------------------------------------------------------*\ - Class orthogonalSnGrad Declaration + Class orthogonalSnGrad Declaration \*---------------------------------------------------------------------------*/ template @@ -82,7 +96,6 @@ public: snGradScheme(mesh) {} - //- Construct from mesh and data stream orthogonalSnGrad(const fvMesh& mesh, Istream&) : @@ -91,7 +104,7 @@ public: //- Destructor - virtual ~orthogonalSnGrad(); + virtual ~orthogonalSnGrad() = default; // Member Functions @@ -106,13 +119,13 @@ public: } //- Return true if this scheme uses an explicit correction - virtual bool corrected() const + virtual bool corrected() const noexcept { return false; } //- Return the explicit correction to the orthogonalSnGrad - // for the given field + //- for the given field virtual tmp> correction(const GeometricField&) const; }; diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/orthogonalSnGrad/orthogonalSnGrads.C b/src/finiteVolume/finiteVolume/snGradSchemes/orthogonalSnGrad/orthogonalSnGrads.C index b52a70ca6b..9f350c0bf2 100644 --- a/src/finiteVolume/finiteVolume/snGradSchemes/orthogonalSnGrad/orthogonalSnGrads.C +++ b/src/finiteVolume/finiteVolume/snGradSchemes/orthogonalSnGrad/orthogonalSnGrads.C @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2015 OpenFOAM Foundation + Copyright (C) 2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -23,9 +24,6 @@ License You should have received a copy of the GNU General Public License along with OpenFOAM. If not, see . -Description - Simple central-difference snGrad scheme without non-orthogonal correction. - \*---------------------------------------------------------------------------*/ #include "orthogonalSnGrad.H" diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/relaxedSnGrad/relaxedSnGrad.C b/src/finiteVolume/finiteVolume/snGradSchemes/relaxedSnGrad/relaxedSnGrad.C new file mode 100644 index 0000000000..0b01812677 --- /dev/null +++ b/src/finiteVolume/finiteVolume/snGradSchemes/relaxedSnGrad/relaxedSnGrad.C @@ -0,0 +1,78 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | www.openfoam.com + \\/ M anipulation | +------------------------------------------------------------------------------- + Copyright (C) 2021 OpenCFD Ltd. +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "fv.H" +#include "relaxedSnGrad.H" +#include "volFields.H" +#include "surfaceFields.H" + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +template +Foam::tmp> +Foam::fv::relaxedSnGrad::correction +( + const GeometricField& vf +) const +{ + typedef GeometricField SurfFieldType; + + // Calculate explicit correction field + tmp tcorrection = correctedScheme_().correction(vf); + + // Retrieve relaxation factor value + const word fieldName(vf.name()); + const word oldFieldName(fieldName + "_0"); + const scalar relax = + vf.mesh().fieldRelaxationFactor("snGrad("+fieldName+")"); + + // Return explicit correction field if + // previous-time step correction is unavailable + const objectRegistry& obr = vf.db(); + if (!obr.foundObject(oldFieldName)) + { + SurfFieldType* oldCorrection = + new SurfFieldType(oldFieldName, tcorrection()); + oldCorrection->store(); + } + + // Return under/over-relaxed explicit correction field + tmp trelaxedCorrection(new SurfFieldType(tcorrection())); + + SurfFieldType& oldCorrection = + obr.lookupObjectRef(oldFieldName); + + trelaxedCorrection.ref() *= relax; + trelaxedCorrection.ref() += (scalar(1) - relax)*oldCorrection; + + oldCorrection = tcorrection; + + return trelaxedCorrection; +} + + +// ************************************************************************* // diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/relaxedSnGrad/relaxedSnGrad.H b/src/finiteVolume/finiteVolume/snGradSchemes/relaxedSnGrad/relaxedSnGrad.H new file mode 100644 index 0000000000..f01afd528e --- /dev/null +++ b/src/finiteVolume/finiteVolume/snGradSchemes/relaxedSnGrad/relaxedSnGrad.H @@ -0,0 +1,166 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | www.openfoam.com + \\/ M anipulation | +------------------------------------------------------------------------------- + Copyright (C) 2021 OpenCFD Ltd. +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +Class + Foam::fv::relaxedSnGrad + +Group + grpFvSnGradSchemes + +Description + Surface gradient scheme with under-/over-relaxed + full or limited explicit non-orthogonal correction. + +Usage + Minimal example by using \c system/fvSchemes: + \verbatim + snGradSchemes + { + snGrad() relaxed; + } + \endverbatim + + and by using \c system/fvSolution: + \verbatim + relaxationFactors + { + fields + { + snGrad() ; + } + } + \endverbatim + + +SourceFiles + relaxedSnGrad.C + +\*---------------------------------------------------------------------------*/ + +#ifndef relaxedSnGrad_H +#define relaxedSnGrad_H + +#include "correctedSnGrad.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace fv +{ + +/*---------------------------------------------------------------------------*\ + Class relaxedSnGrad Declaration +\*---------------------------------------------------------------------------*/ + +template +class relaxedSnGrad +: + public snGradScheme +{ + // Private Data + + //- Type of correction scheme + tmp> correctedScheme_; + + + // Private Member Functions + + //- No copy assignment + void operator=(const relaxedSnGrad&) = delete; + + +public: + + //- Runtime type information + TypeName("relaxed"); + + + // Constructors + + //- Construct from mesh + relaxedSnGrad(const fvMesh& mesh) + : + snGradScheme(mesh), + correctedScheme_(new correctedSnGrad(this->mesh())) + {} + + //- Construct from mesh and data stream + relaxedSnGrad(const fvMesh& mesh, Istream& schemeData) + : + snGradScheme(mesh), + correctedScheme_(new correctedSnGrad(this->mesh())) + {} + + + //- Destructor + virtual ~relaxedSnGrad() = default; + + + // Member Functions + + //- Return the interpolation weighting factors for the given field + virtual tmp deltaCoeffs + ( + const GeometricField& + ) const + { + return this->mesh().nonOrthDeltaCoeffs(); + } + + //- Return true if this scheme uses an explicit correction + virtual bool corrected() const noexcept + { + return true; + } + + //- Return the explicit correction to the relaxedSnGrad + //- for the given field using the gradients of the field components + virtual tmp> + correction(const GeometricField&) const; +}; + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace fv + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#ifdef NoRepository + #include "relaxedSnGrad.C" +#endif + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/relaxedSnGrad/relaxedSnGrads.C b/src/finiteVolume/finiteVolume/snGradSchemes/relaxedSnGrad/relaxedSnGrads.C new file mode 100644 index 0000000000..d863791dc5 --- /dev/null +++ b/src/finiteVolume/finiteVolume/snGradSchemes/relaxedSnGrad/relaxedSnGrads.C @@ -0,0 +1,35 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | www.openfoam.com + \\/ M anipulation | +------------------------------------------------------------------------------- + Copyright (C) 2021 OpenCFD Ltd. +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "relaxedSnGrad.H" +#include "fvMesh.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +makeSnGradScheme(relaxedSnGrad) + +// ************************************************************************* // diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/skewCorrectedSnGrad/skewCorrectedSnGrad.C b/src/finiteVolume/finiteVolume/snGradSchemes/skewCorrectedSnGrad/skewCorrectedSnGrad.C index 7138197f69..5faffa76f5 100644 --- a/src/finiteVolume/finiteVolume/snGradSchemes/skewCorrectedSnGrad/skewCorrectedSnGrad.C +++ b/src/finiteVolume/finiteVolume/snGradSchemes/skewCorrectedSnGrad/skewCorrectedSnGrad.C @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2019 Zeljko Tukovic, FSB Zagreb. + Copyright (C) 2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -72,8 +73,6 @@ Foam::fv::skewCorrectedSnGrad::fullGradCorrection const vectorField& Sf = mesh.Sf().internalField(); const scalarField& magSf = mesh.magSf().internalField(); - vectorField nf(Sf/magSf); - const vectorField& Cf = mesh.Cf().internalField(); const vectorField& C = mesh.C().internalField(); diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/skewCorrectedSnGrad/skewCorrectedSnGrad.H b/src/finiteVolume/finiteVolume/snGradSchemes/skewCorrectedSnGrad/skewCorrectedSnGrad.H index 1ab2e696a9..5e2919c250 100644 --- a/src/finiteVolume/finiteVolume/snGradSchemes/skewCorrectedSnGrad/skewCorrectedSnGrad.H +++ b/src/finiteVolume/finiteVolume/snGradSchemes/skewCorrectedSnGrad/skewCorrectedSnGrad.H @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2019 Zeljko Tukovic, FSB Zagreb. + Copyright (C) 2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -30,7 +31,17 @@ Group grpFvSnGradSchemes Description - Simple central-difference snGrad scheme with non-orthogonal correction. + Surface gradient scheme with skewness and full + explicit non-orthogonal corrections. + +Usage + Minimal example by using \c system/fvSchemes: + \verbatim + snGradSchemes + { + snGrad() skewCorrected; + } + \endverbatim SourceFiles skewCorrectedSnGrad.C @@ -81,7 +92,6 @@ public: snGradScheme(mesh) {} - //- Construct from mesh and data stream skewCorrectedSnGrad(const fvMesh& mesh, Istream&) : @@ -105,7 +115,7 @@ public: } //- Return true if this scheme uses an explicit correction - virtual bool corrected() const + virtual bool corrected() const noexcept { return true; } diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/snGradScheme/snGradScheme.C b/src/finiteVolume/finiteVolume/snGradSchemes/snGradScheme/snGradScheme.C index 0dc584dcfb..e507d053c8 100644 --- a/src/finiteVolume/finiteVolume/snGradSchemes/snGradScheme/snGradScheme.C +++ b/src/finiteVolume/finiteVolume/snGradSchemes/snGradScheme/snGradScheme.C @@ -60,8 +60,8 @@ tmp> snGradScheme::New { FatalIOErrorInFunction(schemeData) << "Discretisation scheme not specified" - << endl << endl - << "Valid schemes are :" << endl + << nl << nl + << "Valid schemes are :" << nl << MeshConstructorTablePtr_->sortedToc() << exit(FatalIOError); } diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/snGradScheme/snGradScheme.H b/src/finiteVolume/finiteVolume/snGradSchemes/snGradScheme/snGradScheme.H index 324fd03a69..d19a63bf3f 100644 --- a/src/finiteVolume/finiteVolume/snGradSchemes/snGradScheme/snGradScheme.H +++ b/src/finiteVolume/finiteVolume/snGradSchemes/snGradScheme/snGradScheme.H @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2016 OpenFOAM Foundation + Copyright (C) 2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -30,7 +31,17 @@ Group grpFvSnGradSchemes Description - Abstract base class for snGrad schemes. + Abstract base class for runtime selected \c snGrad surface + normal gradient schemes. + + A surface normal gradient is evaluated at a cell face. It + is the normal-to-face component of the gradient of + values at the centres of two cells that the face connects. + + Unit-surface-normal vector decomposition is based on the + so-called over-relaxed approach. Orthogonal components are + treated implicitly and non-orthogonal components are treated + explicitly with (or without) various limiters. SourceFiles snGradScheme.C @@ -59,7 +70,7 @@ namespace fv { /*---------------------------------------------------------------------------*\ - Class snGradScheme Declaration + Class snGradScheme Declaration \*---------------------------------------------------------------------------*/ template @@ -67,9 +78,9 @@ class snGradScheme : public refCount { - // Private data + // Private Data - //- Hold reference to mesh + //- Hold const reference to mesh const fvMesh& mesh_; @@ -125,14 +136,14 @@ public: // Member Functions - //- Return mesh reference + //- Return const reference to mesh const fvMesh& mesh() const { return mesh_; } - - //- Return the snGrad of the given cell field with the given deltaCoeffs + //- Return the snGrad of the given cell field + //- by using the given deltaCoeffs static tmp> snGrad ( @@ -156,13 +167,13 @@ public: ) const = 0; //- Return true if this scheme uses an explicit correction - virtual bool corrected() const + virtual bool corrected() const noexcept { return false; } //- Return the explicit correction to the snGrad - // for the given field + //- for the given field virtual tmp> correction(const GeometricField&) const { @@ -173,12 +184,12 @@ public: } //- Return the snGrad of the given cell field - // with explicit correction + //- with explicit correction virtual tmp> snGrad(const GeometricField&) const; //- Return the snGrad of the given tmp cell field - // with explicit correction + //- with explicit correction tmp> snGrad ( diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/snGradScheme/snGradSchemes.C b/src/finiteVolume/finiteVolume/snGradSchemes/snGradScheme/snGradSchemes.C index 1f5c316d22..d03fe44c7a 100644 --- a/src/finiteVolume/finiteVolume/snGradSchemes/snGradScheme/snGradSchemes.C +++ b/src/finiteVolume/finiteVolume/snGradSchemes/snGradScheme/snGradSchemes.C @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011 OpenFOAM Foundation + Copyright (C) 2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -23,9 +24,6 @@ License You should have received a copy of the GNU General Public License along with OpenFOAM. If not, see . -Description - Abstract base class for snGrad schemes. - \*---------------------------------------------------------------------------*/ #include "snGradScheme.H" diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/uncorrectedSnGrad/uncorrectedSnGrad.C b/src/finiteVolume/finiteVolume/snGradSchemes/uncorrectedSnGrad/uncorrectedSnGrad.C index e8af0a09fe..793e16a563 100644 --- a/src/finiteVolume/finiteVolume/snGradSchemes/uncorrectedSnGrad/uncorrectedSnGrad.C +++ b/src/finiteVolume/finiteVolume/snGradSchemes/uncorrectedSnGrad/uncorrectedSnGrad.C @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2016 OpenFOAM Foundation + Copyright (C) 2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -23,9 +24,6 @@ License You should have received a copy of the GNU General Public License along with OpenFOAM. If not, see . -Description - Simple central-difference snGrad scheme without non-orthogonal correction. - \*---------------------------------------------------------------------------*/ #include "uncorrectedSnGrad.H" @@ -42,13 +40,6 @@ namespace Foam namespace fv { -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -template -uncorrectedSnGrad::~uncorrectedSnGrad() -{} - - // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/uncorrectedSnGrad/uncorrectedSnGrad.H b/src/finiteVolume/finiteVolume/snGradSchemes/uncorrectedSnGrad/uncorrectedSnGrad.H index 72d9c87481..afdd1d8b94 100644 --- a/src/finiteVolume/finiteVolume/snGradSchemes/uncorrectedSnGrad/uncorrectedSnGrad.H +++ b/src/finiteVolume/finiteVolume/snGradSchemes/uncorrectedSnGrad/uncorrectedSnGrad.H @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2016 OpenFOAM Foundation + Copyright (C) 2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -30,8 +31,21 @@ Group grpFvSnGradSchemes Description - Simple central-difference snGrad scheme using the non-orthogonal mesh - delta-coefficients but without non-orthogonal correction. + Surface gradient scheme with no non-orthogonal correction. + +Usage + Minimal example by using \c system/fvSchemes: + \verbatim + snGradSchemes + { + snGrad() uncorrected; + } + \endverbatim + +Note + - Interpolation weighting factors (i.e. delta coefficients) are based + on the \c nonOrthDeltaCoeffs function rather than the \c deltaCoeffs + function, which is used by the \c orthogonal scheme. SourceFiles uncorrectedSnGrad.C @@ -54,7 +68,7 @@ namespace fv { /*---------------------------------------------------------------------------*\ - Class uncorrectedSnGrad Declaration + Class uncorrectedSnGrad Declaration \*---------------------------------------------------------------------------*/ template @@ -82,7 +96,6 @@ public: snGradScheme(mesh) {} - //- Construct from mesh and data stream uncorrectedSnGrad(const fvMesh& mesh, Istream&) : @@ -91,7 +104,7 @@ public: //- Destructor - virtual ~uncorrectedSnGrad(); + virtual ~uncorrectedSnGrad() = default; // Member Functions @@ -106,13 +119,13 @@ public: } //- Return true if this scheme uses an explicit correction - virtual bool corrected() const + virtual bool corrected() const noexcept { return false; } //- Return the explicit correction to the uncorrectedSnGrad - // for the given field + //- for the given field virtual tmp> correction(const GeometricField&) const; }; diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/uncorrectedSnGrad/uncorrectedSnGrads.C b/src/finiteVolume/finiteVolume/snGradSchemes/uncorrectedSnGrad/uncorrectedSnGrads.C index c8fc0c122f..284a991eac 100644 --- a/src/finiteVolume/finiteVolume/snGradSchemes/uncorrectedSnGrad/uncorrectedSnGrads.C +++ b/src/finiteVolume/finiteVolume/snGradSchemes/uncorrectedSnGrad/uncorrectedSnGrads.C @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2011-2015 OpenFOAM Foundation + Copyright (C) 2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -23,9 +24,6 @@ License You should have received a copy of the GNU General Public License along with OpenFOAM. If not, see . -Description - Simple central-difference snGrad scheme without non-orthogonal correction. - \*---------------------------------------------------------------------------*/ #include "uncorrectedSnGrad.H" diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/Allclean b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/Allclean new file mode 100755 index 0000000000..e570da4052 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/Allclean @@ -0,0 +1,14 @@ +#!/bin/sh +cd "${0%/*}" || exit # Run from this directory +. ${WM_PROJECT_DIR:?}/bin/tools/CleanFunctions # Tutorial clean functions +#------------------------------------------------------------------------------ + +cleanCase0 + +rm -rf 0.orig +rm -rf system +rm -rf constant +rm -rf results +rm -rf plots + +#------------------------------------------------------------------------------ diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/Allrun b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/Allrun new file mode 100755 index 0000000000..51d093ba4a --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/Allrun @@ -0,0 +1,143 @@ +#!/bin/sh +cd "${0%/*}" || exit # Run from this directory +. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions +. ${WM_PROJECT_DIR:?}/bin/tools/CleanFunctions # Tutorial clean functions +#------------------------------------------------------------------------------ + +# settings + + # operand setups + setups=" + 0 + 10 + 20 + 30 + 40 + 50 + 60 + 70 + 80 + 85 + " + + # flag to enable computations in parallel mode + parallel=true + + +#------------------------------------------------------------------------------ + +####################################### +# Collect results into a given path +# and clean the case for the next run +# Arguments: +# $1 = Path to move results +# Outputs: +# Writes info to stdout +####################################### +collect() { + + [ $# -eq 0 ] && { echo "Usage: $0 dir-model"; exit 1; } + + collection="$1" + + dirResult=results/"$collection" + dirSettings="$dirResult"/system + + if [ ! -d "$dirResult" ] + then + + echo " # Collecting results and settings into $dirResult" + + mkdir -p "$dirSettings" + + mv -f $(foamListTimes) "$dirResult" + [ -d postProcessing ] && mv -f postProcessing "$dirResult" + [ -d processor0 ] && mv -f processor* "$dirResult" + mv -f log.* "$dirResult" + mv -f logs "$dirResult" + mv -f constant "$dirResult"/ + cp -f system/fv* system/controlDict "$dirSettings" + mv -f 0/ "$dirSettings" + + echo " # Cleaning up the case" + + cleanTimeDirectories + cleanPostProcessing + + else + + echo " # Directory $dirResult already exists" + echo " # Skipping the computation" + + fi + +} + + +#------------------------------------------------------------------------------ + +for setup in $setups +do + + echo "" + echo "# Computations for the setup: $setup" + echo "" + + dirSetup="setups.orig/$setup" + + if [ ! -d "$dirSetup" ] + then + echo "Setup directory: $dirSetup" \ + "could not be found - skipping execution" 1>&2 + exit 1 + fi + + cp -rfL "$dirSetup/0.orig" . + cp -rfL "$dirSetup/constant" . + cp -rfL "$dirSetup/system" . + cp -rf 0.orig/ 0/ + + runApplication blockMesh + + runApplication renumberMesh -overwrite -constant + + runApplication checkMesh \ + -allTopology -allGeometry -constant \ + -writeAllFields -writeAllSurfaceFields + + + if [ "$parallel" = true ] + then + + runApplication decomposePar + + runParallel -s parallel renumberMesh -overwrite + + runParallel $(getApplication) + + runApplication reconstructPar + + else + + runApplication $(getApplication) + + fi + + # runtime sampling has problems in parallel mode (Apr 2021) + runApplication \ + postProcess -func sample -latestTime + + runApplication -s "epsilon" \ + postProcess -func sampleEpsilon -latestTime + + runApplication -s "G"\ + postProcess -func sampleG -latestTime + + runApplication foamLog log.$(getApplication) + + collect "$setup" + +done + + +#------------------------------------------------------------------------------ diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/plot b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/plot new file mode 100755 index 0000000000..153118703b --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/plot @@ -0,0 +1,663 @@ +#!/bin/bash +cd "${0%/*}" || exit # Run from this directory +. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions +#------------------------------------------------------------------------------ + +# settings + + # operand setups + setups=" + 0 + 10 + 20 + 30 + 40 + 50 + 60 + 70 + 80 + 85 + " + + +#------------------------------------------------------------------------------ + +plot_initial_iteration_residuals() { + + setup="$1" + + echo " Plotting the initial-iteration residuals for $setup" + + # benchmarkFile="..." + samples="results/$setup/logs" + image="plots/$setup/initial-iteration-residuals.png" + + gnuplot</dev/null || { + echo "gnuplot not found - skipping graph creation" 1>&2 + exit 1 +} + +# Requires awk +command -v awk >/dev/null || { + echo "awk not found - skipping graph creation" 1>&2 + exit 1 +} + +# Check "results" directory +[ -d "results" ] || { + echo "No results directory found - skipping graph creation" 1>&2 + exit 1 +} + + +#------------------------------------------------------------------------------ + +for setup in $setups +do + + echo "" + echo "# Plots for the setup: $setup" + echo "" + + dirPlots="plots/$setup" + [ -d "$dirPlots" ] || mkdir -p "$dirPlots" + + # few manipulations + endTime=$(foamDictionary results/$setup/system/controlDict -entry endTime -value) + nu=$(foamDictionary results/$setup/constant/transportProperties -entry nu | sed 's|^.*\s\(.*\);|\1|g') + tau=$(foamDictionary results/$setup/$endTime/wallShearStress1:wallShearStress -entry boundaryField.bottom.value -value | sed -n '/(/,/)/p' | sed -e 's/[()]//g;/^\s*$/d' | cut -d' ' -f6) + uTau=$(awk -v tau="$tau" 'BEGIN { printf "%.16f", sqrt(-1*tau) }') + + plot_yPlus_vs_uPlus "$setup" "$endTime" "$nu" "$uTau" + + plot_yPlus_vs_R "$setup" "$endTime" "$nu" "$uTau" + + plot_yPlus_vs_epsilonPlus "$setup" "$endTime" "$nu" "$uTau" + + plot_yPlus_vs_productionRatePlus "$setup" "$endTime" "$nu" "$uTau" + + plot_initial_iteration_residuals "$setup" + + plot_final_iteration_residuals "$setup" + +done + +plot_yPlus_vs_uPlus_all_setups $setups + +plot_yPlus_vs_R_all_setups $setups + +plot_yPlus_vs_epsilonPlus_all_setups $setups + +plot_yPlus_vs_productionRatePlus_all_setups $setups + + +#------------------------------------------------------------------------------ diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/0/0.orig b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/0/0.orig new file mode 120000 index 0000000000..f9966c1c82 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/0/0.orig @@ -0,0 +1 @@ +../common/0.orig \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/0/constant b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/0/constant new file mode 120000 index 0000000000..f629794886 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/0/constant @@ -0,0 +1 @@ +../common/constant \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/0/system/blockMeshDict b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/0/system/blockMeshDict new file mode 100644 index 0000000000..4cd9e46311 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/0/system/blockMeshDict @@ -0,0 +1,100 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v2012 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +scale 1; + +alpha 0; +nx 5; +ny 100; +nz 1; +xMin 0; +xMax 1; +yMin 0; +yMax 1; +zMin 0; +zMax 1; +yExpansion 9.987905978; + +sin0 #eval{sin(degToRad($alpha))}; +cos0 #eval{cos(degToRad($alpha))}; +xMindx #eval{$xMin + $sin0}; +xMaxdx #eval{$xMax + $sin0}; +yMaxdy #eval{$yMax*$cos0}; + +vertices +( + ($xMin $yMin $zMin) + ($xMax $yMin $zMin) + ($xMaxdx $yMaxdy $zMin) + ($xMindx $yMaxdy $zMin) + ($xMin $yMin $zMax) + ($xMax $yMin $zMax) + ($xMaxdx $yMaxdy $zMax) + ($xMindx $yMaxdy $zMax) +); + +blocks +( + hex (0 1 2 3 4 5 6 7) ($nx $ny $nz) simpleGrading (1 $yExpansion 1) +); + +boundary +( + inlet + { + type patch; + faces + ( + (0 4 7 3) + ); + } + outlet + { + type patch; + faces + ( + (2 6 5 1) + ); + } + top + { + type symmetry; + faces + ( + (3 7 6 2) + ); + } + bottom + { + type wall; + faces + ( + (1 5 4 0) + ); + } + leftAndRight + { + type empty; + faces + ( + (0 3 2 1) + (4 5 6 7) + ); + } +); + + +// ************************************************************************* // diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/0/system/controlDict b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/0/system/controlDict new file mode 120000 index 0000000000..e38bfb1f6b --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/0/system/controlDict @@ -0,0 +1 @@ +../../common/system/controlDict \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/0/system/decomposeParDict b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/0/system/decomposeParDict new file mode 120000 index 0000000000..9276e7939a --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/0/system/decomposeParDict @@ -0,0 +1 @@ +../../common/system/decomposeParDict \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/0/system/fvSchemes b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/0/system/fvSchemes new file mode 120000 index 0000000000..274d17e172 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/0/system/fvSchemes @@ -0,0 +1 @@ +../../common/system/fvSchemes \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/0/system/fvSolution b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/0/system/fvSolution new file mode 120000 index 0000000000..504f0b1c9e --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/0/system/fvSolution @@ -0,0 +1 @@ +../../common/system/fvSolution \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/0/system/sample b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/0/system/sample new file mode 120000 index 0000000000..dd0303886f --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/0/system/sample @@ -0,0 +1 @@ +../../common/system/sample \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/0/system/sampleEpsilon b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/0/system/sampleEpsilon new file mode 120000 index 0000000000..c26b1f97d5 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/0/system/sampleEpsilon @@ -0,0 +1 @@ +../../common/system/sampleEpsilon \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/0/system/sampleG b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/0/system/sampleG new file mode 120000 index 0000000000..6d73a78c84 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/0/system/sampleG @@ -0,0 +1 @@ +../../common/system/sampleG \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/10/0.orig b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/10/0.orig new file mode 120000 index 0000000000..f9966c1c82 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/10/0.orig @@ -0,0 +1 @@ +../common/0.orig \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/10/constant b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/10/constant new file mode 120000 index 0000000000..f629794886 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/10/constant @@ -0,0 +1 @@ +../common/constant \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/10/system/blockMeshDict b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/10/system/blockMeshDict new file mode 100644 index 0000000000..627d7a9ee3 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/10/system/blockMeshDict @@ -0,0 +1,100 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v2012 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +scale 1; + +alpha 10; +nx 5; +ny 100; +nz 1; +xMin 0; +xMax 1; +yMin 0; +yMax 1; +zMin 0; +zMax 1; +yExpansion 9.987905978; + +sin0 #eval{sin(degToRad($alpha))}; +cos0 #eval{cos(degToRad($alpha))}; +xMindx #eval{$xMin + $sin0}; +xMaxdx #eval{$xMax + $sin0}; +yMaxdy #eval{$yMax*$cos0}; + +vertices +( + ($xMin $yMin $zMin) + ($xMax $yMin $zMin) + ($xMaxdx $yMaxdy $zMin) + ($xMindx $yMaxdy $zMin) + ($xMin $yMin $zMax) + ($xMax $yMin $zMax) + ($xMaxdx $yMaxdy $zMax) + ($xMindx $yMaxdy $zMax) +); + +blocks +( + hex (0 1 2 3 4 5 6 7) ($nx $ny $nz) simpleGrading (1 $yExpansion 1) +); + +boundary +( + inlet + { + type patch; + faces + ( + (0 4 7 3) + ); + } + outlet + { + type patch; + faces + ( + (2 6 5 1) + ); + } + top + { + type symmetry; + faces + ( + (3 7 6 2) + ); + } + bottom + { + type wall; + faces + ( + (1 5 4 0) + ); + } + leftAndRight + { + type empty; + faces + ( + (0 3 2 1) + (4 5 6 7) + ); + } +); + + +// ************************************************************************* // diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/10/system/controlDict b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/10/system/controlDict new file mode 120000 index 0000000000..e38bfb1f6b --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/10/system/controlDict @@ -0,0 +1 @@ +../../common/system/controlDict \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/10/system/decomposeParDict b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/10/system/decomposeParDict new file mode 120000 index 0000000000..9276e7939a --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/10/system/decomposeParDict @@ -0,0 +1 @@ +../../common/system/decomposeParDict \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/10/system/fvSchemes b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/10/system/fvSchemes new file mode 120000 index 0000000000..274d17e172 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/10/system/fvSchemes @@ -0,0 +1 @@ +../../common/system/fvSchemes \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/10/system/fvSolution b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/10/system/fvSolution new file mode 120000 index 0000000000..504f0b1c9e --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/10/system/fvSolution @@ -0,0 +1 @@ +../../common/system/fvSolution \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/10/system/sample b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/10/system/sample new file mode 120000 index 0000000000..dd0303886f --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/10/system/sample @@ -0,0 +1 @@ +../../common/system/sample \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/10/system/sampleEpsilon b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/10/system/sampleEpsilon new file mode 120000 index 0000000000..c26b1f97d5 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/10/system/sampleEpsilon @@ -0,0 +1 @@ +../../common/system/sampleEpsilon \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/10/system/sampleG b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/10/system/sampleG new file mode 120000 index 0000000000..6d73a78c84 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/10/system/sampleG @@ -0,0 +1 @@ +../../common/system/sampleG \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/20/0.orig b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/20/0.orig new file mode 120000 index 0000000000..f9966c1c82 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/20/0.orig @@ -0,0 +1 @@ +../common/0.orig \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/20/constant b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/20/constant new file mode 120000 index 0000000000..f629794886 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/20/constant @@ -0,0 +1 @@ +../common/constant \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/20/system/blockMeshDict b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/20/system/blockMeshDict new file mode 100644 index 0000000000..73e162e2b6 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/20/system/blockMeshDict @@ -0,0 +1,100 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v2012 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +scale 1; + +alpha 20; +nx 5; +ny 100; +nz 1; +xMin 0; +xMax 1; +yMin 0; +yMax 1; +zMin 0; +zMax 1; +yExpansion 9.987905978; + +sin0 #eval{sin(degToRad($alpha))}; +cos0 #eval{cos(degToRad($alpha))}; +xMindx #eval{$xMin + $sin0}; +xMaxdx #eval{$xMax + $sin0}; +yMaxdy #eval{$yMax*$cos0}; + +vertices +( + ($xMin $yMin $zMin) + ($xMax $yMin $zMin) + ($xMaxdx $yMaxdy $zMin) + ($xMindx $yMaxdy $zMin) + ($xMin $yMin $zMax) + ($xMax $yMin $zMax) + ($xMaxdx $yMaxdy $zMax) + ($xMindx $yMaxdy $zMax) +); + +blocks +( + hex (0 1 2 3 4 5 6 7) ($nx $ny $nz) simpleGrading (1 $yExpansion 1) +); + +boundary +( + inlet + { + type patch; + faces + ( + (0 4 7 3) + ); + } + outlet + { + type patch; + faces + ( + (2 6 5 1) + ); + } + top + { + type symmetry; + faces + ( + (3 7 6 2) + ); + } + bottom + { + type wall; + faces + ( + (1 5 4 0) + ); + } + leftAndRight + { + type empty; + faces + ( + (0 3 2 1) + (4 5 6 7) + ); + } +); + + +// ************************************************************************* // diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/20/system/controlDict b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/20/system/controlDict new file mode 120000 index 0000000000..e38bfb1f6b --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/20/system/controlDict @@ -0,0 +1 @@ +../../common/system/controlDict \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/20/system/decomposeParDict b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/20/system/decomposeParDict new file mode 120000 index 0000000000..9276e7939a --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/20/system/decomposeParDict @@ -0,0 +1 @@ +../../common/system/decomposeParDict \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/20/system/fvSchemes b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/20/system/fvSchemes new file mode 120000 index 0000000000..274d17e172 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/20/system/fvSchemes @@ -0,0 +1 @@ +../../common/system/fvSchemes \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/20/system/fvSolution b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/20/system/fvSolution new file mode 120000 index 0000000000..504f0b1c9e --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/20/system/fvSolution @@ -0,0 +1 @@ +../../common/system/fvSolution \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/20/system/sample b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/20/system/sample new file mode 120000 index 0000000000..dd0303886f --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/20/system/sample @@ -0,0 +1 @@ +../../common/system/sample \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/20/system/sampleEpsilon b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/20/system/sampleEpsilon new file mode 120000 index 0000000000..c26b1f97d5 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/20/system/sampleEpsilon @@ -0,0 +1 @@ +../../common/system/sampleEpsilon \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/20/system/sampleG b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/20/system/sampleG new file mode 120000 index 0000000000..6d73a78c84 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/20/system/sampleG @@ -0,0 +1 @@ +../../common/system/sampleG \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/30/0.orig b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/30/0.orig new file mode 120000 index 0000000000..f9966c1c82 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/30/0.orig @@ -0,0 +1 @@ +../common/0.orig \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/30/constant b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/30/constant new file mode 120000 index 0000000000..f629794886 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/30/constant @@ -0,0 +1 @@ +../common/constant \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/30/system/blockMeshDict b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/30/system/blockMeshDict new file mode 100644 index 0000000000..f4dc911368 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/30/system/blockMeshDict @@ -0,0 +1,100 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v2012 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +scale 1; + +alpha 30; +nx 5; +ny 100; +nz 1; +xMin 0; +xMax 1; +yMin 0; +yMax 1; +zMin 0; +zMax 1; +yExpansion 9.987905978; + +sin0 #eval{sin(degToRad($alpha))}; +cos0 #eval{cos(degToRad($alpha))}; +xMindx #eval{$xMin + $sin0}; +xMaxdx #eval{$xMax + $sin0}; +yMaxdy #eval{$yMax*$cos0}; + +vertices +( + ($xMin $yMin $zMin) + ($xMax $yMin $zMin) + ($xMaxdx $yMaxdy $zMin) + ($xMindx $yMaxdy $zMin) + ($xMin $yMin $zMax) + ($xMax $yMin $zMax) + ($xMaxdx $yMaxdy $zMax) + ($xMindx $yMaxdy $zMax) +); + +blocks +( + hex (0 1 2 3 4 5 6 7) ($nx $ny $nz) simpleGrading (1 $yExpansion 1) +); + +boundary +( + inlet + { + type patch; + faces + ( + (0 4 7 3) + ); + } + outlet + { + type patch; + faces + ( + (2 6 5 1) + ); + } + top + { + type symmetry; + faces + ( + (3 7 6 2) + ); + } + bottom + { + type wall; + faces + ( + (1 5 4 0) + ); + } + leftAndRight + { + type empty; + faces + ( + (0 3 2 1) + (4 5 6 7) + ); + } +); + + +// ************************************************************************* // diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/30/system/controlDict b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/30/system/controlDict new file mode 120000 index 0000000000..e38bfb1f6b --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/30/system/controlDict @@ -0,0 +1 @@ +../../common/system/controlDict \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/30/system/decomposeParDict b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/30/system/decomposeParDict new file mode 120000 index 0000000000..9276e7939a --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/30/system/decomposeParDict @@ -0,0 +1 @@ +../../common/system/decomposeParDict \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/30/system/fvSchemes b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/30/system/fvSchemes new file mode 120000 index 0000000000..274d17e172 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/30/system/fvSchemes @@ -0,0 +1 @@ +../../common/system/fvSchemes \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/30/system/fvSolution b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/30/system/fvSolution new file mode 120000 index 0000000000..504f0b1c9e --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/30/system/fvSolution @@ -0,0 +1 @@ +../../common/system/fvSolution \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/30/system/sample b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/30/system/sample new file mode 120000 index 0000000000..dd0303886f --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/30/system/sample @@ -0,0 +1 @@ +../../common/system/sample \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/30/system/sampleEpsilon b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/30/system/sampleEpsilon new file mode 120000 index 0000000000..c26b1f97d5 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/30/system/sampleEpsilon @@ -0,0 +1 @@ +../../common/system/sampleEpsilon \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/30/system/sampleG b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/30/system/sampleG new file mode 120000 index 0000000000..6d73a78c84 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/30/system/sampleG @@ -0,0 +1 @@ +../../common/system/sampleG \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/40/0.orig b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/40/0.orig new file mode 120000 index 0000000000..f9966c1c82 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/40/0.orig @@ -0,0 +1 @@ +../common/0.orig \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/40/constant b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/40/constant new file mode 120000 index 0000000000..f629794886 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/40/constant @@ -0,0 +1 @@ +../common/constant \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/40/system/blockMeshDict b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/40/system/blockMeshDict new file mode 100644 index 0000000000..59bbc543cc --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/40/system/blockMeshDict @@ -0,0 +1,100 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v2012 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +scale 1; + +alpha 40; +nx 5; +ny 100; +nz 1; +xMin 0; +xMax 1; +yMin 0; +yMax 1; +zMin 0; +zMax 1; +yExpansion 9.987905978; + +sin0 #eval{sin(degToRad($alpha))}; +cos0 #eval{cos(degToRad($alpha))}; +xMindx #eval{$xMin + $sin0}; +xMaxdx #eval{$xMax + $sin0}; +yMaxdy #eval{$yMax*$cos0}; + +vertices +( + ($xMin $yMin $zMin) + ($xMax $yMin $zMin) + ($xMaxdx $yMaxdy $zMin) + ($xMindx $yMaxdy $zMin) + ($xMin $yMin $zMax) + ($xMax $yMin $zMax) + ($xMaxdx $yMaxdy $zMax) + ($xMindx $yMaxdy $zMax) +); + +blocks +( + hex (0 1 2 3 4 5 6 7) ($nx $ny $nz) simpleGrading (1 $yExpansion 1) +); + +boundary +( + inlet + { + type patch; + faces + ( + (0 4 7 3) + ); + } + outlet + { + type patch; + faces + ( + (2 6 5 1) + ); + } + top + { + type symmetry; + faces + ( + (3 7 6 2) + ); + } + bottom + { + type wall; + faces + ( + (1 5 4 0) + ); + } + leftAndRight + { + type empty; + faces + ( + (0 3 2 1) + (4 5 6 7) + ); + } +); + + +// ************************************************************************* // diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/40/system/controlDict b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/40/system/controlDict new file mode 120000 index 0000000000..e38bfb1f6b --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/40/system/controlDict @@ -0,0 +1 @@ +../../common/system/controlDict \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/40/system/decomposeParDict b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/40/system/decomposeParDict new file mode 120000 index 0000000000..9276e7939a --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/40/system/decomposeParDict @@ -0,0 +1 @@ +../../common/system/decomposeParDict \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/40/system/fvSchemes b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/40/system/fvSchemes new file mode 120000 index 0000000000..274d17e172 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/40/system/fvSchemes @@ -0,0 +1 @@ +../../common/system/fvSchemes \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/40/system/fvSolution b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/40/system/fvSolution new file mode 120000 index 0000000000..504f0b1c9e --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/40/system/fvSolution @@ -0,0 +1 @@ +../../common/system/fvSolution \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/40/system/sample b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/40/system/sample new file mode 120000 index 0000000000..dd0303886f --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/40/system/sample @@ -0,0 +1 @@ +../../common/system/sample \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/40/system/sampleEpsilon b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/40/system/sampleEpsilon new file mode 120000 index 0000000000..c26b1f97d5 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/40/system/sampleEpsilon @@ -0,0 +1 @@ +../../common/system/sampleEpsilon \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/40/system/sampleG b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/40/system/sampleG new file mode 120000 index 0000000000..6d73a78c84 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/40/system/sampleG @@ -0,0 +1 @@ +../../common/system/sampleG \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/50/0.orig b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/50/0.orig new file mode 120000 index 0000000000..f9966c1c82 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/50/0.orig @@ -0,0 +1 @@ +../common/0.orig \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/50/constant b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/50/constant new file mode 120000 index 0000000000..f629794886 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/50/constant @@ -0,0 +1 @@ +../common/constant \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/50/system/blockMeshDict b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/50/system/blockMeshDict new file mode 100644 index 0000000000..b8ed3c6cf4 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/50/system/blockMeshDict @@ -0,0 +1,100 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v2012 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +scale 1; + +alpha 50; +nx 5; +ny 100; +nz 1; +xMin 0; +xMax 1; +yMin 0; +yMax 1; +zMin 0; +zMax 1; +yExpansion 9.987905978; + +sin0 #eval{sin(degToRad($alpha))}; +cos0 #eval{cos(degToRad($alpha))}; +xMindx #eval{$xMin + $sin0}; +xMaxdx #eval{$xMax + $sin0}; +yMaxdy #eval{$yMax*$cos0}; + +vertices +( + ($xMin $yMin $zMin) + ($xMax $yMin $zMin) + ($xMaxdx $yMaxdy $zMin) + ($xMindx $yMaxdy $zMin) + ($xMin $yMin $zMax) + ($xMax $yMin $zMax) + ($xMaxdx $yMaxdy $zMax) + ($xMindx $yMaxdy $zMax) +); + +blocks +( + hex (0 1 2 3 4 5 6 7) ($nx $ny $nz) simpleGrading (1 $yExpansion 1) +); + +boundary +( + inlet + { + type patch; + faces + ( + (0 4 7 3) + ); + } + outlet + { + type patch; + faces + ( + (2 6 5 1) + ); + } + top + { + type symmetry; + faces + ( + (3 7 6 2) + ); + } + bottom + { + type wall; + faces + ( + (1 5 4 0) + ); + } + leftAndRight + { + type empty; + faces + ( + (0 3 2 1) + (4 5 6 7) + ); + } +); + + +// ************************************************************************* // diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/50/system/controlDict b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/50/system/controlDict new file mode 120000 index 0000000000..e38bfb1f6b --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/50/system/controlDict @@ -0,0 +1 @@ +../../common/system/controlDict \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/50/system/decomposeParDict b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/50/system/decomposeParDict new file mode 120000 index 0000000000..9276e7939a --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/50/system/decomposeParDict @@ -0,0 +1 @@ +../../common/system/decomposeParDict \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/50/system/fvSchemes b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/50/system/fvSchemes new file mode 120000 index 0000000000..274d17e172 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/50/system/fvSchemes @@ -0,0 +1 @@ +../../common/system/fvSchemes \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/50/system/fvSolution b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/50/system/fvSolution new file mode 120000 index 0000000000..504f0b1c9e --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/50/system/fvSolution @@ -0,0 +1 @@ +../../common/system/fvSolution \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/50/system/sample b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/50/system/sample new file mode 120000 index 0000000000..dd0303886f --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/50/system/sample @@ -0,0 +1 @@ +../../common/system/sample \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/50/system/sampleEpsilon b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/50/system/sampleEpsilon new file mode 120000 index 0000000000..c26b1f97d5 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/50/system/sampleEpsilon @@ -0,0 +1 @@ +../../common/system/sampleEpsilon \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/50/system/sampleG b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/50/system/sampleG new file mode 120000 index 0000000000..6d73a78c84 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/50/system/sampleG @@ -0,0 +1 @@ +../../common/system/sampleG \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/60/0.orig b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/60/0.orig new file mode 120000 index 0000000000..f9966c1c82 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/60/0.orig @@ -0,0 +1 @@ +../common/0.orig \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/60/constant b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/60/constant new file mode 120000 index 0000000000..f629794886 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/60/constant @@ -0,0 +1 @@ +../common/constant \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/60/system/blockMeshDict b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/60/system/blockMeshDict new file mode 100644 index 0000000000..084c8fb332 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/60/system/blockMeshDict @@ -0,0 +1,100 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v2012 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +scale 1; + +alpha 60; +nx 5; +ny 100; +nz 1; +xMin 0; +xMax 1; +yMin 0; +yMax 1; +zMin 0; +zMax 1; +yExpansion 9.987905978; + +sin0 #eval{sin(degToRad($alpha))}; +cos0 #eval{cos(degToRad($alpha))}; +xMindx #eval{$xMin + $sin0}; +xMaxdx #eval{$xMax + $sin0}; +yMaxdy #eval{$yMax*$cos0}; + +vertices +( + ($xMin $yMin $zMin) + ($xMax $yMin $zMin) + ($xMaxdx $yMaxdy $zMin) + ($xMindx $yMaxdy $zMin) + ($xMin $yMin $zMax) + ($xMax $yMin $zMax) + ($xMaxdx $yMaxdy $zMax) + ($xMindx $yMaxdy $zMax) +); + +blocks +( + hex (0 1 2 3 4 5 6 7) ($nx $ny $nz) simpleGrading (1 $yExpansion 1) +); + +boundary +( + inlet + { + type patch; + faces + ( + (0 4 7 3) + ); + } + outlet + { + type patch; + faces + ( + (2 6 5 1) + ); + } + top + { + type symmetry; + faces + ( + (3 7 6 2) + ); + } + bottom + { + type wall; + faces + ( + (1 5 4 0) + ); + } + leftAndRight + { + type empty; + faces + ( + (0 3 2 1) + (4 5 6 7) + ); + } +); + + +// ************************************************************************* // diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/60/system/controlDict b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/60/system/controlDict new file mode 120000 index 0000000000..e38bfb1f6b --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/60/system/controlDict @@ -0,0 +1 @@ +../../common/system/controlDict \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/60/system/decomposeParDict b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/60/system/decomposeParDict new file mode 120000 index 0000000000..9276e7939a --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/60/system/decomposeParDict @@ -0,0 +1 @@ +../../common/system/decomposeParDict \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/60/system/fvSchemes b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/60/system/fvSchemes new file mode 120000 index 0000000000..274d17e172 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/60/system/fvSchemes @@ -0,0 +1 @@ +../../common/system/fvSchemes \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/60/system/fvSolution b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/60/system/fvSolution new file mode 120000 index 0000000000..504f0b1c9e --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/60/system/fvSolution @@ -0,0 +1 @@ +../../common/system/fvSolution \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/60/system/sample b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/60/system/sample new file mode 120000 index 0000000000..dd0303886f --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/60/system/sample @@ -0,0 +1 @@ +../../common/system/sample \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/60/system/sampleEpsilon b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/60/system/sampleEpsilon new file mode 120000 index 0000000000..c26b1f97d5 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/60/system/sampleEpsilon @@ -0,0 +1 @@ +../../common/system/sampleEpsilon \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/60/system/sampleG b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/60/system/sampleG new file mode 120000 index 0000000000..6d73a78c84 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/60/system/sampleG @@ -0,0 +1 @@ +../../common/system/sampleG \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/70/0.orig b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/70/0.orig new file mode 120000 index 0000000000..f9966c1c82 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/70/0.orig @@ -0,0 +1 @@ +../common/0.orig \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/70/constant b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/70/constant new file mode 120000 index 0000000000..f629794886 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/70/constant @@ -0,0 +1 @@ +../common/constant \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/70/system/blockMeshDict b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/70/system/blockMeshDict new file mode 100644 index 0000000000..6e484519c1 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/70/system/blockMeshDict @@ -0,0 +1,100 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v2012 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +scale 1; + +alpha 70; +nx 5; +ny 100; +nz 1; +xMin 0; +xMax 1; +yMin 0; +yMax 1; +zMin 0; +zMax 1; +yExpansion 9.987905978; + +sin0 #eval{sin(degToRad($alpha))}; +cos0 #eval{cos(degToRad($alpha))}; +xMindx #eval{$xMin + $sin0}; +xMaxdx #eval{$xMax + $sin0}; +yMaxdy #eval{$yMax*$cos0}; + +vertices +( + ($xMin $yMin $zMin) + ($xMax $yMin $zMin) + ($xMaxdx $yMaxdy $zMin) + ($xMindx $yMaxdy $zMin) + ($xMin $yMin $zMax) + ($xMax $yMin $zMax) + ($xMaxdx $yMaxdy $zMax) + ($xMindx $yMaxdy $zMax) +); + +blocks +( + hex (0 1 2 3 4 5 6 7) ($nx $ny $nz) simpleGrading (1 $yExpansion 1) +); + +boundary +( + inlet + { + type patch; + faces + ( + (0 4 7 3) + ); + } + outlet + { + type patch; + faces + ( + (2 6 5 1) + ); + } + top + { + type symmetry; + faces + ( + (3 7 6 2) + ); + } + bottom + { + type wall; + faces + ( + (1 5 4 0) + ); + } + leftAndRight + { + type empty; + faces + ( + (0 3 2 1) + (4 5 6 7) + ); + } +); + + +// ************************************************************************* // diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/70/system/controlDict b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/70/system/controlDict new file mode 120000 index 0000000000..e38bfb1f6b --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/70/system/controlDict @@ -0,0 +1 @@ +../../common/system/controlDict \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/70/system/decomposeParDict b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/70/system/decomposeParDict new file mode 120000 index 0000000000..9276e7939a --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/70/system/decomposeParDict @@ -0,0 +1 @@ +../../common/system/decomposeParDict \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/70/system/fvSchemes b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/70/system/fvSchemes new file mode 120000 index 0000000000..274d17e172 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/70/system/fvSchemes @@ -0,0 +1 @@ +../../common/system/fvSchemes \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/70/system/fvSolution b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/70/system/fvSolution new file mode 120000 index 0000000000..504f0b1c9e --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/70/system/fvSolution @@ -0,0 +1 @@ +../../common/system/fvSolution \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/70/system/sample b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/70/system/sample new file mode 120000 index 0000000000..dd0303886f --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/70/system/sample @@ -0,0 +1 @@ +../../common/system/sample \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/70/system/sampleEpsilon b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/70/system/sampleEpsilon new file mode 120000 index 0000000000..c26b1f97d5 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/70/system/sampleEpsilon @@ -0,0 +1 @@ +../../common/system/sampleEpsilon \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/70/system/sampleG b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/70/system/sampleG new file mode 120000 index 0000000000..6d73a78c84 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/70/system/sampleG @@ -0,0 +1 @@ +../../common/system/sampleG \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/80/0.orig b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/80/0.orig new file mode 120000 index 0000000000..f9966c1c82 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/80/0.orig @@ -0,0 +1 @@ +../common/0.orig \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/80/constant b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/80/constant new file mode 120000 index 0000000000..f629794886 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/80/constant @@ -0,0 +1 @@ +../common/constant \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/80/system/blockMeshDict b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/80/system/blockMeshDict new file mode 100644 index 0000000000..c2e7c0f44e --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/80/system/blockMeshDict @@ -0,0 +1,100 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v2012 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +scale 1; + +alpha 80; +nx 5; +ny 100; +nz 1; +xMin 0; +xMax 1; +yMin 0; +yMax 1; +zMin 0; +zMax 1; +yExpansion 9.987905978; + +sin0 #eval{sin(degToRad($alpha))}; +cos0 #eval{cos(degToRad($alpha))}; +xMindx #eval{$xMin + $sin0}; +xMaxdx #eval{$xMax + $sin0}; +yMaxdy #eval{$yMax*$cos0}; + +vertices +( + ($xMin $yMin $zMin) + ($xMax $yMin $zMin) + ($xMaxdx $yMaxdy $zMin) + ($xMindx $yMaxdy $zMin) + ($xMin $yMin $zMax) + ($xMax $yMin $zMax) + ($xMaxdx $yMaxdy $zMax) + ($xMindx $yMaxdy $zMax) +); + +blocks +( + hex (0 1 2 3 4 5 6 7) ($nx $ny $nz) simpleGrading (1 $yExpansion 1) +); + +boundary +( + inlet + { + type patch; + faces + ( + (0 4 7 3) + ); + } + outlet + { + type patch; + faces + ( + (2 6 5 1) + ); + } + top + { + type symmetry; + faces + ( + (3 7 6 2) + ); + } + bottom + { + type wall; + faces + ( + (1 5 4 0) + ); + } + leftAndRight + { + type empty; + faces + ( + (0 3 2 1) + (4 5 6 7) + ); + } +); + + +// ************************************************************************* // diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/80/system/controlDict b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/80/system/controlDict new file mode 120000 index 0000000000..e38bfb1f6b --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/80/system/controlDict @@ -0,0 +1 @@ +../../common/system/controlDict \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/80/system/decomposeParDict b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/80/system/decomposeParDict new file mode 120000 index 0000000000..9276e7939a --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/80/system/decomposeParDict @@ -0,0 +1 @@ +../../common/system/decomposeParDict \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/80/system/fvSchemes b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/80/system/fvSchemes new file mode 120000 index 0000000000..274d17e172 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/80/system/fvSchemes @@ -0,0 +1 @@ +../../common/system/fvSchemes \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/80/system/fvSolution b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/80/system/fvSolution new file mode 120000 index 0000000000..504f0b1c9e --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/80/system/fvSolution @@ -0,0 +1 @@ +../../common/system/fvSolution \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/80/system/sample b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/80/system/sample new file mode 120000 index 0000000000..dd0303886f --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/80/system/sample @@ -0,0 +1 @@ +../../common/system/sample \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/80/system/sampleEpsilon b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/80/system/sampleEpsilon new file mode 120000 index 0000000000..c26b1f97d5 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/80/system/sampleEpsilon @@ -0,0 +1 @@ +../../common/system/sampleEpsilon \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/80/system/sampleG b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/80/system/sampleG new file mode 120000 index 0000000000..6d73a78c84 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/80/system/sampleG @@ -0,0 +1 @@ +../../common/system/sampleG \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/85/0.orig b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/85/0.orig new file mode 120000 index 0000000000..f9966c1c82 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/85/0.orig @@ -0,0 +1 @@ +../common/0.orig \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/85/constant b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/85/constant new file mode 120000 index 0000000000..f629794886 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/85/constant @@ -0,0 +1 @@ +../common/constant \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/85/system/blockMeshDict b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/85/system/blockMeshDict new file mode 100644 index 0000000000..f31baa38c2 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/85/system/blockMeshDict @@ -0,0 +1,100 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v2012 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +scale 1; + +alpha 85; +nx 5; +ny 100; +nz 1; +xMin 0; +xMax 1; +yMin 0; +yMax 1; +zMin 0; +zMax 1; +yExpansion 9.987905978; + +sin0 #eval{sin(degToRad($alpha))}; +cos0 #eval{cos(degToRad($alpha))}; +xMindx #eval{$xMin + $sin0}; +xMaxdx #eval{$xMax + $sin0}; +yMaxdy #eval{$yMax*$cos0}; + +vertices +( + ($xMin $yMin $zMin) + ($xMax $yMin $zMin) + ($xMaxdx $yMaxdy $zMin) + ($xMindx $yMaxdy $zMin) + ($xMin $yMin $zMax) + ($xMax $yMin $zMax) + ($xMaxdx $yMaxdy $zMax) + ($xMindx $yMaxdy $zMax) +); + +blocks +( + hex (0 1 2 3 4 5 6 7) ($nx $ny $nz) simpleGrading (1 $yExpansion 1) +); + +boundary +( + inlet + { + type patch; + faces + ( + (0 4 7 3) + ); + } + outlet + { + type patch; + faces + ( + (2 6 5 1) + ); + } + top + { + type symmetry; + faces + ( + (3 7 6 2) + ); + } + bottom + { + type wall; + faces + ( + (1 5 4 0) + ); + } + leftAndRight + { + type empty; + faces + ( + (0 3 2 1) + (4 5 6 7) + ); + } +); + + +// ************************************************************************* // diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/85/system/controlDict b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/85/system/controlDict new file mode 120000 index 0000000000..e38bfb1f6b --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/85/system/controlDict @@ -0,0 +1 @@ +../../common/system/controlDict \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/85/system/decomposeParDict b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/85/system/decomposeParDict new file mode 120000 index 0000000000..9276e7939a --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/85/system/decomposeParDict @@ -0,0 +1 @@ +../../common/system/decomposeParDict \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/85/system/fvSchemes b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/85/system/fvSchemes new file mode 120000 index 0000000000..274d17e172 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/85/system/fvSchemes @@ -0,0 +1 @@ +../../common/system/fvSchemes \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/85/system/fvSolution b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/85/system/fvSolution new file mode 120000 index 0000000000..504f0b1c9e --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/85/system/fvSolution @@ -0,0 +1 @@ +../../common/system/fvSolution \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/85/system/sample b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/85/system/sample new file mode 120000 index 0000000000..dd0303886f --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/85/system/sample @@ -0,0 +1 @@ +../../common/system/sample \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/85/system/sampleEpsilon b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/85/system/sampleEpsilon new file mode 120000 index 0000000000..c26b1f97d5 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/85/system/sampleEpsilon @@ -0,0 +1 @@ +../../common/system/sampleEpsilon \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/85/system/sampleG b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/85/system/sampleG new file mode 120000 index 0000000000..6d73a78c84 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/85/system/sampleG @@ -0,0 +1 @@ +../../common/system/sampleG \ No newline at end of file diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/0.orig/U b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/0.orig/U new file mode 100644 index 0000000000..e59fd7e55a --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/0.orig/U @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v2012 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ 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 +{ + bottom + { + type fixedValue; + value uniform (0 0 0); + } + + top + { + type symmetry; + } + + inlet + { + type zeroGradient; + } + + outlet + { + type zeroGradient; + } + + leftAndRight + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/0.orig/k b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/0.orig/k new file mode 100644 index 0000000000..02f18bd113 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/0.orig/k @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v2012 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object k; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0.325; + +boundaryField +{ + bottom + { + type fixedValue; + value uniform 1e-10; + } + + top + { + type symmetry; + } + + inlet + { + type zeroGradient; + } + + outlet + { + type zeroGradient; + } + + leftAndRight + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/0.orig/nut b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/0.orig/nut new file mode 100644 index 0000000000..3cd40c660b --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/0.orig/nut @@ -0,0 +1,53 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v2012 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object nut; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -1 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + bottom + { + type nutLowReWallFunction; + value $internalField; + } + + top + { + type symmetry; + } + + inlet + { + type calculated; + value $internalField; + } + + outlet + { + type calculated; + value $internalField; + } + + leftAndRight + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/0.orig/omega b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/0.orig/omega new file mode 100644 index 0000000000..bd6cc86d94 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/0.orig/omega @@ -0,0 +1,51 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v2012 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object omega; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 0 -1 0 0 0 0]; + +internalField uniform 400; + +boundaryField +{ + bottom + { + type omegaWallFunction; + value $internalField; + } + + top + { + type symmetry; + } + + inlet + { + type zeroGradient; + } + + outlet + { + type zeroGradient; + } + + leftAndRight + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/0.orig/p b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/0.orig/p new file mode 100644 index 0000000000..7b156f2866 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/0.orig/p @@ -0,0 +1,52 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v2012 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + bottom + { + type zeroGradient; + } + + top + { + type symmetry; + } + + inlet + { + type fixedValue; + value uniform 1.0; + } + + outlet + { + type fixedValue; + value uniform 0.0; + } + + leftAndRight + { + type empty; + } +} + + +// ************************************************************************* // diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/constant/transportProperties b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/constant/transportProperties new file mode 100644 index 0000000000..8cf1ea6cbd --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/constant/transportProperties @@ -0,0 +1,22 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v2012 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +transportModel Newtonian; + +nu 0.0025494595145829; + + +// ************************************************************************* // diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/constant/turbulenceProperties b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/constant/turbulenceProperties new file mode 100644 index 0000000000..46a32a743f --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/constant/turbulenceProperties @@ -0,0 +1,25 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v2012 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType RAS; + +RAS +{ + RASModel kOmegaSST; +} + + +// ************************************************************************* // diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/system/controlDict b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/system/controlDict new file mode 100644 index 0000000000..82e68c390e --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/system/controlDict @@ -0,0 +1,151 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v2012 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application simpleFoam; + +startFrom latestTime; + +startTime 0; + +stopAt endTime; + +endTime 50000; + +deltaT 1; + +writeControl timeStep; + +writeInterval 50000; + +purgeWrite 1; + +writeFormat ascii; + +writePrecision 16; + +writeCompression off; + +timeFormat general; + +timePrecision 8; + +runTimeModifiable false; + +functions +{ + fieldMinMax1 + { + type fieldMinMax; + libs (fieldFunctionObjects); + writeToFile no; + log yes; + location yes; + mode magnitude; + fields ( p U ); + } + + wallShearStress1 + { + type wallShearStress; + libs (fieldFunctionObjects); + patches ( bottom ); + executeControl writeTime; + writeControl writeTime; + } + + yPlus1 + { + type yPlus; + libs (fieldFunctionObjects); + executeControl writeTime; + writeControl writeTime; + } + + writeCellCentres1 + { + type writeCellCentres; + libs (fieldFunctionObjects); + executeControl onEnd; + writeControl onEnd; + } + + turbulenceFields1 + { + type turbulenceFields; + libs (fieldFunctionObjects); + fields ( k epsilon R ); + executeControl writeTime; + writeControl writeTime; + } + + productionRate1 + { + type coded; + libs (utilityFunctionObjects); + name productionRate; + writeControl writeTime; + + codeExecute + #{ + static autoPtr productionRate; + if + ( + mesh().time().timeIndex() == 1 + || + mesh().time().startTimeIndex() == mesh().time().timeIndex() - 1 + ) + { + Info<< "Create production rate field" << nl; + productionRate.set + ( + new volScalarField + ( + IOobject + ( + "productionRate", + mesh().time().timeName(), + mesh(), + IOobject::NO_READ, + IOobject::AUTO_WRITE + ), + mesh(), + sqr(dimLength)/pow(dimTime, 3) + ) + ); + } + + if + ( + mesh().time().timeIndex() != 1 + && mesh().time().timeIndex() > 1 // = timeStart + ) + { + Info<< "Computing production rate field\n" << endl; + + auto& prod = + mesh().lookupObjectRef("productionRate"); + + const auto& nut = mesh().lookupObject("nut"); + const auto& U = mesh().lookupObject("U"); + + prod = 2*nut*(symm(fvc::grad(U)) && symm(fvc::grad(U))); + } + #}; + } +} + + +// ************************************************************************* // diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/system/decomposeParDict b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/system/decomposeParDict new file mode 100644 index 0000000000..1f6fb39517 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/system/decomposeParDict @@ -0,0 +1,22 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v2012 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object decomposeParDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +numberOfSubdomains 2; + +method scotch; + + +// ************************************************************************* // diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/system/fvSchemes b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/system/fvSchemes new file mode 100644 index 0000000000..a13d605795 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/system/fvSchemes @@ -0,0 +1,75 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v2012 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default steadyState; +} + +gradSchemes +{ + default Gauss linear; + grad(U) cellLimited Gauss linear 1; + grad(k) cellLimited Gauss linear 1; + grad(omega) cellLimited Gauss linear 1; +} + +divSchemes +{ + default none; + div(phi,U) bounded Gauss linearUpwind grad(U); + + turbulence bounded Gauss limitedLinear 1; + + div(phi,k) $turbulence; + div(phi,omega) $turbulence; + div(phi,nuTilda) $turbulence; + div(phi,epsilon) $turbulence; + div(phi,phit) $turbulence; + div(phi,f) $turbulence; + + div((nuEff*dev2(T(grad(U))))) Gauss linear; +} + +laplacianSchemes +{ + default Gauss linear limited corrected 0.33; + laplacian((1|((1|(1|A(U)))-H(1))),p) Gauss linear limited relaxed 0.33; +} + +interpolationSchemes +{ + default linear; +} + +snGradSchemes +{ + default limited corrected 0.33; +} + +wallDist +{ + method meshWave; +} + +fluxRequired +{ + default no; + p; +} + + +// ************************************************************************* // diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/system/fvSolution b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/system/fvSolution new file mode 100644 index 0000000000..dd52d23f1b --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/system/fvSolution @@ -0,0 +1,90 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v2012 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + p + { + solver GAMG; + tolerance 1e-09; + relTol 0.01; + smoother DICGaussSeidel; + nPreSweeps 0; + nPostSweeps 2; + cacheAgglomeration on; + agglomerator faceAreaPair; + nCellsInCoarsestLevel 10; + mergeLevels 1; + } + + U + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-12; + relTol 0; + } + + "(k|omega|nuTilda)" + { + solver smoothSolver; + smoother symGaussSeidel; + tolerance 1e-09; + relTol 0.01; + } + + "(epsilon|phit)" + { + solver PBiCGStab; + preconditioner DILU; + tolerance 1e-8; + relTol 0; + } + + f + { + solver PBiCGStab; + preconditioner DIC; + tolerance 1e-8; + relTol 0; + } +} + +SIMPLE +{ + nNonOrthogonalCorrectors 0; + consistent true; +} + +relaxationFactors +{ + fields + { + "snGrad(p)" 0.5; + } + equations + { + U 0.9; + k 0.7; + omega 0.7; + nuTilda 0.7; + epsilon 0.7; + "(phit|f)" 0.7; + } +} + + +// ************************************************************************* // diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/system/sample b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/system/sample new file mode 100644 index 0000000000..ce4645b847 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/system/sample @@ -0,0 +1,49 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v2012 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object sample; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +type sets; +libs (sampling); +interpolationScheme cellPoint; +setFormat raw; +executeControl writeTime; +writeControl writeTime; +fields +( + U + turbulenceProperties:k + turbulenceProperties:R +); + +sets +( + ref_point + { + type cloud; + axis y; + points ((0.5 1 0.5)); + } + + y + { + type midPoint; + axis y; + start (0.5 0 0.5); + end (0.5 1 0.5); + } +); + + +// ************************************************************************* // diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/system/sampleEpsilon b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/system/sampleEpsilon new file mode 100644 index 0000000000..de09bff3b1 --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/system/sampleEpsilon @@ -0,0 +1,40 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v2012 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object sample; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +type sets; +libs (sampling); +interpolationScheme cellPoint; +setFormat raw; +executeControl writeTime; +writeControl writeTime; +fields +( + turbulenceProperties:epsilon +); + +sets +( + y + { + type midPoint; + axis y; + start (0.5 0 0.5); + end (0.5 1 0.5); + } +); + + +// ************************************************************************* // diff --git a/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/system/sampleG b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/system/sampleG new file mode 100644 index 0000000000..7460f2c6ca --- /dev/null +++ b/tutorials/incompressible/simpleFoam/nonOrthogonalChannel/setups.orig/common/system/sampleG @@ -0,0 +1,40 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | +| \\ / O peration | Version: v2012 | +| \\ / A nd | Website: www.openfoam.com | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object sample; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +type sets; +libs (sampling); +interpolationScheme cellPoint; +setFormat raw; +executeControl writeTime; +writeControl writeTime; +fields +( + productionRate +); + +sets +( + y + { + type midPoint; + axis y; + start (0.5 0 0.5); + end (0.5 1 0.5); + } +); + + +// ************************************************************************* //