diff --git a/dune/tectonic/globallaursennonlinearity.hh b/dune/tectonic/globallaursennonlinearity.hh index 18cbac8f8e51b53aa196e0fa5e0ec420adf98cc0..b478fe7c07a63ab9c938af67f9ab87f6b022b6bf 100644 --- a/dune/tectonic/globallaursennonlinearity.hh +++ b/dune/tectonic/globallaursennonlinearity.hh @@ -21,7 +21,7 @@ class GlobalLaursenNonlinearity : public GlobalNonlinearity<dim> { GlobalLaursenNonlinearity( shared_ptr<std::vector<double> const> mu, shared_ptr<std::vector<double> const> normalStress, - std::vector<FieldVector<double, 1>> const &nodalIntegrals) + shared_ptr<std::vector<FieldVector<double, 1>> const> nodalIntegrals) : mu(mu), normalStress(normalStress), nodalIntegrals(nodalIntegrals) {} /* @@ -39,7 +39,7 @@ class GlobalLaursenNonlinearity : public GlobalNonlinearity<dim> { sigma_n [id + mu id] = sigma_n (1 + mu) id */ virtual shared_ptr<LocalNonlinearity<dim> const> restriction(int i) const { - double coefficient = nodalIntegrals[i][0]; + double coefficient = (*nodalIntegrals)[i][0]; coefficient *= (*normalStress)[i]; coefficient *= 1 + (*mu)[i]; @@ -54,7 +54,7 @@ class GlobalLaursenNonlinearity : public GlobalNonlinearity<dim> { // results shared_ptr<std::vector<double> const> mu; shared_ptr<std::vector<double> const> normalStress; - std::vector<FieldVector<double, 1>> nodalIntegrals; + shared_ptr<std::vector<FieldVector<double, 1>> const> nodalIntegrals; }; } #endif diff --git a/src/one-body-sample.cc b/src/one-body-sample.cc index b837a84c1cd0bdcbe45c2f852c147c8c9e93eb17..4a35e6d4a81d581edd06b2799505dbda0626a076 100644 --- a/src/one-body-sample.cc +++ b/src/one-body-sample.cc @@ -171,7 +171,7 @@ void assemble_nonlinearity( } else if (friction_model == std::string("Laursen")) { auto const tmp = new Dune::GlobalLaursenNonlinearity<dim, Dune::LinearFunction>( - mu, normalStress, *nodalIntegrals); + mu, normalStress, nodalIntegrals); myGlobalNonlinearity = Dune::shared_ptr<Dune::GlobalNonlinearity<dim> const>(tmp); } else {