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

Ryuta Suzuki ryuuta at gmail.com
Mon Mar 23 05:21:39 MDT 2015


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/de26d837/attachment.html>


More information about the Trilinos-Users mailing list