From c543f7c2e43632c9783a7584d3a45692c74f241d Mon Sep 17 00:00:00 2001 From: Denis Davydov Date: Mon, 22 Feb 2016 13:55:17 +0100 Subject: [PATCH] temporary avoid instantiations of PointValueHistory, DerivativeApproximation and DataOut-related classes for complex-valued PETSc --- cmake/config/template-arguments.in | 27 +++++++++++++++++++ cmake/configure/configure_3_petsc.cmake | 11 ++++++++ source/numerics/data_out_dof_data.inst.in | 2 +- .../numerics/derivative_approximation.inst.in | 2 +- source/numerics/dof_output_operator.inst.in | 2 +- source/numerics/point_value_history.inst.in | 8 +++--- 6 files changed, 45 insertions(+), 7 deletions(-) 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; @DEAL_II_EXPAND_PETSC_MPI_BLOCKVECTOR@; } +REAL_SERIAL_VECTORS := { Vector; + Vector ; + Vector; + + BlockVector; + BlockVector; + BlockVector; + + parallel::distributed::Vector; + parallel::distributed::Vector ; + parallel::distributed::Vector; + + parallel::distributed::BlockVector; + parallel::distributed::BlockVector ; + parallel::distributed::BlockVector; + + @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; } 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::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::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::evaluate_field @@ -48,7 +48,7 @@ for (VEC : SERIAL_VECTORS ; deal_II_dimension : DIMENSIONS) const Quadrature &); } -for (VEC : SERIAL_VECTORS ; deal_II_dimension : DIMENSIONS) +for (VEC : REAL_SERIAL_VECTORS ; deal_II_dimension : DIMENSIONS) { template void PointValueHistory::evaluate_field -- 2.39.5