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 [[email protected]] on behalf of Per Arne Slotte 
[[email protected]]
Sent: Tuesday, May 24, 2016 9:14 AM
To: [email protected]
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
_______________________________________________
Opm mailing list
[email protected]
http://opm-project.org/cgi-bin/mailman/listinfo/opm

Reply via email to