From d9ba307065db3f38d6bac812eab631abef1f405a Mon Sep 17 00:00:00 2001 From: Daniel Arndt Date: Thu, 27 Sep 2018 05:31:42 +0200 Subject: [PATCH] Address comments --- .../configure/configure_complex_values.cmake | 46 +++++++++++++++++++ cmake/setup_cached_variables.cmake | 29 +----------- source/lac/full_matrix.cc | 3 +- source/lac/vector.cc | 3 +- 4 files changed, 51 insertions(+), 30 deletions(-) create mode 100644 cmake/configure/configure_complex_values.cmake diff --git a/cmake/configure/configure_complex_values.cmake b/cmake/configure/configure_complex_values.cmake new file mode 100644 index 0000000000..b868cc5e49 --- /dev/null +++ b/cmake/configure/configure_complex_values.cmake @@ -0,0 +1,46 @@ +## --------------------------------------------------------------------- +## +## Copyright (C) 2018 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. +## +## --------------------------------------------------------------------- + +# +# Configuration for complex value support +# + +IF(${DEAL_II_WITH_COMPLEX_VALUES}) + SET(DEAL_II_EXPAND_COMPLEX_SCALARS + "std::complex" + "std::complex" + ) + SET(DEAL_II_EXPAND_COMPLEX_VECTORS + "Vector >" + "Vector >" + ) + SET(DEAL_II_EXPAND_COMPLEX_BLOCK_VECTORS + "BlockVector >" + "BlockVector >" + ) + SET(DEAL_II_EXPAND_COMPLEX_LA_VECTORS + "LinearAlgebra::Vector >" + "LinearAlgebra::Vector >" + ) + SET(DEAL_II_EXPAND_COMPLEX_LA_PARALLEL_VECTORS + "LinearAlgebra::distributed::Vector >" + "LinearAlgebra::distributed::Vector >" + ) + SET(DEAL_II_EXPAND_COMPLEX_LA_PARALLEL_BLOCK_VECTORS + "LinearAlgebra::distributed::BlockVector >" + "LinearAlgebra::distributed::BlockVector >" + ) +ENDIF() + diff --git a/cmake/setup_cached_variables.cmake b/cmake/setup_cached_variables.cmake index da4a4fdde0..1859c72a79 100644 --- a/cmake/setup_cached_variables.cmake +++ b/cmake/setup_cached_variables.cmake @@ -372,37 +372,10 @@ OPTION(DEAL_II_WITH_64BIT_INDICES LIST(APPEND DEAL_II_FEATURES 64BIT_INDICES) OPTION(DEAL_II_WITH_COMPLEX_VALUES - "If set to OFF, the classes that take a number type are not explicitly instantiated for std::complex and std::complex. If PETSc is built with complex scalar type, this option must be ON." + "If set to OFF, the classes that take a number type are not explicitly instantiated for std::complex and std::complex. This effectively disables the support for computing with complex values. If PETSc is built with complex scalar type, this option must be ON." ON ) LIST(APPEND DEAL_II_FEATURES COMPLEX_VALUES) -IF(${DEAL_II_WITH_COMPLEX_VALUES}) - SET(DEAL_II_EXPAND_COMPLEX_SCALARS - "std::complex" - "std::complex" - ) - SET(DEAL_II_EXPAND_COMPLEX_VECTORS - "Vector >" - "Vector >" - ) - SET(DEAL_II_EXPAND_COMPLEX_BLOCK_VECTORS - "BlockVector >" - "BlockVector >" - ) - SET(DEAL_II_EXPAND_COMPLEX_LA_VECTORS - "LinearAlgebra::Vector >" - "LinearAlgebra::Vector >" - ) - - SET(DEAL_II_EXPAND_COMPLEX_LA_PARALLEL_VECTORS - "LinearAlgebra::distributed::Vector >" - "LinearAlgebra::distributed::Vector >" - ) - SET(DEAL_II_EXPAND_COMPLEX_LA_PARALLEL_BLOCK_VECTORS - "LinearAlgebra::distributed::BlockVector >" - "LinearAlgebra::distributed::BlockVector >" - ) -ENDIF() OPTION(DEAL_II_DOXYGEN_USE_MATHJAX "If set to ON, doxygen documentation is generated using mathjax" diff --git a/source/lac/full_matrix.cc b/source/lac/full_matrix.cc index 57eaa76067..db16893dce 100644 --- a/source/lac/full_matrix.cc +++ b/source/lac/full_matrix.cc @@ -22,7 +22,8 @@ DEAL_II_NAMESPACE_OPEN #include "full_matrix.inst" #ifndef DEAL_II_WITH_COMPLEX_VALUES -// instantiate for std::complex because we use it internally. +// instantiate for std::complex because we use it internally in +// FESeries. template class FullMatrix>; #endif diff --git a/source/lac/vector.cc b/source/lac/vector.cc index cad91f6a02..c747e14c22 100644 --- a/source/lac/vector.cc +++ b/source/lac/vector.cc @@ -20,7 +20,8 @@ DEAL_II_NAMESPACE_OPEN #include "vector.inst" #ifndef DEAL_II_WITH_COMPLEX_VALUES -// instantiate for std::complex since we are using it internally. +// instantiate for std::complex since we are using it internally in +// FESeries. template class Vector>; #endif -- 2.39.5