Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Operator splitting for coupled linear port-Hamiltonian systems

Abstract

Operator splitting methods tailored to coupled linear port-Hamiltonian systems are developed. We present algorithms that are able to exploit scalar coupling, as well as multirate potential of these coupled systems. The obtained algorithms preserve the dissipative structure of the overall system and are convergent of second order. Numerical results for coupled mass-spring-damper chains illustrate the computational efficiency of the splitting methods compared to a straight-forward application of the implicit midpoint rule to the overall system.

keywords:
port-Hamiltonian systems, operator splitting, multiple time stepping.
journal:
\affiliation

[BUW]organization=Bergische Universität Wuppertal, IMACM, addressline=Gaußstraße 20, city=Wuppertal, postcode=D-42119, country=Germany

1 Introduction

Many (complex) physical systems can be modeled as linear port-Hamiltonian systems (PHS) of ordinary differential equations (ODEs) [1]

x˙(t)˙𝑥𝑡\displaystyle\dot{x}(t)over˙ start_ARG italic_x end_ARG ( italic_t ) =[JR]H(x)+Bu(t),x(t0)=x0,formulae-sequenceabsentdelimited-[]𝐽𝑅𝐻𝑥𝐵𝑢𝑡𝑥subscript𝑡0subscript𝑥0\displaystyle=\left[J-R\right]\nabla H(x)+Bu(t),\quad x(t_{0})=x_{0},= [ italic_J - italic_R ] ∇ italic_H ( italic_x ) + italic_B italic_u ( italic_t ) , italic_x ( italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) = italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , (1a)
y(t)𝑦𝑡\displaystyle y(t)italic_y ( italic_t ) =BH(x),absentsuperscript𝐵top𝐻𝑥\displaystyle=B^{\top}\nabla H(x),= italic_B start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT ∇ italic_H ( italic_x ) , (1b)

with state variable x:[t0,tend]n:𝑥subscript𝑡0subscript𝑡endsuperscript𝑛x\colon[t_{0},t_{\mathrm{end}}]\to\mathbb{R}^{n}italic_x : [ italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT roman_end end_POSTSUBSCRIPT ] → blackboard_R start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT, quadratic Hamiltonian H(x)=12xQx𝐻𝑥12superscript𝑥top𝑄𝑥H(x)=\tfrac{1}{2}x^{\top}Qxitalic_H ( italic_x ) = divide start_ARG 1 end_ARG start_ARG 2 end_ARG italic_x start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT italic_Q italic_x, J=Jn×n𝐽superscript𝐽topsuperscript𝑛𝑛J=-J^{\top}\in\mathbb{R}^{n\times n}italic_J = - italic_J start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT italic_n × italic_n end_POSTSUPERSCRIPT skew-symmetric, Rn×n𝑅superscript𝑛𝑛R\in\mathbb{R}^{n\times n}italic_R ∈ blackboard_R start_POSTSUPERSCRIPT italic_n × italic_n end_POSTSUPERSCRIPT positive semi-definite, input u:[t0,tend]d:𝑢subscript𝑡0subscript𝑡endsuperscript𝑑u\colon[t_{0},t_{\mathrm{end}}]\to\mathbb{R}^{d}italic_u : [ italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT roman_end end_POSTSUBSCRIPT ] → blackboard_R start_POSTSUPERSCRIPT italic_d end_POSTSUPERSCRIPT and output y:[t0,tend]d:𝑦subscript𝑡0subscript𝑡endsuperscript𝑑y\colon[t_{0},t_{\mathrm{end}}]\to\mathbb{R}^{d}italic_y : [ italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , italic_t start_POSTSUBSCRIPT roman_end end_POSTSUBSCRIPT ] → blackboard_R start_POSTSUPERSCRIPT italic_d end_POSTSUPERSCRIPT, as well as the port matrix Bn×d𝐵superscript𝑛𝑑B\in\mathbb{R}^{n\times d}italic_B ∈ blackboard_R start_POSTSUPERSCRIPT italic_n × italic_d end_POSTSUPERSCRIPT. Supposing sufficient regularity of the input, there exists an unique solution that satisfies the energy balance condition

ddtH(x(t))=H(x(t))R(x(t))H(x(t))+y(t)u(t)y(t)u(t).dd𝑡𝐻𝑥𝑡𝐻superscript𝑥𝑡top𝑅𝑥𝑡𝐻𝑥𝑡𝑦superscript𝑡top𝑢𝑡𝑦superscript𝑡top𝑢𝑡\displaystyle\tfrac{\mathrm{d}}{\mathrm{d}t}H(x(t))=-\nabla H(x(t))^{\top}R(x(% t))\nabla H(x(t))+y(t)^{\top}u(t)\leq y(t)^{\top}u(t).divide start_ARG roman_d end_ARG start_ARG roman_d italic_t end_ARG italic_H ( italic_x ( italic_t ) ) = - ∇ italic_H ( italic_x ( italic_t ) ) start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT italic_R ( italic_x ( italic_t ) ) ∇ italic_H ( italic_x ( italic_t ) ) + italic_y ( italic_t ) start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT italic_u ( italic_t ) ≤ italic_y ( italic_t ) start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT italic_u ( italic_t ) . (2)

The dissipation inequality (2) can also be stated in integral form, i.e., H(x(t0+h))H(x(t0))t0t0+hy(τ)u(τ)dτ𝐻𝑥subscript𝑡0𝐻𝑥subscript𝑡0superscriptsubscriptsubscript𝑡0subscript𝑡0𝑦superscript𝜏top𝑢𝜏differential-d𝜏H(x(t_{0}+h))-H(x(t_{0}))\leq\int\nolimits_{t_{0}}^{t_{0}+h}y(\tau)^{\top}u(% \tau)\;\mathrm{d}\tauitalic_H ( italic_x ( italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_h ) ) - italic_H ( italic_x ( italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) ) ≤ ∫ start_POSTSUBSCRIPT italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_h end_POSTSUPERSCRIPT italic_y ( italic_τ ) start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT italic_u ( italic_τ ) roman_d italic_τ. We demand numerical solutions of (1) that preserve the energy balance (2) at a discrete level. This can be achieved, for example, by using discrete gradient methods [2]. Furthermore, we are aiming at deriving efficient numerical integration schemes which exploit the fine structure of the PHS. In this paper, we consider systems (1) with finer structure

x˙(t)˙𝑥𝑡\displaystyle\dot{x}(t)over˙ start_ARG italic_x end_ARG ( italic_t ) =[(J1J~J~J2)(R100R2)](Q100Q2)x+Bu(t),x(t0)=x0,formulae-sequenceabsentdelimited-[]matrixsubscript𝐽1superscript~𝐽top~𝐽subscript𝐽2matrixsubscript𝑅100subscript𝑅2matrixsubscript𝑄100subscript𝑄2𝑥𝐵𝑢𝑡𝑥subscript𝑡0subscript𝑥0\displaystyle=\left[\!\begin{pmatrix}J_{1}&-\tilde{J}^{\top}\\ \tilde{J}&J_{2}\end{pmatrix}-\begin{pmatrix}R_{1}&0\\ 0&R_{2}\end{pmatrix}\!\right]\begin{pmatrix}Q_{1}&0\\ 0&Q_{2}\end{pmatrix}x+Bu(t),\quad x(t_{0})=x_{0},= [ ( start_ARG start_ROW start_CELL italic_J start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL start_CELL - over~ start_ARG italic_J end_ARG start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL over~ start_ARG italic_J end_ARG end_CELL start_CELL italic_J start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ) - ( start_ARG start_ROW start_CELL italic_R start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL italic_R start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ) ] ( start_ARG start_ROW start_CELL italic_Q start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL italic_Q start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ) italic_x + italic_B italic_u ( italic_t ) , italic_x ( italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) = italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , (3a)
y(t)𝑦𝑡\displaystyle y(t)italic_y ( italic_t ) =BH(x),absentsuperscript𝐵top𝐻𝑥\displaystyle=B^{\top}\nabla H(x),= italic_B start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT ∇ italic_H ( italic_x ) , (3b)

where J1n1×n1,J2n2×n2formulae-sequencesubscript𝐽1superscriptsubscript𝑛1subscript𝑛1subscript𝐽2superscriptsubscript𝑛2subscript𝑛2J_{1}\in\mathbb{R}^{n_{1}\times n_{1}},\;J_{2}\in\mathbb{R}^{n_{2}\times n_{2}}italic_J start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT italic_n start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT × italic_n start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT , italic_J start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT italic_n start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT × italic_n start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT are skew-symmetric, R1n1×n1,R2n2×n2formulae-sequencesubscript𝑅1superscriptsubscript𝑛1subscript𝑛1subscript𝑅2superscriptsubscript𝑛2subscript𝑛2R_{1}\in\mathbb{R}^{n_{1}\times n_{1}},\;R_{2}\in\mathbb{R}^{n_{2}\times n_{2}}italic_R start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT italic_n start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT × italic_n start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT , italic_R start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT italic_n start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT × italic_n start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT are positive semi-definite matrices, and Q1n1×n1,Q2n2×n2formulae-sequencesubscript𝑄1superscriptsubscript𝑛1subscript𝑛1subscript𝑄2superscriptsubscript𝑛2subscript𝑛2Q_{1}\in\mathbb{R}^{n_{1}\times n_{1}},\;Q_{2}\in\mathbb{R}^{n_{2}\times n_{2}}italic_Q start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT italic_n start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT × italic_n start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT , italic_Q start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT italic_n start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT × italic_n start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT, n=n1+n2𝑛subscript𝑛1subscript𝑛2n=n_{1}+n_{2}italic_n = italic_n start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + italic_n start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT. This structure typically arises by coupling linear PHS via port matrices, e.g. in the modeling of electric circuits [3, Remark 7], and then shifting the coupling in the off-diagonal blocks of the skew-symmetric matrix.

