diff --git a/source/simulator/solver_schemes.cc b/source/simulator/solver_schemes.cc index 5fed6560d1c..1b377c0e7c2 100644 --- a/source/simulator/solver_schemes.cc +++ b/source/simulator/solver_schemes.cc @@ -846,12 +846,7 @@ namespace aspect << std::endl; if (parameters.run_postprocessors_on_nonlinear_iterations) - { - // Before postprocessing, we need to copy the actual solution into the solution vector - // (which is used for postprocessing) - solution = current_linearization_point; - postprocess (); - } + postprocess (); ++nonlinear_iteration; } @@ -862,10 +857,6 @@ namespace aspect // Reset the linear tolerance to what it was at the beginning of the time step. parameters.linear_stokes_solver_tolerance = begin_linear_tolerance; - // When we are finished iterating, we need to set the final solution to the current linearization point, - // because the solution vector is used in the postprocess. - solution = current_linearization_point; - signals.post_nonlinear_solver(nonlinear_solver_control); } @@ -1170,12 +1161,7 @@ namespace aspect << std::endl; if (parameters.run_postprocessors_on_nonlinear_iterations) - { - // Before postprocessing, we need to copy the actual solution into the solution vector - // (which is used for postprocessing) - solution = current_linearization_point; - postprocess (); - } + postprocess (); ++nonlinear_iteration; } @@ -1188,10 +1174,6 @@ namespace aspect // Reset the linear tolerance to what it was at the beginning of the time step. parameters.linear_stokes_solver_tolerance = begin_linear_tolerance; - // When we are finished iterating, we need to set the final solution to the current linearization point, - // because the solution vector is used in the postprocess. - solution = current_linearization_point; - AssertThrow(nonlinear_solver_control.last_check() != SolverControl::failure, ExcNonlinearSolverNoConvergence()); signals.post_nonlinear_solver(nonlinear_solver_control); @@ -1279,12 +1261,7 @@ namespace aspect << std::endl; if (parameters.run_postprocessors_on_nonlinear_iterations) - { - // Before postprocessing, we need to copy the actual solution into the solution vector - // (which is used for postprocessing) - solution = current_linearization_point; - postprocess (); - } + postprocess (); ++nonlinear_iteration; } @@ -1297,10 +1274,6 @@ namespace aspect // Reset the linear tolerance to what it was at the beginning of the time step. parameters.linear_stokes_solver_tolerance = begin_linear_tolerance; - // When we are finished iterating, we need to set the final solution to the current linearization point, - // because the solution vector is used in the postprocess. - solution = current_linearization_point; - AssertThrow(nonlinear_solver_control.last_check() != SolverControl::failure, ExcNonlinearSolverNoConvergence()); signals.post_nonlinear_solver(nonlinear_solver_control);