Belos::LinearProblem MV and OP this_type_is_missing_a_specialization
Created by: freaklovesmango
I have an error code while compiling my program and explicitly it has to do with the linear problem of Belos but I am not sure how to solve this problem. What did I miss? Is it something I should have included? Is it some typedef thing?
Basically, the following is my code, with matrix A and vectors x and b which are all declared by Teuchos::RCP as well.
#include <Tpetra_MultiVector.hpp>
#include <Tpetra_Core.hpp>
#include <Tpetra_Version.hpp>
#include <BelosLinearProblem.hpp>
#include <Teuchos_RCP.hpp>
#include "Tpetra_Operator.hpp"
int main(int argc, char *argv[])
{
typedef Tpetra::Vector<>::scalar_type scalar_type;
typedef Tpetra::Vector<>::local_ordinal_type local_ordinal_type;
typedef Tpetra::Vector<>::global_ordinal_type global_ordinal_type;
typedef Tpetra::Vector<>::node_type node_type;
typedef Tpetra::MultiVector<> mv_type;
typedef Tpetra::Operator<> op_type;
...
Teuchos::RCP<Belos::LinearProblem<scalar_type, mv_type, op_type>> belosProblem =
Teuchos::rcp(new Belos::LinearProblem<scalar_type, mv_type, op_type> (A, x, b));
}
And this is the error message I get:
In file included from /home/freaklovesmango/build-trilinos-tpetra/install/Trilinos/include/BelosLinearProblem.hpp:49:0,
from main.cpp:13:
/home/freaklovesmango/build-trilinos-tpetra/install/Trilinos/include/BelosMultiVecTraits.hpp: In instantiation of ‘static ScalarType Belos::UndefinedMultiVecTraits<ScalarType, MV>::notDefined() [with ScalarType = double; MV = Tpetra::MultiVector<>]’:
/home/freaklovesmango/build-trilinos-tpetra/install/Trilinos/include/BelosMultiVecTraits.hpp:219:58: required from ‘static int Belos::MultiVecTraits<ScalarType, MV>::GetNumberVecs(const MV&) [with ScalarType = double; MV = Tpetra::MultiVector<>]’
/home/freaklovesmango/build-trilinos-tpetra/install/Trilinos/include/BelosLinearProblem.hpp:880:51: required from ‘bool Belos::LinearProblem<ScalarType, MV, OP>::setProblem(const Teuchos::RCP<T2>&, const Teuchos::RCP<const T2>&) [with ScalarType = double; MV = Tpetra::MultiVector<>; OP = Tpetra::Operator<>]’
main.cpp:184:41: required from here
/home/freaklovesmango/build-trilinos-tpetra/install/Trilinos/include/BelosMultiVecTraits.hpp:80:55: error: ‘this_type_is_missing_a_specialization’ is not a member of ‘Tpetra::MultiVector<>’
return MV::this_type_is_missing_a_specialization();
^
In file included from /home/freaklovesmango/build-trilinos-tpetra/install/Trilinos/include/BelosLinearProblem.hpp:50:0,
from main.cpp:13:
/home/freaklovesmango/build-trilinos-tpetra/install/Trilinos/include/BelosOperatorTraits.hpp: In instantiation of ‘static void Belos::UndefinedOperatorTraits<ScalarType, MV, OP>::notDefined() [with ScalarType = double; MV = Tpetra::MultiVector<>; OP = Tpetra::Operator<>]’:
/home/freaklovesmango/build-trilinos-tpetra/install/Trilinos/include/BelosOperatorTraits.hpp:131:62: required from ‘static void Belos::OperatorTraits<ScalarType, MV, OP>::Apply(const OP&, const MV&, MV&, Belos::ETrans) [with ScalarType = double; MV = Tpetra::MultiVector<>; OP = Tpetra::Operator<>]’
/home/freaklovesmango/build-trilinos-tpetra/install/Trilinos/include/BelosLinearProblem.hpp:893:21: required from ‘bool Belos::LinearProblem<ScalarType, MV, OP>::setProblem(const Teuchos::RCP<T2>&, const Teuchos::RCP<const T2>&) [with ScalarType = double; MV = Tpetra::MultiVector<>; OP = Tpetra::Operator<>]’
main.cpp:184:41: required from here
/home/freaklovesmango/build-trilinos-tpetra/install/Trilinos/include/BelosOperatorTraits.hpp:71:48: error: ‘this_type_is_missing_a_specialization’ is not a member of ‘Tpetra::Operator<>’
OP::this_type_is_missing_a_specialization();