This commit is contained in:
2026-04-08 07:24:01 -04:00
parent ef0db475e6
commit 1f024e5ea1
+63
View File
@@ -4,6 +4,7 @@
\usetikzlibrary{arrows.meta}
\usetikzlibrary{decorations.pathmorphing}
\usetikzlibrary{calc}
\tikzset{zigzag/.style={decorate, decoration=zigzag}}
\def \L {2.}
@@ -104,6 +105,22 @@
\end{frame}
\begin{frame}{Methods on evolving black holes: moving puncture}
In the isotropic coordinate for Schwarzschild black hole, the spical metric
\begin{equation*}
\dd{l^2} = \left( 1+\frac{M}{2r} \right)^4 (\dd{r^2} + r^2 \dd{\Omega^2})
\end{equation*}
is conformally flat, with the conformal factor $\psi = 1 + \frac{M}{2r}$.
General $N$ black hole puncture initial data:
\begin{equation*}
\psi = \sum_{i=1}^N \frac{M_i}{2|\vb*{r}-\vb*{r}_i|} + (\text{regular part}),
\end{equation*}
again, if we factor out the conformal factor $\psi$, the remaining conformal metric is regular everywhere.
\end{frame}
\begin{frame}{Methods on evolving black holes: moving puncture}
In the moving puncture mothod, we won't cut out the black hole singularity, but choose a gauge condition that makes the singularity invisible to the numerical evolution.
\begin{figure}
\centering
\includegraphics[width=0.42\textwidth]{imgs/moving_puncture_init.png}
@@ -122,6 +139,52 @@
\begin{frame}{Discontinuous Galerkin method and \texttt{nmesh}}
\subsection{Discontinuous Galerkin method and \texttt{nmesh}}
There are two main numerical methods in numerical relativity:
\begin{itemize}
\item Finite Difference / Finite Volume
\begin{itemize}
\item Easy to implement, and mature codes available
\end{itemize}
\item Spectral / Discontinuous Galerkin
\begin{itemize}
\item High accuracy for smooth solutions
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}{Discontinuous Galerkin method and \texttt{nmesh}}
Core idea of DG method: if we have a first-order PDE system:
\begin{equation*}
\pdvt{u} + A^i \pdv{u}{x^i} = S,
\end{equation*}
then for some test functions $\{v_a\}$, we have
\begin{equation*}
\left(v_a, \pdvt{u}\right) + \left(v_a, A^i \pdv{u}{x^i}\right) = (v_a, S),
\end{equation*}
which reduce to a linear system of $\{ u_a = (v_a, u)\}$ after intergrating by parts. Boundary terms are replaced by numerical fluxes.
We use Lagrange polynomials over Gauss-Legendre points on each element.
\begin{center}
\begin{tikzpicture}[scale=4]
\draw[thick, blue] (0,0) -- (1,0);
\draw[thick, red] (1,0) -- (2,0);
\pgfmathsetmacro{\a}{0.5 - 0.5*sqrt(3/7)}
\pgfmathsetmacro{\b}{0.5 + 0.5*sqrt(3/7)}
\pgfmathsetmacro{\c}{1.5 - 0.5*sqrt(3/7)}
\pgfmathsetmacro{\d}{1.5 + 0.5*sqrt(3/7)}
\foreach \x in {0,\a,0.5,\b,1}
\fill[blue] (\x,0) circle (0.018);
\foreach \x in {1,\c,1.5,\d,2}
\fill[red] (\x,0) circle (0.018);
\fill[blue] (1,0) circle (0.022);
\fill[red] (1,0) circle (0.013);
\end{tikzpicture}
\end{center}
Information exchange only happens at the boundaries of elements through numerical fluxes, which makes it easy to parallelize.
\end{frame}
\begin{frame}{References}