diff --git a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/AttouFerschneider/AttouFerschneider.C b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/AttouFerschneider/AttouFerschneider.C index 364564aea6..4d85f64385 100644 --- a/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/AttouFerschneider/AttouFerschneider.C +++ b/applications/solvers/multiphase/reactingEulerFoam/interfacialModels/dragModels/AttouFerschneider/AttouFerschneider.C @@ -52,7 +52,10 @@ Foam::dragModels::AttouFerschneider::KGasLiquid const phaseModel& solid = gas.fluid().phases()[solidName_]; const volScalarField oneMinusGas(max(1 - gas, liquid.residualAlpha())); - const volScalarField cbrtR(solid/oneMinusGas); + const volScalarField cbrtR + ( + cbrt(max(solid, solid.residualAlpha())/oneMinusGas) + ); const volScalarField magURel(mag(gas.U() - liquid.U())); return @@ -70,7 +73,10 @@ Foam::dragModels::AttouFerschneider::KGasSolid ) const { const volScalarField oneMinusGas(max(1 - gas, solid.residualAlpha())); - const volScalarField cbrtR(solid/oneMinusGas); + const volScalarField cbrtR + ( + cbrt(max(solid, solid.residualAlpha())/oneMinusGas) + ); return E1_*gas.mu()*sqr(oneMinusGas/solid.d())*sqr(cbrtR) diff --git a/src/OpenFOAM/primitives/globalIndexAndTransform/vectorTensorTransform/vectorTensorTransform.H b/src/OpenFOAM/primitives/globalIndexAndTransform/vectorTensorTransform/vectorTensorTransform.H index c4db7aa53f..5627c4a9c5 100644 --- a/src/OpenFOAM/primitives/globalIndexAndTransform/vectorTensorTransform/vectorTensorTransform.H +++ b/src/OpenFOAM/primitives/globalIndexAndTransform/vectorTensorTransform/vectorTensorTransform.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -42,6 +42,7 @@ SourceFiles #include "word.H" #include "contiguous.H" #include "pointField.H" +#include "transformField.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -148,6 +149,10 @@ public: template tmp> transform(const Field&) const; + //- Inverse transform the given field + template + tmp> invTransform(const Field&) const; + // Member operators diff --git a/src/OpenFOAM/primitives/globalIndexAndTransform/vectorTensorTransform/vectorTensorTransformTemplates.C b/src/OpenFOAM/primitives/globalIndexAndTransform/vectorTensorTransform/vectorTensorTransformTemplates.C index 6878a6123c..6558cd19fb 100644 --- a/src/OpenFOAM/primitives/globalIndexAndTransform/vectorTensorTransform/vectorTensorTransformTemplates.C +++ b/src/OpenFOAM/primitives/globalIndexAndTransform/vectorTensorTransform/vectorTensorTransformTemplates.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -33,7 +33,24 @@ Foam::tmp> Foam::vectorTensorTransform::transform { if (hasR_) { - return R() & fld; + return Foam::transform(R(), fld); + } + else + { + return fld; + } +} + + +template +Foam::tmp> Foam::vectorTensorTransform::invTransform +( + const Field& fld +) const +{ + if (hasR_) + { + return Foam::transform(R().T(), fld); } else { diff --git a/src/lagrangian/basic/Cloud/Cloud.C b/src/lagrangian/basic/Cloud/Cloud.C index f95a5d7cb6..4d9675169f 100644 --- a/src/lagrangian/basic/Cloud/Cloud.C +++ b/src/lagrangian/basic/Cloud/Cloud.C @@ -77,7 +77,6 @@ Foam::Cloud::Cloud cloud(pMesh, cloudName), IDLList(), polyMesh_(pMesh), - labels_(), globalPositionsPtr_() { checkPatches(); @@ -356,10 +355,6 @@ void Foam::Cloud::autoMap(const mapPolyMesh& mapper) << exit(FatalError); } - // Reset stored data that relies on the mesh - // polyMesh_.clearCellTree(); - cellWallFacesPtr_.clear(); - // Ask for the tetBasePtIs to trigger all processors to build // them, otherwise, if some processors have no particles then // there is a comms mismatch. diff --git a/src/lagrangian/basic/Cloud/Cloud.H b/src/lagrangian/basic/Cloud/Cloud.H index ec92e831fe..37ca44f016 100644 --- a/src/lagrangian/basic/Cloud/Cloud.H +++ b/src/lagrangian/basic/Cloud/Cloud.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2018 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -75,14 +75,9 @@ class Cloud { // Private data + //- Reference to the mesh const polyMesh& polyMesh_; - //- Temporary storage for addressing. Used in findTris. - mutable DynamicList