diff --git a/src/one-body-sample.cc b/src/one-body-sample.cc index 5da3d09417b320591a13edf6c2798cd563e12220..3753489da48f68a4265fc267677f5c524b4d6614 100644 --- a/src/one-body-sample.cc +++ b/src/one-body-sample.cc @@ -327,6 +327,8 @@ int main(int argc, char *argv[]) { std::fstream velocity_writer("velocities", std::fstream::out); std::fstream coefficient_writer("coefficients", std::fstream::out); ; + std::fstream iteration_writer("iterations", std::fstream::out); + ; auto timeSteppingScheme = initTimeStepper(parset.get<Config::scheme>("timeSteppingScheme"), @@ -368,6 +370,7 @@ int main(int argc, char *argv[]) { timeSteppingScheme->setup(ell, tau, time, problem_rhs, problem_iterate, problem_A); + size_t iterationCounter; auto solveDisplacementProblem = [&](VectorType &_problem_iterate, SingletonVectorType const &_alpha) { auto myGlobalNonlinearity = @@ -382,6 +385,7 @@ int main(int argc, char *argv[]) { overallSolver.preprocess(); overallSolver.solve(); + iterationCounter = overallSolver.getResult().iterations; }; // Since the velocity explodes in the quasistatic case, use the @@ -397,6 +401,7 @@ int main(int argc, char *argv[]) { stateUpdater->solve(ud); stateUpdater->extractState(alpha); + iteration_writer << iterationCounter << " "; if (parset.get<bool>("printProgress")) { std::cerr << '.'; std::cerr.flush(); @@ -428,6 +433,7 @@ int main(int argc, char *argv[]) { displacement_writer << std::endl; velocity_writer << std::endl; coefficient_writer << std::endl; + iteration_writer << std::endl; if (parset.get<bool>("writeVTK")) { SingletonVectorType vonMisesStress; @@ -447,11 +453,12 @@ int main(int argc, char *argv[]) { std::cerr << std::endl << "Making " << timesteps << " time steps took " << timer.elapsed() << "s" << std::endl; ; + state_writer.close(); displacement_writer.close(); velocity_writer.close(); coefficient_writer.close(); - ; + iteration_writer.close(); Python::stop(); }