Refinement Algorithms for Adaptive Isogeometric Methods with Hierarchical Splines

The construction of suitable mesh configurations for spline models that provide local refinement capabilities is one of the fundamental components for the analysis and development of adaptive isogeometric methods. We investigate the design and implementation of refinement algorithms for hierarchical B-spline spaces that enable the construction of locally graded meshes. The refinement rules properly control the interaction of basis functions at different refinement levels. This guarantees a bounded number of nonvanishing (truncated) hierarchical B-splines on any mesh element. The performances of the algorithms are validated with standard benchmark problems.


Introduction
The design of isogeometric methods for the numerical solution of partial differential equations extends classical finite element techniques by taking into account computer aided design (CAD) methods and standards [1,2].For this reason, the isogeometric approach naturally encourages a tighter connection between computer aided engineering and design software libraries.While the potential of exploiting a common representation model, as well as the enhanced smoothness of higher order spline schemes, opened the possibility of developing highly accurate methods, the backward CAD compatibility also poses some limits and challenges.One of the most important restrictions is the tensor-product structure of standard multivariate B-spline models, which necessarily prevents the possibility of local mesh refinement.This motivates several authors to advance the study of adaptive spline constructions.
Hierarchical B-splines constitute one of the most promising solutions to easily define adaptive spline basis which preserve the nonnegativity of standard B-splines and facilitate the design of fully automatic schemes [3][4][5][6][7].When the truncated basis of hierarchical B-spline spaces is considered the overlap of truncated basis functions at different hierarchical levels is reduced and the partition of unity property recovered [8].Regarding the implementation of hierarchical B-splines, different data structures and algorithms have been already proposed in the literature (see e.g., [9][10][11] and [12,13]).Particular attention was also devoted to the efficient Bernstein-Bézier evaluation in the hierarchical setting [14,15].In this work, we employ the structures introduced in [11], which have an implementation in GeoPDEs [16].
A key ingredient for the analysis of adaptive isogeometric methods is the possibility to consider certain class of admissible meshes which automatically guarantee a bounded number of non-zero basis functions on each mesh element.In the hierarchical spline setting, admissible meshes also guarantee that the level of the mesh element and the level of any basis function that does not vanish on the element differ at most a fixed value.This kind of restricted hierarchies naturally reduces the overlapping of basis functions introduced at different levels and influences the sparsity patterns of the discretization matrices.Being connected to the number of elements influenced by the support of a function in the hierarchical basis, the development of a refine module for the adaptive isogeometric method based on these observations can properly profit of (truncated) basis functions with reduced support.This paper is devoted to the study of design and implementation aspects for the development of hierarchical refinement strategies that guarantee the control of different classes of admissibility.Our analysis allows the definition and construction of suitable admissible meshes for standard and truncated hierarchical B-splines by considering a unified framework.The theoretical properties of the refinement algorithms and the resulting meshes are thoroughly analyzed and presented together with extensive numerical testing.
The structure of the paper is as follows.Section 2 introduces the hierarchical B-spline model by focusing on the basis construction and the main data structures needed for the implementation.Section 3 presents the algorithms for the construction and refinement of admissible hierarchical meshes.In Section 4, we briefly recall the adaptive isogeometric setting, while Section 5 shows the results obtained by integrating the refinement procedures in an adaptive isogeometric scheme.Finally, Section 6 concludes the paper.

The Hierarchical B-Spline Model
We briefly review in this section the construction of (truncated) hierarchical B-splines and introduce the data structures and basic functionalities considered for the implementation of the spline hierarchy.The key components for the design of a software architecture devoted to hierarchical spline structures rely on the storage of the hierarchical mesh as well as on the information related to the adaptive spline space.

