I'm running into the following compilation problem when building Trilinos 12.12.1.
[ 95%] Building CXX object packages/Sundance/Playa/src/CMakeFiles/sundancePlaya.dir/NOX_Playa_Group.cpp.o
cd /tmp/obj/packages/Sundance/Playa/src && /software/OpenMPI/2.1.2-GCC-6.4.0-2.28/bin/mpicxx -DsundancePlaya_EXPORTS @CMakeFiles/sundancePlaya.dir/includes_CXX.rsp -O2 -ftree-vectorize -march=native -mieee-fp -mno-recip -fPIC -std=c++11 -fopenmp -O3 -DNDEBUG -fPIC -o CMakeFiles/sundancePlaya.dir/NOX_Playa_Group.cpp.o -c /tmp/src/packages/Sundance/Playa/src/NOX_Playa_Group.cpp
/tmp/src/packages/Sundance/Playa/src/NOX_Playa_Group.cpp: In constructor ‘NOX::NOXPlaya::Group::Group(const Playa::Vector<double>&, const Playa::NonlinearOperator<double>&, const Playa::LinearSolver<double>&)’:
/tmp/src/packages/Sundance/Playa/src/NOX_Playa_Group.cpp:71:70: error: invalid new-expression of abstract class type ‘NOX::NOXPlaya::Vector’
xVector(rcp(new NOX::NOXPlaya::Vector(initcond, precision, DeepCopy))),
^
In file included from /tmp/src/packages/Sundance/Playa/src/NOX_Playa_Group.hpp:57:0,
from /tmp/src/packages/Sundance/Playa/src/NOX_Playa_Group.cpp:51:
/tmp/src/packages/Sundance/Playa/src/NOX_Playa_Vector.hpp:75:7: note: because the following virtual functions are pure within ‘NOX::NOXPlaya::Vector’:
class Vector : public NOX::Abstract::Vector
^~~~~~
In file included from /tmp/src/packages/nox/src/NOX_Abstract_Group.H:54:0,
from /tmp/src/packages/Sundance/Playa/src/NOX_Playa_Group.hpp:53,
from /tmp/src/packages/Sundance/Playa/src/NOX_Playa_Group.cpp:51:
/tmp/src/packages/nox/src/NOX_Abstract_Vector.H:137:34: note: virtual NOX::Abstract::Vector& NOX::Abstract::Vector::random(bool, int)
virtual NOX::Abstract::Vector& random(bool useSeed = false, int seed = 1) = 0;
^~~~~~
/tmp/src/packages/Sundance/Playa/src/NOX_Playa_Group.cpp:72:71: error: invalid new-expression of abstract class type ‘NOX::NOXPlaya::Vector’
fVector(rcp(new NOX::NOXPlaya::Vector(initcond, precision, ShapeCopy))),
^
/tmp/src/packages/Sundance/Playa/src/NOX_Playa_Group.cpp:73:76: error: invalid new-expression of abstract class type ‘NOX::NOXPlaya::Vector’
newtonVector(rcp(new NOX::NOXPlaya::Vector(initcond, precision, ShapeCopy))),
^
/tmp/src/packages/Sundance/Playa/src/NOX_Playa_Group.cpp:74:78: error: invalid new-expression of abstract class type ‘NOX::NOXPlaya::Vector’
gradientVector(rcp(new NOX::NOXPlaya::Vector(initcond, precision, ShapeCopy))),
^
/tmp/src/packages/Sundance/Playa/src/NOX_Playa_Group.cpp: In constructor ‘NOX::NOXPlaya::Group::Group(const Playa::NonlinearOperator<double>&, const Playa::LinearSolver<double>&)’:
/tmp/src/packages/Sundance/Playa/src/NOX_Playa_Group.cpp:88:88: error: invalid new-expression of abstract class type ‘NOX::NOXPlaya::Vector’
xVector(rcp(new NOX::NOXPlaya::Vector(nonlinOp.getInitialGuess(), precision, DeepCopy))),
^
/tmp/src/packages/Sundance/Playa/src/NOX_Playa_Group.cpp:89:89: error: invalid new-expression of abstract class type ‘NOX::NOXPlaya::Vector’
fVector(rcp(new NOX::NOXPlaya::Vector(nonlinOp.getInitialGuess(), precision, ShapeCopy))),
^
/tmp/src/packages/Sundance/Playa/src/NOX_Playa_Group.cpp:90:94: error: invalid new-expression of abstract class type ‘NOX::NOXPlaya::Vector’
newtonVector(rcp(new NOX::NOXPlaya::Vector(nonlinOp.getInitialGuess(), precision, ShapeCopy))),
^
/tmp/src/packages/Sundance/Playa/src/NOX_Playa_Group.cpp:91:96: error: invalid new-expression of abstract class type ‘NOX::NOXPlaya::Vector’
gradientVector(rcp(new NOX::NOXPlaya::Vector(nonlinOp.getInitialGuess(), precision, ShapeCopy))),
^
/tmp/src/packages/Sundance/Playa/src/NOX_Playa_Group.cpp: In constructor ‘NOX::NOXPlaya::Group::Group(const Playa::Vector<double>&, const Playa::NonlinearOperator<double>&, const Playa::LinearSolver<double>&, int)’:
/tmp/src/packages/Sundance/Playa/src/NOX_Playa_Group.cpp:107:70: error: invalid new-expression of abstract class type ‘NOX::NOXPlaya::Vector’
xVector(rcp(new NOX::NOXPlaya::Vector(initcond, precision, DeepCopy))),
^
/tmp/src/packages/Sundance/Playa/src/NOX_Playa_Group.cpp:108:71: error: invalid new-expression of abstract class type ‘NOX::NOXPlaya::Vector’
fVector(rcp(new NOX::NOXPlaya::Vector(initcond, precision, ShapeCopy))),
^
/tmp/src/packages/Sundance/Playa/src/NOX_Playa_Group.cpp:109:76: error: invalid new-expression of abstract class type ‘NOX::NOXPlaya::Vector’
newtonVector(rcp(new NOX::NOXPlaya::Vector(initcond, precision, ShapeCopy))),
^
/tmp/src/packages/Sundance/Playa/src/NOX_Playa_Group.cpp:110:78: error: invalid new-expression of abstract class type ‘NOX::NOXPlaya::Vector’
gradientVector(rcp(new NOX::NOXPlaya::Vector(initcond, precision, ShapeCopy))),
^
/tmp/src/packages/Sundance/Playa/src/NOX_Playa_Group.cpp: In constructor ‘NOX::NOXPlaya::Group::Group(const Playa::NonlinearOperator<double>&, const Playa::LinearSolver<double>&, int)’:
/tmp/src/packages/Sundance/Playa/src/NOX_Playa_Group.cpp:125:88: error: invalid new-expression of abstract class type ‘NOX::NOXPlaya::Vector’
xVector(rcp(new NOX::NOXPlaya::Vector(nonlinOp.getInitialGuess(), precision, DeepCopy))),
^
/tmp/src/packages/Sundance/Playa/src/NOX_Playa_Group.cpp:126:89: error: invalid new-expression of abstract class type ‘NOX::NOXPlaya::Vector’
fVector(rcp(new NOX::NOXPlaya::Vector(nonlinOp.getInitialGuess(), precision, ShapeCopy))),
^
/tmp/src/packages/Sundance/Playa/src/NOX_Playa_Group.cpp:127:94: error: invalid new-expression of abstract class type ‘NOX::NOXPlaya::Vector’
newtonVector(rcp(new NOX::NOXPlaya::Vector(nonlinOp.getInitialGuess(), precision, ShapeCopy))),
^
/tmp/src/packages/Sundance/Playa/src/NOX_Playa_Group.cpp:128:96: error: invalid new-expression of abstract class type ‘NOX::NOXPlaya::Vector’
gradientVector(rcp(new NOX::NOXPlaya::Vector(nonlinOp.getInitialGuess(), precision, ShapeCopy))),
^
/tmp/src/packages/Sundance/Playa/src/NOX_Playa_Group.cpp: In copy constructor ‘NOX::NOXPlaya::Group::Group(const NOX::NOXPlaya::Group&, NOX::CopyType)’:
/tmp/src/packages/Sundance/Playa/src/NOX_Playa_Group.cpp:141:75: error: invalid new-expression of abstract class type ‘NOX::NOXPlaya::Vector’
xVector(rcp(new NOX::NOXPlaya::Vector(*(source.xVector), precision, type))),
^
/tmp/src/packages/Sundance/Playa/src/NOX_Playa_Group.cpp:142:75: error: invalid new-expression of abstract class type ‘NOX::NOXPlaya::Vector’
fVector(rcp(new NOX::NOXPlaya::Vector(*(source.fVector), precision, type))),
^
/tmp/src/packages/Sundance/Playa/src/NOX_Playa_Group.cpp:143:85: error: invalid new-expression of abstract class type ‘NOX::NOXPlaya::Vector’
newtonVector(rcp(new NOX::NOXPlaya::Vector(*(source.newtonVector), precision, type))),
^
/tmp/src/packages/Sundance/Playa/src/NOX_Playa_Group.cpp:144:89: error: invalid new-expression of abstract class type ‘NOX::NOXPlaya::Vector’
gradientVector(rcp(new NOX::NOXPlaya::Vector(*(source.gradientVector), precision, type))),
^
/tmp/src/packages/Sundance/Playa/src/NOX_Playa_Group.cpp: In member function ‘virtual NOX::Abstract::Group::ReturnType NOX::NOXPlaya::Group::computeF()’:
/tmp/src/packages/Sundance/Playa/src/NOX_Playa_Group.cpp:290:45: error: cannot allocate an object of abstract type ‘NOX::NOXPlaya::Vector’
*fVector = nonlinearOp.getFunctionValue();
^
make[2]: *** [packages/Sundance/Playa/src/CMakeFiles/sundancePlaya.dir/NOX_Playa_Group.cpp.o] Error 1