Introduction

Three-dimensional (3D) blood flow simulations are commonly coupled with zero-dimensional (0D) open-loop lumped parameter models, representing the downstream vasculature at the model’s boundary.7,15,25,33 These lumped parameter models are analogous to an electric circuit, with resistors and capacitors modeling the viscosity of the blood and the elasticity of the vessel wall, respectively. A popular choice is the three-element Windkessel model, also known as the RCR model.39 The Windkessel consists of a proximal resistance in series with a parallel distal resistance and capacitance (Fig. 1).

The RCR boundary condition is coupled to 3D models, as well as one-dimensional (1D) models, at their terminal outlet points. Like many other outflow boundary conditions, the RCR model contains a capacitor that stores blood volume. While these capacitors are “charging”, it typically takes several cardiac cycles with a periodic pulsatile inflow to reach a periodic state. Here, a periodic state is defined as two consecutive cardiac cycles yielding results for pressure and flow rate that agree within a given tolerance. Mathematically, this corresponds to the limit cycle of the model. Note that we assume that the model is subjected to a periodic forcing, such as a periodic pulsatile inflow. However, in contrast to impedance and periodic RCR boundary conditions,5 the transient RCR boundary conditions used in this work can also handle non-periodic solutions.39 It is essential to extract simulation results only when they have reached this periodic state, e.g., when comparing them to in vivo measurements. However, there is currently no suitable error norm for determining whether this periodic state has been achieved.

Unfortunately, running several cardiac cycles of a 3D simulation is computationally expensive, typically requiring a high-performance computer. The computation time scales linearly with the number of cardiac cycles since they cannot be run in parallel. A common practice is initializing a simulation with results from a steady-state solution.39 Here, a computationally inexpensive simulation with constant inflow is computed first. Its solution is then used as an initial condition for the simulation with a periodic pulsatile inflow condition. However, as we will show in this work, a simulation initialized with a steady-state solution often still requires several cardiac cycles to reach a reasonably periodic state.

Our goal is twofold. First, we introduce metrics and tools to quantify whether a simulation has yet reached a periodic state within a given tolerance. Second, we shorten the computation time of the computationally expensive 3D simulation by leveraging reduced-order modeling. It was previously shown that 1D models of cardiovascular fluid dynamics could accurately approximate integral quantities of 3D solutions such as velocity and pressure at the outlets.8,17,26,28,30,40,43 In this work, we propose a novel method to initialize a 3D simulation using the results from an inexpensive 1D simulation. This framework is fully automated and requires no user interaction.

Methods

We begin by revisiting the governing equations of 3D, 1D, and 0D fluid dynamics in Sects. 2.1,2.2, and 2.3. Following theoretical considerations of the convergence of lumped parameter models, we define suitable error metrics to determine the difference between a 3D simulation and its periodic state in Sect. 2.4. In Sect. 2.5, we introduce a tool to determine whether a simulation has yet reached its periodic state. Finally, we develop a method to initialize a 3D simulation from a 1D simulation in Sect. 2.6 in order to jumpstart initialization and reduce computational cost.

3D Flow Physics

The dynamics of blood flow in the cardiovascular system is mathematically governed by the incompressible 3D Navier-Stokes equations,

$$\begin{aligned} \rho \left( \frac{\partial \varvec{v}}{\partial t} + \varvec{v} \cdot \nabla \varvec{v} \right)&= - \nabla P + \mu \nabla ^{2}\varvec{v} + \varvec{f},&\text {in~}&\Omega , \end{aligned}$$
(1)
$$\begin{aligned} \nabla \cdot \varvec{v}&= 0,&\text {in~}&\Omega , \end{aligned}$$
(2)

where \(\cdot\) is the dot-product. The first equation in this system represents conservation of momentum for a Newtonain, incompressible fluid, where \(\varvec{v}\) is the velocity of the blood flow, P is pressure, \(\varvec{f}\) is a body force, \(\rho\) is the density of the blood, and \(\mu\) is the dynamic viscosity. The second equation in this system represents conservation of mass. In the computational cardiovascular modeling and simulation context, we typically numerically solve the 3D Navier-Stokes equations in patient-specific models of vascular anatomies to simulate hemodynamics. Simulation results are used to elucidate the relationship between cardiovascular diseases and fluid mechanics, for personalized treatment planning, and to aid the development of novel biomedical technologies. The initial conditions for velocity and pressure are

$$\begin{aligned} \varvec{v}(\varvec{x}, t = 0) = \varvec{v}_0(\varvec{x}), \quad P(\varvec{x}, t = 0) = P_0(\varvec{x}). \end{aligned}$$
(3)

Boundary conditions that model the portion of the cardiovascular system not captured by the anatomical model must be provided as well. A flow rate, Q, is commonly prescribed at the inlet surfaces of the 3D vascular model, where the flow rate is computed via integration of the normal velocity over each inlet surface,

$$\begin{aligned} Q(t)&= \int _\Gamma \varvec{v} \cdot \varvec{n} \,d\Gamma = Q_{in}(t),&\text {in~}&\Gamma _{in}. \end{aligned}$$
(4)

On the other hand, lumped parameter models, also known as 0D models, are commonly used as boundary conditions at the outlets of the model. These lumped parameter models usually relate the pressure to the flow rate via parametric differential-algebraic equations,

$$\begin{aligned} P(\varvec{x}, t)&= f(\varvec{x}, t, Q_{out}(t), {\dot{Q}}_{out}(t), \varvec{\phi }),&\text {on~}&\Gamma _{out}, \end{aligned}$$
(5)

where \(\varvec{\phi }\) represents the set of variables parametrizing the differential equation. A discussion of 0D models and some commonly used outlet boundary conditions is provided in Sect. 2.3.

Furthermore, in this work, we are focused on computational fluid dynamics simulations, not fluid-structure interaction (FSI) problems. As such, we apply rigid wall assumptions for our 3D simulations. However, the methods presented in this work can be easily generalized to FSI problems.

