[Trilinos-Users] [EXTERNAL] Bug in Sacado? (template argument deduction/substitution failure)

Bradley, Andrew Michael ambradl at sandia.gov
Mon Mar 23 07:19:46 MDT 2015


Hi Ryuta,


Let's take subsequent discussion off-list because it concerns Albany.


First, please use the master branch and not tpetra_kokkos; that was a transition branch that I should remove now that the merge is complete.


Second, follow these instructions:

    https://github.com/gahansen/Albany/wiki/Building-the-new-Albany

to create the Trilinos configuration.


Once you've done that, let me know what errors remain. The errors referring to Sacado below should go away.


Cheers,

Andrew


________________________________
From: trilinos-users-bounces at software.sandia.gov <trilinos-users-bounces at software.sandia.gov> on behalf of Ryuta Suzuki <ryuuta at gmail.com>
Sent: Monday, March 23, 2015 5:21 AM
To: trilinos-users at software.sandia.gov
Subject: [EXTERNAL] [Trilinos-Users] Bug in Sacado? (template argument deduction/substitution failure)

Hi,

While I'm building Albany (tpetra_kokkos branch) I've got the tons of error messages that I pasted below. I'm only guessing it's a bug in Sacado by skimming the messages. I cloned trilinos from the public git repository. Any help will be greatly appreciated. Thanks!

Ryuta

/home/ryuta/devel/albany/src/albany/src/QCAD/evaluators/QCAD_PoissonSource_Def.hpp:1386:12:   required from ‘QCAD::PoissonSource<EvalT, Traits>::ScalarT QCAD::PoissonSource<EvalT, Traits>::computeFDIntOneHalf(QCAD::PoissonSource<EvalT, Traits>::ScalarT) [with EvalT = PHAL::AlbanyTraits::SGJacobian; Traits = PHAL::AlbanyTraits; QCAD::PoissonSource<EvalT, Traits>::ScalarT = Sacado::Fad::DFad<Sacado::PCE::OrthogPoly<double, Stokhos::StandardStorage<int, double> > >]’
/home/ryuta/devel/albany/src/albany/src/QCAD/evaluators/QCAD_PoissonSource.cpp:40:1:   required from here
/opt/trilinos/lib/cmake/Trilinos/../../../include/trilinos/Sacado_Fad_Ops.hpp:586:150: error: no matching function for call to ‘pow(const value_type, const double&)’
                    expr1.val() == value_type(0) ? value_type(0.0) : value_type(c.val()*expr1.fastAccessDx(i)/expr1.val()*std::pow(expr1.val(),c.val())))
                                                                                                                                                      ^
/opt/trilinos/lib/cmake/Trilinos/../../../include/trilinos/Sacado_Fad_Ops.hpp:367:16: note: in definition of macro ‘FAD_BINARYOP_MACRO’
         return CONST_FASTACCESSDX_2;                                    \
                ^
/opt/trilinos/lib/cmake/Trilinos/../../../include/trilinos/Sacado_Fad_Ops.hpp:586:150: note: candidates are:
                    expr1.val() == value_type(0) ? value_type(0.0) : value_type(c.val()*expr1.fastAccessDx(i)/expr1.val()*std::pow(expr1.val(),c.val())))
                                                                                                                                                      ^
/opt/trilinos/lib/cmake/Trilinos/../../../include/trilinos/Sacado_Fad_Ops.hpp:367:16: note: in definition of macro ‘FAD_BINARYOP_MACRO’
         return CONST_FASTACCESSDX_2;                                    \
                ^