Operator splitting techniques [4] enable the exploitation of the particular structure by additively splitting the right-hand side of (3). Recently, operator splitting techniques have been applied successfully to linear port-Hamiltonian ODE systems by splitting the PHS into its energy-conservative and energy-dissipative parts [5]. In this work, we will consider different splitting approaches that split the overall system (3) into its subsystems. Nonetheless, we want to emphasize that the resulting subsystems in our approach can be split further into their conservative and dissipative parts by applying the approaches introduced in [5] in a hierarchical manner.

The paper is organized as follows. In Section 2 we give a brief overview on operator splitting techniques and dissipativity-preserving numerical integration schemes for linear PHS. Section 3 is devoted to the special case where the matrix J~~𝐽\tilde{J}over~ start_ARG italic_J end_ARG introduces a scalar coupling. Often, the port-Hamiltonian subsystems have transient behavior that is characterized by different time scales. In Section 4, we will develop multiple time stepping schemes that are integrating the subsystems using different step sizes. The proposed splitting methods are applied to coupled mass-spring-damper chains in Section 5. The paper closes with a summary and an outlook for future research.

2 Operator Splitting for Linear PHS

Operator splitting [4] is a framework to efficiently solve additively partitioned initial-value problems (IVPs) of ODEs

x˙(t)=f(x,t)=f{1}(x,t)+f{2}(x,t),x(t0)=x0,formulae-sequence˙𝑥𝑡𝑓𝑥𝑡superscript𝑓1𝑥𝑡superscript𝑓2𝑥𝑡𝑥subscript𝑡0subscript𝑥0\displaystyle\dot{x}(t)=f(x,t)=f^{\{1\}}(x,t)+f^{\{2\}}(x,t),\quad x(t_{0})=x_% {0},over˙ start_ARG italic_x end_ARG ( italic_t ) = italic_f ( italic_x , italic_t ) = italic_f start_POSTSUPERSCRIPT { 1 } end_POSTSUPERSCRIPT ( italic_x , italic_t ) + italic_f start_POSTSUPERSCRIPT { 2 } end_POSTSUPERSCRIPT ( italic_x , italic_t ) , italic_x ( italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) = italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT , (4)

where the right-hand side is split into two different parts w.r.t., for example, stiffness, nonlinearity, dynamical behavior and computational cost. Rewriting (4) in the homogeneous form

(x˙s˙)=(f(x,s)1)=(f{1}(x,s)1)f~{1}(x,s)+(f{2}(x,s)0)f{2}(x,s),(x(t0)s(t0))=(x00),formulae-sequencematrix˙𝑥˙𝑠matrix𝑓𝑥𝑠1subscriptmatrixsuperscript𝑓1𝑥𝑠1absentsuperscript~𝑓1𝑥𝑠subscriptmatrixsuperscript𝑓2𝑥𝑠0absentsuperscript𝑓2𝑥𝑠matrix𝑥subscript𝑡0𝑠subscript𝑡0matrixsubscript𝑥00\begin{pmatrix}\dot{x}\\ \dot{s}\end{pmatrix}=\begin{pmatrix}f(x,s)\\ 1\end{pmatrix}=\underbrace{\begin{pmatrix}f^{\{1\}}(x,s)\\ 1\end{pmatrix}}_{\eqqcolon\tilde{f}^{\{1\}}(x,s)}+\underbrace{\begin{pmatrix}f% ^{\{2\}}(x,s)\\ 0\end{pmatrix}}_{\eqqcolon f^{\{2\}}(x,s)},\quad\begin{pmatrix}x(t_{0})\\ s(t_{0})\end{pmatrix}=\begin{pmatrix}x_{0}\\ 0\end{pmatrix},( start_ARG start_ROW start_CELL over˙ start_ARG italic_x end_ARG end_CELL end_ROW start_ROW start_CELL over˙ start_ARG italic_s end_ARG end_CELL end_ROW end_ARG ) = ( start_ARG start_ROW start_CELL italic_f ( italic_x , italic_s ) end_CELL end_ROW start_ROW start_CELL 1 end_CELL end_ROW end_ARG ) = under⏟ start_ARG ( start_ARG start_ROW start_CELL italic_f start_POSTSUPERSCRIPT { 1 } end_POSTSUPERSCRIPT ( italic_x , italic_s ) end_CELL end_ROW start_ROW start_CELL 1 end_CELL end_ROW end_ARG ) end_ARG start_POSTSUBSCRIPT ≕ over~ start_ARG italic_f end_ARG start_POSTSUPERSCRIPT { 1 } end_POSTSUPERSCRIPT ( italic_x , italic_s ) end_POSTSUBSCRIPT + under⏟ start_ARG ( start_ARG start_ROW start_CELL italic_f start_POSTSUPERSCRIPT { 2 } end_POSTSUPERSCRIPT ( italic_x , italic_s ) end_CELL end_ROW start_ROW start_CELL 0 end_CELL end_ROW end_ARG ) end_ARG start_POSTSUBSCRIPT ≕ italic_f start_POSTSUPERSCRIPT { 2 } end_POSTSUPERSCRIPT ( italic_x , italic_s ) end_POSTSUBSCRIPT , ( start_ARG start_ROW start_CELL italic_x ( italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) end_CELL end_ROW start_ROW start_CELL italic_s ( italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) end_CELL end_ROW end_ARG ) = ( start_ARG start_ROW start_CELL italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL 0 end_CELL end_ROW end_ARG ) , (5)

operator splitting techniques approximate the exact flow φt(x0)subscript𝜑𝑡subscript𝑥0\varphi_{t}(x_{0})italic_φ start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT ( italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) of the dynamical system (5) by composing the flows φt{1}(x0)superscriptsubscript𝜑𝑡1subscript𝑥0\varphi_{t}^{\{1\}}(x_{0})italic_φ start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT start_POSTSUPERSCRIPT { 1 } end_POSTSUPERSCRIPT ( italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) and φt{2}(x0)superscriptsubscript𝜑𝑡2subscript𝑥0\varphi_{t}^{\{2\}}(x_{0})italic_φ start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT start_POSTSUPERSCRIPT { 2 } end_POSTSUPERSCRIPT ( italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) of the subsystems x˙=f~{1}(x,s)˙𝑥superscript~𝑓1𝑥𝑠\dot{x}=\tilde{f}^{\{1\}}(x,s)over˙ start_ARG italic_x end_ARG = over~ start_ARG italic_f end_ARG start_POSTSUPERSCRIPT { 1 } end_POSTSUPERSCRIPT ( italic_x , italic_s ) and x˙=f~{2}(x,s)˙𝑥superscript~𝑓2𝑥𝑠\dot{x}=\tilde{f}^{\{2\}}(x,s)over˙ start_ARG italic_x end_ARG = over~ start_ARG italic_f end_ARG start_POSTSUPERSCRIPT { 2 } end_POSTSUPERSCRIPT ( italic_x , italic_s ), respectively [5]. Splitting methods of order p>2𝑝2p>2italic_p > 2 require negative weights [6], which violates the dissipativity inequality and thus introduces an order barrier. The paper aims at developing efficient splitting methods of order p=2𝑝2p=2italic_p = 2 that are tailored to the specific structure of the linear PHS (3). For this purpose, we consider the Strang splitting [7]

Ψh=φh/2{1}φh{2}φh/2{1}.subscriptΨsuperscriptsubscript𝜑21superscriptsubscript𝜑2superscriptsubscript𝜑21\displaystyle\Psi_{h}=\varphi_{h/2}^{\{1\}}\circ\varphi_{h}^{\{2\}}\circ% \varphi_{h/2}^{\{1\}}.roman_Ψ start_POSTSUBSCRIPT italic_h end_POSTSUBSCRIPT = italic_φ start_POSTSUBSCRIPT italic_h / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT { 1 } end_POSTSUPERSCRIPT ∘ italic_φ start_POSTSUBSCRIPT italic_h end_POSTSUBSCRIPT start_POSTSUPERSCRIPT { 2 } end_POSTSUPERSCRIPT ∘ italic_φ start_POSTSUBSCRIPT italic_h / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT { 1 } end_POSTSUPERSCRIPT . (6)

Assuming that both subsystems are linear PHS, splitting methods satisfy the dissipativity inequality at a discrete level since the composition of dissipativity preserving maps is again dissipativity preserving.

