]> https://gitweb.dealii.org/ - release-papers.git/commitdiff
Talk about cells intersection and prolongation operator 98/head
authorMarco Feder <marco.feder@sissa.it>
Tue, 20 Jun 2023 07:16:21 +0000 (09:16 +0200)
committerMarco Feder <marco.feder@sissa.it>
Tue, 20 Jun 2023 07:33:43 +0000 (09:33 +0200)
9.5/paper.tex
9.5/png/mesh_0.png [new file with mode: 0644]
9.5/png/mesh_1.png [new file with mode: 0644]
9.5/png/mesh_2.png [new file with mode: 0644]

index 79d7863393f219c3a8bd326e9b3a63377cd9865a..6cacb335f4f1513b20dcc9b383ab206c3606ae17 100644 (file)
@@ -515,7 +515,9 @@ in more detail.
 In the current release, we added experimental support to compute intersections on parallel::distributed::Triangulation objects using \texttt{CGAL}~\cite{cgal-user-ref}.
 For this purpose we introduced a free function, which computes intersections and relevant information for communication from \texttt{intersection\_requests}.
 \texttt{intersection\_requests} is a vector indicating entities of a given triangulation (in the form of \texttt{GridTools::Cache}) that intersections are computed upon.
-Each entity (face or cell) is described by a vector of vertices.
+Each entity (face or cell) is described by a vector of vertices. The actual computation of the intersection of two geometric
+entities is performed by the new function \texttt{CGALWrappers::compute\_intersection\_of\_cells()}.
+
 
 \begin{c++}
 // compute intersections on distributed triangulation  
@@ -564,18 +566,24 @@ In the current release, we have added support for the case
 that multigrid levels are given by non-nested meshes~\cite{adams2002evaluation, bittencourt2001nonnested, bramble1991analysis}. An example for such meshes is
 presented in Figure~\ref{fig:nonnested}.
 
-\begin{figure}
-
-\centering
-
-\todo[inline]{Complete these figures.}
-
-\fbox{\begin{minipage}{0.31\textwidth}\centering 0\vspace{5cm}\end{minipage}}
-\fbox{\begin{minipage}{0.31\textwidth}\centering 1\vspace{5cm}\end{minipage}}
-\fbox{\begin{minipage}{0.31\textwidth}\centering 2\vspace{5cm}\end{minipage}}
-
-\caption{\it Example of non-nested multigrid levels.}\label{fig:nonnested}
 
+\begin{figure}
+  \centering
+  \begin{subfigure}[b]{0.28\textwidth}
+    \centering
+    \includegraphics[width=\textwidth]{png/mesh_0.png}
+  \end{subfigure}\qquad
+  \hfill
+  \begin{subfigure}[b]{0.28\textwidth}
+    \centering
+    \includegraphics[width=\textwidth]{png/mesh_1.png}
+  \end{subfigure}
+  \hfill
+  \begin{subfigure}[b]{0.28\textwidth}
+    \centering
+    \includegraphics[width=\textwidth]{png/mesh_2.png}
+  \end{subfigure}
+  \caption{\it Example of non-nested multigrid levels.}\label{fig:nonnested}
 \end{figure}
 
 The current implementation extends the existing global-coarsening infrastructure by
@@ -598,21 +606,16 @@ takes \texttt{Mapping} instances, and (ii) is not limited to the case
 that the coarser of the two \texttt{DoFHandler} instances can be generated by a coarsening step from the fine
 mesh.
 
-At the time of writing, the \texttt{MGTwoLevelTransferNonNested} operator performs
-a pointwise interpolation (injection) from the coarse mesh to the support points
-of the fine mesh. Adopting the notation of~\cite{munch2022gc}, we perform
-for prolongation
-\todo{I think you need to at least explain in a few words what each of
-  the components of this formula is.}
-\todo{Alternatively (MK's preference), skip the parts that are just unnecessary
-  abstractions that do not help the reader's understanding.}
+At the time of writing, the \texttt{MGTwoLevelTransferNonNested} operator provides a prolongation operator $\mathcal{P}^{(f,c)}$
+that prolongates a vector $x^{(c)}$ from the coarse space to the fine space:
 \begin{align*}
-x^{(f)} = \mathcal{W}^{(f)} \circ \sum_{e \in \{\text{coarse cells}\}} \mathcal{S}_e^{(f)} \circ \mathcal{P}_e^{(f, c)}
-\circ \mathcal{C}_e^{(c)} \circ \mathcal{G}_e^{(c)} x^{(c)},
+x^{(f)} = \mathcal{P}^{(f, c)}  x^{(c)},
 \end{align*}
-i.e., loop over all coarse cells and interpolate to all (fine support) points that fall
-into the cell with \texttt{FEPointEvaluation}. The local result is scattered into a global
-vector, which is finalized by a communication and a weighting step.
+by a pointwise interpolation (injection) from the coarse mesh to the support points of the fine mesh. This is done
+by looping over all coarse cells and interpolating to all (fine support) points that fall into the cell with
+\texttt{FEPointEvaluation}. The local result is scattered into $x^{(f)}$, which is finalized by a
+communication and a weighting step that is necessary as multiple elements could add to the same global entry.
+
 
 The current implementation works for scalar and vectorial, continuous (\texttt{FE\_Q})
 and discontinuous (\texttt{FE\_DGQ}) elements on hypercube-shaped cells. We plan to support
diff --git a/9.5/png/mesh_0.png b/9.5/png/mesh_0.png
new file mode 100644 (file)
index 0000000..6397226
Binary files /dev/null and b/9.5/png/mesh_0.png differ
diff --git a/9.5/png/mesh_1.png b/9.5/png/mesh_1.png
new file mode 100644 (file)
index 0000000..83d669a
Binary files /dev/null and b/9.5/png/mesh_1.png differ
diff --git a/9.5/png/mesh_2.png b/9.5/png/mesh_2.png
new file mode 100644 (file)
index 0000000..9796e35
Binary files /dev/null and b/9.5/png/mesh_2.png differ

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.