[Opm] Problems compiling the new versionof OPM
Per Arne Slotte
paslotte at gmail.com
Tue May 24 07:14:36 UTC 2016
OPM'ers
Having had no major problems with compiling OPM back in january, I am now
trying to upgrade to the latest version.
No problems with the first 6 modules (common, parser, material, core, grid,
output) except that I had to run "make install" for the modules with
dependencies to be able to find includes and libraries.
When compiling opm-simulators I get the following error message
error: *cannot declare variable ‘linsolve’ to be of abstract type*
‘Dune::RestartedGMResSolver<Dune::BlockVector<Dune::FieldVector<float, 1>,
std::allocator<Dune::FieldVector<float, 1> > >,
Dune::BlockVector<Dune::FieldVector<float, 1>,
std::allocator<Dune::FieldVector<float, 1> > >,
Dune::BlockVector<Dune::FieldVector<float, 1>,
std::allocator<Dune::FieldVector<float, 1>
Any ideas anyone?
OS-version KUBUNTU 15.10
g++ (Ubuntu 5.2.1-22ubuntu2) 5.2.1 20151010
---------------------------------------------------------------
opm-simulators-build:bash$ make 2> xx
[ 1%] Patching Makefile to be DUNE compatible
[ 1%] Built target dune-compat
[ 2%] Updating version information
[ 2%] Built target update-version
[ 4%] Building CXX object
CMakeFiles/opmsimulators.dir/opm/autodiff/NewtonIterationBlackoilInterleaved.cpp.o
CMakeFiles/opmsimulators.dir/build.make:123: recipe for target
'CMakeFiles/opmsimulators.dir/opm/autodiff/NewtonIterationBlackoilInterleaved.cpp.o'
failed
CMakeFiles/Makefile2:1540: recipe for target
'CMakeFiles/opmsimulators.dir/all' failed
Makefile:126: recipe for target 'all' failed
----------------------------------------------
Some of the contents of xx:
/home/perarnsl/Prog/OPM/opm-simulators/opm/autodiff/NewtonIterationBlackoilInterleaved.cpp:
In instantiation of ‘void Opm::NewtonIterationBlackoilInterleavedImpl<np,
ScalarT>::solve(Operator&, Opm::NewtonIterationBlackoilInterleavedImpl<np,
ScalarT>::Vector&, Opm::NewtonIterationBlackoilInterleavedImpl<np,
ScalarT>::Vector&, ScalarProd&, Precond&, Dune::InverseOperatorResult&)
const [with Operator =
Dune::MatrixAdapter<Dune::BCRSMatrix<Dune::MatrixBlock<float, 1, 1>,
std::allocator<Dune::MatrixBlock<float, 1, 1> > >,
Dune::BlockVector<Dune::FieldVector<float, 1>,
std::allocator<Dune::FieldVector<float, 1> > >,
Dune::BlockVector<Dune::FieldVector<float, 1>,
std::allocator<Dune::FieldVector<float, 1> > > >; ScalarProd =
Dune::SeqScalarProduct<Dune::BlockVector<Dune::FieldVector<float, 1>,
std::allocator<Dune::FieldVector<float, 1> > > >; Precond =
Dune::SeqILU0<Dune::BCRSMatrix<Dune::MatrixBlock<float, 1, 1>,
std::allocator<Dune::MatrixBlock<float, 1, 1> > >,
Dune::BlockVector<Dune::FieldVector<float, 1>,
std::allocator<Dune::FieldVector<float, 1> > >,
Dune::BlockVector<Dune::FieldVector<float, 1>,
std::allocator<Dune::FieldVector<float, 1> > >, 1>; int np = 1; ScalarT =
float; Opm::NewtonIterationBlackoilInterleavedImpl<np, ScalarT>::Vector =
Dune::BlockVector<Dune::FieldVector<float, 1>,
std::allocator<Dune::FieldVector<float, 1> > >]’:
/home/perarnsl/Prog/OPM/opm-simulators/opm/autodiff/NewtonIterationBlackoilInterleaved.cpp:231:22:
required from ‘void Opm::NewtonIterationBlackoilInterleavedImpl<np,
ScalarT>::constructPreconditionerAndSolve(O&,
Opm::NewtonIterationBlackoilInterleavedImpl<np, ScalarT>::Vector&,
Opm::NewtonIterationBlackoilInterleavedImpl<np, ScalarT>::Vector&, const
POrComm&, Dune::InverseOperatorResult&) const [with int category = 0; O =
Dune::MatrixAdapter<Dune::BCRSMatrix<Dune::MatrixBlock<float, 1, 1>,
std::allocator<Dune::MatrixBlock<float, 1, 1> > >,
Dune::BlockVector<Dune::FieldVector<float, 1>,
std::allocator<Dune::FieldVector<float, 1> > >,
Dune::BlockVector<Dune::FieldVector<float, 1>,
std::allocator<Dune::FieldVector<float, 1> > > >; POrComm =
Dune::Amg::SequentialInformation; int np = 1; ScalarT = float;
Opm::NewtonIterationBlackoilInterleavedImpl<np, ScalarT>::Vector =
Dune::BlockVector<Dune::FieldVector<float, 1>,
std::allocator<Dune::FieldVector<float, 1> > >]’
/home/perarnsl/Prog/OPM/opm-simulators/opm/autodiff/NewtonIterationBlackoilInterleaved.cpp:482:48:
required from ‘Opm::NewtonIterationBlackoilInterleavedImpl<np,
ScalarT>::SolutionVector Opm::NewtonIterationBlackoilInterleavedImpl<np,
ScalarT>::computeNewtonIncrement(const Opm::LinearisedBlackoilResidual&)
const [with int np = 1; ScalarT = float;
Opm::NewtonIterationBlackoilInterleavedImpl<np, ScalarT>::SolutionVector =
Eigen::Array<double, -1, 1>]’
/home/perarnsl/Prog/OPM/opm-simulators/opm/autodiff/NewtonIterationBlackoilInterleaved.cpp:596:1:
required from here
/home/perarnsl/Prog/OPM/opm-simulators/opm/autodiff/NewtonIterationBlackoilInterleaved.cpp:274:52:*
error: cannot declare variable ‘linsolve’ to be of abstract type
‘Dune::RestartedGMResSolver<Dune::BlockVector<Dune::FieldVector<float, 1>,
std::allocator<Dune::FieldVector<float, 1> > >,
Dune::BlockVector<Dune::FieldVector<float, 1>,
std::allocator<Dune::FieldVector<float, 1> > >,
Dune::BlockVector<Dune::FieldVector<float, 1>,
std::allocator<Dune::FieldVector<float, 1> > > >’*
Dune::RestartedGMResSolver<Vector> linsolve(opA, sp,
precond,
^
In file included from /usr/include/dune/istl/schwarz.hh:23:0,
from
/home/perarnsl/Prog/OPM/opm-simulators/opm/autodiff/CPRPreconditioner.hpp:39,
from
/home/perarnsl/Prog/OPM/opm-simulators/opm/autodiff/NewtonIterationBlackoilInterleaved.cpp:28:
/usr/include/dune/istl/solvers.hh:1101:9: note: because the following
virtual functions are pure within
‘Dune::RestartedGMResSolver<Dune::BlockVector<Dune::FieldVector<float, 1>,
std::allocator<Dune::FieldVector<float, 1> > >,
Dune::BlockVector<Dune::FieldVector<float, 1>,
std::allocator<Dune::FieldVector<float, 1> > >,
Dune::BlockVector<Dune::FieldVector<float, 1>,
std::allocator<Dune::FieldVector<float, 1> > > >’:
class RestartedGMResSolver : public InverseOperator<X,Y>
^
In file included from /usr/include/dune/istl/preconditioners.hh:15:0,
from
/home/perarnsl/Prog/OPM/opm-simulators/opm/autodiff/CPRPreconditioner.hpp:38,
from
/home/perarnsl/Prog/OPM/opm-simulators/opm/autodiff/NewtonIterationBlackoilInterleaved.cpp:28:
/usr/include/dune/istl/solver.hh:111:18: note: void
Dune::InverseOperator<X, Y>::apply(X&, Y&, double,
Dune::InverseOperatorResult&) [with X =
Dune::BlockVector<Dune::FieldVector<float, 1>,
std::allocator<Dune::FieldVector<float, 1> > >; Y =
Dune::BlockVector<Dune::FieldVector<float, 1>,
std::allocator<Dune::FieldVector<float, 1> > >]
virtual void apply (X& x, Y& b, double reduction,
InverseOperatorResult& res) = 0;
^
--------------------------------------------------------------
--
mvh
Per Arne Slotte
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <//opm-project.org/pipermail/opm/attachments/20160524/450e62d1/attachment.html>
More information about the Opm
mailing list