From 9532315824880b8dad99b974be55f760486f25c2 Mon Sep 17 00:00:00 2001 From: Wolfgang Bangerth Date: Mon, 25 May 1998 14:37:35 +0000 Subject: [PATCH] Doc update and add function for the assemblage of a right hand side, git-svn-id: https://svn.dealii.org/trunk@351 0785d39b-7218-0410-832d-ea1e28bc413d --- deal.II/deal.II/include/numerics/vectors.h | 28 +++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/deal.II/deal.II/include/numerics/vectors.h b/deal.II/deal.II/include/numerics/vectors.h index 33b4746180..d1012878a9 100644 --- a/deal.II/deal.II/include/numerics/vectors.h +++ b/deal.II/deal.II/include/numerics/vectors.h @@ -95,8 +95,11 @@ enum NormType { * called with a map of boundary functions in which all boundary indicators * from zero to 254 (255 is used for other purposes, see the #Triangulation# * class documentation) point to the function to be projected. The projection - * to the boundary takes place using a second quadrature formula given to - * the #project# function. + * to the boundary takes place using a second quadrature formula on the + * boundary given to the #project# function. The first quadrature formula is + * used to compute the right hand side, while the global projection is done by + * exact integration of the mass matrix instead of evaluating it by a quadrature + * formula. This is faster in this case and more accurate. * * The projection of the boundary values first, then eliminating them from * the global system of equations is not needed usually. It may be necessary @@ -133,6 +136,12 @@ enum NormType { * too efficient, but sufficient in many cases and simple to implement. This * detail may change in the future. * + * \item Creation of right hand side vectors: + * The #create_right_hand_side# function computes the vector + * $f_i = \int_\Omega f(x) \phi_i(x) dx$. This is the same as what the + * #MatrixCreator::create_*# functions which take a right hand side do, + * but without assembling a matrix. + * * \item Interpolation of boundary values: * The #MatrixTools::apply_boundary_values# function takes a list * of boundary nodes and their values. You can get such a list by interpolation @@ -285,14 +294,27 @@ class VectorTools { static void project (const DoFHandler &dof, const ConstraintMatrix &constraints, const FiniteElement &fe, - const Quadrature &q, const Boundary &boundary, + const Quadrature &q, const Function &function, dVector &vec, const bool enforce_zero_boundary = false, const Quadrature &q_boundary = QGauss2(), const bool project_to_boundary_first = false); + /** + * Create a right hand side vector. + * + * See the general documentation of this + * class for further information. + */ + static void create_right_hand_side (const DoFHandler &dof, + const FiniteElement &fe, + const Quadrature &q, + const Boundary &boundary, + const Function &rhs, + dVector &rhs_vector); + /** * Make up the list of node subject * to Dirichlet boundary conditions -- 2.39.5