1 Introduction

The isogeometric analysis (IGA), with the superior accuracy it offers, brought fluid and solid mechanics computations to a new level [1,2,3,4]. Being able to use the IGA basis functions also in time in the context of space–time (ST) computational analysis expended the scope of the IGA and led to the introduction of the ST-IGA [5,6,7]. The terminology “ST-IGA” implies, depending on the context, discretization with IGA basis functions in space or time or both. In the 2D test cases reported in [5], the computation of flow past an airfoil was with IGA basis functions in space, and the advection computations with IGA basis functions in both space and time. The advection computations, accompanied by a stability and accuracy analysis for the pure equation, showed the advantages of using higher-order basis functions, not only in space, but also in time. Related to that, keeping in mind that the increased accuracy the ST-IGA with IGA basis functions in space brings is attained with fewer control points, the effective element sizes will be larger. With that, larger time steps can be taken while still keeping the Courant number at or below the levels we target for good accuracy.

Using IGA basis functions in time is uniquely offered by the ST framework, and partly because of that the effort was focused on that track in the early years of the ST-IGA computations [5, 6, 8]. Taking advantage of that opportunity brings higher accuracy in representing the motion of a solid surface, a mesh motion consistent with that surface motion, and better efficiency in representing the mesh motion and in remeshing. The ST/NURBS Mesh Update Method (STNMUM) [6, 9] was built around these positive attributes of the ST-IGA. Using IGA basis functions in time with \(C^2\) continuity was instrumental in obtaining good-quality solutions in flapping-wing aerodynamics computations [6, 10,11,12,13,14,15]. The method “ST-C” another example of the good continuity property of the ST-IGA with IGA basis functions in time. The letter “C” in “ST-C” means “continuous.” This is a method for extracting time-continuous data from the computed data, and it can work as a data compression method in dealing with large data volumes [16,17,18,19,20,21,22,23,24,25,26,27,28,29]. The classes of problems computed by using the ST-IGA with IGA basis functions in time include wind turbines [9, 24, 25, 30,31,32,33], turbomachinery [7, 20, 21, 24, 25, 34, 35], flapping-wing aerodynamics [6, 10,11,12,13,14,15], spacecraft cover separation aerodynamics [36], and higher-order temporal IGA discretization [37].

The classes of problems computed by using the ST-IGA with IGA basis functions in space include wind turbines [24,25,26,27,28, 32, 33], turbomachinery [7, 20, 21, 24, 25, 34, 35], ground vehicles and tires [29, 33, 38,39,40,41,42,43], fluid films [40, 43, 44], parachutes [22, 23, 45, 46], cardiovascular medicine [47,48,49,50,51,52,53,54,55,56,57], Taylor–Couette flow [58], U-ducts [58], higher-order temporal IGA discretization [37], boundary-layer mesh resolution studies [59], and long-wake flows [60].

Moving to solid and structural mechanics computations with IGA basis functions in space, it was pointed out as early as in 2007 (see [61]) that the image-based geometries used in patient-specific arterial FSI computations are not for the zero-stress state (ZSS) of the artery and that a ZSS estimation method is needed. The ZSS estimation methods introduced in and after 2016 [51, 62,63,64,65] stand on the IGA basis functions in space, and so does the related hyperelastic shell analysis [66, 67]. The IGA basis functions in space have been a part of quite a few advanced computational methods targeting design and structural analysis, those reported in [68,69,70,71,72,73,74,75,76,77] are examples of that, and turbine blades and heart valves are among the examples.

In IGA discretization, specifying Dirichlet boundary conditions could be challenging. That is because the basis functions are generally not interpolatory. In the case of differential equations allowing Dirichlet conditions also on the derivatives, specifying conditions on the derivatives could be easier in IGA discretization than it is in finite element discretization. For example, specifying the slope can be accomplished by constraining the motion of the nearest interior point to the horizontal line passing through the boundary point.

Our objective in the work presented here is to address a related challenge. That is, computational structural analysis where structures with different parametric dimensions are connected with continuity and smoothness. In structural analysis of a membrane and cable, for example, connecting the two with \(C^0\) or \(C^1\) continuity involves challenges similar to those associated with specifying Dirichlet boundary conditions in IGA discretization. Even if the two structures have the same parametric dimensions, connecting them with \(C^1\) continuity could still be challenging.

There has been some earlier related work. They include the bending-strip method for shell–shell [78] and shell–beam [79] structures, where the beam is actually a bending-stabilized cable, penalty formulation [80], and techniques based on Nitsche’s method [81]. They also include using extra mesh refinement along the membrane edge [45] to attain \(C^0\) continuity in both the edge direction and the other direction. Using T-splines [82] to attain \(C^1\) continuity when the two structures have the same parametric dimensions is also among the earlier related work.