In file included from /usr/include/features.h:365:0,
                 from /usr/include/c++/4.9.2/x86_64-unknown-linux-gnu/bits/os_defines.h:39,
                 from /usr/include/c++/4.9.2/x86_64-unknown-linux-gnu/bits/c++config.h:430,
                 from /usr/include/c++/4.9.2/cstddef:44,
                 from /usr/include/boost/config/select_stdlib_config.hpp:18,
                 from /usr/include/boost/config.hpp:44,
                 from /usr/include/boost/mpl/aux_/config/msvc.hpp:19,
                 from /usr/include/boost/mpl/aux_/config/adl.hpp:17,
                 from /usr/include/boost/mpl/aux_/adl_barrier.hpp:17,
                 from /usr/include/boost/mpl/bool_fwd.hpp:17,
                 from /usr/include/boost/mpl/bool.hpp:17,
                 from /usr/include/boost/mpl/aux_/na.hpp:17,
                 from /usr/include/boost/mpl/map.hpp:19,
                 from /home/ryuta/devel/albany/src/albany/src/./PHAL_AlbanyTraits.hpp:16,
                 from /home/ryuta/devel/albany/src/albany/src/QCAD/evaluators/QCAD_PoissonSource.cpp:7:
/usr/include/bits/mathcalls.h:153:1: note: double pow(double, double)
 __MATHCALL (pow,, (_Mdouble_ __x, _Mdouble_ __y));
 ^
/usr/include/bits/mathcalls.h:153:1: note:   no known conversion for argument 1 from ‘const value_type {aka const Sacado::PCE::OrthogPoly<double, Stokhos::StandardStorage<int, double> >}’ to ‘double’
In file included from /usr/include/c++/4.9.2/complex:44:0,
                 from /opt/trilinos/lib/cmake/Trilinos/../../../include/trilinos/Sacado_Traits.hpp:61,
                 from /opt/trilinos/lib/cmake/Trilinos/../../../include/trilinos/Kokkos_View_Fad.hpp:37,
                 from /opt/trilinos/lib/cmake/Trilinos/../../../include/trilinos/Phalanx_Traits_Base.hpp:48,
                 from /home/ryuta/devel/albany/src/albany/src/./PHAL_AlbanyTraits.hpp:21,
                 from /home/ryuta/devel/albany/src/albany/src/QCAD/evaluators/QCAD_PoissonSource.cpp:7:
/usr/include/c++/4.9.2/cmath:407:3: note: constexpr float std::pow(float, float)
   pow(float __x, float __y)
   ^
/usr/include/c++/4.9.2/cmath:407:3: note:   no known conversion for argument 1 from ‘const value_type {aka const Sacado::PCE::OrthogPoly<double, Stokhos::StandardStorage<int, double> >}’ to ‘float’
/usr/include/c++/4.9.2/cmath:411:3: note: constexpr long double std::pow(long double, long double)
   pow(long double __x, long double __y)
   ^
/usr/include/c++/4.9.2/cmath:411:3: note:   no known conversion for argument 1 from ‘const value_type {aka const Sacado::PCE::OrthogPoly<double, Stokhos::StandardStorage<int, double> >}’ to ‘long double’
/usr/include/c++/4.9.2/cmath:434:5: note: template<class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type std::pow(_Tp, _Up)
     pow(_Tp __x, _Up __y)
     ^
