* the present library).
*
* Both these assumptions are used when interpolation of a continuous
- * function to the finite element space is applied. At present, only two
+ * function to the finite element space is applied. At present, only few
* places where this is used in the library come to mind to the author,
* namely the treating of boundary values in the #ProblemBase# class and
* the interpolation in the #VectorCreator# collection. You should also
* made if you want to use elements of other classes. A hint may be the
* use of the #get_ansatz_points# and #get_face_ansatz_points# functions
* of this class.
+ *
+ * \item Vanishing of basis functions on faces: when projecting a function
+ * to the boundary, use if made of the assumption that all basis functions
+ * on a cell adjacent to the boundary vanish on the boundary except for those
+ * on the boundary face itself. For Lagrange elements this is true, but it
+ * may or may not be true in other cases.
+ *
+ * This assumption is used in the #VectorTools::project_boundary_values#,
+ * #MatrixCreator::create_boundary_mass_matrix#,
+ * #DoFHandler::make_boundary_sparsity_pattern#,
+ * #DoFHandler::map_dof_to_boundary_indices# and may be a few other places.
+ * The places in the #DoFHandler# class are probably not that dangerous,
+ * since wrong results will most likely lead to internal errors through
+ * the #Assert# mechanism, but the first places will lead to undiscovered
+ * errors if not thought of properly.
* \end{itemize}
*
* @author Wolfgang Bangerth, 1998
#include <base/exceptions.h>
#include <map>
-#include <set>
template <int dim> class Triangulation;
template <int dim> class DoFHandler;
const Function<dim> &rhs,
dVector &rhs_vector,
const Function<dim> *a = 0);
+
+ /**
+ * Exception
+ */
+ DeclException0 (ExcNotImplemented);
+ /**
+ * Exception
+ */
+ DeclException0 (ExcInternalError);
};
dSMatrix &matrix,
dVector &solution,
dVector &right_hand_side);
-
- /**
- * Exception
- */
- DeclException0 (ExcNotImplemented);
};
* Within this function, boundary values are interpolated, i.e. a node is given
* the point value of the boundary function. In some cases, it may be necessary
* to use the L2-projection of the boundary function or any other method. For
- * this purpose other functions refer to the #VectorTools::project_boundary_values#
+ * this purpose to the #VectorTools::project_boundary_values#
* function below.
*
* You should be aware that the boundary function may be evaluated at nodes
* to Dirichlet boundary conditions
* and the values they are to be
* assigned, by interpolation around
- * the boundary.
+ * the boundary. If the
+ * #boundary_values# contained values
+ * before, the new ones are added, or
+ * the old one overwritten if a node
+ * of the boundary part to be prjected
+ * on already was in the variable.
*
* See the general doc for more
* information.
/**
* Project #function# to the boundary
* of the domain, using the given quadrature
- * formula for the faces.
+ * formula for the faces. If the
+ * #boundary_values# contained values
+ * before, the new ones are added, or
+ * the old one overwritten if a node
+ * of the boundary part to be prjected
+ * on already was in the variable.
*
* See the general documentation of this
* class for further information.