1 Introduction

The integration of patient-specific computational models into clinical practice, which aid in understanding biophysical phenomena and provide decision support for clinicians, has become more frequent over the past decades [1,2,3,4]. These models should be robust, provide meaningful, accurate and timely feedback, and limit the costs associated with (a.o.) the time spent by the clinician in diagnosis and treatment selection and application.

The long-term goal of our ongoing research is the development of a cardiac mechanics model for patients who have suffered from a Myocardial Infarction (MI) and are at high risk of developing Ventricular Tachycardias (VTs), a cardiac disease in which the ventricles show an abnormal increase in rhythm. An MI is caused by a blockage in the arteries that supply oxygenated blood to the myocardium, the muscular layer of the heart. It is expected that an MI located in the left ventricle has the potential to cause VTs over a time span of several years which involves (a.o.) growth and remodeling [5]. VTs lead to decreased pumping performance, becoming life-threatening when left untreated. Current treatments involve using an implantable cardioverter-defibrillator (ICD) and preventive ablation therapy [6]. While ICDs prevent the occurrence of VTs, they have a detrimental effect on the quality of life [7]. Ablation is therefore a viable alternative, but is only successful for 50–80% of the patients [8] due to the complexity of the disease and various treatment approaches employed between clinicians. A patient-specific electromechanical cardiac model that makes use of the existing clinical workflow data can provide more insight into the disease, thereby providing decision support for clinicians in a systematic way. This is believed to lead to an increased success rate of ablation therapy [9,10,11].

Various patient-specific cardiac models have been proposed over the years, focusing on a specific disease or phenomenon [1, 12, 13]. These models are becoming increasingly more complex as they incorporate a broad range of physiological multiscale aspects, e.g., a computational model of the whole human heart was recently introduced in Ref. [14]. Such high-fidelity models are often based on high-resolution scan data to construct the anatomical model [15,16,17,18], i.e., the geometrical dimensions, fiber-sheet structure, and scar tissue location or other anomalies. Typical high-resolution imaging methods in clinics today are magnetic resonance imaging (MRI) and computer tomography (CT), which provide the cardiac geometry, and diffusion tensor MRI (DT-MRI), used to visualize the fiber-sheet structure. Methods such as marching cubes/volumes [19] and immersed (isogeometric) analysis [20] exist to construct a discretized (meshed) geometry based on such high-resolution data. The obtained mesh serves as the basis for computational analysis using a discretized physical model.

High-resolution anatomic scan-data as input for a patient-specific computational analysis is, however, not always available. In the case of VT patients, for example, MRI and/or CT scans are not standard in the clinical workflow. Patients that are susceptible to VTs are systematically monitored to determine if and when treatment should be applied. Part of this clinical workflow is to monitor the patient’s cardiac function (e.g., pump efficiency, valve efficiency) using a (2D) echocardiogram. This ultrasound imaging technique is relatively low-cost and low-resolution. The echo data only shows the general contours of the ventricles (and sometimes the atria). Furthermore, depending on the echo view, geometrical features may be lost or obscured by imaging artifacts. The lack of resolution and loss of information in echo data hinders the patient-specific computational workflow as applied to high-resolution scans, requiring an alternative modeling strategy in which the geometry is interpolated in the region where data is scant. Provided that this interpolated geometry is meshable, simulations can then be conducted in a manner similar to what is done for high-resolution data.

Fig. 1
figure 1

The IGA model workflow consists of two main components: a the anatomical model and b the cardiac model. The anatomical component relies on the parametrized NURBS (Non-Uniform Rational B-Splines) template of the bi-ventricle and single left ventricle, which is assumed to be stress-free and denoted by \(\Omega _0\). A rule-based fiber field is then constructed based on the cardiac shape of which the fiber direction denoted by \({\textbf{e}}^{\textrm{f0}}\) is of importance to the cardiac model. The geometrical properties, \({\Omega _0}\) and \({\textbf{e}}^{\textrm{f0}}\), will be used as input for the cardiac model which solves the relevant physics and consists of a three-dimensional (3D) mechanical and zero-dimensional (0D) circulatory component

Splines are frequently used in industry for geometry representation in computer-aided design (CAD) tools, on account of their smoothness [21]. In the setting of anatomical features, splines are not used for design but rather for interpolation of segmented anatomical data [22]. In particular, for low-resolution or sparse (e.g., only a limited number of two-dimensional cross-sections are observed, rather than the complete three-dimensional object) geometrical data, splines have the ability to extract a realistic geometry. When the spline-based geometry is meshed for analysis purposes using linear elements, a significant number of elements may be introduced to capture curved geometries (typical for biophysical pathologies). Depending on the goal of the simulation, these elements introduced to capture the geometry might not be essential to representing the solution. In this contribution, we propose a robust patient-specific computational workflow suitable for low-resolution scan data, which does not introduce such unnecessary additional elements. The proposed model is based on the Isogeometric Analysis (IGA) paradigm [23, 24], in which splines are used to both parametrize the geometry (i.e., the anatomical model) and to discretize the physical model (i.e., the cardiac mechanics model), without the need for potentially laborious geometry clean-up and meshing operation [25]. By circumventing the introduction of a large number of elements to capture the geometry, the isogeometric approach can have a competitive edge over approaches based on (low-order, piecewise polynomial) meshes.

The proposed workflow in which we leverage the advantages of splines for geometry construction is visualized in Fig. 1. In this work, we develop an idealized parametrized bi- and left-ventricle NURBS (Non-Uniform Rational B-Splines) template geometry, \({\Omega _0}\), suitable for nonlinear mechanics. The splines allow for capturing strong gradients in tissue properties that are typical for cardiac pathologies while limiting the degrees of freedom (DOFs). Since the global behavior of the cardiac model—which comprises a coupled three-dimensional (3D) mechanics component and a zero-dimensional (0D) circulatory component (Fig. 1b)—can be approximated well using relatively few DOFs, the ability of IGA to solve the physical model directly on the spline geometry parameterization avoids the introduction of mesh refinements (and thereby additional DOFs) to capture the geometry with sufficient detail. Since in the considered data-scan scenario information on the fiber field, \({\textbf{e}}^{\textrm{f0}}\), is generally missing, a rule-based-method (calibrated on averaged population data) [26] is used. Our work provides the basis for a patient-specific computational methodology based on a sparse point cloud (e.g., obtained from echocardiogram data), but the development of this methodology—including a fitting algorithm that deforms the NURBS template—is beyond the scope of this manuscript.

Over the past years, the suitability of IGA for biomedical applications has been demonstrated for a broad range of problems, including blood flow in arteries [27, 28], the fluid dynamics of an idealized left-ventricle [29], the structural analysis of aortic valves [30, 31], and trabecular bone structural analysis [20]. However, the literature on IGA cardiac electro-mechanical models is limited, especially with respect to the mechanical analysis. Bucelli et al. [32] used a multi-patch NURBS approach to analyze the electrophysiology (neglecting the mechanical response) of the ventricles, based on high-resolution data. The benefit of higher-order basis functions with high continuity across mesh element boundaries has also been exploited in Refs. [33, 34], where the electrophysiology of the atria is studied. An alternative approach to the spline-based parametrization that is employed in IGA is the use of Hermite elements, which, unlike IGA, has already been considered in electromechanical cardiac simulations [1, 18, 35, 36]. Such Hermite elements allow for a smooth geometry and solution approximation, and also limit the number of elements required to capture curved features. In this sense, Hermite elements are similar to the spline-based elements used in IGA. However, in contrast to IGA, Hermite elements require the computation of nodal derivatives in addition to the nodal displacements. IGA provides a more generic framework for higher-order continuous discretizations, in the sense that it gives control over the order and regularity of the spline basis. Furthermore, due to the availability of spline operations in CAD software [21], IGA is flexible with respect to the parametrization of complex geometries. As part of these operations, various mesh refinement and order-elevation techniques have been developed.

The novelty of our research resides in the development of a parameterized NURBS bi-ventricle template geometry, suitable for nonlinear electro-mechanical analysis. A generalized template construction procedure based on multiple patches is proposed and can be used to produce a broad range of analysis-suitable geometries. The developed cardiac mechanics model uses a monolithic solver to couple the spline-based 3D nonlinear mechanics model to the 0D circulatory system model. The isogeometric analysis results are benchmarked using a state-of-the-art biomechanics finite element model [37], which also illustrates some important differences between the two analysis paradigms. Subsequently, the benchmarked isogeometric simulation framework is used to investigate the influence and sensitivity of geometrical variations on the mechanical response of the heart.

The structure of this paper is as follows. In Sect. 2 we start by explaining the anatomical model of the heart, focusing on the parameterized NURBS geometry and the corresponding fiber field description. Next, in Sect. 3 the cardiac model is discussed, where we focus on the mechanics and simplify the electrophysiology using a constant activation time model. Section 4 then discusses the IGA discretization, along with some essential computational aspects. The IGA results are then compared to finite element analysis (FEA) results and other benchmark problems in Sect. 5. The results section is concluded with a bi-ventricle anatomy-variation analysis, illustrating the geometric flexibility of the IGA workflow. Conclusions and recommendations are presented in Sect. 6.

2 The anatomical model

Fig. 2
figure 2

a Anatomical illustration of the human heart, indicating the two atria (in orange) and ventricles (in dark grey). The arrows show the blood flow direction, where oxygenated blood is flowing from the pulmonary veins into the left atrium and subsequently into the left ventricle, and deoxygenated blood is flowing from the inferior and superior vena cava into the right atrium to the right ventricle. (b) Zoom of a transmurally-cut myocardium block, which consists of sheets and muscle fibers that change in orientation across the thickness [38]. The directions are defined by a local basis \(\{{\textbf{e}}^{\textrm{f}},{\textbf{e}}^{\textrm{s}},{\textbf{e}}^{\textrm{n}}\}\) consisting of the fiber direction, \({\textbf{e}}^{\textrm{f}}\), the sheet direction, \({\textbf{e}}^{\textrm{s}}\), and the sheet-normal direction, \({\textbf{e}}^{\textrm{n}}\). (Color figure online)

The workflow pursued in this paper (see Fig. 1) relies on the construction of an (idealized) anatomical model of the human heart. This section discusses the procedure to construct this template geometry. To set terminology, in Sect. 2.1 we commence with a brief description of the aspects of the anatomy of the human heart which are essential to our work. We then define the parameters of the template geometry in Sect. 2.2, after which a general NURBS multi-patch construction procedure is explained in Sect. 2.3. Section 2.4 finally discusses the representation of the fiber field.

2.1 Essential anatomical aspects of the human heart

The heart is a four-chambered muscular organ, visualized in Fig. 2, which is responsible for maintaining a constant supply of oxygenated blood and nutrients to the organs while relieving them from waste products. It is positioned inside the pericardium, i.e., a double-walled sac filled with pericardial fluid. The heart can be divided into a right and left side, each consisting of an atrium and ventricle chamber. The left side pumps blood to the systemic circulation via the aorta and the right side pumps blood to the pulmonary circulation via the pulmonary artery. The left atrium collects the blood from the pulmonary circulation via the pulmonary vein and consequently fills the left ventricle again. The right atrium collects the blood from the systemic circulation via the two large veins (vena cavae) after which it fills the right ventricle. When both ventricles are filled, a depolarization wave spreads across the myocardial wall, initiating muscle contraction. For in-depth information regarding the (multi-)physics and scales involving the cardiac cycle, i.e., electrophysiology, molecular mechanics, sub-cellular processes, etc., the reader is referred to Ref. [17]. Since the considered cardiac disease affects the ventricles and no geometrical information is known for the atria, it is a common approach in cardiac modeling to truncate the ventricles at the basal plane, Fig. 2a [35, 37, 39].

Considering the ventricle’s myocardium, it is composed of a complex macroscopic morphological structure that has been studied extensively [40,41,42]. The myocardium consists of myocardial cells or myocytes, which have a directional distribution. Aligned myocytes form muscle fibers or myofibers and are typically idealized as cylindrical objects, indicating the general direction of the myocardial cells. The myofibers contain numerous sarcomeres which are responsible for the contraction. The muscle fibers are located and connected in sheets. The sheets are interconnected by collagen layers and are, therefore, only loosely coupled to each other when compared to the coupling of muscle fibers within the sheet. The muscle fiber and sheet directions also show a transmural variation, i.e., variation through the thickness of the wall, visualized in Fig. 2b [38, 43, 44], which make the myocardium a locally orthotropic material.

2.2 Idealized geometry

We herein employ a common simplification of the ventricles (see Fig. 3), using ellipsoids for both the left and right ventricles which are truncated at the basal plane [35, 37, 45]. Moreover, the considered idealized model assumes a smooth representation of the epi- and endocardium and neglects the papillary muscles and trabeculations inside the ventricles which are responsible for opening the mitral and tricuspid valves. This simplification has been widely used for understanding cardiac mechanics and also allows for analytically defined fiber fields that closely represent experimental data [37, 46].

The idealized geometry is parametrized by 14 parameters if we constrain the origin of the global coordinate system. Parameter values are specified by the user but are subject to geometrical constraints, e.g., the left and right ventricles should intersect, or physiological constraints, e.g., the maximum heart size. It is therefore common to make certain parameters interdependent, e.g., \(R^{\textrm{lv}}_x=R^{\textrm{lv}}_y\), or dependent on a secondary parameter, e.g., a relation between the wall and cavity volumes [45]. Ultimately, the parametrization visualized in Fig. 3 allows for a wide variety of geometrical variation, e.g., variable wall thickness is achieved by adjusting \(dR^{\textrm{lv}}_{i},dR^{{\textrm{rv}}}_{i}\) for \(i\in \{x,y,z\}\). These radii parameters could be derived from low-resolution image data such as echocardiograms as an initial guess of the patient’s anatomy. Note that the parametrization of the bi-ventricle, as shown in Fig. 3, could be extended in future work by introducing an independent inner and outer radius for the septum wall, similar to Ref. [45].

2.3 Multi-patch NURBS geometry