In our work here, we derive the basis functions that give us the desired smoothness between structures with 2D and 1D parametric dimensions. The derivation involves proper selection of a scale factor for the knot vector of the 1D structure and results in new control-point locations. While our method description will focus on \(C^0\) and \(C^1\) continuity, paths to higher-order continuity will be marked where needed. In presenting the method and its implementation, we will refer to the 2D structure as “membrane” and the 1D structure as “cable.” The method and its implementation will, of course, be applicable also to other 2D–1D cases, such as shell–cable and shell–beam structures. When the membrane and cable are connected with smoothness, the strain and rotational freedoms are transferred between the two structures. For easy and efficient implementation of the method, we introduce the Bézier extraction row operators to be used in obtaining the basis functions.

As the limitations of the method we will be presenting, we can mention two points. The smoothness can only be achieved along the cable and its parametric-line continuation in the membrane. The starting membrane and cable meshes need to meet some additional requirements if they are to be connected with a continuity higher than \(C^1\).

We present test computations not only for membrane–cable structures but also for shell–cable structures. We use four structure models: membrane–cable, membrane–bending-stabilized-cable, shell–cable, and shell–bending-stabilized-cable. We use meshes with \(C^0\) continuity and \(C^2\) continuity. In total, we compute eight test cases.

In Sect. 2, we introduce the method for connecting a membrane and cable by T-splines. The test computations are presented in Sect. 3, and the concluding remarks are given in Sect. 4. In Appendix A, we provide the details on the mesh examples, and in Appendix B, we give the derivation of the smoothness constraints used in the method.

2 Connecting a membrane and cable by T-splines

In IGA, connecting a 1D structure, such as a cable, to a 2D structure, such as a membrane, is not that straightforward. For example, in [45], in connecting the cables to the ram-air parachute, extra mesh refinement was used along the membrane edge to attain \(C^0\) continuity in both the edge direction and the other direction. The extra refinement, because of the knot insertion, reduces not only the computational efficiency but also the continuity. Especially with isogeometric shells and bending-stabilized cables [79], the continuity is essential. Here we describe methods to connect a cable to a membrane at any location along its edge, and we also describe methods to attain smoothness along the cable and its parametric-line continuation in the membrane.

2.1 Connecting the cable to the membrane

We assume that the membrane is of rectangular shape. For illustration purposes, it is made of \({2 \times 3}\) quadratic B-spline elements, and the cable consists of one quadratic B-spline element. Figure 1 shows the membrane and cable (for more details on the mesh, see Appendix A.1), and Fig. 2 shows the mesh after connecting them (for more details on the mesh, see Appendix A.2). We will explain how we obtain this mesh.

Fig. 1
figure 1

The membrane and cable elements before connecting them. The red circles represent the control points. Each area enclosed by green lines represents an element, and it is labeled with a green number. The brown line represents a cable element, and it is labeled with a brown number. In all elements, the local parametric coordinates are defined from left to right in the first direction and from bottom to top (for membrane only) in the second direction. (Color figure online)

Fig. 2
figure 2

The membrane and cable elements after connecting them

We represent the local basis functions in the parametric space \(-1 \le \xi ^{\alpha } \le 1\), where \(\alpha = 1, \ldots , {n_{\textrm{pd}}}\), and \({n_{\textrm{pd}}}\) is the number of parametric dimensions. For a global basis function index a or b in element e, we denote the local basis functions as \(M_a^e (\xi ^1, \xi ^2)\) for the membrane elements and as \(L_b^e (\xi ^1)\) for the cable elements. They are expressed as

$$\begin{aligned} M_a^e (\xi ^1, \xi ^2)&= N^{e,1}_{a^1} (\xi ^1) N^{e,2}_{a^2} (\xi ^2) \end{aligned}$$
(1)

and

$$\begin{aligned} L^{e}_b (\xi ^1)&= N^{e,1}_{b^1} (\xi ^1) , \end{aligned}$$
(2)

with the index mapping \(e, a \rightarrow (a^1(e, a),\, a^2(e, a))\) and \(e, b \rightarrow b^1(e, b)\), and we are dropping “(ea)” and “(eb)” not to crowd the notation. Here, \(N^{e,\alpha }_k\) represent 1D functions identified by element number e, direction \(\alpha \), and local index k. Although it is not included, the polynomial order is assumed to be \(p = p^{e,\alpha }\), and we may omit the superscripts for notational convenience. The index \(a^\alpha \) denotes the local index in \(\alpha \) direction, and there is no unique mapping from \(a^\alpha \) to a. In fact, quite often, \(a^\alpha \) corresponds to multiple a. The symbols \(\mathcal {M}^e\) and \(\mathcal {L}^e\) represent, for the membrane and cable, the sets of functions with nonzero value in element e.

Remark 1

All the T-splines used in this article can be expressed in this product form. Therefore, Eq. (1) is applicable even after connecting the cable to the membrane. Some of the notation may not be general enough as in NURBS, but they should be straightforward. We are giving up some generality so that we do not further complicate the notation.

Referring to Fig. 1, we are connecting the cable end point with \(\xi ^1 = \xi ^{B,1}_\textrm{c} = -1\) in element \(B = 6\) to the membrane edge point with \(\xi ^1 = \xi ^{A,1}_\textrm{c} = 1\) and \(\xi ^2=\xi ^{A,2}_\textrm{c}\) in element \(A = 3\). In those membrane and cable elements, the connection point \(\textbf{x}_\textrm{c}\) can be represented as

