From: bangerth Date: Mon, 24 Jul 2006 15:04:45 +0000 (+0000) Subject: Add documentation X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1770a719d2df0c131589762cb35d6b498594664b;p=dealii-svn.git Add documentation git-svn-id: https://svn.dealii.org/trunk@13424 0785d39b-7218-0410-832d-ea1e28bc413d --- diff --git a/deal.II/deal.II/include/dofs/dof_constraints.h b/deal.II/deal.II/include/dofs/dof_constraints.h index 8597932fce..d6e4fc1ea6 100644 --- a/deal.II/deal.II/include/dofs/dof_constraints.h +++ b/deal.II/deal.II/include/dofs/dof_constraints.h @@ -2,7 +2,7 @@ // $Id$ // Version: $Name$ // -// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005 by the deal.II authors +// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 by the deal.II authors // // This file is subject to QPL and may not be distributed // without copyright and license information. Please refer @@ -34,24 +34,26 @@ class BlockIndices; /** * This class implements linear homogeneous constraints on degrees of - * freedom. In particular, it handles constraints of the form - * $x_{i_1} = \sum_{j=2}^M a_{i_j} x_{i_j}$. Each "line" in objects of this - * class corresponds to one such constraint, with the number of the - * line being $i1$, and the entries in this line being pairs - * $(i_j,a_{i_j})$. Note that the constraints are linear in the $x_i$, - * and that there is not constant (non-homogeneous) term in the - * constraint. However, this is exactly the form we need for hanging - * node and certain other constraints, where we need to constrain one - * degree of freedom in terms of others. The name of the class stems - * from the fact that these constraints can be represented in matrix - * form as $X x = 0$, and this object then describes the matrix $X$. + * freedom. In particular, it handles constraints of the form $x_{i_1} = + * \sum_{j=2}^M a_{i_j} x_{i_j}$. Each "line" in objects of this class + * corresponds to one such constraint, with the number of the line being $i1$, + * and the entries in this line being pairs $(i_j,a_{i_j})$. Note that the + * constraints are linear in the $x_i$, and that there is not constant + * (non-homogeneous) term in the constraint. However, this is exactly the form + * we need for hanging node and certain other constraints, where we need to + * constrain one degree of freedom in terms of others. The name of the class + * stems from the fact that these constraints can be represented in matrix + * form as $X x = 0$, and this object then describes the matrix $X$. The most + * frequent way to create/fill objects of this type is using the + * DoFTools::make_hanging_node_constraints() function. The use of these + * objects is first explained in @ref step_6 "step-6". * - * The matrix is organized in lines (rows), but only those lines are stored - * where constraints are present. New constraints are added by adding new - * lines using the add_line() function, and then populating it using the - * add_entry() function to a given line, or add_entries() to add more - * than one entry at a time. After all constraints have been added, you need - * to call close(), which compresses the storage format and sorts the + * Matrices of the present type are organized in lines (rows), but only those + * lines are stored where constraints are present. New constraints are added + * by adding new lines using the add_line() function, and then populating it + * using the add_entry() function to a given line, or add_entries() to add + * more than one entry at a time. After all constraints have been added, you + * need to call close(), which compresses the storage format and sorts the * entries. * * Constraint matrices are used to handle hanging nodes and other constrained diff --git a/deal.II/deal.II/include/dofs/dof_tools.h b/deal.II/deal.II/include/dofs/dof_tools.h index 6de8092e5c..45a0f8386e 100644 --- a/deal.II/deal.II/include/dofs/dof_tools.h +++ b/deal.II/deal.II/include/dofs/dof_tools.h @@ -694,9 +694,25 @@ class DoFTools */ /** - * Compute the constraints - * resulting from the presence of - * hanging nodes. The object into + * Compute the constraints resulting from + * the presence of hanging nodes. Hanging + * nodes are best explained using a small + * picture: + * + * @image html hanging_nodes.png + * + * In order to make a finite element + * function globally continuous, we have + * to make sure that the dark red nodes + * have values that are compatible with + * the adjacent yellow nodes, so that the + * function has no jump when coming from + * the small cells to the large one at + * the top right. We therefore have to + * add conditions that constrain those + * "hanging nodes". + * + * The object into * which these are inserted is * later used to condense the * global system matrix and right