[Opm] Problems compiling the new versionof OPM

Alf Birger Rustad abir at statoil.com
Tue May 24 07:37:07 UTC 2016


Nothing that pops out for me. Basically, I believe it should just work on 15.10. Are you using dune from kubuntu packages? If so, what version is packaged there?

As Atgeirr suggests, make sure you start with fresh OPM repositories, any remnants of earlier versions are known to cause cryptic errors. If you are still having issues, please share some details on how you build, e.g., cmake variables you use.

________________________________
From: Opm [opm-bounces at opm-project.org] on behalf of Per Arne Slotte [paslotte at gmail.com]
Sent: Tuesday, May 24, 2016 9:14 AM
To: opm at opm-project.org
Subject: [Opm] Problems compiling the new versionof OPM

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



-------------------------------------------------------------------
The information contained in this message may be CONFIDENTIAL and is
intended for the addressee only. Any unauthorised use, dissemination of the
information or copying of this message is prohibited. If you are not the
addressee, please notify the sender immediately by return e-mail and delete
this message.
Thank you
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <//opm-project.org/pipermail/opm/attachments/20160524/3af861be/attachment.html>


More information about the Opm mailing list