$$\begin{aligned} \left( \textbf{x}_\textrm{c}^h\right) _{M}&= \sum _{a \in \mathcal {M}^A} \textbf{x}_a M_a^{A} (\xi ^{A,1}_\textrm{c}, \xi ^{A,2}_\textrm{c}) \end{aligned}$$
(3)

and

$$\begin{aligned} \left( \textbf{x}_\textrm{c}^h\right) _{L}&= \sum _{b \in \mathcal {L}^B} \textbf{x}_b L_{b}^{B} (\xi _\textrm{c}^{B,1}). \end{aligned}$$
(4)

Remark 2

Depending on the parametrization, i) one of \(\xi ^{A,\alpha }_\textrm{c}\) is either \(-1\) or 1, and ii) \(\xi ^{B,1}\) is either \(-1\) or 1.

We note that \(N^{A,1}_{a^1} (\xi ^{A,1}_\textrm{c})\) is either 1 or 0 at the membrane edge. We define the set of functions with value 1 at the membrane edge as \(\mathcal {M}_\textrm{c}^A = \left\{ a \in \mathcal {M}^A \bigg | N^{A,1}_{a^1} (\xi ^{A,1}_\textrm{c}) = 1\right\} \). With that, the connection point as represented by the membrane becomes

$$\begin{aligned} \left( \textbf{x}_\textrm{c}^h\right) _{M}&= \sum _{a \in \mathcal {M}_\textrm{c}^A} \textbf{x}_a N_{a^2}^{A,2} (\xi _\textrm{c}^{A,2}). \end{aligned}$$
(5)

Similarly, at the cable end, \(N^{B,1}_{b^1} (\xi _\textrm{c}^{B,1})\) is either 1 or 0, and, in fact, there is only one function that has value 1, and that is \(b^1 = c\). With that, the connection point as represented by the cable becomes

$$\begin{aligned} \left( \textbf{x}_\textrm{c}^h\right) _{L}&= \textbf{x}_c. \end{aligned}$$
(6)

To connect the membrane and cable, we need \(\left( \textbf{x}^h_\textrm{c}\right) _{M} = \left( \textbf{x}^h_\textrm{c}\right) _{L}\), and this can be enforced at the basis-function level. For that, we first exclude the basis function and control point associated with c from the cable element (and actually from the mesh). Then, we add control points \(\textbf{x}_{\overline{a}}\), where \(\overline{a} \in \mathcal {M}_\textrm{c}^A\), to the cable element. The corresponding basis functions, indexed by \(\overline{b} = \overline{a}\), are

$$\begin{aligned} \overline{L}_{\overline{b}}^B (\xi ^1)&= N^{A,2}_{a^2} (\xi _\textrm{c}^{A,2}) N^{B,1}_{c} (\xi ^1) , \end{aligned}$$
(7)

and the overbar is for distinguishing between the basis functions before and after connecting the cable to the membrane. With that, the cable end is always on the membrane edge. The number of functions in the cable element becomes \(\left| \mathcal {L}^B\right| -1 + \left| \mathcal {M}^A_\textrm{c}\right| \), where \(|\mathcal {X}|\) represents the cardinality of a set \(\mathcal {X}\).

Figures 3, 4 and 5 illustrate how the basis functions corresponding to the three control points on the membrane edge contribute to the membrane and cable elements. The figures are for 7, 11, and 15, the three control points in \(\mathcal {M}^A_c\). The basis function 22 is removed from the cable and represented by 7, 11,and 15. With that, the modified cable element consists of functions 7, 11, 15, 20, and 21.

Fig. 3
figure 3

The elements that the global basis function 7 is contributing to. The blue shading and blue highlight indicate those elements. (Color figure online)

Fig. 4
figure 4

The elements that the global basis function 11 is contributing to. The blue shading and blue highlight indicate those elements . (Color figure online)

Fig. 5
figure 5

The elements that the global basis function 15 is contributing to. The blue shading and blue highlight indicate those elements. (Color figure online)

Remark 3

The control points 7, 11, and 15 are distinct because of the membrane.

Remark 4

If the membrane and cable had rotational freedoms, they would not be transferred between the two.

Remark 5

By generalizing Eq. (5), the method discussed so far can be extended to cases where the connection point is not on the membrane edge but anywhere in the interior.

2.2 Representation of the connected cable with Bézier extraction operators

We now describe how connecting the cable is implemented by using Bézier extraction operators (see the notation in [83, 84]). A basis function of order p can be represented with Bernstein polynomials \(B_b^p\), which are expressed as

$$\begin{aligned} B_k^p(\xi )&= \begin{pmatrix} p \\ k \\ \end{pmatrix} 2^{-p} \left( 1+\xi \right) ^k \left( 1 - \xi \right) ^{p-k}, \end{aligned}$$
(8)