Basis Construction
be a nested sequence of N tensor-product d-variate spline spaces defined on a closed hyper-rectangle D in R d .For each level , = 0, . . ., N − 1, we consider the tensor-product B-spline basis B of degree p = (p 1 , . . ., p d ) defined on the rectilinear grid G .B-splines have local support and satisfy the following properties: local linear independence, non-negativity, partition of unity (see, e.g., [17,18]).
We also consider a nested sequence of closed subsets of D to define the domain hierarchy: The hierarchical mesh is defined as the collection of the open active elements at different levels, namely By following [3,4], a subset of B-splines at different hierarchical levels can be properly selected to construct the hierarchical basis according to the following definition.Definition 1.The hierarchical B-spline (HB-spline) basis H with respect to the mesh Q is defined as For any level , the selection mechanism identifies the set of B-splines of this level whose support is contained in the domain Ω but not fully contained in the next domain of the hierarchy, Ω +1 .This part of the domain will be covered by selecting B-splines of levels greater than .The construction preserves the non-negativity and linear independence of one-level B-splines [3,4].Obviously, coarser B-splines will interact with elements and refined B-splines of subsequent hierarchical levels.In view of this overlap between basis functions at different levels of detail, the partition of unity property is lost in the hierarchical construction.The truncated basis for hierarchical splines [8] recovers this property by removing the contribution of finer B-splines in the hierarchical basis from coarser ones.This is possible thanks to the two-scale relation between any B-spline of level and refined B-splines of level + 1.More precisely, any s ∈ V ⊂ V +1 can be expressed as in terms of the coefficients c β +1 .The truncation of s with respect to level + 1 simply removes, in the above sum, the B-splines of level + 1 having supports fully contained in Ω +1 , and that will be included in the basis H(Q).It is then defined as follows: Definition 2. The truncated hierarchical B-spline (THB-spline) basis T with respect to the mesh Q is defined as where THB-splines are non-negative, linearly independent, form a partition of unity, and span the same space of HB-splines [8].The properties of non-negativity and partition of unity imply the convex hull property, a fundamental concept for geometric modelling applications.

Data Structures for the Implementation
The implementation of numerical methods based on hierarchical B-splines requires the definition of suitable data structures, which contain all the necessary information for the computation of the basis H(Q) (or T (Q)).In this work, we employ the data structures introduced in [11], and, for the sake of completeness, we recall their main fields and functionalities, before using them to develop the refinement algorithms.We will need four different data structures: two for tensor-product B-splines, and two for hierarchical B-splines.
The first two-structures regard the computation of tensor-product B-splines.We assume that, for each level , we have a mesh structure with all the information of the rectilinear grid G , and a space structure with all the required information to define the basis functions of the tensor-product space V .In particular, these data structures contain the following methods: • get_basis_functions: given an element Q ∈ G , compute the indices of the basis functions in B that do not vanish in Q; • get_cells: given a function β ∈ B , compute the elements Q in the support of β; • get_support_extension: for a given element Q ∈ G , compute its support extension Q, defined as This last function can be implemented as a sequential call of the previous two methods.
The next two structures contain the information about the hierarchical B-splines.The first one is the hierarchical mesh structure, denoted by MESH in the algorithms of Section 3, which contains all the information about the hierarchical mesh Q.In particular, it includes the following fields: • the number of levels, N; • for each level , a structure for the rectilinear grid G ; • for each level , the list of active elements G , denoted by E A in the algorithms of Section 3; • the kind of refinement (dyadic, triadic...) between levels.
It also contains two methods, necessary for the development of refinement.They can be briefly described as follows: • get_parent_of_cell: given a cell Q ∈ G (or a list of cells), compute the index of its parent, that is, the unique cell or a list of cells) of level , and given 0 ≤ k < , return the unique index of the ancestor of The first method was already presented in [11], while the second one is detailed in the recursive Algorithm 1.
Algorithm 1: get_ancestor_of_cell. Description: get ancestor of level k for an element Q (or a list of elements) of level > k.
The last data structure is the hierarchical space structure, which will be denoted by SPACE in the algorithms of Section 3, and which contains the necessary information regarding the basis functions H(Q), or T (Q).In particular, it contains the following fields: • the number of levels, N; • for each level , a space structure for the tensor-product space V ; • for each level , the set of active basis functions in B ∩ H(Q); • the coefficients of the two-scale relation (2) between levels and + 1.This is all the functionality required to implement the refinement algorithms of the following section.We refer the interested reader to [11] for a more detailed description of the data structures, and their use in isogeometric analysis.

