]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Split instatiations of matrix-free MappingInfo 9654/head
authorMartin Kronbichler <kronbichler@lnm.mw.tum.de>
Thu, 12 Mar 2020 14:21:00 +0000 (15:21 +0100)
committerMartin Kronbichler <kronbichler@lnm.mw.tum.de>
Thu, 12 Mar 2020 14:31:17 +0000 (15:31 +0100)
source/matrix_free/CMakeLists.txt
source/matrix_free/mapping_info.cc
source/matrix_free/mapping_info_inst2.cc [new file with mode: 0644]
source/matrix_free/mapping_info_inst3.cc [new file with mode: 0644]

index c1b9423f6e712bfee2a44083fc6b732fc5adf348..fa27962bdcb3663a02219826fa1d3c56dacb15dd 100644 (file)
@@ -18,6 +18,8 @@ INCLUDE_DIRECTORIES(BEFORE ${CMAKE_CURRENT_BINARY_DIR})
 SET(_src
   evaluation_selector.cc
   mapping_info.cc
+  mapping_info_inst2.cc
+  mapping_info_inst3.cc
   matrix_free.cc
   task_info.cc
   )
index 4ee9d63a8f3dd21c09617cc40c538604ee915694..0e73c2e10e04fc767b495bb4e62c15b77c2dad60 100644 (file)
 
 DEAL_II_NAMESPACE_OPEN
 
+#define SPLIT_INSTANTIATIONS_COUNT 3
+#ifndef SPLIT_INSTANTIATIONS_INDEX
+#  define SPLIT_INSTANTIATIONS_INDEX 0
+#endif
 #include "mapping_info.inst"
 
+#if SPLIT_INSTANTIATIONS_INDEX == 0
+
 template struct internal::MatrixFreeFunctions::
   FPArrayComparator<double, VectorizedArray<double, 1>>;
 template struct internal::MatrixFreeFunctions::
   FPArrayComparator<float, VectorizedArray<float, 1>>;
 
-#if (DEAL_II_COMPILER_VECTORIZATION_LEVEL >= 1 && defined(__SSE2__)) || \
-  (DEAL_II_COMPILER_VECTORIZATION_LEVEL >= 1 && defined(__ALTIVEC__))
+#  if (DEAL_II_COMPILER_VECTORIZATION_LEVEL >= 1 && defined(__SSE2__)) || \
+    (DEAL_II_COMPILER_VECTORIZATION_LEVEL >= 1 && defined(__ALTIVEC__))
 template struct internal::MatrixFreeFunctions::
   FPArrayComparator<double, VectorizedArray<double, 2>>;
 template struct internal::MatrixFreeFunctions::
   FPArrayComparator<float, VectorizedArray<float, 4>>;
-#endif
+#  endif
 
-#if DEAL_II_COMPILER_VECTORIZATION_LEVEL >= 2 && defined(__AVX__)
+#  if DEAL_II_COMPILER_VECTORIZATION_LEVEL >= 2 && defined(__AVX__)
 template struct internal::MatrixFreeFunctions::
   FPArrayComparator<double, VectorizedArray<double, 4>>;
 template struct internal::MatrixFreeFunctions::
   FPArrayComparator<float, VectorizedArray<float, 8>>;
-#endif
+#  endif
 
-#if DEAL_II_COMPILER_VECTORIZATION_LEVEL >= 3 && defined(__AVX512F__)
+#  if DEAL_II_COMPILER_VECTORIZATION_LEVEL >= 3 && defined(__AVX512F__)
 template struct internal::MatrixFreeFunctions::
   FPArrayComparator<double, VectorizedArray<double, 8>>;
 template struct internal::MatrixFreeFunctions::
   FPArrayComparator<float, VectorizedArray<float, 16>>;
+#  endif
+
 #endif
 
 DEAL_II_NAMESPACE_CLOSE
diff --git a/source/matrix_free/mapping_info_inst2.cc b/source/matrix_free/mapping_info_inst2.cc
new file mode 100644 (file)
index 0000000..6811f8d
--- /dev/null
@@ -0,0 +1,17 @@
+// ---------------------------------------------------------------------
+//
+// Copyright (C) 2020 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE.md at
+// the top level directory of deal.II.
+//
+// ---------------------------------------------------------------------
+
+#define SPLIT_INSTANTIATIONS_INDEX 1
+#include "mapping_info.cc"
diff --git a/source/matrix_free/mapping_info_inst3.cc b/source/matrix_free/mapping_info_inst3.cc
new file mode 100644 (file)
index 0000000..5342774
--- /dev/null
@@ -0,0 +1,17 @@
+// ---------------------------------------------------------------------
+//
+// Copyright (C) 2020 by the deal.II authors
+//
+// This file is part of the deal.II library.
+//
+// The deal.II library is free software; you can use it, redistribute
+// it, and/or modify it under the terms of the GNU Lesser General
+// Public License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
+// The full text of the license can be found in the file LICENSE.md at
+// the top level directory of deal.II.
+//
+// ---------------------------------------------------------------------
+
+#define SPLIT_INSTANTIATIONS_INDEX 2
+#include "mapping_info.cc"

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.