diff --git a/src/finiteVolume/Make/files b/src/finiteVolume/Make/files index 855fb1fd6fa7fc5a8237d8c48f8b6122a5f2c1d3..8b184cfaf18ef86ac5484aab4c20ec44db0e586e 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 0000000000000000000000000000000000000000..d0732bf12414e737e983563f026fb960ac864b67 --- /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 <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "relaxedNonOrthoGaussLaplacianScheme.H" +#include "surfaceInterpolate.H" +#include "fvcDiv.H" +#include "fvcGrad.H" +#include "fvMatrices.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace fv +{ + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +template<class Type, class GType> +tmp<fvMatrix<Type>> +relaxedNonOrthoGaussLaplacianScheme<Type, GType>::fvmLaplacianUncorrected +( + const surfaceScalarField& gammaMagSf, + const surfaceScalarField& deltaCoeffs, + const GeometricField<Type, fvPatchField, volMesh>& vf +) +{ + tmp<fvMatrix<Type>> tfvm + ( + new fvMatrix<Type> + ( + vf, + deltaCoeffs.dimensions()*gammaMagSf.dimensions()*vf.dimensions() + ) + ); + fvMatrix<Type>& fvm = tfvm.ref(); + + fvm.upper() = deltaCoeffs.primitiveField()*gammaMagSf.primitiveField(); + fvm.negSumDiag(); + + forAll(vf.boundaryField(), patchi) + { + const fvPatchField<Type>& 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<class Type, class GType> +tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> +relaxedNonOrthoGaussLaplacianScheme<Type, GType>::gammaSnGradCorr +( + const surfaceVectorField& SfGammaCorr, + const GeometricField<Type, fvPatchField, volMesh>& vf +) +{ + const fvMesh& mesh = this->mesh(); + + tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> tgammaSnGradCorr + ( + new GeometricField<Type, fvsPatchField, surfaceMesh> + ( + 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<Type>::nComponents; cmpt++) + { + tgammaSnGradCorr.ref().replace + ( + cmpt, + fvc::dotInterpolate(SfGammaCorr, fvc::grad(vf.component(cmpt))) + ); + } + + return tgammaSnGradCorr; +} + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +template<class Type, class GType> +tmp<GeometricField<Type, fvPatchField, volMesh>> +relaxedNonOrthoGaussLaplacianScheme<Type, GType>::fvcLaplacian +( + const GeometricField<Type, fvPatchField, volMesh>& vf +) +{ + const fvMesh& mesh = this->mesh(); + + tmp<GeometricField<Type, fvPatchField, volMesh>> tLaplacian + ( + fvc::div(this->tsnGradScheme_().snGrad(vf)*mesh.magSf()) + ); + + tLaplacian.ref().rename("laplacian(" + vf.name() + ')'); + + return tLaplacian; +} + + +template<class Type, class GType> +tmp<fvMatrix<Type>> +relaxedNonOrthoGaussLaplacianScheme<Type, GType>::fvmLaplacian +( + const GeometricField<GType, fvsPatchField, surfaceMesh>& gamma, + const GeometricField<Type, fvPatchField, volMesh>& vf +) +{ + const fvMesh& mesh = this->mesh(); + + typedef GeometricField<Type, fvsPatchField, surfaceMesh> SType; + + const surfaceVectorField Sn(mesh.Sf()/mesh.magSf()); + + const surfaceVectorField SfGamma(mesh.Sf() & gamma); + const GeometricField<scalar, fvsPatchField, surfaceMesh> SfGammaSn + ( + SfGamma & Sn + ); + const surfaceVectorField SfGammaCorr(SfGamma - SfGammaSn*Sn); + + tmp<fvMatrix<Type>> tfvm = fvmLaplacianUncorrected + ( + SfGammaSn, + this->tsnGradScheme_().deltaCoeffs(vf), + vf + ); + fvMatrix<Type>& fvm = tfvm.ref(); + + tmp<SType> tfaceFluxCorrection = gammaSnGradCorr(SfGammaCorr, vf); + + if (this->tsnGradScheme_().corrected()) + { + tfaceFluxCorrection.ref() += + SfGammaSn*this->tsnGradScheme_().correction(vf); + } + + const word corrName(tfaceFluxCorrection().name()); + + tmp<SType> trelaxedCorrection(new SType(tfaceFluxCorrection())); + + const word oldName(corrName + "_0"); + const scalar relax(vf.mesh().equationRelaxationFactor(oldName)); + + const objectRegistry& obr = vf.db(); + if (obr.foundObject<SType>(oldName)) + { + SType& oldCorrection = obr.lookupObjectRef<SType>(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<class Type, class GType> +tmp<GeometricField<Type, fvPatchField, volMesh>> +relaxedNonOrthoGaussLaplacianScheme<Type, GType>::fvcLaplacian +( + const GeometricField<GType, fvsPatchField, surfaceMesh>& gamma, + const GeometricField<Type, fvPatchField, volMesh>& vf +) +{ + const fvMesh& mesh = this->mesh(); + + const surfaceVectorField Sn(mesh.Sf()/mesh.magSf()); + const surfaceVectorField SfGamma(mesh.Sf() & gamma); + const GeometricField<scalar, fvsPatchField, surfaceMesh> SfGammaSn + ( + SfGamma & Sn + ); + const surfaceVectorField SfGammaCorr(SfGamma - SfGammaSn*Sn); + + tmp<GeometricField<Type, fvPatchField, volMesh>> 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 0000000000000000000000000000000000000000..ff4a7f6c67abcdeaea52f85e7936b22f6d75b87c --- /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 <http://www.gnu.org/licenses/>. + +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(<term>) relaxedNonOrthoGauss <other options>; + } + \endverbatim + + and by using \c system/fvSolution: + \verbatim + relaxationFactors + { + equations + { + <term> <relaxation factor>; + } + } + \endverbatim + +SourceFiles + relaxedNonOrthoGaussLaplacianScheme.C + +\*---------------------------------------------------------------------------*/ + +#ifndef relaxedNonOrthoGaussLaplacianScheme_H +#define relaxedNonOrthoGaussLaplacianScheme_H + +#include "laplacianScheme.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace fv +{ + +/*---------------------------------------------------------------------------*\ + Class relaxedNonOrthoGaussLaplacianScheme Declaration +\*---------------------------------------------------------------------------*/ + +template<class Type, class GType> +class relaxedNonOrthoGaussLaplacianScheme +: + public fv::laplacianScheme<Type, GType> +{ + // Private Member Functions + + tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> gammaSnGradCorr + ( + const surfaceVectorField& SfGammaCorr, + const GeometricField<Type, fvPatchField, volMesh>& + ); + + //- 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<Type, GType>(mesh) + {} + + //- Construct from Istream + relaxedNonOrthoGaussLaplacianScheme(const fvMesh& mesh, Istream& is) + : + laplacianScheme<Type, GType>(mesh, is) + {} + + //- Construct from mesh, interpolation and snGradScheme schemes + relaxedNonOrthoGaussLaplacianScheme + ( + const fvMesh& mesh, + const tmp<surfaceInterpolationScheme<GType>>& igs, + const tmp<snGradScheme<Type>>& sngs + ) + : + laplacianScheme<Type, GType>(mesh, igs, sngs) + {} + + + //- Destructor + virtual ~relaxedNonOrthoGaussLaplacianScheme() = default; + + + // Member Functions + + static tmp<fvMatrix<Type>> fvmLaplacianUncorrected + ( + const surfaceScalarField& gammaMagSf, + const surfaceScalarField& deltaCoeffs, + const GeometricField<Type, fvPatchField, volMesh>& + ); + + tmp<GeometricField<Type, fvPatchField, volMesh>> fvcLaplacian + ( + const GeometricField<Type, fvPatchField, volMesh>& + ); + + tmp<fvMatrix<Type>> fvmLaplacian + ( + const GeometricField<GType, fvsPatchField, surfaceMesh>&, + const GeometricField<Type, fvPatchField, volMesh>& + ); + + tmp<GeometricField<Type, fvPatchField, volMesh>> fvcLaplacian + ( + const GeometricField<GType, fvsPatchField, surfaceMesh>&, + const GeometricField<Type, fvPatchField, volMesh>& + ); +}; + + +// Use macros to emulate partial-specialisation of the Laplacian functions +// for scalar diffusivity gamma + +#define defineFvmLaplacianScalarGamma(Type) \ + \ +template<> \ +tmp<fvMatrix<Type>> \ +relaxedNonOrthoGaussLaplacianScheme<Type, scalar>::fvmLaplacian \ +( \ + const GeometricField<scalar, fvsPatchField, surfaceMesh>&, \ + const GeometricField<Type, fvPatchField, volMesh>& \ +); \ + \ +template<> \ +tmp<GeometricField<Type, fvPatchField, volMesh>> \ +relaxedNonOrthoGaussLaplacianScheme<Type, scalar>::fvcLaplacian \ +( \ + const GeometricField<scalar, fvsPatchField, surfaceMesh>&, \ + const GeometricField<Type, fvPatchField, volMesh>& \ +); + + +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 0000000000000000000000000000000000000000..7aa0027ec98c39be9dd6a7e249fda1636e5644ec --- /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 <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "relaxedNonOrthoGaussLaplacianScheme.H" +#include "fvMesh.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +makeFvLaplacianScheme(relaxedNonOrthoGaussLaplacianScheme) + +#define declareFvmLaplacianScalarGamma(Type) \ + \ +template<> \ +Foam::tmp<Foam::fvMatrix<Foam::Type>> \ +Foam::fv::relaxedNonOrthoGaussLaplacianScheme<Foam::Type, Foam::scalar>:: \ +fvmLaplacian \ +( \ + const GeometricField<scalar, fvsPatchField, surfaceMesh>& gamma, \ + const GeometricField<Type, fvPatchField, volMesh>& vf \ +) \ +{ \ + const fvMesh& mesh = this->mesh(); \ + \ + typedef GeometricField<Type, fvsPatchField, surfaceMesh> SType; \ + \ + GeometricField<scalar, fvsPatchField, surfaceMesh> gammaMagSf \ + ( \ + gamma*mesh.magSf() \ + ); \ + \ + tmp<fvMatrix<Type>> tfvm = fvmLaplacianUncorrected \ + ( \ + gammaMagSf, \ + this->tsnGradScheme_().deltaCoeffs(vf), \ + vf \ + ); \ + fvMatrix<Type>& fvm = tfvm.ref(); \ + \ + if (this->tsnGradScheme_().corrected()) \ + { \ + tmp<SType> tCorr(this->tsnGradScheme_().correction(vf)); \ + const word corrName(tCorr().name()); \ + tmp<SType> tfaceFluxCorrection(gammaMagSf*tCorr); \ + \ + tmp<SType> trelaxedCorrection(new SType(tfaceFluxCorrection())); \ + \ + const word oldName(corrName + "_0"); \ + const scalar relax(vf.mesh().equationRelaxationFactor(corrName)); \ + const objectRegistry& obr = vf.db(); \ + if (obr.foundObject<SType>(oldName)) \ + { \ + SType& oldCorrection = obr.lookupObjectRef<SType>(oldName); \ + trelaxedCorrection.ref() *= relax; \ + trelaxedCorrection.ref() += (1.0-relax)*oldCorrection; \ + \ + oldCorrection = trelaxedCorrection(); \ + } \ + else \ + { \ + SType* s = new SType(oldName, tfaceFluxCorrection); \ + s->store(); \ + } \ + \ + tmp<Field<Type>> 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::GeometricField<Foam::Type, Foam::fvPatchField, Foam::volMesh>> \ +Foam::fv::relaxedNonOrthoGaussLaplacianScheme<Foam::Type, Foam::scalar>::fvcLaplacian \ +( \ + const GeometricField<scalar, fvsPatchField, surfaceMesh>& gamma, \ + const GeometricField<Type, fvPatchField, volMesh>& vf \ +) \ +{ \ + const fvMesh& mesh = this->mesh(); \ + \ + tmp<GeometricField<Type, fvPatchField, volMesh>> 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 81b7cdf0efec4da3e13539f9fd44b08b440b5091..7a7a80366c326535868a7f0ed2836349e52187b6 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 174d11bbb9496c9c75b24b9902924c084b3bb1fa..ab5d7f406334c07ff0be26eed131193a5a1e1400 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<class Type> -Foam::fv::correctedSnGrad<Type>::~correctedSnGrad() -{} - - // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template<class Type> @@ -96,7 +90,7 @@ Foam::fv::correctedSnGrad<Type>::correction GeometricField<Type, fvsPatchField, surfaceMesh>& ssf = tssf.ref(); ssf.setOriented(); - for (direction cmpt = 0; cmpt < pTraits<Type>::nComponents; cmpt++) + for (direction cmpt = 0; cmpt < pTraits<Type>::nComponents; ++cmpt) { ssf.replace ( diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/correctedSnGrad/correctedSnGrad.H b/src/finiteVolume/finiteVolume/snGradSchemes/correctedSnGrad/correctedSnGrad.H index 8f0b7c3abeaab2879104c66101a5d9b65b4326ab..4533778dc8de53cb2dc6f607859893a879d8c481 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(<term>) corrected; + } + \endverbatim SourceFiles correctedSnGrad.C @@ -53,7 +63,7 @@ namespace fv { /*---------------------------------------------------------------------------*\ - Class correctedSnGrad Declaration + Class correctedSnGrad Declaration \*---------------------------------------------------------------------------*/ template<class Type> @@ -81,7 +91,6 @@ public: snGradScheme<Type>(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<GeometricField<Type, fvsPatchField, surfaceMesh>> 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<GeometricField<Type, fvsPatchField, surfaceMesh>> correction(const GeometricField<Type, fvPatchField, volMesh>&) const; }; diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/faceCorrectedSnGrad/faceCorrectedSnGrad.C b/src/finiteVolume/finiteVolume/snGradSchemes/faceCorrectedSnGrad/faceCorrectedSnGrad.C index 913af1e61bfd25bad4a9f0c53dcdfac094dc443e..46982ebda83ab17a9000c7342188b8e02249de90 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<class Type> -Foam::fv::faceCorrectedSnGrad<Type>::~faceCorrectedSnGrad() -{} - - // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template<class Type> @@ -89,18 +83,18 @@ Foam::fv::faceCorrectedSnGrad<Type>::fullGradCorrection const face& fi = faces[facei]; - vector nf(Sf[facei]/magSf[facei]); + const vector nf(Sf[facei]/magSf[facei]); - for (label pi=0; pi<fi.size(); pi++) + for (label pi = 0; pi < fi.size(); ++pi) { // Next point index - label pj = (pi+1)%fi.size(); + const label pj = fi.fcIndex(pi); // Edge normal in plane of face - vector edgen(nf^(points[fi[pj]] - points[fi[pi]])); + const vector edgen(nf^(points[fi[pj]] - points[fi[pi]])); // Edge centre field value - Type pvfe(0.5*(pvf[fi[pj]] + pvf[fi[pi]])); + const Type pvfe(0.5*(pvf[fi[pj]] + pvf[fi[pi]])); // Integrate face gradient fgrad += edgen*pvfe; @@ -113,8 +107,6 @@ Foam::fv::faceCorrectedSnGrad<Type>::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<Type>::correction ); GeometricField<Type, fvsPatchField, surfaceMesh>& ssf = tssf.ref(); - for (direction cmpt = 0; cmpt < pTraits<Type>::nComponents; cmpt++) + for (direction cmpt = 0; cmpt < pTraits<Type>::nComponents; ++cmpt) { ssf.replace ( diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/faceCorrectedSnGrad/faceCorrectedSnGrad.H b/src/finiteVolume/finiteVolume/snGradSchemes/faceCorrectedSnGrad/faceCorrectedSnGrad.H index 13bb2774646526e03dc7df0da2f34ba2a3aa0f6d..f4540ba0c0f2cbdf894bc3828b57a858ec66d3aa 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(<term>) faceCorrected; + } + \endverbatim SourceFiles faceCorrectedSnGrad.C @@ -53,7 +63,7 @@ namespace fv { /*---------------------------------------------------------------------------*\ - Class faceCorrectedSnGrad Declaration + Class faceCorrectedSnGrad Declaration \*---------------------------------------------------------------------------*/ template<class Type> @@ -81,7 +91,6 @@ public: snGradScheme<Type>(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<GeometricField<Type, fvsPatchField, surfaceMesh>> 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<GeometricField<Type, fvsPatchField, surfaceMesh>> correction(const GeometricField<Type, fvPatchField, volMesh>&) const; }; diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/limitedSnGrad/limitedSnGrad.C b/src/finiteVolume/finiteVolume/snGradSchemes/limitedSnGrad/limitedSnGrad.C index babc458a20b0d8c0fd1ba7cb4f6aec34b644c1d6..6f0f95ee35047cb51aff0de8332d4ae629863b0c 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<class Type> -limitedSnGrad<Type>::~limitedSnGrad() -{} - - // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template<class Type> diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/limitedSnGrad/limitedSnGrad.H b/src/finiteVolume/finiteVolume/snGradSchemes/limitedSnGrad/limitedSnGrad.H index b14abfa5cfaecb5980b3b23242603c09ca80f49a..1922fe14d8efb51bf2ac1ab54a2e31a5136e6c91 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. - - Format: - limited \<corrected scheme\> \<coefficient\>; - - or - - limited \<coefficient\>; // Backward compatibility + \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. + +Usage + Minimal example by using \c system/fvSchemes: + \verbatim + snGradSchemes + { + snGrad(<term>) limited <corrected scheme> <coefficient>; + + // Backward compatibility + snGrad(<term>) limited <coefficient>; + } + \endverbatim SourceFiles limitedSnGrad.C @@ -66,7 +73,7 @@ namespace fv { /*---------------------------------------------------------------------------*\ - Class limitedSnGrad Declaration + Class limitedSnGrad Declaration \*---------------------------------------------------------------------------*/ template<class Type> @@ -74,10 +81,12 @@ class limitedSnGrad : public snGradScheme<Type> { - // Private data + // Private Data + //- Type of correction scheme tmp<snGradScheme<Type>> 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<snGradScheme<Type>> 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<GeometricField<Type, fvsPatchField, surfaceMesh>> correction(const GeometricField<Type, fvPatchField, volMesh>&) const; }; diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/limitedSnGrad/limitedSnGrads.C b/src/finiteVolume/finiteVolume/snGradSchemes/limitedSnGrad/limitedSnGrads.C index ef02a344a545a6c1f1f8d4d6f96a72c9596a65eb..5a385681bff583a03fb1b3a9ec86bfc07e047251 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 <http://www.gnu.org/licenses/>. -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 1ea8894bbfb6bbd1fff601188738bb8369f61a2c..64380af3adde7f89228d1650b2a4857f49bdb911 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 <http://www.gnu.org/licenses/>. -Description - Simple central-difference snGrad scheme without non-orthogonal correction. - \*---------------------------------------------------------------------------*/ #include "orthogonalSnGrad.H" @@ -42,13 +40,6 @@ namespace Foam namespace fv { -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -template<class Type> -orthogonalSnGrad<Type>::~orthogonalSnGrad() -{} - - // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template<class Type> diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/orthogonalSnGrad/orthogonalSnGrad.H b/src/finiteVolume/finiteVolume/snGradSchemes/orthogonalSnGrad/orthogonalSnGrad.H index 747870a911d376a28c07625b56025cf86f086a68..c242628b84323e32b803c0b28ef8e286d3a084a8 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(<term>) 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<class Type> @@ -82,7 +96,6 @@ public: snGradScheme<Type>(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<GeometricField<Type, fvsPatchField, surfaceMesh>> correction(const GeometricField<Type, fvPatchField, volMesh>&) const; }; diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/orthogonalSnGrad/orthogonalSnGrads.C b/src/finiteVolume/finiteVolume/snGradSchemes/orthogonalSnGrad/orthogonalSnGrads.C index b52a70ca6b6aa737f77fbf4e99acf4f122f6f07d..9f350c0bf21c3d1bbc3f15603163fce649f814fe 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 <http://www.gnu.org/licenses/>. -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 0000000000000000000000000000000000000000..0b018126770a811d634eab17d209b5e9491627e5 --- /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 <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#include "fv.H" +#include "relaxedSnGrad.H" +#include "volFields.H" +#include "surfaceFields.H" + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +template<class Type> +Foam::tmp<Foam::GeometricField<Type, Foam::fvsPatchField, Foam::surfaceMesh>> +Foam::fv::relaxedSnGrad<Type>::correction +( + const GeometricField<Type, fvPatchField, volMesh>& vf +) const +{ + typedef GeometricField<Type, fvsPatchField, surfaceMesh> SurfFieldType; + + // Calculate explicit correction field + tmp<SurfFieldType> 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<SurfFieldType>(oldFieldName)) + { + SurfFieldType* oldCorrection = + new SurfFieldType(oldFieldName, tcorrection()); + oldCorrection->store(); + } + + // Return under/over-relaxed explicit correction field + tmp<SurfFieldType> trelaxedCorrection(new SurfFieldType(tcorrection())); + + SurfFieldType& oldCorrection = + obr.lookupObjectRef<SurfFieldType>(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 0000000000000000000000000000000000000000..f01afd528e81ff9424240852bea73fe3b13ee7b1 --- /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 <http://www.gnu.org/licenses/>. + +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(<term>) relaxed; + } + \endverbatim + + and by using \c system/fvSolution: + \verbatim + relaxationFactors + { + fields + { + snGrad(<term>) <relaxation factor>; + } + } + \endverbatim + + +SourceFiles + relaxedSnGrad.C + +\*---------------------------------------------------------------------------*/ + +#ifndef relaxedSnGrad_H +#define relaxedSnGrad_H + +#include "correctedSnGrad.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace fv +{ + +/*---------------------------------------------------------------------------*\ + Class relaxedSnGrad Declaration +\*---------------------------------------------------------------------------*/ + +template<class Type> +class relaxedSnGrad +: + public snGradScheme<Type> +{ + // Private Data + + //- Type of correction scheme + tmp<snGradScheme<Type>> 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<Type>(mesh), + correctedScheme_(new correctedSnGrad<Type>(this->mesh())) + {} + + //- Construct from mesh and data stream + relaxedSnGrad(const fvMesh& mesh, Istream& schemeData) + : + snGradScheme<Type>(mesh), + correctedScheme_(new correctedSnGrad<Type>(this->mesh())) + {} + + + //- Destructor + virtual ~relaxedSnGrad() = default; + + + // Member Functions + + //- Return the interpolation weighting factors for the given field + virtual tmp<surfaceScalarField> deltaCoeffs + ( + const GeometricField<Type, fvPatchField, volMesh>& + ) 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<GeometricField<Type, fvsPatchField, surfaceMesh>> + correction(const GeometricField<Type, fvPatchField, volMesh>&) 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 0000000000000000000000000000000000000000..d863791dc5c6430f14376aafec7b9ba426793160 --- /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 <http://www.gnu.org/licenses/>. + +\*---------------------------------------------------------------------------*/ + +#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 7138197f6940f58028e8363d14e24951b61350ba..5faffa76f5db6248e4ec046905dc205ada92aa57 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<Type>::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 1ab2e696a9de2015b896eca46f8b65263f208763..5e2919c25056b3ccc3559d65dbf5dd4e85514413 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(<term>) skewCorrected; + } + \endverbatim SourceFiles skewCorrectedSnGrad.C @@ -81,7 +92,6 @@ public: snGradScheme<Type>(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 0dc584dcfb1ba357e0f9c4f1fc2bc2cbdfdb5989..e507d053c88c56bab7045da169f3183a9ee07e67 100644 --- a/src/finiteVolume/finiteVolume/snGradSchemes/snGradScheme/snGradScheme.C +++ b/src/finiteVolume/finiteVolume/snGradSchemes/snGradScheme/snGradScheme.C @@ -60,8 +60,8 @@ tmp<snGradScheme<Type>> snGradScheme<Type>::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 324fd03a6998f92a0306002c73c05e924d9aeb14..d19a63bf3fe0d63460e3ab3a2ef36c9aa84e974a 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<class Type> @@ -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<GeometricField<Type, fvsPatchField, surfaceMesh>> 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<GeometricField<Type, fvsPatchField, surfaceMesh>> correction(const GeometricField<Type, fvPatchField, volMesh>&) const { @@ -173,12 +184,12 @@ public: } //- Return the snGrad of the given cell field - // with explicit correction + //- with explicit correction virtual tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> snGrad(const GeometricField<Type, fvPatchField, volMesh>&) const; //- Return the snGrad of the given tmp cell field - // with explicit correction + //- with explicit correction tmp<GeometricField<Type, fvsPatchField, surfaceMesh>> snGrad ( diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/snGradScheme/snGradSchemes.C b/src/finiteVolume/finiteVolume/snGradSchemes/snGradScheme/snGradSchemes.C index 1f5c316d22a00b5728f5e7196d6c2866d3ae629f..d03fe44c7af357ceecaf648d77cfd253e67b7ce2 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 <http://www.gnu.org/licenses/>. -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 e8af0a09fe14b45c72186ce3eb8bfe3ebe04039c..793e16a563dc757af067f007162bac859e4a8865 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 <http://www.gnu.org/licenses/>. -Description - Simple central-difference snGrad scheme without non-orthogonal correction. - \*---------------------------------------------------------------------------*/ #include "uncorrectedSnGrad.H" @@ -42,13 +40,6 @@ namespace Foam namespace fv { -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -template<class Type> -uncorrectedSnGrad<Type>::~uncorrectedSnGrad() -{} - - // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template<class Type> diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/uncorrectedSnGrad/uncorrectedSnGrad.H b/src/finiteVolume/finiteVolume/snGradSchemes/uncorrectedSnGrad/uncorrectedSnGrad.H index 72d9c8748154bbc9542541dd66abbe06fda101b4..afdd1d8b9448c660a815932d1ca89ff2f9c76430 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(<term>) 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<class Type> @@ -82,7 +96,6 @@ public: snGradScheme<Type>(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<GeometricField<Type, fvsPatchField, surfaceMesh>> correction(const GeometricField<Type, fvPatchField, volMesh>&) const; }; diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/uncorrectedSnGrad/uncorrectedSnGrads.C b/src/finiteVolume/finiteVolume/snGradSchemes/uncorrectedSnGrad/uncorrectedSnGrads.C index c8fc0c122f818aa03a8d81898d3fd2fb283c1cbf..284a991eac612d738d762bd8410e076e74aa82e4 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 <http://www.gnu.org/licenses/>. -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 0000000000000000000000000000000000000000..e570da4052cc732e47b23b1939d255cd7b8f4011 --- /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 0000000000000000000000000000000000000000..51d093ba4a56263d76474f37c04285e8da43b862 --- /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 0000000000000000000000000000000000000000..153118703bf5f0f3d7342155bdf4f04c77981dbf --- /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<<PLT_RES + set terminal pngcairo font "helvetica,20" size 1000, 1000 + set grid + set logscale y + set key right top + set key samplen 2 + set key spacing 0.75 + set xlabel "Iters" + set ylabel "Initial-iteration residuals" + set offset .2, .05 + set output "$image" + set title "Max non-orthogonality degree: $setup" + + file_exists(file) = system("[ -f '".file."' ] && echo '1' || echo '0'") + 0 + + Ux="$samples/Ux_0" + p="$samples/p_0" + k="$samples/k_0" + omega="$samples/omega_0" + nuTilda="$samples/nuTilda_0" + gammaInt="$samples/gammaInt_0" + ReThetat="$samples/ReThetat_0" + + if ( file_exists(k) ) { + if ( ! file_exists(gammaInt) ) { + plot \ + Ux u 1:2 t "Ux" w l lw 2 lc rgb "#009E73", \ + p u 1:2 t "p" w l lw 2 lc rgb "#F0E440", \ + k u 1:2 t "k" w l lw 2 lc rgb "#0072B2", \ + omega u 1:2 t "omega" w l lw 2 lc rgb "#D55E00" + } else { + plot \ + Ux u 1:2 t "Ux" w l lw 2 lc rgb "#009E73", \ + p u 1:2 t "p" w l lw 2 lc rgb "#F0E440", \ + k u 1:2 t "k" w l lw 2 lc rgb "#0072B2", \ + omega u 1:2 t "omega" w l lw 2 lc rgb "#D55E00", \ + gammaInt u 1:2 t "gammaInt" w l lw 2 lc rgb "#CC79A7", \ + ReThetat u 1:2 t "ReThetat" w l lw 2 lc rgb "#440154" + } + } else { + plot \ + Ux u 1:2 t "Ux" w l lw 2 lc rgb "#009E73", \ + p u 1:2 t "p" w l lw 2 lc rgb "#F0E440", \ + nuTilda u 1:2 t "nuTilda" w l lw 2 lc rgb "#0072B2" + } +PLT_RES +} + + +plot_final_iteration_residuals() { + + setup="$1" + + echo " Plotting the final-iteration residuals for $setup" + + # benchmarkFile="..." + samples="results/$setup/logs" + image="plots/$setup/final-iteration-residuals.png" + + gnuplot<<PLT_RES + set terminal pngcairo font "helvetica,20" size 1000, 1000 + set grid + set logscale y + set key right top + set key samplen 2 + set key spacing 0.75 + set xlabel "Iters" + set ylabel "Final-iteration residuals" + set offset .2, .05 + set output "$image" + set title "Max non-orthogonality degree: $setup" + + file_exists(file) = system("[ -f '".file."' ] && echo '1' || echo '0'") + 0 + + Ux="$samples/UxFinalRes_0" + p="$samples/pFinalRes_0" + k="$samples/kFinalRes_0" + omega="$samples/omegaFinalRes_0" + nuTilda="$samples/nuTildaFinalRes_0" + gammaInt="$samples/gammaIntFinalRes_0" + ReThetat="$samples/ReThetatFinalRes_0" + + if ( file_exists(k) ) { + if ( ! file_exists(gammaInt) ) { + plot \ + Ux u 1:2 t "Ux" w l lw 2 lc rgb "#009E73", \ + p u 1:2 t "p" w l lw 2 lc rgb "#F0E440", \ + k u 1:2 t "k" w l lw 2 lc rgb "#0072B2", \ + omega u 1:2 t "omega" w l lw 2 lc rgb "#D55E00" + } else { + plot \ + Ux u 1:2 t "Ux" w l lw 2 lc rgb "#009E73", \ + p u 1:2 t "p" w l lw 2 lc rgb "#F0E440", \ + k u 1:2 t "k" w l lw 2 lc rgb "#0072B2", \ + omega u 1:2 t "omega" w l lw 2 lc rgb "#D55E00", \ + gammaInt u 1:2 t "gammaInt" w l lw 2 lc rgb "#CC79A7", \ + ReThetat u 1:2 t "ReThetat" w l lw 2 lc rgb "#440154" + } + } else { + plot \ + Ux u 1:2 t "Ux" w l lw 2 lc rgb "#009E73", \ + p u 1:2 t "p" w l lw 2 lc rgb "#F0E440", \ + nuTilda u 1:2 t "nuTilda" w l lw 2 lc rgb "#0072B2" + } +PLT_RES +} + + +plot_yPlus_vs_uPlus() { + + setup="$1" + endTime="$2" + nu="$3" + uTau="$4" + + # benchmarkFile="$FOAM_TUTORIALS/resources/dataset/planeChannelFlow/ReTau-395/chan395.means" + sampleFile="results/$setup/postProcessing/sample/$endTime/y_U.xy" + image="plots/$setup/yPlus_vs_uPlus.png" + + gnuplot<<PLT_Y_VS_U + set terminal pngcairo font "helvetica,20" size 1000, 1000 + set grid + set xrange [0:200] + set yrange [0:20] + set logscale x + set key left top reverse + set key samplen 2 + set key spacing 0.75 + set xlabel "y^+" + set ylabel "u^+" + set output "$image" + set title "Setup: $setup" noenhanced + + # Benchmark - Experimental + # benchmark="$benchmarkFile" + + # OpenFOAM - Numerical + samples="$sampleFile" + + + plot \ + samples u (\$1*$uTau/$nu):(\$2/$uTau) t "OpenFOAM" w l lw 2 lc rgb "#4169e1" + # benchmark u 2:3 t "DNS" w p ps 2 pt 7 lc rgb "#ffc020" +PLT_Y_VS_U +} + + +plot_yPlus_vs_R() { + + setup="$1" + endTime="$2" + nu="$3" + uTau="$4" + + # benchmarkFile="$FOAM_TUTORIALS/resources/dataset/planeChannelFlow/ReTau-395/chan395.reystress" + sampleFile="results/$setup/postProcessing/sample/$endTime/y_turbulenceProperties:R.xy" + sampleFileK="results/$setup/postProcessing/sample/$endTime/y_turbulenceProperties:k.xy" + imageUU="plots/$setup/yPlus_vs_Ruu.png" + imageVV="plots/$setup/yPlus_vs_Rvv.png" + imageWW="plots/$setup/yPlus_vs_Rww.png" + imageUV="plots/$setup/yPlus_vs_Ruv.png" + imageK0="plots/$setup/yPlus_vs_kPlus0.png" + imageK1="plots/$setup/yPlus_vs_kPlus1.png" + + gnuplot<<PLT_Y_VS_R + set terminal pngcairo font "helvetica,20" size 1000, 1000 + set grid + #set xrange [0:200] + #set yrange [0:1] + set logscale x + set key left top reverse + set key samplen 2 + set key spacing 0.75 + set xlabel "y^+" + set ylabel "(uu)^+" + set output "$imageUU" + set title "Setup: $setup" noenhanced + + # Benchmark - Experimental + # benchmark="$benchmarkFile" + + # OpenFOAM - Numerical + samples="$sampleFile" + samplesK="$sampleFileK" + + + plot \ + samples u (\$1*$uTau/$nu):(\$2/$uTau**2) t "OpenFOAM" w l lw 2 lc rgb "#4169e1" + # benchmark u 2:3 t "DNS" w p ps 2 pt 7 lc rgb "#ffc020" + + set output "$imageVV" + set ylabel "(vv)^+" + plot \ + samples u (\$1*$uTau/$nu):(\$5/$uTau**2) t "OpenFOAM" w l lw 2 lc rgb "#4169e1" + # benchmark u 2:4 t "DNS" w p ps 2 pt 7 lc rgb "#ffc020" + + set output "$imageWW" + set ylabel "(ww)^+" + plot \ + samples u (\$1*$uTau/$nu):(\$7/$uTau**2) t "OpenFOAM" w l lw 2 lc rgb "#4169e1" + # benchmark u 2:5 t "DNS" w p ps 2 pt 7 lc rgb "#ffc020" + + set output "$imageUV" + set ylabel "(uv)^+" + plot \ + samples u (\$1*$uTau/$nu):(-\$3/$uTau**2) t "OpenFOAM" w l lw 2 lc rgb "#4169e1" + # benchmark u 2:(\$6*-1) t "DNS" w p ps 2 pt 7 lc rgb "#ffc020" + + set output "$imageK0" + set ylabel "k^+" + plot \ + samples u (\$1*$uTau/$nu):(0.5*(\$2 + \$5 + \$7)/$uTau**2) t "OpenFOAM" w l lw 2 lc rgb "#4169e1" + # benchmark u 2:(0.5*(\$3 + \$4 + \$5)) t "DNS" w p ps 2 pt 7 lc rgb "#ffc020" + + set output "$imageK1" + set ylabel "k^+" + plot \ + samplesK u (\$1*$uTau/$nu):(\$2/$uTau**2) t "OpenFOAM" w l lw 2 lc rgb "#4169e1" + # benchmark u 2:(0.5*(\$3 + \$4 + \$5)) t "DNS" w p ps 2 pt 7 lc rgb "#ffc020" +PLT_Y_VS_R +} + + +plot_yPlus_vs_epsilonPlus() { + + setup="$1" + endTime="$2" + nu="$3" + uTau="$4" + + # benchmarkFile="$FOAM_TUTORIALS/resources/dataset/planeChannelFlow/ReTau-395/chan395.kbal" + sampleFile="results/$setup/postProcessing/sampleEpsilon/$endTime/y_turbulenceProperties:epsilon.xy" + image="plots/$setup/yPlus_vs_epsilonPlus.png" + + gnuplot<<PLT_Y_VS_EPSILON + set terminal pngcairo font "helvetica,20" size 1000, 1000 + set grid + #set xrange [0:200] + #set yrange [0:20] + set logscale x + set key left top reverse + set key samplen 2 + set key spacing 0.75 + set xlabel "y^+" + set ylabel "{/Symbol e}^+" + set output "$image" + set title "Setup: $setup" noenhanced + + # Benchmark - Experimental + # benchmark="$benchmarkFile" + + # OpenFOAM - Numerical + samples="$sampleFile" + + plot \ + samples u (\$1*$uTau/$nu):(\$2*$nu/$uTau**4) t "OpenFOAM" w l lw 2 lc rgb "#4169e1" + # benchmark u 2:(-\$3) t "DNS" w p ps 2 pt 7 lc rgb "#ffc020" +PLT_Y_VS_EPSILON +} + + +plot_yPlus_vs_productionRatePlus() { + + setup="$1" + endTime="$2" + nu="$3" + uTau="$4" + + # benchmarkFile="$FOAM_TUTORIALS/resources/dataset/planeChannelFlow/ReTau-395/chan395.kbal" + sampleFile="results/$setup/postProcessing/sampleG/$endTime/y_productionRate.xy" + image="plots/$setup/yPlus_vs_productionRatePlus.png" + + gnuplot<<PLT_Y_VS_PRODUCTION_RATE + set terminal pngcairo font "helvetica,20" size 1000, 1000 + set grid + #set xrange [0:200] + #set yrange [0:20] + set logscale x + set key left top reverse + set key samplen 2 + set key spacing 0.75 + set xlabel "y^+" + set ylabel "P^+" + set output "$image" + set title "Setup: $setup" noenhanced + + # Benchmark - Experimental + # benchmark="$benchmarkFile" + + # OpenFOAM - Numerical + samples="$sampleFile" + + plot \ + samples u (\$1*$uTau/$nu):(\$2*$nu/$uTau**4) t "OpenFOAM" w l lw 2 lc rgb "#4169e1" + # benchmark u 2:4 t "DNS" w p ps 2 pt 7 lc rgb "#ffc020" +PLT_Y_VS_PRODUCTION_RATE +} + + +plot_yPlus_vs_uPlus_all_setups() { + + setups=$@ + + # benchmarkFile="$FOAM_TUTORIALS/resources/dataset/planeChannelFlow/ReTau-395/chan395.means" + + n=0 + for setup in $setups + do + # 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) }') + + sampleFiles[$n]="results/$setup/postProcessing/sample/$endTime/y_U.xy" + nus[$n]="$nu" + uTaus[$n]="$uTau" + n=$(($n+1)) + done + + image="plots/all_setups_yPlus_vs_uPlus.png" + + gnuplot<<PLT_Y_VS_U_ALL_SETUPS + set terminal pngcairo font "helvetica,20" size 1000, 1000 + set grid + set xrange [0:200] + set yrange [0:20] + set logscale x + set key left top reverse + set key samplen 2 + set key spacing 0.75 + set xlabel "y^+" + set ylabel "u^+" + set output "$image" + set title "Ground-normal profile" noenhanced + + # Benchmark - Experimental + # benchmark="$benchmarkFile" + + # OpenFOAM - Numerical + models="${setups[*]}" + samples="${sampleFiles[*]}" + nus="${nus[*]}" + uTaus="${uTaus[*]}" + + plot \ + for [i=1:words(samples)] word(samples, i) \ + u (\$1*word(uTaus, i)/word(nus, i)):(\$2/word(uTaus, i)) \ + t word(models, i) w l lw 2 + # benchmark u 2:3 t "DNS" w p ps 2 pt 7 lc rgb "#ffc020" +PLT_Y_VS_U_ALL_SETUPS +} + + +plot_yPlus_vs_R_all_setups() { + + setups=$@ + + # benchmarkFile="$FOAM_TUTORIALS/resources/dataset/planeChannelFlow/ReTau-395/chan395.reystress" + + n=0 + for setup in $setups + do + # 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) }') + + sampleFiles[$n]="results/$setup/postProcessing/sample/$endTime/y_turbulenceProperties:R.xy" + sampleFilesK[$n]="results/$setup/postProcessing/sample/$endTime/y_turbulenceProperties:k.xy" + nus[$n]="$nu" + uTaus[$n]="$uTau" + n=$(($n+1)) + done + + imageUU="plots/all_setups_yPlus_vs_Ruu.png" + imageVV="plots/all_setups_yPlus_vs_Rvv.png" + imageWW="plots/all_setups_yPlus_vs_Rww.png" + imageUV="plots/all_setups_yPlus_vs_Ruv.png" + imageK0="plots/all_setups_yPlus_vs_kPlus0.png" + imageK1="plots/all_setups_yPlus_vs_kPlus1.png" + + gnuplot<<PLT_Y_VS_R + set terminal pngcairo font "helvetica,20" size 1000, 1000 + set grid + #set xrange [0:200] + #set yrange [0:1] + set logscale x + set key left top reverse + set key samplen 2 + set key spacing 0.75 + set xlabel "y^+" + set ylabel "(uu)^+" + set output "$imageUU" + set title "Ground-normal profile" noenhanced + + # Benchmark - Experimental + # benchmark="$benchmarkFile" + + # OpenFOAM - Numerical + models="${setups[*]}" + samples="${sampleFiles[*]}" + samplesK="${sampleFilesK[*]}" + nus="${nus[*]}" + uTaus="${uTaus[*]}" + + plot \ + for [i=1:words(samples)] word(samples, i) \ + u (\$1*word(uTaus, i)/word(nus, i)):(\$2/word(uTaus, i)**2) \ + t word(models, i) w l lw 2 + # benchmark u 2:3 t "DNS" w p ps 2 pt 7 lc rgb "#ffc020" + + set output "$imageVV" + set ylabel "(vv)^+" + plot \ + for [i=1:words(samples)] word(samples, i) \ + u (\$1*word(uTaus, i)/word(nus, i)):(\$5/word(uTaus, i)**2) \ + t word(models, i) w l lw 2 + # benchmark u 2:4 t "DNS" w p ps 2 pt 7 lc rgb "#ffc020" + + set output "$imageWW" + set ylabel "(ww)^+" + plot \ + for [i=1:words(samples)] word(samples, i) \ + u (\$1*word(uTaus, i)/word(nus, i)):(\$7/word(uTaus, i)**2) \ + t word(models, i) w l lw 2 + # benchmark u 2:5 t "DNS" w p ps 2 pt 7 lc rgb "#ffc020" + + set output "$imageUV" + set ylabel "(uv)^+" + plot \ + for [i=1:words(samples)] word(samples, i) \ + u (\$1*word(uTaus, i)/word(nus, i)):(-\$3/word(uTaus, i)**2) \ + t word(models, i) w l lw 2 + # benchmark u 2:(\$6*-1) t "DNS" w p ps 2 pt 7 lc rgb "#ffc020" + + set output "$imageK0" + set ylabel "k^+" + plot \ + for [i=1:words(samples)] word(samples, i) \ + u (\$1*word(uTaus, i)/word(nus, i)):(0.5*(\$2 + \$5 + \$7)/word(uTaus, i)**2) \ + t word(models, i) w l lw 2 + # benchmark u 2:(0.5*(\$3 + \$4 + \$5)) t "DNS" w p ps 2 pt 7 lc rgb "#ffc020" + + set output "$imageK1" + set ylabel "k^+" + plot \ + for [i=1:words(samplesK)] word(samplesK, i) \ + u (\$1*word(uTaus, i)/word(nus, i)):(\$2/word(uTaus, i)**2) \ + t word(models, i) w l lw 2 + # benchmark u 2:(0.5*(\$3 + \$4 + \$5)) t "DNS" w p ps 2 pt 7 lc rgb "#ffc020" +PLT_Y_VS_R +} + + +plot_yPlus_vs_epsilonPlus_all_setups() { + + setups=$@ + + # benchmarkFile="$FOAM_TUTORIALS/resources/dataset/planeChannelFlow/ReTau-395/chan395.kbal" + + n=0 + for setup in $setups + do + # 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) }') + + sampleFiles[$n]="results/$setup/postProcessing/sampleEpsilon/$endTime/y_turbulenceProperties:epsilon.xy" + nus[$n]="$nu" + uTaus[$n]="$uTau" + n=$(($n+1)) + done + + image="plots/all_setups_yPlus_vs_epsilonPlus.png" + + gnuplot<<PLT_Y_VS_EPSILON_ALL_SETUPS + set terminal pngcairo font "helvetica,20" size 1000, 1000 + set grid + #set xrange [0:200] + #set yrange [0:20] + set logscale x + set key left top reverse + set key samplen 2 + set key spacing 0.75 + set xlabel "y^+" + set ylabel "{/Symbol e}^+" + set output "$image" + set title "Setup: $setup" noenhanced + + # Benchmark - Experimental + # benchmark="$benchmarkFile" + + # OpenFOAM - Numerical + models="${setups[*]}" + samples="${sampleFiles[*]}" + nus="${nus[*]}" + uTaus="${uTaus[*]}" + + plot \ + for [i=1:words(samples)] word(samples, i) \ + u (\$1*word(uTaus, i)/word(nus, i)):(\$2*word(nus, i)/word(uTaus, i)**4) \ + t word(models, i) w l lw 2 + # benchmark u 2:(-\$3) t "DNS" w p ps 2 pt 7 lc rgb "#ffc020" +PLT_Y_VS_EPSILON_ALL_SETUPS +} + + +plot_yPlus_vs_productionRatePlus_all_setups() { + + setups=$@ + + # benchmarkFile="$FOAM_TUTORIALS/resources/dataset/planeChannelFlow/ReTau-395/chan395.kbal" + + n=0 + for setup in $setups + do + # 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) }') + + sampleFiles[$n]="results/$setup/postProcessing/sampleG/$endTime/y_productionRate.xy" + nus[$n]="$nu" + uTaus[$n]="$uTau" + n=$(($n+1)) + done + + image="plots/all_setups_yPlus_vs_productionRatePlus.png" + + gnuplot<<PLT_Y_VS_PRODUCTION_RATE_ALL_SETUPS + set terminal pngcairo font "helvetica,20" size 1000, 1000 + set grid + #set xrange [0:200] + #set yrange [0:20] + set logscale x + set key left top reverse + set key samplen 2 + set key spacing 0.75 + set xlabel "y^+" + set ylabel "P^+" + set output "$image" + set title "Ground-normal profile" noenhanced + + # Benchmark - Experimental + # benchmark="$benchmarkFile" + + # OpenFOAM - Numerical + models="${setups[*]}" + samples="${sampleFiles[*]}" + nus="${nus[*]}" + uTaus="${uTaus[*]}" + + plot \ + for [i=1:words(samples)] word(samples, i) \ + u (\$1*word(uTaus, i)/word(nus, i)):(\$2*word(nus, i)/word(uTaus, i)**4) \ + t word(models, i) w l lw 2 + # benchmark u 2:4 t "DNS" w p ps 2 pt 7 lc rgb "#ffc020" +PLT_Y_VS_PRODUCTION_RATE_ALL_SETUPS +} + + +#------------------------------------------------------------------------------ + +# Requires gnuplot +command -v 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 0000000000000000000000000000000000000000..f9966c1c82445726c8b1406d9ce800ba065a718e --- /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 0000000000000000000000000000000000000000..f62979488680995c237f9e4e76821042a1165ced --- /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 0000000000000000000000000000000000000000..4cd9e46311d7bfd4ff04fa612fd0e50ff80d0a46 --- /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 0000000000000000000000000000000000000000..e38bfb1f6b29ad74081447310151d1d7cb723d8c --- /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 0000000000000000000000000000000000000000..9276e7939a3791b19a21ab0f390795f8b35de238 --- /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 0000000000000000000000000000000000000000..274d17e172845cf7de4dddb3e6ed0a5464d437af --- /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 0000000000000000000000000000000000000000..504f0b1c9e2057fe941ed5718c4be80647f41b98 --- /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 0000000000000000000000000000000000000000..dd0303886fa4a0319e10028dcb3176973f68d715 --- /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 0000000000000000000000000000000000000000..c26b1f97d5ce7694fc6042850049abdc2a34e6b0 --- /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 0000000000000000000000000000000000000000..6d73a78c8452a998721af474cf47708d84a66690 --- /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 0000000000000000000000000000000000000000..f9966c1c82445726c8b1406d9ce800ba065a718e --- /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 0000000000000000000000000000000000000000..f62979488680995c237f9e4e76821042a1165ced --- /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 0000000000000000000000000000000000000000..627d7a9ee3199d62a02cedc777c7ff77afb741a7 --- /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 0000000000000000000000000000000000000000..e38bfb1f6b29ad74081447310151d1d7cb723d8c --- /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 0000000000000000000000000000000000000000..9276e7939a3791b19a21ab0f390795f8b35de238 --- /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 0000000000000000000000000000000000000000..274d17e172845cf7de4dddb3e6ed0a5464d437af --- /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 0000000000000000000000000000000000000000..504f0b1c9e2057fe941ed5718c4be80647f41b98 --- /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 0000000000000000000000000000000000000000..dd0303886fa4a0319e10028dcb3176973f68d715 --- /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 0000000000000000000000000000000000000000..c26b1f97d5ce7694fc6042850049abdc2a34e6b0 --- /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 0000000000000000000000000000000000000000..6d73a78c8452a998721af474cf47708d84a66690 --- /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 0000000000000000000000000000000000000000..f9966c1c82445726c8b1406d9ce800ba065a718e --- /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 0000000000000000000000000000000000000000..f62979488680995c237f9e4e76821042a1165ced --- /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 0000000000000000000000000000000000000000..73e162e2b63c5ef26358710a1f30bed20c46f498 --- /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 0000000000000000000000000000000000000000..e38bfb1f6b29ad74081447310151d1d7cb723d8c --- /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 0000000000000000000000000000000000000000..9276e7939a3791b19a21ab0f390795f8b35de238 --- /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 0000000000000000000000000000000000000000..274d17e172845cf7de4dddb3e6ed0a5464d437af --- /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 0000000000000000000000000000000000000000..504f0b1c9e2057fe941ed5718c4be80647f41b98 --- /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 0000000000000000000000000000000000000000..dd0303886fa4a0319e10028dcb3176973f68d715 --- /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 0000000000000000000000000000000000000000..c26b1f97d5ce7694fc6042850049abdc2a34e6b0 --- /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 0000000000000000000000000000000000000000..6d73a78c8452a998721af474cf47708d84a66690 --- /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 0000000000000000000000000000000000000000..f9966c1c82445726c8b1406d9ce800ba065a718e --- /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 0000000000000000000000000000000000000000..f62979488680995c237f9e4e76821042a1165ced --- /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 0000000000000000000000000000000000000000..f4dc91136896ede1c474d859b5ac2a312a6ad78b --- /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 0000000000000000000000000000000000000000..e38bfb1f6b29ad74081447310151d1d7cb723d8c --- /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 0000000000000000000000000000000000000000..9276e7939a3791b19a21ab0f390795f8b35de238 --- /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 0000000000000000000000000000000000000000..274d17e172845cf7de4dddb3e6ed0a5464d437af --- /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 0000000000000000000000000000000000000000..504f0b1c9e2057fe941ed5718c4be80647f41b98 --- /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 0000000000000000000000000000000000000000..dd0303886fa4a0319e10028dcb3176973f68d715 --- /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 0000000000000000000000000000000000000000..c26b1f97d5ce7694fc6042850049abdc2a34e6b0 --- /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 0000000000000000000000000000000000000000..6d73a78c8452a998721af474cf47708d84a66690 --- /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 0000000000000000000000000000000000000000..f9966c1c82445726c8b1406d9ce800ba065a718e --- /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 0000000000000000000000000000000000000000..f62979488680995c237f9e4e76821042a1165ced --- /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 0000000000000000000000000000000000000000..59bbc543cc192db19c50a855888fa2670d1c571f --- /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 0000000000000000000000000000000000000000..e38bfb1f6b29ad74081447310151d1d7cb723d8c --- /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 0000000000000000000000000000000000000000..9276e7939a3791b19a21ab0f390795f8b35de238 --- /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 0000000000000000000000000000000000000000..274d17e172845cf7de4dddb3e6ed0a5464d437af --- /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 0000000000000000000000000000000000000000..504f0b1c9e2057fe941ed5718c4be80647f41b98 --- /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 0000000000000000000000000000000000000000..dd0303886fa4a0319e10028dcb3176973f68d715 --- /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 0000000000000000000000000000000000000000..c26b1f97d5ce7694fc6042850049abdc2a34e6b0 --- /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 0000000000000000000000000000000000000000..6d73a78c8452a998721af474cf47708d84a66690 --- /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 0000000000000000000000000000000000000000..f9966c1c82445726c8b1406d9ce800ba065a718e --- /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 0000000000000000000000000000000000000000..f62979488680995c237f9e4e76821042a1165ced --- /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 0000000000000000000000000000000000000000..b8ed3c6cf4833cc7c729c8e30908dd47607243d5 --- /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 0000000000000000000000000000000000000000..e38bfb1f6b29ad74081447310151d1d7cb723d8c --- /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 0000000000000000000000000000000000000000..9276e7939a3791b19a21ab0f390795f8b35de238 --- /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 0000000000000000000000000000000000000000..274d17e172845cf7de4dddb3e6ed0a5464d437af --- /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 0000000000000000000000000000000000000000..504f0b1c9e2057fe941ed5718c4be80647f41b98 --- /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 0000000000000000000000000000000000000000..dd0303886fa4a0319e10028dcb3176973f68d715 --- /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 0000000000000000000000000000000000000000..c26b1f97d5ce7694fc6042850049abdc2a34e6b0 --- /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 0000000000000000000000000000000000000000..6d73a78c8452a998721af474cf47708d84a66690 --- /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 0000000000000000000000000000000000000000..f9966c1c82445726c8b1406d9ce800ba065a718e --- /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 0000000000000000000000000000000000000000..f62979488680995c237f9e4e76821042a1165ced --- /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 0000000000000000000000000000000000000000..084c8fb332a555f39653ef50ebfe5e6b2185f8cb --- /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 0000000000000000000000000000000000000000..e38bfb1f6b29ad74081447310151d1d7cb723d8c --- /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 0000000000000000000000000000000000000000..9276e7939a3791b19a21ab0f390795f8b35de238 --- /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 0000000000000000000000000000000000000000..274d17e172845cf7de4dddb3e6ed0a5464d437af --- /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 0000000000000000000000000000000000000000..504f0b1c9e2057fe941ed5718c4be80647f41b98 --- /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 0000000000000000000000000000000000000000..dd0303886fa4a0319e10028dcb3176973f68d715 --- /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 0000000000000000000000000000000000000000..c26b1f97d5ce7694fc6042850049abdc2a34e6b0 --- /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 0000000000000000000000000000000000000000..6d73a78c8452a998721af474cf47708d84a66690 --- /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 0000000000000000000000000000000000000000..f9966c1c82445726c8b1406d9ce800ba065a718e --- /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 0000000000000000000000000000000000000000..f62979488680995c237f9e4e76821042a1165ced --- /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 0000000000000000000000000000000000000000..6e484519c18d21789a620dc2e3a053abf4f54904 --- /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 0000000000000000000000000000000000000000..e38bfb1f6b29ad74081447310151d1d7cb723d8c --- /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 0000000000000000000000000000000000000000..9276e7939a3791b19a21ab0f390795f8b35de238 --- /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 0000000000000000000000000000000000000000..274d17e172845cf7de4dddb3e6ed0a5464d437af --- /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 0000000000000000000000000000000000000000..504f0b1c9e2057fe941ed5718c4be80647f41b98 --- /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 0000000000000000000000000000000000000000..dd0303886fa4a0319e10028dcb3176973f68d715 --- /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 0000000000000000000000000000000000000000..c26b1f97d5ce7694fc6042850049abdc2a34e6b0 --- /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 0000000000000000000000000000000000000000..6d73a78c8452a998721af474cf47708d84a66690 --- /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 0000000000000000000000000000000000000000..f9966c1c82445726c8b1406d9ce800ba065a718e --- /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 0000000000000000000000000000000000000000..f62979488680995c237f9e4e76821042a1165ced --- /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 0000000000000000000000000000000000000000..c2e7c0f44e10056153b25862f5ebc8feeba6499a --- /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 0000000000000000000000000000000000000000..e38bfb1f6b29ad74081447310151d1d7cb723d8c --- /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 0000000000000000000000000000000000000000..9276e7939a3791b19a21ab0f390795f8b35de238 --- /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 0000000000000000000000000000000000000000..274d17e172845cf7de4dddb3e6ed0a5464d437af --- /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 0000000000000000000000000000000000000000..504f0b1c9e2057fe941ed5718c4be80647f41b98 --- /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 0000000000000000000000000000000000000000..dd0303886fa4a0319e10028dcb3176973f68d715 --- /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 0000000000000000000000000000000000000000..c26b1f97d5ce7694fc6042850049abdc2a34e6b0 --- /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 0000000000000000000000000000000000000000..6d73a78c8452a998721af474cf47708d84a66690 --- /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 0000000000000000000000000000000000000000..f9966c1c82445726c8b1406d9ce800ba065a718e --- /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 0000000000000000000000000000000000000000..f62979488680995c237f9e4e76821042a1165ced --- /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 0000000000000000000000000000000000000000..f31baa38c2ac888f511faacd6032b8a562d55381 --- /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 0000000000000000000000000000000000000000..e38bfb1f6b29ad74081447310151d1d7cb723d8c --- /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 0000000000000000000000000000000000000000..9276e7939a3791b19a21ab0f390795f8b35de238 --- /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 0000000000000000000000000000000000000000..274d17e172845cf7de4dddb3e6ed0a5464d437af --- /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 0000000000000000000000000000000000000000..504f0b1c9e2057fe941ed5718c4be80647f41b98 --- /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 0000000000000000000000000000000000000000..dd0303886fa4a0319e10028dcb3176973f68d715 --- /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 0000000000000000000000000000000000000000..c26b1f97d5ce7694fc6042850049abdc2a34e6b0 --- /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 0000000000000000000000000000000000000000..6d73a78c8452a998721af474cf47708d84a66690 --- /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 0000000000000000000000000000000000000000..e59fd7e55a9c58e94962a2723e57553eb4c4b190 --- /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 0000000000000000000000000000000000000000..02f18bd113f735110611b608beea8ccde976e1ec --- /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 0000000000000000000000000000000000000000..3cd40c660ba8fe0c25ea01e82d768fc1b5a99991 --- /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 0000000000000000000000000000000000000000..bd6cc86d94e2b7b7cb8a1cfeef861f9e3c8a6e6b --- /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 0000000000000000000000000000000000000000..7b156f28664997267eac1d674a6047d4db6be8b9 --- /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 0000000000000000000000000000000000000000..8cf1ea6cbdbd0ba53ba39bb1e9a5ec0c88c1d2dd --- /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 0000000000000000000000000000000000000000..46a32a743ffced92a7136d1c241f69d411dba6c6 --- /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 0000000000000000000000000000000000000000..82e68c390e0736ee6469833ca64b06f3021be828 --- /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<volScalarField> 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<volScalarField>("productionRate"); + + const auto& nut = mesh().lookupObject<volScalarField>("nut"); + const auto& U = mesh().lookupObject<volVectorField>("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 0000000000000000000000000000000000000000..1f6fb39517753c4670113e88755a978865da0736 --- /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 0000000000000000000000000000000000000000..a13d605795331b3d89463ca86bac8a467a6509a2 --- /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 0000000000000000000000000000000000000000..dd52d23f1b404f1ef79b57f21135aa2b7b5d9fbd --- /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 0000000000000000000000000000000000000000..ce4645b847a2250c5ecee68ed21f164c767437c3 --- /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 0000000000000000000000000000000000000000..de09bff3b16ac8713cf37f6b252166b97a0d7ff8 --- /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 0000000000000000000000000000000000000000..7460f2c6ca8a91afc1b127fdb2353fc5c30865cb --- /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); + } +); + + +// ************************************************************************* //