Amesos2 not compiling with SC=std::complex<double>
Created by: tawiesn
After locally updating the develop branch on my machine, Amesos2 stopped compiling. Seems to be related to the last changes in Amesos2. Cannot convert Kokkos::complex to std::complex
I get several errors looking similar to the following:
src/Amesos2_KLU2_def.hpp:227:45: error: no matching function for call to ‘klu_factor(int*, int*&, Kokkos::complex<double>*&, KLU2::klu_symbolic<std::complex<double>, int>*&, KLU2::klu_common<std::complex<double>, int>*)’
data_.symbolic_, &(data_.common_)) ;
^
/home/tawiesn/software/trilinos/Trilinos/packages/amesos2/src/Amesos2_KLU2_def.hpp:227:45: note: candidate is:
In file included from /home/tawiesn/software/trilinos/Trilinos/packages/amesos2/src/KLU2/Include/klu2_internal.h:48:0,
from /home/tawiesn/software/trilinos/Trilinos/packages/amesos2/src/KLU2/Source/klu2_defaults.hpp:41,
from /home/tawiesn/software/trilinos/Trilinos/packages/amesos2/src/Amesos2_KLU2_FunctionMap.hpp:68,
from /home/tawiesn/software/trilinos/Trilinos/packages/amesos2/src/Amesos2_KLU2_decl.hpp:57,
from /home/tawiesn/software/trilinos/Trilinos/packages/amesos2/src/Amesos2_KLU2.cpp:44:
/home/tawiesn/software/trilinos/Trilinos/packages/amesos2/src/KLU2/Include/klu2_version.h:79:20: note: template<class Entry, class Int> KLU2::klu_numeric<Entry, Int>* KLU2::klu_factor(Int*, Int*, Entry*, KLU2::klu_symbolic<Entry, Int>*, KLU2::klu_common<Entry, Int>*)
#define KLU_factor klu_factor
^
/home/tawiesn/software/trilinos/Trilinos/packages/amesos2/src/KLU2/Source/klu2_factor.hpp:428:26: note: in expansion of macro ‘KLU_factor’
KLU_numeric<Entry, Int> *KLU_factor /* returns NULL if error, or a valid
^
/home/tawiesn/software/trilinos/Trilinos/packages/amesos2/src/KLU2/Include/klu2_version.h:79:20: note: template argument deduction/substitution failed:
#define KLU_factor klu_factor
^
/home/tawiesn/software/trilinos/Trilinos/packages/amesos2/src/KLU2/Source/klu2_factor.hpp:428:26: note: in expansion of macro ‘KLU_factor’
KLU_numeric<Entry, Int> *KLU_factor /* returns NULL if error, or a valid
^
In file included from /home/tawiesn/software/trilinos/Trilinos/packages/amesos2/src/Amesos2_KLU2.cpp:48:0:
/home/tawiesn/software/trilinos/Trilinos/packages/amesos2/src/Amesos2_KLU2_def.hpp:227:45: note: cannot convert ‘sp_values’ (type ‘Kokkos::complex<double>*’) to type ‘std::complex<double>*’
data_.symbolic_, &(data_.common_)) ;
My configuration has the following flags
-D Teuchos_ENABLE_COMPLEX:BOOL=ON \
-D Tpetra_INST_COMPLEX_DOUBLE:BOOL=ON \
-D Tpetra_INST_INT_INT:BOOL=ON \
-D Trilinos_ENABLE_OpenMP=ON \
-D Tpetra_INST_OPENMP=ON \
-D Tpetra_INST_SERIAL=ON \
-D Kokkos_ENABLE_Serial=ON \
-D Kokkos_ENABLE_OpenMP=ON \
enabled.
@trilinos/amesos2