where \(k = 0, \ldots , p\), and \( \begin{pmatrix} p \\ k \\ \end{pmatrix} = \frac{k!}{k!\left( p-k\right) !}\) are the binomial coefficients. The representation of the 1D basis functions we have in Eqs. (1) and (2) will then be in the form

$$\begin{aligned} N^{A,\alpha }_l (\xi )&= \sum _{k=0}^{p^{A, \alpha }} C_{l k}^{A,\alpha } B_k^{p^{A,\alpha }} (\xi ) \end{aligned}$$
(9)

for \(l=0,\ldots ,p\). The set of coefficient matrices \(\pmb {\textsf{C}}^{A,\alpha } = \left[ C_{l k}^{A,\alpha } \right] \in \mathbb {R}^{(p^{A,\alpha }+1){\times }{(p^{A,\alpha }+1)}}\) are the Bézier extraction operators. However, in a T-spline element, the number of unique \(N^{A,\alpha }\) functions may not be equal to \(p^{A,\alpha }+1\), and the order of the rows has no significance. Therefore, we represent the Bézier extraction operator as a set of row operators, denoted by \(\pmb {\textsf{C}}_l^{A,\alpha } \in \mathbb {R}^{1{\times }(p^{A,\alpha }+1)}\), with l being the index that identifies the unique function number in an element A, in direction \(\alpha \).

With that, the membrane local basis functions can now be expressed as

$$\begin{aligned} M_a^A(\xi ^1, \xi ^2)&= \left( \sum _{k=0}^{p^{A,1}} C_{a^1 k}^{A,1} B_k^{p^{A,1}}(\xi ^1) \right) \left( \sum _{k=0}^{p^{A,2}} C_{a^2 k}^{A,2} B_k^{p^{A,2}}(\xi ^2) \right) , \end{aligned}$$
(10)

and the cable local basis functions can be expressed as

$$\begin{aligned} L_b^{B}(\xi ^1)&= \sum _{k=0}^{p^{B,1}} C_{b^1 k}^{B,1} B_k^{p^{B,1}}(\xi ^1) . \end{aligned}$$
(11)

From that and Eq. (2), Eq. (7) can be written as

$$\begin{aligned} \overline{L}_{\overline{b}}^B(\xi ^1)&= \underbrace{ \left( \sum _{l=0}^{p^{A,2}} C_{a^2 l}^{A,2} B_l^{p^{A,2}}(\xi _\textrm{c}^{A,2}) \right) }_{ \text { scalar } } \left( \sum _{k=0}^{p^{B,1}} C_{c k}^{B,1} B_k^{p^{B,1}}(\xi ^1) \right) . \end{aligned}$$
(12)

The scalar term can be expressed in a matrix form. For that, we first define a column matrix with the evaluated Bézier functions as its components:

$$\begin{aligned} \pmb {\textsf{B}}^{p^{A,2}}_\textrm{c}&= \left[ B_l^{p^{A,2}}(\xi _\textrm{c}^{A,2}) \right] \in \mathbb {R}^{p^{A,2}+1}. \end{aligned}$$
(13)

Then the scalar is written as

$$\begin{aligned} \sum _{l=0}^{p^{A,2}} C_{a^2 l}^{A,2} B_l^{p^{A,2}}(\xi _\textrm{c}^{A,2})&= \pmb {\textsf{C}}^{A,2}_{a^2} \pmb {\textsf{B}}^{p^{A,2}}_\textrm{c} . \end{aligned}$$
(14)

We note that this scalar depends on \(a^2\). With that, the Bézier extraction operator \(\overline{\pmb {\textsf{C}}}_{\overline{b}}^{B,1}\) associated with Eq. (12) becomes

$$\begin{aligned} \overline{\pmb {\textsf{C}}}_{\overline{b}^1}^{B,1}&= \pmb {\textsf{C}}^{A,2}_{a^2} \pmb {\textsf{B}}^{p^{A,2}}_\textrm{c} ~ \pmb {\textsf{C}}_{c}^{B,1} . \end{aligned}$$
(15)

Now, for the examples in Figs. 1 and 2, we express the Bézier extraction row operators for the cable element. The original cable element has

$$\begin{aligned} \pmb {C}_{22^1}^{6,1}&= \begin{bmatrix}1&\quad 0&\quad 0 \end{bmatrix}, \end{aligned}$$
(16)
$$\begin{aligned} \pmb {C}_{21^1}^{6,1}&= \begin{bmatrix}0&\quad 1&\quad 0 \end{bmatrix}, \end{aligned}$$
(17)
$$\begin{aligned} \pmb {C}_{20^1}^{6,1}&= \begin{bmatrix}0&\quad 0&\quad 1 \end{bmatrix}. \end{aligned}$$
(18)

After the connection, we have

