[cig-commits] commit: Add a stopping criterion
Mercurial
hg at geodynamics.org
Fri Feb 10 16:00:06 PST 2012
changeset: 8:e97eff318ea1
user: Walter Landry <wlandry at caltech.edu>
date: Thu Aug 04 07:08:18 2011 -0700
files: main.cxx
description:
Add a stopping criterion
diff -r aa1b9fba90b4 -r e97eff318ea1 main.cxx
--- a/main.cxx Thu Aug 04 06:54:40 2011 -0700
+++ b/main.cxx Thu Aug 04 07:08:18 2011 -0700
@@ -29,6 +29,7 @@ int main()
const double pi(atan(1.0)*4);
const double theta_mom=1.0;
const double theta_c=1.0;
+ const double tolerance=1.0e-6;
Model model(Model::solKz);
@@ -127,6 +128,7 @@ int main()
/* Smoothing sweeps */
+ double max_x_previous(0), max_y_previous(0), max_p_previous(0);
for(int sweep=0;sweep<n_sweeps;++sweep)
{
@@ -410,6 +412,22 @@ int main()
<< max_p << " "
<< "\n";
+ if(fabs(max_x-max_x_previous)/max_x < tolerance
+ && fabs(max_y-max_y_previous)/max_y < tolerance
+ && fabs(max_p-max_p_previous)/max_p < tolerance)
+ {
+ std::cout << "Solved "
+ << sweep << " "
+ << tolerance << " "
+ << fabs(max_x-max_x_previous)/max_x << " "
+ << fabs(max_y-max_y_previous)/max_y << " "
+ << fabs(max_p-max_p_previous)/max_p << " "
+ << "\n";
+ break;
+ }
+ max_x_previous=max_x;
+ max_y_previous=max_y;
+ max_p_previous=max_p;
}
{
More information about the CIG-COMMITS
mailing list