To perform an isogeometric analysis, the curved and smooth idealization of the ventricles should be converted to an IGA-suitable geometry. We make use of Non-Uniform Rational B-splines (NURBS), which, in contrast to regular B-splines, enable the exact representation of circles and ellipses. The physical geometry is obtained by mapping the NURBS defined in a parametric domain to the physical domain, i.e., the ellipsoid, using a geometrical map. The topological representation of both domains is defined as a patch that is \(C^0\)-continuous at its boundaries. The complex topology of the bi-ventricles does not allow for a single patch representation without distorting the elements [32]. Such a distortion, which is related to the Jacobian of the geometrical map, would especially be detrimental to our numerical simulations that will involve large (mesh) deformations [17]. To avoid such issues, we employ a multi-patch IGA approach, in which multiple patches are used to represent the geometry. As a consequence, we have to handle the \(C^0\)-continuity at patch boundaries with care.

To formalize the geometric setting of our problem, let \(\Omega \subset {\mathbb {R}}^{d}\) be an open, bounded computational domain defined in a d-dimensional space, which consists of \(n_{\textrm{patch}}\) conforming subdomains, \(\Omega ^{\textrm{P}}\), referred to as patches, where \(\textrm{P}=\{1,\ldots ,n_{\textrm{patch}}\}\). The closed domain, \({\overline{\Omega }}\), is then defined as the union of the individual closed subdomains \({\overline{\Omega }}^{\textrm{P}}\):

$$\begin{aligned} {\overline{\Omega }} =\bigcup ^{n_{\textrm{patch}}}_{\textrm{P}=1} {\overline{\Omega }}^{\textrm{P}} \quad \Omega ^i \cap \Omega ^j = \varnothing \quad i \ne j. \end{aligned}$$
(1)

The individual patch domains, \({\overline{\Omega }}^{\textrm{P}}\), are all mapped from a single parametric domain, \({\widehat{\Omega }} \subset {\mathbb {R}}^{{\hat{d}}}\) where \({\hat{d}} \le d\). In the following, we will only consider patches in 3D (physical) spaces, \(d=3\), and denote the closed domain that is mapped from a parametric domain of dimension \({\hat{d}}\), by a subscript, \({\overline{\Omega }}_{{\hat{d}}}\).

To construct a trivariate multi-patch geometry, we first consider a univariate (\({\hat{d}}=1\)) spline basis, \(\{R_{k,p}\left( \xi \right) \}\) with \(k=\{1,\ldots ,n_{\textrm{cps}}\}\), of degree p, corresponding to patch \(\textrm{P}\), with parametric coordinate, \(\xi \). The mapped patch-domain, \({\textbf{C}}_{p}\left( \xi \right) \), is then defined as

$$\begin{aligned} {\overline{\Omega }}^{\textrm{P}}_{{\hat{d}}=1} := {\textbf{C}}_{p}\left( \xi \right) = \sum ^{n_{\textrm{cps}}}_{k=1} R_{k,p}\left( \xi \right) {\textbf{P}}_{k} , \end{aligned}$$
(2)

where \({\{{\textbf{P}}_{k}\} \subset {\mathbb {R}}^{d}}\) are the control point coordinates which are defined in the physical space and \(n_{\mathrm{\textrm{cps}}}\) are the number of control points (cps). The univariate basis functions defined on the parametric domain on a single patch are chosen to be rational (NURBS) of degree p and are given as

$$\begin{aligned} R_{k,p}\left( \xi \right) = \frac{N_{k,q} \left( \xi \right) w_k }{\sum ^{n_{\textrm{cps}}}_{j=1} N_{j,p}\left( \xi \right) w_{j}}\qquad k=\{1,\ldots ,n_{\textrm{cps}}\}, \end{aligned}$$
(3)

where \(\{N_{k,p}\left( \xi \right) \}\) are univariate B-splines of degree p and \(\{w_k\}\) are the weights of control point k.

The use of univariate basis functions results in a curve in the physical domain, Eq. (2). This can be easily extended to surfaces and solids if the basis functions are chosen to be bivariate and trivariate, respectively. The reader is referred to Ref. [21] for details on how these surfaces and volumes are constructed. From Eq. (2) it is apparent that we have to find the control point coordinates in the physical domain, \(\{{\textbf{P}}_{k}\}\), as well as the corresponding weights \(\{w_k\}\), that fit the domain defined in Eq. (1). In the remainder of this section, we propose a general construction procedure using multi-patch NURBS for complex shapes that produces non-distorted elements.

Fig. 3
figure 3

Idealized representation of the left and right ventricles. The 3D ventricles are defined by parameters on two orthogonal planes, \(P_1: \ xy-\text {plane}\) and \(P_2: xz-\text {plane}\), according to the global coordinates xyz. a Parameters defined on the \(P_1-\text {plane}\), with R the radius, dR the wall thickness, and O the origin of the considered ellipsoid. b Parameters defined on the \(P_2-\text {plane}\), where H is the truncation height of the basal plane

Fig. 4
figure 4

Construction procedure for a single patch on the left outer ventricle (ellipsoid) surface, \(\Gamma ^{\textrm{LV}}_{\textrm{outer}}\), as explained in Procedure 1. a Patch vertices are positioned on the truncated ellipsoid in Step (i), between which NURBS curves are constructed following Step (ii). The constructed curves, colored in orange and blue, represent the patch boundaries. An additional curve is positioned within the patch, colored in green, of which boundary control points are positioned on the Greville points of the corresponding patch boundary curve. b The \(\textrm{P}-\hbox {th}\) surface patch, \({\overline{\Omega }}^{\textrm{P}}_{{\hat{d}}=2}:=S^{\textrm{P}}_{i}\left( \xi , \eta \right) \), is constructed from the curves of Step (ii) by means of lofting (or skinning) [21]. The lofting direction is determined by the orientation chosen for the green curve inside the surface patch as seen in a. c The solid \(\textrm{P}-\)th patch \({\overline{\Omega }}^{\textrm{P}}_{{\hat{d}}=3}:=V^{\textrm{P}}_{i}\left( \xi , \eta , \nu \right) \), is obtained by interpolating the inner and outer patch surfaces. Interpolation is such that the control points within the wall correspond to the Greville points. The visualized procedure is then repeated for every patch to form the final multi-patch geometry. (Color figure online)

2.3.1 Construction procedure

The procedure of constructing the multi-patch bi-ventricle geometry consists of 4 steps. The geometry can be constructed in a generic way by traversing through the dimensions by the subsequent construction of:

(i) points \(\rightarrow \) (ii) curves \(\rightarrow \) (iii) surfaces \(\rightarrow \) (iv) solids.

The construction routine is listed in Procedure 1 and visualized in Fig. 4.

Procedure 1
figure a

The multi-patch NURBS construction procedure, consisting of 4 steps.

The proposed procedure depends on a spatial mathematical description of the shape that describes the surface boundary of the geometry in the physical space, i.e., an ellipsoid, sphere, plane etc. In our case, the parametrized ventricles, illustrated in Fig. 3, are described by ellipsoidal surface objects that are linearly interpolated through the wall to obtain a volumetric representation. As a result, adjustments to the parameters defined in Fig. 3 consequently alter the mathematical description of the ventricle on which the procedure is executed. The procedure consists of the following steps (listed in Procedure 1): Step (i), the procedure is initiated by specifying the patch-vertices on these boundary descriptions, denoted by \({\tilde{\Gamma }}_{\textrm{b}} \subset {\mathbb {R}}^3 \) (Fig. 3). The vertex locations are dependent on the parameter values and are specified a priori such that the mapped patch surface patch, \({\overline{\Omega }}^{\textrm{P}}_{{\hat{d}}= 2}\), yields satisfactory element shapes. The exact vertex locations were empirically determined. Step (ii), by constraining these patch-vertices and evaluating each surface patch individually, we first construct a quadratic single element NURBS curve at the four boundaries that define the considered surface patch (Fig. 4a). Additional curves are constructed inside the surface patch as well, which is required when constructing the NURBS surface. The curve construction is achieved by a minimization problem, which is explained in the next section. Step (iiia), the constructed curves of Step (ii) are then used to construct the patch surface, \({\overline{\Omega }}^{\textrm{P}}_{{\hat{d}}= 2}\). This is achieved using lofting (or skinning) [21] (Fig. 4b), which is dependent on the number of inner curves specified inside the patch (minimum of 1). Step (iiib), the individual patch surfaces are combined to form a \(C^0\)-continuous multi-patch surface, \({\overline{\Omega }}_{{\hat{d}}= 2}\), for each boundary listed in \({\tilde{\Gamma }}_{\textrm{b}}\). Step (iv), the NURBS solid, \({\overline{\Omega }}_{{\hat{d}}=3}\), is then obtained by linear interpolation of the multi-patch surfaces through the wall (Fig. 4c).

Fig. 5
figure 5

Illustration of the three different types of curves, \(\textbf{C}^{\textrm{f}}_i,\textbf{C}^{\textrm{p}}_i,\textbf{C}^{\textrm{e}}_i\), specified in Table 1. All three types of curves are used to construct the entire bi-ventricle multi-patch geometry. a \(\textbf{C}^{\textrm{f}}_i\) NURBS curve located on the unit sphere, i.e., an ellipsoid with unit radii. b \(\textbf{C}^{\textrm{p}}_i\) NURBS curve located on the intersection curve of a unit sphere, \({\mathcal {C}}_1\), and a plane, \({\mathcal {C}}_2\). The orientation of the plane is defined according to the normal, \(\textbf{n}^{\textrm{p}}_i\). c \(\textbf{C}^{\textrm{e}}_i\) NURBS curve located on the intersection curve between two ellipsoids, \({\mathcal {E}}\) and \({\mathcal {C}}_1\), representing the left and right ventricles respectively

2.3.2 NURBS curve construction, Step (ii)

The idealized geometry, illustrated in Fig. 3, consists of two ellipsoids on which, as explained in Procedure 1, NURBS curves are to be constructed between two constrained patch-vertices. Provided that the patch vertices are positioned correctly, we can construct a single-element quadratic NURBS curve that is positioned exactly on the ellipsoid or sphere (see Fig. 5a). This is because NURBS provide an exact representation of circles and ellipses (ellipses are linear transformations of circles). This can be visualized by an intersection curve between an ellipsoid and a plane (a single element quadratic NURBS curve is always located in a plane in 3D space), which is an ellipse (see Fig. 5b). The position and weight of the remaining control point and weight in 3D space must still be determined, satisfying the constraints on the boundary cps and weights (patch-vertices).

To determine this final control point position and weight, consider a single element quadratic NURBS curve as in Eqs. (2) and (3), with degree \(p=2\) and \(n_{\textrm{cps}}=3\) and \(\xi \in \left[ 0,1\right] \), as a function of the unknown control point, \(\varvec{\chi }\), and weight, \(\omega \), at index \(k=2\) or \({\textbf{P}}_2 = \varvec{\chi }\) and \(w_2 = \omega \):

$$\begin{aligned} {\textbf{C}}_i\left( \xi ; \varvec{\chi }, \omega \right) = \sum ^3_{k=1} R_{k}\left( \xi , \omega \right) {\textbf{P}}_{k}\left( \varvec{\chi }\right) , \end{aligned}$$
(4)

where

$$\begin{aligned} R_{k}\left( \xi ; \omega \right) = \frac{N_k \left( \xi \right) w_k\left( \omega \right) }{\sum ^3_{j=1} N_{j}\left( \xi \right) w_{j}\left( \omega \right) }, \end{aligned}$$
(5)

subject to the following constraints

$$\begin{aligned} {\textbf{P}}_{1}&= \varvec{\chi }^{\textrm{fix}}_1, \quad w_1 = 1 \quad \text {at} \quad \xi =0, \end{aligned}$$
(6a)
$$\begin{aligned} {\textbf{P}}_{3}&= \varvec{\chi }^{\textrm{fix}}_2, \quad w_3 = 1 \quad \text {at} \quad \xi =1, \end{aligned}$$
(6b)

in which \(\{N_k \left( \xi \right) \}\) are the univariate B-spline basis functions of degree two with a single-element knot vector. The constrained control points of the curve boundaries that correspond to the patch-vertices of Step (i) are denoted by \(\varvec{\chi }^{\textrm{fix}}_1\) and \(\varvec{\chi }^{\textrm{fix}}_2\).

For the current bi-ventricular application, three curve types are defined: \({\textbf{C}}^{\textrm{f}}\), \({\textbf{C}}^{\textrm{p}}\), \({\textbf{C}}^{\textrm{e}}\) (see Fig. 5), where each curve should satisfy a set of geometrical constraints. These curves are obtained by solving for the unknown control point coordinate, \(\varvec{\chi }\), and the corresponding weight, \(\omega \). Let \({\varvec{{\mathcal {X}}}}\) be the space that contains the solution for \(\varvec{\chi }_i\) and \(\omega \).

The curves are then defined by the minimization problem

$$\begin{aligned} {\textbf{C}}^{\textrm{c}} = {\textbf{C}}\left( \xi ; \varvec{\chi },\omega \right) , \quad \varvec{\chi }, \omega = {\mathop {{{\,\mathrm{arg\,min}\,}}}\limits _{\left( \tilde{\varvec{\chi }}, {\tilde{\omega }}, {\tilde{\lambda }}_j \right) \in {\varvec{{\mathcal {X}}}}\times {\mathcal {W}}\times {\mathcal {V}}}}\left( {\mathcal {L}}\left( \tilde{\varvec{\chi }}, {\tilde{\omega }} , {\tilde{\lambda }}_j \right) \right) ,\nonumber \\ \end{aligned}$$
(7)

where the general functional, \({\mathcal {L}}\left( \cdot \right) \), is defined as

$$\begin{aligned} {\mathcal {L}}\left( \varvec{\chi }, \omega , \lambda _j\right)= & {} \int \frac{1}{2}{\mathcal {E}}^2\left( \xi ; \varvec{\chi }, \omega \right) \text {d} \xi \nonumber \\{} & {} + \sum ^{n_{\textrm{cons}}}_{j=1} \int \lambda \left( \xi \right) \cdot {\mathcal {C}}_j\left( \xi ; \varvec{\chi }, \omega \right) \text {d} \xi , \end{aligned}$$
(8)

