From 94d3e79a8617f88dc0219cfdeedfa3147833719d Mon Sep 17 00:00:00 2001
From: Adrian Kummerlaender
Date: Mon, 24 Jun 2019 14:43:36 +0200
Subject: Initialize at openlb-1-3
---
src/communication/MakeHeader | 38 +
src/communication/blockLoadBalancer.cpp | 29 +
src/communication/blockLoadBalancer.h | 57 ++
src/communication/blockLoadBalancer.hh | 105 +++
src/communication/communication2D.h | 41 +
src/communication/communication2D.hh | 38 +
src/communication/communication3D.h | 42 +
src/communication/communication3D.hh | 38 +
src/communication/communicator2D.cpp | 37 +
src/communication/communicator2D.h | 99 +++
src/communication/communicator2D.hh | 185 +++++
src/communication/communicator3D.cpp | 37 +
src/communication/communicator3D.h | 97 +++
src/communication/communicator3D.hh | 181 +++++
src/communication/cuboidNeighbourhood2D.cpp | 38 +
src/communication/cuboidNeighbourhood2D.h | 195 +++++
src/communication/cuboidNeighbourhood2D.hh | 452 +++++++++++
src/communication/cuboidNeighbourhood3D.cpp | 38 +
src/communication/cuboidNeighbourhood3D.h | 190 +++++
src/communication/cuboidNeighbourhood3D.hh | 449 +++++++++++
src/communication/heuristicLoadBalancer.cpp | 29 +
src/communication/heuristicLoadBalancer.h | 85 ++
src/communication/heuristicLoadBalancer.hh | 402 ++++++++++
src/communication/loadBalancer.cpp | 31 +
src/communication/loadBalancer.h | 208 +++++
src/communication/loadBalancer.hh | 167 ++++
src/communication/module.mk | 27 +
src/communication/mpiManager.cpp | 1154 +++++++++++++++++++++++++++
src/communication/mpiManager.h | 279 +++++++
src/communication/ompManager.cpp | 59 ++
src/communication/ompManager.h | 49 ++
src/communication/superStructure2D.cpp | 34 +
src/communication/superStructure2D.h | 91 +++
src/communication/superStructure2D.hh | 114 +++
src/communication/superStructure3D.cpp | 34 +
src/communication/superStructure3D.h | 95 +++
src/communication/superStructure3D.hh | 120 +++
37 files changed, 5364 insertions(+)
create mode 100644 src/communication/MakeHeader
create mode 100644 src/communication/blockLoadBalancer.cpp
create mode 100644 src/communication/blockLoadBalancer.h
create mode 100644 src/communication/blockLoadBalancer.hh
create mode 100644 src/communication/communication2D.h
create mode 100644 src/communication/communication2D.hh
create mode 100644 src/communication/communication3D.h
create mode 100644 src/communication/communication3D.hh
create mode 100644 src/communication/communicator2D.cpp
create mode 100644 src/communication/communicator2D.h
create mode 100644 src/communication/communicator2D.hh
create mode 100644 src/communication/communicator3D.cpp
create mode 100644 src/communication/communicator3D.h
create mode 100644 src/communication/communicator3D.hh
create mode 100644 src/communication/cuboidNeighbourhood2D.cpp
create mode 100644 src/communication/cuboidNeighbourhood2D.h
create mode 100644 src/communication/cuboidNeighbourhood2D.hh
create mode 100644 src/communication/cuboidNeighbourhood3D.cpp
create mode 100644 src/communication/cuboidNeighbourhood3D.h
create mode 100644 src/communication/cuboidNeighbourhood3D.hh
create mode 100644 src/communication/heuristicLoadBalancer.cpp
create mode 100644 src/communication/heuristicLoadBalancer.h
create mode 100644 src/communication/heuristicLoadBalancer.hh
create mode 100644 src/communication/loadBalancer.cpp
create mode 100644 src/communication/loadBalancer.h
create mode 100644 src/communication/loadBalancer.hh
create mode 100644 src/communication/module.mk
create mode 100644 src/communication/mpiManager.cpp
create mode 100644 src/communication/mpiManager.h
create mode 100644 src/communication/ompManager.cpp
create mode 100644 src/communication/ompManager.h
create mode 100644 src/communication/superStructure2D.cpp
create mode 100644 src/communication/superStructure2D.h
create mode 100644 src/communication/superStructure2D.hh
create mode 100644 src/communication/superStructure3D.cpp
create mode 100644 src/communication/superStructure3D.h
create mode 100644 src/communication/superStructure3D.hh
(limited to 'src/communication')
diff --git a/src/communication/MakeHeader b/src/communication/MakeHeader
new file mode 100644
index 0000000..169f7c1
--- /dev/null
+++ b/src/communication/MakeHeader
@@ -0,0 +1,38 @@
+# This file is part of the OpenLB library
+#
+# Copyright (C) 2007 Mathias J. Krause
+# E-mail contact: info@openlb.net
+# The most recent release of OpenLB can be downloaded at
+#
+#
+# This program 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 2
+# of the License, or (at your option) any later version.
+#
+# This program 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 this program; if not, write to the Free
+# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+# Boston, MA 02110-1301, USA.
+
+
+generic := loadBalancer \
+ mpiManager \
+ ompManager
+
+precompiled := blockLoadBalancer \
+ communicator2D \
+ communicator3D \
+ cuboidNeighbourhood2D \
+ cuboidNeighbourhood3D \
+ heuristicLoadBalancer \
+ loadBalancer \
+ mpiManager \
+ ompManager \
+ superStructure2D \
+ superStructure3D
diff --git a/src/communication/blockLoadBalancer.cpp b/src/communication/blockLoadBalancer.cpp
new file mode 100644
index 0000000..35558e9
--- /dev/null
+++ b/src/communication/blockLoadBalancer.cpp
@@ -0,0 +1,29 @@
+/* This file is part of the OpenLB library
+ *
+ * Copyright (C) 2007 Mathias Krause
+ * E-mail contact: info@openlb.net
+ * The most recent release of OpenLB can be downloaded at
+ *
+ *
+ * This program 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 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program 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 this program; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+*/
+
+#include "communication/blockLoadBalancer.h"
+#include "communication/blockLoadBalancer.hh"
+
+namespace olb {
+template class BlockLoadBalancer;
+}
diff --git a/src/communication/blockLoadBalancer.h b/src/communication/blockLoadBalancer.h
new file mode 100644
index 0000000..0aa0f2e
--- /dev/null
+++ b/src/communication/blockLoadBalancer.h
@@ -0,0 +1,57 @@
+/* This file is part of the OpenLB library
+ *
+ * Copyright (C) 2007 Mathias Krause
+ * E-mail contact: info@openlb.net
+ * The most recent release of OpenLB can be downloaded at
+ *
+ *
+ * This program 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 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program 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 this program; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+*/
+
+
+#ifndef BLOCK_LOAD_BALANCER_H
+#define BLOCK_LOAD_BALANCER_H
+
+
+#include "communication/loadBalancer.h"
+
+
+
+namespace olb {
+
+template class CuboidGeometry3D;
+template class CuboidGeometry2D;
+
+
+template
+class BlockLoadBalancer : public LoadBalancer {
+private:
+ int _locChunkSize;
+ int _firstGlobNum;
+ int _lastGlobNum;
+public:
+ BlockLoadBalancer() {}
+ BlockLoadBalancer(int rank, int size, int globChunkSize, int offset);
+ BlockLoadBalancer(CuboidGeometry2D& cGeometry);
+ BlockLoadBalancer(CuboidGeometry3D& cGeometry);
+ void init_chunkD(int rank, int size, int globChunkSize, int offset);
+ int locChunkSize() const;
+ int firstGlobNum() const;
+ int lastGlobNum() const;
+};
+} // namespace olb
+
+#endif
diff --git a/src/communication/blockLoadBalancer.hh b/src/communication/blockLoadBalancer.hh
new file mode 100644
index 0000000..0c61af1
--- /dev/null
+++ b/src/communication/blockLoadBalancer.hh
@@ -0,0 +1,105 @@
+/* This file is part of the OpenLB library
+ *
+ * Copyright (C) 2007 Mathias Krause
+ * E-mail contact: info@openlb.net
+ * The most recent release of OpenLB can be downloaded at
+ *
+ *
+ * This program 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 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program 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 this program; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+*/
+
+#ifndef BLOCK_LOAD_BALANCER_HH
+#define BLOCK_LOAD_BALANCER_HH
+
+#include
+#include