Admissible Refinement Algorithms
In order to develop the theory for adaptive isogeometric methods, exploiting the reduced support of THB-splines with respect to standard HB-splines, Buffa and Giannelli introduced in [5] the concept of admissible meshes, for which the basis functions acting in one element come from a limited number of levels.The same concept was introduced for HB-splines in [7], limiting the number of levels to two.The two types of admissibility are enclosed in the following definition.
which take non-zero values over any element Q ∈ Q belong to at most m successive levels.
Let Q be an active element of level where at least one hierarchical basis function of the same level is non-zero.When an admissible mesh of class 2 is considered, the active basis functions which are non-zero on Q are only the ones of level − 1 and .They are of levels − 2, − 1, when m = 3, and in general the basis functions non-vanishing on Q ∈ G belong to levels − m + 1, − m + 2, . . ., .References [5] and [7] provide refinement algorithms that generate T -admissible and H-admissible meshes, respectively, limited to class 2 in the second case.Both algorithms follow the same idea: given a set of marked elements, coarse elements in their neighborhood are also refined to enforce the admissibility of the mesh.Before properly defining the neighborhood, we follow [5] and extend the definition of support extension of a mesh element, introduced in Equation ( 4), to the hierarchical setting.We note that the definition is independent on whether we work with HB-splines or THB-splines.
To keep the notation as simple as possible, we will also denote by S(Q, k) the region occupied by the closure of elements in S(Q, k).Algorithm 2 details the computation of the multilevel support extension using the data structures and the methods introduced in Section 2.2.We first compute, in case k < , the ancestor of level k of the given element, and then compute its corresponding support extension in the tensor-product setting.Notice that the support extension depends on the degree and the regularity of the basis functions, so the hierarchical space structure, which also includes data structures for the tensor-product spaces V , must be given as an input.
Algorithm 2: get_multilevel_support_extension.Description: Multilevel support extension of an element (or list of elements) Q of level , with respect to level k < , for a hierarchical space.
We can now rigorously define the neighborhood, which will depend on the chosen basis.The definition for the THB-splines case follows [5], while the definition for the standard hierarchical B-splines generalizes the definition in [7] to a general m.Definition 5. Given an element Q ∈ Q ∩ G , its H-neighborhood and its T -neighborhood with respect to m are respectively defined as Notice that, given the level and the admissibility class m, the elements of the neighborhood (either T -or H-) have level − m + 1.However, since the multilevel support extensions satisfy Moreover, we note that all the elements in the neighborhood are contained in Q, that is, they are all active.We take advantage of this fact in Algorithms 3 and 4, which detail the computation of the H-neighborhood and the T -neighborhood, respectively.Algorithm 3: get_H-neighborhood.Description: H-neighborhood of an element Q, of level , with respect to the admissibility class m.
To develop the algorithm for refinement with guaranteed admissible meshes, we also need to define, for = 0, . . ., N − 1, the auxiliary subdomains and it clearly holds that ω H ⊆ ω T .Then, we also need to introduce a different concept of admissibility, which is based on these auxiliary subdomains.
The definition of the auxiliary subdomains, and their role in strict admissibility, is better understood with the help of Figure 1.We represent ω 1  H and ω 1 T for different mesh configurations and degrees, and note that, in all cases ω 1 H ⊆ ω 1 T , and the difference becomes bigger with higher degree.Moreover, in the examples of the figure, the subdomains Ω 0 and Ω 1 do not change between the top and bottom row, so also the auxiliary subdomains ω 1  H and ω 1 T do not change.Finally, for the degree and the class in the caption of each subfigure, we can refine the highlighted region ω 1 H (respectively, , adding one more level and maintaining the strict H-admissibility (resp.strict T -admissibility) of the mesh.The relation between the different admissibility classes is also stated in Proposition 1.One of the results of this proposition requires the following assumption: This means that, for any mesh element Q, at least one B-spline of the same level of Q, whose support overlaps this element, is active in the hierarchical B-spline basis.The assumption may not be satisfied when refining few adjacent elements, as in the example of Figure 2 below.Proposition 1.Let Q be a hierarchical mesh.We have the following results: class m and satisfies assumption (5), then it is strictly H-admissible of the class m.
Proof.Point 1 was already proved in [5] (Prop.9).Point 3 is a trivial consequence of Definition 3 and the reduced support of THB-splines for admissible meshes, and a consequence of Definition 6 and the fact that ω H ⊆ ω T for strictly admissible meshes.It remains to prove Points 2 and 4.
Given an active element Q ∈ G , by definition of hierarchical B-splines, we know that any finer function in H(Q) ∩ B k , with k > vanishing on Q.We need to prove that the same is true for any , by definition of ω −m+1 H , all the functions of level − m that do not vanish on Q have support contained in Ω −m+1 , and are not active.Noting that Ω ⊆ Ω −j , for 0 ≤ j ≤ , we can use the same argument for coarser levels.This proves Point 2.
To prove Point 4, let the mesh element Q ∈ G for = m, m + 1, . . ., N − 1.We observe that, under assumption (5), since the mesh is H-admissible, the B-splines in H(Q) whose support overlaps Q belong to levels , − 1, . . ., − m + 1.Consequently, it does not exist an active B-spline in H(Q) of level − m whose support overlaps Q.The support extension of Q with respect to level − m is then completely contained in Ω −m+1 , and since this holds for any active element of level , we have Ω ⊆ ω −m+1 H , namely the mesh is strictly H-admissible.
Points 2 and 4 of Proposition 1 prove the equivalence of H-admissibility and strictly H-admissibility under assumption (5).In general, however, if the hierarchical mesh Q is H-admissible (T -admissible) of class m, then it is not necessarily strictly H-admissible (respectively, T -admissible).Counterexamples for both cases are shown in Figure 2, where we highlight the elements in G , and thus, in Ω , such that are not contained in ω −m+1 H . Notice that, in the H-admissible mesh, the highlighted elements are precisely those that do not satisfy (5).In the T -admissible case instead, the highlighted elements of level The last two algorithms of this section adapt to our setting the recursive refinement algorithm in [5], that, given an admissible hierarchical mesh and a set of marked elements, generates a refined T -admissible mesh.Similar to the usage of cell-arrays in Octave/Matlab, we write {marked} when referring to the marked elements of all levels, and marked when referring to a single level.
The refinement algorithm is presented in Algorithm 5. Given a set of marked (active) elements, in lines 1 to 3, we first enrich this set by a recursive algorithm, explained in detail below, where all active elements in the neighborhood of the marked ones are also marked.Then, in line 4, we refine the hierarchical mesh by refining the updated set of marked elements, and replacing them with their children.This second step can be done as in [11] (Algorithm 2), and is not limited to dyadic refinement.After refining the hierarchical mesh, it is necessary to refine the hierarchical space, that is, to update the list of active basis functions.This last step, which we omit, has been already explained in [11].Finally, Algorithm 6 is a recursive algorithm that, given a list of marked elements, adds the elements in their neighborhood (either T or H) to the list.The difference between the two kinds of admissibility only affects the algorithm in the computation of the neighborhood (see Definition 5), in lines 1 to 5. Recursivity is necessary because, to guarantee admissibility, we must also mark the elements in the neighborhood of the newly marked ones.
As we mentioned above, our algorithm is a simple adaption of the one in [5] for T -admissible meshes, while for H-admissible meshes it generalizes to arbitrary m ≥ 2 the refinement algorithm in [7] (Algorithm 3.1), which only considers the case m = 2.Note that H-admissible refinements for m ≥ 2 were also considered in [19].
Algorithm 6: mark_recursive.Description: recursive algorithm to mark the elements in the neighborhood of marked ones.

Input
The properties of these algorithms were analyzed in [5] and [7,19], for (strictly) T -and H-admissibility, respectively.We report in Lemma 1 and Proposition 2 the proofs of the key results for Algorithm 5, which include both cases in a unified setting.Lemma 1.Let Q be a strictly H-admissible (respectively, strictly T -admissible) hierarchical mesh of class m, associated with a hierarchical space V, let M ⊆ Q a set of marked active elements, and let the integer m ≥ 2. The call to Algorithm 5 in the form terminates and returns a refined mesh Q * , such that all elements in Q * were already active, or are obtained by a single refinement of an element of Q.
Proof.The algorithm terminates because the recursive algorithm ends when the neighborhood is empty, and this condition is reached in a finite number of steps (see lines 1 to 3 in Algorithms 3 and 4).The elements in the input set M are all active in Q, and the neighborhood only consists of active elements in Q, hence the output set of mark_recursive (Algorithm 6) is a list of active elements in Q.Since no further marking is performed, all elements in Q * were already active, or are obtained by a single refinement of an element in Q.
Proposition 2. Let Q, V, M and m the input arguments of Algorithm 5, as in Lemma 1, where Q is strictly H-admissible (respectively, strictly T -admissible) of class m.Then, the algorithm returns a refined hierarchical mesh Q * , which is strictly H-admissible (resp.strictly T -admissible) of class m.
Proof.The proof follows the same steps for strictly H-admissible and strictly T -admissible meshes, so we will prove both at once, introducing the notation ω ≡ ω H for strictly H-admissible meshes, ω T for strictly T -admissible meshes, and remarking any other important difference whenever needed.Let us denote by Ω * ⊇ Ω , for = 0, . . ., N, the subdomains after refinement.We use the same subindex ( * ) to identify whatever depends on the subdomains, such as the active elements at each level G * as in Equation ( 1), and the auxiliary subdomains ω * .
Let Q * ∈ G * , and we have by definition (with the notation introduced above).There exist two possibilities, depending on whether Q * was already active or not.
(both for Hand T -admissible), and we obtain the desired result.
The definition of multilevel support extension immediately gives, for any 0 ≤ j ≤ − 1, Moreover, since Q is strictly admissible we know that Q r ⊆ ω −m , which combined with the previous equation and the definition of ω −m yields According to this, let us introduce k = m for strictly H-admissible meshes, and k = m − 1 for strictly T -admissible meshes.Since Q r was a marked element (either Q r ∈ M, or it was marked during the recursive marking), it has been used as an input for mark_recursive (Algorithm 6), and as a consequence all the active elements in , and by definition of ω −m+1 * the result is proved.
Proposition 2 guarantees that the strictly admissible nature of the meshes is preserved by Algorithm 5 during the iterative marking and refinement processes of the adaptive loop.Several examples of strictly Hand T -admissible meshes obtained with this algorithm will be shown in Section 5.

Remark 1.
It is important to note that, since the two bases span the same hierarchical space, one could apply the strictly T -admissible refinement with the standard HB-splines (or the strictly H-admissible refinement with THB-splines).In general, the admissibility property is not valid for HB-splines on T -admissible meshes, while it is always valid for THB-splines on H-admissible meshes, as already stated in Proposition 1.The lack of the admissibility property has a negative impact on the sparsity of the matrix, as we will see in the numerical tests of the following section.
Remark 2. The linear complexity of Algorithm 6 was proved in [20] for strictly T -admissible meshes, and, subsequently, in [7] and [19] for strictly H-admissible meshes of class m = 2 and m ≥ 2, respectively.The complexity estimates provide an upper bound for the number of elements generated by the adaptive strategy with respect to the number of elements marked for refinement.These results are in line with the estimates obtained in the context of adaptive finite element methods [21,22].Note that the complexity analysis of the refinement algorithms is a fundamental ingredient to prove the optimality of hierarchical isogeometric methods [6,7].

Adaptive Isogeometric Methods
The hierarchical spaces are a natural choice for the definition of adaptive isogeometric methods [5][6][7], which are usually based on the adaptive loop In order to illustrate the framework of such kind of methods, let us consider the Poisson model problem with Dirichlet boundary conditions where Ω = F(Ω) is the physical domain, parametrized by the mapping F : Ω → Ω.
To solve the model problem, we consider the hierarchical spline space V := span{H(Q)} = span{T (Q)}, which gives the discretization space V := span{β • F −1 : β ∈ V}.Then, we determine the solution u h of the discretized problem (in its variational form) where u h = u 0 + u g , with u 0 ∈ V 0 and u g ∈ V a lifting of an approximation of the boundary function, such that u g | ∂ Ω ≈ g, that we obtain by an L 2 -projection (see [16]).Note that ( 7) leads to a linear system whose structure depends on the choice of H(Q) or T (Q) as basis of V.
To estimate the error, and assuming that the basis functions are at least C 1 continuous, we employ the following element-based residual error estimator [5].For any Q ∈ G, the estimator is defined as where h Q := diam F(Q) .We note that other estimators, such as the function based residual estimator in [23], or recovery-based error estimators [24,25] could also be used.At each iteration of the adaptive loop, we compute the initial set of marked elements by applying Dörfler's marking strategy [26] with the indicator (8).Finally, in order to get admissible meshes, we refine applying the Algorithms of Section 3. Note that this framework can be easily extended to multipatch configurations with C 0 continuity.Let us assume that the physical domain is composed of several patches Ω = ∪ i Ω i , each with its own parametrization F i : Ω → Ω i , which overall give a C 0 parametrization.Defining a tensor-product space on each patch with the restrictions of having coinciding knot vectors and control points at the interfaces is enough to get a C 0 spline space [1].
Then, multipatch C 0 hierarchical spline spaces are obtained with the same construction presented in Section 2.1, simply by considering multipatch C 0 spline spaces as elements of the sequence that is, we have a C 0 multipatch space for each level.The refinement algorithms described in Section 3 do not need any significant modification: only the support extensions, which determine the neighborhoods of the cells, are modified according to the different supports of the multipatch C 0 basis functions (see [11] (Section 3.4) and [27] for more details).
Since the basis functions are only C 0 across the interfaces, the element-based estimator must take into account the jump of the normal derivative, that is, for any Q ∈ G, the estimator is where Γ ij := ∂ Ω i ∩ ∂ Ω j denotes the interface between two patches, and n is the unit normal vector to Γ ij .
Remark 3. The admissible refinement algorithm can be easily extended to a posteriori estimators based on functions.In this case, one would first mark the elements in the support of the marked functions (see Algorithms 1 and 10 in [11]), and then apply the recursive marking of Algorithm 5 before refining the mesh.

Numerical Results
In this section, we present some numerical examples to show the effectivity of the proposed algorithms, and to compare the different admissibility classes presented in the previous sections.The first numerical test consists of an ad hoc refinement of the unit square, while, in the second numerical test, we perform automatic adaptivity for a Poisson problem with singular solution.

Diagonal Refinement of the Unit Square
In the first numerical test, we study how the choice of the basis and the admissibility class may affect the matrix of the linear system arising in the isogeometric method.In particular, we are interested in the sparsity pattern and the condition numbers of the matrices.
For our numerical tests, we have chosen a diagonal refinement of the unit square, similar to the one used in [13], as it gives a good compromise between locality of the refinement and an increasing number of basis functions at each step.More precisely, we start from a 4 × 4 mesh, and at each step refine a strip of 2 p+1 2 − 1 cells centered at the diagonal (compared to 2p + 1 cells in [13]), which ensures that at each step we add functions of the finest level.The meshes obtained after six levels of refinement are shown in Figures 3-5 for degrees two, three and four, respectively.The degrees of freedom (DOFs) associated to the different meshes are also indicated.
In Tables 1-3, we show the number of nonzeros of the stiffness matrix, and its percentage with respect to the global size of the matrix, after ten refinement steps, for HB-splines and THB-splines considering degrees p ≡ (p, p) = (2, 2), (3,3), (4,4), and for strictly H-admissible and strictly T -admissible hierarchical meshes of classes m = 2, 3, 4, ∞, where m = ∞ corresponds to refining only the marked elements of the finest level.The reduced support of THB-splines always reduces the number of nonzero entries compared to HB-splines, and this reduction is more evident for T -admissible meshes and for high values of m.For H-admissible meshes, instead, the reduction is not so significant, as the number of functions acting on one element is bounded for HB-splines.We also point out that higher values of m increase the number of nonzero entries with respect to the global size of the matrix, especially for high degree.In Figures 6 and 7, we show the computations of the condition number for the mass and the stiffness matrix, respectively, the latter computed after applying Dirichlet homogeneous boundary conditions.The results in Figure 6 show that, for the mass matrix, THB-splines get a lower condition number than HB-splines.Moreover, H-admissible meshes give lower condition numbers than the corresponding T -admissible ones, and lower values of m also produce lower condition numbers, which suggests that limiting the interaction between levels reduces the condition number of the mass matrix.These conclusions cannot be applied to the stiffness matrix.Indeed, the results of Figure 7 do not show any clear advantage of any option, neither for the chosen basis, nor for the admissibility class.We remark that for this particular refinement HB-splines in non-admissible meshes surprisingly provide the lowest condition numbers, which is completely opposite to the behavior for the mass matrix.It should be mentioned that a similar study for THB-splines defined on general (non admissible) hierarchical meshes and strictly admissible meshes of class 2 was already presented in [28].In that case, there were some advantages on admissible meshes also for the condition number of the stiffness matrix.A better understanding of the problem would require a deeper investigation, which is behind the scope of the present paper.

Adaptive Method
For our second numerical test, we present the results obtained by applying the adaptive isogeometric methods described in Section 4 to the model problem (6) where f = 0 and g is the restriction to ∂ Ω of the exact solution u(ρ, φ) = ρ 2/3 sin(2φ/3), defined in polar coordinates on the curved L-shaped domain shown in Figure 8, which is formed by three patches.We apply the method with degrees p ≡ (p, p) = (2, 2), (3, 3), (4, 4) and continuity C p−1 inside each patch, and C 0 continuity across the interfaces, using classes of H-admissibility and T -admissibility m = 2, 3, 4, ∞, where m = ∞ corresponds to pure Dörfler's marking, without later applying the recursive marking of Section 3. In all of the cases, the inital mesh is a 3-patch mesh with a 2 × 2 mesh on each patch, and we set a limit of maximum n = 8 hierarchical levels.For the Dörfler's marking strategy, we set the value of the parameter θ = 0.90.The importance of the admissibility class is more evident in Figure 12, where we show the convergence of the error in H 1 -norm with respect to the number of degrees of freedom.While both H-admissible and T -admissible meshes provide optimal convergence rates, the T -admissible ones require a lower number of degrees of freedom to obtain the same error.This difference between the two classes is particularly evident for higher degree of the basis functions.Obviously, when no additional refinement is considered (m = ∞) the refinement is even more localized, but the assumptions of the current theory of adaptive isogeometric methods with hierarchical splines (see [5][6][7]) are not satisfied.

Conclusions
We presented a general framework for the design and implementation of refinement algorithms with (truncated) hierarchical B-splines.The properties of the admissible mesh configurations obtained with the iterative application of these algorithms were thoroughly analyzed.Note that the structure of hierarchical meshes with a certain class of admissibility can be naturally connected with a corresponding mesh grading, as confirmed by the numerical examples.The truncation mechanism behind the construction of THB-splines influences the strictly T -admissible property leading to more localized refinement possibilities (and in turn to a reduced number of degrees of freedom) than the H-admissible counterpart, that is, for the same admissibility class m.On the other hand, H-admissible meshes guarantee a bounded number of hierarchical B-splines without the need of considering the truncated basis.The numerical examples also confirm the advantages of THB-splines with respect to the sparsity of the discretizations matrices and the condition number of the mass matrix.Concerning the condition number of the stiffness matrix, the situation is more unclear and a deeper study would be required.The comparison between Hand T -admissible refinements was never presented before and opens the path to additional studies on the optimal configuration for the development of hierarchical isogeometric methods.
The refinement algorithms here presented can be properly combined with coarsening algorithms that preserve the admissible nature of the mesh.This is an important aspect for controlling the effect of successive refinement and coarsening of hierarchical meshes in adaptive isogeometric methods (see e.g., [29,30]) and will be the subject matter of a future study.

k 7 :
end if Output: neighborhood Algorithm 4: get_T-neighborhood.Description: T -neighborhood of an element Q, of level , with respect to the admissibility class m.

Figure 1 .
Figure 1.The domains ω 1H and ω 1 T are highlighted in dark gray and light gray, respectively, for different mesh configurations.

Figure 6 .Figure 7 .
Figure 6.Condition numbers of the mass matrix for HB-splines and THB-splines, for different admissibility classes and different values of the degree.

Figure 8 .
Figure 8. Curved L-shaped domain with the initial mesh mapped on it.