and where, \({\mathcal {E}}\left( \cdot \right) \), is the target function which is subject to the constraint functions \({\mathcal {C}}_j\left( \cdot \right) \) that are enforced by the Lagrange multiplier fields \(\lambda _j\left( \xi \right) \). These Lagrange multiplier fields share the same (B-spline) basis functions, but have different coefficients, and are given by

$$\begin{aligned} \lambda _j \left( \xi \right) = \sum ^3_{i=1} N_i \left( \xi \right) {\hat{\lambda }}_{ij} \quad \text {with} \quad j = \{1,..,n_{cons}\}, \end{aligned}$$
(9)

where \(\{{\hat{\lambda }}_{ij}\}\) is the set of Lagrange multiplier coefficients at the ith control point and jth constraint function.Footnote 1 The energy term and constraint functions in Eq. (8) are different for each curve type, as illustrated in Fig. 5 and listed in Table 1. In general, we solve Eq. (7) directly on the ellipsoid, but one could choose to solve it on the unit sphere and map the resulting curve to the ellipsoid as a final step. However, we noticed that solving on the ellipsoid yield less distorted surface patches which are constructed using the result Eq. (7). This effect is most noticeable in highly curved areas of the ellipsoid since the resulting curve is a geodesic due to the local strain-based target function.

The nonlinear minimization problem of Eq. (7) is solved monolithic and yields exact results for canonical test-cases, i.e., NURBS curve located on an arbitrary circle.

Table 1 Target, \({\mathcal {E}}\left( \cdot \right) \), and constraint functions, \({\mathcal {C}}_i\left( \cdot \right) \), of the minimization problem specified in Eq. (8) The radii of the left and right ventricles are respectively listed in a diagonal matrix, such that \({\varvec{{\mathcal {R}}}}^{k}=\text {diag}\left[ R^{\textrm{k}}_{x}, R^{\textrm{k}}_{y}, R^{\textrm{k}}_{z} \right] ^{-1}\) with \({k = \textrm{lv}, {\textrm{rv}}}\). See Fig. 3 for the parameter definitions and Fig. 5 for a graphical illustration of the different curve types

2.3.3 From curves to surface, Step (iii)

The NURBS curves determined in Step (i) are used to construct individual surface patches, which are consequently combined to form a multi-patch surface. The process of blending NURBS curves together to form a surface is referred to as lofting (or skinning) [21]. Lofting considers a set of NURBS curves, \(\{{\textbf{C}}^{\textrm{c}}\left( \xi \right) \}\), referred to as section curves, with superscript \(\textrm{c}\) the curve constraint type as defined in Table 1. A lofted surface patch, \({\overline{\Omega }}^{\textrm{P}}_{{\hat{d}}=2}:= \{ {\textbf{S}}^{\textrm{P}}\left( \xi , \eta \right) \}\), with new parametric direction, \(\eta \) (referred to as the longitudinal direction) can then be constructed by interpolating through the section curves such that they become isoparametric curves on the resulting lofted surface, \({\textbf{C}}^{\textrm{c}}\left( \xi \right) \subset {\overline{\Omega }}^{\textrm{P}}_{{\hat{d}}=2}\). Although lofting is a powerful and widely used tool, the resulting surface shape depends on the position, shape, and number of section curves, as well as on the interpolation used in the \(\eta \)-direction. Additional challenges emerge when dealing with rational curves since the surface construction then takes place in the homogeneous space, i.e., \({\mathbb {R}}^{d+1}\), due to the weights associated with the control points. Because of this, we limit ourselves to single-element quadratic NURBS, as discussed in Step (i), in which the shapes are mostly similar, i.e., circular. The position of the section curves is strongly related to the longitudinal interpolation choice. In this application, we position the section curves such that they intersect with the Greville abscissae [24] (averages of the knots) of the boundary curves, illustrated in orange in Fig. 5a. The longitudinal interpolation, i.e., the parametric distance between the section curves in \(\eta \)-direction, is therefore chosen to be identical to the Greville points. A brief illustrative comparison of the number of section curves is given in Appendix C.

This surface-construction procedure is repeated for every surface patch, \({\overline{\Omega }}^{\textrm{P}}_{{\hat{d}}=2}\) with \(\hbox {P}=\{1,\ldots ,n_{\textrm{patch}}\}\), after which these patches are connected to form the multi-patch surface \({\overline{\Omega }}_{{\hat{d}}=2}\), in accordance with Eq. (1). The patch interfaces, \({\overline{\Omega }}^{i}_{{\hat{d}}=2}\cap {\overline{\Omega }}^{j}_{{\hat{d}}=2} \) with \(i \ne j\), are conforming, both in terms of the knot vector, the spline degree, and in terms of the geometry (identical control points and weights). This is inherent to Step (i), in which the patch-boundary curves are first constructed, after which the patch surfaces are constructed in Step (ii). The final Step (iv) involves interpolating the inner and outer multi-patch surfaces defined on \(\Gamma ^{i}_{\textrm{outer}}\) and \(\Gamma ^{i}_{\textrm{inner}}\) for \(i={\textrm{lv}},{\textrm{rv}}\), such that a volumetric multi-patch domain is obtained, \({\overline{\Omega }}_{{\hat{d}}=3}\).

In the remainder, we will omit the parametric dimension subscript of the geometrical domain and always assume \({\hat{d}}=3\), unless stated otherwise.

Fig. 6
figure 6

Template representation of the bi-ventricles (a) and the left ventricle (b) which are constructed using the NURBS multi-patch procedure (different colors represent different patches). The bi-ventricle template (a) requires a minimum of 15 single-element patches to represent the geometry, while the left ventricle template (b) only requires 5 single-element patches. Additional elements can be used to construct the template, by specifying additional section curves during the lofting procedure, Step (iii)

Fig. 7
figure 7

Schematic overview of the fiber field method based on Rossi et al. [47]. The method consists of three steps: (I) Boundary tagging, (II) solving the Laplace boundary-valued problem, and (III) constructing and rotating the local coordinate system to obtain the fiber direction vector, \({\textbf{e}}^{\textrm{f0}}\). Rotation of the local coordinate system is performed using Rodriguez formula, \(\varvec{{\mathcal {R}}}(\alpha )\), and depends on the helix angle \(\alpha \). The helix angle is obtained from experiments and is specified at the boundaries of the left and right ventricle, \(\phi ^i_{\textrm{epi}}\) and \(\phi ^i_{\textrm{endo}}\) with \(i=\textrm{lv},{\textrm{rv}}\), and consequently interpolated using the results of the Laplace boundary-valued problem, \(\phi \) and \(\gamma \)

2.4 Fiber orientation

When a patient is monitored for VT risk, information on the orthotropic fiber-sheet structure is irrelevant to the monitoring process and, therefore, generally missing. High-resolution DTI-MRI scans could provide this information, but these are expensive and not part of the current clinical workflow. Because of this, a rule-based method (RBM) is used, which enables the computation of a smooth continuous fiber field applicable to arbitrarily shaped atria geometries, single or bi-ventricles, and full heart geometries [26, 48]. The considered type of RBM is based on the solution of Laplace boundary-value problems, of which we employ the method proposed by Rossi et al. [17, 47]. This method is considered to be the simplest solution for constructing a fiber field on arbitrary bi-ventricle geometries.

The method proposed by Rossi et al. consists of three distinct steps, visualized in Fig. 7. Step (I) The domain boundaries are tagged which is required for step (II) in which two Laplace boundary-value problems (LBV), \(\phi \) and \(\gamma \), are solved. The employed boundary conditions and weak formulations for solving the \(\phi \)- and \(\gamma \)-fields are elaborated in Appendix A. The numerical solution of the LBV is then used in two ways: First, a local basis, \(\{{\textbf{e}}^{\textrm{c0}},{\textbf{e}}^{l0},{\textbf{e}}^{\textrm{t0}}\}\), is constructed based on the gradient, \(\nabla _{0} \phi \) and the basal plane normal vector, denoted by \({\textbf{z}}_{0}\). Next, both solutions, \(\phi \) and \(\gamma \), are used to obtain a homogeneous interpolation of fiber angles specified at the boundaries of the left and right ventricles, \(\phi ^i_{\textrm{endo}}\) with \(i=\textrm{lv},{\textrm{rv}}\). These fiber angles are referred to as helix angles and are based on histological (experimental) observations in the literature [38, 42, 49] (summarized in Table 2). We limit ourselves to helical angles and neglect any transmural component of the fibers (transverse angle) [37], i.e., fiber directions not parallel to the epi- and endocardium inside the myocardium. We also neglect differences in material properties in sheet \({\textbf{e}}^{\textrm{s0}}\) and sheet-normal \({\textbf{e}}^{\textrm{n0}}\) direction, i.e., we assume transversely isotropic material behaviour, elaborated on in Sect. 3. The interpolation of the helix angle is given in Step (II) of Fig. 7, after which the local circumferential vector, \({\textbf{e}}^{\textrm{c0}}\), is rotated about the transmural vector, \({\textbf{e}}^{\textrm{t0}}\), given the helix angle \(\alpha \) using Rodriguez formula [17] (Appendix A).

It should be noted that alternative approaches such as the deformable mapping of DTI-MRI [1, 18] could be a viable option when considering patient-specific simulations, provided that accurate data on the fiber and sheet orientations and the associated elastic properties are available. These conditions on the accuracy of the data are not met in our study, making this alternative approach unfeasible.

Table 2 Helix fiber angle \(\alpha \) specified at the epicardium (epi) and endocardium (endo) boundaries of the left ventricle (lv) and the right ventricle (rv), visualized in Fig. 7 and based on [26]

3 The cardiac model

Fig. 8
figure 8

Two-dimensional illustration of the computational domain of the bi-ventricles, representing the myocardium. A distinction is made between the hypothetical stress-free reference configuration and the deformed current configuration. The reference configuration is mapped to the current configuration, based on the displacement vector, \({\textbf{u}}\). The reference domain is bounded by a piecewise smooth boundary, \({{\Gamma }_0 = {\Gamma }_{\textrm{D}} \cup \ {\Gamma }_{\textrm{N}}\cup \ {\Gamma }_{\textrm{R}}}\), which consists of a Dirichlet, \({\Gamma }_{\textrm{D}}\), a Neumann, \({\Gamma }_{\textrm{N}}\), and Robin boundary, \({\Gamma }_{\textrm{R}}\), such that \({\Gamma }_{\textrm{D}} \cap \ {\Gamma }_{\textrm{N}} \cap \ {\Gamma }_{\textrm{R}} =\varnothing \). The domain boundaries consist of the epicardium (epi), the endocardium (endo) of the left (lv) and right (rv) ventricle, and the basal (base) plane. The reference boundaries are part of, \({\Gamma }^{\textrm{base}}_0 \subset {\Gamma }_{\textrm{D}} \), \(\{ {\Gamma }^{\textrm{rv,endo}}_0, \ {\Gamma }^{\textrm{lv,endo}}_0 \} \subset {\Gamma }_{\textrm{N}}\), and \({\Gamma }^{\textrm{epi}}_0 \subset {\Gamma }_{\textrm{R}}\)

For the cardiac model, we consider the open stress-free reference domain, \(\Omega _0\), which is bounded by a piecewise smooth boundary consisting of a Dirichlet, Neumann, and Robin boundary, \({\Gamma _0 = \Gamma _{\textrm{D}} \cup \ {\Gamma }_{\textrm{N}} \cup {\Gamma }_{\textrm{R}}}\), illustrated in Fig. 8. The reference domain is mapped to the current or deformed domain, \(\Omega \), as \(x_i = x_{0_i} + u_i\), where \({x}_{0_i}\) and \(x_{i}\) are the spatial coordinates of respectively the reference and current configuration, and \(u_i\) is the displacement field. Note that for the problem formulation the index notation is employed according to the Cartesian coordinate system such that \(i \in \{x,y,z\}\). Following this map, the deformation gradient is defined as

$$\begin{aligned} F_{ij} = \frac{\partial x_{i}}{\partial {x}_{0_j}} = \delta _{ij} + \frac{\partial u_{i}}{\partial {x}_{0_j}}, \end{aligned}$$
(10)

where \(\delta _{ij}\) corresponds to the identity tensor. The determinant of the deformation gradient,

$$\begin{aligned} J = \text {det}\left( {\textbf{F}} \right) , \end{aligned}$$
(11)

is a measure of volume change and an important quantity for (nearly) incompressible materials.

The employed cardiac model is based on Ref. [37] and solves for the unknown displacement vector, \(u_i\), the scalar contractile length, \(l^{\textrm{c}}\), which is related to the dynamical response of muscle contraction, and a set of 0D pressure terms, \({\tilde{p}}=\{p^{\textrm{0D}}\}\), representing the circulatory system. The model, defined on the current domain, \(\Omega \), then states:

