From 82ec0dbe6b0d3f6bb5a2099a17250d9ce6950953 Mon Sep 17 00:00:00 2001
From: mattijs <mattijs>
Date: Wed, 4 Jul 2012 10:00:31 +0100
Subject: [PATCH] ENH: decompositionMethods: added none method

---
 .../decompose/decompositionMethods/Make/files |   1 +
 .../decompositionMethods/noDecomp/noDecomp.C  |  53 +++++++
 .../decompositionMethods/noDecomp/noDecomp.H  | 134 ++++++++++++++++++
 3 files changed, 188 insertions(+)
 create mode 100644 src/parallel/decompose/decompositionMethods/noDecomp/noDecomp.C
 create mode 100644 src/parallel/decompose/decompositionMethods/noDecomp/noDecomp.H

diff --git a/src/parallel/decompose/decompositionMethods/Make/files b/src/parallel/decompose/decompositionMethods/Make/files
index b21f2c70bda..5e54b366af4 100644
--- a/src/parallel/decompose/decompositionMethods/Make/files
+++ b/src/parallel/decompose/decompositionMethods/Make/files
@@ -6,5 +6,6 @@ manualDecomp/manualDecomp.C
 multiLevelDecomp/multiLevelDecomp.C
 structuredDecomp/topoDistanceData.C
 structuredDecomp/structuredDecomp.C
+noDecomp/noDecomp.C
 
 LIB = $(FOAM_LIBBIN)/libdecompositionMethods
diff --git a/src/parallel/decompose/decompositionMethods/noDecomp/noDecomp.C b/src/parallel/decompose/decompositionMethods/noDecomp/noDecomp.C
new file mode 100644
index 00000000000..e62e588b9ec
--- /dev/null
+++ b/src/parallel/decompose/decompositionMethods/noDecomp/noDecomp.C
@@ -0,0 +1,53 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2012 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 <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "noDecomp.H"
+#include "addToRunTimeSelectionTable.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+    defineTypeName(noDecomp);
+
+    addNamedToRunTimeSelectionTable
+    (
+        decompositionMethod,
+        noDecomp,
+        dictionary,
+        none
+    );
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::noDecomp::noDecomp(const dictionary& decompositionDict)
+:
+    decompositionMethod(decompositionDict)
+{}
+
+
+// ************************************************************************* //
diff --git a/src/parallel/decompose/decompositionMethods/noDecomp/noDecomp.H b/src/parallel/decompose/decompositionMethods/noDecomp/noDecomp.H
new file mode 100644
index 00000000000..13368c99708
--- /dev/null
+++ b/src/parallel/decompose/decompositionMethods/noDecomp/noDecomp.H
@@ -0,0 +1,134 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | Copyright (C) 2012 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 <http://www.gnu.org/licenses/>.
+
+Class
+    Foam::noDecomp
+
+Description
+    Dummy decomposition method
+
+SourceFiles
+    noDecomp.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef noDecomp_H
+#define noDecomp_H
+
+#include "decompositionMethod.H"
+
+namespace Foam
+{
+
+/*---------------------------------------------------------------------------*\
+                           Class noDecomp Declaration
+\*---------------------------------------------------------------------------*/
+
+class noDecomp
+:
+    public decompositionMethod
+{
+
+    // Private Member Functions
+
+        //- Disallow default bitwise copy construct and assignment
+        void operator=(const noDecomp&);
+        noDecomp(const noDecomp&);
+
+
+public:
+
+    //- Runtime type information
+    TypeName("noDecomp");
+
+
+    // Constructors
+
+        //- Construct given the decomposition dictionary
+        noDecomp(const dictionary& decompositionDict);
+
+    //- Destructor
+    virtual ~noDecomp()
+    {}
+
+
+    // Member Functions
+
+        //- manual decompose does not care about proc boundaries - is all
+        //  up to the user.
+        virtual bool parallelAware() const
+        {
+            return false;
+        }
+
+        //- Return for every coordinate the wanted processor number. Use the
+        //  mesh connectivity (if needed)
+        virtual labelList decompose
+        (
+            const polyMesh& mesh,
+            const pointField& cc,
+            const scalarField& cWeights
+        )
+        {
+            notImplemented
+            (
+                "decompose(const polyMesh&, const pointField&"
+                ", const scalarField&)"
+            );
+            return labelList(0);
+        }
+
+        //- Return for every coordinate the wanted processor number. Explicitly
+        //  provided connectivity - does not use mesh_.
+        //  The connectivity is equal to mesh.cellCells() except for
+        //  - in parallel the cell numbers are global cell numbers (starting
+        //    from 0 at processor0 and then incrementing all through the
+        //    processors)
+        //  - the connections are across coupled patches
+        virtual labelList decompose
+        (
+            const labelListList& globalCellCells,
+            const pointField& cc,
+            const scalarField& cWeights
+        )
+        {
+            notImplemented
+            (
+                "decompose(const labelListList&, const pointField&"
+                ", const scalarField&)"
+            );
+            return labelList(0);
+        }
+
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //
-- 
GitLab