From c0348f33eddd69947ef30d8f1c26674e11df1d7e Mon Sep 17 00:00:00 2001 From: bangerth Date: Thu, 8 Feb 2007 20:20:05 +0000 Subject: [PATCH] Clarify a comment. git-svn-id: https://svn.dealii.org/trunk@14424 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/examples/step-3/doc/results.dox | 57 +++++++++++++------------ 1 file changed, 30 insertions(+), 27 deletions(-) diff --git a/deal.II/examples/step-3/doc/results.dox b/deal.II/examples/step-3/doc/results.dox index 19f31c400b..db822b3212 100644 --- a/deal.II/examples/step-3/doc/results.dox +++ b/deal.II/examples/step-3/doc/results.dox @@ -94,34 +94,37 @@ suggestions: to describe your particular boundary values. -
  • - Modify the type of boundary condition: Presently, what happens is that we use - Dirichlet boundary values all around, since the default is that all boundary - parts have boundary indicator zero, and then we tell the - VectorTools::interpolate_boundary_values function to interpolate - boundary values to zero on all boundary components with indicator zero. -

    - We can change this behavior if we assign parts of the boundary different - indicators. For example, try this immediately after calling - GridGenerator::hyper_cube: +

  • Modify the type of boundary condition: Presently, what happens + is that we use Dirichlet boundary values all around, since the + default is that all boundary parts have boundary indicator zero, and + then we tell the + VectorTools::interpolate_boundary_values function to + interpolate boundary values to zero on all boundary components with + indicator zero.

    We can change this behavior if we assign parts + of the boundary different indicators. For example, try this + immediately after calling GridGenerator::hyper_cube:

    -    triangulation.begin_active()->face(0)->set_boundary_indicator(1);
    -  
    - What this does is it first asks the triangulation to return an iterator that - points to the first active cell. Of course, this being the coarse mesh for - the triangulation of a square, the triangulation has only a single cell at - this moment, and it is active. Next, we ask the cell to return an iterator to - its first face, and then we ask the face to reset the boundary indicator of - that face to 1. What then follows is this: When the mesh is refined, faces of - child cells inherit the boundary indicator of their parents, i.e. even on the - finest mesh, the faces on one side of the square have boundary indicator - 1. Later, when we get to interpolating boundary conditions, the - interpolate_boundary_values will only produce boundary values - for those faces that have zero boundary indicator, and leave those faces - alone that have a different boundary indicator. Keeping with the theory of - the Laplace equation, this will then lead to homogenous Neumann conditions on - this side, i.e. a zero normal derivative of the solution. You will see this - if you run the program. + triangulation.begin_active()->face(0)->set_boundary_indicator(1); + What this does is it first asks the triangulation to + return an iterator that points to the first active cell. Of course, + this being the coarse mesh for the triangulation of a square, the + triangulation has only a single cell at this moment, and it is + active. Next, we ask the cell to return an iterator to its first + face, and then we ask the face to reset the boundary indicator of + that face to 1. What then follows is this: When the mesh is refined, + faces of child cells inherit the boundary indicator of their + parents, i.e. even on the finest mesh, the faces on one side of the + square have boundary indicator 1. Later, when we get to + interpolating boundary conditions, the + interpolate_boundary_values will only produce boundary + values for those faces that have zero boundary indicator, and leave + those faces alone that have a different boundary indicator. What + this then does is to impose Dirichlet boundary conditions on the + former, and homogenous Neumann conditions on the latter (i.e. zero + normal derivative of the solution, unless one adds additional terms + to the right hand side of the variational equality that deal with + potentially non-zero Neumann conditions). You will see this if you + run the program.
  • A slight variation of the last point would be to set different boundary -- 2.39.5