$$\begin{aligned} {\left\{ \begin{array}{ll} \text{ Find } \left( u_i, l^{\textrm{c}},{\tilde{p}} \right) \text{ for } t\in \left( 0,T\right] , &{} \text {such that: } \\ \frac{\partial }{\partial x_i} \sigma _{ij}( l^{\textrm{c}},u_k, t ) = 0_j &{} \text{ in } \Omega \times (0, T], \\ {\mathcal {A}}( l^{\textrm{c}},u_i) = 0 &{} \text{ in } \Omega \times (0, T], \\ {\mathcal {M}}({\tilde{p}}^{\textrm{0D}}, u_i) = \left\{ 0\right\} &{} \text{ in } (0, T],\\ &{}\\ \text {Subject to:} &{} \\ n_i \sigma _{ij} = -p^{\textrm{lv}}( u_k) \ n_j &{} \text{ on } \Gamma ^{\textrm{lv,endo}} \times (0, T], \\ n_i \sigma _{ij} = -p^{\textrm{rv}}( u_k ) \ n_j &{} \text{ on } \Gamma ^{\textrm{rv,endo}} \times (0, T],\\ n_i \sigma _{ij} = -k^{\textrm{peri}} u_j &{} \text{ on } \Gamma ^{\textrm{epi}} ,\\ n_i u_i = 0 &{} \text{ on } \Gamma ^{\textrm{base}},\\ {\tilde{p}} = {\tilde{p}}_{\textrm{0}}, l^{\textrm{c}}=l^{\textrm{s0}}, \ u_i = 0_i &{} \text{ at } t=0. \end{array}\right. } \end{aligned}$$
(12)

The complete cardiac model consists of three sub-models: the equilibrium equation regarding the myocardium mechanics \({\sigma _{ij} \left( \cdot \right) }\), the model related to muscle contraction dynamics, \({{\mathcal {A}}\left( \cdot \right) }\), and the 0D circulatory model, \({{\mathcal {M}}\left( \cdot \right) }\). The circulatory model approximates the dynamics of the human circulatory system by means of 0D pressure points which represent the pressure at representative locations in the arterial and venous part of the systemic and pulmonary circulation, and is coupled to the cardiac domain at the boundaries, \(\Gamma ^{\textrm{lv,endo}}\) and \(\Gamma ^{\textrm{rv,endo}}\), by pressure (Neumann) boundary conditions. The cardiac domain is constrained in the normal direction of the basal plane, \(\Gamma ^{\textrm{base}}\), and at the epicardium, \(\Gamma ^{\textrm{epi}}\), by a stiffness term that mimics the behavior of the pericardium (heart sac) in a simplified manner [50]. The cardiac model is initiated at time \(t=0\), using initial conditions for each unknown quantity, and is terminated at the time T.

In the next sections, we discuss each individual sub-model, i.e., the mechanical model, the contraction dynamics model, and the circulatory model, in more detail. We conclude with an overview of the cardiac cycle simulation settings.

3.1 Constitutive model of the mechanical behavior of the myocardium

The equilibrium equation is solved to compute the displacement field, \(u_i\). From this displacement field the Cauchy stress tensor, \(\sigma _{ij}\), can be derived, which characterizes the spatial and temporal mechanical response of the myocardium. Experimental studies have shown that the passive (absence of muscle contraction) myocardial response exhibits viscoelastic behavior [51, 52]. However, we limit ourselves to the quasi-static behavior, which is commonly used in the literature [17, 37, 53, 54], and allows us to describe the tissue as a hyperelastic material. It is also common to assume the tissue to be nearly incompressible [16, 55].

The mechanical response of the myocardium involves nonlinear large deformations and is often numerically described using the total Lagrange formulation of the finite strain theory. In this formulation, we first relate the Cauchy stress, defined on the current domain, \(\Omega \), to the reference domain, \(\Omega _0\), using the second Piola–Kirchhoff tensor, \(S_{ij}\), such that

$$\begin{aligned} \sigma _{ij} = \frac{1}{J} F_{ik} S_{kn} F_{jn}, \quad \text {with} \quad S_{ij} = S^{\textrm{pas}}_{ij} + S^{\textrm{act}}_{ij}, \end{aligned}$$
(13)

which is additively decomposed according to a passive, \(S^{\textrm{pas}}_{ij}\), and an active contribution, \(S^{\textrm{act}}_{ij}\), both defined on the reference domain, \(\Omega _0\). The passive part describes the hyperelastic behavior of the myocardium and the active part describes the force generated by the myocytes. Both the passive and active components depend on the Green–Lagrange strain tensor, defined as

$$\begin{aligned} E_{ij} = \frac{1}{2} \left( F_{ki} F_{kj} - \delta _{ij} \right) . \end{aligned}$$
(14)

3.1.1 Passive component

The nearly incompressible passive myocardial response is described by defining the second Piola–Kirchhoff stress tensor as

$$\begin{aligned} S^{\textrm{pas}}_{ij} = \frac{\textrm{d} \psi \left( E_{ij} \right) }{\textrm{d} E_{ij}}, \quad \text {with} \quad \psi = \psi ^{\textrm{S}} + \psi ^{\textrm{V}}, \end{aligned}$$
(15)

where \(\psi \) is the elastic strain energy density function, composed of a tissue deformation part, \(\psi ^{\textrm{S}}\), and a volumetric part, \(\psi ^{\textrm{V}}\), which imposes the nearly incompressible constraint. The shape change of myocardial or other biological tissues, which are assumed to be hyperelastic, is generally described by a Fung-type strain energy function [56], although exceptions exist [57]. Several modifications of the Fung-type model have been introduced [16], which are typically based on phenomenological observations or the morphology of the heart tissue [53, 58]. In our analyses, we limit ourselves to the transversely isotropic model of Bovendeerd et al. [37]. This model requires a minimum of 5 parameters and is defined as

$$\begin{aligned} \psi ^{\textrm{S}}\left( E_{ij} \right)&= C [ {\textrm{exp}}\left( Q \right) - 1 ], \end{aligned}$$
(16a)
$$\begin{aligned} \psi ^{\textrm{V}}\left( E_{ij} \right)&= \frac{1}{2} \kappa [ J^2 - 1 ]^2, \end{aligned}$$
(16b)

with

$$\begin{aligned} Q = a_1 I_1^2 - a_2 I_2 + a_3 I_4^2 , \end{aligned}$$
(17)

where C relates to the stiffness of the myocardium, \(\kappa \) is the bulk modulus, and \(a_i\) are material constants (listed in Table 3). The invariants of the strain tensor are defined as

$$\begin{aligned} I_1&= E_{ii}, \end{aligned}$$
(18a)
$$\begin{aligned} I_2&= \frac{1}{2} \left( E_{ii} E_{jj} - E _{ji} E_{ij}\right) , \end{aligned}$$
(18b)
$$\begin{aligned} I_4&= {\textrm{e}}^{\textrm{f0}}_i E_{ij} {\textrm{e}}^{\textrm{f0}}_j \ , \end{aligned}$$
(18c)

where, \(I_1, I_2\), are the first two principal invariants of the Green–Lagrange strain tensorFootnote 2 and \(I_4\) is a quasi-invariant representing the Green–Langrange fiber strain. The quasi-invariant is commonly defined for orthotropic and transversely isotropic materials [58]. Equation (17) is based on a transversely isotropic material, which assumes that the remaining two cross-fiber directions have similar material properties. The addition of a more complex orthotropic material is also possible but is not considered in the current study.

3.1.2 Active component

Shortly before cardiac contraction, a depolarization wave is initiated throughout the myocardium, which initiates the contraction of the myocytes. In the current model, spatial variation during the moment of depolarization, related to the finite velocity of wave propagation, is neglected and contraction of the myocytes is assumed to be initiated simultaneously at time, \(T^{\textrm{act}}\), which circumvents the use of an additional electrophysiological model. The force generated by myocytes depends on the time elapsed, \(t^{\textrm{a}}=t - T^{\textrm{act}}\), since the most recent moment of activation \(T^{\textrm{act}}\). The produced stress in the current fiber direction is then added as a separate component to the passive stress tensor, Eq. (13). The active stress component is defined in terms of the second Piola–Kirchhoff stress

$$\begin{aligned} S^{\textrm{act}}_{ij}= S^{\textrm{a}}( t^{\textrm{a}}, l^{\textrm{c}}) \ {\textrm{e}}^{\textrm{f0}}_i {\textrm{e}}^{\textrm{f0}}_j, \end{aligned}$$
(19)

where \(S^{\textrm{a}}\) is the stress magnitude generated by the sarcomeres, \(t^{\textrm{a}}\) the time elapsed since activation, \({\textrm{e}}^{\textrm{f0}}_i\) the fiber-direction in the reference configuration. The sarcomere can be regarded as a serial connection of a contractile and elastic element, with lengths \(l^{\textrm{c}}\) and \(\left( l^{\textrm{s}} - l^{\textrm{c}} \right) \), respectively, where \(l^{\textrm{s}}\) represents the total sarcomere length. According to physiological observations, the generated stress is dependent on these length scales, the shortening velocity of the contractile element, and the time elapsed since activation [59]. We adopt the model of Bovendeerd et al. [37, 54], where these dependencies are multiplicatively decomposed as

$$\begin{aligned} S^a( t^{\textrm{a}}, l^{\textrm{c}}) = \frac{l^{\textrm{s0}}}{l^{\textrm{s}}}f^{\textrm{iso}}\left( l^{\textrm{c}} \right) \ f^{\textrm{twitch}}\left( t^{\textrm{a}}, l^{\textrm{s}} \right) \ E^{\textrm{a}} \left( l^{\textrm{s}} - l^{\textrm{c}} \right) , \end{aligned}$$
(20)

where \(l^{\textrm{s0}}\) is the sarcomere length in the stress-free state and \(E^{\textrm{a}}\) is the stiffness of the series elastic element. The isometric contraction function, \(f^{\textrm{iso}}\), and twitch function, \(f^{\textrm{twitch}}\), are defined as

$$\begin{aligned} f^{\textrm{iso}} \left( l^{\textrm{c}} \right) = \left\{ \begin{array}{ll} T^0 \text {tanh}^2 \left[ a^{l} \left( l^{\textrm{c}} - l^{\textrm{c0}}\right) \right] &{} l^{\textrm{c}} \ge l^{\textrm{c0}}, \\ 0 &{} l^{\textrm{c}} < l^{\textrm{c0}} , \end{array}\right. \end{aligned}$$
(21)

and

$$\begin{aligned} f^{\textrm{twitch}} \left( t^{\textrm{a}}, l^{\textrm{s}} \right) = \left\{ \begin{array}{ll} 0 &{} t^{\textrm{a}} < 0, \\ \textrm{tanh}^2 \left( \frac{t^{\textrm{a}}}{\tau ^{\textrm{r}}} \right) \textrm{tanh}^2 \left( \frac{t^{\textrm{max}}-t^{\textrm{a}}}{\tau ^{\textrm{d}}}\right) &{} 0 \le t^{\textrm{a}} \le t^{\textrm{max}} ,\\ 0 &{} t^{\textrm{a}} > t^{\textrm{max}} , \end{array}\right. \end{aligned}$$
(22)

with

$$\begin{aligned} t^{\textrm{max}} = b \left( l^{\textrm{s}} - l^{\textrm{d}} \right) . \end{aligned}$$
(23)

In (21), \(T^{\textrm{0}}\) represents the reference active stress level, \(a^{l}\) a parameter that governs the steepness of the stress-length curve, and \(l^{\textrm{c0}}\) the contractile element length below which no active stress is generated. The rise and decay of a myocyte contraction, i.e., the twitch, are governed by \(\tau ^{\textrm{r}}\) and \(\tau ^{\textrm{d}}\), respectively. The twitch duration \(t^{\textrm{max}}\) is described according to a linear relation with the total sarcomere length, provided a slope b and a constant (extrapolated) sarcomere length where the twitch duration is zero, \(l^{\textrm{d}}\). The sarcomere length of Eq. (23) is related to the quasi-invariant \(I_4\) of Eq. (18), such that

$$\begin{aligned} l^{\textrm{s}} = l^{\textrm{s0}} \sqrt{2 I_4 + 1}. \end{aligned}$$
(24)

3.2 Contractile dynamics

The contractile element length, \(l^{\textrm{c}}\), is related to the shortening velocity, as observed in experiments [59]. It is modeled by an ordinary differential equation (ODE) [37, 54] for all material points, which describes the length evolution over time as

$$\begin{aligned} {\mathcal {A}}\left( l^{\textrm{c}}, u_i \right) =\left\{ \begin{aligned}&\frac{d l^{\textrm{c}}}{dt} - \left[ E^{\textrm{a}} \left( l^{\textrm{s}} - l^{\textrm{c}} \right) - 1\right] v^{\textrm{0}} = 0&\text{ in } \Omega _0 \times (T^{\textrm{act}}, T], \\&l^{\textrm{c}} = l^s&\text{ in } \Omega _0 \times [ 0, T^{\textrm{act}}], \end{aligned}\right. \nonumber \\ \end{aligned}$$
(25)

where \(v^{\textrm{0}}\) represents the unloaded shortening velocity. The contractile length is kept equal to the total sarcomere length, Eq. (24), before muscle activation, \(t<T^{\textrm{act}}\), while the ODE in Eq. (25), is only solved after activation has occurred, \(t > T^{\textrm{act}}\).

Fig. 9
figure 9

Schematic overview of the closed-loop lumped parameter model, representing the circulatory system of the human body. The circulatory system consists of a pulmonary (P) and systemic (S) circulation, with arterial (art), venous (ven), and peripheral (per) flows. The pulmonary and systemic circulation are modeled as two Windkessel compartments in series, characterized by a compliance, \(C^i\), and a volume at zero reference pressure, \(V^i_{\textrm{ref0}}\). The compartments and ventricles are linked via resistances, \(R^i\) (green), through which volume flow occurs, \(q^i\) (orange), caused by the compartment pressure, \(p^i\) (blue). The four heart valves: pulmonary valve (PV), tricuspid valve (TV), mitral valve (MV), and aortic valve (AV), are idealized such that they open and close instantaneously and prevent back-flow. The compartment and ventricle pressures, illustrated in blue, are the quantities that are solved for in the circulatory model. (Color figure online)

3.3 Circulatory system

The work performed by the heart is used to circulate oxygenated blood from the lungs to different parts of the human body and back, as illustrated in Figs. 2 and 9. The fluid–structure interaction of the circulating blood through the human body is often simplified by a Windkessel or lumped-parameter model [17, 37, 60]. These models represent the pressure at representative locations in the arterial and venous part of the systemic and pulmonary circulation, as 0D pressure terms which are coupled by conservation of mass.

A schematic overview of the closed-loop circulatory model is visualized in Fig. 9. In this study, we model the systemic and pulmonary circulations using two lumped Windkessel compartments in series (4 compartments in total). These compartments are considered compliant, which means that they allow for a volume change given an internal pressure. Because the compartments are connected in series, the difference in compartment pressure initiates a volume flow, which resembles the flow inside the arteries and veins.

Given the closed-loop circulatory model \({\mathcal {M}} \left( {\tilde{p}}, u_i \right) \) in Eq. (12), the set of 0D pressure points, \({\tilde{p}} = \{p^{\textrm{lv}}, p^{\textrm{rv}}, p^{\textrm{art,P}}, p^{{\textrm{art,S}}}, p^{\textrm{ven,S}}\} \in \left( 0, T\right] \), follows from solving

$$\begin{aligned} {\mathcal {M}} \left( {\tilde{p}}, u_i \right) = \left\{ \begin{aligned} \frac{d V^{\textrm{lv}}\left( u_i \right) }{dt} - q^{\textrm{ven,P}} + q^{{\textrm{art,S}}}&= 0, \\ \frac{d V^{\textrm{rv}}\left( u_i \right) }{dt} - q^{\textrm{ven,S}} + q^{\textrm{art,P}}&= 0, \\ C^{\textrm{art,P}}\frac{d p^{\textrm{art,P}}}{dt} - q^{\textrm{art,P}} + q^{\textrm{per,P}}&= 0, \\ C^{{\textrm{art,S}}}\frac{d p^{{\textrm{art,S}}}}{dt} - q^{{\textrm{art,S}}} + q^{\textrm{per,S}}&= 0, \\ C^{\textrm{ven,S}}\frac{d p^{\textrm{ven,S}}}{dt} - q^{\textrm{per,S}} + q^{{\textrm{art,S}}}&= 0, \\ C^{\textrm{ven,P}} p^{\textrm{ven,P}} - V^{\textrm{ven,P}} + V^{\textrm{ven,P}}_{\textrm{ref0}}&= 0, \end{aligned}\right. \end{aligned}$$
(26)

with

$$\begin{aligned} {\tilde{p}} = {\tilde{p}}_{0} = \left\{ p^{\textrm{lv}}_{0}, p^{\textrm{rv}}_{0}, p^{\textrm{art,P}}_{0} , p^{{\textrm{art,S}}}_{0}, p^{\textrm{ven,S}}_{0} \right\} \quad \text {at} \quad t = 0, \end{aligned}$$
(27)

where \(C^i\) is the compartment compliance, \(V^i\) the compartment volume at time t, and \(q^i\) the volume flow between the compartments. The fixed compartment volume at zero reference pressure is denoted by \(V^i_{\textrm{ref0}}\), while the initial pressure values at time \(t=0\), are given by \(p^i_{0}\). Note that the left and right ventricle pressure, \(p^{\textrm{lv}}\) and \(p^{\textrm{rv}}\), are coupled to the cavity boundaries according to Eq. (12). The venous pressure of the pulmonary circulation, \(p^{\textrm{ven,P}}\), is not required to be solved for because it follows directly from the final relation in Eq. (26) in combination with the conservation of mass when assuming blood to be incompressible [61]:

$$\begin{aligned} V^{\textrm{ven,P}} = V^{\textrm{tot}} - V^{\textrm{lv}} - V^{\textrm{rv}} - V^{\textrm{art,P}} - V^{{\textrm{art,S}}}- V^{\textrm{ven,S}}, \end{aligned}$$
(28)

where \(V^{\textrm{tot}}\) is the total volume of blood inside the entire circulation. Inserting this expression in Eq. (26), yields a relation between the venous pulmonary pressure, \(p^{\textrm{ven,P}}\), and the total blood volume. The remaining pressure terms are linearly dependent on the individual compartment volumes, given as

$$\begin{aligned} V^{i} = C^i p^i + V^i_{\textrm{ref0}} \quad \text {for} \quad i \in \{ {\textrm{art,P}}; \ {\textrm{art,S}}; \ {\textrm{ven,S}} \}. \end{aligned}$$
(29)

The model is concluded by defining the volume flows between compartments as

$$\begin{aligned} \left\{ \begin{aligned} q^{\textrm{art,P}}&= \langle \frac{p^{\textrm{rv}} - p^{\textrm{art,P}}}{R^{\textrm{art,P}}} \rangle , \\ q^{\textrm{ven,P}}&= \langle \frac{p^{\textrm{ven,P}} - p^{\textrm{lv}}}{R^{\textrm{ven,P}}} \rangle , \\ q^{{\textrm{art,S}}}&= \langle \frac{p^{\textrm{lv}} - p^{{\textrm{art,S}}}}{R^{{\textrm{art,S}}}} \rangle , \\ q^{\textrm{ven,S}}&= \langle \frac{p^{\textrm{ven,S}} - p^{\textrm{rv}}}{R^{\textrm{ven,S}}} \rangle , \\ q^{\textrm{per,P}}&= \frac{p^{\textrm{art,P}} - p^{\textrm{ven,P}}}{R^{\textrm{per,P}}} , \\ q^{\textrm{per,S}}&= \frac{p^{{\textrm{art,S}}} - p^{\textrm{ven,S}}}{R^{\textrm{per,S}}} , \end{aligned}\right. \end{aligned}$$
(30)

where \(R^i\) is the flow resistance and Macauley brackets \(\langle \cdot \rangle \) are used to model the cardiac valves, i.e., the mitral, tricuspid, pulmonary, and aortic valves illustrated in Fig. 9. These valves are idealized such that they open or close instantaneously and prohibit backflow.

The ventricle cavity volumes, \(V^{\textrm{lv}}\left( u_i\right) \) and \(V^{{\textrm{rv}}}\left( u_i\right) \), in Eq. (26) are calculated based on the displacement field of the cavity domain boundaries, \(\Gamma ^{\textrm{lv,endo}}\) and \(\Gamma ^{\textrm{rv,endo}}\), defined in the current configuration, such that

$$\begin{aligned} V^{i}\left( u_i \right) = \int \frac{1}{3} \left( x_{i} - H \right) n_i \ \text {d}\Gamma ^{i,\textrm{endo}} , \quad \text {with} \quad i = \textrm{lv}, {\textrm{rv}} , \end{aligned}$$
(31)

where \(x_i\) is the spatial location of the computational domain, Eq. (10), and H is the truncation height of the ventricles, Fig. 3. The pressure-volume relation of the ventricles is dictated by the constitutive relation, Eq. (16), which is nonlinear. As a result, the pressure terms, \(p^{\textrm{lv}}\) and \(p^{{\textrm{rv}}}\) in Eq. (26), act as Lagrange multipliers such that the resulting cavity volume satisfies the conservation of mass of the circulatory model.

Table 3 Model parameter values for the passive and active components
Table 4 Circulatory system model parameters

3.4 Cardiac cycle

The cardiac model is initiated by estimating the initial pressures defined in Eq. (27) and the remaining quantities in Eq. (12). By specifying \(p^{\textrm{ven,P}}_{0}>p^{\textrm{lv}}_{0}=0\) and \(p^{\textrm{ven,S}}_{0}>p^{\textrm{rv}}_{0}=0\) at \(t=0\), the model starts by filling the ventricles without muscle activation (passive filling). Once the ventricles are filled, i.e., the circulatory model approaches steady-state, muscle contraction is activated at \(t=T^{\textrm{act}}=300\) ms, which initiates the active component of the constitutive relation and the sarcomere dynamics model, Eq. (13) and (24), respectively. The parameters used for the active tension model, listed in Table 3, determine the cardiac cycle duration, which corresponds to \(T=800\) ms. Once the cardiac cycle is finished, \(t>T\), a new cycle is initiated with the final results of the previous cycle specified as the initial values. It is required to run the model for several cardiac cycles so that the closed-loop circulatory model can reach dynamic equilibrium. The required number of cardiac cycles is typically 6-8, depending on the estimated initial conditions, the ventricle cavity volumes, and the specified circulatory parameters in Table 4. The number of cardiac cycles will therefore be specified when considering a specific problem.

4 Isogeometric analysis discretization

The strong formulation of the coupled 3D-0D cardiac model in Sect. 3 is discretized according to the IGA paradigm, which is explained in this section. We first discuss the weak formulation which is derived according to the total Lagrange formulation, after which the temporal and spatial discretization is elaborated on. The obtained monolithic system is provided in matrix notation, after which the solving routine is discussed.

4.1 Weak formulation and temporal discretization

The strong formulation of the cardiac model consists of a coupled 3D-0D model, Eq. (12), which solves for the displacement field, the contractile length field, and the windkessel pressures, i.e., \(\{u_i,l^{\textrm{c}},{\tilde{p}}\}\). The weak formulation for each model component is derived according to Galerkin’s method and based on the total Lagrange formulation (Appendix B), where appropriate trial spaces are defined as \({\{u_i,l^{\textrm{c}}\}\in \ } { \varvec{{\mathcal {U}}}\times {\mathcal {L}}} \) with \({\varvec{{\mathcal {U}}}=\{ u_i \ | \ u_i \in {\varvec{H}}^1\left( \Omega \right) , \ u_i n_i = 0}\) \({\text {on} \ \Gamma ^{\textrm{base}} \}}\) and \({ {\mathcal {L}} = \{ l^{\textrm{c}} \ | \ l^{\textrm{c}} \in {L}^2\left( \Omega \right) \} }\), where \(L^2\left( \Omega \right) \) is the space of square integrable functions and \(H^1\left( \Omega \right) \) is the Sobolev space of order one. The infinite-dimensional test spaces are chosen identical, modulo inhomogeneous boundary conditions, such that \({\{ w_i,q\}\in } \ {\varvec{{\mathcal {W}}}\times {\mathcal {Q}}}\) where \( {\varvec{{\mathcal {W}}}} = \{ w_i \ | \ w_i \in {\varvec{H}}^1\left( \Omega \right) , \ w_i n_i = 0 \ \text {on} \ \Gamma ^{\textrm{base}} \} \) and \( {{\mathcal {Q}} = \{ q \ | \ q \in } \) \({L^2\left( \Omega \right) \}}\). This yields the following residual for the momentum balance at the current time increment, \(n+1\), such that \(t^{n+1}=(n+1)\Delta t\),

$$\begin{aligned}{} & {} {\mathscr {R}}^{u}_{n+1}\left( w_j, u_l, l^{\textrm{c}}, p^{\textrm{lv}}, p^{\textrm{rv}}, t^{n+1} \right) = \int \frac{\partial w_j}{\partial x_{0_k}} \ S^{\textrm{pas}}_{ki} \left( u_l \right) F_{ji} \ \text {d}{\Omega _0} \nonumber \\{} & {} \quad + \int \frac{\partial w_j}{\partial x_{0_k}} \ S^{\textrm{act}}_{ki} \left( u_l, l^{\textrm{c}}, t^{n+1} \right) F_{ji} \ \text {d}{\Omega _0} \nonumber \\{} & {} \quad - \int w_j p^{\textrm{lv}} n_{0_k} F^{-1}_{kj} J \ \text {d}{\Gamma ^{\textrm{lv,endo}}_0} \nonumber \\{} & {} \quad - \int w_j p^{\textrm{rv}} n_{0_k} F^{-1}_{kj} J \ \text {d}{\Gamma ^{\textrm{rv,endo}}_0} \nonumber \\{} & {} \quad - \int w_j k^{\textrm{peri}} u_j J \ \text {d}{\Gamma ^{\textrm{epi}}_0} \qquad \forall w_j \in \varvec{{\mathcal {W}}}. \end{aligned}$$
(32)

We employ the \(\theta \)-method [62] for the temporal discretization of the model, where the following definition is used,

$$\begin{aligned} \frac{\left( \cdot \right) _{n+1} - \left( \cdot \right) _{n} }{\Delta t} = \underbrace{\theta \left( \cdot \right) _{n+1} + \left( 1- \theta \right) \left( \cdot \right) _{n}}_{\left( \cdot \right) _{n+\theta }}, \quad \theta \in [0,1], \end{aligned}$$
(33)

where \(\theta \) is the weight that controls the integration method, i.e., \(\theta =0\) for explicit or forward Euler, \(\theta =1\) for implicit or backward Euler, and \(\theta =0.5\) for the Crank-Nicolson scheme. Applying this definition to the evolution equations of the sarcomere dynamics, \({\mathcal {A}}\left( \cdot \right) \), and circulatory model, \({\mathcal {M}}\left( \cdot \right) \), of Eq. (12), results in the following residuals

$$\begin{aligned} \begin{aligned} {\mathscr {R}}^{l^{\textrm{c}}}\left( q, u_i, l^{\textrm{c}} \right)&=\int q \left( l^{\textrm{c}}_{n+1} - l^{\textrm{c}}_n \right) \ \text {d}{\Omega _0} \\&- \Delta t \int q \ \left[ f \left( u_{i}, l^{\textrm{c}} \right) \right] _{n+\theta ^{l^{\textrm{c}}}} \ \text {d}{\Omega _0} \quad \forall q \in {{\mathcal {Q}}}, \end{aligned} \end{aligned}$$
(34)

with

$$\begin{aligned} f\left( u_{i}, l^{\textrm{c}} \right) = \left[ E^{\textrm{a}} \left( l^{\textrm{s}}(u_i) - l^{\textrm{c}} \right) - 1\right] v^{\textrm{0}}, \end{aligned}$$
(35)

according to Eqs. (24) and (25). The circulatory model is discretized in time as follows

$$\begin{aligned} \begin{aligned} {\mathscr {R}}^{{\tilde{p}}}\left( u_i, {\tilde{p}} \right) = \left\{ \begin{aligned} V^{\textrm{lv}}_{n+1}\left( u_i \right) - V^{\textrm{lv}}_{n}\left( u_i \right) - \Delta t \left( q^{\textrm{ven,P}} - q^{{\textrm{art,S}}}\right) _{n+\theta ^{{\tilde{p}}}},&\\ V^{\textrm{rv}}_{n+1}\left( u_i \right) - V^{\textrm{rv}}_{n}\left( u_i \right) - \Delta t \left( q^{\textrm{ven,S}} - q^{\textrm{art,P}}\right) _{n+\theta ^{{\tilde{p}}}},&\\ C^{\textrm{art,P}} \left( p^{\textrm{art,P}}_{n+1}- p^{\textrm{art,P}}_{n} \right) - \Delta t \left( q^{\textrm{art,P}} - q^{\textrm{per,P}}\right) _{n+\theta ^{{\tilde{p}}}},&\\ C^{{\textrm{art,S}}} \left( p^{{\textrm{art,S}}}_{n+1}- p^{{\textrm{art,S}}}_{n} \right) - \Delta t \left( q^{{\textrm{art,S}}} - q^{\textrm{per,S}}\right) _{n+\theta ^{{\tilde{p}}}},&\\ C^{\textrm{ven,S}} \left( p^{\textrm{ven,S}}_{n+1}- p^{\textrm{ven,S}}_{n} \right) - \Delta t \left( q^{\textrm{per,S}} - q^{{\textrm{art,S}}}\right) _{n+\theta ^{{\tilde{p}}}},&\end{aligned}\right. \end{aligned} \end{aligned}$$
(36)

where the volume flow definitions, \(q^i\), are listed in Eq. (30). Note that the pressure terms of the circulatory model, \({\tilde{p}}=\{p^{\textrm{lv}}, p^{\textrm{rv}}, p^{\textrm{art,P}}, p^{{\textrm{art,S}}}, p^{\textrm{ven,S}}\}\), are not defined on the 3D computational domain, \(\Omega _0 \subset {\mathbb {R}}^3\), since these are point values, \({\tilde{p}} \subset {\mathbb {R}}^0\), associated with the Windkessel model and need not be discretized in space.

For convenience, we decompose the temporal residuals defined in Eqs. (34) and (36) based on the previous, \({\mathscr {P}}\), and current, \({\mathscr {C}}\), time-increment, n and \(n+1\) respectively, such that

$$\begin{aligned} {\mathscr {R}}^{i}= {\mathscr {P}}^{i}_{n} + {\mathscr {C}}^{i}_{n+1}, \quad \text {with} \quad i=l^{\textrm{c}}, {\tilde{p}}. \end{aligned}$$
(37)

The definition of each component in the residual, i.e., \({\mathscr {R}}^{l^{\textrm{c}}},{\mathscr {R}}^{{\tilde{p}}}\), is elaborated on in Appendix B.

4.2 Spatial discretization

The formulations of Eqs. (32) and (34) are discretized in space using isogeometric analysis based on multi-patch NURBS. The infinite-dimensional test spaces are first approximated by discrete subspaces, \(\{w^h_i,q^h\}\in \varvec{{\mathcal {W}}}^h\times {\mathcal {Q}}^h \subset \varvec{{\mathcal {W}}}\times {\mathcal {Q}}\), where the superscript h is used to indicate that discrete quantities are concerned. Next, we chose the discrete trial spaces to be identical to the discrete test spaces, such that \({\{u^h_i,l^{\textrm{c}^h}\}\in \ } {\varvec{{\mathcal {W}}}^h\times {\mathcal {Q}}^h }\). The discrete subspaces, \(\varvec{{\mathcal {W}}}^h\) and \({\mathcal {Q}}^h\), are spanned by the vector-valued B-spline shape functions \({N}^{u}_{ij} \in \varvec{{\mathcal {W}}}^h\) for the displacement and scalar-valued B-spline shape functions for the contractile sarcomere length, \({N}^{{\tilde{p}}}_{i} \in {\mathcal {Q}}^h\). The approximate displacement \(u_i^h\) and contractile sarcomere length \(l^{\textrm{c}^h}\) are then given by

$$\begin{aligned} {\left\{ \begin{array}{ll} u^{h}_j\left( x_{0_k} \right) &{}= {\sum }_{i}{N}^{u}_{ij}\left( {x}_{0_k} \right) {\tilde{u}}_i, \\ l^{\textrm{c}^h}\left( x_{0_k} \right) &{}= {\sum }_{i}{N}^{l^{\textrm{c}}}_{i}\left( {x}_{0_k} \right) {\tilde{l}}^{\textrm{c}}_i, \end{array}\right. } \qquad \forall x_{0_k} \in \Omega _0, \end{aligned}$$
(38)

where \({\tilde{u}}_i\) and \({\tilde{l}}^{\textrm{c}}\) denote the displacement and contractile length degrees-of-freedom. We leverage the advantageous continuity properties of B-splines for the displacement and contractile length, by employing cubic \((p=3)\) and quadratic \((p=2)\) B-splines respectively. This ensures \(C^{p-1}\)-continuity across element boundaries within a patch. However, patch interfaces remain \(C^{0}\)-continuous. The B-spline degree difference between the displacement and contractile length is motivated by the definition of Eq. (24), which shows that the contractile sarcomere length is related to the gradient of the deformation. Substituting the discrete space in the weak residual formulation of Eqs. (32) and (34) results in the following (abstract) Galerkin discretization at time-increment \(t^{n+1}=(n+1)\Delta t\):

$$\begin{aligned} {\left\{ \begin{array}{ll}\text {Find } ({u}^h_{i}, l^{\textrm{c}^h}) \in \varvec{{\mathcal {W}}}^h \times {\mathcal {Q}}^h \text { and } {\tilde{p}} \text{ such } \text{ that: } &{} \\ {\mathscr {R}}^{u^h}_{n+1}( w^h_j, u_l, l^{\textrm{c}^h}, p^{\textrm{lv}}, p^{\textrm{rv}}, t^{n+1} ) = 0&{} \quad \forall w^h_j \in \varvec{{\mathcal {W}}}^h,\\ {\mathscr {P}}^{l^{\textrm{c}^h}}_{n}(q^h, u^h_i, l^{\textrm{c}^h}) + {\mathscr {C}}^{l^{\textrm{c}^h}}_{n+1}(q^h, u^h_i, l^{\textrm{c}^h})=0 &{} \quad \forall q^h \in {\mathcal {Q}}^h,\\ {\mathscr {P}}^{{\tilde{p}}^h}_{n}( u^h_i, {\tilde{p}})+ {\mathscr {C}}^{{\tilde{p}}^h}_{n+1}( u^h_i, {\tilde{p}})=0. &{} \end{array}\right. } \end{aligned}$$
(39)

For notation, we only indicate the time-increment, n or \(n+1\), as a subscript of the residual and not of the solution variables on which the residual depends. However, it still holds that the solution variables of a specific residual share the same time-increment as indicated by the residual.

4.3 Solving the 3D–0D coupled problem

We solve the coupled 3D-0D nonlinear Galerkin model of Eq. (39) with the Newton–Raphson method at each time-increment \(n+1\). The coupled system of equations is solved in a monolithic fashion, for increments in displacement, \(\Delta {\tilde{u}}\), the contractile sarcomere length, \(\Delta {\tilde{l}}^{\textrm{c}}\), and the circulatory pressures, \(\Delta {\tilde{p}}\). The resulting set of equations can be represented in matrix form,

$$\begin{aligned} \underbrace{\left[ \begin{array}{ccc} \frac{\partial {\mathscr {R}}^{u}}{\partial {\tilde{u}}} &{} \frac{\partial {\mathscr {R}}^{u}}{\partial {\tilde{l}}^{\textrm{c}}} &{} \frac{\partial {\mathscr {R}}^{u}}{\partial {\tilde{p}}} \\ \frac{\partial {\mathscr {C}}^{l^\textrm{c}}}{\partial {\tilde{u}}} &{} \frac{\partial {\mathscr {C}}^{l^\textrm{c}}}{\partial {\tilde{l}}^{\textrm{c}}} &{} {\tilde{0}} \\ \frac{\partial {\mathscr {C}}^{{\tilde{p}}}}{\partial {\tilde{u}}} &{} {\tilde{0}} &{} \frac{\partial {\mathscr {C}}^{{\tilde{p}}}}{\partial {\tilde{p}}} \\ \end{array}\right] _{n+1}^{i}}_{K^{i}_{n+1}} \ \left[ \begin{array}{c} \Delta {\tilde{u}} \\ \Delta {\tilde{l}}^{\textrm{c}} \\ \Delta {\tilde{p}} \end{array}\right] _{n+1}^{i+1}= \underbrace{-\left[ \begin{array}{c} {\mathscr {R}}^{u} \\ {\mathscr {C}}^{l^\textrm{c}} \\ {\mathscr {C}}^{{\tilde{p}}} \end{array}\right] _{n+1}^{i} -\left[ \begin{array}{c} {\tilde{0}} \\ {\mathscr {P}}^{l^\textrm{c}} \\ {\mathscr {P}}^{{\tilde{p}}} \end{array}\right] _{n}^{i}}_{{\tilde{r}}^{i}}, \end{aligned}$$
(40)

where the tangential stiffness matrix, \(K^{i}_{n+1}\), is constructed at each Newton iteration i for time-increment \(n+1\). The system is considered to be converged when the norm of the residual column is below a specific tolerance, \(\Vert {\tilde{r}}^i \Vert < \textrm{tol}\). Once the system has converged, we proceed to the next time-increment while using the converged solution of the previous time-step as an initial guess for the Newton procedure. The parameters used for time-integration are user-defined and will be specified for the problem considered.

5 Results

In this section, we benchmark the cardiac model by comparing the results of a left ventricle simulation with an established finite element analysis (FEA) solver implemented in FEniCS [63]. The benchmarked model is then used to showcase the proposed IGA workflow, visualized in Fig. 1, where anatomical variations are applied to the bi-ventricle geometry on which numerical analyses are conducted directly. All simulations considered in this section assume an initial stress-free geometry at zero internal pressure, following the approach in e.g., Refs. [37, 45, 54]. Depending on the considered case, considering the impact of pre-stresses can be relevant. However, this is beyond the scope of the current manuscript.

Fig. 10
figure 10

Hemodynamics result of a left ventricle single cardiac cycle. The cardiac cycle is divided into a diastolic phase, consisting of isovolumetric relaxation (ir) and filling (fill), and a systolic phase, consisting of isovolumetric contraction (ic) and ejection (eject). Top row: Pressure evolution of the left ventricle cavity, \(p^{\textrm{lv}}\), the arterial compartment, \(p^{\textrm{art}}\), and the venous compartment, \(p^{\textrm{ven}}\). Middle row: Evolution of the left ventricle cavity volume, with contour plots showing the displacement magnitude during filling and ejection projected on the current (deformed) configuration. The magenta-colored lines are straight in the reference configuration and show the torsional behavior in the current configuration. Bottom row: Arterial \(q^{\textrm{art}}\), venous \(q^{\textrm{ven}}\), and peripheral \(q^{\textrm{per}}\) volume flows, indicating the opening and closure of the left ventricle valves

5.1 Left ventricle model

Before the IGA cardiac model detailed in Sect. 3 is used to study anatomical variations of the bi-ventricle, it is first benchmarked against an established FEA solver [37] to identify potential limitations. Our benchmark is limited to the left ventricle geometry. In the extension to the bi-ventricles scenario at the end of this section, it is assumed that this alternative anatomical model does not substantially compromise the validity of the cardiac model (i.e., the physical model benchmarked for the single ventricle is expected to remain valid). Details regarding the left ventricle boundary conditions are given in Appendix D.

A typical cardiac cycle of the left ventricle is illustrated in Fig. 10, in which the results of the IGA model (computed on a sufficiently refined mesh, as discussed in detail below) are presented. The cardiac cycle is subdivided into a diastolic, i.e., relaxing, and systolic, i.e., contracting, phase. During diastole, the heart has finished ejection and briefly enters the isovolumetric relaxation phase (ir) before it starts filling (fill) with oxygenated blood via the mitral valve, \(q^{\textrm{ven}}\). The systolic phase is entered when muscle contraction starts after filling. The pressure inside the left ventricle increases during isovolumetric contraction (ic), after which the left ventricle pressure exceeds the arterial pressure and the blood is ejected (eject), \(q^{\textrm{art}}\). Figure 10 shows the different pressures, cavity volume, and volume flows as a function of time. The duration of the cardiac cycle is an input of the numerical model and set to be 800 ms or 75 beats-per-minute (bpm) and is controlled by the parameters of the active Cauchy stress component in Sect. 3.

In the remainder of this section, we first investigate the convergence behavior of the IGA left ventricle model, before comparing it with the FEA results. The presented comparison pertains to the hemodynamics as well as to the mechanical behavior, i.e., strains and stresses.

5.1.1 Convergence

The coupled 0D–3D cardiac model does not allow for an analytic solution to be derived. However, there exist analytic solutions for the decoupled hyperelastic behavior of the cardiac model on a simplified geometry, i.e., the inflation of an isotropic thick-walled sphere. The numerical results of the thick-walled sphere problem are compared to the derived analytic solution in Appendix C, where the considered spherical multi-patch geometry is also discussed. In summary, the results of the IGA cardiac model for this analytical test case exhibit optimal \(L^2\) and \(H^1\) convergence rates for both quadratic and cubic B-splines given the mixed (\(u_i-p\)) formulation, and nearly optimal rates for the single field (\(u_i\)) formulation (Fig. 31). Even though the single IGA field formulation exhibits a slightly lower rate, the obtained accuracy is still within an acceptable range for our application. The IGA thick-walled sphere convergence rates are also compared to the FEA convergence rates. It is observed that IGA exhibits superior behavior over the FEA single field formulation in terms of accuracy vs. element size, which is mainly attributed to the geometrical approximation inaccuracies introduced during the meshing phase of the FEA procedure.

Fig. 11
figure 11

a Two left ventricle meshes, \({\mathscr {M}}_1\) and \({\mathscr {M}}_2\), used for the convergence analysis of the model. The meshes are obtained by uniform refinement of the coarsest mesh depicted in Fig. 6, and consist of 320 and 2560 quadratic elements, respectively. b The pressure-volume (PV) curves for different spatial discretizations of the displacement field, \({\mathscr {M}}_1(N^{u_i}_{p=3})\), where subscript p denotes the degree of the B-spline

Given that the nearly incompressible hyperelastic response is rigorously verified in terms of mesh convergence rates, we now analyze the convergence of the coupled 0D–3D cardiac model in terms of hemodynamics and mechanical stress–strain behavior. Convergence of the spatial discretization is studied using h- and p-refinement, i.e., refinement in element size and spline degree, while the temporal discretization is kept constant. The numerical results are analyzed for two meshes, illustrated in Fig. 11a, and two spline degrees, quadratic and cubic. The two meshes, \({\mathscr {M}}_1\) and \({\mathscr {M}}_2\), are obtained by uniform refinement (knot insertion) of the left ventricle template, which consists of 5 elements and is visualized in Fig. 6b. The idealized template allows for an analytic fiber field description explained in Appendix D, in contrast to the rule-based fiber field method discussed in Sect. 2.4. This analytic field is insensitive to mesh refinement and is therefore beneficial for convergence analyses. Results are visualized for a fixed time step of \(\Delta t=2\) ms at the 5th cardiac cycle, which is where the model exhibits a cyclic steady-state behavior. A complete overview of the simulation settings is provided in Appendix D.

The hemodynamical results are presented in Fig. 11b, in which the left ventricle cavity pressure-volume (PV) loop is illustrated. Minor differences are observed between the different spatial discretizations. The 0D circulatory model is dependent on the cavity volume, which remains unchanged under mesh refinement given the IGA paradigm. The observed differences are therefore related to the spatial approximation of the cardiac model and not the parametrization of the geometry. It is also observed that the results of the finer mesh with quadratic basis functions for the displacement discretization, \({\mathscr {M}}_2(N^{u_i}_{p=2})\), and the coarser mesh with cubic B-splines, \({\mathscr {M}}_1(N^{u_i}_{p=3})\), are closely positioned. The other hemodynamic quantities, i.e., volume changes and flows, are not presented since there was no distinct difference noticeable. From these results, it is concluded that the hemodynamical response of the FEA benchmark is closely captured by all considered IGA discretizations.

The mechanical results are compared for the fiber component of the total Cauchy fiber stress and Green–Lagrange strain tensor, and the circumferential-longitudinal shear component of the Green–Lagrange strain tensor, defined as

$$\begin{aligned} \sigma _{\textrm{ff}}&= \textrm{e}^{\textrm{f0}}_i \sigma _{ij} \textrm{e}^{\textrm{f0}}_j, \end{aligned}$$
(41a)
$$\begin{aligned} E_{\textrm{ff}}&= \textrm{e}^{\textrm{f0}}_i E_{ij} \textrm{e}^{\textrm{f0}}_j, \end{aligned}$$
(41b)
$$\begin{aligned} E_{\textrm{cl}}&= \textrm{e}^{\textrm{c0}}_i E_{ij} \textrm{e}^{l\textrm{0}}_j, \end{aligned}$$
(41c)

where \(\sigma _{ij}\) is given in Eq. (13) and \(E_{ij}\) is the Green–Lagrange strain tensor with respect to the (undeformed) reference configuration, Eq. (14). The quantities are integrated over the equatorial plane, \(\Gamma ^{\textrm{eq}}_0\), defined in the reference configuration \(\Omega _0\) where \(z=0\), at each time-instance t according to

$$\begin{aligned} {\overline{q}}(t) = \frac{1}{\int \text {d} \Gamma ^{\textrm{eq}}}_0 \int q(x_i, t) \ \text {d} \Gamma ^{\textrm{eq}}_0 \quad \text {for} \quad q = \sigma _{\textrm{ff}}, E_{\textrm{ff}}, E_{\textrm{cl}}. \end{aligned}$$
(42)

The results are compared in Figs. 12 and 13.

Fig. 12
figure 12

a Contour plots of the total Cauchy fiber stress component \(\sigma _{\textrm{ff}}\) visualized on the left ventricle half in the reference configuration, \(\Omega _0\). The equator plane is denoted by \(\Gamma ^{\textrm{eq}}_0\) and located at \(z=0\). The rows indicate the spatial discretization for the displacement field and the columns the time-instances. b The total Cauchy fiber stress component is spatially averaged over the equatorial plane \({\overline{\sigma }}_{\textrm{ff}}\) and monitored in time. The vertical dashed lines indicate the different cardiac phases

Fig. 13
figure 13

a Contour plots of the Green–Lagrange strain fiber component \(E_{\textrm{ff}}\) visualized on the left ventricle half in the reference configuration, \(\Omega _0\). The equator plane is denoted by \(\Gamma ^{\textrm{eq}}_0\) and located at \(z=0\). The Green–Lagrange strain tensor is defined with respect to the reference configuration. The rows indicate the spatial discretization for the displacement field and the columns the time-instances. b The Green–Lagrange strain fiber component is spatially averaged over the equatorial plane \({\overline{E}}_{\textrm{ff}}\) and monitored in time. The vertical dashed lines indicate the different cardiac phases

Fig. 14
figure 14

a Contour plots of the Green–Lagrange strain longitudinal-circumferential shear component \(E_{\textrm{cl}}\). The shear component is visualized on the left ventricle half in the reference configuration, \(\Omega _0\), where the equator plane is denoted by \(\Gamma ^{\textrm{eq}}_0\) and located at \(z=0\). The Green–Lagrange strain shear component is defined with respect to the reference configuration. The rows indicate the spatial discretization for the displacement field and the columns the time-instances. b The Green–Lagrange strain shear component is spatially averaged over the equatorial plane \({\overline{E}}_{\textrm{cl}}\) and monitored in time. The vertical dashed lines indicate the different cardiac phases. c Radial distribution of the shear component at three time-instances. The shear components were averaged in the circumferential direction to obtain the radial distribution

The considered mechanical quantities show a clear converging behavior for the stress and strain fiber component, Figs. 12 and 13. This observation is in line with the thick-walled sphere, in which the principal components in stress and strain converge rapidly for coarse meshes with high order (cubic) basis functions, see Appendix C. However, the averaged shear component of the strain, Fig. 14b, exhibits slightly different behavior, in which no clear convergence is observed between the \({\mathscr {M}}_1(N^{u_i}_{p=3})\) and \({\mathscr {M}}_2(N^{u_i}_{p=2})\) discretizations. This is most noticeable when comparing these two results to the coarsest discretization, \({\mathscr {M}}_1(N^{u_i}_{p=2})\), with the difference clearly visible at the global maxima and minima of the curve, Fig. 14b. By investigating the radial distribution at three time-instances, Fig. 14c, it is, however, observed that the distribution does converge, albeit rather slowly. The radial distribution also exhibits an oscillating behavior, which can explain the observed discrepancy in the convergence of the integrated average quantity in Fig. 14b.

The contour plots of the fiber stress and strain quantities, Figs. 12, 13 and 14, show a similar trend for all quantities for varying discretizations. First, the approximate solution of the cardiac model exhibits undesired boundary effects near the basal plane, caused by the normal displacement constraint, and near the apex, caused by a singularity in the fiber field Appendix D.1. It is therefore common to only analyze the solution sufficiently far away from these two locations. Second, the approximate solution results with a quadratic B-spline discretization, \({\mathscr {M}}_2(N^{u_i}_{p=2})\) and \({\mathscr {M}}_1(N^{u_i}_{p=2})\), do not allow for \(C^{1}\)-continuity (or higher) across element interfaces for quantities which are one order of regularity lower than the displacement, i.e., stresses and strains. This is solved by employing cubic B-splines, which are \(C^{2}\)-continuous and yield smooth stresses and strains, which is expected to be closer to the physiological behavior in comparison to the \(C^{1}\)-continuity of the quadratic B-splines. However, inter-patch continuity remains unaffected by the spline order and is restricted to \(C^{0}\)-continuity

Based on the convergence study presented in this section, in the remainder of this contribution, we will employ cubic B-splines, \(N^{u_i}_{p=3}\), for the displacement field in combination with the coarsest mesh, \({\mathscr {M}}_1\). While a finer mesh yields more accurate results, on the coarsest mesh the numerical errors are anticipated to be small in comparison to the parametric uncertainties (both anatomical and physiological).

5.1.2 Comparison to FEA

The developed IGA model is compared to an established FEA cardiac model [37] to build confidence in the model results and identify potential limitations. The IGA model is constructed using the Nutils Python toolbox [64], while the FEA model is constructed using the FEniCS Python toolbox [63]. Both models solve the same system of equations as specified in Sect. 3, but with a fundamentally different implementation on account of the employed software frameworks. A detailed discussion of the differences between both frameworks is considered impractical and therefore omitted here. However, the main difference with regard to the solver is noteworthy: The IGA model solves the entire set of coupled equations in a monolithic approach, which allows for fully and semi-implicit time-integration. The FEniCS implementation relies on a staggered approach and for every time step employs an explicit one-step method [65]. To limit potential result differences, we employ identical boundary conditions and temporal conditions, i.e., initial conditions, time step size, and time-integration scheme (Appendix D), for both the IGA and FEA models. Additionally, the fiber field is derived analytically and the epicardium boundary condition in Eq. (12) is replaced by a zero-traction condition in accordance with Ref. [37]. The remaining parameter values are discussed in Appendix D.

We use two different meshes for the comparison, denoted by \({\mathscr {M}}_{\textrm{IGA}}\) and \({\mathscr {M}}_{\textrm{FEA}}\), which are shown in Fig. 15. The IGA mesh is obtained by uniform refinement of the quadratic NURBS template, visualized in Fig. 6b, while the unstructured FEA mesh consists of linear tetrahedrons. The IGA model employs cubic B-splines for the displacement vector \(u_i\) and quadratic B-splines for the contractile length \(l^{\textrm{c}}\), resulting in a nonlinear monolithic system with a total number of 4,700 degrees-of-freedom (DOFs). The FEA model discretizes the displacement vector using quadratic Lagrangian basis functions, resulting in a nonlinear staggered system with 469,734 DOFs. We do want to emphasize that the FEniCS approximate solution is not considered to be the ground truth, since it is an approximation itself and should ideally have been subject to a conclusive convergence assessment. Although the FEniCS approximate solution is observed to be converged for the principal strain components, it is not yet fully converged for the shear-strain components. However, the accuracy of these shear components is still considered to be within acceptable accuracy for clinical research and thus considered to be sufficient for the comparison considered here.

Fig. 15
figure 15

The meshes that are used in the IGA, \({\mathscr {M}}_{\textrm{IGA}}\), and FEA model, \({\mathscr {M}}_{\textrm{FEA}}\). The IGA mesh is obtained by uniform refinement of the coarse template geometry, Fig. 6b, which consists of 320 quadratic NURBS elements resulting in a total of 4700 DOFs. The FEA mesh approximates the analytic ellipsoid shape and consists of 108,270 linear tetrahedron elements resulting in 469,734 DOFs. The IGA model is constructed and solved with the Nutils Python toolbox [64], while the FEA model employs the FEniCS Python toolbox [63]

Fig. 16
figure 16

Comparison of the hemodynamical results for the IGA and FEA cardiac models given the \(5^{\textrm{th}}\) cardiac cycle. a Pressure profiles of the arterial, venous, and left ventricle cavities. b Volume flow profiles of the arterial, venous, and peripheral flow. c Pressure-volume loop of the left ventricle

Fig. 17
figure 17

Comparison between the FEniCS finite element analysis (FEA) and the Nutils isogeometric analysis (IGA) result. a Contour plots of the total Cauchy fiber stress component \(\sigma _{\textrm{ff}}\) visualized on the left ventricle half in the reference configuration, \(\Omega _0\). The equator plane is denoted by \(\Gamma ^{\textrm{eq}}_0\) and located at \(z=0\). The rows indicate the spatial discretization for the displacement field and the columns the time-instances. b The total Cauchy fiber stress component is spatially averaged over the equatorial plane \({\overline{\sigma }}_{\textrm{ff}}\) and monitored in time. The vertical dashed lines indicate the different cardiac phases

Fig. 18
figure 18

Comparison between the FEniCS finite element analysis (FEA) and the Nutils isogeometric analysis (IGA) result. a Contour plots of the Green–Lagrange strain fiber component \(E_{\textrm{ff}}\) visualized on the left ventricle half in the reference configuration, \(\Omega _0\). The equator plane is denoted by \(\Gamma ^{\textrm{eq}}_0\) and located at \(z=0\). The Green–Lagrange strain tensor is defined with respect to the reference configuration. The rows indicate the spatial discretization for the displacement field and the columns the time-instances. b The Green–Lagrange strain fiber component is spatially averaged over the equatorial plane \({\overline{E}}_{\textrm{ff}}\) and monitored in time. The vertical dashed lines indicate the different cardiac phases

Fig. 19
figure 19

Comparison between the FEniCS finite element analysis (FEA) and the Nutils isogeometric analysis (IGA) result. a Contour plots of the Green–Lagrange strain longitudinal-circumferential shear component \(E_{\textrm{cl}}\). The shear component is visualized on the left ventricle half in the reference configuration, \(\Omega _0\), where the equator plane is denoted by \(\Gamma ^{\textrm{eq}}_0\) and located at \(z=0\). The Green–Lagrange strain shear component is defined with respect to the reference configuration. The rows indicate the spatial discretization for the displacement field and the columns the time-instances. b The Green–Lagrange strain shear component is spatially averaged over the equatorial plane \({\overline{E}}_{\textrm{cl}}\) and monitored in time. The vertical dashed lines indicate the different cardiac phases. Note that the jagged pattern in the lower-left figure of a is pronounced by the selected narrow range of the color bar. (Color figure online)

The hemodynamics of the left ventricle are visualized in Fig. 16, which shows that the coarse IGA model is capable of matching the FEniCS model almost exactly. This is similar to the convergence comparison, Fig. 11, which shows that the hemodynamics are primarily dependent on the cavity volume, which is a geometrical quantity and thus remains exact for the IGA case. The FEniCS result, on the other hand, is influenced by mesh refinement, due to the linear tetrahedrons that approximate the geometry, also shown in Appendix C for the thick-walled sphere.

Besides the hemodynamic results, we analyze the mechanical results again for the fiber Cauchy stress and Green–Lagrange strain, both visualized in Figs. 17 and 18. The results for both the Cauchy stress and Green–Lagrange strain show a good agreement when averaged over the equatorial plane and monitored in time. The minor deviations observed are expected when comparing identical models, both discretized and implemented in different software. The contour plots yield similar results, albeit that subtle differences are noticed. The FEA results tend to create a sharp and often irregular behavior, most noticeable near the boundaries, for the stress and strain quantities. This is inherent to the inter-element \(C^0\)-continuity in combination with the unstructured mesh [66]. Furthermore, the IGA result shows multiple ’rings’ or value oscillations on the base boundary at \(t=550\) and \(t=730\) ms, while the FEA only shows one. The same is observed on the equatorial plane, albeit less pronounced. With the limitations of the considered software frameworks, it remains inconclusive whether either the IGA or FEA results correctly capture these oscillations.

The shear component is discussed separately since it does show a noticeable difference, similar to the convergence behavior in Fig. 14. Upon investigating the radial distribution in Fig. 19c, both the Nutils and FEniCS results exhibit a similar oscillating behavior. Nonetheless, the magnitude deviates, which is most likely attributed to the not fully converged results and the difference in element type, i.e., hexahedron (Nutils) and tetrahedron (FEniCS). As shown in Fig. 14 of the previous section, the IGA model is unable to achieve fully converged shear components without considering an impractical number of elements. This slow shear convergence is also observed for the FEA model, suggesting that significant through-the-thickness variations occur for this particular quantity of interest. Furthermore, tetrahedron elements typically underperform with respect to hexahedron elements in terms of convergence rate, as indicated in Appendix C, and shear loads [67, 68]. Whether the observed discrepancy in Fig. 19 is attributed to both the unconverged result and element type remains inconclusive. However, regarding the purpose of the proposed IGA model, we are primarily interested in the general mechanical behavior. In view of this, the observed deviations in specific mechanical quantities are considered not to be restrictive.

Fig. 20
figure 20

Visualization of the reference bi-ventricle geometry, \({\mathcal {G}}_{\textrm{ref}}\), and two variations of it, \({\mathcal {G}}_{\textrm{long}}\) and \({\mathcal {G}}_{\textrm{thk}}\). The variations consist of an elongated or vertically stretched reference variant, \({\mathcal {G}}_{\textrm{long}}\), and a thickened right ventricle wall variant, \({\mathcal {G}}_{\textrm{thk}}\). Three mid-wall points are defined on the equatorial plane (\(z=0\)) in the right ventricle, A, the septum, B, and the left ventricle mid-wall C. These points are used to evaluate mechanical quantities of interest

5.2 Bi-ventricle model

We now consider the application of the benchmarked IGA model to a bi-ventricle geometry, utilizing the workflow of Fig. 1. More specifically, this section first leverages the fast geometry creation procedure for various anatomical (geometrical) variations, without the need for meshing. Three variations are considered with changing left ventricle (LV) and right ventricle (RV) shapes while maintaining constant cavity volumes. This section is concluded by a numerical analysis of the anatomical variations in terms of the hemodynamics and mechanical stress–strain behavior. The hemodynamic parameters, as illustrated in Fig. 9, were calibrated and fixed for all simulations such that the model produced a hemodynamically physiological result. It should, however, be emphasized that the focus of the presented simulations is on demonstrating the efficient IGA workflow as depicted in Fig. 1, rather than on the physiological interpretation of the simulation results.

5.2.1 Geometrical variations

The reference bi-ventricle geometry, denoted by \({\mathcal {G}}_{\textrm{ref}}\), is an extension of the previously discussed left ventricle geometry, as it employs the same dimensions with the addition of a right ventricle. The dimensions of the stress-free right ventricle, i.e., wall thickness, attachment location, etc., are based on Ref. [45]. The resulting reference bi-ventricle geometry is depicted in Fig. 20.

We consider two geometrical variations of the reference bi-ventricle geometry, \({\mathcal {G}}_{\textrm{ref}}\), as shown in Fig. 20. The first variation, \({\mathcal {G}}_{\textrm{long}}\), is a vertical elongation of the ventricles, which is a typical bi-ventricle shape mode observed in the population [69]. The second variation, \({\mathcal {G}}_{\textrm{thk}}\), has a thickened right ventricle wall with slightly adjusted radii, which could for example represent right ventricle hypertrophy [70]. All three geometries have an identical left and right cavity volume of 44 ml, which is similar to the left ventricle in Sect. 5. The wall volume of the reference and elongated variation, \({\mathcal {G}}_{\textrm{ref}}\) and \({\mathcal {G}}_{\textrm{long}}\) is similar, while the variation, \({\mathcal {G}}_{\textrm{thk}}\), has a slightly larger wall volume due to the thickened right ventricle wall.

Fig. 21
figure 21

Displacement solutions of the three anatomical variations with the spatial discretization (mesh) visualized. The colored part represents the deformed bi-ventricle at end-systole, while the opaque grey represents the bi-ventricle at end-diastole

The spatial discretization is set identical for all geometries and consists of 120 elements, which is chosen coarse on purpose as it results in fast computations with sufficient accuracy on account of the considered spline discretization. The displacement field employs cubic B-spline basis functions and quadratic B-spline basis functions for the contractile length. This results in a nonlinear system containing 4,237 degrees of freedom, which is iteratively solved using Newton–Raphson iterations and Crank-Nicolson time-integration (\(\theta =0.5\) in Eq. (33)) with a fixed time step of 2 ms. The cardiac cycle duration is set to 75 beats-per-minute (or 800 ms), which requires a minimum of 7 cardiac cycles before a cyclic steady-state behavior is obtained (stroke volume of the left and right ventricle deviate \(\le 0.2\%\)). The results provided in the next section pertain to the \(8\hbox {th}\) cycle.

5.2.2 Analysis

The numerical solutions of the anatomical variations are analyzed in terms of the hemodynamics and mechanical stress and strain behavior. Before we discuss these quantities, we commence with a study of the spatial bi-ventricle displacement. The displacement field is visualized in Fig. 21 for the end-systolic phase (after contraction), while the end-diastolic phase (before contraction) is shown in opaque grey. The results show the complex interaction of torsion in the LV and its influence on the RV. As the LV twists, it starts pulling (tension) at the RV at the front attachment area (from the observer perspective used in Fig. 21), while it starts pushing (compression) at the other side. This mechanism has an effect on the shear component inside the septum (the wall that divides the two ventricles) relative to the free-wall (the wall opposite to the RV) and would not be captured by the single left ventricle simulation.

Fig. 22
figure 22

The hemodynamic results (cavity pressure-volume) of the different anatomical variations \({\mathcal {G}}\)

The hemodynamic pressure-volume results are visualized in Fig. 22 and a corresponding set of cardiac function indicators are listed in Table 5. Based on both the figure and table, it is observed that both the LVs of \({\mathcal {G}}_{\textrm{ref}}\) and \({\mathcal {G}}_{\textrm{thk}}\) exhibit similar behavior, which is expected since both configurations share identical LV dimensions. The RV cardiac function is, however, different for both cases, which is a result of the thickened RV wall of \({\mathcal {G}}_{\textrm{thk}}\). The thickened wall results in a less compliant (or stiffer) ventricle, which prevents the right cavity to obtain an end-diastolic volume similar to \({\mathcal {G}}_{\textrm{ref}}\). It is also observed that the elongated case, \({\mathcal {G}}_{\textrm{long}}\), shows an improved cardiac function in terms of ejection fraction (EF) and total LV work, which increased by 4.5% (see Table 5). This observation is remarkable since the elongated case shares a similar wall volume as the reference case, \({\mathcal {G}}_{\textrm{ref}}\). This could, however, be attributed to a more favorable geometrical shape for the considered fiber distribution in the elongated case. Nonetheless, we consider the further interpretation of the observed physiological differences beyond the scope of this manuscript, restricting our presentation to illustrating how the proposed IGA simulation workflow enables the efficient study of anatomical variations.

Table 5 Overview of several cardiac function indicators for the different anatomical variations \({\mathcal {G}}\) The total work W, the ejection fraction EF, and the stroke volume \(V_{\textrm{stroke}}\)

The mechanical fiber stress and sarcomere length results are monitored in time at 3 mid-wall positions: the RV wall A, the septum B, and the LV free-wall C, indicated in Fig. 20. The fiber Cauchy stress is visualized in Fig. 23, in which near identical results are observed between the different cases in the LV free-wall (C) and septum (B). However, a distinct difference is seen in the right ventricle mid-wall (A), Fig. 23a, as the thickened RV wall experiences lower fiber stresses when compared to the other cases. This decrease may be affected by the Frank-Starling effect, which is an intrinsic dependence of myocyte stress development on the sarcomere length, which is incorporated into our model. To illustrate this effect, the sarcomere length is provided in Fig. 24, which clearly shows the reduction in sarcomere (fiber) elongation in the RV wall for the \({\mathcal {G}}_{\textrm{thk}}\) case. As a result, the produced active stress is lower in comparison to the other cases. Nonetheless, the resulting peak cavity pressure remains similar to the other cases due to the thicker wall, Fig. 22.

Fig. 23
figure 23

The Cauchy fiber stress results of the anatomical variations \({\mathcal {G}}\) at three spatial mid-wall locations: a the right ventricle (point A in Fig. 20), b the septum (point B in Fig. 20), c the left ventricle free-wall (point C in Fig. 20)

Fig. 24
figure 24

The sarcomere length results of the anatomical variations \({\mathcal {G}}\) at three spatial mid-wall locations: a the right ventricle (point A in Fig. 20), b the septum (point B in Fig. 20), c the left ventricle free-wall (point C in Fig. 20)

Fig. 25
figure 25

The Green–Lagrange shear strain results of the anatomical variations \({\mathcal {G}}\) at three spatial mid-wall locations: a the right ventricle (point A in Fig. 20), b the septum (point B in Fig. 20), c the left ventricle free-wall (point C in Fig. 20)

Although the fiber stress and sarcomere length exhibit a similar pattern in the three considered locations, albeit, with different magnitudes, a noticeable difference is observed for the shear behavior. More specifically, the circumferential-radial Green–Lagrange strain component, \(E_{\textrm{cr}}\), visualized in Fig. 25, shows a different behavior when comparing the septum and the LV free-wall, Fig. 25b, c, respectively. Such a difference between the septum and the LV free-wall would not be observed for any mechanical quantity if the single idealized LV was analyzed due to the axisymmetric nature of the single LV geometry. This difference clearly indicates the effect of the RV on the LV wall shear. However, whether the addition of the RV is of added value is dependent on the research question the model should answer.

6 Conclusions

We have proposed a simulation workflow based on the isogeometric analysis paradigm, suitable for the cardiac analysis of single- and bi-ventricle heart models under the consideration of sparse anatomical data. In the isogeometric approach, the mathematical-physical model—in this case the cardiac model—is discretized directly using the spline-based parametrization of the geometry. This avoids the introduction of a large number of elements to capture the geometry, as can be the case in traditional finite element analyses. This efficient capturing of the geometry makes the approach very suitable for studying anatomical variations, thereby working toward a patient-specific simulation workflow. In the successful application of the isogeometric approach, it is essential to attain a robust analysis-suitable parametrization of the geometry, making the proposed geometry-construction procedure a key contribution.

To ensure the suitability of the spline geometry for isogeometric analysis it is important to limit the distortion of the spline patches. For the considered anatomies, especially the bi-ventricle model, it is a necessity to consider a multi-patch spline parametrization. To construct the geometry model using a limited number of anatomical parameters, a construction procedure is developed that systematically traverses through the dimensions of the problem (i.e., first patch vertices are defined, then patch curves, then patch surfaces, and finally patch volumes). In this procedure, use is made of a combination of standard CAD construction techniques, in particular surface lofting, and tailored geometry construction algorithms. The key contribution of this work in relation to the geometry construction is the usage of constrained optimization problems to define patch edges. This geometry construction component is essential in ensuring well-defined connectivity between the patches, which is in particular far from trivial in the bi-ventricle scenario.

We have implemented a state-of-the-art biomechanical cardiac model, encompassing a rule-based fiber orientation model, an anisotropic hyperelastic material model, a model taking into account the active stress contributions, and a 0-dimensional Windkessel model for the circulatory system. The Galerkin framework on which isogeometric analysis is built allows for a direct translation of the finite element discretization of the cardiac model to the proposed isogeometric framework. It is noted that the considered model lacks a detailed description of cardiac electrophysiology but assumes simultaneous mechanical activation of the myocytes. The suitability of isogeometric analysis for incorporating more detailed electrophysiology models has recently been demonstrated [32,33,34]. Our results also suggest that other model enhancements can be beneficial for the stability of the simulations. Most notably this pertains to the diode model used for the valves, where additional (temporal) smoothness is expected to improve robustness. These model improvements are of a generic nature, and not specific to the employed isogeometric approach.

The presented simulation results convey that the isogeometric framework reproduces the finite element benchmark with a high degree of accuracy at a significantly reduced number of degrees of freedom. When considering the hemodynamics, very coarse isogeometric discretizations provide solutions that are virtually indistinguishable from the benchmark. An observation that is particularly noteworthy in this regard, is that the preservation of the geometry parametrization under mesh refinement in the case of isogeometric analysis removes the geometry-related inaccuracies in the hemodynamical response observed using standard finite element meshes. When considering mechanical quantities of interest, in particular stresses and strains, it is observed that the isogeometric discretizations overall match well with the benchmark. For the shear stresses, a substantial mismatch between the isogeometric model and the finite element benchmark is observed, which is attributed to the significant variation of these stresses through the thickness of the wall. Although the quantification of this particular inaccuracy remains inconclusive, it conveys that coarse isogeometric discretization of relatively low degrees (quadratic or cubic) inherently lack the resolution to represent high-frequency solution variations. Adaptive (local) mesh refinement strategies developed for IGA (e.g., [71]) may have the potential to enhance the proposed modeling framework with capabilities of representing such variations, without dramatically increasing the computation time (as would be the case when considering uniform mesh refinements).

The presented anatomy-variation study serves the purpose of demonstrating the robustness of the developed isogeometric framework concerning geometry changes. The 15 anatomical parameters underlying the spline parametrization of the bi-ventricle geometry already enable the tailoring of the model to patient-specific data to a large extent. This parametrization of the anatomy can be extended, for example by taking into account the radius of curvature and thickness of the septum. In future work, we aim at studying the capabilities of the model with respect to patient-specific data, where we will focus particularly on the data-scan scenario in which the spline template interpolates the anatomy in regions where data is absent.