/usr/include/c++/4.9.2/cmath:434:5: note:   template argument deduction/substitution failed:
/usr/include/c++/4.9.2/cmath: In substitution of ‘template<class _Tp, class _Up> constexpr typename __gnu_cxx::__promote_2<_Tp, _Up>::__type std::pow(_Tp, _Up) [with _Tp = Sacado::PCE::OrthogPoly<double, Stokhos::StandardStorage<int, double> >; _Up = double]’:
/opt/trilinos/lib/cmake/Trilinos/../../../include/trilinos/Sacado_Fad_Ops.hpp:576:1:   required from ‘const value_type Sacado::Fad::Expr<Sacado::Fad::PowerOp<ExprT1, Sacado::Fad::ConstExpr<T2> > >::fastAccessDx(int) const [with ExprT1 = Sacado::Fad::Expr<Sacado::Fad::AdditionOp<Sacado::Fad::Expr<Sacado::Fad::ExpOp<Sacado::Fad::Expr<Sacado::Fad::UnaryMinusOp<Sacado::Fad::Expr<Sacado::Fad::GeneralFad<Sacado::PCE::OrthogPoly<double, Stokhos::StandardStorage<int, double> >, Sacado::Fad::DynamicStorage<Sacado::PCE::OrthogPoly<double, Stokhos::StandardStorage<int, double> >, Sacado::PCE::OrthogPoly<double, Stokhos::StandardStorage<int, double> > > > > > > > >, Sacado::Fad::Expr<Sacado::Fad::MultiplicationOp<Sacado::Fad::ConstExpr<double>, Sacado::Fad::Expr<Sacado::Fad::PowerOp<Sacado::Fad::Expr<Sacado::Fad::GeneralFad<Sacado::PCE::OrthogPoly<double, Stokhos::StandardStorage<int, double> >, Sacado::Fad::DynamicStorage<Sacado::PCE::OrthogPoly<double, Stokhos::StandardStorage<int, double> >, Sacado::PCE::OrthogPoly<double, Stokhos::StandardStorage<int, double> > > > >, Sacado::Fad::ConstExpr<double> > > > > > >; T2 = double; Sacado::Fad::Expr<Sacado::Fad::PowerOp<ExprT1, Sacado::Fad::ConstExpr<T2> > >::value_type = Sacado::PCE::OrthogPoly<double, Stokhos::StandardStorage<int, double> >]’
/opt/trilinos/lib/cmake/Trilinos/../../../include/trilinos/Sacado_Fad_GeneralFad.hpp:259:37:   required from ‘typename Sacado::mpl::enable_if_c<(Sacado::mpl::is_convertible<typename Sacado::Fad::Expr<S>::value_type, typename Sacado::RemoveConst<T>::type>::value && (Sacado::Fad::ExprLevel<typename Sacado::Fad::Expr<S>::value_type>::value == Sacado::Fad::ExprLevel<typename Sacado::RemoveConst<T>::type>::value)), Sacado::Fad::GeneralFad<T, Storage>&>::type Sacado::Fad::GeneralFad<T, Storage>::operator=(const Sacado::Fad::Expr<S>&) [with S = Sacado::Fad::PowerOp<Sacado::Fad::Expr<Sacado::Fad::AdditionOp<Sacado::Fad::Expr<Sacado::Fad::ExpOp<Sacado::Fad::Expr<Sacado::Fad::UnaryMinusOp<Sacado::Fad::Expr<Sacado::Fad::GeneralFad<Sacado::PCE::OrthogPoly<double, Stokhos::StandardStorage<int, double> >, Sacado::Fad::DynamicStorage<Sacado::PCE::OrthogPoly<double, Stokhos::StandardStorage<int, double> >, Sacado::PCE::OrthogPoly<double, Stokhos::StandardStorage<int, double> > > > > > > > >, Sacado::Fad::Expr<Sacado::Fad::MultiplicationOp<Sacado::Fad::ConstExpr<double>, Sacado::Fad::Expr<Sacado::Fad::PowerOp<Sacado::Fad::Expr<Sacado::Fad::GeneralFad<Sacado::PCE::OrthogPoly<double, Stokhos::StandardStorage<int, double> >, Sacado::Fad::DynamicStorage<Sacado::PCE::OrthogPoly<double, Stokhos::StandardStorage<int, double> >, Sacado::PCE::OrthogPoly<double, Stokhos::StandardStorage<int, double> > > > >, Sacado::Fad::ConstExpr<double> > > > > > >, Sacado::Fad::ConstExpr<double> >; T = Sacado::PCE::OrthogPoly<double, Stokhos::StandardStorage<int, double> >; Storage = Sacado::Fad::DynamicStorage<Sacado::PCE::OrthogPoly<double, Stokhos::StandardStorage<int, double> >, Sacado::PCE::OrthogPoly<double, Stokhos::StandardStorage<int, double> > >; typename Sacado::mpl::enable_if_c<(Sacado::mpl::is_convertible<typename Sacado::Fad::Expr<S>::value_type, typename Sacado::RemoveConst<T>::type>::value && (Sacado::Fad::ExprLevel<typename Sacado::Fad::Expr<S>::value_type>::value == Sacado::Fad::ExprLevel<typename Sacado::RemoveConst<T>::type>::value)), Sacado::Fad::GeneralFad<T, Storage>&>::type = Sacado::Fad::GeneralFad<Sacado::PCE::OrthogPoly<double, Stokhos::StandardStorage<int, double> >, Sacado::Fad::DynamicStorage<Sacado::PCE::OrthogPoly<double, Stokhos::StandardStorage<int, double> >, Sacado::PCE::OrthogPoly<double, Stokhos::StandardStorage<int, double> > > >&]’
/opt/trilinos/lib/cmake/Trilinos/../../../include/trilinos/Sacado_Fad_DFad_tmpl.hpp:147:36:   required from ‘typename Sacado::mpl::enable_if_c<(Sacado::mpl::is_convertible<typename Sacado::Fad::Expr<S>::value_type, typename Sacado::Fad::Expr<Sacado::Fad::GeneralFad<ValueT, Sacado::Fad::DynamicStorage<ValueT> > >::value_type>::value && (Sacado::Fad::ExprLevel<typename Sacado::Fad::Expr<S>::value_type>::value == Sacado::Fad::ExprLevel<typename Sacado::Fad::Expr<Sacado::Fad::GeneralFad<ValueT, Sacado::Fad::DynamicStorage<ValueT> > >::value_type>::value)), Sacado::Fad::DFad<T>&>::type Sacado::Fad::DFad<T>::operator=(const Sacado::Fad::Expr<S>&) [with S = Sacado::Fad::PowerOp<Sacado::Fad::Expr<Sacado::Fad::AdditionOp<Sacado::Fad::Expr<Sacado::Fad::ExpOp<Sacado::Fad::Expr<Sacado::Fad::UnaryMinusOp<Sacado::Fad::Expr<Sacado::Fad::GeneralFad<Sacado::PCE::OrthogPoly<double, Stokhos::StandardStorage<int, double> >, Sacado::Fad::DynamicStorage<Sacado::PCE::OrthogPoly<double, Stokhos::StandardStorage<int, double> >, Sacado::PCE::OrthogPoly<double, Stokhos::StandardStorage<int, double> > > > > > > > >, Sacado::Fad::Expr<Sacado::Fad::MultiplicationOp<Sacado::Fad::ConstExpr<double>, Sacado::Fad::Expr<Sacado::Fad::PowerOp<Sacado::Fad::Expr<Sacado::Fad::GeneralFad<Sacado::PCE::OrthogPoly<double, Stokhos::StandardStorage<int, double> >, Sacado::Fad::DynamicStorage<Sacado::PCE::OrthogPoly<double, Stokhos::StandardStorage<int, double> >, Sacado::PCE::OrthogPoly<double, Stokhos::StandardStorage<int, double> > > > >, Sacado::Fad::ConstExpr<double> > > > > > >, Sacado::Fad::ConstExpr<double> >; ValueT = Sacado::PCE::OrthogPoly<double, Stokhos::StandardStorage<int, double> >; typename Sacado::mpl::enable_if_c<(Sacado::mpl::is_convertible<typename Sacado::Fad::Expr<S>::value_type, typename Sacado::Fad::Expr<Sacado::Fad::GeneralFad<ValueT, Sacado::Fad::DynamicStorage<ValueT> > >::value_type>::value && (Sacado::Fad::ExprLevel<typename Sacado::Fad::Expr<S>::value_type>::value == Sacado::Fad::ExprLevel<typename Sacado::Fad::Expr<Sacado::Fad::GeneralFad<ValueT, Sacado::Fad::DynamicStorage<ValueT> > >::value_type>::value)), Sacado::Fad::DFad<T>&>::type = Sacado::Fad::DFad<Sacado::PCE::OrthogPoly<double, Stokhos::StandardStorage<int, double> > >&]’


