13 #include "Teuchos_StandardCatchMacros.hpp"
216 int main(
int argc,
char *argv[])
219 bool success =
false;
228 double epsilon = 1.0e-1;
233 xDot_n[1] = -2.0/epsilon;
236 double finalTime = 2.0;
237 int nTimeSteps = 2001;
238 const double constDT = finalTime/(nTimeSteps-1);
241 cout << n <<
" " << time <<
" " << x_n[0] <<
" " << x_n[1] << endl;
242 while (passed && time < finalTime && n < nTimeSteps) {
255 xDot_n[1] = ((1.0 - x_n[0]*x_n[0])*x_n[1] - x_n[0])/epsilon;
258 x_np1[0] = x_n[0] + dt*xDot_n[0];
259 x_np1[1] = x_n[1] + dt*xDot_n[1];
262 if ( std::isnan(x_n[0]) || std::isnan(x_n[1]) ) {
273 cout << n <<
" " << time <<
" " << x_n[0] <<
" " << x_n[1] << endl;
279 x_regress[0] = -1.59496108218721311;
280 x_regress[1] = 0.96359412806611255;
281 double x_L2norm_error = 0.0;
282 double x_L2norm_regress = 0.0;
283 for (
int i=0; i < 2; i++) {
284 x_L2norm_error += (x_n[i]-x_regress[i])*(x_n[i]-x_regress[i]);
285 x_L2norm_regress += x_regress[1]*x_regress[1];
287 x_L2norm_error = sqrt(x_L2norm_error );
288 x_L2norm_regress = sqrt(x_L2norm_regress);
289 cout <<
"Relative L2 Norm of the error (regression) = "
290 << x_L2norm_error/x_L2norm_regress << endl;
291 if ( x_L2norm_error > 1.0e-08*x_L2norm_regress) {
293 cout <<
"FAILED regression constraint!" << endl;
297 x_best[0] = -1.58184083624543947;
298 x_best[1] = 0.97844890081968072;
299 x_L2norm_error = 0.0;
300 double x_L2norm_best = 0.0;
301 for (
int i=0; i < 2; i++) {
302 x_L2norm_error += (x_n[i]-x_best[i])*(x_n[i]-x_best[i]);
303 x_L2norm_best += x_best[1]*x_best[1];
305 x_L2norm_error = sqrt(x_L2norm_error);
306 x_L2norm_best = sqrt(x_L2norm_best );
307 cout <<
"Relative L2 Norm of the error (best) = "
308 << x_L2norm_error/x_L2norm_best << endl;
309 if ( x_L2norm_error > 0.02*x_L2norm_best) {
311 cout <<
"FAILED best constraint!" << endl;
313 if (passed) success =
true;
318 cout <<
"\nEnd Result: Test Passed!" << std::endl;
320 return ( success ? EXIT_SUCCESS : EXIT_FAILURE );
int main(int argc, char *argv[])
#define TEUCHOS_STANDARD_CATCH_STATEMENTS(VERBOSE, ERR_STREAM, SUCCESS_FLAG)