From db275162a15806919256253c94171caaa6160d5a Mon Sep 17 00:00:00 2001 From: Wolfgang Bangerth Date: Thu, 2 Apr 1998 13:36:22 +0000 Subject: [PATCH] Mirror changes in ProblemBase. git-svn-id: https://svn.dealii.org/trunk@120 0785d39b-7218-0410-832d-ea1e28bc413d --- .../deal.II/Attic/examples/poisson/poisson.cc | 30 +++++++++++-------- tests/big-tests/poisson/poisson.cc | 30 +++++++++++-------- 2 files changed, 34 insertions(+), 26 deletions(-) diff --git a/deal.II/deal.II/Attic/examples/poisson/poisson.cc b/deal.II/deal.II/Attic/examples/poisson/poisson.cc index ce07669646..a9987b15b3 100644 --- a/deal.II/deal.II/Attic/examples/poisson/poisson.cc +++ b/deal.II/deal.II/Attic/examples/poisson/poisson.cc @@ -48,6 +48,7 @@ class PoissonEquation : public Equation { template inline double PoissonEquation::right_hand_side (const Point &p) const { + const double pi = 3.1415926536; switch (dim) { case 1: @@ -58,12 +59,14 @@ double PoissonEquation::right_hand_side (const Point &p) const { // return ((1-3.1415926536*3.1415926536) * // cos(3.1415926536*p(0)) * // cos(3.1415926536*p(1))); - return (p(0)*p(0)*p(0)+p(1)*p(1)*p(1) - - 3./2.*(p(0)*p(0)+p(1)*p(1)) - - 6*(p(0)+p(1)) - + 6); -// return 1.; - +// return (p(0)*p(0)*p(0)+p(1)*p(1)*p(1) +// - 3./2.*(p(0)*p(0)+p(1)*p(1)) +// - 6*(p(0)+p(1)) +// + 6); + return (-2.0*cos(pi*p(0)/2)*p(1)*sin(pi*p(1)) + + 2.0*p(0)*sin(pi*p(0)/2)*pi*p(1)*sin(pi*p(1)) + + 5.0/4.0*p(0)*p(0)*cos(pi*p(0)/2)*pi*pi*p(1)*sin(pi*p(1)) - + 2.0*p(0)*p(0)*cos(pi*p(0)/2)*cos(pi*p(1))*pi); default: return 0; }; @@ -101,9 +104,9 @@ void PoissonEquation<2>::assemble (dFMatrix &cell_matrix, { for (unsigned int j=0; j tria; DoFHandler<2> dof(&tria); FELinear<2> fe; - ProblemBase<2> problem(&tria, &dof); + ProblemBase<2> problem; + problem.set_tria_and_dof (&tria, &dof); PoissonEquation<2> equation; QGauss4<2> quadrature; @@ -135,14 +139,14 @@ int main () { // tria.execute_refinement (); // tria.begin_active(2)->set_refine_flag(); // tria.execute_refinement (); - tria.refine_global (3); +// tria.refine_global (5); + -/* const unsigned int dim=2; tria.refine_global (1); Triangulation::active_cell_iterator cell, endc; - for (int i=0; i<8; ++i) + for (int i=0; i<12; ++i) { int n_levels = tria.n_levels(); cell = tria.begin_active(); @@ -162,7 +166,7 @@ int main () { tria.execute_refinement (); }; tria.refine_global (1); -*/ + cout << "Distributing dofs... "; dof.distribute_dofs (fe); diff --git a/tests/big-tests/poisson/poisson.cc b/tests/big-tests/poisson/poisson.cc index ce07669646..a9987b15b3 100644 --- a/tests/big-tests/poisson/poisson.cc +++ b/tests/big-tests/poisson/poisson.cc @@ -48,6 +48,7 @@ class PoissonEquation : public Equation { template inline double PoissonEquation::right_hand_side (const Point &p) const { + const double pi = 3.1415926536; switch (dim) { case 1: @@ -58,12 +59,14 @@ double PoissonEquation::right_hand_side (const Point &p) const { // return ((1-3.1415926536*3.1415926536) * // cos(3.1415926536*p(0)) * // cos(3.1415926536*p(1))); - return (p(0)*p(0)*p(0)+p(1)*p(1)*p(1) - - 3./2.*(p(0)*p(0)+p(1)*p(1)) - - 6*(p(0)+p(1)) - + 6); -// return 1.; - +// return (p(0)*p(0)*p(0)+p(1)*p(1)*p(1) +// - 3./2.*(p(0)*p(0)+p(1)*p(1)) +// - 6*(p(0)+p(1)) +// + 6); + return (-2.0*cos(pi*p(0)/2)*p(1)*sin(pi*p(1)) + + 2.0*p(0)*sin(pi*p(0)/2)*pi*p(1)*sin(pi*p(1)) + + 5.0/4.0*p(0)*p(0)*cos(pi*p(0)/2)*pi*pi*p(1)*sin(pi*p(1)) - + 2.0*p(0)*p(0)*cos(pi*p(0)/2)*cos(pi*p(1))*pi); default: return 0; }; @@ -101,9 +104,9 @@ void PoissonEquation<2>::assemble (dFMatrix &cell_matrix, { for (unsigned int j=0; j tria; DoFHandler<2> dof(&tria); FELinear<2> fe; - ProblemBase<2> problem(&tria, &dof); + ProblemBase<2> problem; + problem.set_tria_and_dof (&tria, &dof); PoissonEquation<2> equation; QGauss4<2> quadrature; @@ -135,14 +139,14 @@ int main () { // tria.execute_refinement (); // tria.begin_active(2)->set_refine_flag(); // tria.execute_refinement (); - tria.refine_global (3); +// tria.refine_global (5); + -/* const unsigned int dim=2; tria.refine_global (1); Triangulation::active_cell_iterator cell, endc; - for (int i=0; i<8; ++i) + for (int i=0; i<12; ++i) { int n_levels = tria.n_levels(); cell = tria.begin_active(); @@ -162,7 +166,7 @@ int main () { tria.execute_refinement (); }; tria.refine_global (1); -*/ + cout << "Distributing dofs... "; dof.distribute_dofs (fe); -- 2.39.5