From: Wolfgang Bangerth Date: Fri, 24 Feb 2023 01:34:10 +0000 (-0700) Subject: Link to the glossary entry for 'mass matrix'. X-Git-Tag: v9.5.0-rc1~527^2~1 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=b36988d2aa3db10946edbaee499fc4bc6f582fb0;p=dealii.git Link to the glossary entry for 'mass matrix'. --- diff --git a/doc/doxygen/headers/glossary.h b/doc/doxygen/headers/glossary.h index 3d1c332a91..7e57dfc1b9 100644 --- a/doc/doxygen/headers/glossary.h +++ b/doc/doxygen/headers/glossary.h @@ -77,7 +77,7 @@ \end{array}\right), * @f} * where $U,P$ are the values of velocity and pressure degrees of freedom, - * respectively, $M$ is the mass matrix on the velocity space, $B$ corresponds to + * respectively, $M$ is the @ref GlossMassMatrix "mass matrix" on the velocity space, $B$ corresponds to * the negative divergence operator, and $B^T$ is its transpose and corresponds * to the negative gradient. * diff --git a/doc/doxygen/headers/vector_valued.h b/doc/doxygen/headers/vector_valued.h index 4231f86051..fd1ad5a735 100644 --- a/doc/doxygen/headers/vector_valued.h +++ b/doc/doxygen/headers/vector_valued.h @@ -801,7 +801,7 @@ \begin{array}{cc} M & B \\ B^T & 0 \end{array} \right), @f} - * where $M$ represents the mass matrix that results from discretizing the + * where $M$ represents the @ref GlossMassMatrix "mass matrix" that results from discretizing the * identity operator $\mathbf 1$ and $B$ the equivalent of the gradient * operator. * diff --git a/examples/step-11/step-11.cc b/examples/step-11/step-11.cc index 1a36795923..8e7df42e14 100644 --- a/examples/step-11/step-11.cc +++ b/examples/step-11/step-11.cc @@ -266,7 +266,7 @@ namespace Step11 // That's quite simple, right? // // Two remarks are in order, though: First, these functions are used in a - // lot of contexts. Maybe you want to create a Laplace or mass matrix for + // lot of contexts. Maybe you want to create a Laplace or @ref GlossMassMatrix "mass matrix" for // a vector values finite element; or you want to use the default Q1 // mapping; or you want to assembled the matrix with a coefficient in the // Laplace operator. For this reason, there are quite a large number of diff --git a/examples/step-20/doc/intro.dox b/examples/step-20/doc/intro.dox index 246eb87f69..de94225f50 100644 --- a/examples/step-20/doc/intro.dox +++ b/examples/step-20/doc/intro.dox @@ -476,7 +476,7 @@ then we can subdivide the linear system $Ax=b$ into the following blocks: \end{array}\right), @f} where $U,P$ are the values of velocity and pressure degrees of freedom, -respectively, $M$ is the mass matrix on the velocity space, $B^T$ corresponds to +respectively, $M$ is the @ref GlossMassMatrix "mass matrix" on the velocity space, $B^T$ corresponds to the negative divergence operator, and $B$ is its transpose and corresponds to the gradient. diff --git a/examples/step-20/step-20.cc b/examples/step-20/step-20.cc index d127d7acda..8104071667 100644 --- a/examples/step-20/step-20.cc +++ b/examples/step-20/step-20.cc @@ -634,7 +634,7 @@ namespace Step20 // After we have the pressure, we can compute the velocity. The equation // reads $MU=-BP+F$, and we solve it by first computing the right hand // side, and then multiplying it with the object that represents the - // inverse of the mass matrix: + // inverse of the @ref GlossMassMatrix "mass matrix": U = op_M_inv * (F - op_B * P); } diff --git a/examples/step-22/doc/intro.dox b/examples/step-22/doc/intro.dox index a11a1697e2..0fdabb98fc 100644 --- a/examples/step-22/doc/intro.dox +++ b/examples/step-22/doc/intro.dox @@ -448,7 +448,7 @@ elaborate preconditioning scheme for the Schur complement.
  • Second, every time we multiplied with $B^TM^{-1}B$ we had to solve with the -mass matrix $M$. This wasn't particularly difficult, however, since the mass +@ref GlossMassMatrix "mass matrix" $M$. This wasn't particularly difficult, however, since the mass matrix is always well conditioned and so simple to invert using CG and a little bit of preconditioning. @@ -484,7 +484,7 @@ this Schur complement in a straightforward way with the CG method: using no preconditioner, the condition number of the Schur complement matrix depends on the size ratios of the largest to the smallest cells, and one still needs on the order of 50-100 CG iterations. However, there is a simple cure: -precondition with the mass matrix on the pressure space and we get down to a +precondition with the @ref GlossMassMatrix "mass matrix" on the pressure space and we get down to a number between 5-15 CG iterations, pretty much independently of the structure of the mesh (take a look at the results section of this program to see that indeed the number of CG iterations does not change as we diff --git a/examples/step-22/step-22.cc b/examples/step-22/step-22.cc index dc3f2c23ff..aac858b7ac 100644 --- a/examples/step-22/step-22.cc +++ b/examples/step-22/step-22.cc @@ -815,7 +815,7 @@ namespace Step22 SolverCG> cg(solver_control); // Now to the preconditioner to the Schur complement. As explained in - // the introduction, the preconditioning is done by a mass matrix in the + // the introduction, the preconditioning is done by a @ref GlossMassMatrix "mass matrix" in the // pressure variable. // // Actually, the solver needs to have the preconditioner in the form diff --git a/examples/step-23/step-23.cc b/examples/step-23/step-23.cc index 0a77d03890..a0e5c7ce7e 100644 --- a/examples/step-23/step-23.cc +++ b/examples/step-23/step-23.cc @@ -88,7 +88,7 @@ namespace Step23 // Next comes the declaration of the main class. It's public interface of // functions is like in most of the other tutorial programs. Worth // mentioning is that we now have to store four matrices instead of one: the - // mass matrix $M$, the Laplace matrix $A$, the matrix $M+k^2\theta^2A$ used + // @ref GlossMassMatrix "mass matrix" $M$, the Laplace matrix $A$, the matrix $M+k^2\theta^2A$ used // for solving for $U^n$, and a copy of the mass matrix with boundary // conditions applied used for solving for $V^n$. Note that it is a bit // wasteful to have an additional copy of the mass matrix around. We will diff --git a/examples/step-24/step-24.cc b/examples/step-24/step-24.cc index 694169dc9d..b542c24450 100644 --- a/examples/step-24/step-24.cc +++ b/examples/step-24/step-24.cc @@ -95,7 +95,7 @@ namespace Step24 unsigned int timestep_number; const double theta; - // Here's what's new: first, we need that boundary mass matrix $B$ that + // Here's what's new: first, we need that boundary @ref GlossMassMatrix "mass matrix" $B$ that // came out of the absorbing boundary condition. Likewise, since this // time we consider a realistic medium, we must have a measure of the // wave speed $c_0$ that will enter all the formulas with the Laplace diff --git a/examples/step-25/doc/intro.dox b/examples/step-25/doc/intro.dox index 3728cdf7e3..db22da07a2 100644 --- a/examples/step-25/doc/intro.dox +++ b/examples/step-25/doc/intro.dox @@ -166,7 +166,7 @@ Above, the matrix $F_h'(\cdot)$ and the vector $F_h(\cdot)$ denote the discrete \f} Again, note that the first matrix equation above is, in fact, the definition of an iterative procedure, so it is solved multiple times -until a stopping criterion is met. Moreover, $M$ is the mass matrix, +until a stopping criterion is met. Moreover, $M$ is the @ref GlossMassMatrix "mass matrix", i.e. $M_{ij} = \left( \varphi_i,\varphi_j \right)_{\Omega}$, $A$ is the Laplace matrix, i.e. $A_{ij} = \left( \nabla \varphi_i, \nabla \varphi_j \right)_{\Omega}$, $S$ is the nonlinear term in the diff --git a/examples/step-26/doc/intro.dox b/examples/step-26/doc/intro.dox index 84f6b5ce16..1a44f628f4 100644 --- a/examples/step-26/doc/intro.dox +++ b/examples/step-26/doc/intro.dox @@ -75,7 +75,7 @@ $k_n$: \theta F^n \right], @f} -where $M$ is the mass matrix and $A$ is the stiffness matrix that results from +where $M$ is the @ref GlossMassMatrix "mass matrix" and $A$ is the stiffness matrix that results from discretizing the Laplacian. Bringing all known quantities to the right hand side yields the linear system we have to solve in every step: @f{align*} diff --git a/examples/step-26/doc/results.dox b/examples/step-26/doc/results.dox index 9a828d8d37..db8010651f 100644 --- a/examples/step-26/doc/results.dox +++ b/examples/step-26/doc/results.dox @@ -182,7 +182,7 @@ translated it to the following ones: & \theta k \left| a_{ij} \right| &\geq m_{ij},\qquad j \neq i, @f} -where $M = m_{ij}$ denotes the mass matrix and $A = a_{ij}$ the stiffness +where $M = m_{ij}$ denotes the @ref GlossMassMatrix "mass matrix" and $A = a_{ij}$ the stiffness matrix with $a_{ij} \leq 0$ for $j \neq i$, respectively. With $a_{ij} \leq 0$, we can formulate bounds for the global time step $k$ as follows: diff --git a/examples/step-28/doc/intro.dox b/examples/step-28/doc/intro.dox index b2370b688b..7745ee3d6b 100644 --- a/examples/step-28/doc/intro.dox +++ b/examples/step-28/doc/intro.dox @@ -469,7 +469,7 @@ these three cases, as follows: = (B_c M_{K_c})^{ij} \phi_{g'}^j, @f} where $M_{K_c}^{lj}=\int_{K_c} f(x) \varphi_{g'}^l(x) \varphi_{g'}^j(x)$ is - the weighted mass matrix on child $c$ of cell $K$. + the weighted @ref GlossMassMatrix "mass matrix" on child $c$ of cell $K$. The next question is what happens if a child $K_c$ of $K$ is not active. Then, we have to apply the process recursively, i.e. we have to diff --git a/examples/step-28/step-28.cc b/examples/step-28/step-28.cc index bf352854ba..290712b5b3 100644 --- a/examples/step-28/step-28.cc +++ b/examples/step-28/step-28.cc @@ -842,7 +842,7 @@ namespace Step28 { // The first case is that both cells are no further refined. In that case, // we can assemble the relevant terms (see the introduction). This - // involves assembling the mass matrix on the finer of the two cells (in + // involves assembling the @ref GlossMassMatrix "mass matrix" on the finer of the two cells (in // fact there are two mass matrices with different coefficients, one for // the fission distribution cross section $\chi_g\nu\Sigma_{f,g'}$ and one // for the scattering cross section $\Sigma_{s,g'\to g}$). This is diff --git a/examples/step-31/doc/intro.dox b/examples/step-31/doc/intro.dox index 18e4c0281a..00b0074492 100644 --- a/examples/step-31/doc/intro.dox +++ b/examples/step-31/doc/intro.dox @@ -549,7 +549,7 @@ this yields for the simpler case of uniform time steps of size $k$: On the left side of this equation remains the term from the time derivative and the original (physical) diffusion which we treat implicitly (this is actually a nice term: the matrices that result -from the left hand side are the mass matrix and a multiple of the +from the left hand side are the @ref GlossMassMatrix "mass matrix" and a multiple of the Laplace matrix — both are positive definite and if the time step size $k$ is small, the sum is simple to invert). On the right hand side, the terms in the first line result from the time derivative; in @@ -710,7 +710,7 @@ S^{-1}$ by a CG solver applied to the mass matrix on the pressure space was a good choice. In a small deviation from step-22, we here have a coefficient $\eta$ in the momentum equation, and by the same derivation as there we should arrive at the conclusion that it is the weighted -mass matrix with entries $\tilde S_{ij}=(\eta^{-1}\varphi_i,\varphi_j)$ that +@ref GlossMassMatrix "mass matrix" with entries $\tilde S_{ij}=(\eta^{-1}\varphi_i,\varphi_j)$ that we should be using. It was more complicated to come up with a good replacement $\tilde diff --git a/examples/step-32/doc/intro.dox b/examples/step-32/doc/intro.dox index 6267d03ce5..598378f451 100644 --- a/examples/step-32/doc/intro.dox +++ b/examples/step-32/doc/intro.dox @@ -323,7 +323,7 @@ system matrix $M$ in block form such that the product matrix is of a form that Krylov-based iterative solvers like GMRES can solve in a few iterations. We then replaced the exact inverse of $A$ by the action of an AMG preconditioner $\tilde{A}$ based on a vector Laplace matrix, -approximated the Schur complement $S = B A^{-1} B^T$ by a mass matrix $M_p$ +approximated the Schur complement $S = B A^{-1} B^T$ by a @ref GlossMassMatrix "mass matrix" $M_p$ on the pressure space and wrote an InverseMatrix class for implementing the action of $M_p^{-1}\approx S^{-1}$ on vectors. In the InverseMatrix class, we used a CG solve with an incomplete Cholesky (IC) diff --git a/examples/step-36/doc/intro.dox b/examples/step-36/doc/intro.dox index 3ac999509e..6e70d249e6 100644 --- a/examples/step-36/doc/intro.dox +++ b/examples/step-36/doc/intro.dox @@ -84,7 +84,7 @@ continuous eigenvalue problem: @f[ \sum_j [(\nabla\phi_i, matrix and vector notation, this equation then reads: @f[ A \tilde{\Psi} = \varepsilon_h M \tilde{\Psi} \quad, @f] where $A$ is the stiffness matrix arising from the differential operator $L$, and -$M$ is the mass matrix. The solution to the eigenvalue problem is an +$M$ is the @ref GlossMassMatrix "mass matrix". The solution to the eigenvalue problem is an eigenspectrum $\varepsilon_{h,\ell}$, with associated eigenfunctions $\Psi_\ell=\sum_j \phi_j\tilde{\psi}_j$. diff --git a/examples/step-36/step-36.cc b/examples/step-36/step-36.cc index e97b6f4acf..fc5e4bbba9 100644 --- a/examples/step-36/step-36.cc +++ b/examples/step-36/step-36.cc @@ -86,7 +86,7 @@ namespace Step36 DoFHandler dof_handler; // With these exceptions: For our eigenvalue problem, we need both a - // stiffness matrix for the left hand side as well as a mass matrix for + // stiffness matrix for the left hand side as well as a @ref GlossMassMatrix "mass matrix" for // the right hand side. We also need not just one solution function, but a // whole set of these for the eigenfunctions we want to compute, along // with the corresponding eigenvalues: diff --git a/examples/step-37/step-37.cc b/examples/step-37/step-37.cc index 01cbf726dc..e9046008c2 100644 --- a/examples/step-37/step-37.cc +++ b/examples/step-37/step-37.cc @@ -191,7 +191,7 @@ namespace Step37 // parameter as is done in the MatrixFreeOperators::LaplaceOperator class. // // As a sidenote, if we implemented several different operations on the same - // grid and degrees of freedom (like a mass matrix and a Laplace matrix), we + // grid and degrees of freedom (like a @ref GlossMassMatrix "mass matrix" and a Laplace matrix), we // would define two classes like the current one for each of the operators // (derived from the MatrixFreeOperators::Base class), and let both of them // refer to the same MatrixFree data cache from the general problem diff --git a/examples/step-41/doc/intro.dox b/examples/step-41/doc/intro.dox index bc0fefcee4..04eb08e134 100644 --- a/examples/step-41/doc/intro.dox +++ b/examples/step-41/doc/intro.dox @@ -185,7 +185,7 @@ get the equations &[BU-G]_i \geq 0, \quad \Lambda_i \leq 0,\quad \Lambda_i[BU-G]_i = 0 \qquad \forall i.& @f} -where $B$ is the mass matrix on the chosen finite element space and the +where $B$ is the @ref GlossMassMatrix "mass matrix" on the chosen finite element space and the indices $i$ above are for all degrees of freedom in the set $\cal S$ of degrees of freedom located in the interior of the domain (we have Dirichlet conditions on the perimeter). However, we diff --git a/examples/step-41/step-41.cc b/examples/step-41/step-41.cc index 428d2b9e77..1ba43c79de 100644 --- a/examples/step-41/step-41.cc +++ b/examples/step-41/step-41.cc @@ -68,7 +68,7 @@ namespace Step41 // (unconstrained) form of the linear system // (complete_system_matrix and // complete_system_rhs) as well as the active set itself and - // the diagonal of the mass matrix $B$ used in scaling Lagrange multipliers + // the diagonal of the @ref GlossMassMatrix "mass matrix" $B$ used in scaling Lagrange multipliers // in the active set formulation. The rest is as in step-4: template class ObstacleProblem diff --git a/examples/step-42/step-42.cc b/examples/step-42/step-42.cc index c83313f5a3..3ed82d1f3e 100644 --- a/examples/step-42/step-42.cc +++ b/examples/step-42/step-42.cc @@ -1101,7 +1101,7 @@ namespace Step42 // @sect4{PlasticityContactProblem::assemble_mass_matrix_diagonal} - // The next helper function computes the (diagonal) mass matrix that + // The next helper function computes the (diagonal) @ref GlossMassMatrix "mass matrix" that // is used to determine the active set of the active set method we use in // the contact algorithm. This matrix is of mass matrix type, but unlike // the standard mass matrix, we can make it diagonal (even in the case of diff --git a/examples/step-43/doc/intro.dox b/examples/step-43/doc/intro.dox index c1c6b816db..2ec5bde432 100644 --- a/examples/step-43/doc/intro.dox +++ b/examples/step-43/doc/intro.dox @@ -279,7 +279,7 @@ fully discrete problem at time step $n$: where $\mathbf{u}_t^{*}$ is the velocity linearly extrapolated from $\mathbf{u}^{(n_p)}_t$ and $\mathbf{u}^{(n_{pp})}_t$ to the current time $t^{(n)}$ if $\theta<\theta^*$ while $\mathbf{u}_t^{*}$ is $\mathbf{u}^{(n_p)}_t$ if $\theta>\theta^*$. Consequently, the equation is linear in $S_h^{(n)}$ and all that is required -is to solve with a mass matrix on the saturation space. +is to solve with a @ref GlossMassMatrix "mass matrix" on the saturation space. Since the Dirichlet boundary conditions for saturation are only imposed on the inflow boundaries, the third term on the left hand side of the equation above diff --git a/examples/step-43/step-43.cc b/examples/step-43/step-43.cc index ee97b1bad1..32aa62149b 100644 --- a/examples/step-43/step-43.cc +++ b/examples/step-43/step-43.cc @@ -794,7 +794,7 @@ namespace Step43 // @sect4{TwoPhaseFlowProblem::assemble_darcy_preconditioner} // This function assembles the matrix we use for preconditioning the Darcy - // system. What we need are a vector mass matrix weighted by + // system. What we need are a vector @ref GlossMassMatrix "mass matrix" weighted by // $\left(\mathbf{K} \lambda_t\right)^{-1}$ on the velocity components and a // mass matrix weighted by $\left(\mathbf{K} \lambda_t\right)$ on the // pressure component. We start by generating a quadrature object of diff --git a/examples/step-48/doc/intro.dox b/examples/step-48/doc/intro.dox index bd9a2f0bdc..3bdcc8268e 100644 --- a/examples/step-48/doc/intro.dox +++ b/examples/step-48/doc/intro.dox @@ -21,7 +21,7 @@ solve nonlinear partial differential equations. Moreover, we have another look at the handling of constraints within the matrix-free framework. Finally, we will use an explicit time-stepping method to solve the problem and introduce Gauss-Lobatto finite elements that -are very convenient in this case since their mass matrix can be accurately +are very convenient in this case since their @ref GlossMassMatrix "mass matrix" can be accurately approximated by a diagonal, and thus trivially invertible, matrix. The two ingredients to this property are firstly a distribution of the nodal points of Lagrange polynomials according to the point distribution of the Gauss-Lobatto diff --git a/examples/step-52/doc/intro.dox b/examples/step-52/doc/intro.dox index ee1e081444..13c47faeb3 100644 --- a/examples/step-52/doc/intro.dox +++ b/examples/step-52/doc/intro.dox @@ -77,7 +77,7 @@ solved can be written as: \frac{dy}{dt} = g(t,y). @f} On the other hand, when using finite elements, discretized time derivatives always result in the -presence of a mass matrix on the left hand side. This can easily be seen by +presence of a @ref GlossMassMatrix "mass matrix" on the left hand side. This can easily be seen by considering that if the solution vector $y(t)$ in the equation above is in fact the vector of nodal coefficients $U(t)$ for a variable of the form @f{eqnarray*} diff --git a/examples/step-52/step-52.cc b/examples/step-52/step-52.cc index 27fcbe78a9..195f6cd366 100644 --- a/examples/step-52/step-52.cc +++ b/examples/step-52/step-52.cc @@ -184,7 +184,7 @@ namespace Step52 // @sect4{Diffusion::assemble_system} // In this function, we compute $-\int D \nabla b_i \cdot \nabla b_j // d\boldsymbol{r} - \int \Sigma_a b_i b_j d\boldsymbol{r}$ and the mass - // matrix $\int b_i b_j d\boldsymbol{r}$. The mass matrix is then + // matrix $\int b_i b_j d\boldsymbol{r}$. The @ref GlossMassMatrix "mass matrix" is then // inverted using a direct solver; the inverse_mass_matrix // variable will then store the inverse of the mass matrix so that // $M^{-1}$ can be applied to a vector using the vmult() diff --git a/examples/step-55/doc/intro.dox b/examples/step-55/doc/intro.dox index 08f31a2d57..4877a22847 100644 --- a/examples/step-55/doc/intro.dox +++ b/examples/step-55/doc/intro.dox @@ -136,7 +136,7 @@ great from the computational standpoint (simpler and cheaper than GMRES for example), and applicable (matrix and preconditioner are symmetric). -For the approximations we will use a CG solve with the mass matrix in the +For the approximations we will use a CG solve with the @ref GlossMassMatrix "mass matrix" in the pressure space for approximating the action of $S^{-1}$. Note that the mass matrix is spectrally equivalent to $S$. We can expect the number of CG iterations to be independent of $h$, even with a simple preconditioner like diff --git a/examples/step-55/step-55.cc b/examples/step-55/step-55.cc index a0392ab99b..683abb824f 100644 --- a/examples/step-55/step-55.cc +++ b/examples/step-55/step-55.cc @@ -440,7 +440,7 @@ namespace Step55 } // The preconditioner matrix has a different coupling (we only fill in - // the 1,1 block with the mass matrix), otherwise this code is identical + // the 1,1 block with the @ref GlossMassMatrix "mass matrix"), otherwise this code is identical // to the construction of the system_matrix above. { preconditioner_matrix.clear(); diff --git a/examples/step-56/doc/intro.dox b/examples/step-56/doc/intro.dox index 42250c4f23..ee002f95cc 100644 --- a/examples/step-56/doc/intro.dox +++ b/examples/step-56/doc/intro.dox @@ -94,7 +94,7 @@ Since $P$ is aimed to be a preconditioner only, we shall use the approximations on the right in the equation above. As discussed in step-22, $-M_p^{-1}=:\widetilde{S^{-1}} \approx -S^{-1}$, where $M_p$ is the pressure mass matrix and is solved approximately by using CG +S^{-1}$, where $M_p$ is the pressure @ref GlossMassMatrix "mass matrix" and is solved approximately by using CG with ILU as a preconditioner, and $\widetilde{A^{-1}}$ is obtained by one of multiple methods: solving a linear system with CG and ILU as preconditioner, just using one application of an ILU, solving a linear diff --git a/examples/step-56/step-56.cc b/examples/step-56/step-56.cc index abf7b38290..bda7a4a55c 100644 --- a/examples/step-56/step-56.cc +++ b/examples/step-56/step-56.cc @@ -596,7 +596,7 @@ namespace Step56 // @sect4{StokesProblem::assemble_system} // In this function, the system matrix is assembled. We assemble the pressure - // mass matrix in the (1,1) block (if needed) and move it out of this location + // @ref GlossMassMatrix "mass matrix" in the (1,1) block (if needed) and move it out of this location // at the end of this function. template void StokesProblem::assemble_system() diff --git a/examples/step-57/doc/intro.dox b/examples/step-57/doc/intro.dox index 76b4fd629f..8a7061145b 100644 --- a/examples/step-57/doc/intro.dox +++ b/examples/step-57/doc/intro.dox @@ -252,7 +252,7 @@ P^{-1} = with $\tilde{A} = A + \gamma B^TW^{-1}B$ and $\tilde{S}$ is the corresponding Schur complement $\tilde{S} = B^T \tilde{A}^{-1} B$. We -let $W = M_p$ where $M_p$ is the pressure mass matrix, then +let $W = M_p$ where $M_p$ is the pressure @ref GlossMassMatrix "mass matrix", then $\tilde{S}^{-1}$ can be approximated by @f{eqnarray*} \tilde{S}^{-1} \approx -(\nu+\gamma)M_p^{-1}. diff --git a/examples/step-57/step-57.cc b/examples/step-57/step-57.cc index a2ee6bbd8b..b1cc6f04f1 100644 --- a/examples/step-57/step-57.cc +++ b/examples/step-57/step-57.cc @@ -179,7 +179,7 @@ namespace Step57 // we solve this system via a direct solver for simplicity. The computation // involved in the second factor is a simple matrix-vector // multiplication. The Schur complement $\tilde{S}$ can be well approximated - // by the pressure mass matrix and its inverse can be obtained through an + // by the pressure @ref GlossMassMatrix "mass matrix" and its inverse can be obtained through an // inexact solver. Because the pressure mass matrix is symmetric and // positive definite, we can use CG to solve the corresponding linear // system. diff --git a/examples/step-59/step-59.cc b/examples/step-59/step-59.cc index 0a24164ffa..980185edef 100644 --- a/examples/step-59/step-59.cc +++ b/examples/step-59/step-59.cc @@ -812,7 +812,7 @@ namespace Step59 // we check that it is diagonal and then extract the determinant of the // original Jacobian, i.e., the inverse of the determinant of the inverse // Jacobian, and set the weight as $\text{det}(J) / h_d^2$ according to - // the 1d Laplacian times $d-1$ copies of the mass matrix. + // the 1d Laplacian times $d-1$ copies of the @ref GlossMassMatrix "mass matrix". cell_matrices.clear(); FEEvaluation phi(*data); unsigned int old_mapping_data_index = numbers::invalid_unsigned_int; diff --git a/examples/step-61/doc/intro.dox b/examples/step-61/doc/intro.dox index 328e7f32e4..04ab0a81f9 100644 --- a/examples/step-61/doc/intro.dox +++ b/examples/step-61/doc/intro.dox @@ -304,7 +304,7 @@ and consequently @f} (In this last step, we have assumed that the indices $i,j,k$ only range over those degrees of freedom active on cell $K$, -thereby ensuring that the mass matrix on the space $RT_s(K)$ is invertible.) +thereby ensuring that the @ref GlossMassMatrix "mass matrix" on the space $RT_s(K)$ is invertible.) Equivalently, using the symmetry of the matrix $M$, we have that @f{equation*}{ C^K = \left(G^K\right)^{T} \left(M^K\right)^{-1}. diff --git a/examples/step-61/step-61.cc b/examples/step-61/step-61.cc index cdc222a750..97f6b3c808 100644 --- a/examples/step-61/step-61.cc +++ b/examples/step-61/step-61.cc @@ -461,7 +461,7 @@ namespace Step61 coefficient.value_list(fe_values.get_quadrature_points(), coefficient_values); - // The first cell matrix we will compute is the mass matrix + // The first cell matrix we will compute is the @ref GlossMassMatrix "mass matrix" // for the Raviart-Thomas space. Hence, we need to loop over // all the quadrature points for the velocity FEValues object. cell_matrix_M = 0; diff --git a/examples/step-62/step-62.cc b/examples/step-62/step-62.cc index 41d86c57d7..3d31085566 100644 --- a/examples/step-62/step-62.cc +++ b/examples/step-62/step-62.cc @@ -911,7 +911,7 @@ namespace step62 const Tensor<2, dim> grad_phi_j = fe_values[displacement].gradient(j, q); - // calculate the values of the mass matrix. + // calculate the values of the @ref GlossMassMatrix "mass matrix". quadrature_data.mass_coefficient[i][j] = rho_values[q] * xi * phi_i * phi_j; diff --git a/examples/step-67/doc/intro.dox b/examples/step-67/doc/intro.dox index 0794bb9a3b..45688afd02 100644 --- a/examples/step-67/doc/intro.dox +++ b/examples/step-67/doc/intro.dox @@ -324,7 +324,7 @@ cells: where $\boldsymbol{\varphi}_i$ runs through all basis functions with from 1 to $n_\text{dofs}$. -We now denote by $\mathcal M$ the mass matrix with entries $\mathcal M_{ij} = +We now denote by $\mathcal M$ the @ref GlossMassMatrix "mass matrix" with entries $\mathcal M_{ij} = \sum_{K} \left(\boldsymbol{\varphi}_i, \boldsymbol{\varphi}_j\right)_K$, and by @f[ diff --git a/examples/step-69/doc/intro.dox b/examples/step-69/doc/intro.dox index 416d51fb6f..15acd85da7 100644 --- a/examples/step-69/doc/intro.dox +++ b/examples/step-69/doc/intro.dox @@ -267,7 +267,7 @@ the (explicit time stepping) scheme as: @f} where - $m_i \dealcoloneq \int_{\Omega} \phi_i \, \mathrm{d}\mathbf{x}$ - is the lumped mass matrix + is the lumped @ref GlossMassMatrix "mass matrix" - $\tau$ is the time step size - $\mathbf{c}_{ij} \dealcoloneq \int_{\Omega} \nabla\phi_j\phi_i \, \mathrm{d}\mathbf{x}$ (note that $\mathbf{c}_{ij}\in \mathbb{R}^d$) diff --git a/examples/step-69/step-69.cc b/examples/step-69/step-69.cc index 018d6c22ac..7e229edfa1 100644 --- a/examples/step-69/step-69.cc +++ b/examples/step-69/step-69.cc @@ -178,7 +178,7 @@ namespace Step69 // // The class OfflineData contains pretty much all components // of the discretization that do not evolve in time, in particular, the - // DoFHandler, SparsityPattern, boundary maps, the lumped mass matrix, + // DoFHandler, SparsityPattern, boundary maps, the lumped @ref GlossMassMatrix "mass matrix", // $\mathbf{c}_{ij}$ and $\mathbf{n}_{ij}$ matrices. Here, the term // offline refers to the fact that all the class // members of OfflineData have well-defined values diff --git a/examples/step-70/step-70.cc b/examples/step-70/step-70.cc index 1d66c58db9..98b375419c 100644 --- a/examples/step-70/step-70.cc +++ b/examples/step-70/step-70.cc @@ -1527,7 +1527,7 @@ namespace Step70 // This function solves the linear system with FGMRES with a block diagonal // preconditioner and an algebraic multigrid (AMG) method for the diagonal // blocks. The preconditioner applies a V cycle to the $(0,0)$ (i.e., the - // velocity-velocity) block and a CG with the mass matrix for the $(1,1)$ + // velocity-velocity) block and a CG with the @ref GlossMassMatrix "mass matrix" for the $(1,1)$ // block (which is our approximation to the Schur complement: the pressure // mass matrix assembled above). template diff --git a/examples/step-78/step-78.cc b/examples/step-78/step-78.cc index 1fb89ede07..b7a894592e 100644 --- a/examples/step-78/step-78.cc +++ b/examples/step-78/step-78.cc @@ -377,7 +377,7 @@ namespace BlackScholesSolver // The next function sets up the DoFHandler object, computes // the constraints, and sets the linear algebra objects to their correct - // sizes. We also compute the mass matrix here by calling a function from the + // sizes. We also compute the @ref GlossMassMatrix "mass matrix" here by calling a function from the // library. We will compute the other 3 matrices next, because these need to // be computed 'by hand'. // diff --git a/examples/step-82/doc/intro.dox b/examples/step-82/doc/intro.dox index 6796fc0412..0cb3a32e20 100644 --- a/examples/step-82/doc/intro.dox +++ b/examples/step-82/doc/intro.dox @@ -212,7 +212,7 @@ where $\{\psi_n\}_{n=1}^{N_c}$ and $\{\psi_n\}_{n=N_c+1}^{N_c+N_n}$ are the basi @f[ M\boldsymbol{B}=\boldsymbol{G}, @f] -where the components of the (local) mass matrix and the right-hand side are given respectively by +where the components of the (local) @ref GlossMassMatrix "mass matrix" and the right-hand side are given respectively by @f[ M_{mn}\dealcoloneq\int_{\Omega}\psi_n:\psi_m \quad \mbox{and} \quad G_m\dealcoloneq\int_e\average{{\rm div}\, \psi_m}\cdot \mathbf{n}_e\jump{\varphi}, \qquad 1\leq m,n \leq N_c+N_n. @f] diff --git a/examples/step-82/step-82.cc b/examples/step-82/step-82.cc index 961f3f8418..4f15e589d2 100644 --- a/examples/step-82/step-82.cc +++ b/examples/step-82/step-82.cc @@ -91,7 +91,7 @@ namespace Step82 // As indicated by its name, the function // assemble_local_matrix() is used for the assembly of the - // (local) mass matrix used to compute the two lifting terms (see the matrix + // (local) @ref GlossMassMatrix "mass matrix" used to compute the two lifting terms (see the matrix // $\boldsymbol{M}_c$ introduced in the introduction when describing the // computation of $b_e$). The function // compute_discrete_hessians() computes the required discrete diff --git a/include/deal.II/algorithms/theta_timestepping.h b/include/deal.II/algorithms/theta_timestepping.h index cc7bf99393..fb3c441ab5 100644 --- a/include/deal.II/algorithms/theta_timestepping.h +++ b/include/deal.II/algorithms/theta_timestepping.h @@ -76,7 +76,7 @@ namespace Algorithms * M u_{n+1} + \theta k F(u_{n+1}) = M u_n - (1-\theta)k F(u_n). * @f] * - * Here, M is the mass matrix. We see, that the right hand side + * Here, M is the @ref GlossMassMatrix "mass matrix". We see, that the right hand side * amounts to an explicit Euler step with modified step size in weak form * (up to inversion of M). The left hand side corresponds to an implicit * Euler step with modified step size (right hand side given). Thus, the @@ -410,7 +410,7 @@ namespace Algorithms * step size from explicit_data(). * * Its return value is $ Mu+cF(u) $, where $u$ is the current state - * vector, $M$ the mass matrix, $F$ the operator in space and $c$ is the + * vector, $M$ the @ref GlossMassMatrix "mass matrix", $F$ the operator in space and $c$ is the * adjusted time step size $(1-\theta) \Delta t$. */ SmartPointer> op_explicit; @@ -422,7 +422,7 @@ namespace Algorithms * * Its return value is the solution u of Mu-cF(u)=f, where * f is the dual space vector found in the "Previous time" entry of - * the input data, M the mass matrix, F the operator in + * the input data, M the @ref GlossMassMatrix "mass matrix", F the operator in * space and c is the adjusted time step size $ \theta \Delta t$ */ SmartPointer> op_implicit; diff --git a/include/deal.II/base/polynomial.h b/include/deal.II/base/polynomial.h index 26caf22d99..ad8d140e18 100644 --- a/include/deal.II/base/polynomial.h +++ b/include/deal.II/base/polynomial.h @@ -661,7 +661,7 @@ namespace Polynomials * for degree=2 are $p_0(x)=(1-x)^2$, $p_1(x)=2x(x-1)$, and * $p_2(x)=x^2$, in accordance with the construction principle for degree 3. * - * These two relaxations improve the condition number of the mass matrix + * These two relaxations improve the condition number of the @ref GlossMassMatrix "mass matrix" * (i.e., interpolation) significantly, as can be seen from the following * table: * diff --git a/include/deal.II/base/quadrature_point_data.h b/include/deal.II/base/quadrature_point_data.h index 2927a841d9..95b4d1a961 100644 --- a/include/deal.II/base/quadrature_point_data.h +++ b/include/deal.II/base/quadrature_point_data.h @@ -345,7 +345,7 @@ namespace parallel * to the continuous space defined by a single FiniteElement @p projection_fe . * This is achieved using * FETools::compute_projection_from_quadrature_points_matrix(). In doing so - * the mass matrix of this element is required, which will be calculated + * the @ref GlossMassMatrix "mass matrix" of this element is required, which will be calculated * with the @p mass_quadrature rule . Should the cell now belong to another processor, * the data is then sent to this processor. The class makes use of a feature * of p4est (and parallel::distributed::Triangulation) that allows one to @@ -451,7 +451,7 @@ namespace parallel /** * Constructor which takes the FiniteElement @p projection_fe , the quadrature - * rule @p mass_quadrature used to integrate its local mass matrix and + * rule @p mass_quadrature used to integrate its local @ref GlossMassMatrix "mass matrix" and * finally the quadrature rule @p data_quadrature which is used to store @p DataType. * * @pre @p projection_fe has to be scalar-valued. diff --git a/include/deal.II/dofs/dof_tools.h b/include/deal.II/dofs/dof_tools.h index 56992386fb..a2431e8ece 100644 --- a/include/deal.II/dofs/dof_tools.h +++ b/include/deal.II/dofs/dof_tools.h @@ -134,7 +134,7 @@ namespace DoFTools * With this vector, one can get, for any given degree of freedom, a unique * number among those DoFs that sit on the boundary; or, if your DoF was * interior to the domain, the result would be numbers::invalid_dof_index. - * We need this mapping, for example, to build the mass matrix on the boundary + * We need this mapping, for example, to build the @ref GlossMassMatrix "mass matrix" on the boundary * (for this, see make_boundary_sparsity_pattern() function, the corresponding * section below, as well as the MatrixCreator namespace documentation). * diff --git a/include/deal.II/fe/fe_dgp.h b/include/deal.II/fe/fe_dgp.h index c74cebcbe1..4c026b9fd2 100644 --- a/include/deal.II/fe/fe_dgp.h +++ b/include/deal.II/fe/fe_dgp.h @@ -46,7 +46,7 @@ DEAL_II_NAMESPACE_OPEN * necessarily on the real cell). As a consequence, the first basis function * of this element is always the function that is constant and equal to one, * regardless of the polynomial degree of the element. In addition, as a - * result of the orthogonality of the basis functions, the mass matrix is + * result of the orthogonality of the basis functions, the @ref GlossMassMatrix "mass matrix" is * diagonal if the grid cells are parallelograms. Note that this is in * contrast to the FE_DGPMonomial class that actually uses the monomial basis * listed above as basis functions, without transformation from reference to diff --git a/include/deal.II/fe/fe_dgp_monomial.h b/include/deal.II/fe/fe_dgp_monomial.h index 9cd3527651..8b8deb3fd3 100644 --- a/include/deal.II/fe/fe_dgp_monomial.h +++ b/include/deal.II/fe/fe_dgp_monomial.h @@ -43,7 +43,7 @@ DEAL_II_NAMESPACE_OPEN * The basis functions for this element are chosen to be the monomials listed * above. Note that this is the main difference to the FE_DGP class that uses * a set of polynomials of complete degree p that form a Legendre - * basis on the unit square. Thus, there, the mass matrix is diagonal, if the + * basis on the unit square. Thus, there, the @ref GlossMassMatrix "mass matrix" is diagonal, if the * grid cells are parallelograms. The basis here does not have this property; * however, it is simpler to compute. On the other hand, this element has the * additional disadvantage that the local cell matrices usually have a worse diff --git a/include/deal.II/fe/fe_dgq.h b/include/deal.II/fe/fe_dgq.h index 012c82643b..16a72cc938 100644 --- a/include/deal.II/fe/fe_dgq.h +++ b/include/deal.II/fe/fe_dgq.h @@ -100,7 +100,7 @@ class Quadrature; * increases. In interpolation, this effect is known as the Runge * phenomenon. For Galerkin methods, the Runge phenomenon is typically not * visible in the solution quality but rather in the condition number of the - * associated system matrices. For example, the elemental mass matrix of + * associated system matrices. For example, the elemental @ref GlossMassMatrix "mass matrix" of * equidistant points at degree 10 has condition number 2.6e6, whereas the * condition number for Gauss-Lobatto points is around 400. * @@ -386,7 +386,7 @@ private: /** * Implementation of scalar, discontinuous tensor product elements based on * Lagrange polynomials with arbitrary nodes. The primary purpose of this - * class is to provide an element for which the mass matrix can be made + * class is to provide an element for which the @ref GlossMassMatrix "mass matrix" can be made * diagonal by choosing basis functions that are not either zero or one at the * vertices of the cell, but instead are zero or one at a given set of * quadrature points. If this set of quadrature points is then also used in diff --git a/include/deal.II/fe/fe_q.h b/include/deal.II/fe/fe_q.h index db89e4d674..3766f9708e 100644 --- a/include/deal.II/fe/fe_q.h +++ b/include/deal.II/fe/fe_q.h @@ -75,7 +75,7 @@ DEAL_II_NAMESPACE_OPEN * increases. In interpolation, this effect is known as the Runge * phenomenon. For Galerkin methods, the Runge phenomenon is typically not * visible in the solution quality but rather in the condition number of the - * associated system matrices. For example, the elemental mass matrix of + * associated system matrices. For example, the elemental @ref GlossMassMatrix "mass matrix" of * equidistant points at degree 10 has condition number 2.6e6, whereas the * condition number for Gauss-Lobatto points is around 400. * @@ -577,7 +577,7 @@ public: * different are the basis functions of this space. This is useful in * contexts where one wants to achieve certain properties of the matrices * that result from integrating bilinear forms of these shape functions. - * For example, when computing the mass matrix on cell $K$, + * For example, when computing the @ref GlossMassMatrix "mass matrix" on cell $K$, * @f[ * M_{ij}^K = \int_K \varphi_i(\mathbf x) \varphi_j(\mathbf x) \; dx * @f] diff --git a/include/deal.II/fe/fe_rt_bubbles.h b/include/deal.II/fe/fe_rt_bubbles.h index 566fcdb609..b2b8ae40d5 100644 --- a/include/deal.II/fe/fe_rt_bubbles.h +++ b/include/deal.II/fe/fe_rt_bubbles.h @@ -37,7 +37,7 @@ DEAL_II_NAMESPACE_OPEN * vector fields with normal components continuous between mesh cells. The * purpose of this finite element is in localizing the interactions * between degrees of freedom around the nodes when an appropriate quadrature - * rule is used, leading to a block-diagonal mass matrix (even with full-tensor + * rule is used, leading to a block-diagonal @ref GlossMassMatrix "mass matrix" (even with full-tensor * coefficient). * * The elements are defined through enrichment of classical Raviart-Thomas diff --git a/include/deal.II/fe/fe_simplex_p_bubbles.h b/include/deal.II/fe/fe_simplex_p_bubbles.h index b3a05e813d..f825f30e7e 100644 --- a/include/deal.II/fe/fe_simplex_p_bubbles.h +++ b/include/deal.II/fe/fe_simplex_p_bubbles.h @@ -28,7 +28,7 @@ DEAL_II_NAMESPACE_OPEN * @brief Enriched version of FE_SimplexP that can be used with nodal * quadrature. * - * Many explicit time integration schemes require solving a mass matrix at + * Many explicit time integration schemes require solving a @ref GlossMassMatrix "mass matrix" at * each time step. There are various ways around this requirement - for * example, step-48 replaces the mass matrix with a diagonal approximation, * which makes the solution step trivial. In step-48, and also commonly for diff --git a/include/deal.II/fe/fe_tools.h b/include/deal.II/fe/fe_tools.h index b62f549df8..1593407b8c 100644 --- a/include/deal.II/fe/fe_tools.h +++ b/include/deal.II/fe/fe_tools.h @@ -456,7 +456,7 @@ namespace FETools * After these quadrature approximations, we end up with a nodal * representation Vh of vh that * satisfies the following system of linear equations: M Vh = - * Q U, where Mij=(phi_i,phi_j) is the mass matrix + * Q U, where Mij=(phi_i,phi_j) is the @ref GlossMassMatrix "mass matrix" * approximated by lhs_quadrature, and Q is the matrix * Qiq=phii(xq) wq * where wq are quadrature weights; U is the @@ -766,7 +766,7 @@ namespace FETools * * The global projection can be computed by local matrices if the finite * element spaces are discontinuous. With continuous elements, this is - * impossible, since a global mass matrix must be inverted. + * impossible, since a global @ref GlossMassMatrix "mass matrix" must be inverted. */ template void diff --git a/include/deal.II/integrators/l2.h b/include/deal.II/integrators/l2.h index fe7b8060ca..9eeeb00059 100644 --- a/include/deal.II/integrators/l2.h +++ b/include/deal.II/integrators/l2.h @@ -41,7 +41,7 @@ namespace LocalIntegrators namespace L2 { /** - * The mass matrix for scalar or vector values finite elements. \f[ \int_Z + * The @ref GlossMassMatrix "mass matrix" for scalar or vector values finite elements. \f[ \int_Z * uv\,dx \quad \text{or} \quad \int_Z \mathbf u\cdot \mathbf v\,dx \f] * * Likewise, this term can be used on faces, where it computes the @@ -89,7 +89,7 @@ namespace LocalIntegrators } /** - * The weighted mass matrix for scalar or vector values finite elements. + * The weighted @ref GlossMassMatrix "mass matrix" for scalar or vector values finite elements. * \f[ \int_Z \omega(x) uv\,dx \quad \text{or} \quad \int_Z \omega(x) * \mathbf u\cdot \mathbf v\,dx \f] * diff --git a/include/deal.II/integrators/local_integrators.h b/include/deal.II/integrators/local_integrators.h index 5f6f8ba9bb..96b049efec 100644 --- a/include/deal.II/integrators/local_integrators.h +++ b/include/deal.II/integrators/local_integrators.h @@ -122,7 +122,7 @@ DEAL_II_NAMESPACE_OPEN *
  • 0: The vector Laplacian for the velocity (here with a vector valued * element) *
  • 1: The divergence matrix - *
  • 2: The pressure mass matrix used in the preconditioner + *
  • 2: The pressure @ref GlossMassMatrix "mass matrix" used in the preconditioner * * * With these matrices, the function called by MeshWorker::loop() could be diff --git a/include/deal.II/lac/arpack_solver.h b/include/deal.II/lac/arpack_solver.h index de87b6c8fd..e94b9a45b6 100644 --- a/include/deal.II/lac/arpack_solver.h +++ b/include/deal.II/lac/arpack_solver.h @@ -129,7 +129,7 @@ dseupd_(int * rvec, * * In this class we make use of the method applied to the generalized * eigenspectrum problem $(A-\lambda B)x=0$, for $x\neq0$; where $A$ is a - * system matrix, $B$ is a mass matrix, and $\lambda, x$ are a set of + * system matrix, $B$ is a @ref GlossMassMatrix "mass matrix", and $\lambda, x$ are a set of * eigenvalues and eigenvectors respectively. * * The ArpackSolver can be used in application codes with serial objects in @@ -301,7 +301,7 @@ public: * this parameter is entirely unused. * * @param B The inner product of the underlying space, typically the mass - * matrix. For constrained problems, it can be a partial mass matrix, like + * matrix. For constrained problems, it can be a partial @ref GlossMassMatrix "mass matrix", like * for instance the velocity mass matrix of a Stokes problem. Only its * function vmult() is used. * diff --git a/include/deal.II/lac/block_matrix_base.h b/include/deal.II/lac/block_matrix_base.h index 787c0a5a5e..eb9ccd195e 100644 --- a/include/deal.II/lac/block_matrix_base.h +++ b/include/deal.II/lac/block_matrix_base.h @@ -688,7 +688,7 @@ public: * Return the norm of the vector v with respect to the norm induced * by this matrix, i.e. vTMv). This is useful, e.g. in the * finite element context, where the LT-norm of a function - * equals the matrix norm with respect to the mass matrix of the vector + * equals the matrix norm with respect to the @ref GlossMassMatrix "mass matrix" of the vector * representing the nodal values of the finite element function. Note that * even though the function's name might suggest something different, for * historic reasons not the norm but its square is returned, as defined diff --git a/include/deal.II/lac/chunk_sparse_matrix.h b/include/deal.II/lac/chunk_sparse_matrix.h index 8e7829426e..b214c8ddfa 100644 --- a/include/deal.II/lac/chunk_sparse_matrix.h +++ b/include/deal.II/lac/chunk_sparse_matrix.h @@ -953,7 +953,7 @@ public: * Return the square of the norm of the vector $v$ with respect to the norm * induced by this matrix, i.e. $\left(v,Mv\right)$. This is useful, e.g. in * the finite element context, where the $L_2$ norm of a function equals the - * matrix norm with respect to the mass matrix of the vector representing + * matrix norm with respect to the @ref GlossMassMatrix "mass matrix" of the vector representing * the nodal values of the finite element function. * * Obviously, the matrix needs to be quadratic for this operation, and for diff --git a/include/deal.II/lac/cuda_sparse_matrix.h b/include/deal.II/lac/cuda_sparse_matrix.h index da735bf9ec..266afa2608 100644 --- a/include/deal.II/lac/cuda_sparse_matrix.h +++ b/include/deal.II/lac/cuda_sparse_matrix.h @@ -253,7 +253,7 @@ namespace CUDAWrappers * Return the square of the norm of the vector $v$ with respect to the * norm induced by this matrix, i.e., $\left(v,Mv\right)$. This is useful, * e.g., in the finite context, where the $L_2$ norm of a function equals - * the matrix norm with respect to the mass matrix of the vector + * the matrix norm with respect to the @ref GlossMassMatrix "mass matrix" of the vector * representing the nodal values of the finite element function. * * Obviously, the matrix needs to be quadratic for this operation. diff --git a/include/deal.II/lac/full_matrix.h b/include/deal.II/lac/full_matrix.h index ee50fb8da4..462571b9bb 100644 --- a/include/deal.II/lac/full_matrix.h +++ b/include/deal.II/lac/full_matrix.h @@ -401,7 +401,7 @@ public: * Return the square of the norm of the vector v induced by this * matrix, i.e. (v,Mv). This is useful, e.g. in the finite element * context, where the L2 norm of a function equals the - * matrix norm with respect to the mass matrix of the vector representing + * matrix norm with respect to the @ref GlossMassMatrix "mass matrix" of the vector representing * the nodal values of the finite element function. * * Obviously, the matrix needs to be quadratic for this operation, and for diff --git a/include/deal.II/lac/matrix_block.h b/include/deal.II/lac/matrix_block.h index 9e5acf9e04..60b56c55ec 100644 --- a/include/deal.II/lac/matrix_block.h +++ b/include/deal.II/lac/matrix_block.h @@ -65,7 +65,7 @@ namespace internal * different blocks in a block system. For example, a preconditioner for the * Oseen system can be built as a block system, where the pressure block is of * the form M-1FA-1 with M the - * pressure mass matrix, A the pressure Laplacian and F the + * pressure @ref GlossMassMatrix "mass matrix", A the pressure Laplacian and F the * advection diffusion operator applied to the pressure space. Since only a * single matrix is needed for the other blocks, using BlockSparseMatrix or * similar would be a waste of memory. diff --git a/include/deal.II/lac/parpack_solver.h b/include/deal.II/lac/parpack_solver.h index f111a07bf3..99ef5fb0ad 100644 --- a/include/deal.II/lac/parpack_solver.h +++ b/include/deal.II/lac/parpack_solver.h @@ -145,7 +145,7 @@ extern "C" * * In this class we make use of the method applied to the generalized * eigenspectrum problem $(A-\lambda B)x=0$, for $x\neq0$; where $A$ is a - * system matrix, $B$ is a mass matrix, and $\lambda, x$ are a set of + * system matrix, $B$ is a @ref GlossMassMatrix "mass matrix", and $\lambda, x$ are a set of * eigenvalues and eigenvectors respectively. * * The ArpackSolver can be used in application codes in the following way: diff --git a/include/deal.II/lac/petsc_matrix_base.h b/include/deal.II/lac/petsc_matrix_base.h index 99363019e9..215f8a0c8c 100644 --- a/include/deal.II/lac/petsc_matrix_base.h +++ b/include/deal.II/lac/petsc_matrix_base.h @@ -731,7 +731,7 @@ namespace PETScWrappers * Return the square of the norm of the vector $v$ with respect to the * norm induced by this matrix, i.e. $\left(v,Mv\right)$. This is useful, * e.g. in the finite element context, where the $L_2$ norm of a function - * equals the matrix norm with respect to the mass matrix of the vector + * equals the matrix norm with respect to the @ref GlossMassMatrix "mass matrix" of the vector * representing the nodal values of the finite element function. * * Obviously, the matrix needs to be quadratic for this operation. diff --git a/include/deal.II/lac/petsc_sparse_matrix.h b/include/deal.II/lac/petsc_sparse_matrix.h index 38840dd53a..e1a96ffa7a 100644 --- a/include/deal.II/lac/petsc_sparse_matrix.h +++ b/include/deal.II/lac/petsc_sparse_matrix.h @@ -557,7 +557,7 @@ namespace PETScWrappers * Return the square of the norm of the vector $v$ with respect to the * norm induced by this matrix, i.e. $\left(v^\ast,Mv\right)$. This is * useful, e.g. in the finite element context, where the $L_2$ norm of a - * function equals the matrix norm with respect to the mass matrix of + * function equals the matrix norm with respect to the @ref GlossMassMatrix "mass matrix" of * the vector representing the nodal values of the finite element * function. * diff --git a/include/deal.II/lac/schur_complement.h b/include/deal.II/lac/schur_complement.h index 187a11e634..adcb4b4f88 100644 --- a/include/deal.II/lac/schur_complement.h +++ b/include/deal.II/lac/schur_complement.h @@ -176,7 +176,7 @@ DEAL_II_NAMESPACE_OPEN * A better preconditioner in such a case would be one that provides a more * representative approximation for $ S^{-1} $. One approach is shown in * step-22, where $ D $ is the null matrix and the preconditioner for $ S^{-1} - * $ is derived from the mass matrix over this space. + * $ is derived from the @ref GlossMassMatrix "mass matrix" over this space. * * From another viewpoint, a similar result can be achieved by first * constructing an object that represents an approximation for $ S $ wherein diff --git a/include/deal.II/lac/slepc_solver.h b/include/deal.II/lac/slepc_solver.h index 65ef9f87a2..e8665d9f6b 100644 --- a/include/deal.II/lac/slepc_solver.h +++ b/include/deal.II/lac/slepc_solver.h @@ -41,7 +41,7 @@ DEAL_II_NAMESPACE_OPEN * * The SLEPc solvers are intended to be used for solving the generalized * eigenspectrum problem $(A-\lambda B)x=0$, for $x\neq0$; where $A$ is a - * system matrix, $B$ is a mass matrix, and $\lambda, x$ are a set of + * system matrix, $B$ is a @ref GlossMassMatrix "mass matrix", and $\lambda, x$ are a set of * eigenvalues and eigenvectors respectively. The emphasis is on methods and * techniques appropriate for problems in which the associated matrices are * sparse. Most of the methods offered by the SLEPc library are projection diff --git a/include/deal.II/lac/sparse_matrix.h b/include/deal.II/lac/sparse_matrix.h index 248007e9c7..dd6144b38e 100644 --- a/include/deal.II/lac/sparse_matrix.h +++ b/include/deal.II/lac/sparse_matrix.h @@ -1197,7 +1197,7 @@ public: * Return the square of the norm of the vector $v$ with respect to the norm * induced by this matrix, i.e. $\left(v,Mv\right)$. This is useful, e.g. in * the finite element context, where the $L_2$ norm of a function equals the - * matrix norm with respect to the mass matrix of the vector representing + * matrix norm with respect to the @ref GlossMassMatrix "mass matrix" of the vector representing * the nodal values of the finite element function. * * Obviously, the matrix needs to be quadratic for this operation, and for diff --git a/include/deal.II/lac/tensor_product_matrix.h b/include/deal.II/lac/tensor_product_matrix.h index 7a4da66e0c..fdf96c24d9 100644 --- a/include/deal.II/lac/tensor_product_matrix.h +++ b/include/deal.II/lac/tensor_product_matrix.h @@ -51,7 +51,7 @@ class FullMatrix; * @f} * in 3d. The typical application setting is a discretization of the Laplacian * $L$ on a Cartesian (axis-aligned) geometry, where it can be exactly - * represented by the Kronecker or tensor product of a 1d mass matrix $M$ and + * represented by the Kronecker or tensor product of a 1d @ref GlossMassMatrix "mass matrix" $M$ and * a 1d Laplace matrix $A$ in each tensor direction (due to symmetry $M$ and $A$ * are the same in each dimension). The dimension of the resulting class is the * product of the one-dimensional matrices. @@ -155,7 +155,7 @@ public: * @warning This class accepts the following types: * "std::array, dim>", "std::array, dim>", * and "Table<2, Number>". In the latter case, we consider the same 1d - * mass matrix @p mass_matrix and the same 1d derivative matrix + * @ref GlossMassMatrix "mass matrix" @p mass_matrix and the same 1d derivative matrix * @p derivative_matrix for each tensor direction. */ template @@ -239,7 +239,7 @@ public: protected: /** - * An array containing a mass matrix for each tensor direction. + * An array containing a @ref GlossMassMatrix "mass matrix" for each tensor direction. */ std::array, dim> mass_matrix; @@ -343,7 +343,7 @@ namespace internal * A class similar to TensorProductMatrixSymmetricSum. * * The class TensorProductMatrixSymmetricSum stores a - * 1d mass matrix, 1d stiffness matrix, eigenvalues and eigenvectors + * 1d @ref GlossMassMatrix "mass matrix", 1d stiffness matrix, eigenvalues and eigenvectors * for each direction. If one uses one TensorProductMatrixSymmetricSum * instance for, e.g., each cell, these quantities are stored * for each cell. There is no possibility to reuse quantities between diff --git a/include/deal.II/lac/tridiagonal_matrix.h b/include/deal.II/lac/tridiagonal_matrix.h index aa513061dc..2a0639c7e1 100644 --- a/include/deal.II/lac/tridiagonal_matrix.h +++ b/include/deal.II/lac/tridiagonal_matrix.h @@ -190,7 +190,7 @@ public: * Return the square of the norm of the vector v with respect to * the norm induced by this matrix, i.e. (v,Mv). This is useful, e.g. * in the finite element context, where the L2 norm of a - * function equals the matrix norm with respect to the mass matrix of the + * function equals the matrix norm with respect to the @ref GlossMassMatrix "mass matrix" of the * vector representing the nodal values of the finite element function. * * Obviously, the matrix needs to be quadratic for this operation. diff --git a/include/deal.II/lac/trilinos_sparse_matrix.h b/include/deal.II/lac/trilinos_sparse_matrix.h index 310ba946ee..23ff3ade0b 100644 --- a/include/deal.II/lac/trilinos_sparse_matrix.h +++ b/include/deal.II/lac/trilinos_sparse_matrix.h @@ -1513,7 +1513,7 @@ namespace TrilinosWrappers * Return the square of the norm of the vector $v$ with respect to the * norm induced by this matrix, i.e., $\left(v,Mv\right)$. This is useful, * e.g. in the finite element context, where the $L_2$ norm of a function - * equals the matrix norm with respect to the mass matrix of the vector + * equals the matrix norm with respect to the @ref GlossMassMatrix "mass matrix" of the vector * representing the nodal values of the finite element function. * * Obviously, the matrix needs to be quadratic for this operation. diff --git a/include/deal.II/matrix_free/evaluation_kernels.h b/include/deal.II/matrix_free/evaluation_kernels.h index 73355187f9..da52686722 100644 --- a/include/deal.II/matrix_free/evaluation_kernels.h +++ b/include/deal.II/matrix_free/evaluation_kernels.h @@ -5580,7 +5580,7 @@ namespace internal /** - * This struct implements the action of the inverse mass matrix operation + * This struct implements the action of the inverse @ref GlossMassMatrix "mass matrix" operation * using an FEEvaluationData argument. */ template @@ -5697,7 +5697,7 @@ namespace internal /** - * This struct implements the action of the inverse mass matrix operation + * This struct implements the action of the inverse @ref GlossMassMatrix "mass matrix" operation * using an FEEvaluationData argument. */ template @@ -5784,7 +5784,7 @@ namespace internal /** - * This struct implements the action of the inverse mass matrix operation + * This struct implements the action of the inverse @ref GlossMassMatrix "mass matrix" operation * using an FEEvaluationData argument. */ template diff --git a/include/deal.II/matrix_free/operators.h b/include/deal.II/matrix_free/operators.h index b3e1f86d57..8b5dfce8a4 100644 --- a/include/deal.II/matrix_free/operators.h +++ b/include/deal.II/matrix_free/operators.h @@ -598,7 +598,7 @@ namespace MatrixFreeOperators /** * This class implements the operation of the action of the inverse of a - * mass matrix on an element for the special case of an evaluation object + * @ref GlossMassMatrix "mass matrix" on an element for the special case of an evaluation object * with as many quadrature points as there are cell degrees of freedom. It * uses algorithms from FEEvaluation and produces the exact mass matrix for * DGQ elements. This algorithm uses tensor products of inverse 1d shape @@ -637,7 +637,7 @@ namespace MatrixFreeOperators VectorizedArrayType> &fe_eval); /** - * Applies the inverse mass matrix operation on an input array. It is + * Applies the inverse @ref GlossMassMatrix "mass matrix" operation on an input array. It is * assumed that the passed input and output arrays are of correct size, * namely FEEvaluation::dofs_per_cell long. The inverse of the * local coefficient (also containing the inverse JxW values) must be @@ -651,7 +651,7 @@ namespace MatrixFreeOperators VectorizedArrayType * out_array) const; /** - * Applies the inverse mass matrix operation on an input array, using the + * Applies the inverse @ref GlossMassMatrix "mass matrix" operation on an input array, using the * inverse of the JxW values provided by the `fe_eval` argument passed to * the constructor of this class. Note that the user code must call * FEEvaluation::reinit() on the underlying evaluator to make the @@ -726,7 +726,7 @@ namespace MatrixFreeOperators /** - * This class implements the operation of the action of a mass matrix. + * This class implements the operation of the action of a @ref GlossMassMatrix "mass matrix". * * @note This class only supports the non-blocked vector variant of the * Base operator because only a single FEEvaluation object is used in the @@ -766,7 +766,7 @@ namespace MatrixFreeOperators compute_diagonal() override; /** - * Compute the lumped mass matrix. This is equal to the mass matrix times a + * Compute the lumped @ref GlossMassMatrix "mass matrix". This is equal to the mass matrix times a * vector of all ones and is equivalent to approximating the mass matrix * with a nodal quadrature rule. * @@ -797,7 +797,7 @@ namespace MatrixFreeOperators private: /** - * Applies the mass matrix operation on an input vector. It is + * Applies the @ref GlossMassMatrix "mass matrix" operation on an input vector. It is * assumed that the passed input and output vector are correctly initialized * using initialize_dof_vector(). */ diff --git a/include/deal.II/non_matching/coupling.h b/include/deal.II/non_matching/coupling.h index a00b00ef71..489fa6adb6 100644 --- a/include/deal.II/non_matching/coupling.h +++ b/include/deal.II/non_matching/coupling.h @@ -131,7 +131,7 @@ namespace NonMatching /** - * Create a coupling mass matrix for non-matching, overlapping grids. + * Create a coupling @ref GlossMassMatrix "mass matrix" for non-matching, overlapping grids. * * Given two non-matching triangulations, representing the domains $\Omega$ * and $B$, with $B \subseteq \Omega$, and two finite element spaces @@ -276,7 +276,7 @@ namespace NonMatching const ComponentMask & comps1 = ComponentMask()); /** - * Create a coupling mass matrix for non-matching independent grids, + * Create a coupling @ref GlossMassMatrix "mass matrix" for non-matching independent grids, * using a convolution kernel with compact support. * * Given two non-matching triangulations, representing the domains diff --git a/include/deal.II/numerics/matrix_creator.h b/include/deal.II/numerics/matrix_creator.h index ade18e8b20..abb6ed35ae 100644 --- a/include/deal.II/numerics/matrix_creator.h +++ b/include/deal.II/numerics/matrix_creator.h @@ -135,7 +135,7 @@ namespace hp * the coefficient @p a, as well as the degree of the given @p Mapping (if * any). * - * Note, that for vector-valued elements the mass matrix and the laplace + * Note, that for vector-valued elements the @ref GlossMassMatrix "mass matrix" and the laplace * matrix is implemented in such a way that each component couples only with * itself, i.e. there is no coupling of shape functions belonging to different * components. If the degrees of freedom have been sorted according to their @@ -195,7 +195,7 @@ namespace hp namespace MatrixCreator { /** - * Assemble the mass matrix. If no coefficient is given (i.e., if the + * Assemble the @ref GlossMassMatrix "mass matrix". If no coefficient is given (i.e., if the * pointer to a function object is zero as it is by default), the * coefficient is taken as being constant and equal to one. * In case you want to specify @p constraints and use the default argument @@ -241,7 +241,7 @@ namespace MatrixCreator constraints = AffineConstraints()); /** - * Assemble the mass matrix and a right hand side vector. If no coefficient + * Assemble the @ref GlossMassMatrix "mass matrix" and a right hand side vector. If no coefficient * is given (i.e., if the pointer to a function object is zero as it is by * default), the coefficient is taken as being constant and equal to one. * In case you want to specify @p constraints and use the default argument @@ -354,7 +354,7 @@ namespace MatrixCreator /** - * Assemble the mass matrix and a right hand side vector along the boundary. + * Assemble the @ref GlossMassMatrix "mass matrix" and a right hand side vector along the boundary. * * The matrix is assumed to already be initialized with a suiting sparsity * pattern (the DoFHandler provides an appropriate function). diff --git a/include/deal.II/numerics/tensor_product_matrix_creator.h b/include/deal.II/numerics/tensor_product_matrix_creator.h index d17e1710c1..4589205bae 100644 --- a/include/deal.II/numerics/tensor_product_matrix_creator.h +++ b/include/deal.II/numerics/tensor_product_matrix_creator.h @@ -54,7 +54,7 @@ namespace TensorProductMatrixCreator }; /** - * Create 1d mass matrix and 1d derivative matrix for a scalar + * Create 1d @ref GlossMassMatrix "mass matrix" and 1d derivative matrix for a scalar * constant-coefficient * Laplacian for a @p dim dimensional Cartesian cell. Its boundary types * can be specified with @p boundary_ids. The cell extent (including the cell extent diff --git a/include/deal.II/numerics/vector_tools.h b/include/deal.II/numerics/vector_tools.h index 85738aef45..5751f1de2e 100644 --- a/include/deal.II/numerics/vector_tools.h +++ b/include/deal.II/numerics/vector_tools.h @@ -81,7 +81,7 @@ DEAL_II_NAMESPACE_OPEN * (fh,vh)=(f,vh) * for all discrete test functions vh. This is done through * the solution of the linear system of equations M v = f where - * M is the mass matrix $m_{ij} = \int_\Omega \phi_i(x) \phi_j(x) dx$ + * M is the @ref GlossMassMatrix "mass matrix" $m_{ij} = \int_\Omega \phi_i(x) \phi_j(x) dx$ * and $f_i = \int_\Omega f(x) \phi_i(x) dx$. The solution vector $v$ then is * the nodal representation of the projection fh. The * project() functions are used in the step-21 and step-23 tutorial programs. @@ -204,7 +204,7 @@ DEAL_II_NAMESPACE_OPEN * The projection takes place on all boundary parts with boundary indicators * listed in the map (std::map*>) of boundary functions. These boundary parts may - * or may not be continuous. For these boundary parts, the mass matrix is + * or may not be continuous. For these boundary parts, the @ref GlossMassMatrix "mass matrix" is * assembled using the MatrixTools::create_boundary_mass_matrix() function, as * well as the appropriate right hand side. Then the resulting system of * equations is solved using a simple CG method (without preconditioning), which diff --git a/include/deal.II/numerics/vector_tools_boundary.h b/include/deal.II/numerics/vector_tools_boundary.h index 50a724aefd..117c201fc0 100644 --- a/include/deal.II/numerics/vector_tools_boundary.h +++ b/include/deal.II/numerics/vector_tools_boundary.h @@ -399,7 +399,7 @@ namespace VectorTools * The projection happens on only those parts of the boundary whose * indicators are represented in this map. * @param[in] q The face quadrature used in the integration necessary to - * compute the mass matrix and right hand side of the projection. + * compute the @ref GlossMassMatrix "mass matrix" and right hand side of the projection. * @param[out] boundary_values The result of this function. It is a map * containing all indices of degrees of freedom at the boundary (as covered * by the boundary parts in @p boundary_functions) and the computed dof diff --git a/include/deal.II/numerics/vector_tools_project.h b/include/deal.II/numerics/vector_tools_project.h index a20656f702..624684e0db 100644 --- a/include/deal.II/numerics/vector_tools_project.h +++ b/include/deal.II/numerics/vector_tools_project.h @@ -66,7 +66,7 @@ namespace VectorTools * (\varphi_i, f_h)_\Omega = (\varphi_i,f)_\Omega * @f} * for all test functions $\varphi_i$. This requires solving a linear system - * involving the mass matrix since the equation above is equivalent to + * involving the @ref GlossMassMatrix "mass matrix" since the equation above is equivalent to * the linear system * @f{align*}{ * \sum_j (\varphi_i, \varphi_j)_\Omega F_j = (\varphi_i,f)_\Omega @@ -102,7 +102,7 @@ namespace VectorTools * therefore make sure that the given quadrature formula is sufficiently * accurate for creating the right-hand side. * - * Otherwise, only serial Triangulations are supported and the mass matrix + * Otherwise, only serial Triangulations are supported and the @ref GlossMassMatrix "mass matrix" * is assembled using MatrixTools::create_mass_matrix. The given * quadrature rule is then used for both the matrix and the right-hand side. * You should therefore make sure that the given quadrature formula is also diff --git a/include/deal.II/sundials/arkode.h b/include/deal.II/sundials/arkode.h index dd1cfa0ca0..0926775319 100644 --- a/include/deal.II/sundials/arkode.h +++ b/include/deal.II/sundials/arkode.h @@ -234,7 +234,7 @@ namespace SUNDIALS * - implicit_function() * - explicit_function() * - * If the mass matrix is different from the identity, the user should supply + * If the @ref GlossMassMatrix "mass matrix" is different from the identity, the user should supply * - mass_times_vector() and, optionally, * - mass_times_setup() * @@ -611,7 +611,7 @@ namespace SUNDIALS /** * A function object that users may supply and that is intended to compute - * the product of the mass matrix with a given vector `v`. This function + * the product of the @ref GlossMassMatrix "mass matrix" with a given vector `v`. This function * will be called by ARKode (possibly several times) after * mass_times_setup() has been called at least once. ARKode tries to do its * best to call mass_times_setup() the minimum amount of times. @@ -631,7 +631,7 @@ namespace SUNDIALS /** * A function object that users may supply and that is intended to set up - * the mass matrix. This function is called by ARKode any time a mass + * the @ref GlossMassMatrix "mass matrix". This function is called by ARKode any time a mass * matrix update is required. The user should compute the mass matrix (or * update all the variables that allow the application of the mass matrix). * This function is guaranteed to be called by ARKode at least once, before @@ -738,7 +738,7 @@ namespace SUNDIALS /** * A LinearSolveFunction object that users may supply and that is intended * to solve the linearized system $Ax=b$, where $A = M-\gamma J$ is the - * Jacobian of the nonlinear residual. The application of the mass matrix + * Jacobian of the nonlinear residual. The application of the @ref GlossMassMatrix "mass matrix" * $M$ and Jacobian $J$ are known through the functions mass_times_vector() * and jacobian_times_vector() and $\gamma$ is a factor provided by * SUNDIALS. The matrix-vector product $Ax$ is encoded in the supplied @@ -871,7 +871,7 @@ namespace SUNDIALS * * This function should compute the solution to the preconditioner equation * $Pz=r$ and store it in @p z. In this equation $P$ should approximate the - * mass matrix $M$. + * @ref GlossMassMatrix "mass matrix" $M$. * * @param[in] t The current time * @param[in] r The right-hand side of the preconditioner equation @@ -900,7 +900,7 @@ namespace SUNDIALS * specified in mass_preconditioner_solve(). * * This function should prepare the solution of the preconditioner equation - * $Pz=r$. In this equation $P$ should approximate the mass matrix $M$. + * $Pz=r$. In this equation $P$ should approximate the @ref GlossMassMatrix "mass matrix" $M$. * * If the mass_preconditioner_setup() function is not provided, then * mass_preconditioner_solve() should do all the work by itself. @@ -1021,7 +1021,7 @@ namespace SUNDIALS setup_system_solver(const VectorType &solution); /** - * Set up the solver and preconditioner for a non-identity mass matrix in + * Set up the solver and preconditioner for a non-identity @ref GlossMassMatrix "mass matrix" in * the ARKODE memory object based on the user-specified functions. * @param solution The solution vector which is used as a template to create * new vectors.