Skip to content
Snippets Groups Projects
Commit 25116f91 authored by Elias Pipping's avatar Elias Pipping Committed by Elias Pipping
Browse files

Use a different energy norm

Take the stiffnessmatrix returned by the time stepping scheme; in
particular, this includes a mass term.
parent 3d42113b
No related branches found
No related tags found
No related merge requests found
......@@ -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,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment