Skip to content

Commit ccf5bcc

Browse files
added diagnostic_interval int for nonlinear solver diagnostic.
1 parent 9266aa7 commit ccf5bcc

File tree

3 files changed

+7
-2
lines changed

3 files changed

+7
-2
lines changed

Source/NonlinearSolvers/NewtonSolver.H

+3-1
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,7 @@ void NewtonSolver<Vec,Ops>::ParseParameters ()
245245
pp_newton.query("max_iterations", m_maxits);
246246
pp_newton.query("require_convergence", m_require_convergence);
247247
pp_newton.query("diagnostic_file", this->m_diagnostic_file);
248+
pp_newton.query("diagnostic_interval", this->m_diagnostic_interval);
248249

249250
const amrex::ParmParse pp_gmres("gmres");
250251
pp_gmres.query("verbose_int", m_gmres_verbose_int);
@@ -358,7 +359,8 @@ void NewtonSolver<Vec,Ops>::Solve ( Vec& a_U,
358359
}
359360
}
360361

361-
if (!this->m_diagnostic_file.empty() && amrex::ParallelDescriptor::IOProcessor()) {
362+
if (!this->m_diagnostic_file.empty() && amrex::ParallelDescriptor::IOProcessor() &&
363+
a_step%this->m_diagnostic_interval==0) {
362364
std::ofstream diagnostic_file{this->m_diagnostic_file, std::ofstream::out | std::ofstream::app};
363365
diagnostic_file << std::setprecision(14);
364366
diagnostic_file << a_step;

Source/NonlinearSolvers/NonlinearSolver.H

+1
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ protected:
8383
bool m_is_defined = false;
8484
mutable bool m_verbose = true;
8585
std::string m_diagnostic_file;
86+
int m_diagnostic_interval = 1;
8687

8788
};
8889

Source/NonlinearSolvers/PicardSolver.H

+3-1
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,7 @@ void PicardSolver<Vec,Ops>::ParseParameters ()
156156
pp_picard.query("max_iterations", m_maxits);
157157
pp_picard.query("require_convergence", m_require_convergence);
158158
pp_picard.query("diagnostic_file", this->m_diagnostic_file);
159+
pp_picard.query("diagnostic_interval", this->m_diagnostic_interval);
159160
}
160161

161162
template <class Vec, class Ops>
@@ -244,7 +245,8 @@ void PicardSolver<Vec,Ops>::Solve ( Vec& a_U,
244245
}
245246
}
246247

247-
if (!this->m_diagnostic_file.empty() && amrex::ParallelDescriptor::IOProcessor()) {
248+
if (!this->m_diagnostic_file.empty() && amrex::ParallelDescriptor::IOProcessor() &&
249+
a_step%this->m_diagnostic_interval==0) {
248250
std::ofstream diagnostic_file{this->m_diagnostic_file, std::ofstream::out | std::ofstream::app};
249251
diagnostic_file << std::setprecision(14);
250252
diagnostic_file << a_step;

0 commit comments

Comments
 (0)