Returning to the ordinary differential equation (5) and continuing to make the substitution Y = MU, we now reconsider the previous equation as the following differential-algebraic system:
$$\displaystyle \begin{aligned} \frac{d}{d\hat t} Y = A U\;, \qquad Y = M U\;. \end{aligned} $$
(6)
We begin by subdividing the interval (0, 1) into \(m\in \mathbb {N}\) smaller intervals of size \(\frac {1}{m}\), defined by \((\hat t_i,\hat t_{i+1})=(\frac {i}{m},\frac {i+1}{m})\), for \(i\in \mathbb {N}\) and 0 ≤ i ≤ m − 1. Recall that A is independent of quasi-time \(\hat t\), and M is an affine function of \(\hat t\), i.e.,
$$\displaystyle \begin{aligned} M(\hat t) = M_i + (\hat t - \hat t_i) M', \qquad \hat t \in (\hat t_i, \hat t_{i+1}) \end{aligned}$$
where \(M_i = M(\hat t_i)\) and the derivative M′ is a constant matrix. We want to design a time-stepping scheme that is aware of this structure.
Consider the approximations to Y, U on \((\hat t_i,\hat t_{i+1})\) in the form of Taylor polynomials Y
i, U
i of degree q, defined by
$$\displaystyle \begin{aligned} Y_i(\hat t) = \sum_{n=0}^{q} \frac{(\hat t - \hat t_i)^n}{n!} Y_{i,n} \qquad U_i(\hat t) = \sum_{n=0}^{q-1} \frac{(\hat t - \hat t_i)^n}{n!} U_{i,n}\;, \qquad \hat t \in (\hat t_i,\hat t_{i+1})\;,\end{aligned} $$
(7)
where \(Y_{i,n}=Y_i^{(n)}(\hat t_i)\) and \(U_{i,n}=U_i^{(n)}(\hat t_i).\) To find these derivatives, we differentiate both equations of (6) n times to get
$$\displaystyle \begin{aligned} Y^{(n+1)}(\hat t) & = A U^{(n)}(\hat t)\;, &n \ge 0\;, \\ Y^{(n)}(\hat t) & = M(\hat t) U^{(n)}(\hat t) + n M' U^{(n-1)}(\hat t)\;, &n \ge 1\;. \end{aligned} $$
For the second equation we used Leibnitz’ formula \((fg)^{(n)} = \sum _{i=0}^n { n \choose i } f^{(i)} g^{(n-i)}\), and the fact that M is affine-linear. Evaluating these equations for the Taylor polynomials Y
i, U
i at \(\hat t = \hat t_i\), we obtain a recursive formula for Y
i,n and U
i,n in terms of U
i,n−1, namely
$$\displaystyle \begin{aligned} \begin{array}{r c l @{\qquad }l} Y_{i,n} & = & A U_{i,n-1}\;, & 1\le n \le q\;, \\ {} M_i U_{i,n} & = & Y_{i,n} - n M' U_{i,n-1}\;, & 1\le n \le q-1\;, \end{array} \end{aligned} $$
(8)
for all 0 ≤ i ≤ m − 1. Given \(Y_{0,0} = Y(\hat t_0)\), M
0
U
0,0 = Y
0,0, applying (8) with i = 0 gives the approximate functions \(Y_0(\hat t), U_0(\hat t)\) in the first subinterval \((\hat t_0, \hat t_1)\). The recursive formulas are initiated for later subintervals at n = 0 by
$$\displaystyle \begin{aligned} Y_{i,0} &= Y_{i-1}(\hat t_i), & M_i U_{i,0} & = Y_{i,0}\;, && 1\le i\le m-1\;. \end{aligned} $$
(9)
After the final subinterval, we get Y
m−1(t
m), our approximation to Y (1). We shall refer to the new time-stepping scheme generated by (8) as the q-stage SAT (structure-aware Taylor) time-stepping.
Note that Y
m−1(t
m) is our approximation to Y = MU at the top of the tent. This value is then passed to the next tent in time. The time dependence of M arises from the time dependence of ∇φ. This gradient is continuous along spacetime lines of constant spatial coordinates. Therefore, when passing from one element of a tent to the same element within the next tent in time, Y is continuous (since the solution U is continuous). Of course, on flat fronts ∇φ = ∇τ = 0, so there M is just a diagonal matrix containing the material parameters.
To briefly remark on the expected convergence rate of a q-stage SAT time-stepping, recall that due to the mapping of the MTP method we solve for \(\hat u = u \circ \varPhi \), which satisfies \( \partial ^n_{\hat t} \hat u = \delta ^n (\partial ^n_tu) \circ \varPhi \). The causality condition implies that δ → 0 if the mesh size h → 0. Thus we may expect the nth temporal derivative of \(\hat u\), and correspondingly U
(n), to go to zero at the rate \(\mathcal {O}(h^n)\). By using a q-stage SAT time-stepping, we approximate the first q − 1 terms of the exact Taylor expansion of U. Thus we expect the convergence rate to be O(h
q), the size of the remainder term involving U
(q). The next section provides numerical evidence for this.
Before concluding this section, we should note that in (8) and (9), we tacitly assumed that M
i is invertible. Let us show that this is indeed the case whenever the causality condition (see Sect. 2) \(|\nabla \varphi | < \sqrt {\varepsilon \mu }\) is fulfilled. At any quasi-time \(\hat t\), given a \(\hat w = (\hat {w}_E, \hat {w}_H) \in V_h\) whose coefficient vector in the basis expansion is \(W \in \mathbb {R}^N\), consider the equation \(M(\hat t) U = W\) for the coefficient vector U of \( \hat u \in V_h\). This equation, in variational form, is
$$\displaystyle \begin{aligned} \int_{\omega_V} [ g(\hat u) - f(\hat u) \nabla \varphi ] \cdot \hat v= \int_{\omega_V} (\hat{w}_E, \hat{w}_H) \cdot \hat v, \qquad \text{ for all } \hat v \in V_h. \end{aligned} $$
(10)
Let \(a(\hat u, \hat v)\) denote the left hand side of (10). To prove solvability of (10), it suffices to prove that a(⋅, ⋅) is a coercive bilinear form on [L
2]6 for any \(\hat t\). By inserting \(g(\hat u) = [\varepsilon \hat E, \mu \hat H ]^T\) and \(f(\hat u) = [-\operatorname {skew} \hat H, \operatorname {skew} \hat E]^T\) into \(a(\hat u, \hat u)\),
$$\displaystyle \begin{aligned} \begin{array}{rcl} a(\hat u,\hat u) &\displaystyle = &\displaystyle \int_{\omega_V} ( \varepsilon \hat E - \hat H \times \nabla \varphi)\cdot \hat E + ( \mu \hat H + \hat E \times \nabla \varphi)\cdot \hat H \\ &\displaystyle = &\displaystyle \int_{\omega_V} \varepsilon \hat E\cdot \hat E + \mu \hat H\cdot \hat H + 2 (\hat E \times \nabla \varphi)\cdot \hat H \\ &\displaystyle \ge &\displaystyle \int_{\omega_V} \varepsilon \hat E\cdot \hat E + \mu \hat H\cdot \hat H - 2 \frac{|\nabla \varphi|}{\sqrt{\varepsilon\mu}} \sqrt{\varepsilon}|\hat E|\sqrt{\mu}|\hat H| \;, \end{array} \end{aligned} $$
where we used the Cauchy-Schwarz inequality and inserted \(\sqrt {\varepsilon }\) and \(\sqrt {\mu }\) to achieve the desired scaling. By applying Young’s inequality and \(|\nabla \varphi | < \sqrt {\varepsilon \mu }\),
$$\displaystyle \begin{aligned} \begin{array}{rcl} a(\hat u,\hat u) &\displaystyle \ge &\displaystyle \int_{\omega_V} \varepsilon \hat E\cdot \hat E + \mu \hat H\cdot \hat H - \frac{|\nabla \varphi|}{\sqrt{\varepsilon\mu}} (\varepsilon \hat E\cdot \hat E + \mu \hat H\cdot \hat H) \\ &\displaystyle = &\displaystyle \int_{\omega_V} \left( 1 - \frac{|\nabla \varphi|}{\sqrt{\varepsilon\mu}}\right) (\varepsilon \hat E\cdot \hat E + \mu \hat H\cdot \hat H) \ge C \min{(\varepsilon,\mu)} \|\hat u\|{}_{L_2}^2\;, \end{array} \end{aligned} $$
form some constant C > 0. Thus M
i is invertible and the SAT time-stepping is well defined on all tents respecting the causality condition.
One may exploit the specific details of the Maxwell problem to avoid the assembly and the inversion of matrices M
i (as we have done in our implementation). In fact, instead of (10), we can explicitly solve the corresponding exact undiscretized equation obtained by replacing V
h by [L
2]6 in (10). The solution \(\hat u = ( \hat {E}, \hat {H})\) in closed form reads
$$\displaystyle \begin{aligned} \begin{array}{rcl} \hat E &\displaystyle = &\displaystyle \frac{1}{\varepsilon \mu - | \nabla \varphi |{}^2 } \left( I - \frac{1}{\varepsilon \mu} \nabla \varphi \nabla \varphi^T \right) (\mu \hat w_E + \hat w_H \times \nabla \varphi) \;, \\ \hat H &\displaystyle = &\displaystyle \frac{1}{\varepsilon \mu - | \nabla \varphi |{}^2 } \left( I - \frac{1}{\varepsilon \mu} \nabla \varphi \nabla \varphi^T \right) (\varepsilon \hat w_H - \hat w_E \times \nabla \varphi)\;. \end{array} \end{aligned} $$
We then perform a projection of these into V
h to obtain the coefficients \(U(\hat t_i)\). For uncurved elements, this just involves the inversion of a diagonal mass matrix. For the small number of curved elements, we use a highly optimized algorithm which uses an approximation instead of the exact inverse mass matrix.