Skip to content

Commit 8a2226e

Browse files
added diagnostic_interval int for nonlinear solver diagnostic.
1 parent 9bfc3d3 commit 8a2226e

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
@@ -243,6 +243,7 @@ void NewtonSolver<Vec,Ops>::ParseParameters ()
243243
pp_newton.query("max_iterations", m_maxits);
244244
pp_newton.query("require_convergence", m_require_convergence);
245245
pp_newton.query("diagnostic_file", this->m_diagnostic_file);
246+
pp_newton.query("diagnostic_interval", this->m_diagnostic_interval);
246247

247248
const amrex::ParmParse pp_gmres("gmres");
248249
pp_gmres.query("verbose_int", m_gmres_verbose_int);
@@ -356,7 +357,8 @@ void NewtonSolver<Vec,Ops>::Solve ( Vec& a_U,
356357
}
357358
}
358359

359-
if (!this->m_diagnostic_file.empty() && amrex::ParallelDescriptor::IOProcessor()) {
360+
if (!this->m_diagnostic_file.empty() && amrex::ParallelDescriptor::IOProcessor() &&
361+
a_step%this->m_diagnostic_interval==0) {
360362
std::ofstream diagnostic_file{this->m_diagnostic_file, std::ofstream::out | std::ofstream::app};
361363
diagnostic_file << std::setprecision(14);
362364
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
@@ -154,6 +154,7 @@ void PicardSolver<Vec,Ops>::ParseParameters ()
154154
pp_picard.query("max_iterations", m_maxits);
155155
pp_picard.query("require_convergence", m_require_convergence);
156156
pp_picard.query("diagnostic_file", this->m_diagnostic_file);
157+
pp_picard.query("diagnostic_interval", this->m_diagnostic_interval);
157158
}
158159

159160
template <class Vec, class Ops>
@@ -242,7 +243,8 @@ void PicardSolver<Vec,Ops>::Solve ( Vec& a_U,
242243
}
243244
}
244245

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

0 commit comments

Comments
 (0)