$$\begin{aligned} \overline{\pmb {C}}_{7^1} ^{6,1}&= 0.245 \begin{bmatrix}1&\quad 0&\quad 0 \end{bmatrix}, \end{aligned}$$
(19)
$$\begin{aligned} \overline{\pmb {C}}_{11^1} ^{6,1}&= 0.710 \begin{bmatrix}1&\quad 0&\quad 0 \end{bmatrix}, \end{aligned}$$
(20)
$$\begin{aligned} \overline{\pmb {C}}_{15^1} ^{6,1}&= 0.045 \begin{bmatrix}1&\quad 0&\quad 0 \end{bmatrix}, \end{aligned}$$
(21)
$$\begin{aligned} \overline{\pmb {C}}_{21^1}^{6,1}&= \begin{bmatrix}0&\quad 1&\quad 0 \end{bmatrix}, \end{aligned}$$
(22)
$$\begin{aligned} \overline{\pmb {C}}_{20^1}^{6,1}&= \begin{bmatrix}0&\quad 0&\quad 1 \end{bmatrix}. \end{aligned}$$
(23)

Remark 6

The scalars seen in front of the row operators in Eqs. (19)–(21) can be calculated from Eq. (14).

2.3 Connecting the membrane and cable with smoothness

The smoothness can play a role if the bending stiffness of the cable will influence the membrane structure. For that purpose, we describe the case with higher-order continuity in the cable direction at the connection point. In this method, the smoothness is along the cable and its parametric-line continuation in the membrane. Again, we use Fig. 1 as an example, and Fig. 6 shows the mesh after connecting the cable and membrane with \(C^1\) continuity along the cable line (for more details on the mesh, see Appendix A.3). The smoothness is along the cable and the parametric line \(\xi ^2 = \xi ^{A,2}_\textrm{c}\) in the membrane element. We use the knot removal technique to have the desired continuity in the function space. We will next explain the process.

Fig. 6
figure 6

The membrane and cable elements with \(C^1\) continuity along the cable line

In the B-spline mesh (Fig. 1), the basis functions \(N_{a^1}^{A,1}\) for \(a \in \mathcal {M}_\textrm{c}^{A}\) are the same. In other words, \(a = 7, 11, {\hbox {and }} 15\) are pointing to the same index \(a^1\). Moreover, \(a= {6, 10,\,{\hbox {and}}\, 14}\) are pointing to a common index \(a^1\), and \(a= {5, 9, \,{\hbox {and}}\, 13}\) are pointing to a common index \(a^1\). We group them as \(\mathcal {M}_\textrm{c1}^{A}\) and \(\mathcal {M}_\textrm{c0}^{A}\). The position along the parametric line is expressed as

$$\begin{aligned} \textbf{x}(\xi ^1, \xi ^{A,2})&= \sum _{a \in \mathcal {M}_\textrm{c0}^{A}} \textbf{x}_a M^{A}_{a} (\xi ^1, \xi ^{A,2}_\textrm{c}) \nonumber \\ {}&\quad + \sum _{a \in \mathcal {M}_\textrm{c1}^{A}} \textbf{x}_a M^{A}_{a} (\xi ^1, \xi ^{A,2}_\textrm{c}) \nonumber \\ {}&\quad + \sum _{a \in \mathcal {M}_\textrm{c}^{A} } \textbf{x}_a M^{A}_{a} (\xi ^1, \xi ^{A,2}_\textrm{c}) . \end{aligned}$$
(24)

We know that

$$\begin{aligned} \sum _{a \in \mathcal {M}_\textrm{c0}^{A}} N^{A,2}_{a^2} (\xi ^{A,2}_\textrm{c})&= 1, \end{aligned}$$
(25)
$$\begin{aligned} \sum _{a \in \mathcal {M}_\textrm{c1}^{A}} N^{A,2}_{a^2} (\xi ^{A,2}_\textrm{c})&= 1, \end{aligned}$$
(26)
$$\begin{aligned} \sum _{a \in \mathcal {M}_\textrm{c}^{A}} N^{A,2}_{a^2} (\xi ^{A,2}_\textrm{c})&= 1. \end{aligned}$$
(27)

From Eqs. (24)–(27), we observe the apparent directional basis functions and control points along the parametric line to be

$$\begin{aligned} \tilde{M}_{0}^A (\xi ^1)&= \sum _{a \in \mathcal {M}_\textrm{c0}^{A}}M^{A}_{a} (\xi ^1, \xi ^{A,2}_\textrm{c}) \end{aligned}$$
(28)
$$\begin{aligned}&= N^{A,1}_{a^1}(\xi ^1), \end{aligned}$$
(29)
$$\begin{aligned} \tilde{M}_{1}^A (\xi ^1)&= \sum _{a \in \mathcal {M}_\textrm{c1}^{A}} M^{A}_{a} (\xi ^1, \xi ^{A,2}_\textrm{c}) \end{aligned}$$
(30)
$$\begin{aligned}&= N^{A,1}_{a^1}(\xi ^1), \end{aligned}$$
(31)
$$\begin{aligned} \tilde{M}_{2}^A (\xi ^1)&= \sum _{a \in \mathcal {M}_\textrm{c}^{A} } M^{A}_{a} (\xi ^1, \xi ^{A,2}_\textrm{c}) \end{aligned}$$
(32)
$$\begin{aligned}&= N^{A,1}_{a^1}(\xi ^1) \end{aligned}$$
(33)

