[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