diff --git a/src/assemblers.cc b/src/assemblers.cc index 496c12a35e5b5c5fe296319a7b7e0421885a36aa..64a999043f1ffce5151bc87683a91889e7941b6d 100644 --- a/src/assemblers.cc +++ b/src/assemblers.cc @@ -95,9 +95,9 @@ void MyAssembler<GridView, dimension>::assembleNeumann( Dune::VirtualFunction<double, double> const &neumann, double relativeTime) { LocalVector localNeumann(0); neumann.evaluate(relativeTime, localNeumann[0]); - ConstantFunction<LocalVector, LocalVector> const fNeumann(localNeumann); NeumannBoundaryAssembler<Grid, LocalVector> neumannBoundaryAssembler( - fNeumann); + std::make_shared<ConstantFunction<LocalVector, LocalVector>>( + localNeumann)); vertexAssembler.assembleBoundaryFunctional(neumannBoundaryAssembler, f, neumannBoundary); } @@ -134,10 +134,10 @@ auto MyAssembler<GridView, dimension>::assembleFrictionNonlinearity( // Lump negative normal stress (kludge) ScalarVector weights; { - ConstantFunction<LocalVector, typename ScalarVector::block_type> const - constantOneFunction(1); NeumannBoundaryAssembler<Grid, typename ScalarVector::block_type> - frictionalBoundaryAssembler(constantOneFunction); + frictionalBoundaryAssembler(std::make_shared< + ConstantFunction<LocalVector, typename ScalarVector::block_type>>( + 1)); vertexAssembler.assembleBoundaryFunctional(frictionalBoundaryAssembler, weights, frictionalBoundary); }