From eb476b559770f27d1e1a3c8b7b9ae5f01437af0b Mon Sep 17 00:00:00 2001 From: Elias Pipping <elias.pipping@fu-berlin.de> Date: Tue, 14 May 2013 17:49:19 +0200 Subject: [PATCH] Make some quantities into scalars Also fix the order a-mu-V0-stress-b-state-L everywhere --- dune/tectonic/globalruinanonlinearity.hh | 10 +++++----- src/assemblers.cc | 23 ++--------------------- src/assemblers.hh | 4 ++-- src/assemblers_tmpl.cc | 4 ++-- src/one-body-sample.cc | 6 ++---- 5 files changed, 13 insertions(+), 34 deletions(-) diff --git a/dune/tectonic/globalruinanonlinearity.hh b/dune/tectonic/globalruinanonlinearity.hh index f3bd55de..b64d8bba 100644 --- a/dune/tectonic/globalruinanonlinearity.hh +++ b/dune/tectonic/globalruinanonlinearity.hh @@ -23,9 +23,9 @@ class GlobalRuinaNonlinearity public: using GlobalNonlinearity<MatrixType, VectorType>::dim; - GlobalRuinaNonlinearity(dataref nodalIntegrals, dataref a, dataref mu0, - dataref V0, dataref normalStress, dataref b, - dataref state, dataref L) + GlobalRuinaNonlinearity(dataref nodalIntegrals, double a, double mu0, + double V0, double normalStress, double b, + dataref state, double L) : restrictions(nodalIntegrals.size()) { auto trivialNonlinearity = make_shared<LocalNonlinearity<dim> const>( make_shared<TrivialFunction const>()); @@ -34,8 +34,8 @@ class GlobalRuinaNonlinearity ? trivialNonlinearity : make_shared<LocalNonlinearity<dim> const>( make_shared<RuinaFunction const>( - nodalIntegrals[i], a[i], mu0[i], V0[i], - normalStress[i], b[i], state[i], L[i])); + nodalIntegrals[i], a, mu0, V0, + normalStress, b, state[i], L)); } } diff --git a/src/assemblers.cc b/src/assemblers.cc index 283da47e..aa19a122 100644 --- a/src/assemblers.cc +++ b/src/assemblers.cc @@ -52,27 +52,8 @@ Dune::shared_ptr<Dune::GlobalNonlinearity<MatrixType, VectorType> const> assemble_nonlinearity( Dune::ParameterTree const &parset, Dune::BlockVector<Dune::FieldVector<double, 1>> const &nodalIntegrals, - Dune::BlockVector<Dune::FieldVector<double, 1>> const &state, - Dune::BlockVector<Dune::FieldVector<double, 1>> const &normalStress) { - auto const size = nodalIntegrals.size(); - - using SingletonVectorType = Dune::BlockVector<Dune::FieldVector<double, 1>>; - // {{{ Assemble terms for the nonlinearity - SingletonVectorType mu0(size); - mu0 = parset.get<double>("mu0"); - - SingletonVectorType a(size); - a = parset.get<double>("a"); - - SingletonVectorType V0(size); - V0 = parset.get<double>("V0"); - - SingletonVectorType b(size); - b = parset.get<double>("b"); - - SingletonVectorType L(size); - L = parset.get<double>("L"); - + double a, double mu0, double V0, double normalStress, double b, + Dune::BlockVector<Dune::FieldVector<double, 1>> const &state, double L) { return Dune::make_shared< Dune::GlobalRuinaNonlinearity<MatrixType, VectorType> const>( nodalIntegrals, a, mu0, V0, normalStress, b, state, L); diff --git a/src/assemblers.hh b/src/assemblers.hh index ceceddee..f29d6fad 100644 --- a/src/assemblers.hh +++ b/src/assemblers.hh @@ -29,6 +29,6 @@ Dune::shared_ptr<Dune::GlobalNonlinearity<MatrixType, VectorType> const> assemble_nonlinearity( Dune::ParameterTree const &parset, Dune::BlockVector<Dune::FieldVector<double, 1>> const &nodalIntegrals, - Dune::BlockVector<Dune::FieldVector<double, 1>> const &state, - Dune::BlockVector<Dune::FieldVector<double, 1>> const &normalStress); + double a, double mu0, double V0, double normalStress, double b, + Dune::BlockVector<Dune::FieldVector<double, 1>> const &state, double L); #endif diff --git a/src/assemblers_tmpl.cc b/src/assemblers_tmpl.cc index 31686a4c..9a7fcc68 100644 --- a/src/assemblers_tmpl.cc +++ b/src/assemblers_tmpl.cc @@ -36,5 +36,5 @@ template Dune::shared_ptr< assemble_nonlinearity<MatrixType, VectorType>( Dune::ParameterTree const &parset, Dune::BlockVector<Dune::FieldVector<double, 1>> const &nodalIntegrals, - Dune::BlockVector<Dune::FieldVector<double, 1>> const &state, - Dune::BlockVector<Dune::FieldVector<double, 1>> const &normalStress); + double a, double mu0, double V0, double normalStress, double b, + Dune::BlockVector<Dune::FieldVector<double, 1>> const &state, double L); diff --git a/src/one-body-sample.cc b/src/one-body-sample.cc index a654eede..66b550fe 100644 --- a/src/one-body-sample.cc +++ b/src/one-body-sample.cc @@ -294,8 +294,6 @@ int main(int argc, char *argv[]) { gravityFunctional); } } - SingletonVectorType surfaceNormalStress(finestSize); - surfaceNormalStress = normalStress; MatrixType stiffnessMatrix; EnergyNorm<MatrixType, VectorType> const stiffnessMatrixNorm( @@ -413,8 +411,8 @@ int main(int argc, char *argv[]) { SingletonVectorType const &_alpha) { auto myGlobalNonlinearity = assemble_nonlinearity<MatrixType, VectorType>( - parset.sub("boundary.friction"), *nodalIntegrals, _alpha, - surfaceNormalStress); + parset.sub("boundary.friction"), *nodalIntegrals, a, mu0, V0, + normalStress, b, _alpha, L); using MyConvexProblemType = MyConvexProblem<MatrixType, VectorType>; MyConvexProblemType const myConvexProblem( -- GitLab