diff --git a/applications/solvers/multiphase/driftFluxFoam/alphaEqn.H b/applications/solvers/multiphase/driftFluxFoam/alphaEqn.H index 1c4aa0a1..d9345cd9 100644 --- a/applications/solvers/multiphase/driftFluxFoam/alphaEqn.H +++ b/applications/solvers/multiphase/driftFluxFoam/alphaEqn.H @@ -19,16 +19,7 @@ ).fvmDiv(phi, alpha1) ); - solve - ( - alpha1Eqn - - fv::gaussLaplacianScheme - ( - mesh, - linear(mesh), - fv::uncorrectedSnGrad(mesh) - ).fvmLaplacian(fvc::interpolate(turbulence->nut()), alpha1) - ); + solve(alpha1Eqn); Info<< "Phase-1 volume fraction = " << alpha1.weightedAverage(mesh.Vsc()).value() @@ -42,6 +33,7 @@ if (alphaApplyPrevCorr && tphiAlphaCorr0.valid()) { Info<< "Applying the previous iteration correction flux" << endl; + #ifdef LTSSOLVE MULES::LTScorrect ( diff --git a/applications/solvers/multiphase/driftFluxFoam/alphaEqnSubCycle.H b/applications/solvers/multiphase/driftFluxFoam/alphaEqnSubCycle.H index 8ad3234a..4d889f12 100644 --- a/applications/solvers/multiphase/driftFluxFoam/alphaEqnSubCycle.H +++ b/applications/solvers/multiphase/driftFluxFoam/alphaEqnSubCycle.H @@ -50,7 +50,6 @@ // Apply the diffusion term separately to allow implicit solution // and boundedness of the explicit advection - if (!MULESCorr) { fvScalarMatrix alpha1Eqn ( diff --git a/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMeshDict b/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMeshDict index 86983f2e..82cf0515 100644 --- a/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMeshDict +++ b/applications/utilities/mesh/generation/snappyHexMesh/snappyHexMeshDict @@ -323,6 +323,9 @@ addLayersControls // - overall thickness and firstLayerThickness // - overall thickness and finalLayerThickness // - overall thickness and expansionRatio + // + // Note: the mode thus selected is global, i.e. one cannot override the + // mode on a per-patch basis (only the values can be overridden) // Expansion factor for layer mesh expansionRatio 1.0; diff --git a/applications/utilities/surface/surfaceCheck/surfaceCheck.C b/applications/utilities/surface/surfaceCheck/surfaceCheck.C index fa3fc28c..8116ab09 100644 --- a/applications/utilities/surface/surfaceCheck/surfaceCheck.C +++ b/applications/utilities/surface/surfaceCheck/surfaceCheck.C @@ -636,7 +636,7 @@ int main(int argc, char *argv[]) faces, "zone", scalarFaceZone, - true + false // face based data ); } diff --git a/src/OpenFOAM/Make/files b/src/OpenFOAM/Make/files index 42be066e..d611ff0e 100644 --- a/src/OpenFOAM/Make/files +++ b/src/OpenFOAM/Make/files @@ -503,6 +503,7 @@ $(mapPolyMesh)/faceMapper/faceMapper.C $(mapPolyMesh)/cellMapper/cellMapper.C $(mapPolyMesh)/mapDistribute/mapDistribute.C $(mapPolyMesh)/mapDistribute/mapDistributePolyMesh.C +$(mapPolyMesh)/mapDistribute/IOmapDistribute.C $(mapPolyMesh)/mapAddedPolyMesh.C PrimitivePatch = $(primitiveMesh)/PrimitivePatch diff --git a/src/OpenFOAM/db/IOobject/IOobject.C b/src/OpenFOAM/db/IOobject/IOobject.C index f19b113b..c6ecf565 100644 --- a/src/OpenFOAM/db/IOobject/IOobject.C +++ b/src/OpenFOAM/db/IOobject/IOobject.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -48,7 +48,7 @@ defineTypeNameAndDebug(IOobject, 0); // "foo/bar/" ERROR - no name // "foo/xxx/bar" ("foo", "xxx", "bar") // "foo/xxx/yyy/bar" ("foo", "xxx/yyy", "bar") -bool Foam::IOobject::IOobject::fileNameComponents +bool Foam::IOobject::fileNameComponents ( const fileName& path, fileName& instance, diff --git a/src/OpenFOAM/db/error/error.C b/src/OpenFOAM/db/error/error.C index 56a617c1..91ec5563 100644 --- a/src/OpenFOAM/db/error/error.C +++ b/src/OpenFOAM/db/error/error.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -128,7 +128,7 @@ Foam::OSstream& Foam::error::operator() } -Foam::error::operator OSstream&() +Foam::error::operator Foam::OSstream&() { if (!messageStreamPtr_->good()) { @@ -142,7 +142,7 @@ Foam::error::operator OSstream&() } -Foam::error::operator dictionary() const +Foam::error::operator Foam::dictionary() const { dictionary errDict; diff --git a/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/IOmapDistribute.C b/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/IOmapDistribute.C new file mode 100644 index 00000000..bb057b63 --- /dev/null +++ b/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/IOmapDistribute.C @@ -0,0 +1,159 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2014 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +\*---------------------------------------------------------------------------*/ + +#include "IOmapDistribute.H" + +/* * * * * * * * * * * * * * * Static Member Data * * * * * * * * * * * * * */ + +namespace Foam +{ + defineTypeNameAndDebug(IOmapDistribute, 0); +} + + +// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // + +Foam::IOmapDistribute::IOmapDistribute(const IOobject& io) +: + regIOobject(io) +{ + // Temporary warning + if (io.readOpt() == IOobject::MUST_READ_IF_MODIFIED) + { + WarningIn("IOmapDistribute::IOmapDistribute(const IOobject&)") + << "IOmapDistribute " << name() + << " constructed with IOobject::MUST_READ_IF_MODIFIED" + " but IOmapDistribute does not support automatic rereading." + << endl; + } + + if + ( + ( + io.readOpt() == IOobject::MUST_READ + || io.readOpt() == IOobject::MUST_READ_IF_MODIFIED + ) + || (io.readOpt() == IOobject::READ_IF_PRESENT && headerOk()) + ) + { + readStream(typeName) >> *this; + close(); + } +} + + +Foam::IOmapDistribute::IOmapDistribute +( + const IOobject& io, + const mapDistribute& map +) +: + regIOobject(io) +{ + // Temporary warning + if (io.readOpt() == IOobject::MUST_READ_IF_MODIFIED) + { + WarningIn("IOmapDistribute::IOmapDistribute(const IOobject&)") + << "IOmapDistribute " << name() + << " constructed with IOobject::MUST_READ_IF_MODIFIED" + " but IOmapDistribute does not support automatic rereading." + << endl; + } + + if + ( + ( + io.readOpt() == IOobject::MUST_READ + || io.readOpt() == IOobject::MUST_READ_IF_MODIFIED + ) + || (io.readOpt() == IOobject::READ_IF_PRESENT && headerOk()) + ) + { + readStream(typeName) >> *this; + close(); + } + else + { + mapDistribute::operator=(map); + } +} + + +Foam::IOmapDistribute::IOmapDistribute +( + const IOobject& io, + const Xfer& map +) +: + regIOobject(io) +{ + // Temporary warning + if (io.readOpt() == IOobject::MUST_READ_IF_MODIFIED) + { + WarningIn("IOmapDistribute::IOmapDistribute(const IOobject&)") + << "IOmapDistribute " << name() + << " constructed with IOobject::MUST_READ_IF_MODIFIED" + " but IOmapDistribute does not support automatic rereading." + << endl; + } + + mapDistribute::transfer(map()); + + if + ( + ( + io.readOpt() == IOobject::MUST_READ + || io.readOpt() == IOobject::MUST_READ_IF_MODIFIED + ) + || (io.readOpt() == IOobject::READ_IF_PRESENT && headerOk()) + ) + { + readStream(typeName) >> *this; + close(); + } +} + + +// * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * * // + +Foam::IOmapDistribute::~IOmapDistribute() +{} + + +// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // + +bool Foam::IOmapDistribute::readData(Istream& is) +{ + return (is >> *this).good(); +} + + +bool Foam::IOmapDistribute::writeData(Ostream& os) const +{ + return (os << *this).good(); +} + + +// ************************************************************************* // diff --git a/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/IOmapDistribute.H b/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/IOmapDistribute.H new file mode 100644 index 00000000..271fb062 --- /dev/null +++ b/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/IOmapDistribute.H @@ -0,0 +1,98 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2014 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +Class + Foam::IOmapDistribute + +Description + IOmapDistribute is derived from mapDistribute and + IOobject to give the mapDistribute + automatic IO functionality via the objectRegistry. + +SourceFiles + IOmapDistribute.C + +\*---------------------------------------------------------------------------*/ + +#ifndef IOmapDistribute_H +#define IOmapDistribute_H + +#include "mapDistribute.H" +#include "regIOobject.H" + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +namespace Foam +{ + +/*---------------------------------------------------------------------------*\ + Class IOmapDistribute Declaration +\*---------------------------------------------------------------------------*/ + +class IOmapDistribute +: + public regIOobject, + public mapDistribute +{ + +public: + + //- Runtime type information + TypeName("mapDistribute"); + + // Constructors + + //- Construct given an IOobject + IOmapDistribute(const IOobject&); + + //- Construct given an IOobject and mapDistribute + IOmapDistribute(const IOobject&, const mapDistribute&); + + //- Construct by transferring the mapDistribute contents + IOmapDistribute(const IOobject&, const Xfer&); + + + //- Destructor + virtual ~IOmapDistribute(); + + + // Member functions + + //- ReadData function required for regIOobject read operation + virtual bool readData(Istream&); + + //- WriteData function required for regIOobject write operation + virtual bool writeData(Ostream&) const; + +}; + + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace Foam + +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +#endif + +// ************************************************************************* // diff --git a/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistribute.C b/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistribute.C index de842403..8feeefcf 100644 --- a/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistribute.C +++ b/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistribute.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -1341,4 +1341,31 @@ void Foam::mapDistribute::operator=(const mapDistribute& rhs) } +// * * * * * * * * * * * * * * Istream Operator * * * * * * * * * * * * * * // + +Foam::Istream& Foam::operator>>(Istream& is, mapDistribute& map) +{ + is.fatalCheck("operator>>(Istream&, mapDistribute&)"); + + is >> map.constructSize_ >> map.subMap_ >> map.constructMap_ + >> map.transformElements_ >> map.transformStart_; + + return is; +} + + +// * * * * * * * * * * * * * * Ostream Operator * * * * * * * * * * * * * * // + +Foam::Ostream& Foam::operator<<(Ostream& os, const mapDistribute& map) +{ + os << map.constructSize_ << token::NL + << map.subMap_ << token::NL + << map.constructMap_ << token::NL + << map.transformElements_ << token::NL + << map.transformStart_ << token::NL; + + return os; +} + + // ************************************************************************* // diff --git a/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistribute.H b/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistribute.H index 96004c3e..94953027 100644 --- a/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistribute.H +++ b/src/OpenFOAM/meshes/polyMesh/mapPolyMesh/mapDistribute/mapDistribute.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -676,6 +676,15 @@ public: void operator=(const mapDistribute&); + + // IOstream operators + + //- Read dictionary from Istream + friend Istream& operator>>(Istream&, mapDistribute&); + + //- Write dictionary to Ostream + friend Ostream& operator<<(Ostream&, const mapDistribute&); + }; diff --git a/src/OpenFOAM/meshes/primitiveMesh/PatchTools/PatchToolsNormals.C b/src/OpenFOAM/meshes/primitiveMesh/PatchTools/PatchToolsNormals.C index 8ac95cd8..50f01629 100644 --- a/src/OpenFOAM/meshes/primitiveMesh/PatchTools/PatchToolsNormals.C +++ b/src/OpenFOAM/meshes/primitiveMesh/PatchTools/PatchToolsNormals.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2014 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -45,9 +45,6 @@ Foam::PatchTools::pointNormals const PrimitivePatch& p ) { - // Assume patch is smaller than the globalData().coupledPatch() (?) so - // loop over patch meshPoints. - const globalMeshData& globalData = mesh.globalData(); const indirectPrimitivePatch& coupledPatch = globalData.coupledPatch(); const Map