and

$$\begin{aligned} \tilde{\textbf{x}}^A_0&= \sum _{a \in \mathcal {M}_\textrm{c0}^{A}} \textbf{x}_a N^{A,2}_{a^2}(\xi ^2_\textrm{c}), \end{aligned}$$
(34)
$$\begin{aligned} \tilde{\textbf{x}}^A_1&= \sum _{a \in \mathcal {M}_\textrm{c1}^{A}} \textbf{x}_a N^{A,2}_{a^2}(\xi ^2_\textrm{c}), \end{aligned}$$
(35)
$$\begin{aligned} \tilde{\textbf{x}}^A_2&= \sum _{a \in \mathcal {M}_\textrm{c }^{A}} \textbf{x}_a N^{A,2}_{a^2}(\xi ^2_\textrm{c}). \end{aligned}$$
(36)

Similar observations can be made for the adjacent element 2. For notational convenience, we map the control points of the cable as

$$\begin{aligned} \textbf{x}^B_0&= \textbf{x}_{22}, \end{aligned}$$
(37)
$$\begin{aligned} \textbf{x}^B_1&= \textbf{x}_{21}, \end{aligned}$$
(38)
$$\begin{aligned} \textbf{x}^B_2&= \textbf{x}_{20}. \end{aligned}$$
(39)

Figure 7 shows the apparent basis functions. These basis functions can be identified by the knot vector \(\pmb {\varXi } = \{0,\,0,\,0,\,1,\,2,\,2,\,2,\,3,\,3,\,3\}\), with \(0 \le \varXi \le 2\) for the membrane and \(2 \le \varXi \le 3\) for the cable.

Fig. 7
figure 7

Apparent basis functions in the 1D representation along the cable line. The green ones are for the membrane, and the brown ones are for the cable. \(\varDelta \varXi _M\) and \(\varDelta \varXi _L\) mark the neighboring nonzero knot spans of the membrane and cable. (Color figure online)

Remark 7

The linear transformation of the knot vector values does not change the basis functions. When we connect two patches, a linear transformation can be applied in each patch. For example, if we scale the knots for the cable by a factor 0.5, we get \(\pmb {\varXi } = \{0,\,0,\,0,\,1,\,2,\,2,\,2,\,2.5,\,2.5,\,2.5\}\). Although the parametric space would be different, this would not change the element-wise functions and would not influence the discretization. However, the choice of the scale factor influences how the cable and membrane are connected. In fact, the desired smoothness can only be achieved with the correct scale factor. We will explain this more in Remark 8, after explaining the procedure for connecting the cable and membrane.

Figure 8 shows the functions after the first and second knot removals at \(\varXi =2\). At each knot removal, one basis function vanishes, which means that the corresponding control point is removed. It is assumed that the geometry will not change after the knot removals. Therefore, the following relationship holds in each element:

$$\begin{aligned} \sum _{k=0}^{p} N_k \textbf{x}_k&= \sum _{k=0}^{p} \overline{N}_k \overline{\textbf{x}}_k, \end{aligned}$$
(40)

where k is the element-wise index, and \(N_k\) and \(\overline{N}_k\) are the directional basis functions before and after the knot removals. Using the Bézier extraction operators, we can rewrite Eq. (40) as

$$\begin{aligned} \sum _{k=0}^{p} \sum _{l=0}^{p} \textbf{x}_k C_{k l} B_l&= \sum _{k=0}^{p} \sum _{l=0}^{p} \overline{\textbf{x}}_k \overline{C}_{k l} B_l . \end{aligned}$$
(41)

Because \(B_l\) are linearly independent, we obtain the following relationship for \(l=0,\ldots ,p\):

$$\begin{aligned} \overline{\textbf{x}}_k&= \sum _{l=0}^{p} \textbf{x}_l \left[ \pmb {\textsf{C}} \, \left( \overline{\pmb {\textsf{C}}}\right) ^{-1} \right] _{lk} . \end{aligned}$$
(42)

For notational convenience, we rearrange this as

(43)

Figure 9 shows an example of the context for Eq. (43) in control-point conversions for an element. The example is based on

$$\begin{aligned} \pmb {\textsf{C}}&= \begin{bmatrix} \frac{1}{2} &{} \quad 0 &{} \quad 0 \\ \frac{1}{2} &{} \quad 1 &{} \quad 0 \\ 0 &{} \quad 0 &{} \quad 1 \\ \end{bmatrix} \end{aligned}$$
(44)

and

$$\begin{aligned} \overline{\pmb {\textsf{C}}}&= \begin{bmatrix} \frac{1}{2} &{} \quad 0 &{} \quad 0 \\ \frac{1}{2} &{} 1 \quad &{} \quad \frac{1}{2} \\ 0 &{} \quad 0 &{} \quad \frac{1}{2} \\ \end{bmatrix}. \end{aligned}$$
(45)

The continuity desired after the second knot removal can be expressed by the equations