Instead of using the exact flows φt{1}(x0)superscriptsubscript𝜑𝑡1subscript𝑥0\varphi_{t}^{\{1\}}(x_{0})italic_φ start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT start_POSTSUPERSCRIPT { 1 } end_POSTSUPERSCRIPT ( italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) and φt{2}(x0)superscriptsubscript𝜑𝑡2subscript𝑥0\varphi_{t}^{\{2\}}(x_{0})italic_φ start_POSTSUBSCRIPT italic_t end_POSTSUBSCRIPT start_POSTSUPERSCRIPT { 2 } end_POSTSUPERSCRIPT ( italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ), we can replace them by numerical approximations Φh{1}(x0)superscriptsubscriptΦ1subscript𝑥0\Phi_{h}^{\{1\}}(x_{0})roman_Φ start_POSTSUBSCRIPT italic_h end_POSTSUBSCRIPT start_POSTSUPERSCRIPT { 1 } end_POSTSUPERSCRIPT ( italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) and Φh{2}(x0)superscriptsubscriptΦ2subscript𝑥0\Phi_{h}^{\{2\}}(x_{0})roman_Φ start_POSTSUBSCRIPT italic_h end_POSTSUBSCRIPT start_POSTSUPERSCRIPT { 2 } end_POSTSUPERSCRIPT ( italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ), respectively. If these are obtained by discrete gradient methods of order p=2𝑝2p=2italic_p = 2, it does not affect the convergence order, as well as the energy balance of the splitting method. For linear PHS (1), the implicit midpoint rule defines a discrete gradient method of order p=2𝑝2p=2italic_p = 2,

