The SMART numerical solution algorithms#
SMART solves the multi-domain reaction-transport equations outline in The SMART mathematical framework via finite difference discretizations in time, a finite element discretizations in space, and either a monolithic or iterative approach to address the system couplings. We describe the monolithic approach here, considering linear diffusion-only transport relations for concreteness and to illustrate linear-nonlinear strategies.
Monolithic solution of the multi-domain reaction-diffusion equations#
Variational formulation#
Introduce the Sobolev spaces \(H^1(\Omega^m)\), \(m \in \mathcal{M}\) of square-integrable functions on \(\Omega^m\) with square-integrable weak derivatives, and analogously for \(H^1(\Gamma^q)\), \(q \in Q\), as well as the vector function spaces \(H^1(\Omega^m, \mathbb{R}^d) = H^1(\Omega)^d\). For solving the multi-domain reaction-diffusion equations, we introduce the two product spaces \(U\) and \(V\) consisting of (sub)domain fields and (sub)surface fields respectively:
To represent the solution fields \(u, v\) comprised of the separate (sub)domain and (sub)surface components, we label
By standard techniques (integrating by test functions and integrating by parts), we may rephrase the multi-domain reaction-diffusion equations in variational form: find \(u \in U\) and \(v \in V\) such that for all \(\phi \in U\) and \(\psi \in V\):
where both forms \(F\) and \(G\) are composed of sums over domains or surfaces and species:
Furthermore, with the \(L^2(O)\)-inner product over any given domain \(O \subset \Omega\) defined as
we have defined
and, for any \(q \in \mathcal{Q}^{mn}\) for given \(\Omega^m\) and \(\Omega^n\) interfacing \(\Omega^m\) via \(\Gamma^q\), finally:
Discretization in time and space#
We now discretize in time via an implicit (first-order) Euler scheme with time steps \(0 = t_0 < t_1 < \ldots < t_{n-1} < t_n = T\) with timestep \(\tau_n = t_n - t_{n-1}\). To discretize in space, we consider a conforming finite element mesh \(\mathcal{T}\) defined relative to the parcellation of \(\Omega\) into subdomains, surfaces and subsurfaces, such that \(\mathcal{T}^m \subseteq \mathcal{T}\) defines a submesh of \(\Omega^m\) for \(m \in \mathcal{M}\), and \(\mathcal{G}^q\) defines a (co-dimension one) mesh of \(\Gamma^q\) for \(q \in \mathcal{Q}\). We define the finite element spaces of continuous piecewise linears \(\mathcal{P}_1\) defined relative to each (sub)mesh, and define the product spaces
For each time step \(t_i\), given discrete solutions \(u_h^{-}\) and \(v_h^{-}\) at the previous time \(t_{i-1}\), we then solve the nonlinear, coupled time-discrete problem: find \(u_h \in U_h\) and \(v_h \in V_h\)
for all \(\phi \in U_h\), \(\psi \in V_h\), where \(F_{\tau_n}\) and \(G_{\tau_n}\) are defined by the forms \(F\) and \(G\) after implicit Euler time-discretization and depend on the given \(u_h^{-}\) and \(v_h^{-}\).
Nonlinear solution algorithms#
By default, the monolithic nonlinear discrete system (2) is solved by Newton-Raphson iteration with a symbolically derived discrete Jacobian.