$$\begin{aligned} \overline{\tilde{\textbf{x}}}^A_1&= \overline{\textbf{x}}^B_0, \end{aligned}$$
(46)
$$\begin{aligned} \overline{\tilde{\textbf{x}}}^A_2&= \overline{\textbf{x}}^B_1. \end{aligned}$$
(47)

We note that A and B are the elements in the membrane and the cable, and those positions are calculated from Eq. (43) for the membrane and cable elements. Figure 10 shows an example of the conversions for both the membrane and cable elements.

Fig. 8
figure 8

Apparent basis functions in the 1D representation along the cable line. After the first (top) and second (bottom) knot removals

Fig. 9
figure 9

An example of the context for Eq. (43) in control-point conversions for an element. The curve (thick green line) and control points (dark green circles), and the control points obtained with Eq. (43) (light green circles). (Color figure online)

Fig. 10
figure 10

An example of the context for Eq. (43) in control-point conversions for both the membrane and cable elements. The membrane (thick green curve) and the apparent control points (dark green circles). The cable (thick brown curve) and the control points (dark brown circles). The control points after the conversions are light green circles (membrane) and light brown circles (cable). If Eqs. (46) and (47) are satisfied after the conversions, the curve will have the desired continuity and the two knots can be removed without changing the geometry

Remark 8

As explained in Remark 7, the scale factor for the cable knot vector influences how the cable and membrane are connected, and the desired smoothness can only be achieved with the correct factor. Different scale factors give different \(\overline{\tilde{\textbf{x}}}^A_2\). For \(p=2\), Eqs. (46) and (47) translate to

$$\begin{aligned} \tilde{\textbf{x}}^A_2&= {\textbf{x}}^B_0, \end{aligned}$$
(48)
$$\begin{aligned} \tilde{\textbf{x}}^A_2&= \frac{ s \tilde{\textbf{x}}^A_1 + \textbf{x}^B_1 }{s+1}, \end{aligned}$$
(49)

where s is the ratio of the neighboring nonzero knot spans of the cable (\(\varDelta \varXi _L\)) and membrane (\(\varDelta \varXi _M\)):

$$\begin{aligned} s = \frac{\varDelta \varXi _L}{\varDelta \varXi _M}. \end{aligned}$$
(50)

The derivation can be found in Appendix B. With Eq. (49), we select s. In the example of Fig. 1, that gives us \(s=1\).

Remark 9

To have the highest continuity in using B-splines with polynomial order p, we need to satisfy p conditions that are generalization of those in Eqs. (46) and (47). The conditions are

$$\begin{aligned} \overline{\tilde{\textbf{x}}}_{k}^A = \overline{\textbf{x}}^B_{k-1}, \end{aligned}$$
(51)

for \(k=1, \ldots , p\).

Then, we remove the control points 22 and 21. The new positions of the control points 7, 11, 15, 6, 10, and 14 are obtained from Eq. (43). With the basis functions corresponding to those, we can form the basis functions in the cable element. This can be done in the same way we did in connecting the cable and membrane with \(C^0\) continuity. The corresponding basis functions, indexed by \(\overline{b} = \overline{a} \in \mathcal {M}^A_\textrm{c1} \cup \mathcal {M}^A_\textrm{c}\), are

$$\begin{aligned} \overline{L}_{\overline{b}}^B (\xi ^1)&= \overline{N}^{A,2}_{a^2} (\xi _\textrm{c}) \overline{N}^{B,1}_{\overline{b}^1} (\xi ^1) . \end{aligned}$$
(52)

The control points and Bézier extraction operators for the membrane elements also change. We provide the Bézier extraction operators in Appendix A.3, and Eq. (43) can be used for obtaining \(\overline{\textbf{x}}_{\overline{a}}^A\), where \(\overline{a} \in \mathcal {M}^A_\textrm{c1} \cup \mathcal {M}^A_\textrm{c}\).

Figures 11, 12, 13, 14, 15 and 16 illustrate how the basis functions in \(\mathcal {M}^A_\textrm{c1}\) and \(\mathcal {M}^A_\textrm{c}\) contribute to the membrane and cable elements. The figures are for 7, 11, and 15, the three control points in \(\mathcal {M}^A_{c}\), and 6, 10, and 14, the three control points in \(\mathcal {M}^A_{c1}\). As mentioned earlier, the basis functions 22 and 21 are removed from the cable. The new cable element consists of the basis functions 6, 10, 14, 7, 11, 15, and 20, and we can see the first three as replacements for 22, and the second three as replacements for 21.

Fig. 11
figure 11

The elements that the global basis function 7 is contributing to. The blue shading and blue highlight indicate those elements. (Color figure online)

Fig. 12
figure 12

The elements that the global basis function 11 is contributing to. The blue shading and blue highlight indicate those elements. (Color figure online)

Fig. 13
figure 13

The elements that the global basis function 15 is contributing to. The blue shading and blue highlight indicate those elements. (Color figure online)

Fig. 14
figure 14

The elements that the global basis function 6 is contributing to. The blue shading and blue highlight indicate those elements. (Color figure online)