Here's how it's compiled:

cd /home/ryuta/devel/albany/src/build/src/QCAD && /usr/bin/mpic++   -DALBANY_AMESOS2 -DALBANY_DEMO_PDES -DALBANY_EPETRA -DALBANY_IFPACK2 -DALBANY_MOR -DALBANY_MPI -DALBANY_MUELU -DALBANY_QCAD -DALBANY_SG_MP -DA
LBANY_STK_REBALANCE -DALBANY_ZOLTAN -DPIRO_HAS_TPETRA -DQCAD_EXPORTS -march=x86-64 -mtune=generic -O2 -pipe -fstack-protector-strong --param=ssp-buffer-size=4 -std=c++11   -O3 -DNDEBUG -fPIC -I/home/ryuta/devel
/albany/src/albany/src/./MOR -I/opt/trilinos/lib/cmake/Trilinos/../../../include/trilinos -I/home/ryuta/devel/albany/src/albany/src/. -I/home/ryuta/devel/albany/src/albany/src/./evaluators -I/home/ryuta/devel/a
lbany/src/albany/src/./problems -I/home/ryuta/devel/albany/src/albany/src/./responses -I/home/ryuta/devel/albany/src/albany/src/./disc/stk -I/home/ryuta/devel/albany/src/albany/src/./adapt -I/home/ryuta/devel/a
lbany/src/albany/src/./disc -I/home/ryuta/devel/albany/src/albany/src/./LCM -I/home/ryuta/devel/albany/src/albany/src/./LCM/evaluators -I/home/ryuta/devel/albany/src/albany/src/./LCM/evaluators/bc -I/home/ryuta
/devel/albany/src/albany/src/./LCM/evaluators/surface-element -I/home/ryuta/devel/albany/src/albany/src/./LCM/models -I/home/ryuta/devel/albany/src/albany/src/./LCM/utils -I/home/ryuta/devel/albany/src/albany/s
rc/./LCM/utils/topology -I/home/ryuta/devel/albany/src/albany/src/./FELIX/problems -I/home/ryuta/devel/albany/src/albany/src/./FELIX/evaluators -I/home/ryuta/devel/albany/src/albany/src/./Aeras/problems -I/home
/ryuta/devel/albany/src/albany/src/./Aeras/evaluators -I/home/ryuta/devel/albany/src/albany/src/./Hydride/problems -I/home/ryuta/devel/albany/src/albany/src/./Hydride/evaluators -I/home/ryuta/devel/albany/src/a
lbany/src/./SEE -I/home/ryuta/devel/albany/src/albany/src/./SEE/problems -I/home/ryuta/devel/albany/src/albany/src/./SEE/evaluators -I/home/ryuta/devel/albany/src/albany/src/./SEE/responses -I/home/ryuta/devel/
albany/src/albany/src/./AMP -I/home/ryuta/devel/albany/src/albany/src/./AMP/problems -I/home/ryuta/devel/albany/src/albany/src/./AMP/evaluators -I/home/ryuta/devel/albany/src/albany/src/./QCAD -I/home/ryuta/dev
el/albany/src/albany/src/./QCAD/problems -I/home/ryuta/devel/albany/src/albany/src/./QCAD/evaluators -I/home/ryuta/devel/albany/src/albany/src/./QCAD/responses -I/home/ryuta/devel/albany/src/albany/src/./ATO -I
/home/ryuta/devel/albany/src/albany/src/./ATO/problems -I/home/ryuta/devel/albany/src/albany/src/./ATO/evaluators -I/home/ryuta/devel/albany/src/albany/src/./ATO/utils -I/home/ryuta/devel/albany/src/albany/src
-I/home/ryuta/devel/albany/src/albany/src/evaluators -I/home/ryuta/devel/albany/src/albany/src/problems -I/home/ryuta/devel/albany/src/albany/src/responses -I/home/ryuta/devel/albany/src/albany/src/QCAD/./probl
ems -I/home/ryuta/devel/albany/src/albany/src/QCAD/./evaluators -I/home/ryuta/devel/albany/src/albany/src/QCAD/./responses    -o CMakeFiles/QCAD.dir/evaluators/QCAD_PoissonSource.cpp.o -c /home/ryuta/devel/alba
ny/src/albany/src/QCAD/evaluators/QCAD_PoissonSource.cpp



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://software.sandia.gov/pipermail/trilinos-users/attachments/20150323/aa273cbb/attachment.html>


More information about the Trilinos-Users mailing list