We generate 3D patient-specific models using SimVascular, an open-source, comprehensive modeling, and simulation software for vascular anatomies (http://simvascular.org).37 The models are simulated in our open-source solver svSolver using the Finite Element Method (FEM) (https://github.com/SimVascular/svSolver). It uses liner P1-P1 elements with a streamline upwind Petrov-Galerkin and pressure-stabilizing Petrov-Galerkin formulation (SUPG/PSPG).16 The pressure and momentum stabilization is detailed in References [36, 41]. Furthermore, it uses a linear solver with specialized pre-conditioners tailored to handle large vascular resistances coupled at outflow boundaries.13 All 3D simulations in this work were run on Stanford’s Sherlock supercomputing cluster using four 12-core Intel Xeon Gold 5118 CPUs.

1D Flow Physics

In contrast to 3D models, one-dimensional (1D) models have only a single spatial dimension, the axial dimension along the centerline of the vessel.40,18,35 As such, 1D models are capable of simulating only bulk flow rate and cross-sectionally averaged pressure at each centerline node of the 1D finite element model. We integrate the incompressible 3D Navier-Stokes equations (1) over the cross-section while assuming an axisymmetric parabolic flow profile to obtain the governing equations for the 1D model. This process yields

$$\begin{aligned} \frac{\partial S}{\partial t} + \frac{\partial Q}{\partial z}&= 0, \end{aligned}$$
(6)
$$\begin{aligned} \frac{\partial Q}{\partial t} + \frac{4}{3} \frac{\partial }{\partial z} \frac{Q^2}{S} + \frac{S}{\rho }\frac{\partial P}{\partial z}&= Sf -8\pi \nu \frac{Q}{S}+\nu \frac{\partial ^2 Q}{\partial z^2}, \end{aligned}$$
(7)

with flow rate Q, cross-sectional area S, pressure P, density \(\rho\), body force f, and kinematic viscosity \(\nu\). The coordinate z represents the axial dimension of 1D model. To solve these equations, we also require a constitutive law to relate the pressure to the cross-sectional area. In this work, we use the constitutive relationship proposed by Olufsen,27,

$$\begin{aligned} P(z,t)=P^0(z)+\frac{4}{3}\frac{Eh}{r^0(z)} \left( 1-\sqrt{\frac{S^0(z)}{S(z,t)}} \right) , \quad \frac{Eh}{r^0(z)}=k_1e^{k_2r^0(z)}+k_3, \end{aligned}$$
(8)

where E is the Young’s modulus of the blood vessel, h is the wall thickness, \(P_0\) is the reference pressure, \(r_0\) is the reference radius, and \(k_1\), \(k_2\), and \(k_3\) are empirically derived constants. We set \(k_1\) to be zero and \(k_3\) to be an arbitrarily high value to represent rigid wall behavior, as captured in our 3D model.

Furthermore, for models with multiple vascular branches, mass conservation is enforced at the junction regions, and the pressure is assumed to be constant between the inlet and outlets of the junctions.40 As with 3D models, we need initial conditions to initialize the simulation,

$$\begin{aligned} Q(z, t = 0) = Q_0(z), \quad S(z, t = 0) = S_0(z), \end{aligned}$$
(9)

as well as inlet and outlet boundary conditions, discussed in Sect. 2.3, to represent the portion of the cardiovascular not reflected in our 1D model,

$$\begin{aligned} Q(z, t)&= Q_{in}(t),&\text {in~}&\Gamma _{in}, \end{aligned}$$
(10)
$$\begin{aligned} \quad P(z, t)&= f(z, t, Q_{out}(t), {\dot{Q}}_{out}(t), \varvec{\phi }),&\text {in~}&\Gamma _{in}, \end{aligned}$$
(11)

We generate and simulate the 1D centerline and finite element models using SimVascular and VMTK.6 We solve the set of differential equations using our open-source solver svOneDSolver (https://github.com/SimVascular/svOneDSolver). We employ a stabilized space-time finite element method based on the discontinuous Galerkin method in time.40 The spatial discretization employs continuous piecewise linear polynomials whereas we use a piecewise constant temporal discretization. For more background information, see References [11, 19, 20].

0D Flow Physics

The third model fidelity we consider in this work is the zero-dimensional (0D) model. Unlike 3D and 1D models, 0D models lack spatial information. However, 0D models are capable of accurately simulating bulk flow rate and bulk pressure quantities in the cardiovascular system.1,2 These 0D models are composed of individual lumped-parameter elements that connect to form an entire complex lumped parameter network. There are many lumped parameter elements commonly used in the context of cardiovascular modeling and simulation. Some of these elements include resistors, capacitors, and inductors.2 Resistors model the viscous dissipation of the blood fluid, capacitors represent the elastic nature of blood vessels, while inductors capture the inertia of the blood flow. In lumped parameter networks that model the heart, diode elements are also employed. These diodes mimic the behavior of heart valves, where they allow flow to pass only when the valves are open.22,32 The flow rates and pressures in each of these elements are respectively governed by the following linear differential and algebraic equations,

$$\begin{aligned} \Delta P = RQ, \quad Q = C\Delta {\dot{P}}, \quad \Delta P = L{\dot{Q}}, \quad Q = \frac{|Q| + Q}{2}, \end{aligned}$$
(12)

where R is the resistance, C is the capacitance, L is the inductance, and \(\Delta P\) is the pressure drop across the element. Lumped parameter 0D models are also analogous to electrical circuits, where the flow rate and pressure are representative of current and voltage, respectively. In this work, we will focus our attention to just resistors and capacitors.

Lumped parameter networks are commonly used in two contexts. First, 0D models can be used as surrogate models of entire vascular anatomies.1 In this case, each blood vessel in the vascular system is represented by one or more lumped-parameter elements in the 0D model, where the value of each element is determined by the geometric and material properties of the blood and blood vessel. Second, 0D models can be used to represent boundary conditions in 3D and 1D models. 3,5,13,22,38,31 In this context, each 0D element reflects a different downstream (or upstream) anatomical feature of the cardiovascular system. To employ 0D models as boundary conditions, they must be numerically coupled to the 3D or 1D finite element models.13 The governing equations for these 0D models then can be numerically solved using traditional time-stepping schemes, such as an explicit fourth-order Runge-Kutta method.

Some of the 0D models most commonly employed as boundary conditions are the resistance model and the 3-element Windkessel model.39,5 The resistance model is composed of a single linear resistor element that captures the downstream resistance of the vascular network not portrayed in the 3D or 1D model. On the other hand, the 3-element Windkessel model, also known as the RCR model, as shown in Fig. 1, models the proximal resistance, distal resistance, and compliance of the downstream vasculature using two resistor elements and a capacitor. The RCR boundary condition is discussed further in the next section.

To simulate our 0D surrogate models, which represent the vessels using linear resistors, we solve the governing system of equations using an in-house, modular numerical solver svZeroDSolver (https://github.com/SimVascular/svZeroDSolver) that employs the implicit generalized-\(\alpha\) scheme for time advancement.21

Figure 1
figure 1

Flowchart of method to check periodic state of 3D simulation results.

The RCR Boundary Condition

Thus far, we have introduced three different methods to computationally model and simulate vascular hemodynamics in anatomic models. Before any of the models and simulation results can be used in scientific investigations or clinical applications, the quantities of interest, primarily the flow rates and pressures, must be simulated until they converge to a periodic state. Here, a simulated quantity of interest is considered to be periodic if its values between 2 adjacent periods are the same, within some defined tolerance. A period in the cardiovascular context is typically defined as a single cardiac cycle. We expound on the concept of a periodic state in this section, using the RCR model to illustrate the primary concepts.

The three parameters of the RCR boundary condition are commonly tuned to clinical measurements, e.g., phase-contrast magnetic resonance imaging and pressure measurements, by solving an optimization problem to match minimal and maximal pressure over a cardiac cycle, measured flows, and flow distribution among different outlets.34 A common strategy is to tune the total resistance and capacitance in the model to produce a physiologic pressure waveform, then distributed proportional to the vessel outlet areas.4

We begin by reviewing the response of a single RCR model to pulsatile inflow. The governing differential equation for the inlet pressure, P, of the 3-element Windkessel model, as a function of the inlet flow rate, Q, is

$$\begin{aligned} {\dot{P}} + \frac{P}{\tau } = R_p{\dot{Q}} + \frac{1}{\tau }(R_p + R_d)Q, \quad \tau = R_dC, \end{aligned}$$
(13)

where \(R_p\) is the proximal resistance, C is the capacitance, and \(R_d\) is the distal resistance. We obtain the semi-analytical solution38 for this ordinary differential equation as

$$\begin{aligned}&P(t) = \underbrace{[P(0) - R_p Q(0)] \, e^{-t/\tau }}_{\text {I}} + \underbrace{R_p Q(t)}_{\text {II}} \nonumber \\&\quad\quad + \underbrace{\int _0^t \frac{e^{-(t-{\tilde{t}})/\tau }}{C} Q({\tilde{t}}) ~ \mathrm {d}{\tilde{t}}}_{\text {III}}, \quad \tau = R_dC > 0, \end{aligned}$$
(14)

which depends on the inflow Q and the time constant \(\tau\). We can identify three different terms in this equation: (I) exponential decay of the initial solution, (II) pressure drop at proximal resistance, (III) pressure drop at sub-circuit \(R_dC\). Assuming a constant inflow \({\bar{Q}}>0\) for \(t>0\), we obtain the pressure step response for the RCR boundary condition as

$$\begin{aligned}&P(t) = P_\infty + e^{-t/\tau } \, [P_0 - P_\infty ], \quad P_0 = P(0),\nonumber \\&\quad \quad \lim _{t\rightarrow \infty } P(t) = P_\infty = {\bar{Q}}(R_p + R_d), \end{aligned}$$
(15)

starting at the initial pressure \(P_0\) and exponentially approaching the asymptotic pressure \(P_\infty\) for the limit \(t\rightarrow \infty\). We now define the periodic inflow Q(t) as

$$\begin{aligned} Q(t + T) = Q(t), \quad {\bar{Q}} = \frac{1}{T} \int _0^T Q(t) ~ \mathrm {d}t, \end{aligned}$$
(16)

where the period T is the length of a cardiac cycle and \({\bar{Q}}\) the time-averaged mean flow. The mean pressure in the n-th cardiac cycle is denoted by

$$\begin{aligned} {\bar{P}}_n = \frac{1}{T} \int _{nT}^{(n+1)T} P(t) ~ \mathrm {d}t, \quad n \in {\mathbb {N}}^+_0. \end{aligned}$$
(17)

With this notation, Equation (15) can be reformulated for a non-constant, periodic pulsatile inflow as

$$\begin{aligned} {\bar{P}}_n = {\bar{P}}_\infty + e^{-nT/\tau } \, [{\bar{P}}_0 - {\bar{P}}_\infty ], \quad {\bar{P}}_\infty = \lim _{n\rightarrow \infty } {\bar{P}}_n, \end{aligned}$$
(18)

starting at the initial mean pressure \({\bar{P}}_0\) and approaching the asymptotic mean pressure \({\bar{P}}_\infty\). Note that for a single RCR boundary condition the asymptotic pressure \({\bar{P}}_\infty\) with pulsatile inflow Q(t) is identical to the asymptotic pressure \(\lim _{t\rightarrow \infty } P(t)\) with steady mean inflow \({\bar{Q}}\). However, this is not true in the case of a vascular model with several RCR boundary conditions at the outlets. Here, the asymptotic mean pressure \({\bar{P}}_\infty\) at each outlet can in general not be determined analytically and relies on the time-dependent flow split of the model inflow Q(t) to the outlets.

In the remainder of this section, we will define an error metric to quantify the difference between the pressure \({\bar{P}}_n\) in the n-th cardiac cycle and the asymptotic pressure \({\bar{P}}_\infty\). For simplicity of notation, we show the following derivations for \({\bar{P}}_n < {\bar{P}}_\infty\), i.e. the pressure approaches the asymptotic pressure “from below”, which is the case when starting from zero initial conditions. However, the conclusions hold for any choice of initial pressure. Starting from \({\bar{P}}_n > {\bar{P}}_\infty\) would change the signs of all pressure terms. We define the asymptotic error \(\epsilon _\infty\) as

$$\begin{aligned} 0 < \epsilon _\infty {=} \frac{{\bar{P}}_\infty - {\bar{P}}_n}{{\bar{P}}_\infty } = e^{-nT/\tau } \cdot \left( 1 - \frac{{\bar{P}}_0}{{\bar{P}}_\infty } \right) . \end{aligned}$$
(19)

Thus, we can calculate the number of cardiac cycles \(n_\infty\) required for the RCR boundary condition to reach a periodic state within the tolerance \(\epsilon _\infty\) as

$$\begin{aligned} n_{\infty } \le - \frac{\tau }{T} \cdot \ln {\frac{\epsilon _\infty }{1 - {\bar{P}}_0/{\bar{P}}_\infty }}, \quad n_\infty \in {\mathbb {N}}^+. \end{aligned}$$
(20)

The inequality arises from the fact that \(n_\infty\) is an integer and the right-hand side is a real number. Several observations can be made from Equation (20). First, the number of cycles scales linearly with \(\tau /T\), the ratio of the length of the time constant \(\tau\) to the length of one cardiac cycle. A two-fold increase in the time constant doubles the number of cardiac cycles required to reach the same tolerance \(\epsilon _\infty\). Second, the closer the initial pressure \({\bar{P}}_0\) to the asymptotic pressure \({\bar{P}}_\infty\) the fewer cardiac cycles \(n_{\infty }\) are required to achieve periodic convergence with an error \(\epsilon _\infty\). The error \(\epsilon _{\infty }\) and the number of cardiac cycles \(n_{\infty }\) can in general not be determined a priori since the constant \({\bar{P}}_\infty\) cannot be evaluated analytically. Only in the special case of starting from zero initial conditions, i.e. \(P_0=0\), the number of cardiac cycles to periodic convergence can be directly given as

$$\begin{aligned} n_{\infty } \le - \frac{\tau }{T} \cdot \ln \epsilon _\infty . \end{aligned}$$
(21)

We can easily compute the difference \({\bar{P}}_n - {\bar{P}}_{n-1}\) between two cardiac cycles numerically without the solution having reached a periodic state. Using this difference, we define the cyclic error \(\epsilon _n\) between two consecutive cardiac cycles as

$$\begin{aligned}&0 < \epsilon _n {=} \frac{{\bar{P}}_{n} - {\bar{P}}_{n-1}}{{\bar{P}}_\infty } = e^{-nT/{\bar{\tau }}} \cdot \nonumber \\&\quad \left( 1 - \frac{{\bar{P}}_0}{{\bar{P}}_\infty } \right) \cdot [e^{T/\tau } - 1 ], \quad n \ge 2. \end{aligned}$$
(22)

We then define the ratio \(\alpha\) between asymptotic error \(\epsilon _{\infty }\) and cyclic error \(\epsilon _n\) as

$$\begin{aligned}&\alpha = \frac{\epsilon _\infty }{\epsilon _n} = \frac{{\bar{P}}_\infty - {\bar{P}}_n}{{\bar{P}}_n - {\bar{P}}_{n-1}}\nonumber \\&\quad = \frac{1}{e^{T/\tau } - 1}, \quad \leadsto ~ \epsilon _\infty> \epsilon _n \text {~, for~} \frac{\tau }{T} > \frac{1}{\ln 2} \approx 1.44 \end{aligned}$$
(23)

Equation (23) shows that in general \(\epsilon _n \ne \epsilon _\infty\). While error metrics like \(\epsilon _n\) are commonly used in practice to determine whether a simulation as reached a periodic state within a given tolerance, it is not an adequate metric to do so. For time constants \(\tau\) larger than 1.44 times the length of the cardiac cycle T, the cyclic error \(\epsilon _n\) will underestimate the asymptotic error \(\epsilon _\infty\). In simulations with a large time constant \(\tau \gg T\) the error \(\epsilon _n\) will appear small despite the solution being far from a periodic state due to their slow convergence. As a remedy, we propose a method in Sect. 2.5 to estimate the asymptotic error \(\epsilon _\infty\) as the simulation is being computed.

Checking the Periodicity of 3D Simulations

The previous section introduced analytical and theoretical methods to check the periodicity of a single RCR model subjected to a prescribed inflow condition. This section extends this discussion to consider computational vascular models and present a method to check the periodicity of patient-specific, multi-outlet 3D models, where each outlet is coupled to a different RCR boundary condition. The steps for this method are summarized in the flowchart shown in Fig. 1.

As mentioned in the previous section, \({\bar{P}}_\infty\) generally cannot be predicted analytically. However, a value of \({\bar{P}}_\infty\) is needed to check if the simulated flow rate and pressure at each outlet of the 3D model have converged to a periodic state. To remedy this issue, we estimate \({\bar{P}}_\infty\) for each outlet by simulating a separate 0D model of the attached RCR boundary condition. The inflow to each 0D RCR model is the simulated 3D flow rate, \(Q_{3D}\), corresponding to that outlet. We then simulate these simple 0D RCR models for many cardiac cycles, to guarantee periodic convergence of the 0D RCR model, and use the final simulated pressure values, \(P_{0D}\), as our estimates of \({\bar{P}}_\infty\).

Furthermore, as previously discussed, \(\epsilon _\infty\) represents the asymptotic error of the pressure solution. We therefore specify a desired value for \(\epsilon _\infty\) and use this as our criteria for periodic convergence. Our 3D pressure solution, \(P_{3D}\), is considered to be periodically converged, as per Equation (19), if it matches \(P_{0D}\) within this error threshold. Mathematically, this condition is expressed as,

$$\begin{aligned} \frac{P_{3D} - P_{0D}(Q_{3D})}{P_{0D}(Q_{3D})} \le \epsilon _\infty . \end{aligned}$$
(24)

Note that \(Q_{3D}\) should be reasonably close to a periodic state before we can use it as the inflow to our RCR model. Typically, \(Q_{3D}\) converges much faster, i.e., within one or two cardiac cycles, than \({\bar{P}}_{3D}\) does. This note will be further discussed in Sect. 3.1.3.

Lastly, each outlet of our 3D models has in general a unique time constant \(\tau\). Although, in practice, parameter tuning yields time constants that are similar. It can be shown that the convergence of each outlet is determined by a single model time constant \({\bar{\tau }}\) that can be approximated by the mean of all individual time constants. As such, we can use this average time constant to estimate the number of cardiac cycles for which our 3D models must be simulated to achieve periodic convergence.

Generating Initial Conditions

As previously discussed, 3D models must be simulated until the flow rates and pressures converge to a periodic state before they can be applied in scientific or clinical investigations, which currently requires running the simulation for several cardiac cycles. This limits the utility of computational 3D models and simulations in real-world clinical applications. To alleviate this bottleneck, we introduce a novel method to jumpstart the initialization of 3D simulations. In particular, we generate initial conditions to minimize the number of cardiac cycles required to reach periodic convergence within a chosen tolerance. This process is fully automated in SimVascular37 and requires no user input. Starting from a periodic 1D solution (Sect. 2.6.1) we create a map from the centerline, the 1D representation of the model, to the 3D volume mesh (Sect. 2.6.2), and generate an artificial initial velocity vector field (Sect. 2.6.3) for simulation initialization.

Generating a Periodic 1D Solution

We automatically generate a 1D flow model of the high-fidelity 3D flow model using the SimVascular 1D-plugin. We then run the model until it achieves periodic convergence with \(\epsilon _\infty \le 1\%\), using the method in Sect. 2.5, and extract the solution of the last cardiac cycle.

Mapping Centerline to Volume Mesh

To map the 1D solution to the 3D Finite Element mesh, we create a map \(\mathbf {I}\) from nodes \(P_\text {1D}\) on the 1D centerline to nodes \(P_\text {3D}\) in the 3D volume mesh. This allows us to map quantities defined on the centerline to the volume mesh, such as 1D flow and pressure, cross-sectional area, and normal vectors. The iterative process is outlined in Algorithm 1 and visualized in Fig. 2. In Line  3, we first create a set of seed points \(P_\text {seed}\) consisting of volume mesh nodes \(P_\text {3D}\) that are closest to the centerline nodes \(P_\text {1D}\) and store the corresponding indices in \(\mathbf {I}\). To do this, we find the shortest Euclidean distances between centerline coordinates \(\mathbf {x}^\text {1D}_p\) and 3D mesh coordinates \(\mathbf {x}^\text {3D}_j\). We then employ a region growing algorithm (Line 14) to grow the 1D-3D map outwards, starting from the centerline seed points \(P_\text {seed}\). The algorithm in Line 17 selects nodes \(P_\text {new}\) in the new layer from the previous layer \(P_\text {old}\) using cell-connectivity. Finally, the map is expanded in Line 30 by assigning nodes in the new layer \(P_\text {new}\) to the same 1D node as the closest 3D node in the previous layer \(P_\text {old}\). This results in centerline nodes being roughly assigned to 3D mesh nodes within the same cross-section. For 3D meshes with \({\mathcal {O}}(10^6)\) nodes Algorithm 1 only takes a few seconds to complete on a single CPU. We generate this map only once and use it repeatedly to map various centerline quantities to the volume mesh, see Fig. 3.

figure a
Figure 2
figure 2

Mapping centerline nodes to nodes in the 3D volume mesh. Colors correspond to the node order of the centerline. The centerline within 3D volume mesh is shown on the left. The figures from left to right show the current set of all points \(P_\text {all}\) for iterations \(i\in \{2,3,5,24\}\) until Algorithm 1 converges.

Extrapolating Pressure and Velocity

We directly map the pressure from the centerline to the volume mesh using the map generated in Sect. 2.6.2, resulting in a pressure that’s approximately constant over the cross-section of the vessels. However, as the 1D solution only provides a scalar flow along the centerline, we must generate a velocity vector field from scratch. The ingredients for the velocity vector field are visualized in Fig. 3. From the mapped 1D flow rate and the cross-sectional area we calculate the velocity magnitude. Assuming a Poiseuille flow, we apply a parabolic flow profile to the velocity magnitude. With the help of a normalized radial coordinate, we prescribe the flow profile to be maximal on the centerline and zero on the boundary. Finally, we multiply the scalar velocity magnitude with the centerline tangent vector to generate a vector field. We aim to preserve the amount of flow through a cross-section of the vessel as obtained from the 1D solution while approximating a somewhat physiological velocity field. This velocity vector field can then be used for simulation initialization.

Figure 3
figure 3

Ingredients to generate the velocity field from a 1D solution. From left to right: Flow mapped from 1D, cross-sectional area, radial coordinate, and normal vectors.

Results

Throughout this section, we consider a simulation periodically converged if the asymptotic error is \(\epsilon _\infty \le 1\%\), as defined in Equation (20). We utilize in this work a subset of 52 models from the Vascular Model Repository (http://vascularmodel.org).42 All models have rigid walls and RCR boundary conditions. Six out of these models are shown in Table 1.

Table 1 Subset of models from the Cardiovascular Model Repository.

Convergence

In this section, we detail the convergence behavior of cardiovascular fluid dynamics simulations with three-element Windkessel, or RCR, boundary conditions. The models used in this section have different numbers of outlets, ranging from 4 in the aortic models to 33 in the pulmonary artery models. For each model, we automatically generate a reduced-order 0D model as outlined in Sect. 2.3. Using a computationally inexpensive 0D model allows us to run a large number of simulations for many cardiac cycles and analyze their convergence behavior in detail. These 0D results are directly applicable to 1D and 3D simulation models and form the foundation for generating initial conditions in Sect. 3.2.2.

Time Constants

The time constant \(\tau\) is the metric of a boundary condition that determines the rate of periodic convergence. It is thus essential for all numerical experiments in this work. Throughout the remainder of this work, we normalize \(\tau\) by the length of the cardiac cycle T, with all values reported in Fig. 4. All normalized time constants fall within the range [0, 10], with time constants in pulmonary models being the lowest. In general, time constants in our models differ by outlet but fall within a narrow range. In addition to the outlet time constants, we also show the model time constants \({\bar{\tau }}/T\) as crosses. We extract the model time constants from the slope of the exponential curves of the asymptotic error \(\epsilon _\infty\) (see Equation (20)) when running the models for several cardiac cycles. Each model has one unique model time constant \({\bar{\tau }}/T\) that is approximately the mean value of the outlet time constants.

Figure 4
figure 4

Time constants for models from the Vascular Model Repository. Bars indicate the range of time constants \(\tau /T\) for all outlets in a model, crosses indicate the model time constant \({\bar{\tau }}/T\). The colors indicate the model category: aorta (blue), aorta-femoral (purple), and pulmonary (yellow).

Initial Conditions

We estimated the number of cardiac cycles \(n_\infty\) required to reach a periodic pressure in Equation (20). In the special case of zero initial conditions, this relationship simplified to the inequality in Equation (21), scaling linearly with the time constant \(\tau /T\) and the logarithm of the asymptotic error \(\epsilon _\infty\). This relationship holds regardless of model fidelity, i.e. for 0D, 1D, and 3D. In Fig. 5a, we record the number of cardiac cycles required to reach an asymptotic error of \(\epsilon _\infty \le 1\%\) when starting a simulation from zero initial conditions, and report the number of cardiac cycles required for periodic pressure (left) and flow (right) over the model time constant \({\bar{\tau }}/T\). For pressure (left), the results confirm the linear relationship between the single model time constant \({\bar{\tau }}/T\) and the number of cardiac cycles \(n_\infty\) from Equation (21) (black line). For a range of model time constants \({\bar{\tau }}/T \ \in [0.3, 9.6]\) we find the range of cardiac cycles \(n_\infty \in [2, 44]\). The number of cardiac cycles to reach a periodic flow solution (right) is not correlated to the model time constant and is, in general, much lower than the number of cycles \(n_\infty\) to reach a periodic pressure. Flow rate commonly converges within one cardiac cycle, with a maximum of eight cardiac cycles in our cohort of models.

The same study is repeated in Fig. 5b for starting from steady state initial conditions. Here, the values of the steady state initial conditions were obtained from the solutions of simulations run under steady state conditions, where the constant inflow boundary conditions are the mean values of the periodic inflows. Compared to zero initial conditions, the number of cardiac cycles required to each an asymptotic pressure with an error of \(\epsilon _\infty \le 1\%\) are much lower: \(n_\infty \in [2, 12]\). Flow is converged within a maximum of 5 cardiac cycles. When starting from steady state initial conditions, the number of cardiac cycles \(n_\infty\) cannot be given analytically, it depends on the prescribed inflow profile. However, the number of cardiac cycles commonly still increases with the model time constant. A variant of the initialization with a steady state solution is shown in Fig. 5c. Here, the simulations start at the time step where the inflow is closest to the mean flow (see Reference [39]). The number of cardiac cycles required to reach the tolerance \(\epsilon _\infty \le 1\%\) is comparable to the number when starting from the beginning of the cardiac cycle (i.e. end-diastole) in Fig. 5b. Note that \(n_\infty\) is here not an integer, but a real number since we include the first, incomplete cardiac cycle.

Figure 5
figure 5

Number of cardiac cycles \(n_\infty\) required to reach an asymptotic error \(e_\infty =1\%\) for 0D models from the Vascular Model Repository. The colors indicate the model category: aorta (blue), aorta-femoral (purple), and pulmonary (yellow). The black line (left) indicates the number of cardiac cycles predicted by Equation (21).

Comparison of Error Metrics

We visualize the convergence of pressure and flow for \(n=30\) cardiac cycles in Fig. 6 for model 0107_0001 (normal aorta). The pressure curve (top left) builds up slowly in each cardiac cycle, starting from zero, whereas the flow curve (bottom) is close to periodic starting from the first cycle. Taking the mean value over each cardiac cycle, both solutions exponentially approach their periodic state, as shown in Equation (18). The logarithmic plots in the two rightmost columns show the exponential decay of the cyclic error \(\epsilon _n\) and the asymptotic error \(\epsilon _\infty\), as defined in Equations (20) and (22), respectively. Note that the flow (bottom) exhibits smaller errors than the pressure (top) and converges faster during the first few cardiac cycles. After that, both flow and pressure at all outlets converge with the model time constant \({\bar{\tau }}/T \approx 4.4\). This model time constant yields a factor between cyclic and asymptotic error of \(\alpha = \epsilon _\infty /\epsilon _n\approx 3.9\). The threshold is indicated by horizontal lines in the error plots. Here, the solution is converged after \(n_\infty =21\) cardiac cycles, reaching errors of \(\epsilon _\infty = 1\%\) and \(\epsilon _n = \epsilon _\infty /\alpha \approx 0.26\%\). This example demonstrates that for simulations with \({\bar{\tau }}/T > 1/\ln 2 \approx 1.44\) the cyclic error \(\epsilon _n\) underestimates the asymptotic error \(\epsilon _\infty\).

Figure 6
figure 6

Convergence of 0D pressure (top) and flow (bottom) solution in geometry 0107_0001 (normal aorta) for \(n=30\) cardiac cycles. From left to right: Solution, mean solution over one cardiac cycle (normalized by asymptotic solution), cyclic error \(\epsilon _n\), and asymptotic error \(\epsilon _\infty\). Each color refers to one of the outlets.

Prediction of the Periodic State

As explained in Sect. 2.4, the periodic error \(\epsilon _\infty\), comparing the current cardiac cycle to a perfectly periodic cycle, can in general not be computed analytically. It requires the periodic solution of the model which is not known a priori. We thus outlined a method in Sect. 2.5 to use the 0D lumped-parameter boundary condition to estimate the periodic cycle numerically. Figure 7 shows the pressure at all outlets of model 0107_0001 from cycle one to cycle \(n_\infty =21\) (from blue to red), starting from zero initial conditions as in Fig. 6. The top row shows the pressure at the outlets of the 3D model in each cardiac cycle. The bottom row shows the prediction of the periodic state using the flow at the outlets of the 3D model in each cardiac cycle. Since flow converges much faster than pressure in this model, see Fig. 6, the cycle-to-cycle variation is minimal. The periodic state can be accurately predicted even from early cardiac cycles, where the actual pressure of the model has not yet converged.

Figure 7
figure 7

Pressure for model 0107_0001 for \(n_\infty =21\) cardiac cycles (blue to red) starting from zero initial conditions until reaching periodic convergence. Pressure at the 3D outlets (top) and peridioc state predicted from 0D (bottom).

Initialization

To demonstrate the performance of our 3D initialization method, we compare results for the 6 models shown in Table 1. The chosen models contain a wide range of anatomies and physiological conditions and are specified by an eight-digit ID. They include aorta and femoral arteries (0003_0001), pulmonary arteries after a Glenn procedure (0097_0001), aortic coarctation post end-to-end anastomosis (0107_0001), untreated aortic coarctation (0111_0001), aortic aneurysm in a patient with Marfan Syndrome (0130_0000), and abdominal aortic aneurysm (0156_0001).

Generating Initial Conditions

In this section, we demonstrate the performance of our pipeline to generate 3D initial conditions that greatly reduce the number of cardiac cycles, as proposed in Sect. 2.6. As a ground truth, i.e. the ideal initial condition, we use an asymptotic 3D solution extracted after reaching periodic convergence. Using this initial condition, the 3D simulation would reach periodic converge within one cardiac cycle. We compare this solution to initial conditions we generated from a periodic 1D solution, using the mapping technique from Sect. 2.6.2. By using initial conditions mapped from 1D to 3D, we introduce two kinds of errors. First, the 1D solution is computed on a highly simplified geometrical representation of the 3D geometry assuming a constant flow profile, see Sect. 2.2. Second, the mapping process tries to but cannot guarantee local preservation of the 1D solution characteristics, such as incompressibility.

Figure 8a shows these errors by comparing different initial conditions: 3D ground truth (blue), 1D solution (green), and 3D mapped from 1D (orange). We integrate the 3D ground truth and the mapped 3D initial conditions over the cross-section of the 3D geometry continuously along the centerline. This allows us to plot pressure (top) and flow (bottom) continuously over the vessel path. For a perfect 1D approximation of the 3D simulation, the blue and green lines would overlap. For a perfect mapping from 1D to 3D, the blue and orange lines would overlap. In general, pressure is approximated well by the 1D model and mapped well to the 3D domain. The differences between the models (\(<1\) mmHg) are small compared to the overall pressure level (\(\sim 75\) mmHg). Flow is approximated well by the 1D model whereas the mapping results in oscillations and overestimates the actual flow. Since all three models should represent a model with rigid walls and incompressible flow, flow should be constant along the vessel path. However, the 3D mapped from 1D solution still roughly represents the correct flow splits to the different vessel branches.

We show in Fig. 8b how the flow oscillations along the vessel paths decay in the 3D simulations over time. The simulations initialized with the mapped 1D solutions (orange) reach a flow that’s approximately constant over the vessel branch within the first couple of time steps, similar to the simulations initialized with zero initial conditions (black). The performance of the non-linear solver is identical for both initial conditions.

Figure 8
figure 8

Performance of mapping initial conditions from 1D to 3D.

The differences between 3D ground truth and 3D mapped from 1D initial conditions are visualized in Fig. 9a and are evident, especially within the aneurysm. The mapping from 1D to 3D results in a pressure that is approximately constant over the cross-sections of the vasculature. However, the overall variation, 74-75 mmHg in the ground truth and 73–76 mmHg in the extrapolated solution, is negligibly small compared to the overall pressure level. Similarly, the velocity field in Fig. 9b is visibly different for the ground truth (left) and mapped solution (right).

Figure 9
figure 9

Initial conditions mapped from 1D compared to the 3D asymptotic solution in aortic aneurysm model 0130_0000.

Initial Conditions

Finally, we demonstrate that 3D initial conditions mapped from periodic 1D solutions can greatly reduce the 3D simulation time. We compare three kinds of initial conditions: Zero, Steady, and 1D. For zero initial conditions, we prescribe uniformly \(P_0(\mathbf {x}) = \mathbf {0}\) and \(\mathbf {v}_0 = 10^{-4} \cdot [1,1,1]\). To generate steady initial conditions, we first run a steady state simulation with constant mean inflow \({\bar{Q}}\). We compared starting the pulsatile flow simulation at different time steps for model 0003_0001. Common choices are either the first time step \(t=0\) or the time step where the inflow closely matches the mean flow.39 We found that the number of cardiac cycles required to reach periodic convergence was not affected by the choice of starting time step, so for simplicity we chose \(t=0\) for all comparisons in this section. For 1D initial conditions, we use the framework proposed in Sect. 2.6. The 3D simulations were run using an incompressible Newtonian fluid, a rigid wall, and a no-slip condition at the wall. All 1D simulations and the mapping from 1D to 3D were run on a single CPU on a workstation computer.

Figure 10 shows the convergence of the asymptotic error \(\epsilon _\infty\) for pressure (top) and flow (bottom) at all outlets (colors) for all three initial conditions: zero (left), steady (middle), 1D (right). The threshold \(\epsilon _\infty \le 1\%\) is indicated by a horizontal line, the number of cardiac cycles \(n_\infty\) required to reach that threshold is indicated in each simulation by a vertical line. All simulations are shown for a total of \(n=12\) cardiac cycles. Note that the scale of the flow error is one magnitude lower than the scale of the pressure error. From left to right, the flow and pressure solutions start with a successively lower error in the first cardiac cycle. In the case of 1D initial conditions (right), the pressure errors of all outlets already fulfil the convergence criterion after only one cardiac cycle. Both pressure and flow errors stagnate below \(10^{-3}\) as other numerical errors in the simulations outweigh the asymptotic error. As previously observed, pressure converges faster than flow when using zero or steady initial conditions. However, pressure and flow are converged in one and two cardiac cycles, respectively, when using 1D initial conditions. Due to the drastic reduction in the number of cardiac cycles required for the pressure solution, flow is now slightly slower to converge.

Figure 10
figure 10

Convergence of the 3D pressure in geometry 0003_0001 (aorta-femoral) for different initial conditions: zero (left), steady (middle), 1D (right). The figure shows pressure (top) and flow (bottom) over multiple cardiac cycles, for a single test case. Each color refers to one of the outlets. The horizontal black line indicates the asymptotic error of \(\epsilon _\infty \le 1\%\). The vertical black line indicates after how many cardiac cycles the simulation results have reached that asymptotic error.

Convergence results for all selected 3D geometries and are reported in Table 2. While initializing with a steady state solution considerably reduces the number of cardiac cycles to reach convergence, most of the models still require at least five cardiac cycles for convergence. In all models, the simulations initialized with the 1D solution converge in one or two cardiac cycles. This leads to speedup factors between one and nine compared to the steady state initialization, saving between 0 and 53 h of computation time on 48 CPU cores each per 3D model. Only in model 0097_0001 which has a very low model time constant and the simulation even with zero initial conditions converges in two iterations does the 1D initialization not yield a speedup.

Table 2 Simulation time \(t_\text {3D}\) for one cardiac cycle of the 3D simulation, model time constant \({\bar{\tau }}/T\), and number of cardiac cycles (pressure/flow) for different initial conditions (zero, steady, 1D) with \(\epsilon _\infty \le 1\%\). The maximum number of cardiac cycles in a simulation is highlighted in bold. The last row shows the time savings on 48 CPU cores for each simulation when using the 1D initialization compared to the steady state initialization.

Discussion

We gave a detailed review of properties of lumped-parameter boundary conditions in cardiovascular fluid dynamics simulations. The speed of convergence to a periodic state solution is determined by a single model time constant, that can be approximated as the mean of all individual time constants of multiple outlet boundary conditions. We found that for 53 models of the Vascular Model Repository, the model time constant \({\bar{\tau }}/T\) spanned from 0.3 in pulmonary models to 9.6 in aorta models. That means that in the most extreme case, the time constant of the model is almost ten times as large as the length of the cardiac cycle. Using zero initial conditions, the number of cardiac cycles required to reach a periodic state scales linearly with the model time constant, reaching a median of eight cardiac cycles for our subset of models. Even when using initial conditions other than zero, e.g., from a steady state solution, the number of cardiac cycles required still scales with model time constant.

Figure 11
figure 11

Pressure convergence of an outlet in model 0076_1001 with time constant \({\bar{\tau }}/T=9.6\), starting from zero initial conditions. The red cardiac cycle was selected at \(\epsilon _n=1\%\), the blue one at \(\epsilon _\infty =1\%\).

We introduced the asymptotic error to determine whether a simulation has reached a periodic state, calculating the relative difference of the results in the current cardiac cycle to a perfectly periodic solution. As the periodic solution is not known a priori, we proposed to use a 0D model of the boundary condition. Taking the flow at a 3D outlet as input, we estimate the periodic pressure and compare it to the pressure at the 3D outlet. This method is a quick and easy validation tool for any 3D vascular fluid dynamics simulation with lumped-parameter boundary conditions. This method relies on the fact that flow converges quickly, which we observed in all our models (see Fig. 5). Alternatively, the asymptotic error can be estimated from the cycle-to-cycle difference and the factor \(\alpha\) in (23). In models with time constants larger than \(1/\ln 2 \approx 1.44\), the cycle-to-cycle difference is lower than the asymptotic error. A low cycle-to-cycle difference can erroneously lead the user to believe that the simulation has already reached a periodic state when comparing two consecutive cardiac cycles. This is visualized in Fig. 11. Using the same error tolerance of 1% but different error norms, cyclic error (red) and asymptotic error (blue), yields a pressure difference of 10 mmHg. Thus, only the asymptotic error is a suitable metric to determine the distance of a simulation to its periodic state.

To reduce 3D computation times, we proposed a method to generate good initial conditions in an automated and computationally inexpensive way. We used SimVascular to automatically generate a 1D replication of the 3D model, which we ran until we achieved a periodic state. We than mapped the 1D solution onto the 3D Finite Element mesh. Note that the mapping does in general not result in a fluid field that is divergence free. However, we are not interested in generating a physical or physiological meaningful solution. Instead, the initial conditions are “washed out” by the first iteration of our numerical solver of the Navier Stokes equations. Similarly, the pressure field does not capture local variations. Here, it should be noted that it is much more important to match the overall pressure level of the model, which is in general much higher than any local variations. In a convergence analysis with six different vascular models, we demonstrated that models with our 1D initialization method converge in one or two cardiac cycles. This greatly reduces the computation time for the 3D model over the standard method of initializing pulsatile simulations with a steady-state solution, typically dozens of hours in simulation time and hundreds of hours in CPU time. The code for the 1D initialization is freely available on GitHub (https://github.com/SimVascular/SimVascular).

We close with a discussion of the limitations and future perspectives of our work. We did only consider RCR boundary conditions in this work. However, there are many more examples of lumped parameter 0D networks that are coupled to 3D models, such as coronary boundary conditions23,24 and 0D closed loop models used, e.g., in simulations for single ventricle9,10 and coronary artery bypass graft (CABG) patients.29 In the general case of lumped parameter boundary conditions, the model time constant cannot be determined analytically. However, it can still be calculated numerically from the time it takes the boundary condition to respond to a step in the inflow condition. We plan to include these boundary conditions in future work. It should be noted that those boundary conditions not only require initialization of the velocity and pressure field in the 3D model but also in unknowns that are internal to the 0D model. Since we use cycle-average quantities as a convergence criterion, we cannot guarantee that highly transient phenomena such as transition to turbulence converge as well. All models compared in this work produced a periodic solution. In rare cases when solutions are non-periodic, we anticipate that our method will still perform well since the generated initial conditions could still be applicable. Furthermore, we only considered rigid-wall simulation in this work. We plan to test our 1D initialization method for deformable wall simulations as well, using the coupled momentum method14 or an arbitrary Lagrangian–Eulerian formulation.12 To further improve our method and guarantee periodic convergence within one cardiac cycle, it will be necessary to improve the mapping of the velocity field to the 3D model. This could be accomplished for example by solving a Stokes flow problem, using the 1D results as boundary conditions.