Fig. 15
figure 15

The elements that the global basis function 10 is contributing to. The blue shading and blue highlight indicate those elements. (Color figure online)

Fig. 16
figure 16

The elements that the global basis function 14 is contributing to. The blue shading and blue highlight indicate those elements. (Color figure online)

Fig. 17
figure 17

The membrane and cable meshes before connecting them. The checkerboard pattern and alternating colors are for differentiating between the elements, and circles represent the control points

Remark 10

In the membrane, up to \((2p+1){\times }(p-1)\) elements need to be modified, \((2p+1)\) in the edge direction, and \((p-1)\) in the other direction. In the cable, up to p elements neighboring the membrane need to be modified.

Remark 11

The control points 7, 11, and 15 are distinct because of the membrane.

Remark 12

The strain and rotational freedoms are transferred between the two structures. Even if they are not based on a shell model or bending-stabilized cable, this smoothness requirement would add some kind of bending effect to the solution, which will be smaller and smaller with mesh refinement.

3 Test computations

We use four structure models: membrane–cable, membrane–bending-stabilized-cable, shell–cable, and shell–bending-stabilized-cable. We use meshes with \(C^0\) and \(C^2\) continuity between the membrane and cable. In total, we compute eight test cases. The membrane does not have bending stiffness; the shell does. The membrane includes a wrinkling model [85]. The shell model is from [66]. The cable includes a slacking model, which precludes compression. The bending-stabilized cable is based on the model in [79], where the bending stress is represented by the second area moment and the curvature.

Fig. 18
figure 18

\(C^0\) Mesh. The checkerboard pattern and alternating colors are for differentiating between the elements, and circles represent the control points. The red control points are those with specified position in the computation

Fig. 19
figure 19

\(C^2\) Mesh. The checkerboard pattern and alternating colors are for differentiating between the elements, and circles represent the control points. The red control points are those with specified position in the computation

3.1 Problem setup

Table 1 Material properties for the membrane and shell. Young’s modulus E, thickness \(h_\textrm{th}\), density \(\rho \), and Poisson’s ratio \(\nu \)
Table 2 Material properties for the cable and bending-stabilized cable. Young’s modulus E, area A, density \(\rho \), and second area moment \(I_0\)

Figure 17 shows the mesh before connecting the membrane and cable. The material properties for the membrane, shell, cable, and bending-stabilized cable are shown in Tables 1 and 2. The meshes with \(C^0\) and \(C^2\) continuity between the membrane and cable will be called “\(C^0\) Mesh” and “\(C^2\) Mesh.” Both are based on cubic B-splines. Figures 18 and 19 show the meshes. We hook the membrane and cables at the two corners and two ends shown in those figures, all at the same elevation. The gravity is 9.81\(~{{\hbox {m}}/{\hbox {s}}^2}\). We gradually shorten the distance between the hooked membrane edge and cable ends from 171 to 85.5 mm by moving the cable ends.

Remark 13

To obtain the settled solution in each test case computed, depending on the test case, we either use the steady-state formulation or the unsteady formulation with a relatively large time-step size. The unsteady formulation is used to avoid the matrix singularities associated with slacking.

Fig. 20
figure 20

Settled solution for all eight cases computed

3.2 Results

Figure 20 shows the settled solution for all eight cases. Looking at the cases with \(C^0\) Mesh, we can clearly see that the rotational freedom is not transferred between the membrane and cables. In the cases with \(C^2\) Mesh, we see smoothness along the 1D structure and its parametric-line continuation in the 2D structure, as expected, even if the 2D structure is membrane or the 1D structure is cable. Naturally, how local the smoothness is in computations with the \(C^2\) Mesh, i.e., how small the radius of curvature is, depends on the element sizes near where the 2D and 1D structures are connected. Therefore, the decision to seek smoothness or just continuity would depend on those element sizes.

4 Concluding remarks

We have presented a T-splines computational method and its implementation for structural analysis where structures with different parametric dimensions are connected with continuity and smoothness. We derived basis functions that give us the desired smoothness between structures with 2D and 1D parametric dimensions. The derivation involves proper selection of a scale factor for the knot vector of the 1D structure and results in new control-point locations. While the method description focused on \(C^0\) and \(C^1\) continuity, paths to higher-order continuity were marked where needed. In presenting the method and its implementation, we referred to the 2D structure as “membrane” and the 1D structure as “cable.” The method and its implementation are of course applicable also to other 2D–1D cases, such as shell–cable and shell–beam structures. When the membrane and cable are connected with smoothness, the strain and rotational freedoms are transferred between the two structures. For easy and efficient implementation of the method, we introduced the Bézier extraction row operators used in obtaining the basis functions. We presented test computations for combinations for four structural models and two meshes. The structural models were membrane–cable, membrane–bending-stabilized-cable, shell–cable, and shell–bending-stabilized-cable. The meshes were with \(C^0\) continuity and \(C^2\) continuity. The computations clearly demonstrate how the method performs in the classes of structural mechanics problems targeted.