]> https://gitweb.dealii.org/ - dealii.git/commitdiff
Modify the function call in the test and applied the suggested changes. 8004/head
authorWenyu Lei <lwy5515@gmail.com>
Mon, 6 May 2019 21:26:46 +0000 (23:26 +0200)
committerWenyu Lei <lwy5515@gmail.com>
Sun, 22 Mar 2020 13:37:45 +0000 (14:37 +0100)
Applied the suggested changes

Added a new line at the end of the inst.in file

remove the white space in the last line

include/deal.II/non_matching/coupling.h
source/non_matching/coupling.cc
source/non_matching/coupling.inst.in
tests/non_matching/coupling_08.cc

index b8f8e18a7a287147ef6e449631ab51ec6b07c77b..81d80fb4ae4598006e4f25b4d289cb255e1ae770 100644 (file)
@@ -228,8 +228,8 @@ namespace NonMatching
    * using a convolution kernel with compact support of radius epsilon.
    *
    * Given two non-matching triangulations, representing the domains $\Omega^0$
-   * and $\Omega^1$, both embedded in $R^d$, and two finite element spaces
-   * $V^0(\Omega^0) = \text{span}\{v_i\}_{i=0}^n$ and $V^1(\Omega^1) =
+   * and $\Omega^1$, both embedded in $\mathbb{R}^d$, and two finite element
+   * spaces $V^0(\Omega^0) = \text{span}\{v_i\}_{i=0}^n$ and $V^1(\Omega^1) =
    * \text{span}\{w_\alpha\}_{\alpha=0}^m$, compute the sparsity pattern that
    * would be necessary to assemble the matrix
    *
@@ -240,17 +240,18 @@ namespace NonMatching
    * \f]
    *
    * where $V^0(\Omega^0)$ is the finite element space associated with the
-   * `dh0` passed to this function (or part of it, if specified in
-   * `comps0`), while $V^1(\Omega^1)$ is the finite element space associated
-   * with the `dh1` passed to this function (or part of it, if specified
-   * in `comps1`), and $K^\epsilon$ is a function with compact support included
-   * in a ball of radius $\epsilon$, derived from CutOffFunctionBase.
-   *
-   * The `comps0` and `comps1` masks are assumed to be ordered in
-   * the same way: the first component of `comps0` will couple with the
-   * first component of `comps1`, the second with the second, and so
-   * on. If one of the two masks has more non-zero than the other, then the
-   * excess components will be ignored.
+   * @p dh0 passed to this function (or part of it, if specified in
+   * @p comps0), while $V^1(\Omega^1)$ is the finite element space associated
+   * with the @p dh1 passed to this function (or part of it, if specified
+   * in @p comps1), and $K^\epsilon$ is a function derived from
+   * CutOffFunctionBase with compact support included in a ball of radius
+   * $\epsilon$.
+   *
+   * The @p comps0 and @p comps1 masks are assumed to be ordered in
+   * the same way: the first component of @p comps0 will couple with the
+   * first component of @p comps1, the second with the second, and so
+   * on. If one of the two masks has more active components than the other, then
+   * the excess components will be ignored.
    *
    * For both spaces, it is possible to specify a custom Mapping, which
    * defaults to StaticMappingQ1 for both.
@@ -293,9 +294,9 @@ namespace NonMatching
    * using a convolution kernel with compact support.
    *
    * Given two non-matching triangulations, representing the domains
-   * $\Omega^0$ and $\Omega^1$, both embedded in $R^d$, and two finite element
-   * spaces $V^0(\Omega^0) = \text{span}\{v_i\}_{i=0}^n$ and $V^1(\Omega^1) =
-   * \text{span}\{w_\alpha\}_{\alpha=0}^m$, compute the matrix
+   * $\Omega^0$ and $\Omega^1$, both embedded in $\mathbb{R}^d$, and two finite
+   * element spaces $V^0(\Omega^0) = \text{span}\{v_i\}_{i=0}^n$ and
+   * $V^1(\Omega^1) = \text{span}\{w_\alpha\}_{\alpha=0}^m$, compute the matrix
    *
    * \f[
    * M_{i\alpha} \dealcoloneq \int_{\Omega^0} \int_{\Omega^1}
@@ -304,20 +305,21 @@ namespace NonMatching
    * \f]
    *
    * where $V^0(\Omega^0)$ is the finite element space associated with the
-   * `dh0` passed to this function (or part of it, if specified in
-   * `comps0`), while $V^1(\Omega^1)$ is the finite element space associated
-   * with the `dh1` passed to this function (or part of it, if specified
-   * in `comps1`), and $K^\epsilon$ is a function with compact support included,
-   * in a ball of radius $\epsilon$, derived from CutOffFunctionBase.
+   * @p dh0 passed to this function (or part of it, if specified in
+   * @p comps0), while $V^1(\Omega^1)$ is the finite element space associated
+   * with the @p dh1 passed to this function (or part of it, if specified
+   * in @p comps1), and $K^\epsilon$ is a function derived from
+   * CutOffFunctionBase with compact support included in a ball of radius
+   * $\epsilon$.
    *
    * The corresponding sparsity patterns can be computed by calling the
    * make_coupling_sparsity_pattern() function.
    *
