From: Denis Davydov <davydden@gmail.com>
Date: Mon, 22 Feb 2016 12:55:17 +0000 (+0100)
Subject: temporary avoid instantiations of PointValueHistory, DerivativeApproximation and... 
X-Git-Tag: v8.5.0-rc1~1288^2
X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F2226%2Fhead;p=dealii.git

temporary avoid instantiations of PointValueHistory, DerivativeApproximation and DataOut-related classes for complex-valued PETSc
---

diff --git a/cmake/config/template-arguments.in b/cmake/config/template-arguments.in
index 15e46dc7b7..fea18cf762 100644
--- a/cmake/config/template-arguments.in
+++ b/cmake/config/template-arguments.in
@@ -37,6 +37,33 @@ SERIAL_VECTORS := { Vector<double>;
                     @DEAL_II_EXPAND_PETSC_MPI_BLOCKVECTOR@;
                   }
 
+REAL_SERIAL_VECTORS := { Vector<double>;
+                    Vector<float> ;
+                    Vector<long double>;
+
+                    BlockVector<double>;
+                    BlockVector<float>;
+                    BlockVector<long double>;
+
+                    parallel::distributed::Vector<double>;
+                    parallel::distributed::Vector<float> ;
+                    parallel::distributed::Vector<long double>;
+
+                    parallel::distributed::BlockVector<double>;
+                    parallel::distributed::BlockVector<float> ;
+                    parallel::distributed::BlockVector<long double>;
+
+                    @DEAL_II_EXPAND_TRILINOS_VECTOR@;
+                    @DEAL_II_EXPAND_TRILINOS_MPI_VECTOR@;
+                    @DEAL_II_EXPAND_PETSC_VECTOR_REAL@;
+                    @DEAL_II_EXPAND_PETSC_MPI_VECTOR_REAL@;                    
+
+                    @DEAL_II_EXPAND_TRILINOS_BLOCKVECTOR@;
+                    @DEAL_II_EXPAND_TRILINOS_MPI_BLOCKVECTOR@;
+                    @DEAL_II_EXPAND_PETSC_BLOCKVECTOR_REAL@;
+                    @DEAL_II_EXPAND_PETSC_MPI_BLOCKVECTOR_REAL@;
+                  }
+
 EXTERNAL_SEQUENTIAL_VECTORS := { @DEAL_II_EXPAND_TRILINOS_VECTOR@;
                                  @DEAL_II_EXPAND_TRILINOS_BLOCKVECTOR@;
                                  @DEAL_II_EXPAND_PETSC_VECTOR@;
diff --git a/cmake/configure/configure_3_petsc.cmake b/cmake/configure/configure_3_petsc.cmake
index 3bec8a9e4d..d4b913370e 100644
--- a/cmake/configure/configure_3_petsc.cmake
+++ b/cmake/configure/configure_3_petsc.cmake
@@ -103,6 +103,17 @@ MACRO(FEATURE_PETSC_CONFIGURE_EXTERNAL)
   SET(DEAL_II_EXPAND_PETSC_BLOCKVECTOR "PETScWrappers::BlockVector")
   SET(DEAL_II_EXPAND_PETSC_MPI_VECTOR "PETScWrappers::MPI::Vector")
   SET(DEAL_II_EXPAND_PETSC_MPI_BLOCKVECTOR "PETScWrappers::MPI::BlockVector")
+  #
+  # FIXME:
+  # temporary variable until deal.II fully support complex-valued PETSc
+  IF( NOT PETSC_WITH_COMPLEX )
+    SET(DEAL_II_EXPAND_PETSC_VECTOR_REAL "PETScWrappers::Vector")
+    SET(DEAL_II_EXPAND_PETSC_BLOCKVECTOR_REAL "PETScWrappers::BlockVector")
+    SET(DEAL_II_EXPAND_PETSC_MPI_VECTOR_REAL "PETScWrappers::MPI::Vector")
+    SET(DEAL_II_EXPAND_PETSC_MPI_BLOCKVECTOR_REAL "PETScWrappers::MPI::BlockVector")
+  ELSE()
+    MESSAGE(STATUS "Compiling with complex-valued algebra")
+  ENDIF()
 ENDMACRO()
 
 
diff --git a/source/numerics/data_out_dof_data.inst.in b/source/numerics/data_out_dof_data.inst.in
index 8bddc89129..7f76086351 100644
--- a/source/numerics/data_out_dof_data.inst.in
+++ b/source/numerics/data_out_dof_data.inst.in
@@ -14,7 +14,7 @@
 // ---------------------------------------------------------------------
 
 
-for (VEC : SERIAL_VECTORS; DH : DOFHANDLER_TEMPLATES; deal_II_dimension : DIMENSIONS)
+for (VEC : REAL_SERIAL_VECTORS; DH : DOFHANDLER_TEMPLATES; deal_II_dimension : DIMENSIONS)
 {
 // codim=0
 
diff --git a/source/numerics/derivative_approximation.inst.in b/source/numerics/derivative_approximation.inst.in
index 044f75fa21..c1c1272060 100644
--- a/source/numerics/derivative_approximation.inst.in
+++ b/source/numerics/derivative_approximation.inst.in
@@ -14,7 +14,7 @@
 // ---------------------------------------------------------------------
 
 
-for (deal_II_dimension : DIMENSIONS ; VEC : SERIAL_VECTORS ; DH : DOFHANDLER_TEMPLATES)
+for (deal_II_dimension : DIMENSIONS ; VEC : REAL_SERIAL_VECTORS ; DH : DOFHANDLER_TEMPLATES)
 {
   namespace DerivativeApproximation
   \{
diff --git a/source/numerics/dof_output_operator.inst.in b/source/numerics/dof_output_operator.inst.in
index 8b62589475..75b65ed1e6 100644
--- a/source/numerics/dof_output_operator.inst.in
+++ b/source/numerics/dof_output_operator.inst.in
@@ -14,7 +14,7 @@
 // ---------------------------------------------------------------------
 
 
-for (VEC : SERIAL_VECTORS ; deal_II_dimension : DIMENSIONS)
+for (VEC : REAL_SERIAL_VECTORS ; deal_II_dimension : DIMENSIONS)
 {
   template class DoFOutputOperator<VEC, deal_II_dimension, deal_II_dimension>;
 }
diff --git a/source/numerics/point_value_history.inst.in b/source/numerics/point_value_history.inst.in
index 717c1c77d8..d5e1b6783c 100644
--- a/source/numerics/point_value_history.inst.in
+++ b/source/numerics/point_value_history.inst.in
@@ -21,7 +21,7 @@ for (deal_II_dimension : DIMENSIONS)
 }
 
 
-for (VEC : SERIAL_VECTORS ; deal_II_dimension : DIMENSIONS)
+for (VEC : REAL_SERIAL_VECTORS ; deal_II_dimension : DIMENSIONS)
 {  
   template
   void PointValueHistory<deal_II_dimension>::evaluate_field 
@@ -30,7 +30,7 @@ for (VEC : SERIAL_VECTORS ; deal_II_dimension : DIMENSIONS)
 }
 
 
-for (VEC : SERIAL_VECTORS ; deal_II_dimension : DIMENSIONS)
+for (VEC : REAL_SERIAL_VECTORS ; deal_II_dimension : DIMENSIONS)
 {  
   template
   void PointValueHistory<deal_II_dimension>::evaluate_field_at_requested_location 
@@ -38,7 +38,7 @@ for (VEC : SERIAL_VECTORS ; deal_II_dimension : DIMENSIONS)
    const VEC &);
 }
 
-for (VEC : SERIAL_VECTORS ; deal_II_dimension : DIMENSIONS)
+for (VEC : REAL_SERIAL_VECTORS ; deal_II_dimension : DIMENSIONS)
 {  
   template
   void PointValueHistory<deal_II_dimension>::evaluate_field 
@@ -48,7 +48,7 @@ for (VEC : SERIAL_VECTORS ; deal_II_dimension : DIMENSIONS)
    const Quadrature<deal_II_dimension> &);
 }
 
-for (VEC : SERIAL_VECTORS ; deal_II_dimension : DIMENSIONS)
+for (VEC : REAL_SERIAL_VECTORS ; deal_II_dimension : DIMENSIONS)
 {  
   template
   void PointValueHistory<deal_II_dimension>::evaluate_field