From 00cd6ac8b7d588c306b501a3444a8c102e0a894d Mon Sep 17 00:00:00 2001 From: henry Date: Mon, 26 Oct 2009 14:01:39 +0000 Subject: [PATCH 1/5] Added support for the caching of gradients. This is controlled by providing a list of the fields to be cached in the "cache" sub-dictionary of fvSolution. Debug information about the caching is printed when the solution::debug switch is on. There are still a couple of issues to do with the naming of gradients used in corrected snGrads and limited interpolation schemes that need to be resolved but these are no different to previously and hence not urgent. --- src/OpenFOAM/matrices/solution/solution.C | 2 +- src/finiteVolume/Make/files | 1 + .../convectionScheme/convectionScheme.H | 2 +- .../gaussConvectionScheme.C | 6 +- .../gaussConvectionScheme.H | 2 +- .../multivariateGaussConvectionScheme.C | 4 +- .../multivariateGaussConvectionScheme.H | 2 +- .../EulerD2dt2Scheme/EulerD2dt2Scheme.C | 10 +- .../EulerD2dt2Scheme/EulerD2dt2Scheme.H | 6 +- .../d2dt2Schemes/d2dt2Scheme/d2dt2Scheme.H | 6 +- .../steadyStateD2dt2Scheme.C | 8 +- .../steadyStateD2dt2Scheme.H | 6 +- .../CoEulerDdtScheme/CoEulerDdtScheme.C | 22 +-- .../CoEulerDdtScheme/CoEulerDdtScheme.H | 6 +- .../CrankNicholsonDdtScheme.C | 6 +- .../CrankNicholsonDdtScheme.H | 8 +- .../EulerDdtScheme/EulerDdtScheme.C | 6 +- .../EulerDdtScheme/EulerDdtScheme.H | 6 +- .../ddtSchemes/SLTSDdtScheme/SLTSDdtScheme.C | 16 +- .../ddtSchemes/SLTSDdtScheme/SLTSDdtScheme.H | 6 +- .../backwardDdtScheme/backwardDdtScheme.C | 6 +- .../backwardDdtScheme/backwardDdtScheme.H | 6 +- .../boundedBackwardDdtScheme.C | 8 +- .../boundedBackwardDdtScheme.H | 6 +- .../boundedBackwardDdtSchemes.C | 2 +- .../ddtSchemes/ddtScheme/ddtScheme.H | 6 +- .../steadyStateDdtScheme.C | 8 +- .../steadyStateDdtScheme.H | 6 +- src/finiteVolume/finiteVolume/fvc/fvcGrad.C | 4 +- src/finiteVolume/finiteVolume/fvm/fvmD2dt2.C | 9 +- src/finiteVolume/finiteVolume/fvm/fvmD2dt2.H | 6 +- src/finiteVolume/finiteVolume/fvm/fvmDdt.C | 8 +- src/finiteVolume/finiteVolume/fvm/fvmDdt.H | 8 +- src/finiteVolume/finiteVolume/fvm/fvmDiv.C | 11 +- src/finiteVolume/finiteVolume/fvm/fvmDiv.H | 8 +- .../finiteVolume/fvm/fvmLaplacian.C | 36 ++-- .../finiteVolume/fvm/fvmLaplacian.H | 32 ++-- src/finiteVolume/finiteVolume/fvm/fvmSup.C | 26 +-- src/finiteVolume/finiteVolume/fvm/fvmSup.H | 26 +-- .../extendedLeastSquaresGrad.C | 37 ++-- .../extendedLeastSquaresGrad.H | 9 +- .../gradSchemes/fourthGrad/fourthGrad.C | 37 ++-- .../gradSchemes/fourthGrad/fourthGrad.H | 9 +- .../gradSchemes/gaussGrad/gaussGrad.C | 53 ++---- .../gradSchemes/gaussGrad/gaussGrad.H | 22 +-- .../gradSchemes/gaussGrad/gaussGrads.C | 2 - .../gradSchemes/gradScheme/gradScheme.C | 174 +++++++++++++++--- .../gradSchemes/gradScheme/gradScheme.H | 48 ++++- .../leastSquaresGrad/leastSquaresGrad.C | 37 ++-- .../leastSquaresGrad/leastSquaresGrad.H | 9 +- .../cellLimitedGrad/cellLimitedGrad.H | 72 +++++++- .../cellLimitedGrad/cellLimitedGrads.C | 77 ++------ .../cellMDLimitedGrad/cellMDLimitedGrad.H | 27 ++- .../cellMDLimitedGrad/cellMDLimitedGrads.C | 33 ++-- .../faceLimitedGrad/faceLimitedGrad.H | 54 +++++- .../faceLimitedGrad/faceLimitedGrads.C | 55 ++---- .../faceMDLimitedGrad/faceMDLimitedGrad.H | 27 ++- .../faceMDLimitedGrad/faceMDLimitedGrads.C | 37 ++-- .../gaussLaplacianScheme.C | 8 +- .../gaussLaplacianScheme.H | 6 +- .../gaussLaplacianSchemes.C | 4 +- .../laplacianScheme/laplacianScheme.C | 2 +- .../laplacianScheme/laplacianScheme.H | 4 +- .../correctedSnGrad/correctedSnGrad.C | 55 +++--- .../correctedSnGrad/correctedSnGrad.H | 26 ++- .../correctedSnGrad/correctedSnGrads.C | 26 ++- .../fvMatrices/fvMatrix/fvMatrix.C | 19 +- .../fvMatrices/fvMatrix/fvMatrix.H | 18 +- .../fvMatrices/fvMatrix/fvMatrixSolve.C | 17 +- .../fvScalarMatrix/fvScalarMatrix.C | 24 ++- .../LimitedScheme/LimitedScheme.C | 8 +- .../linearUpwind/linearUpwind.C | 25 ++- .../linearUpwind/linearUpwind.H | 8 +- .../linearUpwind/linearUpwindV.C | 19 +- .../linearUpwind/linearUpwindV.H | 8 +- 75 files changed, 859 insertions(+), 590 deletions(-) diff --git a/src/OpenFOAM/matrices/solution/solution.C b/src/OpenFOAM/matrices/solution/solution.C index c63dceec4e..b17130dfe6 100644 --- a/src/OpenFOAM/matrices/solution/solution.C +++ b/src/OpenFOAM/matrices/solution/solution.C @@ -152,7 +152,7 @@ bool Foam::solution::cache(const word& name) const { if (debug) { - Info<< "Find cache entry for " << name << endl; + Info<< "Cache: find entry for " << name << endl; } return cache_.found(name); diff --git a/src/finiteVolume/Make/files b/src/finiteVolume/Make/files index 7ecbf878a6..c387ac994d 100644 --- a/src/finiteVolume/Make/files +++ b/src/finiteVolume/Make/files @@ -285,6 +285,7 @@ $(divSchemes)/gaussDivScheme/gaussDivSchemes.C gradSchemes = finiteVolume/gradSchemes $(gradSchemes)/gradScheme/gradSchemes.C $(gradSchemes)/gaussGrad/gaussGrads.C + $(gradSchemes)/leastSquaresGrad/leastSquaresVectors.C $(gradSchemes)/leastSquaresGrad/leastSquaresGrads.C $(gradSchemes)/extendedLeastSquaresGrad/extendedLeastSquaresVectors.C diff --git a/src/finiteVolume/finiteVolume/convectionSchemes/convectionScheme/convectionScheme.H b/src/finiteVolume/finiteVolume/convectionSchemes/convectionScheme/convectionScheme.H index c1e46a9e10..25dcbeb130 100644 --- a/src/finiteVolume/finiteVolume/convectionSchemes/convectionScheme/convectionScheme.H +++ b/src/finiteVolume/finiteVolume/convectionSchemes/convectionScheme/convectionScheme.H @@ -177,7 +177,7 @@ public: virtual tmp > fvmDiv ( const surfaceScalarField&, - GeometricField& + const GeometricField& ) const = 0; virtual tmp > fvcDiv diff --git a/src/finiteVolume/finiteVolume/convectionSchemes/gaussConvectionScheme/gaussConvectionScheme.C b/src/finiteVolume/finiteVolume/convectionSchemes/gaussConvectionScheme/gaussConvectionScheme.C index a219d80281..e2077d75ef 100644 --- a/src/finiteVolume/finiteVolume/convectionSchemes/gaussConvectionScheme/gaussConvectionScheme.C +++ b/src/finiteVolume/finiteVolume/convectionSchemes/gaussConvectionScheme/gaussConvectionScheme.C @@ -69,7 +69,7 @@ tmp > gaussConvectionScheme::fvmDiv ( const surfaceScalarField& faceFlux, - GeometricField& vf + const GeometricField& vf ) const { tmp tweights = tinterpScheme_().weights(vf); @@ -89,9 +89,9 @@ gaussConvectionScheme::fvmDiv fvm.upper() = fvm.lower() + faceFlux.internalField(); fvm.negSumDiag(); - forAll(fvm.psi().boundaryField(), patchI) + forAll(vf.boundaryField(), patchI) { - const fvPatchField& psf = fvm.psi().boundaryField()[patchI]; + const fvPatchField& psf = vf.boundaryField()[patchI]; const fvsPatchScalarField& patchFlux = faceFlux.boundaryField()[patchI]; const fvsPatchScalarField& pw = weights.boundaryField()[patchI]; diff --git a/src/finiteVolume/finiteVolume/convectionSchemes/gaussConvectionScheme/gaussConvectionScheme.H b/src/finiteVolume/finiteVolume/convectionSchemes/gaussConvectionScheme/gaussConvectionScheme.H index 7a4e5da155..8202f270dc 100644 --- a/src/finiteVolume/finiteVolume/convectionSchemes/gaussConvectionScheme/gaussConvectionScheme.H +++ b/src/finiteVolume/finiteVolume/convectionSchemes/gaussConvectionScheme/gaussConvectionScheme.H @@ -124,7 +124,7 @@ public: tmp > fvmDiv ( const surfaceScalarField&, - GeometricField& + const GeometricField& ) const; tmp > fvcDiv diff --git a/src/finiteVolume/finiteVolume/convectionSchemes/multivariateGaussConvectionScheme/multivariateGaussConvectionScheme.C b/src/finiteVolume/finiteVolume/convectionSchemes/multivariateGaussConvectionScheme/multivariateGaussConvectionScheme.C index d147d461ee..61cbba5ceb 100644 --- a/src/finiteVolume/finiteVolume/convectionSchemes/multivariateGaussConvectionScheme/multivariateGaussConvectionScheme.C +++ b/src/finiteVolume/finiteVolume/convectionSchemes/multivariateGaussConvectionScheme/multivariateGaussConvectionScheme.C @@ -22,8 +22,6 @@ License along with OpenFOAM; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -Description - \*---------------------------------------------------------------------------*/ #include "multivariateGaussConvectionScheme.H" @@ -81,7 +79,7 @@ tmp > multivariateGaussConvectionScheme::fvmDiv ( const surfaceScalarField& faceFlux, - GeometricField& vf + const GeometricField& vf ) const { return gaussConvectionScheme diff --git a/src/finiteVolume/finiteVolume/convectionSchemes/multivariateGaussConvectionScheme/multivariateGaussConvectionScheme.H b/src/finiteVolume/finiteVolume/convectionSchemes/multivariateGaussConvectionScheme/multivariateGaussConvectionScheme.H index b8ccb25ed5..419628ddfa 100644 --- a/src/finiteVolume/finiteVolume/convectionSchemes/multivariateGaussConvectionScheme/multivariateGaussConvectionScheme.H +++ b/src/finiteVolume/finiteVolume/convectionSchemes/multivariateGaussConvectionScheme/multivariateGaussConvectionScheme.H @@ -114,7 +114,7 @@ public: tmp > fvmDiv ( const surfaceScalarField&, - GeometricField& + const GeometricField& ) const; tmp > fvcDiv diff --git a/src/finiteVolume/finiteVolume/d2dt2Schemes/EulerD2dt2Scheme/EulerD2dt2Scheme.C b/src/finiteVolume/finiteVolume/d2dt2Schemes/EulerD2dt2Scheme/EulerD2dt2Scheme.C index 9a7ad2d0d3..4a9cca164a 100644 --- a/src/finiteVolume/finiteVolume/d2dt2Schemes/EulerD2dt2Scheme/EulerD2dt2Scheme.C +++ b/src/finiteVolume/finiteVolume/d2dt2Schemes/EulerD2dt2Scheme/EulerD2dt2Scheme.C @@ -21,7 +21,7 @@ License You should have received a copy of the GNU General Public License along with OpenFOAM; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - + \*---------------------------------------------------------------------------*/ #include "EulerD2dt2Scheme.H" @@ -181,7 +181,7 @@ EulerD2dt2Scheme::fvcD2dt2 coefft *(rho.boundaryField() + rho.oldTime().boundaryField()) *vf.boundaryField() - + - ( coefft *( @@ -232,7 +232,7 @@ template tmp > EulerD2dt2Scheme::fvmD2dt2 ( - GeometricField& vf + const GeometricField& vf ) { tmp > tfvm @@ -292,7 +292,7 @@ tmp > EulerD2dt2Scheme::fvmD2dt2 ( const dimensionedScalar& rho, - GeometricField& vf + const GeometricField& vf ) { tmp > tfvm @@ -353,7 +353,7 @@ tmp > EulerD2dt2Scheme::fvmD2dt2 ( const volScalarField& rho, - GeometricField& vf + const GeometricField& vf ) { tmp > tfvm diff --git a/src/finiteVolume/finiteVolume/d2dt2Schemes/EulerD2dt2Scheme/EulerD2dt2Scheme.H b/src/finiteVolume/finiteVolume/d2dt2Schemes/EulerD2dt2Scheme/EulerD2dt2Scheme.H index bca75562ed..0823f225dc 100644 --- a/src/finiteVolume/finiteVolume/d2dt2Schemes/EulerD2dt2Scheme/EulerD2dt2Scheme.H +++ b/src/finiteVolume/finiteVolume/d2dt2Schemes/EulerD2dt2Scheme/EulerD2dt2Scheme.H @@ -109,19 +109,19 @@ public: tmp > fvmD2dt2 ( - GeometricField& + const GeometricField& ); tmp > fvmD2dt2 ( const dimensionedScalar&, - GeometricField& + const GeometricField& ); tmp > fvmD2dt2 ( const volScalarField&, - GeometricField& + const GeometricField& ); }; diff --git a/src/finiteVolume/finiteVolume/d2dt2Schemes/d2dt2Scheme/d2dt2Scheme.H b/src/finiteVolume/finiteVolume/d2dt2Schemes/d2dt2Scheme/d2dt2Scheme.H index 9e5668ecf3..452373b501 100644 --- a/src/finiteVolume/finiteVolume/d2dt2Schemes/d2dt2Scheme/d2dt2Scheme.H +++ b/src/finiteVolume/finiteVolume/d2dt2Schemes/d2dt2Scheme/d2dt2Scheme.H @@ -153,19 +153,19 @@ public: virtual tmp > fvmD2dt2 ( - GeometricField& + const GeometricField& ) = 0; virtual tmp > fvmD2dt2 ( const dimensionedScalar&, - GeometricField& + const GeometricField& ) = 0; virtual tmp > fvmD2dt2 ( const volScalarField&, - GeometricField& + const GeometricField& ) = 0; }; diff --git a/src/finiteVolume/finiteVolume/d2dt2Schemes/steadyStateD2dt2Scheme/steadyStateD2dt2Scheme.C b/src/finiteVolume/finiteVolume/d2dt2Schemes/steadyStateD2dt2Scheme/steadyStateD2dt2Scheme.C index 121df11087..9d810c401c 100644 --- a/src/finiteVolume/finiteVolume/d2dt2Schemes/steadyStateD2dt2Scheme/steadyStateD2dt2Scheme.C +++ b/src/finiteVolume/finiteVolume/d2dt2Schemes/steadyStateD2dt2Scheme/steadyStateD2dt2Scheme.C @@ -21,7 +21,7 @@ License You should have received a copy of the GNU General Public License along with OpenFOAM; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - + \*---------------------------------------------------------------------------*/ #include "steadyStateD2dt2Scheme.H" @@ -107,7 +107,7 @@ template tmp > steadyStateD2dt2Scheme::fvmD2dt2 ( - GeometricField& vf + const GeometricField& vf ) { tmp > tfvm @@ -128,7 +128,7 @@ tmp > steadyStateD2dt2Scheme::fvmD2dt2 ( const dimensionedScalar& rho, - GeometricField& vf + const GeometricField& vf ) { tmp > tfvm @@ -149,7 +149,7 @@ tmp > steadyStateD2dt2Scheme::fvmD2dt2 ( const volScalarField& rho, - GeometricField& vf + const GeometricField& vf ) { tmp > tfvm diff --git a/src/finiteVolume/finiteVolume/d2dt2Schemes/steadyStateD2dt2Scheme/steadyStateD2dt2Scheme.H b/src/finiteVolume/finiteVolume/d2dt2Schemes/steadyStateD2dt2Scheme/steadyStateD2dt2Scheme.H index 004fb22a5e..9b9327ceee 100644 --- a/src/finiteVolume/finiteVolume/d2dt2Schemes/steadyStateD2dt2Scheme/steadyStateD2dt2Scheme.H +++ b/src/finiteVolume/finiteVolume/d2dt2Schemes/steadyStateD2dt2Scheme/steadyStateD2dt2Scheme.H @@ -108,19 +108,19 @@ public: tmp > fvmD2dt2 ( - GeometricField& + const GeometricField& ); tmp > fvmD2dt2 ( const dimensionedScalar&, - GeometricField& + const GeometricField& ); tmp > fvmD2dt2 ( const volScalarField&, - GeometricField& + const GeometricField& ); }; diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/CoEulerDdtScheme/CoEulerDdtScheme.C b/src/finiteVolume/finiteVolume/ddtSchemes/CoEulerDdtScheme/CoEulerDdtScheme.C index 6928e20a2e..a63a644427 100644 --- a/src/finiteVolume/finiteVolume/ddtSchemes/CoEulerDdtScheme/CoEulerDdtScheme.C +++ b/src/finiteVolume/finiteVolume/ddtSchemes/CoEulerDdtScheme/CoEulerDdtScheme.C @@ -21,7 +21,7 @@ License You should have received a copy of the GNU General Public License along with OpenFOAM; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - + \*---------------------------------------------------------------------------*/ #include "CoEulerDdtScheme.H" @@ -69,10 +69,10 @@ tmp CoEulerDdtScheme::CorDeltaT() const forAll(owner, faceI) { - corDeltaT[owner[faceI]] = + corDeltaT[owner[faceI]] = max(corDeltaT[owner[faceI]], cofrDeltaT[faceI]); - corDeltaT[neighbour[faceI]] = + corDeltaT[neighbour[faceI]] = max(corDeltaT[neighbour[faceI]], cofrDeltaT[faceI]); } @@ -127,7 +127,7 @@ tmp CoEulerDdtScheme::CofrDeltaT() const const volScalarField& rho = static_cast(mesh()) .lookupObject(rhoName_).oldTime(); - + surfaceScalarField Co ( mesh().surfaceInterpolation::deltaCoeffs() @@ -369,7 +369,7 @@ template tmp > CoEulerDdtScheme::fvmDdt ( - GeometricField& vf + const GeometricField& vf ) { tmp > tfvm @@ -386,7 +386,7 @@ CoEulerDdtScheme::fvmDdt scalarField rDeltaT = CorDeltaT()().internalField(); fvm.diag() = rDeltaT*mesh().V(); - + if (mesh().moving()) { fvm.source() = rDeltaT*vf.oldTime().internalField()*mesh().V0(); @@ -405,7 +405,7 @@ tmp > CoEulerDdtScheme::fvmDdt ( const dimensionedScalar& rho, - GeometricField& vf + const GeometricField& vf ) { tmp > tfvm @@ -421,7 +421,7 @@ CoEulerDdtScheme::fvmDdt scalarField rDeltaT = CorDeltaT()().internalField(); fvm.diag() = rDeltaT*rho.value()*mesh().V(); - + if (mesh().moving()) { fvm.source() = rDeltaT @@ -442,7 +442,7 @@ tmp > CoEulerDdtScheme::fvmDdt ( const volScalarField& rho, - GeometricField& vf + const GeometricField& vf ) { tmp > tfvm @@ -588,7 +588,7 @@ CoEulerDdtScheme::fvcDdtPhiCorr ) ); } - else if + else if ( U.dimensions() == dimVelocity && phi.dimensions() == dimDensity*dimVelocity*dimArea @@ -617,7 +617,7 @@ CoEulerDdtScheme::fvcDdtPhiCorr ) ); } - else if + else if ( U.dimensions() == dimDensity*dimVelocity && phi.dimensions() == dimDensity*dimVelocity*dimArea diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/CoEulerDdtScheme/CoEulerDdtScheme.H b/src/finiteVolume/finiteVolume/ddtSchemes/CoEulerDdtScheme/CoEulerDdtScheme.H index f2b54169ed..65cd320d2d 100644 --- a/src/finiteVolume/finiteVolume/ddtSchemes/CoEulerDdtScheme/CoEulerDdtScheme.H +++ b/src/finiteVolume/finiteVolume/ddtSchemes/CoEulerDdtScheme/CoEulerDdtScheme.H @@ -142,19 +142,19 @@ public: tmp > fvmDdt ( - GeometricField& + const GeometricField& ); tmp > fvmDdt ( const dimensionedScalar&, - GeometricField& + const GeometricField& ); tmp > fvmDdt ( const volScalarField&, - GeometricField& + const GeometricField& ); typedef typename ddtScheme::fluxFieldType fluxFieldType; diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicholsonDdtScheme/CrankNicholsonDdtScheme.C b/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicholsonDdtScheme/CrankNicholsonDdtScheme.C index 027f0a2b30..172bea60aa 100644 --- a/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicholsonDdtScheme/CrankNicholsonDdtScheme.C +++ b/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicholsonDdtScheme/CrankNicholsonDdtScheme.C @@ -625,7 +625,7 @@ template tmp > CrankNicholsonDdtScheme::fvmDdt ( - GeometricField& vf + const GeometricField& vf ) { DDt0Field >& ddt0 = @@ -709,7 +709,7 @@ tmp > CrankNicholsonDdtScheme::fvmDdt ( const dimensionedScalar& rho, - GeometricField& vf + const GeometricField& vf ) { DDt0Field >& ddt0 = @@ -791,7 +791,7 @@ tmp > CrankNicholsonDdtScheme::fvmDdt ( const volScalarField& rho, - GeometricField& vf + const GeometricField& vf ) { DDt0Field >& ddt0 = diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicholsonDdtScheme/CrankNicholsonDdtScheme.H b/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicholsonDdtScheme/CrankNicholsonDdtScheme.H index 87ca9a086d..d3177f6a95 100644 --- a/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicholsonDdtScheme/CrankNicholsonDdtScheme.H +++ b/src/finiteVolume/finiteVolume/ddtSchemes/CrankNicholsonDdtScheme/CrankNicholsonDdtScheme.H @@ -90,7 +90,7 @@ class CrankNicholsonDdtScheme //- Return the start-time index label startTimeIndex() const; - + //- Cast to the underlying GeoField GeoField& operator()(); @@ -213,19 +213,19 @@ public: tmp > fvmDdt ( - GeometricField& + const GeometricField& ); tmp > fvmDdt ( const dimensionedScalar&, - GeometricField& + const GeometricField& ); tmp > fvmDdt ( const volScalarField&, - GeometricField& + const GeometricField& ); typedef typename ddtScheme::fluxFieldType fluxFieldType; diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/EulerDdtScheme/EulerDdtScheme.C b/src/finiteVolume/finiteVolume/ddtSchemes/EulerDdtScheme/EulerDdtScheme.C index e7749610a7..091663aa6e 100644 --- a/src/finiteVolume/finiteVolume/ddtSchemes/EulerDdtScheme/EulerDdtScheme.C +++ b/src/finiteVolume/finiteVolume/ddtSchemes/EulerDdtScheme/EulerDdtScheme.C @@ -262,7 +262,7 @@ template tmp > EulerDdtScheme::fvmDdt ( - GeometricField& vf + const GeometricField& vf ) { tmp > tfvm @@ -298,7 +298,7 @@ tmp > EulerDdtScheme::fvmDdt ( const dimensionedScalar& rho, - GeometricField& vf + const GeometricField& vf ) { tmp > tfvm @@ -335,7 +335,7 @@ tmp > EulerDdtScheme::fvmDdt ( const volScalarField& rho, - GeometricField& vf + const GeometricField& vf ) { tmp > tfvm diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/EulerDdtScheme/EulerDdtScheme.H b/src/finiteVolume/finiteVolume/ddtSchemes/EulerDdtScheme/EulerDdtScheme.H index b06ef32761..3d38050955 100644 --- a/src/finiteVolume/finiteVolume/ddtSchemes/EulerDdtScheme/EulerDdtScheme.H +++ b/src/finiteVolume/finiteVolume/ddtSchemes/EulerDdtScheme/EulerDdtScheme.H @@ -120,19 +120,19 @@ public: tmp > fvmDdt ( - GeometricField& + const GeometricField& ); tmp > fvmDdt ( const dimensionedScalar&, - GeometricField& + const GeometricField& ); tmp > fvmDdt ( const volScalarField&, - GeometricField& + const GeometricField& ); typedef typename ddtScheme::fluxFieldType fluxFieldType; diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/SLTSDdtScheme/SLTSDdtScheme.C b/src/finiteVolume/finiteVolume/ddtSchemes/SLTSDdtScheme/SLTSDdtScheme.C index a06e30e725..4906f63567 100644 --- a/src/finiteVolume/finiteVolume/ddtSchemes/SLTSDdtScheme/SLTSDdtScheme.C +++ b/src/finiteVolume/finiteVolume/ddtSchemes/SLTSDdtScheme/SLTSDdtScheme.C @@ -21,7 +21,7 @@ License You should have received a copy of the GNU General Public License along with OpenFOAM; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - + \*---------------------------------------------------------------------------*/ #include "SLTSDdtScheme.H" @@ -369,7 +369,7 @@ template tmp > SLTSDdtScheme::fvmDdt ( - GeometricField& vf + const GeometricField& vf ) { tmp > tfvm @@ -388,7 +388,7 @@ SLTSDdtScheme::fvmDdt Info<< "max/min rDeltaT " << max(rDeltaT) << " " << min(rDeltaT) << endl; fvm.diag() = rDeltaT*mesh().V(); - + if (mesh().moving()) { fvm.source() = rDeltaT*vf.oldTime().internalField()*mesh().V0(); @@ -407,7 +407,7 @@ tmp > SLTSDdtScheme::fvmDdt ( const dimensionedScalar& rho, - GeometricField& vf + const GeometricField& vf ) { tmp > tfvm @@ -423,7 +423,7 @@ SLTSDdtScheme::fvmDdt scalarField rDeltaT = SLrDeltaT()().internalField(); fvm.diag() = rDeltaT*rho.value()*mesh().V(); - + if (mesh().moving()) { fvm.source() = rDeltaT @@ -444,7 +444,7 @@ tmp > SLTSDdtScheme::fvmDdt ( const volScalarField& rho, - GeometricField& vf + const GeometricField& vf ) { tmp > tfvm @@ -590,7 +590,7 @@ SLTSDdtScheme::fvcDdtPhiCorr ) ); } - else if + else if ( U.dimensions() == dimVelocity && phi.dimensions() == dimDensity*dimVelocity*dimArea @@ -619,7 +619,7 @@ SLTSDdtScheme::fvcDdtPhiCorr ) ); } - else if + else if ( U.dimensions() == dimDensity*dimVelocity && phi.dimensions() == dimDensity*dimVelocity*dimArea diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/SLTSDdtScheme/SLTSDdtScheme.H b/src/finiteVolume/finiteVolume/ddtSchemes/SLTSDdtScheme/SLTSDdtScheme.H index 850f358299..f300297e6c 100644 --- a/src/finiteVolume/finiteVolume/ddtSchemes/SLTSDdtScheme/SLTSDdtScheme.H +++ b/src/finiteVolume/finiteVolume/ddtSchemes/SLTSDdtScheme/SLTSDdtScheme.H @@ -143,19 +143,19 @@ public: tmp > fvmDdt ( - GeometricField& + const GeometricField& ); tmp > fvmDdt ( const dimensionedScalar&, - GeometricField& + const GeometricField& ); tmp > fvmDdt ( const volScalarField&, - GeometricField& + const GeometricField& ); typedef typename ddtScheme::fluxFieldType fluxFieldType; diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/backwardDdtScheme/backwardDdtScheme.C b/src/finiteVolume/finiteVolume/ddtSchemes/backwardDdtScheme/backwardDdtScheme.C index 8a121b2d44..f172594abe 100644 --- a/src/finiteVolume/finiteVolume/ddtSchemes/backwardDdtScheme/backwardDdtScheme.C +++ b/src/finiteVolume/finiteVolume/ddtSchemes/backwardDdtScheme/backwardDdtScheme.C @@ -361,7 +361,7 @@ template tmp > backwardDdtScheme::fvmDdt ( - GeometricField& vf + const GeometricField& vf ) { tmp > tfvm @@ -413,7 +413,7 @@ tmp > backwardDdtScheme::fvmDdt ( const dimensionedScalar& rho, - GeometricField& vf + const GeometricField& vf ) { tmp > tfvm @@ -464,7 +464,7 @@ tmp > backwardDdtScheme::fvmDdt ( const volScalarField& rho, - GeometricField& vf + const GeometricField& vf ) { tmp > tfvm diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/backwardDdtScheme/backwardDdtScheme.H b/src/finiteVolume/finiteVolume/ddtSchemes/backwardDdtScheme/backwardDdtScheme.H index 374d05031a..7aceb79c89 100644 --- a/src/finiteVolume/finiteVolume/ddtSchemes/backwardDdtScheme/backwardDdtScheme.H +++ b/src/finiteVolume/finiteVolume/ddtSchemes/backwardDdtScheme/backwardDdtScheme.H @@ -131,19 +131,19 @@ public: tmp > fvmDdt ( - GeometricField& + const GeometricField& ); tmp > fvmDdt ( const dimensionedScalar&, - GeometricField& + const GeometricField& ); tmp > fvmDdt ( const volScalarField&, - GeometricField& + const GeometricField& ); typedef typename ddtScheme::fluxFieldType fluxFieldType; diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/boundedBackwardDdtScheme/boundedBackwardDdtScheme.C b/src/finiteVolume/finiteVolume/ddtSchemes/boundedBackwardDdtScheme/boundedBackwardDdtScheme.C index c8ef5c7259..214f1373df 100644 --- a/src/finiteVolume/finiteVolume/ddtSchemes/boundedBackwardDdtScheme/boundedBackwardDdtScheme.C +++ b/src/finiteVolume/finiteVolume/ddtSchemes/boundedBackwardDdtScheme/boundedBackwardDdtScheme.C @@ -21,7 +21,7 @@ License You should have received a copy of the GNU General Public License along with OpenFOAM; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - + \*---------------------------------------------------------------------------*/ #include "boundedBackwardDdtScheme.H" @@ -413,7 +413,7 @@ boundedBackwardDdtScheme::fvcDdt tmp boundedBackwardDdtScheme::fvmDdt ( - volScalarField& vf + const volScalarField& vf ) { tmp tfvm @@ -484,7 +484,7 @@ tmp boundedBackwardDdtScheme::fvmDdt ( const dimensionedScalar& rho, - volScalarField& vf + const volScalarField& vf ) { tmp tfvm @@ -554,7 +554,7 @@ tmp boundedBackwardDdtScheme::fvmDdt ( const volScalarField& rho, - volScalarField& vf + const volScalarField& vf ) { tmp tfvm diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/boundedBackwardDdtScheme/boundedBackwardDdtScheme.H b/src/finiteVolume/finiteVolume/ddtSchemes/boundedBackwardDdtScheme/boundedBackwardDdtScheme.H index 7bff042a75..f1b4121f6e 100644 --- a/src/finiteVolume/finiteVolume/ddtSchemes/boundedBackwardDdtScheme/boundedBackwardDdtScheme.H +++ b/src/finiteVolume/finiteVolume/ddtSchemes/boundedBackwardDdtScheme/boundedBackwardDdtScheme.H @@ -142,19 +142,19 @@ public: tmp fvmDdt ( - volScalarField& + const volScalarField& ); tmp fvmDdt ( const dimensionedScalar&, - volScalarField& + const volScalarField& ); tmp fvmDdt ( const volScalarField&, - volScalarField& + const volScalarField& ); tmp fvcDdtPhiCorr diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/boundedBackwardDdtScheme/boundedBackwardDdtSchemes.C b/src/finiteVolume/finiteVolume/ddtSchemes/boundedBackwardDdtScheme/boundedBackwardDdtSchemes.C index 666cb2be3b..67a1d1f69c 100644 --- a/src/finiteVolume/finiteVolume/ddtSchemes/boundedBackwardDdtScheme/boundedBackwardDdtSchemes.C +++ b/src/finiteVolume/finiteVolume/ddtSchemes/boundedBackwardDdtScheme/boundedBackwardDdtSchemes.C @@ -21,7 +21,7 @@ License You should have received a copy of the GNU General Public License along with OpenFOAM; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - + \*---------------------------------------------------------------------------*/ #include "boundedBackwardDdtScheme.H" diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/ddtScheme/ddtScheme.H b/src/finiteVolume/finiteVolume/ddtSchemes/ddtScheme/ddtScheme.H index 31f8fa090d..e454e9409a 100644 --- a/src/finiteVolume/finiteVolume/ddtSchemes/ddtScheme/ddtScheme.H +++ b/src/finiteVolume/finiteVolume/ddtSchemes/ddtScheme/ddtScheme.H @@ -164,19 +164,19 @@ public: virtual tmp > fvmDdt ( - GeometricField& + const GeometricField& ) = 0; virtual tmp > fvmDdt ( const dimensionedScalar&, - GeometricField& + const GeometricField& ) = 0; virtual tmp > fvmDdt ( const volScalarField&, - GeometricField& + const GeometricField& ) = 0; diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/steadyStateDdtScheme/steadyStateDdtScheme.C b/src/finiteVolume/finiteVolume/ddtSchemes/steadyStateDdtScheme/steadyStateDdtScheme.C index 7bd7b6f8a8..3b5736adb8 100644 --- a/src/finiteVolume/finiteVolume/ddtSchemes/steadyStateDdtScheme/steadyStateDdtScheme.C +++ b/src/finiteVolume/finiteVolume/ddtSchemes/steadyStateDdtScheme/steadyStateDdtScheme.C @@ -21,7 +21,7 @@ License You should have received a copy of the GNU General Public License along with OpenFOAM; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - + \*---------------------------------------------------------------------------*/ #include "steadyStateDdtScheme.H" @@ -162,7 +162,7 @@ template tmp > steadyStateDdtScheme::fvmDdt ( - GeometricField& vf + const GeometricField& vf ) { tmp > tfvm @@ -183,7 +183,7 @@ tmp > steadyStateDdtScheme::fvmDdt ( const dimensionedScalar& rho, - GeometricField& vf + const GeometricField& vf ) { tmp > tfvm @@ -204,7 +204,7 @@ tmp > steadyStateDdtScheme::fvmDdt ( const volScalarField& rho, - GeometricField& vf + const GeometricField& vf ) { tmp > tfvm diff --git a/src/finiteVolume/finiteVolume/ddtSchemes/steadyStateDdtScheme/steadyStateDdtScheme.H b/src/finiteVolume/finiteVolume/ddtSchemes/steadyStateDdtScheme/steadyStateDdtScheme.H index 54208441b4..0af9bb66db 100644 --- a/src/finiteVolume/finiteVolume/ddtSchemes/steadyStateDdtScheme/steadyStateDdtScheme.H +++ b/src/finiteVolume/finiteVolume/ddtSchemes/steadyStateDdtScheme/steadyStateDdtScheme.H @@ -119,19 +119,19 @@ public: tmp > fvmDdt ( - GeometricField& + const GeometricField& ); tmp > fvmDdt ( const dimensionedScalar&, - GeometricField& + const GeometricField& ); tmp > fvmDdt ( const volScalarField&, - GeometricField& + const GeometricField& ); typedef typename ddtScheme::fluxFieldType fluxFieldType; diff --git a/src/finiteVolume/finiteVolume/fvc/fvcGrad.C b/src/finiteVolume/finiteVolume/fvc/fvcGrad.C index 9d61a45e40..9f5c2bd98f 100644 --- a/src/finiteVolume/finiteVolume/fvc/fvcGrad.C +++ b/src/finiteVolume/finiteVolume/fvc/fvcGrad.C @@ -54,7 +54,7 @@ grad const GeometricField& ssf ) { - return fv::gaussGrad::grad(ssf); + return fv::gaussGrad::gradf(ssf, "grad(" + ssf.name() + ')'); } @@ -99,7 +99,7 @@ grad ( vf.mesh(), vf.mesh().gradScheme(name) - )().grad(vf); + )().grad(vf, name); } diff --git a/src/finiteVolume/finiteVolume/fvm/fvmD2dt2.C b/src/finiteVolume/finiteVolume/fvm/fvmD2dt2.C index 4df081cd07..81f37cd099 100644 --- a/src/finiteVolume/finiteVolume/fvm/fvmD2dt2.C +++ b/src/finiteVolume/finiteVolume/fvm/fvmD2dt2.C @@ -22,9 +22,6 @@ License along with OpenFOAM; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -Description - - \*---------------------------------------------------------------------------*/ #include "volFields.H" @@ -48,7 +45,7 @@ template tmp > d2dt2 ( - GeometricField& vf + const GeometricField& vf ) { return fv::d2dt2Scheme::New @@ -64,7 +61,7 @@ tmp > d2dt2 ( const dimensionedScalar& rho, - GeometricField& vf + const GeometricField& vf ) { return fv::d2dt2Scheme::New @@ -80,7 +77,7 @@ tmp > d2dt2 ( const volScalarField& rho, - GeometricField& vf + const GeometricField& vf ) { return fv::d2dt2Scheme::New diff --git a/src/finiteVolume/finiteVolume/fvm/fvmD2dt2.H b/src/finiteVolume/finiteVolume/fvm/fvmD2dt2.H index b322391ade..3d7e2a716b 100644 --- a/src/finiteVolume/finiteVolume/fvm/fvmD2dt2.H +++ b/src/finiteVolume/finiteVolume/fvm/fvmD2dt2.H @@ -54,20 +54,20 @@ namespace fvm tmp > d2dt2 ( const dimensionedScalar&, - GeometricField& + const GeometricField& ); template tmp > d2dt2 ( - GeometricField& + const GeometricField& ); template tmp > d2dt2 ( const volScalarField&, - GeometricField& + const GeometricField& ); } diff --git a/src/finiteVolume/finiteVolume/fvm/fvmDdt.C b/src/finiteVolume/finiteVolume/fvm/fvmDdt.C index c2e3e976af..d7610206d0 100644 --- a/src/finiteVolume/finiteVolume/fvm/fvmDdt.C +++ b/src/finiteVolume/finiteVolume/fvm/fvmDdt.C @@ -45,7 +45,7 @@ template tmp > ddt ( - GeometricField& vf + const GeometricField& vf ) { return fv::ddtScheme::New @@ -61,7 +61,7 @@ tmp > ddt ( const oneField&, - GeometricField& vf + const GeometricField& vf ) { return ddt(vf); @@ -73,7 +73,7 @@ tmp > ddt ( const dimensionedScalar& rho, - GeometricField& vf + const GeometricField& vf ) { return fv::ddtScheme::New @@ -89,7 +89,7 @@ tmp > ddt ( const volScalarField& rho, - GeometricField& vf + const GeometricField& vf ) { return fv::ddtScheme::New diff --git a/src/finiteVolume/finiteVolume/fvm/fvmDdt.H b/src/finiteVolume/finiteVolume/fvm/fvmDdt.H index 5472f91f37..2b8124e559 100644 --- a/src/finiteVolume/finiteVolume/fvm/fvmDdt.H +++ b/src/finiteVolume/finiteVolume/fvm/fvmDdt.H @@ -54,28 +54,28 @@ namespace fvm template tmp > ddt ( - GeometricField& + const GeometricField& ); template tmp > ddt ( const oneField&, - GeometricField& + const GeometricField& ); template tmp > ddt ( const dimensionedScalar&, - GeometricField& + const GeometricField& ); template tmp > ddt ( const volScalarField&, - GeometricField& + const GeometricField& ); } diff --git a/src/finiteVolume/finiteVolume/fvm/fvmDiv.C b/src/finiteVolume/finiteVolume/fvm/fvmDiv.C index 25af21ef2a..2cc8d0e31f 100644 --- a/src/finiteVolume/finiteVolume/fvm/fvmDiv.C +++ b/src/finiteVolume/finiteVolume/fvm/fvmDiv.C @@ -22,9 +22,6 @@ License along with OpenFOAM; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -Description - - \*---------------------------------------------------------------------------*/ #include "fvmDiv.H" @@ -49,7 +46,7 @@ tmp > div ( const surfaceScalarField& flux, - GeometricField& vf, + const GeometricField& vf, const word& name ) { @@ -66,7 +63,7 @@ tmp > div ( const tmp& tflux, - GeometricField& vf, + const GeometricField& vf, const word& name ) { @@ -81,7 +78,7 @@ tmp > div ( const surfaceScalarField& flux, - GeometricField& vf + const GeometricField& vf ) { return fvm::div(flux, vf, "div("+flux.name()+','+vf.name()+')'); @@ -92,7 +89,7 @@ tmp > div ( const tmp& tflux, - GeometricField& vf + const GeometricField& vf ) { tmp > Div(fvm::div(tflux(), vf)); diff --git a/src/finiteVolume/finiteVolume/fvm/fvmDiv.H b/src/finiteVolume/finiteVolume/fvm/fvmDiv.H index c15fc72dec..9e45a883da 100644 --- a/src/finiteVolume/finiteVolume/fvm/fvmDiv.H +++ b/src/finiteVolume/finiteVolume/fvm/fvmDiv.H @@ -56,7 +56,7 @@ namespace fvm tmp > div ( const surfaceScalarField&, - GeometricField&, + const GeometricField&, const word& name ); @@ -64,7 +64,7 @@ namespace fvm tmp > div ( const tmp&, - GeometricField&, + const GeometricField&, const word& name ); @@ -73,14 +73,14 @@ namespace fvm tmp > div ( const surfaceScalarField&, - GeometricField& + const GeometricField& ); template tmp > div ( const tmp&, - GeometricField& + const GeometricField& ); } diff --git a/src/finiteVolume/finiteVolume/fvm/fvmLaplacian.C b/src/finiteVolume/finiteVolume/fvm/fvmLaplacian.C index 4a60eadd3d..501456da3c 100644 --- a/src/finiteVolume/finiteVolume/fvm/fvmLaplacian.C +++ b/src/finiteVolume/finiteVolume/fvm/fvmLaplacian.C @@ -45,7 +45,7 @@ template tmp > laplacian ( - GeometricField& vf, + const GeometricField& vf, const word& name ) { @@ -70,7 +70,7 @@ template tmp > laplacian ( - GeometricField& vf + const GeometricField& vf ) { surfaceScalarField Gamma @@ -100,7 +100,7 @@ tmp > laplacian ( const zeroField&, - GeometricField& vf, + const GeometricField& vf, const word& name ) { @@ -116,7 +116,7 @@ tmp > laplacian ( const zeroField&, - GeometricField& vf + const GeometricField& vf ) { return tmp > @@ -131,7 +131,7 @@ tmp > laplacian ( const oneField&, - GeometricField& vf, + const GeometricField& vf, const word& name ) { @@ -144,7 +144,7 @@ tmp > laplacian ( const oneField&, - GeometricField& vf + const GeometricField& vf ) { return fvm::laplacian(vf); @@ -156,11 +156,11 @@ tmp > laplacian ( const dimensioned& gamma, - GeometricField& vf, + const GeometricField& vf, const word& name ) { - GeometricField Gamma + const GeometricField Gamma ( IOobject ( @@ -182,10 +182,10 @@ tmp > laplacian ( const dimensioned& gamma, - GeometricField& vf + const GeometricField& vf ) { - GeometricField Gamma + const GeometricField Gamma ( IOobject ( @@ -209,7 +209,7 @@ tmp > laplacian ( const GeometricField& gamma, - GeometricField& vf, + const GeometricField& vf, const word& name ) { @@ -226,7 +226,7 @@ tmp > laplacian ( const tmp >& tgamma, - GeometricField& vf, + const GeometricField& vf, const word& name ) { @@ -241,7 +241,7 @@ tmp > laplacian ( const GeometricField& gamma, - GeometricField& vf + const GeometricField& vf ) { return fvm::laplacian @@ -258,7 +258,7 @@ tmp > laplacian ( const tmp >& tgamma, - GeometricField& vf + const GeometricField& vf ) { tmp > Laplacian(fvm::laplacian(tgamma(), vf)); @@ -274,7 +274,7 @@ tmp > laplacian ( const GeometricField& gamma, - GeometricField& vf, + const GeometricField& vf, const word& name ) { @@ -291,7 +291,7 @@ tmp > laplacian ( const tmp >& tgamma, - GeometricField& vf, + const GeometricField& vf, const word& name ) { @@ -306,7 +306,7 @@ tmp > laplacian ( const GeometricField& gamma, - GeometricField& vf + const GeometricField& vf ) { return fvm::laplacian @@ -323,7 +323,7 @@ tmp > laplacian ( const tmp >& tGamma, - GeometricField& vf + const GeometricField& vf ) { tmp > tfvm(fvm::laplacian(tGamma(), vf)); diff --git a/src/finiteVolume/finiteVolume/fvm/fvmLaplacian.H b/src/finiteVolume/finiteVolume/fvm/fvmLaplacian.H index cc06ec5008..c41774361f 100644 --- a/src/finiteVolume/finiteVolume/fvm/fvmLaplacian.H +++ b/src/finiteVolume/finiteVolume/fvm/fvmLaplacian.H @@ -55,14 +55,14 @@ namespace fvm template tmp > laplacian ( - GeometricField&, + const GeometricField&, const word& ); template tmp > laplacian ( - GeometricField& + const GeometricField& ); @@ -70,7 +70,7 @@ namespace fvm tmp > laplacian ( const zeroField&, - GeometricField&, + const GeometricField&, const word& ); @@ -78,7 +78,7 @@ namespace fvm tmp > laplacian ( const zeroField&, - GeometricField& + const GeometricField& ); @@ -86,7 +86,7 @@ namespace fvm tmp > laplacian ( const oneField&, - GeometricField&, + const GeometricField&, const word& ); @@ -94,7 +94,7 @@ namespace fvm tmp > laplacian ( const oneField&, - GeometricField& + const GeometricField& ); @@ -102,7 +102,7 @@ namespace fvm tmp > laplacian ( const dimensioned&, - GeometricField&, + const GeometricField&, const word& ); @@ -110,7 +110,7 @@ namespace fvm tmp > laplacian ( const dimensioned&, - GeometricField& + const GeometricField& ); @@ -118,7 +118,7 @@ namespace fvm tmp > laplacian ( const GeometricField&, - GeometricField&, + const GeometricField&, const word& ); @@ -126,7 +126,7 @@ namespace fvm tmp > laplacian ( const GeometricField&, - GeometricField& + const GeometricField& ); @@ -134,7 +134,7 @@ namespace fvm tmp > laplacian ( const tmp >&, - GeometricField&, + const GeometricField&, const word& ); @@ -142,7 +142,7 @@ namespace fvm tmp > laplacian ( const tmp >&, - GeometricField& + const GeometricField& ); @@ -150,7 +150,7 @@ namespace fvm tmp > laplacian ( const GeometricField&, - GeometricField&, + const GeometricField&, const word& ); @@ -158,7 +158,7 @@ namespace fvm tmp > laplacian ( const tmp >&, - GeometricField&, + const GeometricField&, const word& ); @@ -166,14 +166,14 @@ namespace fvm tmp > laplacian ( const GeometricField&, - GeometricField& + const GeometricField& ); template tmp > laplacian ( const tmp >&, - GeometricField& + const GeometricField& ); } diff --git a/src/finiteVolume/finiteVolume/fvm/fvmSup.C b/src/finiteVolume/finiteVolume/fvm/fvmSup.C index 67c18d3c59..99e2d14746 100644 --- a/src/finiteVolume/finiteVolume/fvm/fvmSup.C +++ b/src/finiteVolume/finiteVolume/fvm/fvmSup.C @@ -35,7 +35,7 @@ Foam::tmp > Foam::fvm::Su ( const DimensionedField& su, - GeometricField& vf + const GeometricField& vf ) { const fvMesh& mesh = vf.mesh(); @@ -60,7 +60,7 @@ Foam::tmp > Foam::fvm::Su ( const tmp >& tsu, - GeometricField& vf + const GeometricField& vf ) { tmp > tfvm = fvm::Su(tsu(), vf); @@ -73,7 +73,7 @@ Foam::tmp > Foam::fvm::Su ( const tmp >& tsu, - GeometricField& vf + const GeometricField& vf ) { tmp > tfvm = fvm::Su(tsu(), vf); @@ -86,7 +86,7 @@ Foam::zeroField Foam::fvm::Su ( const zeroField&, - GeometricField& vf + const GeometricField& vf ) { return zeroField(); @@ -98,7 +98,7 @@ Foam::tmp > Foam::fvm::Sp ( const DimensionedField& sp, - GeometricField& vf + const GeometricField& vf ) { const fvMesh& mesh = vf.mesh(); @@ -123,7 +123,7 @@ Foam::tmp > Foam::fvm::Sp ( const tmp >& tsp, - GeometricField& vf + const GeometricField& vf ) { tmp > tfvm = fvm::Sp(tsp(), vf); @@ -136,7 +136,7 @@ Foam::tmp > Foam::fvm::Sp ( const tmp& tsp, - GeometricField& vf + const GeometricField& vf ) { tmp > tfvm = fvm::Sp(tsp(), vf); @@ -150,7 +150,7 @@ Foam::tmp > Foam::fvm::Sp ( const dimensionedScalar& sp, - GeometricField& vf + const GeometricField& vf ) { const fvMesh& mesh = vf.mesh(); @@ -175,7 +175,7 @@ Foam::zeroField Foam::fvm::Sp ( const zeroField&, - GeometricField& + const GeometricField& ) { return zeroField(); @@ -187,7 +187,7 @@ Foam::tmp > Foam::fvm::SuSp ( const DimensionedField& susp, - GeometricField& vf + const GeometricField& vf ) { const fvMesh& mesh = vf.mesh(); @@ -215,7 +215,7 @@ Foam::tmp > Foam::fvm::SuSp ( const tmp >& tsusp, - GeometricField& vf + const GeometricField& vf ) { tmp > tfvm = fvm::SuSp(tsusp(), vf); @@ -228,7 +228,7 @@ Foam::tmp > Foam::fvm::SuSp ( const tmp& tsusp, - GeometricField& vf + const GeometricField& vf ) { tmp > tfvm = fvm::SuSp(tsusp(), vf); @@ -241,7 +241,7 @@ Foam::zeroField Foam::fvm::SuSp ( const zeroField&, - GeometricField& vf + const GeometricField& vf ) { return zeroField(); diff --git a/src/finiteVolume/finiteVolume/fvm/fvmSup.H b/src/finiteVolume/finiteVolume/fvm/fvmSup.H index 425a57c6e3..a5662c1733 100644 --- a/src/finiteVolume/finiteVolume/fvm/fvmSup.H +++ b/src/finiteVolume/finiteVolume/fvm/fvmSup.H @@ -56,28 +56,28 @@ namespace fvm tmp > Su ( const DimensionedField&, - GeometricField& + const GeometricField& ); template tmp > Su ( const tmp >&, - GeometricField& + const GeometricField& ); template tmp > Su ( const tmp >&, - GeometricField& + const GeometricField& ); template zeroField Su ( const zeroField&, - GeometricField& + const GeometricField& ); @@ -87,21 +87,21 @@ namespace fvm tmp > Sp ( const DimensionedField&, - GeometricField& + const GeometricField& ); template tmp > Sp ( const tmp >&, - GeometricField& + const GeometricField& ); template tmp > Sp ( const tmp&, - GeometricField& + const GeometricField& ); @@ -109,7 +109,7 @@ namespace fvm tmp > Sp ( const dimensionedScalar&, - GeometricField& + const GeometricField& ); @@ -117,7 +117,7 @@ namespace fvm zeroField Sp ( const zeroField&, - GeometricField& + const GeometricField& ); @@ -127,28 +127,28 @@ namespace fvm tmp > SuSp ( const DimensionedField&, - GeometricField& + const GeometricField& ); template tmp > SuSp ( const tmp >&, - GeometricField& + const GeometricField& ); template tmp > SuSp ( const tmp&, - GeometricField& + const GeometricField& ); template zeroField SuSp ( const zeroField&, - GeometricField& + const GeometricField& ); } diff --git a/src/finiteVolume/finiteVolume/gradSchemes/extendedLeastSquaresGrad/extendedLeastSquaresGrad.C b/src/finiteVolume/finiteVolume/gradSchemes/extendedLeastSquaresGrad/extendedLeastSquaresGrad.C index 24b7e8bae0..797e0f5b77 100644 --- a/src/finiteVolume/finiteVolume/gradSchemes/extendedLeastSquaresGrad/extendedLeastSquaresGrad.C +++ b/src/finiteVolume/finiteVolume/gradSchemes/extendedLeastSquaresGrad/extendedLeastSquaresGrad.C @@ -21,7 +21,7 @@ License You should have received a copy of the GNU General Public License along with OpenFOAM; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - + \*---------------------------------------------------------------------------*/ #include "extendedLeastSquaresGrad.H" @@ -35,27 +35,20 @@ License // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -namespace Foam -{ - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace fv -{ - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - template -tmp +Foam::tmp < - GeometricField + Foam::GeometricField < - typename outerProduct::type, fvPatchField, volMesh + typename Foam::outerProduct::type, + Foam::fvPatchField, + Foam::volMesh > > -extendedLeastSquaresGrad::grad +Foam::fv::extendedLeastSquaresGrad::calcGrad ( - const GeometricField& vsf + const GeometricField& vsf, + const word& name ) const { typedef typename outerProduct::type GradType; @@ -68,7 +61,7 @@ extendedLeastSquaresGrad::grad ( IOobject ( - "grad("+vsf.name()+')', + name, vsf.instance(), mesh, IOobject::NO_READ, @@ -120,7 +113,7 @@ extendedLeastSquaresGrad::grad if (vsf.boundaryField()[patchi].coupled()) { - Field neiVsf = + Field neiVsf = vsf.boundaryField()[patchi].patchNeighbourField(); forAll(neiVsf, patchFaceI) @@ -162,12 +155,4 @@ extendedLeastSquaresGrad::grad } -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace fv - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - // ************************************************************************* // diff --git a/src/finiteVolume/finiteVolume/gradSchemes/extendedLeastSquaresGrad/extendedLeastSquaresGrad.H b/src/finiteVolume/finiteVolume/gradSchemes/extendedLeastSquaresGrad/extendedLeastSquaresGrad.H index e8da1ca92f..40003aa703 100644 --- a/src/finiteVolume/finiteVolume/gradSchemes/extendedLeastSquaresGrad/extendedLeastSquaresGrad.H +++ b/src/finiteVolume/finiteVolume/gradSchemes/extendedLeastSquaresGrad/extendedLeastSquaresGrad.H @@ -102,13 +102,16 @@ public: // Member Functions - tmp + //- Return the gradient of the given field to the gradScheme::grad + // for optional caching + virtual tmp < GeometricField ::type, fvPatchField, volMesh> - > grad + > calcGrad ( - const GeometricField& + const GeometricField& vsf, + const word& name ) const; }; diff --git a/src/finiteVolume/finiteVolume/gradSchemes/fourthGrad/fourthGrad.C b/src/finiteVolume/finiteVolume/gradSchemes/fourthGrad/fourthGrad.C index f8a4992bd1..c72525e881 100644 --- a/src/finiteVolume/finiteVolume/gradSchemes/fourthGrad/fourthGrad.C +++ b/src/finiteVolume/finiteVolume/gradSchemes/fourthGrad/fourthGrad.C @@ -21,7 +21,7 @@ License You should have received a copy of the GNU General Public License along with OpenFOAM; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - + \*---------------------------------------------------------------------------*/ #include "fourthGrad.H" @@ -35,27 +35,20 @@ License // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -namespace Foam -{ - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace fv -{ - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - template -tmp +Foam::tmp < - GeometricField + Foam::GeometricField < - typename outerProduct::type, fvPatchField, volMesh + typename Foam::outerProduct::type, + Foam::fvPatchField, + Foam::volMesh > > -fourthGrad::grad +Foam::fv::fourthGrad::calcGrad ( - const GeometricField& vsf + const GeometricField& vsf, + const word& name ) const { // The fourth-order gradient is calculated in two passes. First, @@ -80,7 +73,7 @@ fourthGrad::grad ( IOobject ( - "grad("+vsf.name()+')', + name, vsf.instance(), mesh, IOobject::NO_READ, @@ -130,7 +123,7 @@ fourthGrad::grad const scalarField& lambdap = lambda.boundaryField()[patchi]; // Build the d-vectors - vectorField pd = + vectorField pd = mesh.Sf().boundaryField()[patchi] /( mesh.magSf().boundaryField()[patchi] @@ -171,12 +164,4 @@ fourthGrad::grad } -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace fv - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - // ************************************************************************* // diff --git a/src/finiteVolume/finiteVolume/gradSchemes/fourthGrad/fourthGrad.H b/src/finiteVolume/finiteVolume/gradSchemes/fourthGrad/fourthGrad.H index 72e2d3b5ad..1698269b3e 100644 --- a/src/finiteVolume/finiteVolume/gradSchemes/fourthGrad/fourthGrad.H +++ b/src/finiteVolume/finiteVolume/gradSchemes/fourthGrad/fourthGrad.H @@ -83,13 +83,16 @@ public: // Member Functions - tmp + //- Return the gradient of the given field to the gradScheme::grad + // for optional caching + virtual tmp < GeometricField ::type, fvPatchField, volMesh> - > grad + > calcGrad ( - const GeometricField& + const GeometricField& vsf, + const word& name ) const; }; diff --git a/src/finiteVolume/finiteVolume/gradSchemes/gaussGrad/gaussGrad.C b/src/finiteVolume/finiteVolume/gradSchemes/gaussGrad/gaussGrad.C index 57dc262370..b8e06f4c55 100644 --- a/src/finiteVolume/finiteVolume/gradSchemes/gaussGrad/gaussGrad.C +++ b/src/finiteVolume/finiteVolume/gradSchemes/gaussGrad/gaussGrad.C @@ -21,7 +21,7 @@ License You should have received a copy of the GNU General Public License along with OpenFOAM; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - + \*---------------------------------------------------------------------------*/ #include "gaussGrad.H" @@ -29,27 +29,20 @@ License // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -namespace Foam -{ - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace fv -{ - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - template -tmp +Foam::tmp < - GeometricField + Foam::GeometricField < - typename outerProduct::type, fvPatchField, volMesh + typename Foam::outerProduct::type, + Foam::fvPatchField, + Foam::volMesh > > -gaussGrad::grad +Foam::fv::gaussGrad::gradf ( - const GeometricField& ssf + const GeometricField& ssf, + const word& name ) { typedef typename outerProduct::type GradType; @@ -62,7 +55,7 @@ gaussGrad::grad ( IOobject ( - "grad("+ssf.name()+')', + name, ssf.instance(), mesh, IOobject::NO_READ, @@ -119,27 +112,29 @@ gaussGrad::grad template -tmp +Foam::tmp < - GeometricField + Foam::GeometricField < - typename outerProduct::type, fvPatchField, volMesh + typename Foam::outerProduct::type, + Foam::fvPatchField, + Foam::volMesh > > -gaussGrad::grad +Foam::fv::gaussGrad::calcGrad ( - const GeometricField& vsf + const GeometricField& vsf, + const word& name ) const { typedef typename outerProduct::type GradType; tmp > tgGrad ( - grad(tinterpScheme_().interpolate(vsf)) + gradf(tinterpScheme_().interpolate(vsf), name) ); GeometricField& gGrad = tgGrad(); - gGrad.rename("grad(" + vsf.name() + ')'); correctBoundaryConditions(vsf, gGrad); return tgGrad; @@ -147,7 +142,7 @@ gaussGrad::grad template -void gaussGrad::correctBoundaryConditions +void Foam::fv::gaussGrad::correctBoundaryConditions ( const GeometricField& vsf, GeometricField @@ -174,12 +169,4 @@ void gaussGrad::correctBoundaryConditions } -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace fv - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - // ************************************************************************* // diff --git a/src/finiteVolume/finiteVolume/gradSchemes/gaussGrad/gaussGrad.H b/src/finiteVolume/finiteVolume/gradSchemes/gaussGrad/gaussGrad.H index 8ddfe1bf7c..4b03d582f0 100644 --- a/src/finiteVolume/finiteVolume/gradSchemes/gaussGrad/gaussGrad.H +++ b/src/finiteVolume/finiteVolume/gradSchemes/gaussGrad/gaussGrad.H @@ -89,7 +89,7 @@ public: tinterpScheme_(new linear(mesh)) {} - //- Construct from Istream + //- Construct from mesh and Istream gaussGrad(const fvMesh& mesh, Istream& is) : gradScheme(mesh), @@ -116,31 +116,31 @@ public: // Member Functions - //- Return the gradient of the given field + //- Return the gradient of the given field // calculated using Gauss' theorem on the given surface field static tmp < GeometricField ::type, fvPatchField, volMesh> - > grad + > gradf ( - const GeometricField& + const GeometricField&, + const word& name ); - - //- Return the gradient of the given field calculated - // using Gauss' theorem on the interpolated field - tmp + //- Return the gradient of the given field to the gradScheme::grad + // for optional caching + virtual tmp < GeometricField ::type, fvPatchField, volMesh> - > grad + > calcGrad ( - const GeometricField& + const GeometricField& vsf, + const word& name ) const; - //- Correct the boundary values of the gradient using the patchField // snGrad functions static void correctBoundaryConditions diff --git a/src/finiteVolume/finiteVolume/gradSchemes/gaussGrad/gaussGrads.C b/src/finiteVolume/finiteVolume/gradSchemes/gaussGrad/gaussGrads.C index 3aa827351e..2e98e7df2c 100644 --- a/src/finiteVolume/finiteVolume/gradSchemes/gaussGrad/gaussGrads.C +++ b/src/finiteVolume/finiteVolume/gradSchemes/gaussGrad/gaussGrads.C @@ -22,8 +22,6 @@ License along with OpenFOAM; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -Description - \*---------------------------------------------------------------------------*/ #include "fvMesh.H" diff --git a/src/finiteVolume/finiteVolume/gradSchemes/gradScheme/gradScheme.C b/src/finiteVolume/finiteVolume/gradSchemes/gradScheme/gradScheme.C index 6d7cc56560..f3e2799beb 100644 --- a/src/finiteVolume/finiteVolume/gradSchemes/gradScheme/gradScheme.C +++ b/src/finiteVolume/finiteVolume/gradSchemes/gradScheme/gradScheme.C @@ -22,28 +22,16 @@ License along with OpenFOAM; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -Description - Abstract base class for finite volume calculus gradient schemes. - \*---------------------------------------------------------------------------*/ #include "fv.H" -#include "HashTable.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace fv -{ +#include "objectRegistry.H" +#include "solution.H" // * * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * // template -tmp > gradScheme::New +Foam::tmp > Foam::fv::gradScheme::New ( const fvMesh& mesh, Istream& schemeData @@ -51,7 +39,8 @@ tmp > gradScheme::New { if (fv::debug) { - Info<< "gradScheme::New(Istream& schemeData) : " + Info<< "gradScheme::New" + "(const fvMesh& mesh, Istream& schemeData) : " "constructing gradScheme" << endl; } @@ -60,7 +49,8 @@ tmp > gradScheme::New { FatalIOErrorIn ( - "gradScheme::New(Istream& schemeData)", + "gradScheme::New" + "(const fvMesh& mesh, Istream& schemeData)", schemeData ) << "Grad scheme not specified" << endl << endl << "Valid grad schemes are :" << endl @@ -77,7 +67,8 @@ tmp > gradScheme::New { FatalIOErrorIn ( - "gradScheme::New(Istream& schemeData)", + "gradScheme::New" + "(const fvMesh& mesh, Istream& schemeData)", schemeData ) << "unknown grad scheme " << schemeName << endl << endl << "Valid grad schemes are :" << endl @@ -92,16 +83,153 @@ tmp > gradScheme::New // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // template -gradScheme::~gradScheme() +Foam::fv::gradScheme::~gradScheme() {} - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -} // End namespace fv +namespace Foam +{ + template + inline void cachePrintMessage + ( + const char* message, + const word& name, + const GeometricField& vf + ) + { + if (solution::debug) + { + Info<< "Cache: " << message << token::SPACE << name + << ", " << vf.name() << " event No. " << vf.eventNo() + << endl; + } + } +} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // +template +Foam::tmp +< + Foam::GeometricField + < + typename Foam::outerProduct::type, + Foam::fvPatchField, + Foam::volMesh + > +> +Foam::fv::gradScheme::grad +( + const GeometricField& vsf, + const word& name +) const +{ + typedef typename outerProduct::type GradType; + typedef GeometricField GradFieldType; + + if (!this->mesh().changing() && this->mesh().cache(name)) + { + if (!mesh().objectRegistry::foundObject(name)) + { + cachePrintMessage("Caching", name, vsf); + tmp tgGrad = calcGrad(vsf, name); + regIOobject::store(tgGrad.ptr()); + } + + cachePrintMessage("Retreiving", name, vsf); + GradFieldType& gGrad = const_cast + ( + mesh().objectRegistry::lookupObject(name) + ); + + if (gGrad.upToDate(vsf)) + { + return gGrad; + } + else + { + cachePrintMessage("Deleting", name, vsf); + gGrad.release(); + delete &gGrad; + + cachePrintMessage("Recalculating", name, vsf); + tmp tgGrad = calcGrad(vsf, name); + + cachePrintMessage("Storing", name, vsf); + regIOobject::store(tgGrad.ptr()); + GradFieldType& gGrad = const_cast + ( + mesh().objectRegistry::lookupObject(name) + ); + + return gGrad; + } + } + else + { + if (mesh().objectRegistry::foundObject(name)) + { + cachePrintMessage("Retreiving", name, vsf); + + GradFieldType& gGrad = const_cast + ( + mesh().objectRegistry::lookupObject(name) + ); + + if (gGrad.ownedByRegistry()) + { + cachePrintMessage("Deleting", name, vsf); + gGrad.release(); + delete &gGrad; + } + } + + cachePrintMessage("Calculating", name, vsf); + return calcGrad(vsf, name); + } +} + + +template +Foam::tmp +< + Foam::GeometricField + < + typename Foam::outerProduct::type, + Foam::fvPatchField, + Foam::volMesh + > +> +Foam::fv::gradScheme::grad +( + const GeometricField& vsf +) const +{ + return grad(vsf, "grad(" + vsf.name() + ')'); +} + + +template +Foam::tmp +< + Foam::GeometricField + < + typename Foam::outerProduct::type, + Foam::fvPatchField, + Foam::volMesh + > +> +Foam::fv::gradScheme::grad +( + const tmp >& tvsf +) const +{ + typedef typename outerProduct::type GradType; + typedef GeometricField GradFieldType; + + tmp tgrad = grad(tvsf()); + tvsf.clear(); + return tgrad; +} -} // End namespace Foam // ************************************************************************* // diff --git a/src/finiteVolume/finiteVolume/gradSchemes/gradScheme/gradScheme.H b/src/finiteVolume/finiteVolume/gradSchemes/gradScheme/gradScheme.H index e338c3dd9e..f1d3fa2262 100644 --- a/src/finiteVolume/finiteVolume/gradSchemes/gradScheme/gradScheme.H +++ b/src/finiteVolume/finiteVolume/gradSchemes/gradScheme/gradScheme.H @@ -114,9 +114,8 @@ public: ); - // Destructor - - virtual ~gradScheme(); + //- Destructor + virtual ~gradScheme(); // Member Functions @@ -127,15 +126,54 @@ public: return mesh_; } - //- Calculate and return the grad of the given field + //- Calculate and return the grad of the given field. + // Used by grad either to recalculate the cached gradient when it is + // out of date with respect to the field or when it is not cached. virtual tmp + < + GeometricField + ::type, fvPatchField, volMesh> + > calcGrad + ( + const GeometricField&, + const word& name + ) const = 0; + + //- Calculate and return the grad of the given field + // which may have been cached + tmp + < + GeometricField + ::type, fvPatchField, volMesh> + > grad + ( + const GeometricField&, + const word& name + ) const; + + //- Calculate and return the grad of the given field + // with the default name + // which may have been cached + tmp < GeometricField ::type, fvPatchField, volMesh> > grad ( const GeometricField& - ) const = 0; + ) const; + + //- Calculate and return the grad of the given field + // with the default name + // which may have been cached + tmp + < + GeometricField + ::type, fvPatchField, volMesh> + > grad + ( + const tmp >& + ) const; }; diff --git a/src/finiteVolume/finiteVolume/gradSchemes/leastSquaresGrad/leastSquaresGrad.C b/src/finiteVolume/finiteVolume/gradSchemes/leastSquaresGrad/leastSquaresGrad.C index 2ccdcebfdd..581962315b 100644 --- a/src/finiteVolume/finiteVolume/gradSchemes/leastSquaresGrad/leastSquaresGrad.C +++ b/src/finiteVolume/finiteVolume/gradSchemes/leastSquaresGrad/leastSquaresGrad.C @@ -21,7 +21,7 @@ License You should have received a copy of the GNU General Public License along with OpenFOAM; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - + \*---------------------------------------------------------------------------*/ #include "leastSquaresGrad.H" @@ -35,27 +35,20 @@ License // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -namespace Foam -{ - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace fv -{ - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - template -tmp +Foam::tmp < - GeometricField + Foam::GeometricField < - typename outerProduct::type, fvPatchField, volMesh + typename Foam::outerProduct::type, + Foam::fvPatchField, + Foam::volMesh > > -leastSquaresGrad::grad +Foam::fv::leastSquaresGrad::calcGrad ( - const GeometricField& vsf + const GeometricField& vsf, + const word& name ) const { typedef typename outerProduct::type GradType; @@ -68,7 +61,7 @@ leastSquaresGrad::grad ( IOobject ( - "grad("+vsf.name()+')', + name, vsf.instance(), mesh, IOobject::NO_READ, @@ -116,7 +109,7 @@ leastSquaresGrad::grad if (vsf.boundaryField()[patchi].coupled()) { - Field neiVsf = + Field neiVsf = vsf.boundaryField()[patchi].patchNeighbourField(); forAll(neiVsf, patchFaceI) @@ -147,12 +140,4 @@ leastSquaresGrad::grad } -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace fv - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - // ************************************************************************* // diff --git a/src/finiteVolume/finiteVolume/gradSchemes/leastSquaresGrad/leastSquaresGrad.H b/src/finiteVolume/finiteVolume/gradSchemes/leastSquaresGrad/leastSquaresGrad.H index 90606b83be..efb15a2465 100644 --- a/src/finiteVolume/finiteVolume/gradSchemes/leastSquaresGrad/leastSquaresGrad.H +++ b/src/finiteVolume/finiteVolume/gradSchemes/leastSquaresGrad/leastSquaresGrad.H @@ -89,13 +89,16 @@ public: // Member Functions - tmp + //- Return the gradient of the given field to the gradScheme::grad + // for optional caching + virtual tmp < GeometricField ::type, fvPatchField, volMesh> - > grad + > calcGrad ( - const GeometricField& + const GeometricField& vsf, + const word& name ) const; }; diff --git a/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellLimitedGrad/cellLimitedGrad.H b/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellLimitedGrad/cellLimitedGrad.H index 4599902885..22083de571 100644 --- a/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellLimitedGrad/cellLimitedGrad.H +++ b/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellLimitedGrad/cellLimitedGrad.H @@ -117,18 +117,82 @@ public: const Type& extrapolate ); - - tmp + //- Return the gradient of the given field to the gradScheme::grad + // for optional caching + virtual tmp < GeometricField ::type, fvPatchField, volMesh> - > grad + > calcGrad ( - const GeometricField& + const GeometricField& vsf, + const word& name ) const; }; +// * * * * * * * * * * * * Inline Member Function * * * * * * * * * * * * * // + +template<> +inline void cellLimitedGrad::limitFace +( + scalar& limiter, + const scalar& maxDelta, + const scalar& minDelta, + const scalar& extrapolate +) +{ + if (extrapolate > maxDelta + VSMALL) + { + limiter = min(limiter, maxDelta/extrapolate); + } + else if (extrapolate < minDelta - VSMALL) + { + limiter = min(limiter, minDelta/extrapolate); + } +} + + +template +inline void cellLimitedGrad::limitFace +( + Type& limiter, + const Type& maxDelta, + const Type& minDelta, + const Type& extrapolate +) +{ + for(direction cmpt=0; cmpt::limitFace + ( + limiter.component(cmpt), + maxDelta.component(cmpt), + minDelta.component(cmpt), + extrapolate.component(cmpt) + ); + } +} + + +// * * * * * * * * Template Member Function Specialisations * * * * * * * * // + +template<> +tmp cellLimitedGrad::calcGrad +( + const volScalarField& vsf, + const word& name +) const; + + +template<> +tmp cellLimitedGrad::calcGrad +( + const volVectorField& vsf, + const word& name +) const; + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace fv diff --git a/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellLimitedGrad/cellLimitedGrads.C b/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellLimitedGrad/cellLimitedGrads.C index c4f0bf524a..fbc2b8fba5 100644 --- a/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellLimitedGrad/cellLimitedGrads.C +++ b/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellLimitedGrad/cellLimitedGrads.C @@ -36,70 +36,25 @@ License namespace Foam { - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - namespace fv { - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -makeFvGradScheme(cellLimitedGrad) + makeFvGradScheme(cellLimitedGrad) +} +} // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // template<> -inline void cellLimitedGrad::limitFace +Foam::tmp +Foam::fv::cellLimitedGrad::calcGrad ( - scalar& limiter, - const scalar& maxDelta, - const scalar& minDelta, - const scalar& extrapolate -) -{ - if (extrapolate > maxDelta + VSMALL) - { - limiter = min(limiter, maxDelta/extrapolate); - } - else if (extrapolate < minDelta - VSMALL) - { - limiter = min(limiter, minDelta/extrapolate); - } -} - -template -inline void cellLimitedGrad::limitFace -( - Type& limiter, - const Type& maxDelta, - const Type& minDelta, - const Type& extrapolate -) -{ - for(direction cmpt=0; cmpt::limitFace - ( - limiter.component(cmpt), - maxDelta.component(cmpt), - minDelta.component(cmpt), - extrapolate.component(cmpt) - ); - } -} - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -template<> -tmp cellLimitedGrad::grad -( - const volScalarField& vsf + const volScalarField& vsf, + const word& name ) const { const fvMesh& mesh = vsf.mesh(); - tmp tGrad = basicGradScheme_().grad(vsf); + tmp tGrad = basicGradScheme_().calcGrad(vsf, name); if (k_ < SMALL) { @@ -244,14 +199,16 @@ tmp cellLimitedGrad::grad template<> -tmp cellLimitedGrad::grad +Foam::tmp +Foam::fv::cellLimitedGrad::calcGrad ( - const volVectorField& vsf + const volVectorField& vsf, + const word& name ) const { const fvMesh& mesh = vsf.mesh(); - tmp tGrad = basicGradScheme_().grad(vsf); + tmp tGrad = basicGradScheme_().calcGrad(vsf, name); if (k_ < SMALL) { @@ -402,12 +359,4 @@ tmp cellLimitedGrad::grad } -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace fv - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - // ************************************************************************* // diff --git a/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellMDLimitedGrad/cellMDLimitedGrad.H b/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellMDLimitedGrad/cellMDLimitedGrad.H index 05953638b2..d9b389d0f5 100644 --- a/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellMDLimitedGrad/cellMDLimitedGrad.H +++ b/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellMDLimitedGrad/cellMDLimitedGrad.H @@ -117,13 +117,16 @@ public: const vector& dcf ); - tmp + //- Return the gradient of the given field to the gradScheme::grad + // for optional caching + virtual tmp < GeometricField ::type, fvPatchField, volMesh> - > grad + > calcGrad ( - const GeometricField& + const GeometricField& vsf, + const word& name ) const; }; @@ -178,6 +181,24 @@ inline void cellMDLimitedGrad::limitFace } +// * * * * * * * * Template Member Function Specialisations * * * * * * * * // + +template<> +tmp cellMDLimitedGrad::calcGrad +( + const volScalarField& vsf, + const word& name +) const; + + +template<> +tmp cellMDLimitedGrad::calcGrad +( + const volVectorField& vsf, + const word& name +) const; + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace fv diff --git a/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellMDLimitedGrad/cellMDLimitedGrads.C b/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellMDLimitedGrad/cellMDLimitedGrads.C index 5a35033428..fffc74e97a 100644 --- a/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellMDLimitedGrad/cellMDLimitedGrads.C +++ b/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/cellMDLimitedGrad/cellMDLimitedGrads.C @@ -36,27 +36,26 @@ License namespace Foam { - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - namespace fv { + makeFvGradScheme(cellMDLimitedGrad) +} +} -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -makeFvGradScheme(cellMDLimitedGrad) // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // template<> -tmp cellMDLimitedGrad::grad +Foam::tmp +Foam::fv::cellMDLimitedGrad::calcGrad ( - const volScalarField& vsf + const volScalarField& vsf, + const word& name ) const { const fvMesh& mesh = vsf.mesh(); - tmp tGrad = basicGradScheme_().grad(vsf); + tmp tGrad = basicGradScheme_().calcGrad(vsf, name); if (k_ < SMALL) { @@ -190,14 +189,16 @@ tmp cellMDLimitedGrad::grad template<> -tmp cellMDLimitedGrad::grad +Foam::tmp +Foam::fv::cellMDLimitedGrad::calcGrad ( - const volVectorField& vsf + const volVectorField& vsf, + const word& name ) const { const fvMesh& mesh = vsf.mesh(); - tmp tGrad = basicGradScheme_().grad(vsf); + tmp tGrad = basicGradScheme_().calcGrad(vsf, name); if (k_ < SMALL) { @@ -329,12 +330,4 @@ tmp cellMDLimitedGrad::grad } -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace fv - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - // ************************************************************************* // diff --git a/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/faceLimitedGrad/faceLimitedGrad.H b/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/faceLimitedGrad/faceLimitedGrad.H index 8af5298f42..96393c771e 100644 --- a/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/faceLimitedGrad/faceLimitedGrad.H +++ b/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/faceLimitedGrad/faceLimitedGrad.H @@ -118,17 +118,63 @@ public: // Member Functions - tmp + //- Return the gradient of the given field to the gradScheme::grad + // for optional caching + virtual tmp < GeometricField ::type, fvPatchField, volMesh> - > grad + > calcGrad ( - const GeometricField& - ) const; + const GeometricField& vsf, + const word& name + ) const + { + return grad(vsf); + } }; +// * * * * * * * * * * * * Inline Member Function * * * * * * * * * * * * * // + +template +inline void faceLimitedGrad::limitFace +( + scalar& limiter, + const scalar maxDelta, + const scalar minDelta, + const scalar extrapolate +) const +{ + if (extrapolate > maxDelta + VSMALL) + { + limiter = min(limiter, maxDelta/extrapolate); + } + else if (extrapolate < minDelta - VSMALL) + { + limiter = min(limiter, minDelta/extrapolate); + } +} + + +// * * * * * * * * Template Member Function Specialisations * * * * * * * * // + +template<> +tmp faceLimitedGrad::calcGrad +( + const volScalarField& vsf, + const word& name +) const; + + +template<> +tmp faceLimitedGrad::calcGrad +( + const volVectorField& vsf, + const word& name +) const; + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace fv diff --git a/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/faceLimitedGrad/faceLimitedGrads.C b/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/faceLimitedGrad/faceLimitedGrads.C index afaf398fbc..83c065fa54 100644 --- a/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/faceLimitedGrad/faceLimitedGrads.C +++ b/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/faceLimitedGrad/faceLimitedGrads.C @@ -21,7 +21,7 @@ License You should have received a copy of the GNU General Public License along with OpenFOAM; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - + \*---------------------------------------------------------------------------*/ #include "faceLimitedGrad.H" @@ -36,49 +36,26 @@ License namespace Foam { - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - namespace fv { - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -makeFvGradScheme(faceLimitedGrad) - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -template -inline void faceLimitedGrad::limitFace -( - scalar& limiter, - const scalar maxDelta, - const scalar minDelta, - const scalar extrapolate -) const -{ - if (extrapolate > maxDelta + VSMALL) - { - limiter = min(limiter, maxDelta/extrapolate); - } - else if (extrapolate < minDelta - VSMALL) - { - limiter = min(limiter, minDelta/extrapolate); - } + makeFvGradScheme(faceLimitedGrad) +} } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // template<> -tmp faceLimitedGrad::grad +Foam::tmp +Foam::fv::faceLimitedGrad::calcGrad ( - const volScalarField& vsf + const volScalarField& vsf, + const word& name ) const { const fvMesh& mesh = vsf.mesh(); - tmp tGrad = basicGradScheme_().grad(vsf); + tmp tGrad = basicGradScheme_().calcGrad(vsf, name); if (k_ < SMALL) { @@ -205,14 +182,16 @@ tmp faceLimitedGrad::grad template<> -tmp faceLimitedGrad::grad +Foam::tmp +Foam::fv::faceLimitedGrad::calcGrad ( - const volVectorField& vvf + const volVectorField& vvf, + const word& name ) const { const fvMesh& mesh = vvf.mesh(); - tmp tGrad = basicGradScheme_().grad(vvf); + tmp tGrad = basicGradScheme_().calcGrad(vvf, name); if (k_ < SMALL) { @@ -363,12 +342,4 @@ tmp faceLimitedGrad::grad } -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace fv - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - // ************************************************************************* // diff --git a/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/faceMDLimitedGrad/faceMDLimitedGrad.H b/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/faceMDLimitedGrad/faceMDLimitedGrad.H index f9c826452a..20177019d7 100644 --- a/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/faceMDLimitedGrad/faceMDLimitedGrad.H +++ b/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/faceMDLimitedGrad/faceMDLimitedGrad.H @@ -118,17 +118,38 @@ public: // Member Functions - tmp + //- Return the gradient of the given field to the gradScheme::grad + // for optional caching + virtual tmp < GeometricField ::type, fvPatchField, volMesh> - > grad + > calcGrad ( - const GeometricField& + const GeometricField& vsf, + const word& name ) const; }; +// * * * * * * * * Template Member Function Specialisations * * * * * * * * // + +template<> +tmp faceMDLimitedGrad::calcGrad +( + const volScalarField& vsf, + const word& name +) const; + + +template<> +tmp faceMDLimitedGrad::calcGrad +( + const volVectorField& vsf, + const word& name +) const; + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace fv diff --git a/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/faceMDLimitedGrad/faceMDLimitedGrads.C b/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/faceMDLimitedGrad/faceMDLimitedGrads.C index 27124c4673..87ddd25096 100644 --- a/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/faceMDLimitedGrad/faceMDLimitedGrads.C +++ b/src/finiteVolume/finiteVolume/gradSchemes/limitedGradSchemes/faceMDLimitedGrad/faceMDLimitedGrads.C @@ -21,7 +21,7 @@ License You should have received a copy of the GNU General Public License along with OpenFOAM; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - + \*---------------------------------------------------------------------------*/ #include "faceMDLimitedGrad.H" @@ -37,28 +37,25 @@ License namespace Foam { - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - namespace fv { + makeFvGradScheme(faceMDLimitedGrad) +} +} // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -makeFvGradScheme(faceMDLimitedGrad) - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -// FaceLimited scalar gradient template<> -tmp faceMDLimitedGrad::grad +Foam::tmp +Foam::fv::faceMDLimitedGrad::calcGrad ( - const volScalarField& vsf + const volScalarField& vsf, + const word& name ) const { const fvMesh& mesh = vsf.mesh(); - tmp tGrad = basicGradScheme_().grad(vsf); + tmp tGrad = basicGradScheme_().calcGrad(vsf, name); if (k_ < SMALL) { @@ -189,14 +186,16 @@ tmp faceMDLimitedGrad::grad template<> -tmp faceMDLimitedGrad::grad +Foam::tmp +Foam::fv::faceMDLimitedGrad::calcGrad ( - const volVectorField& vvf + const volVectorField& vvf, + const word& name ) const { const fvMesh& mesh = vvf.mesh(); - tmp tGrad = basicGradScheme_().grad(vvf); + tmp tGrad = basicGradScheme_().calcGrad(vvf, name); if (k_ < SMALL) { @@ -327,12 +326,4 @@ tmp faceMDLimitedGrad::grad } -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace fv - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - // ************************************************************************* // diff --git a/src/finiteVolume/finiteVolume/laplacianSchemes/gaussLaplacianScheme/gaussLaplacianScheme.C b/src/finiteVolume/finiteVolume/laplacianSchemes/gaussLaplacianScheme/gaussLaplacianScheme.C index 1df55b7e17..b58c2bd41d 100644 --- a/src/finiteVolume/finiteVolume/laplacianSchemes/gaussLaplacianScheme/gaussLaplacianScheme.C +++ b/src/finiteVolume/finiteVolume/laplacianSchemes/gaussLaplacianScheme/gaussLaplacianScheme.C @@ -47,7 +47,7 @@ tmp > gaussLaplacianScheme::fvmLaplacianUncorrected ( const surfaceScalarField& gammaMagSf, - GeometricField& vf + const GeometricField& vf ) { tmp tdeltaCoeffs = @@ -67,9 +67,9 @@ gaussLaplacianScheme::fvmLaplacianUncorrected fvm.upper() = deltaCoeffs.internalField()*gammaMagSf.internalField(); fvm.negSumDiag(); - forAll(fvm.psi().boundaryField(), patchI) + forAll(vf.boundaryField(), patchI) { - const fvPatchField& psf = fvm.psi().boundaryField()[patchI]; + const fvPatchField& psf = vf.boundaryField()[patchI]; const fvsPatchScalarField& patchGamma = gammaMagSf.boundaryField()[patchI]; @@ -149,7 +149,7 @@ tmp > gaussLaplacianScheme::fvmLaplacian ( const GeometricField& gamma, - GeometricField& vf + const GeometricField& vf ) { const fvMesh& mesh = this->mesh(); diff --git a/src/finiteVolume/finiteVolume/laplacianSchemes/gaussLaplacianScheme/gaussLaplacianScheme.H b/src/finiteVolume/finiteVolume/laplacianSchemes/gaussLaplacianScheme/gaussLaplacianScheme.H index a6c3138833..12b33ae0e4 100644 --- a/src/finiteVolume/finiteVolume/laplacianSchemes/gaussLaplacianScheme/gaussLaplacianScheme.H +++ b/src/finiteVolume/finiteVolume/laplacianSchemes/gaussLaplacianScheme/gaussLaplacianScheme.H @@ -62,7 +62,7 @@ class gaussLaplacianScheme tmp > fvmLaplacianUncorrected ( const surfaceScalarField& gammaMagSf, - GeometricField& + const GeometricField& ); tmp > gammaSnGradCorr @@ -126,7 +126,7 @@ public: tmp > fvmLaplacian ( const GeometricField&, - GeometricField& + const GeometricField& ); tmp > fvcLaplacian @@ -146,7 +146,7 @@ template<> \ tmp > gaussLaplacianScheme::fvmLaplacian \ ( \ const GeometricField&, \ - GeometricField& \ + const GeometricField& \ ); \ \ template<> \ diff --git a/src/finiteVolume/finiteVolume/laplacianSchemes/gaussLaplacianScheme/gaussLaplacianSchemes.C b/src/finiteVolume/finiteVolume/laplacianSchemes/gaussLaplacianScheme/gaussLaplacianSchemes.C index 5dab5ceef0..782f14ea4a 100644 --- a/src/finiteVolume/finiteVolume/laplacianSchemes/gaussLaplacianScheme/gaussLaplacianSchemes.C +++ b/src/finiteVolume/finiteVolume/laplacianSchemes/gaussLaplacianScheme/gaussLaplacianSchemes.C @@ -21,7 +21,7 @@ License You should have received a copy of the GNU General Public License along with OpenFOAM; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - + \*---------------------------------------------------------------------------*/ #include "gaussLaplacianScheme.H" @@ -44,7 +44,7 @@ Foam::tmp > \ Foam::fv::gaussLaplacianScheme::fvmLaplacian \ ( \ const GeometricField& gamma, \ - GeometricField& vf \ + const GeometricField& vf \ ) \ { \ const fvMesh& mesh = this->mesh(); \ diff --git a/src/finiteVolume/finiteVolume/laplacianSchemes/laplacianScheme/laplacianScheme.C b/src/finiteVolume/finiteVolume/laplacianSchemes/laplacianScheme/laplacianScheme.C index eb14f253ad..78ce0bc2c6 100644 --- a/src/finiteVolume/finiteVolume/laplacianSchemes/laplacianScheme/laplacianScheme.C +++ b/src/finiteVolume/finiteVolume/laplacianSchemes/laplacianScheme/laplacianScheme.C @@ -102,7 +102,7 @@ tmp > laplacianScheme::fvmLaplacian ( const GeometricField& gamma, - GeometricField& vf + const GeometricField& vf ) { return fvmLaplacian(tinterpGammaScheme_().interpolate(gamma)(), vf); diff --git a/src/finiteVolume/finiteVolume/laplacianSchemes/laplacianScheme/laplacianScheme.H b/src/finiteVolume/finiteVolume/laplacianSchemes/laplacianScheme/laplacianScheme.H index b36d87df9e..4bbe44ed9a 100644 --- a/src/finiteVolume/finiteVolume/laplacianSchemes/laplacianScheme/laplacianScheme.H +++ b/src/finiteVolume/finiteVolume/laplacianSchemes/laplacianScheme/laplacianScheme.H @@ -173,13 +173,13 @@ public: virtual tmp > fvmLaplacian ( const GeometricField&, - GeometricField& + const GeometricField& ) = 0; virtual tmp > fvmLaplacian ( const GeometricField&, - GeometricField& + const GeometricField& ); virtual tmp > fvcLaplacian diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/correctedSnGrad/correctedSnGrad.C b/src/finiteVolume/finiteVolume/snGradSchemes/correctedSnGrad/correctedSnGrad.C index 0168bd626a..631d6a9c2f 100644 --- a/src/finiteVolume/finiteVolume/snGradSchemes/correctedSnGrad/correctedSnGrad.C +++ b/src/finiteVolume/finiteVolume/snGradSchemes/correctedSnGrad/correctedSnGrad.C @@ -22,9 +22,6 @@ License along with OpenFOAM; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -Description - Simple central-difference snGrad scheme with non-orthogonal correction. - \*---------------------------------------------------------------------------*/ #include "correctedSnGrad.H" @@ -34,28 +31,44 @@ Description #include "fvcGrad.H" #include "gaussGrad.H" -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace fv -{ - // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // template -correctedSnGrad::~correctedSnGrad() +Foam::fv::correctedSnGrad::~correctedSnGrad() {} // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template -tmp > -correctedSnGrad::correction +Foam::tmp > +Foam::fv::correctedSnGrad::fullGradCorrection +( + const GeometricField& vf +) const +{ + const fvMesh& mesh = this->mesh(); + + // construct GeometricField + tmp > tssf = + mesh.correctionVectors() + & linear::type>(mesh).interpolate + ( + gradScheme::New + ( + mesh, + mesh.gradScheme(vf.name()) + )().grad(vf, "grad(" + vf.name() + ')') + ); + tssf().rename("snGradCorr(" + vf.name() + ')'); + + return tssf; +} + + +template +Foam::tmp > +Foam::fv::correctedSnGrad::correction ( const GeometricField& vf ) const @@ -89,7 +102,7 @@ correctedSnGrad::correction mesh.correctionVectors() & linear < - typename + typename outerProduct::cmptType>::type >(mesh).interpolate ( @@ -108,12 +121,4 @@ correctedSnGrad::correction } -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace fv - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - // ************************************************************************* // diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/correctedSnGrad/correctedSnGrad.H b/src/finiteVolume/finiteVolume/snGradSchemes/correctedSnGrad/correctedSnGrad.H index 2358867066..3eaa42bfdf 100644 --- a/src/finiteVolume/finiteVolume/snGradSchemes/correctedSnGrad/correctedSnGrad.H +++ b/src/finiteVolume/finiteVolume/snGradSchemes/correctedSnGrad/correctedSnGrad.H @@ -108,12 +108,36 @@ public: } //- Return the explicit correction to the correctedSnGrad - // for the given field + // for the given field using the gradient of the field + tmp > + fullGradCorrection + ( + const GeometricField& + ) const; + + //- Return the explicit correction to the correctedSnGrad + // for the given field using the gradients of the field components virtual tmp > correction(const GeometricField&) const; }; +// * * * * * * * * Template Member Function Specialisations * * * * * * * * // + +template<> +tmp correctedSnGrad::correction +( + const volScalarField& vsf +) const; + + +template<> +tmp correctedSnGrad::correction +( + const volVectorField& vvf +) const; + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace fv diff --git a/src/finiteVolume/finiteVolume/snGradSchemes/correctedSnGrad/correctedSnGrads.C b/src/finiteVolume/finiteVolume/snGradSchemes/correctedSnGrad/correctedSnGrads.C index b416a806fa..8377ba7ef4 100644 --- a/src/finiteVolume/finiteVolume/snGradSchemes/correctedSnGrad/correctedSnGrads.C +++ b/src/finiteVolume/finiteVolume/snGradSchemes/correctedSnGrad/correctedSnGrads.C @@ -22,9 +22,6 @@ License along with OpenFOAM; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -Description - Simple central-difference snGrad scheme with non-orthogonal correction. - \*---------------------------------------------------------------------------*/ #include "correctedSnGrad.H" @@ -40,4 +37,27 @@ namespace fv } } + +template<> +Foam::tmp +Foam::fv::correctedSnGrad::correction +( + const volScalarField& vsf +) const +{ + return fullGradCorrection(vsf); +} + + +template<> +Foam::tmp +Foam::fv::correctedSnGrad::correction +( + const volVectorField& vvf +) const +{ + return fullGradCorrection(vvf); +} + + // ************************************************************************* // diff --git a/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.C b/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.C index 1e49de4683..74b4282638 100644 --- a/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.C +++ b/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.C @@ -183,7 +183,7 @@ void Foam::fvMatrix::addBoundarySource template Foam::fvMatrix::fvMatrix ( - GeometricField& psi, + const GeometricField& psi, const dimensionSet& ds ) : @@ -227,7 +227,13 @@ Foam::fvMatrix::fvMatrix ); } - psi_.boundaryField().updateCoeffs(); + // Update the boundary coefficients of psi without changing it's event No. + GeometricField& psiRef = + const_cast&>(psi_); + + label currentStatePsi = psiRef.eventNo(); + psiRef.boundaryField().updateCoeffs(); + psiRef.eventNo() = currentStatePsi; } @@ -322,7 +328,7 @@ Foam::fvMatrix::fvMatrix(const tmp >& tfvm) template Foam::fvMatrix::fvMatrix ( - GeometricField& psi, + const GeometricField& psi, Istream& is ) : @@ -404,12 +410,17 @@ void Foam::fvMatrix::setValues const unallocLabelList& nei = mesh.neighbour(); scalarField& Diag = diag(); + Field& psi = + const_cast + < + GeometricField& + >(psi_).internalField(); forAll(cellLabels, i) { label celli = cellLabels[i]; - psi_[celli] = values[i]; + psi[celli] = values[i]; source_[celli] = values[i]*Diag[celli]; if (symmetric() || asymmetric()) diff --git a/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.H b/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.H index 4fbc2430d7..8569862e13 100644 --- a/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.H +++ b/src/finiteVolume/fvMatrices/fvMatrix/fvMatrix.H @@ -117,8 +117,9 @@ public: // Private data - // Reference to GeometricField - GeometricField& psi_; + //- Const reference to GeometricField + // Converted into a non-const reference at the point of solution. + const GeometricField& psi_; //- Dimension set dimensionSet dimensions_; @@ -237,7 +238,7 @@ public: //- Construct given a field to solve for fvMatrix ( - GeometricField&, + const GeometricField&, const dimensionSet& ); @@ -245,12 +246,12 @@ public: fvMatrix(const fvMatrix&); //- Construct as copy of tmp > deleting argument -# ifdef ConstructFromTmp + #ifdef ConstructFromTmp fvMatrix(const tmp >&); -# endif + #endif //- Construct from Istream given field to solve for - fvMatrix(GeometricField&, Istream&); + fvMatrix(const GeometricField&, Istream&); // Destructor @@ -267,11 +268,6 @@ public: return psi_; } - GeometricField& psi() - { - return psi_; - } - const dimensionSet& dimensions() const { return dimensions_; diff --git a/src/finiteVolume/fvMatrices/fvMatrix/fvMatrixSolve.C b/src/finiteVolume/fvMatrices/fvMatrix/fvMatrixSolve.C index 21f3738a02..c56899bd62 100644 --- a/src/finiteVolume/fvMatrices/fvMatrix/fvMatrixSolve.C +++ b/src/finiteVolume/fvMatrices/fvMatrix/fvMatrixSolve.C @@ -63,10 +63,13 @@ Foam::lduMatrix::solverPerformance Foam::fvMatrix::solve << endl; } + GeometricField& psi = + const_cast&>(psi_); + lduMatrix::solverPerformance solverPerfVec ( "fvMatrix::solve", - psi_.name() + psi.name() ); scalarField saveDiag = diag(); @@ -82,7 +85,7 @@ Foam::lduMatrix::solverPerformance Foam::fvMatrix::solve ( pow ( - psi_.mesh().solutionD(), + psi.mesh().solutionD(), pTraits, Type::rank>::type>::zero ) ); @@ -93,7 +96,7 @@ Foam::lduMatrix::solverPerformance Foam::fvMatrix::solve // copy field and source - scalarField psiCmpt = psi_.internalField().component(cmpt); + scalarField psiCmpt = psi.internalField().component(cmpt); addBoundaryDiag(diag(), cmpt); scalarField sourceCmpt = source.component(cmpt); @@ -109,7 +112,7 @@ Foam::lduMatrix::solverPerformance Foam::fvMatrix::solve ); lduInterfaceFieldPtrsList interfaces = - psi_.boundaryField().interfaces(); + psi.boundaryField().interfaces(); // Use the initMatrixInterfaces and updateMatrixInterfaces to correct // bouCoeffsCmpt for the explicit part of the coupled boundary @@ -137,7 +140,7 @@ Foam::lduMatrix::solverPerformance Foam::fvMatrix::solve // Solver call solverPerf = lduMatrix::solver::New ( - psi_.name() + pTraits::componentNames[cmpt], + psi.name() + pTraits::componentNames[cmpt], *this, bouCoeffsCmpt, intCoeffsCmpt, @@ -156,11 +159,11 @@ Foam::lduMatrix::solverPerformance Foam::fvMatrix::solve solverPerfVec = solverPerf; } - psi_.internalField().replace(cmpt, psiCmpt); + psi.internalField().replace(cmpt, psiCmpt); diag() = saveDiag; } - psi_.correctBoundaryConditions(); + psi.correctBoundaryConditions(); return solverPerfVec; } diff --git a/src/finiteVolume/fvMatrices/fvScalarMatrix/fvScalarMatrix.C b/src/finiteVolume/fvMatrices/fvScalarMatrix/fvScalarMatrix.C index 35e5c3ac35..5ea0ba6a17 100644 --- a/src/finiteVolume/fvMatrices/fvScalarMatrix/fvScalarMatrix.C +++ b/src/finiteVolume/fvMatrices/fvScalarMatrix/fvScalarMatrix.C @@ -99,6 +99,10 @@ Foam::lduMatrix::solverPerformance Foam::fvMatrix::fvSolver::solve const dictionary& solverControls ) { + GeometricField& psi = + const_cast&> + (fvMat_.psi()); + scalarField saveDiag = fvMat_.diag(); fvMat_.addBoundaryDiag(fvMat_.diag(), 0); @@ -108,14 +112,17 @@ Foam::lduMatrix::solverPerformance Foam::fvMatrix::fvSolver::solve // assign new solver controls solver_->read(solverControls); - lduMatrix::solverPerformance solverPerf = - solver_->solve(fvMat_.psi().internalField(), totalSource); + lduMatrix::solverPerformance solverPerf = solver_->solve + ( + psi.internalField(), + totalSource + ); solverPerf.print(); fvMat_.diag() = saveDiag; - fvMat_.psi().correctBoundaryConditions(); + psi.correctBoundaryConditions(); return solverPerf; } @@ -134,6 +141,9 @@ Foam::lduMatrix::solverPerformance Foam::fvMatrix::solve << endl; } + GeometricField& psi = + const_cast&>(psi_); + scalarField saveDiag = diag(); addBoundaryDiag(diag(), 0); @@ -143,19 +153,19 @@ Foam::lduMatrix::solverPerformance Foam::fvMatrix::solve // Solver call lduMatrix::solverPerformance solverPerf = lduMatrix::solver::New ( - psi_.name(), + psi.name(), *this, boundaryCoeffs_, internalCoeffs_, - psi_.boundaryField().interfaces(), + psi.boundaryField().interfaces(), solverControls - )->solve(psi_.internalField(), totalSource); + )->solve(psi.internalField(), totalSource); solverPerf.print(); diag() = saveDiag; - psi_.correctBoundaryConditions(); + psi.correctBoundaryConditions(); return solverPerf; } diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/LimitedScheme/LimitedScheme.C b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/LimitedScheme/LimitedScheme.C index 1465c2648e..ff2ecdbdc3 100644 --- a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/LimitedScheme/LimitedScheme.C +++ b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/LimitedScheme/LimitedScheme.C @@ -66,8 +66,10 @@ tmp LimitedScheme::limiter const GeometricField& lPhi = tlPhi(); - GeometricField - gradc(fvc::grad(lPhi)); + tmp > + tgradc(fvc::grad(lPhi)); + const GeometricField& + gradc = tgradc(); const surfaceScalarField& CDweights = mesh.surfaceInterpolation::weights(); @@ -116,7 +118,7 @@ tmp LimitedScheme::limiter gradc.boundaryField()[patchi].patchNeighbourField(); // Build the d-vectors - vectorField pd = + vectorField pd = mesh.Sf().boundaryField()[patchi] /( mesh.magSf().boundaryField()[patchi] diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/linearUpwind/linearUpwind.C b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/linearUpwind/linearUpwind.C index 4cda19451b..104cbdd29b 100644 --- a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/linearUpwind/linearUpwind.C +++ b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/linearUpwind/linearUpwind.C @@ -67,9 +67,22 @@ Foam::linearUpwind::correction const volVectorField& C = mesh.C(); const surfaceVectorField& Cf = mesh.Cf(); - GeometricField - ::type, fvPatchField, volMesh> - gradVf = gradScheme_().grad(vf); + tmp + < + GeometricField + < + typename outerProduct::type, + fvPatchField, + volMesh + > + > tgradVf = gradScheme_().grad(vf, gradSchemeName_); + + const GeometricField + < + typename outerProduct::type, + fvPatchField, + volMesh + >& gradVf = tgradVf(); forAll(faceFlux, facei) { @@ -95,7 +108,7 @@ Foam::linearUpwind::correction if (pSfCorr.coupled()) { - const unallocLabelList& pOwner = + const unallocLabelList& pOwner = mesh.boundary()[patchi].faceCells(); const vectorField& pCf = Cf.boundaryField()[patchi]; @@ -106,7 +119,7 @@ Foam::linearUpwind::correction gradVf.boundaryField()[patchi].patchNeighbourField(); // Build the d-vectors - vectorField pd = + vectorField pd = mesh.Sf().boundaryField()[patchi] /( mesh.magSf().boundaryField()[patchi] @@ -129,7 +142,7 @@ Foam::linearUpwind::correction } else { - pSfCorr[facei] = + pSfCorr[facei] = (pCf[facei] - pd[facei] - C[own]) & pGradVfNei[facei]; } } diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/linearUpwind/linearUpwind.H b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/linearUpwind/linearUpwind.H index 2b51590f85..e5e278a7e9 100644 --- a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/linearUpwind/linearUpwind.H +++ b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/linearUpwind/linearUpwind.H @@ -56,6 +56,7 @@ class linearUpwind { // Private Data + word gradSchemeName_; tmp > gradScheme_; @@ -84,6 +85,7 @@ public: ) : upwind(mesh, faceFlux), + gradSchemeName_("grad"), gradScheme_ ( new fv::gaussGrad(mesh) @@ -100,12 +102,13 @@ public: ) : upwind(mesh, schemeData), + gradSchemeName_(schemeData), gradScheme_ ( fv::gradScheme::New ( mesh, - schemeData + mesh.gradScheme(gradSchemeName_) ) ) {} @@ -119,12 +122,13 @@ public: ) : upwind(mesh, faceFlux, schemeData), + gradSchemeName_(schemeData), gradScheme_ ( fv::gradScheme::New ( mesh, - schemeData + mesh.gradScheme(gradSchemeName_) ) ) {} diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/linearUpwind/linearUpwindV.C b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/linearUpwind/linearUpwindV.C index 80a137b396..c4b52f4da0 100644 --- a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/linearUpwind/linearUpwindV.C +++ b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/linearUpwind/linearUpwindV.C @@ -74,9 +74,22 @@ Foam::linearUpwindV::correction const vectorField& C = mesh.C(); const vectorField& Cf = mesh.Cf(); - GeometricField - ::type, fvPatchField, volMesh> - gradVf = gradScheme_().grad(vf); + tmp + < + GeometricField + < + typename outerProduct::type, + fvPatchField, + volMesh + > + > tgradVf = gradScheme_().grad(vf, gradSchemeName_); + + const GeometricField + < + typename outerProduct::type, + fvPatchField, + volMesh + >& gradVf = tgradVf(); forAll(faceFlux, facei) { diff --git a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/linearUpwind/linearUpwindV.H b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/linearUpwind/linearUpwindV.H index 7f8c9de742..9d477610a7 100644 --- a/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/linearUpwind/linearUpwindV.H +++ b/src/finiteVolume/interpolation/surfaceInterpolation/limitedSchemes/linearUpwind/linearUpwindV.H @@ -56,6 +56,7 @@ class linearUpwindV { // Private Data + word gradSchemeName_; tmp > gradScheme_; @@ -84,6 +85,7 @@ public: ) : upwind(mesh, faceFlux), + gradSchemeName_("grad"), gradScheme_ ( new fv::gaussGrad(mesh) @@ -100,12 +102,13 @@ public: ) : upwind(mesh, schemeData), + gradSchemeName_(schemeData), gradScheme_ ( fv::gradScheme::New ( mesh, - schemeData + mesh.gradScheme(gradSchemeName_) ) ) {} @@ -119,12 +122,13 @@ public: ) : upwind(mesh, faceFlux, schemeData), + gradSchemeName_(schemeData), gradScheme_ ( fv::gradScheme::New ( mesh, - schemeData + mesh.gradScheme(gradSchemeName_) ) ) {} From 75bfb292e7e3c52b756aa803e7dd5dec1ae8a976 Mon Sep 17 00:00:00 2001 From: henry Date: Mon, 26 Oct 2009 19:41:32 +0000 Subject: [PATCH 2/5] Added a switch to control the caching system. --- src/OpenFOAM/matrices/solution/solution.C | 17 +++++++++++++---- src/OpenFOAM/matrices/solution/solution.H | 4 ++++ 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/OpenFOAM/matrices/solution/solution.C b/src/OpenFOAM/matrices/solution/solution.C index b17130dfe6..ba0db67bd4 100644 --- a/src/OpenFOAM/matrices/solution/solution.C +++ b/src/OpenFOAM/matrices/solution/solution.C @@ -60,6 +60,7 @@ Foam::solution::solution(const objectRegistry& obr, const fileName& dictName) ) ), cache_(ITstream("cache", tokenList())()), + caching_(false), relaxationFactors_(ITstream("relaxationFactors", tokenList())()), defaultRelaxationFactor_(0), solvers_(ITstream("solvers", tokenList())()) @@ -150,12 +151,19 @@ Foam::label Foam::solution::upgradeSolverDict bool Foam::solution::cache(const word& name) const { - if (debug) + if (caching_) { - Info<< "Cache: find entry for " << name << endl; - } + if (debug) + { + Info<< "Cache: find entry for " << name << endl; + } - return cache_.found(name); + return cache_.found(name); + } + else + { + return false; + } } @@ -248,6 +256,7 @@ bool Foam::solution::read() if (dict.found("cache")) { cache_ = dict.subDict("cache"); + caching_ = cache_.lookupOrDefault("active", true); } if (dict.found("relaxationFactors")) diff --git a/src/OpenFOAM/matrices/solution/solution.H b/src/OpenFOAM/matrices/solution/solution.H index 36724bf495..ac1304fedc 100644 --- a/src/OpenFOAM/matrices/solution/solution.H +++ b/src/OpenFOAM/matrices/solution/solution.H @@ -37,6 +37,7 @@ SourceFiles #define solution_H #include "IOdictionary.H" +#include "Switch.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -56,6 +57,9 @@ class solution //- Dictionary of temporary fields to cache dictionary cache_; + //- Switch for the caching mechanism + Switch caching_; + //- Dictionary of relaxation factors for all the fields dictionary relaxationFactors_; From 135f8275acf4a0846a3dc94bf98a1518011baac4 Mon Sep 17 00:00:00 2001 From: henry Date: Mon, 26 Oct 2009 19:41:51 +0000 Subject: [PATCH 3/5] Cleaned a message. --- .../finiteVolume/gradSchemes/gradScheme/gradScheme.C | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/finiteVolume/finiteVolume/gradSchemes/gradScheme/gradScheme.C b/src/finiteVolume/finiteVolume/gradSchemes/gradScheme/gradScheme.C index f3e2799beb..267896603f 100644 --- a/src/finiteVolume/finiteVolume/gradSchemes/gradScheme/gradScheme.C +++ b/src/finiteVolume/finiteVolume/gradSchemes/gradScheme/gradScheme.C @@ -130,7 +130,7 @@ Foam::fv::gradScheme::grad { if (!mesh().objectRegistry::foundObject(name)) { - cachePrintMessage("Caching", name, vsf); + cachePrintMessage("Calculating and caching", name, vsf); tmp tgGrad = calcGrad(vsf, name); regIOobject::store(tgGrad.ptr()); } @@ -168,8 +168,6 @@ Foam::fv::gradScheme::grad { if (mesh().objectRegistry::foundObject(name)) { - cachePrintMessage("Retreiving", name, vsf); - GradFieldType& gGrad = const_cast ( mesh().objectRegistry::lookupObject(name) From 86c3affb5b79a0b1dae80ea82b877acd835d79cf Mon Sep 17 00:00:00 2001 From: henry Date: Mon, 26 Oct 2009 21:54:53 +0000 Subject: [PATCH 4/5] Added initialising constructor and use it is the BSpline code. --- src/OpenFOAM/matrices/simpleMatrix/simpleMatrix.C | 15 ++++++++++++++- src/OpenFOAM/matrices/simpleMatrix/simpleMatrix.H | 9 ++++++++- src/mesh/blockMesh/curvedEdges/BSpline.C | 2 +- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/src/OpenFOAM/matrices/simpleMatrix/simpleMatrix.C b/src/OpenFOAM/matrices/simpleMatrix/simpleMatrix.C index ecc094a840..f412f20ee0 100644 --- a/src/OpenFOAM/matrices/simpleMatrix/simpleMatrix.C +++ b/src/OpenFOAM/matrices/simpleMatrix/simpleMatrix.C @@ -32,7 +32,20 @@ template Foam::simpleMatrix::simpleMatrix(const label mSize) : scalarSquareMatrix(mSize), - source_(mSize, pTraits::zero) + source_(mSize) +{} + + +template +Foam::simpleMatrix::simpleMatrix +( + const label mSize, + const scalar coeffVal, + const Type& sourceVal +) +: + scalarSquareMatrix(mSize, mSize, coeffVal), + source_(mSize, sourceVal) {} diff --git a/src/OpenFOAM/matrices/simpleMatrix/simpleMatrix.H b/src/OpenFOAM/matrices/simpleMatrix/simpleMatrix.H index fd875281cc..0633cecc56 100644 --- a/src/OpenFOAM/matrices/simpleMatrix/simpleMatrix.H +++ b/src/OpenFOAM/matrices/simpleMatrix/simpleMatrix.H @@ -26,7 +26,7 @@ Class Foam::simpleMatrix Description - Foam::simpleMatrix + A simple square matrix solver with scalar coefficients. SourceFiles simpleMatrix.C @@ -75,8 +75,13 @@ public: // Constructors //- Construct given size + // Note: this does not initialise the coefficients or the source. simpleMatrix(const label); + //- Construct given size and initial values for the + // coefficients and source + simpleMatrix(const label, const scalar, const Type&); + //- Construct from components simpleMatrix(const scalarSquareMatrix&, const Field&); @@ -91,11 +96,13 @@ public: // Access + //- Return access to the source Field& source() { return source_; } + //- Return const-access to the source const Field& source() const { return source_; diff --git a/src/mesh/blockMesh/curvedEdges/BSpline.C b/src/mesh/blockMesh/curvedEdges/BSpline.C index 56e829eda5..8ce6695e94 100644 --- a/src/mesh/blockMesh/curvedEdges/BSpline.C +++ b/src/mesh/blockMesh/curvedEdges/BSpline.C @@ -48,7 +48,7 @@ Foam::pointField Foam::BSpline::findKnots register scalar oneSixth = 1.0/6.0; register scalar twoThird = 2.0/3.0; - simpleMatrix M(newnKnots); + simpleMatrix M(newnKnots, 0, vector::zero); // set up the matrix From 278e8c503057d9f5cd781d9407dc5c62f267ceb6 Mon Sep 17 00:00:00 2001 From: henry Date: Mon, 26 Oct 2009 22:45:21 +0000 Subject: [PATCH 5/5] Converted constant reference to primitive arguments to constant primitive arguments. --- .../dataConversion/foamToVTK/writeFuns.C | 2 +- .../dataConversion/foamToVTK/writeFuns.H | 2 +- src/OpenFOAM/db/scalarRange/scalarRange.C | 4 ++-- src/OpenFOAM/db/scalarRange/scalarRange.H | 4 ++-- src/OpenFOAM/db/scalarRange/scalarRanges.C | 2 +- src/OpenFOAM/db/scalarRange/scalarRanges.H | 2 +- src/OpenFOAM/global/unitConversion/unitConversion.H | 4 ++-- .../meshes/primitiveShapes/objectHit/objectHit.H | 4 ++-- src/OpenFOAM/primitives/hashes/Hash/Hash.H | 5 ++--- src/OpenFOAM/primitives/random/Random.C | 3 +-- src/OpenFOAM/primitives/random/Random.H | 7 ++++++- src/conversion/ensight/file/ensightFile.C | 8 ++++---- src/conversion/ensight/file/ensightFile.H | 8 ++++---- src/conversion/meshTables/cellTable.C | 12 +++++------- src/conversion/meshTables/cellTable.H | 10 +++++----- src/dynamicMesh/polyMeshAdder/faceCoupleInfo.C | 2 +- .../polyTopoChange/polyTopoChange/hexRef8.C | 2 +- src/mesh/blockMesh/curvedEdges/spline.C | 4 ++-- src/mesh/blockMesh/curvedEdges/spline.H | 2 +- src/meshTools/octree/treeBoundBox.H | 4 ---- src/surfMesh/MeshedSurface/MeshedSurface.C | 2 +- src/surfMesh/MeshedSurface/MeshedSurface.H | 2 +- src/triSurface/triSurface/triSurface.C | 6 +----- src/triSurface/triSurface/triSurface.H | 2 +- 24 files changed, 48 insertions(+), 55 deletions(-) diff --git a/applications/utilities/postProcessing/dataConversion/foamToVTK/writeFuns.C b/applications/utilities/postProcessing/dataConversion/foamToVTK/writeFuns.C index f699e17588..82a8df0cca 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToVTK/writeFuns.C +++ b/applications/utilities/postProcessing/dataConversion/foamToVTK/writeFuns.C @@ -220,7 +220,7 @@ void Foam::writeFuns::writePointDataHeader } -void Foam::writeFuns::insert(const scalar& pt, DynamicList& dest) +void Foam::writeFuns::insert(const scalar pt, DynamicList& dest) { dest.append(float(pt)); } diff --git a/applications/utilities/postProcessing/dataConversion/foamToVTK/writeFuns.H b/applications/utilities/postProcessing/dataConversion/foamToVTK/writeFuns.H index cf7a4e992c..c38bbda669 100644 --- a/applications/utilities/postProcessing/dataConversion/foamToVTK/writeFuns.H +++ b/applications/utilities/postProcessing/dataConversion/foamToVTK/writeFuns.H @@ -86,7 +86,7 @@ public: // Convert to VTK and store - static void insert(const scalar&, DynamicList&); + static void insert(const scalar, DynamicList&); static void insert(const point&, DynamicList&); static void insert(const sphericalTensor&, DynamicList&); static void insert(const symmTensor&, DynamicList&); diff --git a/src/OpenFOAM/db/scalarRange/scalarRange.C b/src/OpenFOAM/db/scalarRange/scalarRange.C index 7623e14c27..393b19bba4 100644 --- a/src/OpenFOAM/db/scalarRange/scalarRange.C +++ b/src/OpenFOAM/db/scalarRange/scalarRange.C @@ -42,7 +42,7 @@ Foam::scalarRange::scalarRange() {} -Foam::scalarRange::scalarRange(const scalar& lower, const scalar& upper) +Foam::scalarRange::scalarRange(const scalar lower, const scalar upper) : type_(RANGE), value_(lower), @@ -123,7 +123,7 @@ Foam::scalar Foam::scalarRange::upper() const } -bool Foam::scalarRange::selected(const scalar& value) const +bool Foam::scalarRange::selected(const scalar value) const { switch (type_) { diff --git a/src/OpenFOAM/db/scalarRange/scalarRange.H b/src/OpenFOAM/db/scalarRange/scalarRange.H index b996871664..f123809237 100644 --- a/src/OpenFOAM/db/scalarRange/scalarRange.H +++ b/src/OpenFOAM/db/scalarRange/scalarRange.H @@ -92,7 +92,7 @@ public: scalarRange(); //- Construct a Range - scalarRange(const scalar& lower, const scalar& upper); + scalarRange(const scalar lower, const scalar upper); //- Construct from Istream. // Since commas can be used as list delimiters, @@ -119,7 +119,7 @@ public: scalar upper() const; //- Return true if the value is within the range - bool selected(const scalar&) const; + bool selected(const scalar) const; // Member Operators diff --git a/src/OpenFOAM/db/scalarRange/scalarRanges.C b/src/OpenFOAM/db/scalarRange/scalarRanges.C index c59e2b5a9d..f8b3c077b1 100644 --- a/src/OpenFOAM/db/scalarRange/scalarRanges.C +++ b/src/OpenFOAM/db/scalarRange/scalarRanges.C @@ -57,7 +57,7 @@ Foam::scalarRanges::scalarRanges(Istream& is) // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -bool Foam::scalarRanges::selected(const scalar& value) const +bool Foam::scalarRanges::selected(const scalar value) const { forAll(*this, i) { diff --git a/src/OpenFOAM/db/scalarRange/scalarRanges.H b/src/OpenFOAM/db/scalarRange/scalarRanges.H index 5483454ae6..c3bf1ea668 100644 --- a/src/OpenFOAM/db/scalarRange/scalarRanges.H +++ b/src/OpenFOAM/db/scalarRange/scalarRanges.H @@ -66,7 +66,7 @@ public: // Member Functions //- Return true if the given value is within the ranges - bool selected(const scalar&) const; + bool selected(const scalar) const; //- Return the set of selected entries in the given list // that are within the ranges diff --git a/src/OpenFOAM/global/unitConversion/unitConversion.H b/src/OpenFOAM/global/unitConversion/unitConversion.H index 0ab93f1a50..10cbd47b35 100644 --- a/src/OpenFOAM/global/unitConversion/unitConversion.H +++ b/src/OpenFOAM/global/unitConversion/unitConversion.H @@ -45,13 +45,13 @@ namespace Foam // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // //- Conversion from degrees to radians -inline scalar degToRad(const scalar& deg) +inline scalar degToRad(const scalar deg) { return (deg*pi/180.0); } //- Conversion from radians to degrees -inline scalar radToDeg(const scalar& rad) +inline scalar radToDeg(const scalar rad) { return (rad*180.0/pi); } diff --git a/src/OpenFOAM/meshes/primitiveShapes/objectHit/objectHit.H b/src/OpenFOAM/meshes/primitiveShapes/objectHit/objectHit.H index fe2bf09865..16e1fc3a22 100644 --- a/src/OpenFOAM/meshes/primitiveShapes/objectHit/objectHit.H +++ b/src/OpenFOAM/meshes/primitiveShapes/objectHit/objectHit.H @@ -76,7 +76,7 @@ public: {} //- Construct from components - objectHit(const bool success, const label& obj) + objectHit(const bool success, const label obj) : hit_(success), hitObject_(obj) @@ -111,7 +111,7 @@ public: { return ((a.hit_ == b.hit_) && (a.hitObject_ == b.hitObject_)); } - + friend bool operator!=(const objectHit& a, const objectHit& b) { return (!(a == b)); diff --git a/src/OpenFOAM/primitives/hashes/Hash/Hash.H b/src/OpenFOAM/primitives/hashes/Hash/Hash.H index dd16517dfe..b998daea1b 100644 --- a/src/OpenFOAM/primitives/hashes/Hash/Hash.H +++ b/src/OpenFOAM/primitives/hashes/Hash/Hash.H @@ -107,7 +107,7 @@ public: //- Incrementally hash a label. // This will necessarily return a different value than the // non-incremental version. - unsigned operator()(const label& p, unsigned seed) const + unsigned operator()(const label p, unsigned seed) const { return Hasher(&p, sizeof(label), seed); } @@ -115,11 +115,10 @@ public: //- Return the unsigned representation of a label. // This helps if people have relied on the hash value corresponding to // the natural order. - unsigned operator()(const label& p) const + unsigned operator()(const label p) const { return p; } - }; diff --git a/src/OpenFOAM/primitives/random/Random.C b/src/OpenFOAM/primitives/random/Random.C index 848b3a5547..570817e692 100644 --- a/src/OpenFOAM/primitives/random/Random.C +++ b/src/OpenFOAM/primitives/random/Random.C @@ -47,8 +47,7 @@ namespace Foam // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -// construct given seed -Random::Random(const label& seed) +Random::Random(const label seed) { if (seed > 1) { diff --git a/src/OpenFOAM/primitives/random/Random.H b/src/OpenFOAM/primitives/random/Random.H index f611f90600..2339e607b5 100644 --- a/src/OpenFOAM/primitives/random/Random.H +++ b/src/OpenFOAM/primitives/random/Random.H @@ -61,7 +61,7 @@ public: // Constructors //- Construct given seed - Random(const label&); + Random(const label); // Member functions @@ -70,14 +70,19 @@ public: //- scalar [0..1] (so including 0,1) scalar scalar01(); + //- vector with every component scalar01 vector vector01(); + //- sphericalTensor with every component scalar01 sphericalTensor sphericalTensor01(); + //- symmTensor with every component scalar01 symmTensor symmTensor01(); + //- tensor with every component scalar01 tensor tensor01(); + //- label [lower..upper] label integer(const label lower, const label upper); diff --git a/src/conversion/ensight/file/ensightFile.C b/src/conversion/ensight/file/ensightFile.C index 8cb28f8c5e..095d2659f8 100644 --- a/src/conversion/ensight/file/ensightFile.C +++ b/src/conversion/ensight/file/ensightFile.C @@ -74,7 +74,7 @@ bool Foam::ensightFile::allowUndef(bool value) } -Foam::scalar Foam::ensightFile::undefValue(const scalar& value) +Foam::scalar Foam::ensightFile::undefValue(const scalar value) { // enable its use too allowUndef_ = true; @@ -133,7 +133,7 @@ Foam::Ostream& Foam::ensightFile::write(const string& value) } -Foam::Ostream& Foam::ensightFile::write(const label& value) +Foam::Ostream& Foam::ensightFile::write(const label value) { if (format() == IOstream::BINARY) { @@ -157,7 +157,7 @@ Foam::Ostream& Foam::ensightFile::write(const label& value) Foam::Ostream& Foam::ensightFile::write ( - const label& value, + const label value, const label fieldWidth ) { @@ -181,7 +181,7 @@ Foam::Ostream& Foam::ensightFile::write } -Foam::Ostream& Foam::ensightFile::write(const scalar& value) +Foam::Ostream& Foam::ensightFile::write(const scalar value) { if (format() == IOstream::BINARY) { diff --git a/src/conversion/ensight/file/ensightFile.H b/src/conversion/ensight/file/ensightFile.H index 1fa91f8561..ca62114160 100644 --- a/src/conversion/ensight/file/ensightFile.H +++ b/src/conversion/ensight/file/ensightFile.H @@ -103,7 +103,7 @@ public: //- Assign the value to represent undef in the results // Returns the previous value // NB: do not use values larger than floatScalarVGREAT - static scalar undefValue(const scalar&); + static scalar undefValue(const scalar); // Output @@ -124,13 +124,13 @@ public: Ostream& write(const string& value); //- write integer as "%10d" or as binary - Ostream& write(const label& value); + Ostream& write(const label value); //- write integer with specified width or as binary - Ostream& write(const label& value, const label fieldWidth); + Ostream& write(const label value, const label fieldWidth); //- write float as "%12.5e" or as binary - Ostream& write(const scalar& value); + Ostream& write(const scalar value); //- Add carriage return to ascii stream void newline(); diff --git a/src/conversion/meshTables/cellTable.C b/src/conversion/meshTables/cellTable.C index 6369f98d9d..a07cbaf96d 100644 --- a/src/conversion/meshTables/cellTable.C +++ b/src/conversion/meshTables/cellTable.C @@ -22,8 +22,6 @@ License along with OpenFOAM; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA -Description - \*---------------------------------------------------------------------------*/ #include "cellTable.H" @@ -81,7 +79,7 @@ void Foam::cellTable::addDefaults() void Foam::cellTable::setEntry ( - const label& id, + const label id, const word& keyWord, const word& value ) @@ -192,7 +190,7 @@ Foam::Map Foam::cellTable::names } -Foam::word Foam::cellTable::name(const label& id) const +Foam::word Foam::cellTable::name(const label id) const { word theName("cellTable_" + Foam::name(id)); @@ -289,19 +287,19 @@ Foam::Map Foam::cellTable::shells() const -void Foam::cellTable::setMaterial(const label& id, const word& matlType) +void Foam::cellTable::setMaterial(const label id, const word& matlType) { setEntry(id, "MaterialType", matlType); } -void Foam::cellTable::setName(const label& id, const word& name) +void Foam::cellTable::setName(const label id, const word& name) { setEntry(id, "Label", name); } -void Foam::cellTable::setName(const label& id) +void Foam::cellTable::setName(const label id) { iterator iter = find(id); diff --git a/src/conversion/meshTables/cellTable.H b/src/conversion/meshTables/cellTable.H index 4d0079f032..ff8c1fafb6 100644 --- a/src/conversion/meshTables/cellTable.H +++ b/src/conversion/meshTables/cellTable.H @@ -96,7 +96,7 @@ class cellTable //- Add required entries - MaterialType void addDefaults(); - void setEntry(const label& id, const word& keyWord, const word& value); + void setEntry(const label id, const word& keyWord, const word& value); //- Disallow default bitwise copy construct cellTable(const cellTable&); @@ -133,7 +133,7 @@ public: //- Return the name corresponding to id // returns cellTable_ID if not otherwise defined - word name(const label& id) const; + word name(const label id) const; //- Return a Map of (id => name) Map names() const; @@ -157,13 +157,13 @@ public: Map materialTypes() const; //- Assign material Type - void setMaterial(const label&, const word&); + void setMaterial(const label, const word&); //- Assign name - void setName(const label&, const word&); + void setName(const label, const word&); //- Assign default name if not already set - void setName(const label&); + void setName(const label); //- Read constant/cellTable void readDict diff --git a/src/dynamicMesh/polyMeshAdder/faceCoupleInfo.C b/src/dynamicMesh/polyMeshAdder/faceCoupleInfo.C index 7820bcd70b..2be5111187 100644 --- a/src/dynamicMesh/polyMeshAdder/faceCoupleInfo.C +++ b/src/dynamicMesh/polyMeshAdder/faceCoupleInfo.C @@ -1536,7 +1536,7 @@ void Foam::faceCoupleInfo::perfectPointMatch FatalErrorIn ( "faceCoupleInfo::perfectPointMatch" - "(const scalar&, const bool)" + "(const scalar, const bool)" ) << "Did not match all of the master faces to the slave faces" << endl << "This usually means that the slave patch and master patch" diff --git a/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8.C b/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8.C index 926f2f4913..f338c6cf06 100644 --- a/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8.C +++ b/src/dynamicMesh/polyTopoChange/polyTopoChange/hexRef8.C @@ -55,7 +55,7 @@ namespace Foam class ifEqEqOp { public: - void operator()(label& x, const label& y) const + void operator()(label x, const label y) const { x = (x==y) ? x : value; } diff --git a/src/mesh/blockMesh/curvedEdges/spline.C b/src/mesh/blockMesh/curvedEdges/spline.C index 871c7f7db4..e95d5a9f36 100644 --- a/src/mesh/blockMesh/curvedEdges/spline.C +++ b/src/mesh/blockMesh/curvedEdges/spline.C @@ -36,7 +36,7 @@ Foam::spline::spline(const pointField& knotPoints) // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // -Foam::scalar Foam::spline::B(const scalar& tau) const +Foam::scalar Foam::spline::B(const scalar tau) const { if (tau <= -2.0 || tau >= 2.0) { @@ -60,7 +60,7 @@ Foam::scalar Foam::spline::B(const scalar& tau) const } else { - FatalErrorIn("spline::B(const scalar&)") + FatalErrorIn("spline::B(const scalar)") << "Programming error???, " << "tau = " << tau << abort(FatalError); diff --git a/src/mesh/blockMesh/curvedEdges/spline.H b/src/mesh/blockMesh/curvedEdges/spline.H index 5808770682..243ed35690 100644 --- a/src/mesh/blockMesh/curvedEdges/spline.H +++ b/src/mesh/blockMesh/curvedEdges/spline.H @@ -59,7 +59,7 @@ class spline // Private Member Functions //- Blending function for constructing spline - scalar B(const scalar&) const; + scalar B(const scalar) const; //- Disallow default bitwise copy construct spline(const spline&); diff --git a/src/meshTools/octree/treeBoundBox.H b/src/meshTools/octree/treeBoundBox.H index 69791e04a8..04b420a531 100644 --- a/src/meshTools/octree/treeBoundBox.H +++ b/src/meshTools/octree/treeBoundBox.H @@ -158,10 +158,6 @@ public: static const FixedList faceNormals; - //- Face on which neighbour is - static direction neighbourFaceBits(const label&); - - // Constructors //- Construct null setting points to zero diff --git a/src/surfMesh/MeshedSurface/MeshedSurface.C b/src/surfMesh/MeshedSurface/MeshedSurface.C index 8bcab42089..1c1622c0eb 100644 --- a/src/surfMesh/MeshedSurface/MeshedSurface.C +++ b/src/surfMesh/MeshedSurface/MeshedSurface.C @@ -507,7 +507,7 @@ void Foam::MeshedSurface::movePoints(const pointField& newPoints) template -void Foam::MeshedSurface::scalePoints(const scalar& scaleFactor) +void Foam::MeshedSurface::scalePoints(const scalar scaleFactor) { // avoid bad scaling if (scaleFactor > 0 && scaleFactor != 1.0) diff --git a/src/surfMesh/MeshedSurface/MeshedSurface.H b/src/surfMesh/MeshedSurface/MeshedSurface.H index 5677233e0b..ea7125fa83 100644 --- a/src/surfMesh/MeshedSurface/MeshedSurface.H +++ b/src/surfMesh/MeshedSurface/MeshedSurface.H @@ -338,7 +338,7 @@ public: virtual void movePoints(const pointField&); //- Scale points. A non-positive factor is ignored - virtual void scalePoints(const scalar&); + virtual void scalePoints(const scalar); //- Reset primitive data (points, faces and zones) // Note, optimized to avoid overwriting data (with Xfer::null) diff --git a/src/triSurface/triSurface/triSurface.C b/src/triSurface/triSurface/triSurface.C index 3b8d2f9d5f..65258557e8 100644 --- a/src/triSurface/triSurface/triSurface.C +++ b/src/triSurface/triSurface/triSurface.C @@ -33,8 +33,6 @@ License #include "SortableList.H" #include "PackedBoolList.H" -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // namespace Foam { @@ -783,7 +781,6 @@ const Foam::labelList& Foam::triSurface::edgeOwner() const } -//- Move points void Foam::triSurface::movePoints(const pointField& newPoints) { // Remove all geometry dependent data @@ -797,8 +794,7 @@ void Foam::triSurface::movePoints(const pointField& newPoints) } -// scale points -void Foam::triSurface::scalePoints(const scalar& scaleFactor) +void Foam::triSurface::scalePoints(const scalar scaleFactor) { // avoid bad scaling if (scaleFactor > 0 && scaleFactor != 1.0) diff --git a/src/triSurface/triSurface/triSurface.H b/src/triSurface/triSurface/triSurface.H index 9ee5b5ca4d..7ef87db1ab 100644 --- a/src/triSurface/triSurface/triSurface.H +++ b/src/triSurface/triSurface/triSurface.H @@ -324,7 +324,7 @@ public: virtual void movePoints(const pointField&); //- Scale points. A non-positive factor is ignored - virtual void scalePoints(const scalar&); + virtual void scalePoints(const scalar); //- Check/remove duplicate/degenerate triangles void checkTriangles(const bool verbose);