-   * The `comps0` and `comps1` masks are assumed to be ordered in
-   * the same way: the first component of `comps0` will couple with the
-   * first component of `comps1`, the second with the second, and so
-   * on. If one of the two masks has more non-zero than the other, then the
-   * excess components will be ignored.
+   * The @p comps0 and @p comps1 masks are assumed to be ordered in
+   * the same way: the first component of @p comps0 will couple with the
+   * first component of @p comps1, the second with the second, and so
+   * on. If one of the two masks has more active components than the other, then
+   * the excess components will be ignored.
    *
    * For both spaces, it is possible to specify a custom Mapping, which
    * defaults to StaticMappingQ1 for both.
index ff110959379bfb3488ac18b77e2cf520b4024048..ae31b707264f08eaded34017bc06eee30d00da62 100644 (file)
@@ -662,11 +662,11 @@ namespace NonMatching
     Assert(!zero_is_distributed || !one_is_distributed, ExcNotImplemented());
 
     // If we can loop on both, we decide where to make the outer loop according
-    // to the size of triangulation. The reasoning is the following:
-    // - Access to the tree: log(N)
-    // - We compute intersection for each of the outer loop cells (M)
+    // to the size of the triangulation. The reasoning is the following:
+    // - cost for accessing the tree: log(N)
+    // - cost for computing the intersection for each of the outer loop cells: M
     // Total cost (besides the setup) is: M log(N)
-    // If we can, make sure M is the smallest number
+    // If we can, make sure M is the smaller number of the two.
     const bool outer_loop_on_zero =
       (zero_is_distributed && !one_is_distributed) ||
       (dh1.get_triangulation().n_active_cells() >
@@ -681,8 +681,6 @@ namespace NonMatching
 
     if (outer_loop_on_zero)
       {
-        std::cout << "Looping on zero." << std::endl;
-
         Assert(one_is_distributed == false, ExcInternalError());
 
         const auto &tree1 = cache1.get_cell_bounding_boxes_rtree();
@@ -805,11 +803,11 @@ namespace NonMatching
     Assert(!zero_is_distributed || !one_is_distributed, ExcNotImplemented());
 
     // If we can loop on both, we decide where to make the outer loop according
-    // to the size of triangulation. The reasoning is the following:
-    // - Access to the tree: log(N)
-    // - We compute intersection for each of the outer loop cells (M)
+    // to the size of the triangulation. The reasoning is the following:
+    // - cost for accessing the tree: log(N)
+    // - cost for computing the intersection for each of the outer loop cells: M
     // Total cost (besides the setup) is: M log(N)
-    // If we can, make sure M is the smallest number
+    // If we can, make sure M is the smaller number of the two.
     const bool outer_loop_on_zero =
       (zero_is_distributed && !one_is_distributed) ||
       (dh1.get_triangulation().n_active_cells() >
@@ -839,7 +837,8 @@ namespace NonMatching
                                                         fe1.dofs_per_cell);
 
     // Global to local indices
-    auto p = internal::compute_components_coupling(comps0, comps1, fe0, fe1);
+    const auto p =
+      internal::compute_components_coupling(comps0, comps1, fe0, fe1);
     const auto &gtl0 = p.first;
     const auto &gtl1 = p.second;
 
index 303afef8312d8a22d0a71af2a84254bc01ab7c36..83f484ff2b92f4515e496a5648b0509d2447c573 100644 (file)
@@ -96,4 +96,4 @@ for (dim0 : DIMENSIONS; dim1 : DIMENSIONS; spacedim : SPACE_DIMENSIONS;
       const ComponentMask &                                 comps0,
       const ComponentMask &                                 comps1);
 #endif
-  }
\ No newline at end of file
+  }
index eedf9b1daba728607e2e285143e511ac42918b20..f8816c55a6b4c01cf0033a389f234c3d05cde2de 100644 (file)
@@ -38,9 +38,8 @@
 using namespace dealii;
 
 // Test that a coupling matrix can be constructed for each pair of dimension and
-// immersed dimension, and check that constants are projected correctly.
-//
-// Even when locally refined grids are used.
+// immersed dimension, and check that constants are projected correctly
+// even when locally refined grids are used.
 
 template <int dim0, int dim1, int spacedim>
 void
@@ -94,7 +93,7 @@ test()
   {
     DynamicSparsityPattern dsp(dh0.n_dofs(), dh1.n_dofs());
     NonMatching::create_coupling_sparsity_pattern(
-      epsilon, cache0, cache1, dh0, dh1, dsp, constraints0);
+      epsilon, cache0, cache1, dh0, dh1, quad1, dsp, constraints0);
     sparsity.copy_from(dsp);
   }
   SparseMatrix<double> coupling(sparsity);

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.

Douglas Adams


Typeset in Trocchi and Trocchi Bold Sans Serif.