From a1d3329593b93deeac66c36e1fc75da831012d65 Mon Sep 17 00:00:00 2001 From: Wolfgang Bangerth Date: Tue, 7 Apr 1998 16:58:12 +0000 Subject: [PATCH] Perfectionize the example. git-svn-id: https://svn.dealii.org/trunk@157 0785d39b-7218-0410-832d-ea1e28bc413d --- .../deal.II/Attic/examples/poisson/problem.cc | 41 +++++++++++++------ tests/big-tests/poisson/problem.cc | 41 +++++++++++++------ 2 files changed, 58 insertions(+), 24 deletions(-) diff --git a/deal.II/deal.II/Attic/examples/poisson/problem.cc b/deal.II/deal.II/Attic/examples/poisson/problem.cc index 917884bae5..6bf93f118f 100644 --- a/deal.II/deal.II/Attic/examples/poisson/problem.cc +++ b/deal.II/deal.II/Attic/examples/poisson/problem.cc @@ -466,28 +466,45 @@ void PoissonProblem::run (ParameterHandler &prm) { cout << " Writing to file <" << prm.get("Output file") << ">..." << endl; - - cout << " Calculation L2 error... "; + Solution sol; - vector difference; - QGauss3 q; - integrate_difference (sol, difference, q, fe, L2_norm); - double error = 0.; - for (unsigned int i=0; i q; + + cout << " Calculating L1 error... "; + integrate_difference (sol, l1_error_per_cell, q, fe, L1_norm); + cout << l1_error_per_cell.l1_norm() << endl; + + cout << " Calculating L2 error... "; + integrate_difference (sol, l2_error_per_cell, q, fe, L2_norm); + cout << l2_error_per_cell.l2_norm() << endl; - dVector error_per_dof; - dof->distribute_cell_to_dof_vector (difference, error_per_dof); + cout << " Calculating L-infinity error... "; + integrate_difference (sol, linfty_error_per_cell, q, fe, Linfty_norm); + cout << linfty_error_per_cell.linfty_norm() << endl; + + dVector l1_error_per_dof, l2_error_per_dof, linfty_error_per_dof; + dof->distribute_cell_to_dof_vector (l1_error_per_cell, l1_error_per_dof); + dof->distribute_cell_to_dof_vector (l2_error_per_cell, l2_error_per_dof); + dof->distribute_cell_to_dof_vector (linfty_error_per_cell, linfty_error_per_dof); DataOut out; String o_filename = prm.get ("Output file"); ofstream gnuplot(o_filename); fill_data (out); - out.add_data_vector (error_per_dof, "Error"); + out.add_data_vector (l1_error_per_dof, "L1-Error"); + out.add_data_vector (l2_error_per_dof, "L2-Error"); + out.add_data_vector (linfty_error_per_dof, "L3-Error"); out.write_gnuplot (gnuplot); gnuplot.close (); + cout << "Errors: " + << dof->n_dofs() << " " + << l1_error_per_cell.l1_norm() << " " + << l2_error_per_cell.l2_norm() << " " + << linfty_error_per_cell.linfty_norm() << endl; + + cout << endl; }; diff --git a/tests/big-tests/poisson/problem.cc b/tests/big-tests/poisson/problem.cc index 917884bae5..6bf93f118f 100644 --- a/tests/big-tests/poisson/problem.cc +++ b/tests/big-tests/poisson/problem.cc @@ -466,28 +466,45 @@ void PoissonProblem::run (ParameterHandler &prm) { cout << " Writing to file <" << prm.get("Output file") << ">..." << endl; - - cout << " Calculation L2 error... "; + Solution sol; - vector difference; - QGauss3 q; - integrate_difference (sol, difference, q, fe, L2_norm); - double error = 0.; - for (unsigned int i=0; i q; + + cout << " Calculating L1 error... "; + integrate_difference (sol, l1_error_per_cell, q, fe, L1_norm); + cout << l1_error_per_cell.l1_norm() << endl; + + cout << " Calculating L2 error... "; + integrate_difference (sol, l2_error_per_cell, q, fe, L2_norm); + cout << l2_error_per_cell.l2_norm() << endl; - dVector error_per_dof; - dof->distribute_cell_to_dof_vector (difference, error_per_dof); + cout << " Calculating L-infinity error... "; + integrate_difference (sol, linfty_error_per_cell, q, fe, Linfty_norm); + cout << linfty_error_per_cell.linfty_norm() << endl; + + dVector l1_error_per_dof, l2_error_per_dof, linfty_error_per_dof; + dof->distribute_cell_to_dof_vector (l1_error_per_cell, l1_error_per_dof); + dof->distribute_cell_to_dof_vector (l2_error_per_cell, l2_error_per_dof); + dof->distribute_cell_to_dof_vector (linfty_error_per_cell, linfty_error_per_dof); DataOut out; String o_filename = prm.get ("Output file"); ofstream gnuplot(o_filename); fill_data (out); - out.add_data_vector (error_per_dof, "Error"); + out.add_data_vector (l1_error_per_dof, "L1-Error"); + out.add_data_vector (l2_error_per_dof, "L2-Error"); + out.add_data_vector (linfty_error_per_dof, "L3-Error"); out.write_gnuplot (gnuplot); gnuplot.close (); + cout << "Errors: " + << dof->n_dofs() << " " + << l1_error_per_cell.l1_norm() << " " + << l2_error_per_cell.l2_norm() << " " + << linfty_error_per_cell.linfty_norm() << endl; + + cout << endl; }; -- 2.39.5