x1=x0+h[JR]Qx0+x12+hBu1,y1=BQx0+x12.formulae-sequencesubscript𝑥1subscript𝑥0delimited-[]𝐽𝑅𝑄subscript𝑥0subscript𝑥12𝐵subscript𝑢1subscript𝑦1superscript𝐵top𝑄subscript𝑥0subscript𝑥12\displaystyle\begin{split}x_{1}&=x_{0}+h[J-R]Q\tfrac{x_{0}+x_{1}}{2}+hBu_{1},% \\ y_{1}&=B^{\top}Q\tfrac{x_{0}+x_{1}}{2}.\end{split}start_ROW start_CELL italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL start_CELL = italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_h [ italic_J - italic_R ] italic_Q divide start_ARG italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG start_ARG 2 end_ARG + italic_h italic_B italic_u start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , end_CELL end_ROW start_ROW start_CELL italic_y start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL start_CELL = italic_B start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT italic_Q divide start_ARG italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG start_ARG 2 end_ARG . end_CELL end_ROW (7a)
with u1=u(t0+t12)subscript𝑢1𝑢subscript𝑡0subscript𝑡12u_{1}=u(\tfrac{t_{0}+t_{1}}{2})italic_u start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_u ( divide start_ARG italic_t start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_t start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG start_ARG 2 end_ARG ). In particular, the midpoint Qx0+x12𝑄subscript𝑥0subscript𝑥12Q\tfrac{x_{0}+x_{1}}{2}italic_Q divide start_ARG italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG start_ARG 2 end_ARG is a discrete approximation of the gradient H(x)=Qx𝐻𝑥𝑄𝑥\nabla H(x)=Qx∇ italic_H ( italic_x ) = italic_Q italic_x for the quadratic Hamiltonian H(x)=12xQx𝐻𝑥12superscript𝑥top𝑄𝑥H(x)=\tfrac{1}{2}x^{\top}Qxitalic_H ( italic_x ) = divide start_ARG 1 end_ARG start_ARG 2 end_ARG italic_x start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT italic_Q italic_x. As a discrete gradient, it satisfies (x1x0)Qx0+x12=H(x1)H(x0)superscriptsubscript𝑥1subscript𝑥0top𝑄subscript𝑥0subscript𝑥12𝐻subscript𝑥1𝐻subscript𝑥0(x_{1}-x_{0})^{\top}Q\tfrac{x_{0}+x_{1}}{2}=H(x_{1})-H(x_{0})( italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT - italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT italic_Q divide start_ARG italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG start_ARG 2 end_ARG = italic_H ( italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) - italic_H ( italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ), which implies the energy balance [8]
H(x1)H(x0)h=(x1x0)hQx1+x02=([JR]Qx0+x12+Bu1)Qx1+x02=(x0+x12)QRQx0+x12+u1y1u1y1.𝐻subscript𝑥1𝐻subscript𝑥0superscriptsubscript𝑥1subscript𝑥0top𝑄subscript𝑥1subscript𝑥02superscriptdelimited-[]𝐽𝑅𝑄subscript𝑥0subscript𝑥12𝐵subscript𝑢1top𝑄subscript𝑥1subscript𝑥02superscriptsubscript𝑥0subscript𝑥12topsuperscript𝑄topsuperscript𝑅top𝑄subscript𝑥0subscript𝑥12superscriptsubscript𝑢1topsubscript𝑦1superscriptsubscript𝑢1topsubscript𝑦1\displaystyle\frac{H(x_{1})-H(x_{0})}{h}=\tfrac{(x_{1}-x_{0})^{\top}}{h}Q% \tfrac{x_{1}+x_{0}}{2}=\left([J-R]Q\tfrac{x_{0}+x_{1}}{2}+Bu_{1}\right)^{\top}% Q\tfrac{x_{1}+x_{0}}{2}=-\left(\tfrac{x_{0}+x_{1}}{2}\right)^{\top}Q^{\top}R^{% \top}Q\tfrac{x_{0}+x_{1}}{2}+u_{1}^{\top}y_{1}\leq u_{1}^{\top}y_{1}.divide start_ARG italic_H ( italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) - italic_H ( italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) end_ARG start_ARG italic_h end_ARG = divide start_ARG ( italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT - italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT end_ARG start_ARG italic_h end_ARG italic_Q divide start_ARG italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_ARG start_ARG 2 end_ARG = ( [ italic_J - italic_R ] italic_Q divide start_ARG italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG start_ARG 2 end_ARG + italic_B italic_u start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT italic_Q divide start_ARG italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT end_ARG start_ARG 2 end_ARG = - ( divide start_ARG italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG start_ARG 2 end_ARG ) start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT italic_Q start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT italic_R start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT italic_Q divide start_ARG italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG start_ARG 2 end_ARG + italic_u start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT italic_y start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ≤ italic_u start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT italic_y start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT .
By defining A(JR)Q𝐴𝐽𝑅𝑄A\coloneqq(J-R)Qitalic_A ≔ ( italic_J - italic_R ) italic_Q, the update of the state variable can be written as
(Ih2A)x1𝐼2𝐴subscript𝑥1\displaystyle\left(I-\tfrac{h}{2}A\right)x_{1}( italic_I - divide start_ARG italic_h end_ARG start_ARG 2 end_ARG italic_A ) italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT =(I+h2A)x0+hBu1absent𝐼2𝐴subscript𝑥0𝐵subscript𝑢1\displaystyle=\left(I+\tfrac{h}{2}A\right)x_{0}+hBu_{1}= ( italic_I + divide start_ARG italic_h end_ARG start_ARG 2 end_ARG italic_A ) italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_h italic_B italic_u start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT \displaystyle\Leftrightarrow x1subscript𝑥1\displaystyle x_{1}italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT =(Ih2A)1(I+h2A)x0+h(Ih2A)1Bu1,absentsuperscript𝐼2𝐴1𝐼2𝐴subscript𝑥0superscript𝐼2𝐴1𝐵subscript𝑢1\displaystyle=\left(I-\tfrac{h}{2}A\right)^{-1}\left(I+\tfrac{h}{2}A\right)x_{% 0}+h\left(I-\tfrac{h}{2}A\right)^{-1}Bu_{1},= ( italic_I - divide start_ARG italic_h end_ARG start_ARG 2 end_ARG italic_A ) start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( italic_I + divide start_ARG italic_h end_ARG start_ARG 2 end_ARG italic_A ) italic_x start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT + italic_h ( italic_I - divide start_ARG italic_h end_ARG start_ARG 2 end_ARG italic_A ) start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT italic_B italic_u start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , (7b)

emphasizing its close connection to the Cayley transform. The next two sections will discuss different splittings of the partitioned linear PHS (3) exploiting the fine structure of the system, resulting in an efficient computational process.

3 Coupled Linear PHS with Scalar Coupling

In this section, we consider the linear PHS (3) as an additively partitioned ODE system (4) with splitting

f{1}(x,t)superscript𝑓1𝑥𝑡\displaystyle f^{\{1\}}(x,t)italic_f start_POSTSUPERSCRIPT { 1 } end_POSTSUPERSCRIPT ( italic_x , italic_t ) =(0J~J~0)A1H(x)+Bu(t),absentsubscriptmatrix0superscript~𝐽top~𝐽0subscript𝐴1𝐻𝑥𝐵𝑢𝑡\displaystyle=\underbrace{\begin{pmatrix}0&-\tilde{J}^{\top}\\ \tilde{J}&0\end{pmatrix}}_{A_{1}}\nabla H(x)+Bu(t),= under⏟ start_ARG ( start_ARG start_ROW start_CELL 0 end_CELL start_CELL - over~ start_ARG italic_J end_ARG start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL over~ start_ARG italic_J end_ARG end_CELL start_CELL 0 end_CELL end_ROW end_ARG ) end_ARG start_POSTSUBSCRIPT italic_A start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUBSCRIPT ∇ italic_H ( italic_x ) + italic_B italic_u ( italic_t ) , f{2}(x,t)superscript𝑓2𝑥𝑡\displaystyle f^{\{2\}}(x,t)italic_f start_POSTSUPERSCRIPT { 2 } end_POSTSUPERSCRIPT ( italic_x , italic_t ) =(J1R100J2R2)A2H(x).absentsubscriptmatrixsubscript𝐽1subscript𝑅100subscript𝐽2subscript𝑅2subscript𝐴2𝐻𝑥\displaystyle=\underbrace{\begin{pmatrix}J_{1}-R_{1}&0\\ 0&J_{2}-R_{2}\end{pmatrix}}_{A_{2}}\nabla H(x).= under⏟ start_ARG ( start_ARG start_ROW start_CELL italic_J start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT - italic_R start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL italic_J start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT - italic_R start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ) end_ARG start_POSTSUBSCRIPT italic_A start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_POSTSUBSCRIPT ∇ italic_H ( italic_x ) . (8)

This splitting preserves the port-Hamiltonian structure in each subsystem, allowing the preservation of the energy balance (2) of the system using appropriate numerical integration schemes. Moreover, we can consider the subsystem x˙=f{2}(x,t)˙𝑥superscript𝑓2𝑥𝑡\dot{x}=f^{\{2\}}(x,t)over˙ start_ARG italic_x end_ARG = italic_f start_POSTSUPERSCRIPT { 2 } end_POSTSUPERSCRIPT ( italic_x , italic_t ) as the internal evolution equation of the systems and x˙=f{1}(x,t)˙𝑥superscript𝑓1𝑥𝑡\dot{x}=f^{\{1\}}(x,t)over˙ start_ARG italic_x end_ARG = italic_f start_POSTSUPERSCRIPT { 1 } end_POSTSUPERSCRIPT ( italic_x , italic_t ) as the coupling part.

Computational complexity. Considering the implicit midpoint rule and the computation of the update (7b) via an LU-decomposition, the splitting approach is generally more complex than the straight-forward application of the implicit midpoint rule to the overall system. The situation changes if we make further assumptions on the coupling.

Definition 1.

The system (8) is scalar coupled, if the coupling matrix A1Qsubscript𝐴1𝑄A_{1}Qitalic_A start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_Q has just one non-zero above, as well as below the diagonal.

Scalar coupling occurs in many use cases of linear PHS. We can exploit this structure to reduce the computational cost to compute (7b) for the second subsystem. As we have seen in (7b), the implicit midpoint rule demands the solution of a linear system of equations. Scalar coupling enables us to compute the transformation directly in a numerical stable way with no need of a matrix decomposition. Let j~1subscript~𝑗1{\tilde{j}}_{1}over~ start_ARG italic_j end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT be the non-zero value below and j~2subscript~𝑗2\tilde{j}_{2}over~ start_ARG italic_j end_ARG start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT the non-zero value above the diagonal of A1Qsubscript𝐴1𝑄A_{1}Qitalic_A start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_Q. Then, it holds

(101j~2j~1101)1(101j~2j~1101)=superscriptmatrix1missing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpression0missing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpression1subscript~𝑗2missing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionsubscript~𝑗11missing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpression0missing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpression11matrix1missing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpression0missing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpression1subscript~𝑗2missing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionsubscript~𝑗11missing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpression0missing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpression1absent\displaystyle\begin{pmatrix}1&&&\ldots&&&0\\ &\ddots&&&&&\\ &&1&\ldots&-{\tilde{j}}_{2}&&\\ \vdots&&\vdots&\ddots&\vdots&&\vdots\\ &&-{\tilde{j}}_{1}&\ldots&1&&\\ &&&&&\ddots&\\ 0&&&\ldots&&&1\end{pmatrix}^{-1}\begin{pmatrix}1&&&\ldots&&&0\\ &\ddots&&&&&\\ &&1&\ldots&{\tilde{j}}_{2}&&\\ \vdots&&\vdots&\ddots&\vdots&&\vdots\\ &&{\tilde{j}}_{1}&\ldots&1&&\\ &&&&&\ddots&\\ 0&&&\ldots&&&1\end{pmatrix}=( start_ARG start_ROW start_CELL 1 end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL … end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL ⋱ end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL end_CELL start_CELL 1 end_CELL start_CELL … end_CELL start_CELL - over~ start_ARG italic_j end_ARG start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_CELL start_CELL end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL ⋮ end_CELL start_CELL end_CELL start_CELL ⋮ end_CELL start_CELL ⋱ end_CELL start_CELL ⋮ end_CELL start_CELL end_CELL start_CELL ⋮ end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL end_CELL start_CELL - over~ start_ARG italic_j end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL start_CELL … end_CELL start_CELL 1 end_CELL start_CELL end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL ⋱ end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL … end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL 1 end_CELL end_ROW end_ARG ) start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPT ( start_ARG start_ROW start_CELL 1 end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL … end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL ⋱ end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL end_CELL start_CELL 1 end_CELL start_CELL … end_CELL start_CELL over~ start_ARG italic_j end_ARG start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_CELL start_CELL end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL ⋮ end_CELL start_CELL end_CELL start_CELL ⋮ end_CELL start_CELL ⋱ end_CELL start_CELL ⋮ end_CELL start_CELL end_CELL start_CELL ⋮ end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL end_CELL start_CELL over~ start_ARG italic_j end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL start_CELL … end_CELL start_CELL 1 end_CELL start_CELL end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL ⋱ end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL … end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL 1 end_CELL end_ROW end_ARG ) = (101+j~1j~21j~1j~22j~21j~1j~22j~11j~1j~21+j~1j~21j~1j~201).matrix1missing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpression0missing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpression1subscript~𝑗1subscript~𝑗21subscript~𝑗1subscript~𝑗22subscript~𝑗21subscript~𝑗1subscript~𝑗2missing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpression2subscript~𝑗11subscript~𝑗1subscript~𝑗21subscript~𝑗1subscript~𝑗21subscript~𝑗1subscript~𝑗2missing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpression0missing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpression1\displaystyle\begin{pmatrix}1&&&\ldots&&&0\\ &\ddots&&&&&\\ &&\frac{1+\tilde{j}_{1}\tilde{j}_{2}}{1-\tilde{j}_{1}\tilde{j}_{2}}&\ldots&% \frac{2\tilde{j}_{2}}{1-\tilde{j}_{1}\tilde{j}_{2}}&&\\ \vdots&&\vdots&\ddots&\vdots&&\vdots\\ &&\frac{2\tilde{j}_{1}}{1-\tilde{j}_{1}\tilde{j}_{2}}&\ldots&\frac{1+\tilde{j}% _{1}\tilde{j}_{2}}{1-\tilde{j}_{1}\tilde{j}_{2}}&&\\ &&&&&\ddots&\\ 0&&&\ldots&&&1\end{pmatrix}.( start_ARG start_ROW start_CELL 1 end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL … end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL ⋱ end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL end_CELL start_CELL divide start_ARG 1 + over~ start_ARG italic_j end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT over~ start_ARG italic_j end_ARG start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_ARG start_ARG 1 - over~ start_ARG italic_j end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT over~ start_ARG italic_j end_ARG start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_ARG end_CELL start_CELL … end_CELL start_CELL divide start_ARG 2 over~ start_ARG italic_j end_ARG start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_ARG start_ARG 1 - over~ start_ARG italic_j end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT over~ start_ARG italic_j end_ARG start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_ARG end_CELL start_CELL end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL ⋮ end_CELL start_CELL end_CELL start_CELL ⋮ end_CELL start_CELL ⋱ end_CELL start_CELL ⋮ end_CELL start_CELL end_CELL start_CELL ⋮ end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL end_CELL start_CELL divide start_ARG 2 over~ start_ARG italic_j end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_ARG start_ARG 1 - over~ start_ARG italic_j end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT over~ start_ARG italic_j end_ARG start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_ARG end_CELL start_CELL … end_CELL start_CELL divide start_ARG 1 + over~ start_ARG italic_j end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT over~ start_ARG italic_j end_ARG start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_ARG start_ARG 1 - over~ start_ARG italic_j end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT over~ start_ARG italic_j end_ARG start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_ARG end_CELL start_CELL end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL ⋱ end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL … end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL 1 end_CELL end_ROW end_ARG ) .

Applying the implicit midpoint rule (7a) to the overall system (1) demands the computation of (Ih2A)𝐼2𝐴(I-\tfrac{h}{2}A)( italic_I - divide start_ARG italic_h end_ARG start_ARG 2 end_ARG italic_A ) and (I+h2A)𝐼2𝐴(I+\tfrac{h}{2}A)( italic_I + divide start_ARG italic_h end_ARG start_ARG 2 end_ARG italic_A ), and the LU decomposition of the first matrix, resulting in setup costs of 𝒪(n3)𝒪superscript𝑛3\mathcal{O}(n^{3})caligraphic_O ( italic_n start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT ). Moreover, one time step of the implicit midpoint rule requires 𝒪(n2+nd)𝒪superscript𝑛2𝑛𝑑\mathcal{O}(n^{2}+nd)caligraphic_O ( italic_n start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_n italic_d ) operations. In contrast, the splitting method (6) with splitting (8) and assuming scalar coupling has setup costs of size 𝒪(n13+n23)𝒪superscriptsubscript𝑛13superscriptsubscript𝑛23\mathcal{O}(n_{1}^{3}+n_{2}^{3})caligraphic_O ( italic_n start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT + italic_n start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 3 end_POSTSUPERSCRIPT ) and demands 𝒪(nd+n12+n22)𝒪𝑛𝑑superscriptsubscript𝑛12superscriptsubscript𝑛22\mathcal{O}(nd+n_{1}^{2}+n_{2}^{2})caligraphic_O ( italic_n italic_d + italic_n start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_n start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ) operations per time step. Since it usually holds dnmuch-less-than𝑑𝑛d\ll nitalic_d ≪ italic_n, the splitting approach becomes more efficient. Particularly, a straight-forward computation shows that the splitting method requires less operations, provided that dn𝑑𝑛d\leq nitalic_d ≤ italic_n and n1,n22subscript𝑛1subscript𝑛22n_{1},n_{2}\geq 2italic_n start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_n start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ≥ 2.

4 Coupled Linear PHS with Multirate Potential

In this section, we consider linear PHS (3), and we introduce the splitting approach

x˙˙𝑥\displaystyle\dot{x}over˙ start_ARG italic_x end_ARG =f{1}(x,t)+f{2}(x,t)absentsuperscript𝑓1𝑥𝑡superscript𝑓2𝑥𝑡\displaystyle=f^{\{1\}}(x,t)+f^{\{2\}}(x,t)= italic_f start_POSTSUPERSCRIPT { 1 } end_POSTSUPERSCRIPT ( italic_x , italic_t ) + italic_f start_POSTSUPERSCRIPT { 2 } end_POSTSUPERSCRIPT ( italic_x , italic_t ) f{1}(x,t)superscript𝑓1𝑥𝑡\displaystyle f^{\{1\}}(x,t)italic_f start_POSTSUPERSCRIPT { 1 } end_POSTSUPERSCRIPT ( italic_x , italic_t ) =(0J~J~J2R2)M1H(x)+Bu(t),f{2}(x,t)=(J1R1000)M2H(x),formulae-sequenceabsentsubscriptmatrix0superscript~𝐽top~𝐽subscript𝐽2subscript𝑅2subscript𝑀1𝐻𝑥𝐵𝑢𝑡superscript𝑓2𝑥𝑡subscriptmatrixsubscript𝐽1subscript𝑅1000subscript𝑀2𝐻𝑥\displaystyle=\underbrace{\begin{pmatrix}0&-\tilde{J}^{\top}\\ \tilde{J}&J_{2}-R_{2}\end{pmatrix}}_{M_{1}}\nabla H(x)+Bu(t),\quad f^{\{2\}}(x% ,t)=\underbrace{\begin{pmatrix}J_{1}-R_{1}&0\\ 0&0\end{pmatrix}}_{M_{2}}\nabla H(x),= under⏟ start_ARG ( start_ARG start_ROW start_CELL 0 end_CELL start_CELL - over~ start_ARG italic_J end_ARG start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT end_CELL end_ROW start_ROW start_CELL over~ start_ARG italic_J end_ARG end_CELL start_CELL italic_J start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT - italic_R start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ) end_ARG start_POSTSUBSCRIPT italic_M start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUBSCRIPT ∇ italic_H ( italic_x ) + italic_B italic_u ( italic_t ) , italic_f start_POSTSUPERSCRIPT { 2 } end_POSTSUPERSCRIPT ( italic_x , italic_t ) = under⏟ start_ARG ( start_ARG start_ROW start_CELL italic_J start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT - italic_R start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW end_ARG ) end_ARG start_POSTSUBSCRIPT italic_M start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_POSTSUBSCRIPT ∇ italic_H ( italic_x ) , (9)

where f{1}superscript𝑓1f^{\{1\}}italic_f start_POSTSUPERSCRIPT { 1 } end_POSTSUPERSCRIPT is characterized by slow dynamics and f{2}superscript𝑓2f^{\{2\}}italic_f start_POSTSUPERSCRIPT { 2 } end_POSTSUPERSCRIPT by fast dynamics. Moreover, we assume n1n2much-less-thansubscript𝑛1subscript𝑛2n_{1}\ll n_{2}italic_n start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ≪ italic_n start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT. To exploit this sort of multirate behavior, we aim at using a large macro-step size hhitalic_h for the slow subsystem

x˙=M1H(x)+Bu(t),˙𝑥subscript𝑀1𝐻𝑥𝐵𝑢𝑡\dot{x}=M_{1}\nabla H(x)+Bu(t),over˙ start_ARG italic_x end_ARG = italic_M start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ∇ italic_H ( italic_x ) + italic_B italic_u ( italic_t ) , (10a)
and a small micro-step size h/m,m,m1,formulae-sequence𝑚𝑚much-greater-than𝑚1h/m,\ m\in\mathbb{N},\ m\gg 1,italic_h / italic_m , italic_m ∈ blackboard_N , italic_m ≫ 1 , for the fast subsystem
x˙=M2H(x).˙𝑥subscript𝑀2𝐻𝑥\dot{x}=M_{2}\nabla H(x).over˙ start_ARG italic_x end_ARG = italic_M start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ∇ italic_H ( italic_x ) . (10b)

This can be achieved by using the impulse method, a multirate generalization to the Strang splitting [9]. It reads

Ψh=φh/2{1}(φh/m{2})mφh/2{1}subscriptΨsuperscriptsubscript𝜑21superscriptsuperscriptsubscript𝜑𝑚2𝑚superscriptsubscript𝜑21\Psi_{h}=\varphi_{h/2}^{\{1\}}\circ\left(\varphi_{h/m}^{\{2\}}\right)^{m}\circ% \varphi_{h/2}^{\{1\}}roman_Ψ start_POSTSUBSCRIPT italic_h end_POSTSUBSCRIPT = italic_φ start_POSTSUBSCRIPT italic_h / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT { 1 } end_POSTSUPERSCRIPT ∘ ( italic_φ start_POSTSUBSCRIPT italic_h / italic_m end_POSTSUBSCRIPT start_POSTSUPERSCRIPT { 2 } end_POSTSUPERSCRIPT ) start_POSTSUPERSCRIPT italic_m end_POSTSUPERSCRIPT ∘ italic_φ start_POSTSUBSCRIPT italic_h / 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT { 1 } end_POSTSUPERSCRIPT (11)

and computes the numerical approximation x1x(h)subscript𝑥1𝑥x_{1}\approx x(h)italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ≈ italic_x ( italic_h ) by composing (approximated) flows of the subsystems (10a) and (10b). Since the integrator (11) is a composition of flows of the subsystems (10a) and (10b) that are port-Hamiltonian and all weights are positive, the numerical approximation satisfies the dissipativity inequality.

Computational complexity. Due to the simple structure of M2subscript𝑀2M_{2}italic_M start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT, the fast subsystem (10b) simplifies to

x˙1=M~21H(x),subscript˙𝑥1subscript~𝑀2subscript1𝐻𝑥\dot{x}_{1}=\tilde{M}_{2}\nabla_{1}H(x),over˙ start_ARG italic_x end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = over~ start_ARG italic_M end_ARG start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ∇ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_H ( italic_x ) , (12)

with M~2J1R1subscript~𝑀2subscript𝐽1subscript𝑅1\tilde{M}_{2}\coloneqq J_{1}-R_{1}over~ start_ARG italic_M end_ARG start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ≔ italic_J start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT - italic_R start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT, x1subscript𝑥1x_{1}italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT denoting the first n1subscript𝑛1n_{1}italic_n start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT components and 1H(x)subscript1𝐻𝑥\nabla_{1}H(x)∇ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT italic_H ( italic_x ) denoting the first n1subscript𝑛1n_{1}italic_n start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT components of H(x)𝐻𝑥\nabla H(x)∇ italic_H ( italic_x ).

Neglecting the setup costs, computing one time step of the impulse method (11) with macro-step size hhitalic_h demands 𝒪(n2+mn12)𝒪superscript𝑛2𝑚superscriptsubscript𝑛12\mathcal{O}(n^{2}+mn_{1}^{2})caligraphic_O ( italic_n start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT + italic_m italic_n start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ) operations. In contrast, computing m𝑚mitalic_m steps of the implicit midpoint rule (7a) with step size h/m𝑚h/mitalic_h / italic_m to resolve the fast dynamics accurately enough demands 𝒪(mn2)𝒪𝑚superscript𝑛2\mathcal{O}(mn^{2})caligraphic_O ( italic_m italic_n start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT ) operations. If the system (9) exhibits multirate potential so that n1n2much-less-thansubscript𝑛1subscript𝑛2n_{1}\ll n_{2}italic_n start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ≪ italic_n start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT and m1much-greater-than𝑚1m\gg 1italic_m ≫ 1, the multiple time stepping approach requires less operations.

Remark 2.

An alternative approach would shift the coupling part into the fast subsystem. However, this would imply that the fast subsystem is of full dimension n=n1+n2𝑛subscript𝑛1subscript𝑛2n=n_{1}+n_{2}italic_n = italic_n start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + italic_n start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT so that the m1much-greater-than𝑚1m\gg 1italic_m ≫ 1 evaluations of the fast flow φ{2}superscript𝜑2\varphi^{\{2\}}italic_φ start_POSTSUPERSCRIPT { 2 } end_POSTSUPERSCRIPT would become more expensive, resulting in a less efficient computational process.

5 Numerical Results

A frequently used benchmark problem for linear PHS is given by a mass-spring-damper chain111https://algopaul.github.io/PortHamiltonianBenchmarkSystems.jl/ (MSD-chain) [10]. We consider two coupled MSD-chains, consisting of n1subscript𝑛1n_{1}italic_n start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT and n2subscript𝑛2n_{2}italic_n start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT mass-spring-damper elements, respectively. The two chains are coupled via a spring with stiffness Kco>0subscript𝐾𝑐𝑜0K_{co}>0italic_K start_POSTSUBSCRIPT italic_c italic_o end_POSTSUBSCRIPT > 0, see Fig. 1. The first chain consists of homogeneous masses m1>0subscript𝑚10m_{1}>0italic_m start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT > 0, mass-less springs K1>0subscript𝐾10K_{1}>0italic_K start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT > 0, and damping r1>0subscript𝑟10r_{1}>0italic_r start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT > 0. For the second chain, we have homogeneous parameters m2>0subscript𝑚20m_{2}>0italic_m start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT > 0, K2>0subscript𝐾20K_{2}>0italic_K start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT > 0, and r2>0subscript𝑟20r_{2}>0italic_r start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT > 0. Introducing positions qi,1,,qi,nisubscript𝑞𝑖1subscript𝑞𝑖subscript𝑛𝑖q_{i,1},\ldots,q_{i,n_{i}}italic_q start_POSTSUBSCRIPT italic_i , 1 end_POSTSUBSCRIPT , … , italic_q start_POSTSUBSCRIPT italic_i , italic_n start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT and momenta pi,1,,pi,nisubscript𝑝𝑖1subscript𝑝𝑖subscript𝑛𝑖p_{i,1},\ldots,p_{i,n_{i}}italic_p start_POSTSUBSCRIPT italic_i , 1 end_POSTSUBSCRIPT , … , italic_p start_POSTSUBSCRIPT italic_i , italic_n start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUBSCRIPT, i=1,2𝑖12i=1,2italic_i = 1 , 2, we can formulate the equations of motion as a PHS of the form (3) by setting q=q1,1𝑞subscript𝑞11q=q_{1,1}italic_q = italic_q start_POSTSUBSCRIPT 1 , 1 end_POSTSUBSCRIPT as the coupling variables, resulting in [3]

J1subscript𝐽1\displaystyle J_{1}italic_J start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT =(011100011001000)(2n1+1)×(2n1+1),absentmatrix01missing-subexpressionmissing-subexpressionmissing-subexpression110missing-subexpressionmissing-subexpressionmissing-subexpression0missing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpression01missing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpression10010missing-subexpression00superscript2subscript𝑛112subscript𝑛11\displaystyle=\begin{pmatrix}0&-1&&&&-1\\ 1&0&&&&0\\ &&\ddots&&&\vdots\\ &&&0&-1&\\ &&&1&0&0\\ 1&0&\cdots&&0&0\end{pmatrix}\in\mathbb{R}^{(2n_{1}+1)\times(2n_{1}+1)},= ( start_ARG start_ROW start_CELL 0 end_CELL start_CELL - 1 end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL - 1 end_CELL end_ROW start_ROW start_CELL 1 end_CELL start_CELL 0 end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL end_CELL start_CELL ⋱ end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL ⋮ end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL 0 end_CELL start_CELL - 1 end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL 1 end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 1 end_CELL start_CELL 0 end_CELL start_CELL ⋯ end_CELL start_CELL end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW end_ARG ) ∈ blackboard_R start_POSTSUPERSCRIPT ( 2 italic_n start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + 1 ) × ( 2 italic_n start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + 1 ) end_POSTSUPERSCRIPT , J2subscript𝐽2\displaystyle J_{2}italic_J start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT =(01100110)2n2×2n2,absentmatrix01missing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpression10missing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpression01missing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpression10superscript2subscript𝑛22subscript𝑛2\displaystyle=\begin{pmatrix}0&-1&&&&\\ 1&0&&&&\\ &&&\ddots&&\\ &&&&0&-1\\ &&&&1&0\\ \end{pmatrix}\in\mathbb{R}^{2n_{2}\times 2n_{2}},= ( start_ARG start_ROW start_CELL 0 end_CELL start_CELL - 1 end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL 1 end_CELL start_CELL 0 end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL ⋱ end_CELL start_CELL end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL 0 end_CELL start_CELL - 1 end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL 1 end_CELL start_CELL 0 end_CELL end_ROW end_ARG ) ∈ blackboard_R start_POSTSUPERSCRIPT 2 italic_n start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT × 2 italic_n start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT ,
R1subscript𝑅1\displaystyle R_{1}italic_R start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT =diag(r1,0,r1,0,,r1,0,0)(2n1+1)×(2n1+1),absentdiagsubscript𝑟10subscript𝑟10subscript𝑟100superscript2subscript𝑛112subscript𝑛11\displaystyle=\mathrm{diag}(r_{1},0,r_{1},0,\ldots,r_{1},0,0)\in\mathbb{R}^{(2% n_{1}+1)\times(2n_{1}+1)},= roman_diag ( italic_r start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , 0 , italic_r start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , 0 , … , italic_r start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , 0 , 0 ) ∈ blackboard_R start_POSTSUPERSCRIPT ( 2 italic_n start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + 1 ) × ( 2 italic_n start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + 1 ) end_POSTSUPERSCRIPT , R2subscript𝑅2\displaystyle R_{2}italic_R start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT =diag(r2,0,r2,0,,r2,0)2n2×2n2,absentdiagsubscript𝑟20subscript𝑟20subscript𝑟20superscript2subscript𝑛22subscript𝑛2\displaystyle=\mathrm{diag}(r_{2},0,r_{2},0,\ldots,r_{2},0)\in\mathbb{R}^{2n_{% 2}\times 2n_{2}},= roman_diag ( italic_r start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , 0 , italic_r start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , 0 , … , italic_r start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , 0 ) ∈ blackboard_R start_POSTSUPERSCRIPT 2 italic_n start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT × 2 italic_n start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_POSTSUPERSCRIPT ,
J~~𝐽\displaystyle\tilde{J}over~ start_ARG italic_J end_ARG =(001000000)2n2×(2n1+1),absentmatrix001000missing-subexpression000superscript2subscript𝑛22subscript𝑛11\displaystyle=\begin{pmatrix}0&\cdots&0&1\\ 0&\cdots&0&0\\ \vdots&&\vdots&\vdots\\ 0&\cdots&0&0\end{pmatrix}\in\mathbb{R}^{2n_{2}\times(2n_{1}+1)},= ( start_ARG start_ROW start_CELL 0 end_CELL start_CELL ⋯ end_CELL start_CELL 0 end_CELL start_CELL 1 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL ⋯ end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL ⋮ end_CELL start_CELL end_CELL start_CELL ⋮ end_CELL start_CELL ⋮ end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL ⋯ end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW end_ARG ) ∈ blackboard_R start_POSTSUPERSCRIPT 2 italic_n start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT × ( 2 italic_n start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT + 1 ) end_POSTSUPERSCRIPT , Q𝑄\displaystyle Qitalic_Q =(Q1000Kco000Q2)(2n+1)×(2n+1),absentmatrixsubscript𝑄1000subscript𝐾𝑐𝑜000subscript𝑄2superscript2𝑛12𝑛1\displaystyle=\begin{pmatrix}Q_{1}&0&0\\ 0&K_{co}&0\\ 0&0&Q_{2}\end{pmatrix}\in\mathbb{R}^{(2n+1)\times(2n+1)},= ( start_ARG start_ROW start_CELL italic_Q start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL italic_K start_POSTSUBSCRIPT italic_c italic_o end_POSTSUBSCRIPT end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL italic_Q start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ) ∈ blackboard_R start_POSTSUPERSCRIPT ( 2 italic_n + 1 ) × ( 2 italic_n + 1 ) end_POSTSUPERSCRIPT ,

where the two matrices Q1,Q2subscript𝑄1subscript𝑄2Q_{1},Q_{2}italic_Q start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_Q start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT are given by

Qi=(1mi000Ki0Ki001mi00Ki02Ki0Ki02Ki0Ki001mi0Ki02Ki)2ni×2ni,i=1,2.formulae-sequencesubscript𝑄𝑖matrix1subscript𝑚𝑖00missing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpression0subscript𝐾𝑖0subscript𝐾𝑖missing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpression001subscript𝑚𝑖00missing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionsubscript𝐾𝑖02subscript𝐾𝑖0subscript𝐾𝑖missing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpression0missing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpression2subscript𝐾𝑖0subscript𝐾𝑖missing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpression001subscript𝑚𝑖0missing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionmissing-subexpressionsubscript𝐾𝑖02subscript𝐾𝑖superscript2subscript𝑛𝑖2subscript𝑛𝑖𝑖12Q_{i}=\begin{pmatrix}\tfrac{1}{m_{i}}&0&0&&&&&&\\ 0&K_{i}&0&-K_{i}&&&&&\\ 0&0&\tfrac{1}{m_{i}}&0&0&&&&\\ &-K_{i}&0&2K_{i}&0&-K_{i}&&&\\ &&\ddots&&\ddots&&\ddots&&\\ &&&\ddots&&\ddots&&0&\\ &&&&\ddots&&2K_{i}&0&-K_{i}\\ &&&&&0&0&\tfrac{1}{m_{i}}&0\\ &&&&&&-K_{i}&0&2K_{i}\\ \end{pmatrix}\in\mathbb{R}^{2n_{i}\times 2n_{i}},\quad i=1,2.italic_Q start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT = ( start_ARG start_ROW start_CELL divide start_ARG 1 end_ARG start_ARG italic_m start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_ARG end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL italic_K start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_CELL start_CELL 0 end_CELL start_CELL - italic_K start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL divide start_ARG 1 end_ARG start_ARG italic_m start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_ARG end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL - italic_K start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_CELL start_CELL 0 end_CELL start_CELL 2 italic_K start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_CELL start_CELL 0 end_CELL start_CELL - italic_K start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL end_CELL start_CELL ⋱ end_CELL start_CELL end_CELL start_CELL ⋱ end_CELL start_CELL end_CELL start_CELL ⋱ end_CELL start_CELL end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL ⋱ end_CELL start_CELL end_CELL start_CELL ⋱ end_CELL start_CELL end_CELL start_CELL 0 end_CELL start_CELL end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL ⋱ end_CELL start_CELL end_CELL start_CELL 2 italic_K start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_CELL start_CELL 0 end_CELL start_CELL - italic_K start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL 0 end_CELL start_CELL 0 end_CELL start_CELL divide start_ARG 1 end_ARG start_ARG italic_m start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_ARG end_CELL start_CELL 0 end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL end_CELL start_CELL - italic_K start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_CELL start_CELL 0 end_CELL start_CELL 2 italic_K start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_CELL end_ROW end_ARG ) ∈ blackboard_R start_POSTSUPERSCRIPT 2 italic_n start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT × 2 italic_n start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT end_POSTSUPERSCRIPT , italic_i = 1 , 2 .

The state variables are x=(p1,1,q1,1,,p1,n1,q1,n1,q1,1q,p2,1,q2,1,,p2,n2,q2,n2)2n+1𝑥superscriptsubscript𝑝11subscript𝑞11subscript𝑝1subscript𝑛1subscript𝑞1subscript𝑛1subscript𝑞11𝑞subscript𝑝21subscript𝑞21subscript𝑝2subscript𝑛2subscript𝑞2subscript𝑛2topsuperscript2𝑛1x=(p_{1,1},q_{1,1},\ldots,p_{1,n_{1}},q_{1,n_{1}},q_{1,1}-q,p_{2,1},q_{2,1},% \ldots,p_{2,n_{2}},q_{2,n_{2}})^{\top}\in\mathbb{R}^{2n+1}italic_x = ( italic_p start_POSTSUBSCRIPT 1 , 1 end_POSTSUBSCRIPT , italic_q start_POSTSUBSCRIPT 1 , 1 end_POSTSUBSCRIPT , … , italic_p start_POSTSUBSCRIPT 1 , italic_n start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUBSCRIPT , italic_q start_POSTSUBSCRIPT 1 , italic_n start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUBSCRIPT , italic_q start_POSTSUBSCRIPT 1 , 1 end_POSTSUBSCRIPT - italic_q , italic_p start_POSTSUBSCRIPT 2 , 1 end_POSTSUBSCRIPT , italic_q start_POSTSUBSCRIPT 2 , 1 end_POSTSUBSCRIPT , … , italic_p start_POSTSUBSCRIPT 2 , italic_n start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_POSTSUBSCRIPT , italic_q start_POSTSUBSCRIPT 2 , italic_n start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_POSTSUBSCRIPT ) start_POSTSUPERSCRIPT ⊤ end_POSTSUPERSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT 2 italic_n + 1 end_POSTSUPERSCRIPT.

m1subscript𝑚1m_{1}italic_m start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPTm1subscript𝑚1m_{1}italic_m start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPTK1subscript𝐾1K_{1}italic_K start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPTr1subscript𝑟1r_{1}italic_r start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPTq1,n1subscript𝑞1subscript𝑛1q_{1,n_{1}}italic_q start_POSTSUBSCRIPT 1 , italic_n start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUBSCRIPTq1,n11subscript𝑞1subscript𝑛11q_{1,n_{1}-1}italic_q start_POSTSUBSCRIPT 1 , italic_n start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT - 1 end_POSTSUBSCRIPTK1subscript𝐾1K_{1}italic_K start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPTr1subscript𝑟1r_{1}italic_r start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT\cdotsm1subscript𝑚1m_{1}italic_m start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPTK1subscript𝐾1K_{1}italic_K start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPTr1subscript𝑟1r_{1}italic_r start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPTq1,1subscript𝑞11q_{1,1}italic_q start_POSTSUBSCRIPT 1 , 1 end_POSTSUBSCRIPTm2subscript𝑚2m_{2}italic_m start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPTKcosubscript𝐾𝑐𝑜K_{co}italic_K start_POSTSUBSCRIPT italic_c italic_o end_POSTSUBSCRIPTK2subscript𝐾2K_{2}italic_K start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPTr2subscript𝑟2r_{2}italic_r start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT\cdotsm2subscript𝑚2m_{2}italic_m start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPTm2subscript𝑚2m_{2}italic_m start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPTK2subscript𝐾2K_{2}italic_K start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPTq2,n2subscript𝑞2subscript𝑛2q_{2,n_{2}}italic_q start_POSTSUBSCRIPT 2 , italic_n start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_POSTSUBSCRIPTq2,n21subscript𝑞2subscript𝑛21q_{2,n_{2}-1}italic_q start_POSTSUBSCRIPT 2 , italic_n start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT - 1 end_POSTSUBSCRIPTr2subscript𝑟2r_{2}italic_r start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPTq2,1subscript𝑞21q_{2,1}italic_q start_POSTSUBSCRIPT 2 , 1 end_POSTSUBSCRIPTK2subscript𝐾2K_{2}italic_K start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPTr2subscript𝑟2r_{2}italic_r start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT
Figure 1: Coupled mass-spring-damper chain, consisting of two chains with n1subscript𝑛1n_{1}italic_n start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT and n2subscript𝑛2n_{2}italic_n start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT masses, respectively.
107superscript10710^{7}10 start_POSTSUPERSCRIPT 7 end_POSTSUPERSCRIPT108superscript10810^{8}10 start_POSTSUPERSCRIPT 8 end_POSTSUPERSCRIPT106superscript10610^{-6}10 start_POSTSUPERSCRIPT - 6 end_POSTSUPERSCRIPT105superscript10510^{-5}10 start_POSTSUPERSCRIPT - 5 end_POSTSUPERSCRIPT104superscript10410^{-4}10 start_POSTSUPERSCRIPT - 4 end_POSTSUPERSCRIPT103superscript10310^{-3}10 start_POSTSUPERSCRIPT - 3 end_POSTSUPERSCRIPT102superscript10210^{-2}10 start_POSTSUPERSCRIPT - 2 end_POSTSUPERSCRIPT101superscript10110^{-1}10 start_POSTSUPERSCRIPT - 1 end_POSTSUPERSCRIPTp=2𝑝2p=2italic_p = 2total number of operationsglobal error at tend=2subscript𝑡end2t_{\mathrm{end}}=2italic_t start_POSTSUBSCRIPT roman_end end_POSTSUBSCRIPT = 2Strang splittingimplicit midpoint rule
Figure 2: Coupled mass-spring-damper chain. Global error at tend=2subscript𝑡end2t_{\mathrm{end}}=2italic_t start_POSTSUBSCRIPT roman_end end_POSTSUBSCRIPT = 2 vs. the total number of operations for the implicit midpoint rule (\circ) and the Strang splitting (\triangle).
107superscript10710^{7}10 start_POSTSUPERSCRIPT 7 end_POSTSUPERSCRIPT108superscript10810^{8}10 start_POSTSUPERSCRIPT 8 end_POSTSUPERSCRIPT106superscript10610^{-6}10 start_POSTSUPERSCRIPT - 6 end_POSTSUPERSCRIPT104superscript10410^{-4}10 start_POSTSUPERSCRIPT - 4 end_POSTSUPERSCRIPT102superscript10210^{-2}10 start_POSTSUPERSCRIPT - 2 end_POSTSUPERSCRIPTp=2𝑝2p=2italic_p = 2total number of operationsglobal error at tend=2subscript𝑡end2t_{\mathrm{end}}=2italic_t start_POSTSUBSCRIPT roman_end end_POSTSUBSCRIPT = 2impulse method, m=10implicit midpoint rule
Figure 3: Coupled mass-spring-damper chain. Global error at tend=2subscript𝑡end2t_{\mathrm{end}}=2italic_t start_POSTSUBSCRIPT roman_end end_POSTSUBSCRIPT = 2 vs. the total number of operations for the implicit midpoint rule (\circ) and the impulse method with multirate factor m=10𝑚10m=10italic_m = 10 (\triangle).

5.1 The singlerate case

In a first simulation, we choose n1=n2=25subscript𝑛1subscript𝑛225n_{1}=n_{2}=25italic_n start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_n start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = 25, K1=K2=50subscript𝐾1subscript𝐾250K_{1}=K_{2}=50italic_K start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_K start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = 50, Kco=50subscript𝐾𝑐𝑜50K_{co}=50italic_K start_POSTSUBSCRIPT italic_c italic_o end_POSTSUBSCRIPT = 50, m1=m2=0.3subscript𝑚1subscript𝑚20.3m_{1}=m_{2}=0.3italic_m start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_m start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = 0.3, r1=r2=0.1subscript𝑟1subscript𝑟20.1r_{1}=r_{2}=0.1italic_r start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_r start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = 0.1 and as initial value at t=0𝑡0t=0italic_t = 0 we choose zero, apart from x6(0)=q1,3(0)=0.1subscript𝑥60subscript𝑞1300.1x_{6}(0)=q_{1,3}(0)=0.1italic_x start_POSTSUBSCRIPT 6 end_POSTSUBSCRIPT ( 0 ) = italic_q start_POSTSUBSCRIPT 1 , 3 end_POSTSUBSCRIPT ( 0 ) = 0.1. We perform numerical simulations on the time interval t[0,2]𝑡02t\in[0,2]italic_t ∈ [ 0 , 2 ] using the implicit midpoint rule without any splitting approach (7a), as well as the Strang splitting (6) with splitting (8) and approximation of the flows via the implicit midpoint rule. For both approaches, we investigate the global error at tend=2subscript𝑡end2t_{\mathrm{end}}=2italic_t start_POSTSUBSCRIPT roman_end end_POSTSUBSCRIPT = 2 vs. the total number of operations for different step sizes h=2k,k=7,,11formulae-sequencesuperscript2𝑘𝑘711h=2^{-k},\ k=7,\ldots,11italic_h = 2 start_POSTSUPERSCRIPT - italic_k end_POSTSUPERSCRIPT , italic_k = 7 , … , 11. The results are depicted in Fig. 2, emphasizing the efficiency of the splitting method.

5.2 The multirate case

In a second example, we choose n1=5subscript𝑛15n_{1}=5italic_n start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = 5, n2=45subscript𝑛245n_{2}=45italic_n start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = 45, K1=100subscript𝐾1100K_{1}=100italic_K start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = 100, K2=10subscript𝐾210K_{2}=10italic_K start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = 10, Kco=10subscript𝐾𝑐𝑜10K_{co}=10italic_K start_POSTSUBSCRIPT italic_c italic_o end_POSTSUBSCRIPT = 10, m1=0.1subscript𝑚10.1m_{1}=0.1italic_m start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = 0.1, m2=0.4subscript𝑚20.4m_{2}=0.4italic_m start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = 0.4, and r1=r2=0.1subscript𝑟1subscript𝑟20.1r_{1}=r_{2}=0.1italic_r start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_r start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = 0.1. Consequently, the masses of the first chain are characterized by faster dynamics than the masses of the second chain, introducing multirate potential that motivates the use of multiple time stepping techniques like the impulse method (11). Again, we choose zero as the initial value, apart from x6(0)=q1,3(0)=0.1subscript𝑥60subscript𝑞1300.1x_{6}(0)=q_{1,3}(0)=0.1italic_x start_POSTSUBSCRIPT 6 end_POSTSUBSCRIPT ( 0 ) = italic_q start_POSTSUBSCRIPT 1 , 3 end_POSTSUBSCRIPT ( 0 ) = 0.1 and we perform numerical simulations on the time interval t[0,2]𝑡02t\in[0,2]italic_t ∈ [ 0 , 2 ] using the implicit midpoint rule (7a), as well as the impulse method (11) with splitting (9) and approximation of the flows via the implicit midpoint rule. Analogously to the previous example, we compare the efficiency of the splitting approach compared to a straight-forward application of the implicit midpoint rule. As multirate factor, we choose m=10𝑚10m=10italic_m = 10 and perform numerical simulations using the implicit midpoint rule (7a) and the impulse method (11) with (macro) step sizes hksuperscript𝑘h^{k}italic_h start_POSTSUPERSCRIPT italic_k end_POSTSUPERSCRIPT, k=9,,13𝑘913k=9,\ldots,13italic_k = 9 , … , 13. The results in Fig. 3 highlight that the multiple time stepping approach results in a more efficient computational process.

6 Conclusion and Outlook

In this work, we developed splitting methods tailored to coupled linear port-Hamiltonian systems. The resulting algorithms are dissipativity-preserving and convergent of second order. The investigations also include multiple time stepping techniques, enabling the use of different step sizes for the subsystems. Numerical results emphasize the efficiency of the proposed splitting methods compared to a straight-forward application of the implicit midpoint rule.

Future research will deal with the derivation of more advanced decomposition algorithms for linear PHS, particularly by using the (constant) Hessian 2H(x)superscript2𝐻𝑥\nabla^{2}H(x)∇ start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT italic_H ( italic_x ) of the Hamiltonian [11], enabling the derivation of fourth-order decomposition algorithms without using negative weights [12, 13] and thus satisfying the energy balance at a discrete level. We will moreover investigate the proposed splitting methods within the generalized additive Runge–Kutta (GARK) framework [14, 15] that allows to couple certain steps which may result, for example, in improved stability properties.

Acknowledgements

This work is supported by the German Research Foundation (DFG) research unit FOR5269 ”Future methods for studying confined gluons in QCD”.

References

  • [1] A. Van Der Schaft, Port-Hamiltonian systems: an introductory survey, in: Proceedings of the International Congress of Mathematicians, Vol. 3, Marta Sanz-Sole, Javier Soria, Juan Luis Verona, Joan Verdura, Madrid, Spain, 2006, pp. 1339–1365. doi:10.4171/022-3/65.
  • [2] O. Gonzalez, Time integration and discrete Hamiltonian systems, Journal of Nonlinear Science 6 (5) (1996) 449–467. doi:10.1007/BF02440162.
  • [3] A. Bartel, M. Günther, B. Jacob, T. Reis, Operator splitting based dynamic iteration for linear differential-algebraic port-hamiltonian systems, Numerische Mathematik 155 (1) (2023) 1–34. doi:10.1007/s00211-023-01369-5.
  • [4] R. I. McLachlan, G. R. W. Quispel, Splitting methods, Acta Numerica 11 (2002) 341–434. doi:10.1017/S0962492902000053.
  • [5] A. Frommer, M. Günther, B. Liljegren-Sailer, N. Marheineke, Operator splitting for port-Hamiltonian systems (2023). arXiv:2304.01766.
  • [6] M. Suzuki, General theory of fractal path integrals with applications to many-body theories and statistical physics, Journal of Mathematical Physics 32 (2) (1991) 400–407. doi:10.1063/1.529425.
  • [7] G. Strang, On the construction and comparison of difference schemes, SIAM Journal on Numerical Analysis 5 (3) (1968) 506–517. doi:10.1137/0705041.
  • [8] A. Macchelli, Control design for a class of discrete-time port-Hamiltonian systems, IEEE Transactions on Automatic Control 68 (12) (2023) 8224–8231. doi:10.1109/TAC.2023.3292180.
  • [9] E. Hairer, C. Lubich, G. Wanner, Geometric numerical integration: structure-preserving algorithms for ordinary differential equations, 2nd Edition, Vol. 31 of Springer Ser. Comput. Math., Springer-Verlag, Berlin, 2006. doi:10.1007/3-540-30666-8.
  • [10] S. Gugercin, R. V. Polyuga, C. Beattie, A. van der Schaft, Structure-preserving tangential interpolation for model reduction of port-hamiltonian systems, Automatica 48 (9) (2012) 1963–1974. doi:10.1016/j.automatica.2012.05.052.
  • [11] M. Mönch, N. Marheineke, Commutator-based operator splitting for linear port-Hamiltonian systems (2024). arXiv:2405.17106.
  • [12] I. Omelyan, I. Mryglod, R. Folk, Symplectic analytically integrable decomposition algorithms: classification, derivation, and application to molecular dynamics, quantum and celestial mechanics simulations, Computer Physics Communications 151 (3) (2003) 272–314. doi:10.1016/S0010-4655(02)00754-3.
  • [13] K. Schäfers, J. Finkenrath, M. Günther, F. Knechtli, Hessian-free force-gradient integrators (2024). arXiv:2403.10370.
  • [14] M. Günther, A. Sandu, K. Schäfers, A. Zanna, Symplectic GARK methods for partitioned Hamiltonian systems (2023). arXiv:2103.04110.
  • [15] K. Schäfers, M. Günther, A. Sandu, Symplectic multirate generalized additive Runge-Kutta methods for Hamiltonian systems (2023). arXiv:2306.04389.