From 25116f9112c38aeee80c520ea22593155ca9e676 Mon Sep 17 00:00:00 2001 From: Elias Pipping <elias.pipping@fu-berlin.de> Date: Thu, 24 Jan 2013 23:34:30 +0100 Subject: [PATCH] Use a different energy norm Take the stiffnessmatrix returned by the time stepping scheme; in particular, this includes a mass term. --- src/one-body-sample.cc | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/one-body-sample.cc b/src/one-body-sample.cc index c1d1c872..72f47a00 100644 --- a/src/one-body-sample.cc +++ b/src/one-body-sample.cc @@ -282,7 +282,6 @@ int main(int argc, char *argv[]) { OperatorAssembler<P1Basis, P1Basis>(p1Basis, p1Basis) .assemble(localStiffness, stiffnessMatrix); }; - EnergyNorm<MatrixType, VectorType> energyNorm(stiffnessMatrix); auto const nodalIntegrals = assemble_frictional<GridType, GridView, SmallVector, P1Basis>( @@ -311,9 +310,6 @@ int main(int argc, char *argv[]) { auto multigridStep = mySolver.getSolver(); Solver::VerbosityMode const verbosity = parset.get<bool>("verbose") ? Solver::FULL : Solver::QUIET; - LoopSolver<VectorType> overallSolver( - multigridStep, parset.get<size_t>("solver.tnnmg.maxiterations"), - solver_tolerance, &energyNorm, verbosity, false); // absolute error std::fstream coordinate_writer("coordinates", std::fstream::out); for (size_t i = 0; i < frictionalNodes.size(); ++i) @@ -368,6 +364,10 @@ int main(int argc, char *argv[]) { stateUpdater->setup(tau); timeSteppingScheme->setup(ell, tau, time, problem_rhs, problem_iterate, problem_A); + EnergyNorm<MatrixType, VectorType> energyNorm(problem_A); + LoopSolver<VectorType> overallSolver( + multigridStep, parset.get<size_t>("solver.tnnmg.maxiterations"), + solver_tolerance, &energyNorm, verbosity, false); // absolute error size_t iterationCounter; auto solveDisplacementProblem = [&](VectorType &_problem_iterate, -- GitLab