From 87d5110a1be5e650b102299ceaea0e9a10847262 Mon Sep 17 00:00:00 2001 From: pauletti Date: Mon, 20 Dec 2010 01:14:59 +0000 Subject: [PATCH] Added a curve test to step 38 git-svn-id: https://svn.dealii.org/trunk@23013 0785d39b-7218-0410-832d-ea1e28bc413d --- .../step-38/doc/step-38.solution-2d.png | Bin 0 -> 7521 bytes ...8.solution.png => step-38.solution-3d.png} | Bin deal.II/examples/step-38/step-38.cc | 52 +++++++++++++++--- 3 files changed, 44 insertions(+), 8 deletions(-) create mode 100644 deal.II/examples/step-38/doc/step-38.solution-2d.png rename deal.II/examples/step-38/doc/{step-38.solution.png => step-38.solution-3d.png} (100%) diff --git a/deal.II/examples/step-38/doc/step-38.solution-2d.png b/deal.II/examples/step-38/doc/step-38.solution-2d.png new file mode 100644 index 0000000000000000000000000000000000000000..732fcac38cd42223e6fa95af4f341f59c977dabc GIT binary patch literal 7521 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 K$U const unsigned int component = 0) const; }; - + + +template <> +double +Solution<2>::value (const Point<2> &p, + const unsigned int) const +{ + return ( -2. * p(0) * p(1) ); +} + + +template <> +Tensor<1,2> +Solution<2>::gradient (const Point<2> &p, + const unsigned int) const +{ + + Tensor<1,2> return_value; + return_value[0] = -2. * p(1) * (1 - 2. * p(0) * p(0)); + return_value[1] = -2. * p(0) * (1 - 2. * p(1) * p(1)); + + return return_value; +} + + template <> double Solution<3>::value (const Point<3> &p, @@ -179,7 +203,13 @@ RightHandSide<3>::value (const Point<3> &p, } - +template <> +double +RightHandSide<2>::value (const Point<2> &p, + const unsigned int comp) const +{ + return ( -8. * p(0) * p(1) ); +} template @@ -294,11 +324,9 @@ void LaplaceBeltramiProblem::assemble_system () std::map boundary_values; - VectorTools::interpolate_boundary_values (mapping, - dof_handler, - 0, - Solution(), + VectorTools::interpolate_boundary_values (mapping,dof_handler,0,Solution(), boundary_values); + MatrixTools::apply_boundary_values (boundary_values, system_matrix, solution, @@ -331,7 +359,9 @@ void LaplaceBeltramiProblem::output_results () const data_out.build_patches (mapping, mapping.get_degree()); - std::ofstream output ("solution.vtk"); + std::string filename ("solution-"); + filename += ('0'+spacedim);filename += "d.vtk"; + std::ofstream output (filename.c_str()); data_out.write_vtk (output); } @@ -369,8 +399,14 @@ void LaplaceBeltramiProblem::run () int main ( int argc, char **argv ) { deallog.depth_console (0); + + { + LaplaceBeltramiProblem<3> laplace_beltrami_3d; + laplace_beltrami_3d.run(); + } + { - LaplaceBeltramiProblem<3> laplace_beltrami_2d; + LaplaceBeltramiProblem<2> laplace_beltrami_2d; laplace_beltrami_2d.run(); } -- 2.39.5