From fc63e09f66053fdfd81ed4b8fa277f67859e6a1e Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Thu, 9 Aug 2018 19:04:36 +0200 Subject: [PATCH 1/4] GIT: remove editor backup files --- .../dynamicOversetFvMesh.C.orig | 404 ------------------ .../dynamicOversetFvMesh.H.orig | 331 -------------- 2 files changed, 735 deletions(-) delete mode 100644 src/overset/dynamicOversetFvMesh/dynamicOversetFvMesh.C.orig delete mode 100644 src/overset/dynamicOversetFvMesh/dynamicOversetFvMesh.H.orig diff --git a/src/overset/dynamicOversetFvMesh/dynamicOversetFvMesh.C.orig b/src/overset/dynamicOversetFvMesh/dynamicOversetFvMesh.C.orig deleted file mode 100644 index b9d7a816f6..0000000000 --- a/src/overset/dynamicOversetFvMesh/dynamicOversetFvMesh.C.orig +++ /dev/null @@ -1,404 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 2014-2017 OpenCFD Ltd. - \\/ M anipulation | -------------------------------------------------------------------------------- -License - This file is part of OpenFOAM. - - OpenFOAM is free software: you can redistribute it and/or modify i - 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 "dynamicOversetFvMesh.H" -#include "addToRunTimeSelectionTable.H" -#include "cellCellStencilObject.H" -#include "zeroGradientFvPatchFields.H" -#include "lduPrimitiveProcessorInterface.H" -#include "globalIndex.H" - -// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // - -namespace Foam -{ - defineTypeNameAndDebug(dynamicOversetFvMesh, 0); - addToRunTimeSelectionTable(dynamicFvMesh, dynamicOversetFvMesh, IOobject); -} - - -// * * * * * * * * * * * Private Member Functions * * * * * * * * * * * * * // - -bool Foam::dynamicOversetFvMesh::updateAddressing() const -{ - const cellCellStencilObject& overlap = Stencil::New(*this); - - // The (processor-local part of the) stencil determines the local - // faces to add to the matrix. tbd: parallel - const labelListList& stencil = overlap.cellStencil(); - - // Get the base addressing - const lduAddressing& baseAddr = dynamicMotionSolverFvMesh::lduAddr(); - - // Add to the base addressing - labelList lowerAddr; - labelList upperAddr; - label nExtraFaces; - - const globalIndex globalNumbering(baseAddr.size()); - labelListList localFaceCells; - labelListList remoteFaceCells; - - labelList globalCellIDs(overlap.cellInterpolationMap().constructSize()); - forAll(baseAddr, cellI) - { - globalCellIDs[cellI] = globalNumbering.toGlobal(cellI); - } - overlap.cellInterpolationMap().distribute(globalCellIDs); - - - reverseFaceMap_ = fvMeshPrimitiveLduAddressing::addAddressing - ( - baseAddr, - stencil, - nExtraFaces, - lowerAddr, - upperAddr, - stencilFaces_, - globalNumbering, - globalCellIDs, - localFaceCells, - remoteFaceCells - ); - - if (debug) - { - Pout<< "dynamicOversetFvMesh::update() : extended addressing from" - << " nFaces:" << baseAddr.lowerAddr().size() - << " to nFaces:" << lowerAddr.size() - << " nExtraFaces:" << nExtraFaces << endl; - } - - // Extract relevant remote processors - labelList nbrProcs(localFaceCells.size()); - { - label nbrI = 0; - forAll(localFaceCells, procI) - { - if (localFaceCells[procI].size()) - { - //Pout<< " from proc:" << procI - // << " want its local cells " << remoteFaceCells[procI] - // << " to add to my local cells:" << localFaceCells[procI] - // << endl; - nbrProcs[nbrI++] = procI; - } - } - nbrProcs.setSize(nbrI); - } - - // Construct interfaces - remoteStencilInterfaces_.setSize(nbrProcs.size()); - forAll(nbrProcs, i) - { - label procI = nbrProcs[i]; - remoteStencilInterfaces_.set - ( - i, - new lduPrimitiveProcessorInterface - ( - localFaceCells[procI], - Pstream::myProcNo(), - procI, - tensorField(0), - Pstream::msgType() - ) - ); - } - - - // Get addressing and interfaces of all interfaces - - - List patchAddr; - { - const fvBoundaryMesh& fvp = boundary(); - - patchAddr.setSize(fvp.size() + remoteStencilInterfaces_.size()); - - allInterfaces_ = dynamicMotionSolverFvMesh::interfaces(); - allInterfaces_.setSize(patchAddr.size()); - - forAll(fvp, patchI) - { - patchAddr[patchI] = &fvp[patchI].faceCells(); - } - forAll(remoteStencilInterfaces_, i) - { - label patchI = fvp.size()+i; - const lduPrimitiveProcessorInterface& pp = - remoteStencilInterfaces_[i]; - - //Pout<< "at patch:" << patchI - // << " have procPatch:" << pp.type() - // << " from:" << pp.myProcNo() - // << " to:" << pp.neighbProcNo() - // << " with fc:" << pp.faceCells().size() << endl; - - patchAddr[patchI] = &pp.faceCells(); - allInterfaces_.set(patchI, &pp); - } - } - const lduSchedule ps - ( - lduPrimitiveMesh::nonBlockingSchedule - ( - allInterfaces_ - ) - ); - - lduPtr_.reset - ( - new fvMeshPrimitiveLduAddressing - ( - nCells(), - std::move(lowerAddr), - std::move(upperAddr), - patchAddr, - ps - ) - ); - - - // Check - if (debug) - { - const lduAddressing& addr = lduPtr_(); //this->lduAddr(); - - Pout<< "Adapted addressing:" - << " lower:" << addr.lowerAddr().size() - << " upper:" << addr.upperAddr().size() << endl; - - lduInterfacePtrsList iFaces = this->interfaces(); - // Using lduAddressing::patch - forAll(patchAddr, patchI) - { - Pout<< " " << patchI << "\tpatchAddr:" - << addr.patchAddr(patchI).size() - << endl; - } - - // Using interfaces - Pout<< "iFaces:" << iFaces.size() << endl; - forAll(iFaces, patchI) - { - if (iFaces.set(patchI)) - { - Pout<< " " << patchI << "\tiFace:" << iFaces[patchI].type() - << endl; - } - } - - Pout<< "end of printing." << endl; - } - - return true; -} - - -// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // - -Foam::dynamicOversetFvMesh::dynamicOversetFvMesh(const IOobject& io) -: - dynamicMotionSolverFvMesh(io), - active_(false) -{ - // Load stencil (but do not update) - (void)Stencil::New(*this, false); -} - - -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -Foam::dynamicOversetFvMesh::~dynamicOversetFvMesh() -{} - - -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -const Foam::lduAddressing& Foam::dynamicOversetFvMesh::lduAddr() const -{ - if (!active_) - { - return dynamicMotionSolverFvMesh::lduAddr(); - } - if (lduPtr_.empty()) - { - // Build extended addressing - updateAddressing(); - } - return *lduPtr_; -} - - -const Foam::fvMeshPrimitiveLduAddressing& -Foam::dynamicOversetFvMesh::primitiveLduAddr() const -{ - if (lduPtr_.empty()) - { - FatalErrorInFunction - << "Extended addressing not allocated" << abort(FatalError); - } - - return *lduPtr_; -} - - -bool Foam::dynamicOversetFvMesh::update() -{ - if (dynamicMotionSolverFvMesh::update()) - { - // Calculate the local extra faces for the interpolation. Note: could - // let demand-driven lduAddr() trigger it but just to make sure. - updateAddressing(); - - // This should be done when there is actually a changed in - // the new addressing. This sshould no update old fields. - interpolateFields(); - - return true; - } - - return false; -} - - -bool Foam::dynamicOversetFvMesh::interpolateFields() -{ - { - auto flds(this->lookupClass()); - for (auto fldPtr : flds) - { - auto& fld = *fldPtr; - if - ( - fld.name() != "cellMask" - && fld.name() != "cellMask_0" - && fld.name() != "interpolatedCells" - && fld.name() != "k_0" - && fld.name() != "epsilon_0" - && fld.name() != "alpha.water_0" - && fld.name() != "rho_0" - ) - { - Pout << "Interpolating : " << fld.name() << endl; - interpolate(fld.primitiveFieldRef()); - } - } - } - - { - auto flds(this->lookupClass()); - for (auto fldPtr : flds) - { - auto& fld = *fldPtr; - if - ( - fld.name() != "cellDisplacement" - && fld.name() != "U_0" - ) - { - Pout << "Interpolating : " << fld.name() << endl; - interpolate(fld.primitiveFieldRef()); - } - } - } - - return true; -} - - - -bool Foam::dynamicOversetFvMesh::writeObject -( - IOstream::streamFormat fmt, - IOstream::versionNumber ver, - IOstream::compressionType cmp, - const bool valid -) const -{ - bool ok = dynamicMotionSolverFvMesh::writeObject(fmt, ver, cmp, valid); - - // For postprocessing : write cellTypes and zoneID - { - const cellCellStencilObject& overlap = Stencil::New(*this); - - const labelUList& cellTypes = overlap.cellTypes(); - - volScalarField volTypes - ( - IOobject - ( - "cellTypes", - this->time().timeName(), - *this, - IOobject::NO_READ, - IOobject::NO_WRITE, - false - ), - *this, - dimensionedScalar(dimless, Zero), - zeroGradientFvPatchScalarField::typeName - ); - - forAll(volTypes.internalField(), cellI) - { - volTypes[cellI] = cellTypes[cellI]; - } - volTypes.correctBoundaryConditions(); - volTypes.writeObject(fmt, ver, cmp, valid); - } - { - volScalarField volZoneID - ( - IOobject - ( - "zoneID", - this->time().timeName(), - *this, - IOobject::NO_READ, - IOobject::NO_WRITE, - false - ), - *this, - dimensionedScalar(dimless, Zero), - zeroGradientFvPatchScalarField::typeName - ); - - const cellCellStencilObject& overlap = Stencil::New(*this); - const labelIOList& zoneID = overlap.zoneID(); - - forAll(zoneID, cellI) - { - volZoneID[cellI] = zoneID[cellI]; - } - volZoneID.correctBoundaryConditions(); - volZoneID.writeObject(fmt, ver, cmp, valid); - } - return ok; -} - - -// ************************************************************************* // diff --git a/src/overset/dynamicOversetFvMesh/dynamicOversetFvMesh.H.orig b/src/overset/dynamicOversetFvMesh/dynamicOversetFvMesh.H.orig deleted file mode 100644 index e040617884..0000000000 --- a/src/overset/dynamicOversetFvMesh/dynamicOversetFvMesh.H.orig +++ /dev/null @@ -1,331 +0,0 @@ -/*---------------------------------------------------------------------------*\ - ========= | - \\ / F ield | OpenFOAM: The Open Source CFD Toolbox - \\ / O peration | - \\ / A nd | Copyright (C) 2015-2017 OpenCFD Ltd. - \\/ 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::dynamicOversetFvMesh - -Description - dynamicFvMesh with support for overset meshes. - -SourceFiles - dynamicOversetFvMesh.C - -\*---------------------------------------------------------------------------*/ - -#ifndef dynamicOversetFvMesh_H -#define dynamicOversetFvMesh_H - -#include "dynamicMotionSolverFvMesh.H" -#include "labelIOList.H" -#include "fvMeshPrimitiveLduAddressing.H" -#include "lduInterfaceFieldPtrsList.H" -#include "volFields.H" - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -namespace Foam -{ - -class mapDistribute; -class lduPrimitiveProcessorInterface; - -/*---------------------------------------------------------------------------*\ - Class dynamicOversetFvMesh Declaration -\*---------------------------------------------------------------------------*/ - -class dynamicOversetFvMesh -: - public dynamicMotionSolverFvMesh -{ -protected: - - // Protected data - - //- Select base addressing (false) or locally stored extended - // lduAddressing (true) - mutable bool active_; - - //- Extended addressing (extended with local interpolation stencils) - mutable autoPtr lduPtr_; - - //- Added (processor)lduInterfaces for remote bits of stencil. - //PtrList remoteStencilInterfaces_; - mutable PtrList - remoteStencilInterfaces_; - - //- Interfaces for above mesh. Contains both original and - // above added processorLduInterfaces - mutable lduInterfacePtrsList allInterfaces_; - - //- Corresponding faces (in above lduPtr) to the stencil - mutable labelListList stencilFaces_; - - //- From old to new face labels - mutable labelList reverseFaceMap_; - - - // Protected Member Functions - - //- Calculate the extended lduAddressing - virtual bool updateAddressing() const; - - //- Debug: print matrix - template - void write(Ostream&, const fvMatrix&, const lduAddressing&) const; - - //- Explicit interpolation of acceptor cells from donor cells - template - void interpolate(Field& psi) const; - - //- Explicit interpolation of acceptor cells from donor cells with - // boundary condition handling - template - void interpolate(GeoField& psi) const; - - //- Freeze values at holes - template - void freezeHoles(fvMatrix&) const; - - //- Get scalar interfaces of certain type - template - lduInterfaceFieldPtrsList scalarInterfaces(const GeoField& psi) const; - - //- Add interpolation to matrix (coefficients) - template - void addInterpolation(fvMatrix&) const; - - //- Solve given dictionary with settings - template - SolverPerformance solve(fvMatrix&, const dictionary&) const; - - //- Debug: correct coupled bc - template - static void correctCoupledBoundaryConditions(GeoField& fld); - - -private: - - // Private Member Functions - - //- No copy construct - dynamicOversetFvMesh(const dynamicOversetFvMesh&) = delete; - - //- No copy assignment - void operator=(const dynamicOversetFvMesh&) = delete; - - -public: - - //- Runtime type information - TypeName("dynamicOversetFvMesh"); - - - // Constructors - - //- Construct from IOobject - dynamicOversetFvMesh(const IOobject& io); - - - //- Destructor - virtual ~dynamicOversetFvMesh(); - - - // Member Functions - - - // Extended addressing - - //- Return extended ldu addressing - const fvMeshPrimitiveLduAddressing& primitiveLduAddr() const; - - //- Return ldu addressing. If active: is (extended) - // primitiveLduAddr - virtual const lduAddressing& lduAddr() const; - - //- Return old to new face addressing - const labelList& reverseFaceMap() const - { - return reverseFaceMap_; - } - - //- Return true if using extended addressing - bool active() const - { - return active_; - } - - //- Enable/disable extended addressing - void active(const bool f) const - { - active_ = f; - - if (active_) - { - DebugInfo<< "Switching to extended addressing with nFaces:" - << primitiveLduAddr().lowerAddr().size() - << endl; - } - else - { - DebugInfo<< "Switching to base addressing with nFaces:" - << fvMesh::lduAddr().lowerAddr().size() - << endl; - } - } - - - // Overset - - // Explicit interpolation - - virtual void interpolate(scalarField& psi) const - { - interpolate(psi); - } - - virtual void interpolate(vectorField& psi) const - { - interpolate(psi); - } - - virtual void interpolate(sphericalTensorField& psi) const - { - interpolate(psi); - } - - virtual void interpolate(symmTensorField& psi) const - { - interpolate(psi); - } - - virtual void interpolate(tensorField& psi) const - { - interpolate(psi); - } - - virtual void interpolate(volScalarField& psi) const - { - interpolate(psi); - } - - virtual void interpolate(volVectorField& psi) const - { - interpolate(psi); - } - - virtual void interpolate(volSphericalTensorField& psi) const - { - interpolate(psi); - } - - virtual void interpolate(volSymmTensorField& psi) const - { - interpolate(psi); - } - - virtual void interpolate(volTensorField& psi) const - { - interpolate(psi); - } - - - // Implicit interpolation (matrix manipulation) - - //- Solve returning the solution statistics given convergence - // tolerance. Use the given solver controls - virtual SolverPerformance solve - ( - fvMatrix& m, - const dictionary& dict - ) const - { - return solve(m, dict); - } - - //- Solve returning the solution statistics given convergence - // tolerance. Use the given solver controls - virtual SolverPerformance solve - ( - fvMatrix& m, - const dictionary& dict - ) const - { - return solve(m, dict); - } - - //- Solve returning the solution statistics given convergence - // tolerance. Use the given solver controls - virtual SolverPerformance solve - ( - fvMatrix& m, - const dictionary& dict - ) const - { - return solve(m, dict); - } - - //- Solve returning the solution statistics given convergence - // tolerance. Use the given solver controls - virtual SolverPerformance solve - ( - fvMatrix& m, - const dictionary& dict - ) const - { - return solve(m, dict); - } - - - //- Update the mesh for both mesh motion and topology change - virtual bool update(); - - //- Write using given format, version and compression - virtual bool writeObject - ( - IOstream::streamFormat, - IOstream::versionNumber, - IOstream::compressionType, - const bool valid - ) const; - - //- Debug: check halo swap is ok - template - static void checkCoupledBC(const GeoField& fld); -}; - - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -} // End namespace Foam - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#ifdef NoRepository -# include "dynamicOversetFvMeshTemplates.C" -#endif - -// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // - -#endif - -// ************************************************************************* // From 2b869824f2f74609b9c518773b959e41882a0191 Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Thu, 9 Aug 2018 19:05:11 +0200 Subject: [PATCH 2/4] STYLE: additional description header for decomposition details --- src/parallel/decompose/decompose/decompositionInformation.C | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/parallel/decompose/decompose/decompositionInformation.C b/src/parallel/decompose/decompose/decompositionInformation.C index 28a52235f1..9afe1609dd 100644 --- a/src/parallel/decompose/decompose/decompositionInformation.C +++ b/src/parallel/decompose/decompose/decompositionInformation.C @@ -164,6 +164,9 @@ void Foam::decompositionInformation::printSummary(Ostream& os) const void Foam::decompositionInformation::printDetails(Ostream& os) const { + os << "Decomposition details with (proc faces) " + "for each processor connection"<< nl << nl; + forAll(distrib_, ownProc) { const labelList& subdist = distrib_[ownProc]; From b41d5ed5237539dc01e8e18796671855db5c7eda Mon Sep 17 00:00:00 2001 From: Mark Olesen Date: Wed, 11 Jul 2018 17:02:40 +0200 Subject: [PATCH 3/4] STYLE: remove deprecated constraints format from tutorials --- .../hexRef8/block/system/decomposeParDict | 48 ++++++++---- .../cavity/system/decomposeParDict | 52 ++++++++----- .../cavity/system/decomposeParDict-2 | 52 ++++++++----- .../cavity/system/decomposeParDict-5 | 52 ++++++++----- .../cavity_pinched/system/decomposeParDict | 46 +++++++---- .../system/decomposeParDict | 6 +- .../multiRegionHeater/system/decomposeParDict | 16 +++- .../system/decomposeParDict | 17 +++- .../system/decomposeParDict | 14 +++- .../system/decomposeParDict | 15 +++- .../filter/system/decomposeParDict | 16 ++-- .../parallel/cavity/system/decomposeParDict | 71 ++++++++++------- .../parallel/cavity/system/decomposeParDict-5 | 77 ++++++++++++------- .../parallel/filter/system/decomposeParDict | 14 ++-- .../system/decomposeParDict | 74 +++++++++++------- .../system/bottomAir/decomposeParDict | 15 +++- .../system/decomposeParDict | 15 +++- .../system/heater/decomposeParDict | 15 +++- .../system/leftSolid/decomposeParDict | 15 +++- .../system/rightSolid/decomposeParDict | 15 +++- .../system/topAir/decomposeParDict | 15 +++- 21 files changed, 435 insertions(+), 225 deletions(-) diff --git a/applications/test/hexRef8/block/system/decomposeParDict b/applications/test/hexRef8/block/system/decomposeParDict index 884a85624e..ac4be587d4 100644 --- a/applications/test/hexRef8/block/system/decomposeParDict +++ b/applications/test/hexRef8/block/system/decomposeParDict @@ -17,22 +17,6 @@ FoamFile numberOfSubdomains 2; -//- Keep owner and neighbour on same processor for faces in zones: -// preserveFaceZones (heater solid1 solid3); - -//- Keep owner and neighbour on same processor for faces in patches: -// (makes sense only for cyclic patches) -//preservePatches (cyclic_half0 cyclic_half1); - -//- Keep all of faceSet on a single processor. This puts all cells -// connected with a point, edge or face on the same processor. -// (just having face connected cells might not guarantee a balanced -// decomposition) -// The processor can be -1 (the decompositionMethod chooses the processor -// for a good load balance) or explicitly provided (upsets balance). -//singleProcessorFaceSets ((f0 -1)); - - //- Use the volScalarField named here as a weight for each cell in the // decomposition. For example, use a particle population field to decompose // for a balanced number of particles in a lagrangian simulation. @@ -126,6 +110,38 @@ structuredCoeffs method scotch; } + +/* +constraints +{ + //- Keep owner and neighbour on same processor for faces in zones: + faces + { + type preserveFaceZones, + zones (heater solid1 solid3); + } + //- Keep owner and neighbour on same processor for faces in patches: + // (makes sense only for cyclic patches) + patches + { + type preservePatches, + patches (cyclic_half0 cyclic_half1); + } + //- Keep all of faceSet on a single processor. This puts all cells + // connected with a point, edge or face on the same processor. + // (just having face connected cells might not guarantee a balanced + // decomposition) + // The processor can be -1 (the decompositionMethod chooses the processor + // for a good load balance) or explicitly provided (upsets balance). + processors + { + type singleProcessorFaceSets; + sets ((f0 -1)); + } +} +*/ + + //// Is the case distributed? Note: command-line argument -roots takes //// precedence //distributed yes; diff --git a/applications/test/mapDistributePolyMesh/cavity/system/decomposeParDict b/applications/test/mapDistributePolyMesh/cavity/system/decomposeParDict index 4a13ccbaef..911121a532 100644 --- a/applications/test/mapDistributePolyMesh/cavity/system/decomposeParDict +++ b/applications/test/mapDistributePolyMesh/cavity/system/decomposeParDict @@ -17,27 +17,6 @@ FoamFile numberOfSubdomains 2; -//- Keep owner and neighbour on same processor for faces in zones: -// preserveFaceZones (heater solid1 solid3); - -//- Keep owner and neighbour on same processor for faces in patches: -// (makes sense only for cyclic patches) -//preservePatches (cyclic_half0 cyclic_half1); - -//- Keep all of faceSet on a single processor. This puts all cells -// connected with a point, edge or face on the same processor. -// (just having face connected cells might not guarantee a balanced -// decomposition) -// The processor can be -1 (the decompositionMethod chooses the processor -// for a good load balance) or explicitly provided (upsets balance). -//singleProcessorFaceSets ((f0 -1)); - - -//- Keep owner and neighbour of baffles on same processor (i.e. keep it -// detectable as a baffle). Baffles are two boundary face sharing the -// same points. -//preserveBaffles true; - //- Use the volScalarField named here as a weight for each cell in the // decomposition. For example, use a particle population field to decompose // for a balanced number of particles in a lagrangian simulation. @@ -130,6 +109,37 @@ structuredCoeffs method scotch; } + +/* +constraints +{ + //- Keep owner and neighbour on same processor for faces in zones: + faces + { + type preserveFaceZones, + zones (heater solid1 solid3); + } + //- Keep owner and neighbour on same processor for faces in patches: + // (makes sense only for cyclic patches) + patches + { + type preservePatches, + patches (cyclic_half0 cyclic_half1); + } + //- Keep all of faceSet on a single processor. This puts all cells + // connected with a point, edge or face on the same processor. + // (just having face connected cells might not guarantee a balanced + // decomposition) + // The processor can be -1 (the decompositionMethod chooses the processor + // for a good load balance) or explicitly provided (upsets balance). + processors + { + type singleProcessorFaceSets; + sets ((f0 -1)); + } +} +*/ + //// Is the case distributed? Note: command-line argument -roots takes //// precedence //distributed yes; diff --git a/applications/test/mapDistributePolyMesh/cavity/system/decomposeParDict-2 b/applications/test/mapDistributePolyMesh/cavity/system/decomposeParDict-2 index 4a13ccbaef..287b9841d9 100644 --- a/applications/test/mapDistributePolyMesh/cavity/system/decomposeParDict-2 +++ b/applications/test/mapDistributePolyMesh/cavity/system/decomposeParDict-2 @@ -17,27 +17,6 @@ FoamFile numberOfSubdomains 2; -//- Keep owner and neighbour on same processor for faces in zones: -// preserveFaceZones (heater solid1 solid3); - -//- Keep owner and neighbour on same processor for faces in patches: -// (makes sense only for cyclic patches) -//preservePatches (cyclic_half0 cyclic_half1); - -//- Keep all of faceSet on a single processor. This puts all cells -// connected with a point, edge or face on the same processor. -// (just having face connected cells might not guarantee a balanced -// decomposition) -// The processor can be -1 (the decompositionMethod chooses the processor -// for a good load balance) or explicitly provided (upsets balance). -//singleProcessorFaceSets ((f0 -1)); - - -//- Keep owner and neighbour of baffles on same processor (i.e. keep it -// detectable as a baffle). Baffles are two boundary face sharing the -// same points. -//preserveBaffles true; - //- Use the volScalarField named here as a weight for each cell in the // decomposition. For example, use a particle population field to decompose // for a balanced number of particles in a lagrangian simulation. @@ -130,6 +109,37 @@ structuredCoeffs method scotch; } +/* +constraints +{ + //- Keep owner and neighbour on same processor for faces in zones: + faces + { + type preserveFaceZones, + zones (heater solid1 solid3); + } + //- Keep owner and neighbour on same processor for faces in patches: + // (makes sense only for cyclic patches) + patches + { + type preservePatches, + patches (cyclic_half0 cyclic_half1); + } + //- Keep all of faceSet on a single processor. This puts all cells + // connected with a point, edge or face on the same processor. + // (just having face connected cells might not guarantee a balanced + // decomposition) + // The processor can be -1 (the decompositionMethod chooses the processor + // for a good load balance) or explicitly provided (upsets balance). + processors + { + type singleProcessorFaceSets; + sets ((f0 -1)); + } +} +*/ + + //// Is the case distributed? Note: command-line argument -roots takes //// precedence //distributed yes; diff --git a/applications/test/mapDistributePolyMesh/cavity/system/decomposeParDict-5 b/applications/test/mapDistributePolyMesh/cavity/system/decomposeParDict-5 index 426e8b0d06..f3274a9be2 100644 --- a/applications/test/mapDistributePolyMesh/cavity/system/decomposeParDict-5 +++ b/applications/test/mapDistributePolyMesh/cavity/system/decomposeParDict-5 @@ -17,27 +17,6 @@ FoamFile numberOfSubdomains 5; -//- Keep owner and neighbour on same processor for faces in zones: -// preserveFaceZones (heater solid1 solid3); - -//- Keep owner and neighbour on same processor for faces in patches: -// (makes sense only for cyclic patches) -//preservePatches (cyclic_half0 cyclic_half1); - -//- Keep all of faceSet on a single processor. This puts all cells -// connected with a point, edge or face on the same processor. -// (just having face connected cells might not guarantee a balanced -// decomposition) -// The processor can be -1 (the decompositionMethod chooses the processor -// for a good load balance) or explicitly provided (upsets balance). -//singleProcessorFaceSets ((f0 -1)); - - -//- Keep owner and neighbour of baffles on same processor (i.e. keep it -// detectable as a baffle). Baffles are two boundary face sharing the -// same points. -//preserveBaffles true; - //- Use the volScalarField named here as a weight for each cell in the // decomposition. For example, use a particle population field to decompose // for a balanced number of particles in a lagrangian simulation. @@ -130,6 +109,37 @@ structuredCoeffs method scotch; } +/* +constraints +{ + //- Keep owner and neighbour on same processor for faces in zones: + faces + { + type preserveFaceZones, + zones (heater solid1 solid3); + } + //- Keep owner and neighbour on same processor for faces in patches: + // (makes sense only for cyclic patches) + patches + { + type preservePatches, + patches (cyclic_half0 cyclic_half1); + } + //- Keep all of faceSet on a single processor. This puts all cells + // connected with a point, edge or face on the same processor. + // (just having face connected cells might not guarantee a balanced + // decomposition) + // The processor can be -1 (the decompositionMethod chooses the processor + // for a good load balance) or explicitly provided (upsets balance). + processors + { + type singleProcessorFaceSets; + sets ((f0 -1)); + } +} +*/ + + //// Is the case distributed? Note: command-line argument -roots takes //// precedence //distributed yes; diff --git a/applications/test/patchRegion/cavity_pinched/system/decomposeParDict b/applications/test/patchRegion/cavity_pinched/system/decomposeParDict index 472b762e76..05fb82d4af 100644 --- a/applications/test/patchRegion/cavity_pinched/system/decomposeParDict +++ b/applications/test/patchRegion/cavity_pinched/system/decomposeParDict @@ -17,22 +17,6 @@ FoamFile numberOfSubdomains 2; -//- Keep owner and neighbour on same processor for faces in zones: -// preserveFaceZones (heater solid1 solid3); - -//- Keep owner and neighbour on same processor for faces in patches: -// (makes sense only for cyclic patches) -//preservePatches (cyclic_half0 cyclic_half1); - -//- Keep all of faceSet on a single processor. This puts all cells -// connected with a point, edge or face on the same processor. -// (just having face connected cells might not guarantee a balanced -// decomposition) -// The processor can be -1 (the decompositionMethod chooses the processor -// for a good load balance) or explicitly provided (upsets balance). -//singleProcessorFaceSets ((f0 -1)); - - //- Use the volScalarField named here as a weight for each cell in the // decomposition. For example, use a particle population field to decompose // for a balanced number of particles in a lagrangian simulation. @@ -125,6 +109,36 @@ structuredCoeffs method scotch; } +/* +constraints +{ + //- Keep owner and neighbour on same processor for faces in zones: + faces + { + type preserveFaceZones, + zones (heater solid1 solid3); + } + //- Keep owner and neighbour on same processor for faces in patches: + // (makes sense only for cyclic patches) + patches + { + type preservePatches, + patches (cyclic_half0 cyclic_half1); + } + //- Keep all of faceSet on a single processor. This puts all cells + // connected with a point, edge or face on the same processor. + // (just having face connected cells might not guarantee a balanced + // decomposition) + // The processor can be -1 (the decompositionMethod chooses the processor + // for a good load balance) or explicitly provided (upsets balance). + processors + { + type singleProcessorFaceSets; + sets ((f0 -1)); + } +} +*/ + //// Is the case distributed? Note: command-line argument -roots takes //// precedence //distributed yes; diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/decomposeParDict index a46e9617d4..e8c69a5d1a 100644 --- a/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/decomposeParDict +++ b/tutorials/heatTransfer/chtMultiRegionFoam/externalCoupledHeater/system/decomposeParDict @@ -16,9 +16,6 @@ FoamFile numberOfSubdomains 4; -//- Keep owner and neighbour on same processor for faces in zones: -// preserveFaceZones (heater solid1 solid3); - method scotch; // method hierarchical; // method simple; @@ -27,9 +24,8 @@ method scotch; coeffs { n (2 2 1); - //delta 0.001; // default=0.001 - //order xyz; // default=xzy dataFile "decompositionData"; } + // ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/decomposeParDict index 392b808bdd..6a683b0b2f 100644 --- a/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/decomposeParDict +++ b/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/system/decomposeParDict @@ -16,11 +16,7 @@ FoamFile numberOfSubdomains 4; -//- Keep owner and neighbour on same processor for faces in zones: -// preserveFaceZones (heater solid1 solid3); - method scotch; - // method hierarchical; // method simple; // method manual; @@ -44,4 +40,16 @@ coeffs n (2 2 1); } +/* +constraints +{ + //- Keep owner and neighbour on same processor for faces in zones: + faces + { + type preserveFaceZones, + zones (heater solid1 solid3); + } +} +*/ + // ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/decomposeParDict index 019ea832f9..d41dd8c98c 100644 --- a/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/decomposeParDict +++ b/tutorials/heatTransfer/chtMultiRegionFoam/snappyMultiRegionHeater/system/decomposeParDict @@ -16,9 +16,6 @@ FoamFile numberOfSubdomains 4; -//- Keep owner and neighbour on same processor for faces in zones: -// preserveFaceZones (heater solid1 solid3); - method scotch; regions @@ -26,7 +23,7 @@ regions heater { numberOfSubdomains 1; - method simple; + method simple; coeffs { @@ -40,4 +37,16 @@ coeffs n (2 2 1); } +/* +constraints +{ + //- Keep owner and neighbour on same processor for faces in zones: + faces + { + type preserveFaceZones, + zones (heater solid1 solid3); + } +} +*/ + // ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/decomposeParDict index c493fe9e6b..db7a44b847 100644 --- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/decomposeParDict +++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/externalCoupledHeater/system/decomposeParDict @@ -16,10 +16,18 @@ FoamFile numberOfSubdomains 4; -//- Keep owner and neighbour on same processor for faces in zones: -// preserveFaceZones (heater solid1 solid3); - method scotch; +/* +constraints +{ + //- Keep owner and neighbour on same processor for faces in zones: + faces + { + type preserveFaceZones, + zones (heater solid1 solid3); + } +} +*/ // ************************************************************************* // diff --git a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/decomposeParDict b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/decomposeParDict index 84839a8d06..ab5f3e8ddc 100644 --- a/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/decomposeParDict +++ b/tutorials/heatTransfer/chtMultiRegionSimpleFoam/multiRegionHeaterRadiation/system/decomposeParDict @@ -16,9 +16,6 @@ FoamFile numberOfSubdomains 4; -//- Keep owner and neighbour on same processor for faces in zones: -// preserveFaceZones (heater solid1 solid3); - method scotch; // method hierarchical; // method simple; @@ -37,4 +34,16 @@ scotchCoeffs } +/* +constraints +{ + //- Keep owner and neighbour on same processor for faces in zones: + faces + { + type preserveFaceZones, + zones (heater solid1 solid3); + } +} +*/ + // ************************************************************************* // diff --git a/tutorials/lagrangian/reactingParcelFoam/filter/system/decomposeParDict b/tutorials/lagrangian/reactingParcelFoam/filter/system/decomposeParDict index 6ca27c3a10..705fe24c65 100644 --- a/tutorials/lagrangian/reactingParcelFoam/filter/system/decomposeParDict +++ b/tutorials/lagrangian/reactingParcelFoam/filter/system/decomposeParDict @@ -18,15 +18,19 @@ numberOfSubdomains 4; method scotch; -preserveFaceZones -( - cycLeft - cycRight -); - coeffs { n (2 2 1); } +constraints +{ + //- Keep owner and neighbour on same processor for faces in zones: + faces + { + type preserveFaceZones, + zones (cycLeft cycRight); + } +} + // ************************************************************************* // diff --git a/tutorials/mesh/parallel/cavity/system/decomposeParDict b/tutorials/mesh/parallel/cavity/system/decomposeParDict index e4d2ef5435..978d27ee1d 100644 --- a/tutorials/mesh/parallel/cavity/system/decomposeParDict +++ b/tutorials/mesh/parallel/cavity/system/decomposeParDict @@ -17,27 +17,6 @@ FoamFile numberOfSubdomains 2; -//- Keep owner and neighbour on same processor for faces in zones: -// preserveFaceZones (heater solid1 solid3); - -//- Keep owner and neighbour on same processor for faces in patches: -// (makes sense only for cyclic patches) -//preservePatches (cyclic_half0 cyclic_half1); - -//- Keep all of faceSet on a single processor. This puts all cells -// connected with a point, edge or face on the same processor. -// (just having face connected cells might not guarantee a balanced -// decomposition) -// The processor can be -1 (the decompositionMethod chooses the processor -// for a good load balance) or explicitly provided (upsets balance). -//singleProcessorFaceSets ((f0 -1)); - - -//- Keep owner and neighbour of baffles on same processor (i.e. keep it -// detectable as a baffle). Baffles are two boundary face sharing the -// same points. -//preserveBaffles true; - //- Use the volScalarField named here as a weight for each cell in the // decomposition. For example, use a particle population field to decompose // for a balanced number of particles in a lagrangian simulation. @@ -79,15 +58,12 @@ multiLevelCoeffs simpleCoeffs { - n (2 1 1); - delta 0.001; + n (2 1 1); } hierarchicalCoeffs { - n (1 2 1); - delta 0.001; - order xyz; + n (1 2 1); } metisCoeffs @@ -131,6 +107,49 @@ structuredCoeffs method scotch; } +constraints +{ + //- Keep owner and neighbour on same processor for faces in zones: + zones + { + type preserveFaceZones; + zones (heater solid1 solid3); + enabled false; + } + + //- Keep owner and neighbour on same processor for faces in patches: + // (makes sense only for cyclic patches) + patches + { + type preservePatches; + patches (cyclic_half0 cyclic_half1); + enabled false; + } + + //- Keep all of faceSet on a single processor. This puts all cells + // connected with a point, edge or face on the same processor. + // (just having face connected cells might not guarantee a balanced + // decomposition) + // The processor can be -1 (the decompositionMethod chooses the processor + // for a good load balance) or explicitly provided (upsets balance). + processors + { + type singleProcessorFaceSets; + sets ((f0 -1)); + enabled false; + } + + //- Keep owner and neighbour of baffles on same processor + // (i.e. keep it detectable as a baffle). + // Baffles are two boundary face sharing the same points. + baffles + { + type preserveBaffles; + enabled false; + } +} + + //// Is the case distributed? Note: command-line argument -roots takes //// precedence //distributed yes; diff --git a/tutorials/mesh/parallel/cavity/system/decomposeParDict-5 b/tutorials/mesh/parallel/cavity/system/decomposeParDict-5 index 1e6184c072..008d946f44 100644 --- a/tutorials/mesh/parallel/cavity/system/decomposeParDict-5 +++ b/tutorials/mesh/parallel/cavity/system/decomposeParDict-5 @@ -17,27 +17,6 @@ FoamFile numberOfSubdomains 5; -//- Keep owner and neighbour on same processor for faces in zones: -// preserveFaceZones (heater solid1 solid3); - -//- Keep owner and neighbour on same processor for faces in patches: -// (makes sense only for cyclic patches) -//preservePatches (cyclic_half0 cyclic_half1); - -//- Keep all of faceSet on a single processor. This puts all cells -// connected with a point, edge or face on the same processor. -// (just having face connected cells might not guarantee a balanced -// decomposition) -// The processor can be -1 (the decompositionMethod chooses the processor -// for a good load balance) or explicitly provided (upsets balance). -//singleProcessorFaceSets ((f0 -1)); - - -//- Keep owner and neighbour of baffles on same processor (i.e. keep it -// detectable as a baffle). Baffles are two boundary face sharing the -// same points. -//preserveBaffles true; - //- Use the volScalarField named here as a weight for each cell in the // decomposition. For example, use a particle population field to decompose // for a balanced number of particles in a lagrangian simulation. @@ -79,15 +58,12 @@ multiLevelCoeffs simpleCoeffs { - n (2 1 1); - delta 0.001; + n (2 1 1); } hierarchicalCoeffs { - n (1 2 1); - delta 0.001; - order xyz; + n (1 2 1); } metisCoeffs @@ -123,14 +99,57 @@ manualCoeffs structuredCoeffs { + // Method to use on the 2D subset + method scotch; + // Patches to do 2D decomposition on. Structured mesh only; cells have // to be in 'columns' on top of patches. patches (movingWall); - - // Method to use on the 2D subset - method scotch; } +constraints +{ + //- Keep owner and neighbour on same processor for faces in zones: + zones + { + type preserveFaceZones; + zones (heater solid1 solid3); + enabled false; + } + + //- Keep owner and neighbour on same processor for faces in patches: + // (makes sense only for cyclic patches) + patches + { + type preservePatches; + patches (cyclic_half0 cyclic_half1); + enabled false; + } + + //- Keep all of faceSet on a single processor. This puts all cells + // connected with a point, edge or face on the same processor. + // (just having face connected cells might not guarantee a balanced + // decomposition) + // The processor can be -1 (the decompositionMethod chooses the processor + // for a good load balance) or explicitly provided (upsets balance). + processors + { + type singleProcessorFaceSets; + sets ((f0 -1)); + enabled false; + } + + //- Keep owner and neighbour of baffles on same processor + // (i.e. keep it detectable as a baffle). + // Baffles are two boundary face sharing the same points. + baffles + { + type preserveBaffles; + enabled false; + } +} + + //// Is the case distributed? Note: command-line argument -roots takes //// precedence //distributed yes; diff --git a/tutorials/mesh/parallel/filter/system/decomposeParDict b/tutorials/mesh/parallel/filter/system/decomposeParDict index e38cbfb560..16086ce80a 100644 --- a/tutorials/mesh/parallel/filter/system/decomposeParDict +++ b/tutorials/mesh/parallel/filter/system/decomposeParDict @@ -18,11 +18,15 @@ numberOfSubdomains 3; method scotch; -preserveFaceZones -( - cycLeft - cycRight -); +constraints +{ + //- Keep owner and neighbour on same processor for faces in zones: + faces + { + type preserveFaceZones, + zones (cycLeft cycRight); + } +} // ************************************************************************* // diff --git a/tutorials/mesh/snappyHexMesh/addLayersToFaceZone/system/decomposeParDict b/tutorials/mesh/snappyHexMesh/addLayersToFaceZone/system/decomposeParDict index 4a13ccbaef..64a98e1f0e 100644 --- a/tutorials/mesh/snappyHexMesh/addLayersToFaceZone/system/decomposeParDict +++ b/tutorials/mesh/snappyHexMesh/addLayersToFaceZone/system/decomposeParDict @@ -17,27 +17,6 @@ FoamFile numberOfSubdomains 2; -//- Keep owner and neighbour on same processor for faces in zones: -// preserveFaceZones (heater solid1 solid3); - -//- Keep owner and neighbour on same processor for faces in patches: -// (makes sense only for cyclic patches) -//preservePatches (cyclic_half0 cyclic_half1); - -//- Keep all of faceSet on a single processor. This puts all cells -// connected with a point, edge or face on the same processor. -// (just having face connected cells might not guarantee a balanced -// decomposition) -// The processor can be -1 (the decompositionMethod chooses the processor -// for a good load balance) or explicitly provided (upsets balance). -//singleProcessorFaceSets ((f0 -1)); - - -//- Keep owner and neighbour of baffles on same processor (i.e. keep it -// detectable as a baffle). Baffles are two boundary face sharing the -// same points. -//preserveBaffles true; - //- Use the volScalarField named here as a weight for each cell in the // decomposition. For example, use a particle population field to decompose // for a balanced number of particles in a lagrangian simulation. @@ -79,14 +58,11 @@ multiLevelCoeffs simpleCoeffs { n (2 1 1); - delta 0.001; } hierarchicalCoeffs { n (1 2 1); - delta 0.001; - order xyz; } metisCoeffs @@ -122,14 +98,58 @@ manualCoeffs structuredCoeffs { + // Method to use on the 2D subset + method scotch; + // Patches to do 2D decomposition on. Structured mesh only; cells have // to be in 'columns' on top of patches. patches (movingWall); - - // Method to use on the 2D subset - method scotch; } + +constraints +{ + //- Keep owner and neighbour on same processor for faces in zones: + zones + { + type preserveFaceZones; + zones (heater solid1 solid3); + enabled false; + } + + //- Keep owner and neighbour on same processor for faces in patches: + // (makes sense only for cyclic patches) + patches + { + type preservePatches; + patches (cyclic_half0 cyclic_half1); + enabled false; + } + + //- Keep all of faceSet on a single processor. This puts all cells + // connected with a point, edge or face on the same processor. + // (just having face connected cells might not guarantee a balanced + // decomposition) + // The processor can be -1 (the decompositionMethod chooses the processor + // for a good load balance) or explicitly provided (upsets balance). + singleProcessorFaceSets + { + type singleProcessorFaceSets; + sets ((f0 -1)); + enabled false; + } + + //- Keep owner and neighbour of baffles on same processor + // (i.e. keep it detectable as a baffle). + // Baffles are two boundary face sharing the same points. + baffles + { + type preserveBaffles; + enabled false; + } +} + + //// Is the case distributed? Note: command-line argument -roots takes //// precedence //distributed yes; diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/bottomAir/decomposeParDict b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/bottomAir/decomposeParDict index 67106528e3..8719f23c1f 100644 --- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/bottomAir/decomposeParDict +++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/bottomAir/decomposeParDict @@ -16,9 +16,6 @@ FoamFile numberOfSubdomains 4; -//- Keep owner and neighbour on same processor for faces in zones: -// preserveFaceZones (heater solid1 solid3); - method scotch; // method hierarchical; // method simple; @@ -45,4 +42,16 @@ scotchCoeffs //strategy "b"; } +/* +constraints +{ + //- Keep owner and neighbour on same processor for faces in zones: + faces + { + type preserveFaceZones, + zones (heater solid1 solid3); + } +} +*/ + // ************************************************************************* // diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/decomposeParDict b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/decomposeParDict index 75c6ca9fc8..8866e09871 100644 --- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/decomposeParDict +++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/decomposeParDict @@ -16,9 +16,6 @@ FoamFile numberOfSubdomains 4; -//- Keep owner and neighbour on same processor for faces in zones: -// preserveFaceZones (heater solid1 solid3); - // method scotch; method hierarchical; // method simple; @@ -45,4 +42,16 @@ scotchCoeffs //strategy "b"; } +/* +constraints +{ + //- Keep owner and neighbour on same processor for faces in zones: + faces + { + type preserveFaceZones; + zones (heater solid1 solid3); + } +} +*/ + // ************************************************************************* // diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/heater/decomposeParDict b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/heater/decomposeParDict index 67106528e3..8719f23c1f 100644 --- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/heater/decomposeParDict +++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/heater/decomposeParDict @@ -16,9 +16,6 @@ FoamFile numberOfSubdomains 4; -//- Keep owner and neighbour on same processor for faces in zones: -// preserveFaceZones (heater solid1 solid3); - method scotch; // method hierarchical; // method simple; @@ -45,4 +42,16 @@ scotchCoeffs //strategy "b"; } +/* +constraints +{ + //- Keep owner and neighbour on same processor for faces in zones: + faces + { + type preserveFaceZones, + zones (heater solid1 solid3); + } +} +*/ + // ************************************************************************* // diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/leftSolid/decomposeParDict b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/leftSolid/decomposeParDict index 67106528e3..8719f23c1f 100644 --- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/leftSolid/decomposeParDict +++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/leftSolid/decomposeParDict @@ -16,9 +16,6 @@ FoamFile numberOfSubdomains 4; -//- Keep owner and neighbour on same processor for faces in zones: -// preserveFaceZones (heater solid1 solid3); - method scotch; // method hierarchical; // method simple; @@ -45,4 +42,16 @@ scotchCoeffs //strategy "b"; } +/* +constraints +{ + //- Keep owner and neighbour on same processor for faces in zones: + faces + { + type preserveFaceZones, + zones (heater solid1 solid3); + } +} +*/ + // ************************************************************************* // diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/rightSolid/decomposeParDict b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/rightSolid/decomposeParDict index 67106528e3..8719f23c1f 100644 --- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/rightSolid/decomposeParDict +++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/rightSolid/decomposeParDict @@ -16,9 +16,6 @@ FoamFile numberOfSubdomains 4; -//- Keep owner and neighbour on same processor for faces in zones: -// preserveFaceZones (heater solid1 solid3); - method scotch; // method hierarchical; // method simple; @@ -45,4 +42,16 @@ scotchCoeffs //strategy "b"; } +/* +constraints +{ + //- Keep owner and neighbour on same processor for faces in zones: + faces + { + type preserveFaceZones, + zones (heater solid1 solid3); + } +} +*/ + // ************************************************************************* // diff --git a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/topAir/decomposeParDict b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/topAir/decomposeParDict index 67106528e3..8719f23c1f 100644 --- a/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/topAir/decomposeParDict +++ b/tutorials/preProcessing/createZeroDirectory/snappyMultiRegionHeater/system/topAir/decomposeParDict @@ -16,9 +16,6 @@ FoamFile numberOfSubdomains 4; -//- Keep owner and neighbour on same processor for faces in zones: -// preserveFaceZones (heater solid1 solid3); - method scotch; // method hierarchical; // method simple; @@ -45,4 +42,16 @@ scotchCoeffs //strategy "b"; } +/* +constraints +{ + //- Keep owner and neighbour on same processor for faces in zones: + faces + { + type preserveFaceZones, + zones (heater solid1 solid3); + } +} +*/ + // ************************************************************************* // From c1223095c49d6287e2435942091ef567f43574cb Mon Sep 17 00:00:00 2001 From: Andrew Heather <> Date: Thu, 9 Aug 2018 14:40:24 +0100 Subject: [PATCH 4/4] COMP: Resolved compiler warnings --- src/OpenFOAM/containers/Lists/FixedList/FixedList.H | 1 - src/OpenFOAM/containers/Lists/List/List.H | 1 - src/OpenFOAM/containers/Lists/UList/UList.H | 1 - src/OpenFOAM/primitives/Pair/Pair.H | 1 - 4 files changed, 4 deletions(-) diff --git a/src/OpenFOAM/containers/Lists/FixedList/FixedList.H b/src/OpenFOAM/containers/Lists/FixedList/FixedList.H index 5d94034762..b56720274c 100644 --- a/src/OpenFOAM/containers/Lists/FixedList/FixedList.H +++ b/src/OpenFOAM/containers/Lists/FixedList/FixedList.H @@ -467,7 +467,6 @@ inline void Swap(FixedList& lhs, FixedList& rhs); //- Hashing for FixedList data, which uses Hasher for contiguous data and //- element-wise incrementally hashing otherwise. -template<> template struct Hash> { diff --git a/src/OpenFOAM/containers/Lists/List/List.H b/src/OpenFOAM/containers/Lists/List/List.H index 93cab9f7b1..6a8a55e9c4 100644 --- a/src/OpenFOAM/containers/Lists/List/List.H +++ b/src/OpenFOAM/containers/Lists/List/List.H @@ -348,7 +348,6 @@ public: //- Hashing for List data, which uses Hasher for contiguous data and //- element-wise incrementally hashing otherwise. -template<> template struct Hash> { diff --git a/src/OpenFOAM/containers/Lists/UList/UList.H b/src/OpenFOAM/containers/Lists/UList/UList.H index 246d566d9b..83ea75b1fd 100644 --- a/src/OpenFOAM/containers/Lists/UList/UList.H +++ b/src/OpenFOAM/containers/Lists/UList/UList.H @@ -594,7 +594,6 @@ inline void Swap(UList& a, UList& b); //- Hashing for UList data, which uses Hasher for contiguous data and //- element-wise incrementally hashing otherwise. -template<> template struct Hash> { diff --git a/src/OpenFOAM/primitives/Pair/Pair.H b/src/OpenFOAM/primitives/Pair/Pair.H index af8d3a7321..123347fb8f 100644 --- a/src/OpenFOAM/primitives/Pair/Pair.H +++ b/src/OpenFOAM/primitives/Pair/Pair.H @@ -158,7 +158,6 @@ public: //- Hashing for Pair data, which uses Hasher for contiguous data and //- element-wise incrementally hashing otherwise. -template<> template struct Hash> {