1 Introduction

In fictitious domain or immersed boundary methods, such as the finite cell method (FCM) [13, 32], CutFEM [6,7,8], or CutIGA [15], the cells/elements generally do not conform to the boundary of the geometry of interest. As a result, the geometry can be easily discretized using, for instance, Cartesian grids. Nevertheless, this simplification in the mesh generation leads to broken cells/elements that are cut by the boundary of the domain. This can result in an ill-conditioned global system matrix, especially if badly broken cells/elements are filled only with a small fraction of material. In the extended finite element method (XFEM), conditioning problems can also arise. An overview of different approaches to overcome the conditioning problem is given in [29]. In nonlinear finite strain analysis, badly broken cells/elements tend to deform significantly compared to non-broken cells which leads to convergence problems during the iterative/incremental procedure.

To this end, different stabilization techniques have been developed for fictitious domain methods to overcome the problem of ill-conditioning. In the context of the CutFEM, Burman et al. [6,7,8] proposed a stabilization approach called the ghost penalty method, to obtain a better condition number for elements that are cut by the boundary. To this end, an extra term is added to the weak form so as to penalize jumps of the normal derivatives of the shape functions of the neighboring cut and non-cut elements. Consequently, the cut elements are supported by the interior non-cut elements. Here, the penalty term is referred to as ghost since it is related to the fictitious domain.

In the context of the FCM, the fictitious material or \(\alpha \)-method is suggested in [13, 32], where a very soft material is introduced in the fictitious domain of every broken cell. This is done by scaling the material parameters with the indicator function \(\alpha \), which has a value of one for points inside the physical domain and a value of \(\alpha = 10^{-q}\) for points outside the physical domain. For practical problems, we set \(q = 5,\ldots ,9\) to achieve reasonable results. To improve the condition number without changing the problem under consideration substantially, it is important not to add too much stiffness in the fictitious domain [10]. This approach also helps to control the solution within the fictitious domain while at the same time improving the condition number. This is especially necessary when simulating nonlinear finite strain problems to prevent convergence issues. Generally, the approach based on the fictitious material works well for linear and nonlinear problems under small strains [10, 13, 22, 40]. One drawback of this approach is that the same artificial stiffness is added to all points in the fictitious domain, which can result in a significant modification of the solution.

Additionally, for the analysis using high-order shape functions, degrees of freedom that have a small support in the physical domain tend to increase the condition number and decrease the robustness of the FCM. To this end, [15, 17, 42] proposed a basis function removal (BFR) strategy to improve the condition number by removing shape functions that do not contribute much to the global stiffness matrix. Thereby, a global criterion was developed based on the energy contribution of each degree of freedom – allowing to determine which shape function needs to be removed. In doing so, the high-order modes of the broken cells that cause the problems are removed and consequently the condition number is improved significantly.

Moreover, the severe distortion of the mesh in nonlinear finite strain problems can cause the analysis to terminate before reaching the desired deformation state. To this end, a remeshing strategy proposed in [17, 18] can improve the robustness of the FCM by creating a new mesh whenever the old mesh cannot take any more deformations. Starting with an initial mesh, the structure is deformed until the remeshing criteria indicate that a remeshing step is required because the mesh is strongly distorted. Then, a new mesh is created that covers the deformed geometry. Thanks to the fictitious domain approach, creating the mesh is straightforward. Subsequently, important quantities between the old and new mesh are interpolated. Finally, the analysis is continued until the desired load step is reached. It was shown in [17] that a combination of the remeshing strategy, the basis function removal, and the \(\alpha \)-method can improve the robustness even for very large deformations.

In [34], a preconditioning technique was developed to prevent poor conditioning of the FCM caused by broken cells. This approach is referred to as the Symmetric Incomplete Permuted Inverse Cholesky preconditioner. To this end, the preconditioning involves a diagonal scaling of the shape functions as well as an orthonormalization process utilizing the Gram–Schmidt procedure.

In this paper, we present an eigenvalue stabilization technique, based on the approach of Loehnert [29], to improve the robustness of the FCM for nonlinear problems by reducing the condition number of broken cells without affecting the solution significantly. To this end, an eigenvalue decomposition of the cell stiffness matrix is computed for every broken cell. Afterwards, the modes that have small eigenvalues or even zero eigenvalues can be grouped together. Those modes cause the FCM to be less robust in nonlinear computations. They appear especially when badly broken cells are present together with high-order shape functions. The modes with zero eigenvalues that belong to rigid body motions are not considered for stabilization—in order to avoid non-physical behavior. Finally, the bad modes are supported by adding extra stiffness to the cell stiffness matrix of the corresponding mode and to the load vector, to ensure that the solution is not modified significantly. Furthermore, we introduce a criterion that allows to adaptively add stiffness to the modes depending on their corresponding eigenvalue.

Fig. 1
figure 1

Basic concept of the FCM

This paper is organized as follows: Sect. 2 gives a brief summary of the basic formulation of the FCM. In Sect. 3, the stabilization of the FCM based on the \(\alpha \)-method is explained. In Sect. 4, an eigenvalue stabilization technique for the FCM is discussed in detail. In Sect. 5, we study the accuracy of the proposed method on a linear benchmark example and on more complex nonlinear finite strain problems. Finally, the paper is summarized in Sect. 6.

2 The finite cell method

This section offers a brief overview of the basics of the finite cell method (FCM)—for more details see [13, 14, 32, 36]. The FCM is a combination of high-order finite elements with a fictitious domain approach. To this end, hierarchic shape functions based on integrated Legendre polynomials are utilized [38, 39]. The FCM was successfully applied to a variety of problems in solid mechanics such as thermoelasticity [44], geometrical nonlinearities [18, 37], explicit and implicit elastodynamics [16, 24], biomechanics [35, 42], elastoplasticity [3, 26, 40], and microstructured materials [20, 21, 27]. Figure 1 illustrates the basic concept of the method using a two-dimensional geometry of solid mechanics. Here, the physical domain \(\Omega \) is embedded into a fictitious domain \(\Omega _e {\setminus } \Omega \) which results in an extended domain \(\Omega _e\) of a simple shape. The extended domain \(\Omega _e\) can then be easily discretized using, for example, Cartesian grids. Dirichlet boundary conditions \(\bar{\varvec{d}}\) as well as Neumann boundary conditions \(\bar{\varvec{t}}\) are applied on the boundary of the physical domain \(\Omega \). For the sake of simplicity, we neglect body forces in this context. As a result of the fictitious domain approach, the approximation of the displacements is decoupled from the approximation of the geometry—in contrast to the standard finite element method (FEM). Therefore, the term cells is used to differentiate them from the geometry conforming finite elements. Next, to account for the boundary of the geometry, the indicator function

$$\begin{aligned} \alpha ={\left\{ \begin{array}{ll} 1, &{} \text {for}\;x\;\hbox {in}\;\Omega \\ 0, &{} \text {otherwise} \end{array}\right. } \end{aligned}$$
(1)

is introduced, which has a value of one inside the physical domain and a value of zero elsewhere. The nonlinear weak form \(G_e^\alpha \) reads [43]

$$\begin{aligned} G_e^\alpha = \int \limits _{{\Omega }_e} \alpha \, \varvec{P} \cdot \mathrm {Grad}\, \varvec{\eta } \,\mathrm {d}V - \int \limits _{{\Gamma }^N_0} \bar{\varvec{t}} \cdot \varvec{\eta } \,\mathrm {d}A = 0 \end{aligned}$$
(2)

where \(\varvec{P}\) denotes the first Piola–Kirchhoff stress tensor and \(\varvec{\eta }\) corresponds to the test function. Since our focus later on will be on large deformation analysis, Eq. (2) is highly nonlinear. Therefore, we utilize the Newton-Raphson method, which is based on the linearization of the weak form. Assuming that the external loads are independent of the deformation, the directional derivative of \(G_e^\alpha \) reads

$$\begin{aligned} \mathrm {D}G_e^\alpha \cdot \Delta \varvec{d} = \int \limits _{\Omega _\mathrm{e}} \alpha \, \varvec{A} \, \mathrm {Grad} \, \Delta \varvec{d} \cdot \mathrm {Grad}\, \varvec{\eta } \, \mathrm {d}V , \end{aligned}$$
(3)

where

$$\begin{aligned} \varvec{A}= \frac{\partial \varvec{P}}{\partial \varvec{F}} \end{aligned}$$
(4)

and \(\Delta \varvec{d}\) represents the displacement increment. Accordingly, the linearized weak form results in

$$\begin{aligned} \int \limits _{\Omega _\mathrm{e}} \alpha \, \varvec{A} \, \mathrm {Grad} \, \Delta \varvec{d} \cdot \mathrm {Grad} \, \varvec{\eta } \, \mathrm {d}V&= \int \limits _{{\Gamma }^N_0} \bar{\varvec{t}} \cdot \varvec{\eta } \,\mathrm {d}A \nonumber \\&\quad - \int \limits _{\Omega _\mathrm{e}} \alpha \, \varvec{P} \cdot \mathrm {Grad} \, \varvec{\eta } \,\mathrm {d}V. \end{aligned}$$
(5)

Next, the extended domain is discretized using finite cells based on hierarchic shape functions in order to compute an approximate solution of the problem at hand, as illustrated in Fig. 1. Inserting the discretization of the displacement and the test function into the weak form results in the following linear equation system

$$\begin{aligned} \varvec{K}^{i}_T(\varvec{d}^{i}) \; \Delta \varvec{d}^{i+1} = -\varvec{G}^i(\varvec{d}^{i}) \end{aligned}$$
(6)

which needs to be solved within each Newton-Raphson iteration for the unknown displacement increment. Here, \(\varvec{K}^{i}_T(\varvec{d}^{i})\) refers to the global tangent stiffness matrix. Furthermore, \(\varvec{G}^{i}(\varvec{d}^{i})\) defines the global out of balance vector. During the assembly process of the local stiffness matrices and vectors of each finite cell, the global quantities are acquired as follows

(7)

The simplification in the mesh generation using the FCM leads to broken cells which are intersected by the boundary of the domain. This results in discontinuous integrands, see Eq. (5). Consequently, standard Gauss quadratures do not perform well for those cells. Therefore, special integration schemes need to be used—such as, for instance, the adaptive integration scheme based on spacetree decomposition [2, 13, 28, 33], the moment fitting quadrature [11, 12, 19, 25], or the approach based on equivalent polynomials [1, 41].

Fig. 2
figure 2

Condition number of the plate with a hole, discretized with four cells and using different radii r for the geometry

Furthermore, fictitious domain methods such as the FCM often suffer from ill-conditioning of the resulting system matrices caused by the broken cells. Figure 2 shows the condition number

$$\begin{aligned} \kappa =\dfrac{\lambda _{\text {max}}}{\lambda _{\text {min}}},\quad \text {with} \quad \lambda _{\text {min}}\ne 0 \end{aligned}$$
(8)

for a plate with a hole, discretized using four finite cells applying different values of the radius r for the circle. The condition number is plotted against the polynomial degree p of the hierarchic shape functions applied in the finite cells. It can be seen that the condition number increases drastically as the radius increases since the volume fraction of the cell at the bottom right decreases gradually. This causes difficulties when solving the linear system of equations.

3 Material stabilization (\(\alpha \)-method)

The commonly used method to improve the condition number of the FCM is the so-called material stabilization technique or the \(\alpha \)-method [10, 13]. The main idea is to introduce a soft material into the fictitious domain. To this end, the indicator function \(\alpha \) is set to a small positive value for integration points that are located in the fictitious domain

$$\begin{aligned} \alpha ={\left\{ \begin{array}{ll} 1, &{} \text {for}\;x\;\hbox {in}\;\Omega \\ 10^{-q}, &{} \text {otherwise} \end{array}\right. }. \end{aligned}$$
(9)

In doing so, the condition number can be improved by introducing an artificial stiffness, as will be shown in Sect. 5. By setting the indicator function \(\alpha \) to zero in the fictitious domain, the geometry is exactly preserved. To achieve reasonable results without losing too much accuracy, the q values should be chosen in a range of \(q= 5,\ldots ,9\). One advantage of this approach is the simple implementation, since a new set of Gaussian points can be introduced in the fictitious domain to reduce the ill-conditioning of the system.

Fig. 3
figure 3

The integration points used for stabilization (blue dots) and the points used for integrating the physical domain (red dots) applied on one broken cell with an ansatz order of \(p = 4\). a Moment fitting with \((2p + 1)^2\) physical points plus \((p + 1)^2\) stabilization points. b Quadtree with tree depth \(k=2\) and \((p + 1)^2\) physical points in each sub-cell plus \((p + 1)^2\) stabilization points. c Quadtree with tree depth \(k=2\) and \((p + 1)^2\) physical points in each sub-cell plus \((p - 1)^2\) stabilization points. (Color figure online)

Figure 3 shows the number of integration points needed utilizing a shape function order of \(p = 4\). Here, the red dots refer to the points required to integrate the physical domain and the blue dots represent the stabilization points. In Fig. 3a, the moment fitting scheme is applied with \((2p + 1)\) points in each direction to integrate the physical domain. Additionally, a set of \((p + 1)\) points in each direction is added to stabilize the fictitious domain, excluding the points that are located in the physical domain. This scheme will be used in Sect. 5.1 for the linear computations. In the nonlinear analysis (Sect. 5.2 and 5.3), the adaptive octree is applied to integrate the physical domain with (\(p + 1\)) points in each direction of every sub-cell, excluding the points located in the fictitious domain. Additionally, a number of (\(p + 1\)) points in each direction are applied to stabilize the fictitious domain, excluding the points located in the physical domain, as can be seen in Fig. 3b for a tree depth of \(k = 2\).

One drawback of the material stabilization approach is the loss of accuracy especially, if large \(\alpha \) values are to be used. In the nonlinear analysis, the \(\alpha \)-method will be combined with an eigenvalue stabilization technique (see Sect. 4) to increase the robustness of the FCM when undergoing large deformations. To this end, a set of (\(p - 1\)) points will be added in each direction of the fictitious domain, excluding the points located in the physical domain and setting a small value of \(\alpha = 1\)e−7 for those points, as can be seen in Fig. 3c.

4 Eigenvalue stabilization technique

In this section, following Loehnert [29], an eigenvalue stabilization technique will be applied to improve the conditioning and robustness of the FCM. This approach is based on the eigenvalues of the cell’s stiffness matrix. Usually, cells that have a small volume fraction and are intersected by the geometry will exhibit eigenvalues that are very close to zero—in addition to the zero eigenvalues that correspond to rigid body modes (RBM). This means that some of the modes will tend to have linear dependencies which result in an increasing condition number. To overcome this problem, following the ideas of Loehnert [29, 30] and Loehnert and Beese [31], we can compute the eigenvalues and eigenmodes of each broken cell by factorizing the cell stiffness matrix \(\varvec{k}^c\) using the eigenvalue decomposition

$$\begin{aligned} \varvec{k}^c = \varvec{V} \, \varvec{\Lambda } \, \varvec{V}^T \, = \begin{pmatrix} \bar{\varvec{V}}&\varvec{V}_0 \end{pmatrix} \begin{pmatrix} \bar{\varvec{\Lambda }} &{} \varvec{0}\\ \varvec{0} &{} \varvec{0} \end{pmatrix} \begin{pmatrix} \bar{\varvec{V}}^T\\ \varvec{V}^T_0 \end{pmatrix}. \end{aligned}$$
(10)

Here, \(\varvec{k}^c\) is a symmetric positive semi-definite matrix which can be factorized into the diagonal matrix \(\varvec{\Lambda }\) that contains the eigenvalues with the corresponding eigenmodes \(\varvec{V}\). The eigenvalues \(\varvec{\Lambda }\) consist of non-zero eigenvalues \(\bar{\varvec{\Lambda }}\), with the corresponding eigenvectors \(\bar{\varvec{V}}\), and of eigenvalues that are equal to zero with the related eigenvectors \(\varvec{V}_0\). Next, the eigenmodes that correspond to a zero eigenvalue or to a small eigenvalue are grouped into the eigenspace \(\tilde{\varvec{V}}\) with their corresponding eigenvalues \(\tilde{\Lambda }\). The modes that are related to rigid body translations and rotations are removed from the eigenspace \(\tilde{\varvec{V}}\). To this end, all modes remaining within the eigenspace \(\tilde{\varvec{V}}\) need to be supported. To do so, we construct the stiffness matrix

$$\begin{aligned} \varvec{k}^\epsilon = \sum \limits _{j=1}^n \epsilon _j \, \tilde{\varvec{v}}^j \otimes \tilde{\varvec{v}}^j. \end{aligned}$$
(11)

Here, \(\epsilon _j\) defines a fixed stabilization factor for all eigenvalues, set to a small positive value, while n refers to the total number of modes that need to be supported. The \(\tilde{\varvec{v}}^j\) corresponds to the jth eigenmode that belongs to \(\tilde{\varvec{V}}\). Alternatively, one can define a nonlinear stabilization factor \(\gamma _j\) that depends on \(\epsilon _j\) as well as the corresponding eigenvalue \(\tilde{\Lambda }_j\). To this end, the additional stiffness \(\gamma _j\) can be adaptively defined depending on the size of the eigenvalue, see Fig. 4. Thus, Eq. (11) becomes

$$\begin{aligned} \varvec{k}^\epsilon = \sum \limits _{j=1}^n \gamma _j \, \tilde{\varvec{v}}^j \otimes \tilde{\varvec{v}}^j, \end{aligned}$$
(12)

with

$$\begin{aligned} \gamma _j = \frac{\epsilon _j}{80 \, \tilde{\Lambda }_j^{0.2}}. \end{aligned}$$
(13)
Fig. 4
figure 4

A nonlinear stabilization factor \(\gamma \) with respect to the eigenvalues \(\Lambda \) by setting, for example, \(\epsilon = 3\)e−4

The condition of the system is improved by adding \(\varvec{k}^\epsilon \) to the cell stiffness matrix \(\varvec{k}^c\), which results in a modified stiffness matrix

$$\begin{aligned} \tilde{\varvec{k}}^c = \varvec{k}^c + \varvec{k}^\epsilon , \end{aligned}$$
(14)

as well as to the out of balance vector \(\varvec{g}^c\) (right-hand side—RHS) of the nonlinear computation—for the sake of consistency—as follows

$$\begin{aligned} \tilde{\varvec{g}}^c = \varvec{g}^c + \varvec{k}^\epsilon \,\,\varvec{d}^c. \end{aligned}$$
(15)

Finally, the Newton-Raphson method is applied to solve the modified system

$$\begin{aligned} \tilde{\varvec{K}}^{i}_T(\varvec{d}^{i}) \; \Delta \varvec{d}^{i+1} = -\tilde{\varvec{G}}^{i}(\varvec{d}^{i}) \end{aligned}$$
(16)

where \(\tilde{\varvec{K}}^{i}_T(\varvec{d}^{i})\) denotes the modified global tangent stiffness matrix and \(\tilde{\varvec{G}}^{i}\) denotes the modified global residual vector, which are the result of the assembly process (7). Having solved the linear system (16), the solution is updated:

$$\begin{aligned} \varvec{d}^{i+1} = \varvec{d}^{i} + \Delta \varvec{d}^{i+1}. \end{aligned}$$
(17)

The procedure for the eigenvalue stabilization is summarized in Algorithm 1. In Sect. 5, we will investigate the influence of the proposed method on the robustness and the accuracy of the FCM.

figure a

4.1 Detection of the rigid body modes

The eigenvectors with zero eigenvalues that are related to the rigid body modes need to be extracted from the set of modes to be stabilized \(\tilde{\varvec{V}}\). Otherwise, stabilizing those modes would lead to a non-physical behavior of the system. To this end, one way to detect the rigid body modes of a cell is to first compute the RBMs analytically. Afterwards, the RBMs can be easily identified and removed from the space \(\tilde{\varvec{V}}\) by means of a Gram–Schmidt orthogonalization procedure, as proposed by Loehnert [29]. The RBMs can be computed cheaply based on the nodal coordinates of the cells. Generally, for instance, a hexahedral element in a three-dimensional space has six RBMs: three translation modes—which can be calculated by applying a small displacement at every node in the corresponding direction of the mode—and three rotational modes that can be computed using a spherical coordinate system, as suggested by [4, 5, 23]. The high-order modes of the hierarchic basis can be ignored, since the rigid body motions are represented with the nodal modes.

5 Numerical investigations

Before applying the proposed eigenvalue stabilization technique for nonlinear applications, we first investigate it for a linear problem. Thus, in the first example (Sect. 5.1), a linear elastic isotropic material model is applied with a Young’s modulus of \(E = 50\) MPa and a Poisson’s ratio of \(\nu = 0.3\) assuming small strains. In the second and third application, (Sects. 5.2 and 5.3), a hyperelastic material model is utilized in a finite strain analysis. The strain energy density function [9] is defined as follows

$$\begin{aligned} W = \frac{\mu }{2} \, \left( \mathrm {tr}\left( \varvec{C}\right) -3 \right) + \frac{\lambda }{4} \, \left( J^2 -1 \right) - \left( \frac{\lambda }{2} + \mu \right) \ln \left( J \right) , \end{aligned}$$
(18)

where \(\varvec{C} = \varvec{F}^\mathrm {T}\,\varvec{F}\) refers to the right Cauchy–Green tensor and \(J = \mathrm {det}\left( \varvec{F}\right) \). The material parameters read

$$\begin{aligned} \lambda&= \dfrac{E\nu }{(1+\nu )(1-2\nu )} = 28.846\;\text {MPa},\end{aligned}$$
(19)
$$\begin{aligned} \text {and}\quad \mu&= \dfrac{E}{2(1+\nu )} = 19.231\;\text {MPa}, \end{aligned}$$
(20)

where \(\lambda \) and \(\mu \) denote the Lamé first parameter and the shear modulus, respectively. The first Piola–Kirchhoff stress tensor is computed as

$$\begin{aligned} \varvec{P} = 2\,\varvec{F} \, \frac{\partial W}{\partial \varvec{C}} = \frac{\lambda }{2} \, \left( J^2 -1 \right) \varvec{F}^{-T} + \mu \, \left( \varvec{F} - \varvec{F}^{-T}\right) \end{aligned}$$
(21)

and the elasticity tensor reads

$$\begin{aligned} \varvec{A}&= \frac{\partial \varvec{P}}{\partial \varvec{F}} = \mu \, \left( \varvec{I} - \varvec{M}\right) \nonumber \\&\quad + \frac{\lambda }{2} \, \left( \left( J^2-1\right) \, \varvec{M} + 2 \, J^2 \left( \varvec{F}^{-T} \otimes \varvec{F}^{-T}\right) \right) , \end{aligned}$$
(22)

where \(\varvec{I}\) refers to the fourth order identity tensor (\(I_{ijkl} = \delta _{ik} \, \delta _{jl}\)), and \(\varvec{M}\) is computed in index notation as \(M_{ijkl} = - F_{jk} \, F_{li}\). For all numerical examples, Eq. (12) is used to compute the additional stiffness matrix of the eigenvalue stabilization.

5.1 Plate with a cylindrical hole

In the first example, we consider a plate with a cylindrical hole. The goal is to compare the performance of the eigenvalue stabilization technique with the \(\alpha \)-method in terms of accuracy and improvement of the condition number. The results will be compared to a reference solution generated from the standard p-FEM. The geometry of the plate has a side length of \(a = 100\) mm and a radius of \(r = 60\) mm. Symmetry boundary conditions are applied together with a prescribed pressure on the top surface of \(\bar{t}_y = 0.1\) MPa, as can be seen in Fig. 5. The reference solution is obtained with 3200 curved p-version hexahedral elements utilizing a polynomial degree of \(p = 5\). The FCM computations are performed using 192 hexahedral cells with a subdivision of \((16\times 16\times 1)\) and by increasing the polynomial degree of the hierarchic shape functions, \(p = 1, 2, 3,\ldots ,\) see Fig. 6. The moment fitting quadrature is used to integrate the broken cells of the FCM with \((2p + 1)^3\) integration points and an octree depth of \(k = 8\) is applied to compute the moments. In order to stabilize the cells (partially) located in fictitious domain using the \(\alpha \)-method, the standard Gauss-quadrature is utilized with \((p + 1)^3\) integration points, and the points located in the physical domain are removed, as illustrated in Fig. 3a. Applying the eigenvalue stabilization, no points are added in the fictitious domain.

Fig. 5
figure 5

Plate with a cylindrical hole: geometry and boundary conditions

Fig. 6
figure 6

Plate with a cylindrical hole. (Top) FCM mesh. (Bottom) FEM mesh

5.1.1 Eigenvalue stabilization without correcting the RHS

First, we investigate the eigenvalue stabilization technique without modifying the load vector as is the case in Eq. (15). This is because, in a linear analysis, it is not possible to compute the correction term (\(\varvec{k}^\epsilon \,\,\varvec{d}^c\)) directly without knowing the solution vector \(\varvec{d}^c\). We study the condition number of the global stiffness matrix, plotted against the number of degrees of freedom, see Fig. 7. Here, different factors are used for \(\epsilon \) (top of Fig. 7) and for \(\alpha \) (bottom of Fig. 7). It can be seen that both methods yield a drastic improvement of the condition number as the stabilization factors increase. Here, we tried to choose the \(\epsilon \) and \(\alpha \) values such that a comparable improvement in the condition number from both methods is obtained.

Fig. 7
figure 7

Condition number. (top) The eigenvalue stabilization. (bottom) The \(\alpha \)-method

Furthermore, we examine the accuracy of the von Mises stress \(\sigma _{vM}\) at point A (\(x = 34.0\) mm, \(y = 4.0\) mm, \(z = 1.0\) mm). In Fig. 8, the relative error of the von Mises stress is plotted versus the number of degrees of freedom for an increase of the polynomial degree of the shape functions. The results for the eigenvalue stabilization are depicted at the top, the results for the \(\alpha \)-method at the bottom. Using the \(\alpha \)-method, we do not observe any change in the accuracy for \(\alpha = 0\) to \(\alpha = 1\)e−7. However, by increasing the values from \(\alpha = 1\)e−5 to \(\alpha = 1\)e−3, we start to loose accuracy quite significantly as compared to the results of the eigenvalue stabilization. There, we still have a good accuracy until \(\epsilon = 1\)e−2 before we start losing accuracy using \(\epsilon = 9\)e−2.

Fig. 8
figure 8

Relative error in von Mises stress at point A. (top) The eigenvalue stabilization. (bottom) The \(\alpha \)-method

For better visualization, in Fig. 9, the relative error of the von Mises stress is plotted versus the condition number for an increase of the polynomial degree of the shape functions. It can be seen that the condition number is reduced significantly when using the eigenvalue stabilization (top), without affecting the solution to a great extent as compared to the \(\alpha \)-method (bottom). This is because, in the eigenvalue stabilization, only modes that have a small support (small eigenvalue) are stabilized—whereas a larger loss of accuracy is observed for the \(\alpha \)-method, where all points in the fictitious domain are stabilized with the same amount.

Fig. 9
figure 9

Relative error in von Mises stress at point A versus the condition number. (top) The eigenvalue stabilization. (bottom) The \(\alpha \)-method

Furthermore, we also investigate the accuracy of the strain energy. In Fig. 10, the relative error in energy norm is plotted versus the number of degrees of freedom for an increase of the polynomial degree of the shape functions. To this end, using the \(\alpha \)-method (bottom of Fig. 10), we do not see any change in the accuracy for \(\alpha = 0\) to \(\alpha = 1\)e−7. However, increasing the values from \(\alpha = 1\)e−5 to \(\alpha = 1\)e−3, we start to loose accuracy quite significantly as compared to the results of the eigenvalue stabilization at the top of Fig. 10.

Fig. 10
figure 10

Relative error in energy norm. (top) The eigenvalue stabilization. (bottom) The \(\alpha \)-method

For a better visualization, in Fig. 11, the relative error in energy norm is plotted versus the condition number. It can be seen that the condition number is reduced significantly when using the eigenvalue stabilization (top), without affecting the solution too much as compared to the \(\alpha \)-method (bottom).

Fig. 11
figure 11

Relative error in energy norm versus condition number. (top) The eigenvalue stabilization. (bottom) The \(\alpha \)-method

5.1.2 Eigenvalue stabilization with correcting the RHS

In this section, we apply the eigenvalue stabilization by also modifying the load vector on the RHS. This is done in two steps. First, we compute the solution \(\varvec{d}_1\) by modifying only the stiffness matrix

$$\begin{aligned} \tilde{\varvec{K}} = \varvec{K} + \varvec{K}^\epsilon \end{aligned}$$
(23)

and solving the system

$$\begin{aligned} \tilde{\varvec{K}} \; \varvec{d}_1 = \varvec{F}_{\mathrm {ext}}, \end{aligned}$$
(24)

where \(\varvec{F}_{\mathrm {ext}}\) defines the global external load vector. In the next step, we solve the system again by correcting the load vector iteratively as follows

$$\begin{aligned} \tilde{\varvec{K}} \; \varvec{d}_{i+1} = \varvec{F}_{\mathrm {ext}} + \varvec{K}^\epsilon \; \varvec{d}_i. \end{aligned}$$
(25)

In the first iteration (\(i=1\)), we apply the solution \(\varvec{d}_{1}\), which is obtained from Eq. (24). Please note that an exact correction of the RHS would call for a repeated solution of the linear system (25) until the displacement does not change anymore. However, we found that three correction steps are already able to provide a good accuracy. By using direct solvers, it is furthermore possible to store the factorization of the global stiffness matrix \(\tilde{\varvec{K}}\) and re-use it to solve the system for multiple RHSs. In Fig. 12, the relative error of the von Mises stress (top) as well as the relative error in energy norm (bottom) are plotted against the condition number, applying three correction steps. It can be seen that the condition number is improved significantly without affecting the solution at all, provided that the load vector is corrected accordingly. In the nonlinear computations (Sects. 5.2 and 5.3), we correct the RHS during the iterative/incremental procedure using the last computed solution, as illustrated in Algorithm 1.

5.1.3 Cost of the stabilization

In this section, we investigate the cost of the stabilization utilizing the \(\alpha \)-method as well as the eigenvalue approach. We define the cost of the stabilization by measuring the difference between the computation time of the whole simulation with stabilization (\(T_s\)) and without stabilization (T) as follows

$$\begin{aligned} x = \dfrac{T_s - T}{T} \times 100. \end{aligned}$$
(26)

The same problem setup as described in (Sect. 5.1) is used here with \(\alpha = 1\)e−5 and \(\epsilon = 9\)e−4. Here, a computer with 2 CPUs each of with 10 cores (40 threads) and 2.4 GHz is used for the simulations. In Fig. 13, the stabilization cost is plotted versus the number of degrees of freedom. It can be seen that the cost of the eigenvalue stabilization is comparable to the \(\alpha \)-method. This shows that the cost of computing the eigenvalues of the cell stiffness matrices is negligible in comparison to the whole computation since the stabilization is applied on the cell level where every cell runs in parallel.

Fig. 12
figure 12

The eigenvalue stabilization with correction of the RHS in three steps. (top) Relative error in von Mises stress versus condition number. (bottom) Relative error in energy norm versus condition number

Fig. 13
figure 13

The computation cost of the stabilization based on the eigenvalues and the \(\alpha \)-method compared to the simulation without stabilization

5.2 Single cube connector

In the following application, we consider a single cube connector [17]. The motivation is to investigate the robustness of the eigenvalue stabilization technique for nonlinear computations undergoing large deformations—and to compare it to the \(\alpha \)-method. The geometry of the cube connector is defined using the following level set function

Fig. 14
figure 14

Single Cube Connector. Geometry, boundary conditions, and mesh

$$\begin{aligned} \phi (\mathbf{x} )&= [(x-x_c)^2 + (y-y_c)^2 - R^2]^2 \nonumber \\&\quad +[(y-y_c)^2 + (z-z_c)^2 - R^2]^2 + [(z-z_c)^2 - r^2]^2 \nonumber \\&\quad + [(x-x_c)^2 + (z-z_c)^2 - R^2]^2 \nonumber \\&\quad +[(x-x_c)^2 - r^2]^2 + [(y-y_c)^2 - r^2]^2 - d^4 \ge 0, \end{aligned}$$
(27)

with an inner radius of \(r = 11.25\) mm, an outer radius of \(R = 15\) mm, and a design parameter \(d = 4.6 \times 10^4 \; \text {mm}^4\). The coordinates of the center are set to \(x_c = y_c = z_c = 0.0\) mm. The indicator function \(\alpha \) can now be defined based on \(\phi (\mathbf{x} )\) as

$$\begin{aligned} \alpha ={\left\{ \begin{array}{ll} 1, &{} \text {if} \; \phi (\mathbf{x} )\ge 0\\ 10^{-q}, &{} \text {otherwise} \end{array}\right. }. \end{aligned}$$
(28)

Here, every point \(\mathbf{x} \) within the reference domain (\(\mathbf{x} \in \Omega \)) corresponds to a value of the level set function that is greater or equal to zero (\(\phi (\mathbf{x} ) \ge 0\)). The strain energy function of the hyperelastic material model is given in Eq. (18) and the corresponding material parameters are presented in Eqs. (19) and (20). Symmetry boundary conditions are applied together with a prescribed displacement at the top surface (compression). The geometry is discretized with 129 cells (\(6\times 6\times 6\) subdivisions), as illustrated in Fig. 14. For integrating the broken cells, the adaptive octree with a tree depth of \(k = 3\) is utilized and (p + 1\()^3\) integration points are distributed in each sub-cell. For stabilizing the fictitious domain using the \(\alpha \)-method, the standard Gauss-quadrature is utilized with \((p + 1)^3\) integration points, as can be seen in Fig. 3b. Applying the eigenvalue stabilization, a set of \((p - 1)^3\) integration points is added in the fictitious domain with \(\alpha = 1\)e−7, as can be seen in Fig. 3c. We apply displacement increments of 0.05 mm in each load step, trying to compress the single cube connector as much as possible.

Fig. 15
figure 15

Energy-displacement curves for the single cube connector using ansatz order \(p=2\). (top) The eigenvalue stabilization. (bottom) The \(\alpha \)-method

To this end, we start by setting the ansatz order to \(p = 2\) and apply different stabilization factors for the \(\alpha \)-method, where \(\alpha = 10^{-q}\) with \(q = \{0, 1, 3, 4, 5\}\), as well as for the eigenvalue stabilization, where \(\epsilon = 10^{-q}\) with \(q = \{4, 5, 6\}\). It can be observed that using the \(\alpha \)-method, the structure can be deformed up to a displacement of \(\bar{u}_z = 4.0\) mm utilizing \(q = 0\), as can be seen in Fig. 15 (bottom). However, it is clear that the structure becomes too stiff because of the large stiffness added to the system. For q values between 3 and 5, the \(\alpha \)-method produces reasonable results with a maximum deformation of \(\bar{u}_z = 2.85\) mm. On the other hand, utilizing the eigenvalue stabilization, we can reach the final deformation state with a displacement of \(\bar{u}_z = 7.00\) mm using \(q = 4\), which is about 2.5 times more as compared to the \(\alpha \)-method. Additionally, it can be seen that the solution is not modified when using higher \(\epsilon \) values. Furthermore, the Green–Lagrange strain component \(E_{zz}\) is plotted for point A (\(x = 0.73\) mm, \(y = 0.73\) mm, \(z = 0.9\) mm) of a broken cell at every load step. It can be observed that using the \(\alpha \)-method with \(q = 0\) and \(q = 1\) the solution is affected largely for such a local quantity, see Fig. 16 (bottom). On the other hand, utilizing the eigenvalue stabilization we can reach a much further deformation state without affecting the solution largely, as can be seen in Fig. 16 (top).

Fig. 16
figure 16

The Green–Lagrange strain component \(E_{zz}\) evaluated at point A versus the applied displacement for the single cube connector using ansatz order \(p=2\). (top) The eigenvalue stabilization. (bottom) The \(\alpha \)-method

Fig. 17
figure 17

Energy-displacement curves for the single cube connector using ansatz order \(p=3\). (top) The eigenvalue stabilization. (bottom) The \(\alpha \)-method

Next, we also investigate the strain energy using an ansatz order of \(p = 3\), as illustrated in Fig. 17. It can be observed that using the \(\alpha \)-method with \(q = 0\) and \(q = 1\) results in a high loss of accuracy. Also, the structure becomes too stiff. However, for q values between 3 and 5, the \(\alpha \)-method produces reasonable results with a maximum deformation of \(\bar{u}_z = 1.95\) mm using \(q = 3\), as can be seen in Fig. 17 (bottom). Utilizing the eigenvalue stabilization, we can reach a further deformation state with a displacement of \(\bar{u}_z = 5.75\) mm with \(q = 4\), which is about 2.95 times more as compared to the \(\alpha \)-method, as can be seen in Fig. 17 (top).

Fig. 18
figure 18

von Mises stress \(\sigma _{vM}\) (MPa) for the single cube connector with \(p = 3\) and \(\epsilon = 1\)e−4 at different load steps

Fig. 19
figure 19

Single pore of a foam. Geometry, boundary conditions, and mesh

Fig. 20
figure 20

Energy-displacement curves for the single pore of a foam using ansatz order \(p = 2\). (top) The eigenvalue stabilization. (bottom) The \(\alpha \)-method

Fig. 21
figure 21

The Green-Lagrange strain component \(E_{yy}\) evaluated at point A versus the applied displacement for the single pore of a foam using ansatz order \(p=2\). (top) The eigenvalue stabilization. (bottom) The \(\alpha \)-method

These results show that the strategy of stabilizing the FCM for hyperelastic problems using the technique based on eigenvalues is more robust and accurate as compared to the \(\alpha \)-method. In Fig. 18, the von Mises stress of the single cube connector is plotted at different load steps using the ansatz order of \(p=3\) and \(\epsilon = 1\)e−4.

5.3 Single pore of a foam

In the last application, we analyze the performance of the proposed eigenvalue stabilization for a more complex structure such as a pore of a foam [21]. The geometry of the foam is obtained from a CT-scan and then converted into a triangulated surface, as depicted in Fig. 19. For the computation, the bottom surface is fixed in all directions, while the top surface is fixed in x and z-directions with a prescribed displacement in the y-direction to compress the foam. The geometry is discretized with 1815 cells (\(20\times 20\times 20\) subdivisions). The numerical integration is done the same way as in the previous example (Sect. 5.2). We apply displacement increments of 0.02 mm at each load step and try to compress the geometry as much as possible. To this end, we set the ansatz order to \(p = 2\) and apply different stabilization factors for the \(\alpha \)-method with \(q = \{0, 1, 2, 4, 5\}\), as well as for the eigenvalue stabilization with \(q = \{4, 6, 8\}\).

To this end, the strain energy function is plotted for the \(\alpha \)-method at different load steps, as shown in Fig. 20 (bottom). It can be observed that using \(q = 0\) and \(q = 1\) results in a drastic change in the solution. For \(q= 4\) and \(q = 5\), the accuracy obtained is reasonable. However, the structure could only be deformed up to a displacement of \(\bar{u}_y = 1.2\) mm using \(q = 4\). On the other hand, utilizing the eigenvalue stabilization, we can reach a much more pronounced deformation state with a displacement of \(\bar{u}_y = 3.82\) mm with \(q = 4\), which is about 3.2 times more as compared to the \(\alpha \)-method. Furthermore, we observe no high loss of accuracy when the \(\epsilon \) values increased from \(q = 8\) to \(q = 4\), as can be seen in Fig. 20 (top).

Furthermore, the Green–Lagrange strain component \(E_{yy}\) is plotted for point A (\(x = 1.9\) mm, \(y = 3.45\) mm, \(z = 4.9\) mm) of a broken cell at every load step. It can be observed that using the \(\alpha \)-method with \(q = 4\) and \(q = 5\) does not affect the solution largely. However the simulations failed to converge much earlier as compared to the eigenvalue stabilization, as can be seen in Fig. 21. Finally, the von Mises stress for the single pore of a foam is plotted in Fig. 22 at different load steps for \(\epsilon = 1\)e−4.

Fig. 22
figure 22

von Mises stress \(\sigma _{vM}\) (MPa) for the single pore of a foam with \(p = 2\) and \(\epsilon = 1\)e−4 at different load steps

6 Conclusions

In this paper, we proposed an eigenvalue stabilization technique for the finite cell method in order to improve its robustness for nonlinear analysis at finite strains. The approach, originally proposed by Loehnert [29], is based on the eigenvalue decomposition of the stiffness matrix for cells that are cut by the boundary of the geometry. To this end, eigenvalues that have a smaller value than a certain tolerance are grouped together. Due to the linear dependencies between the modes, the eigenvalues of some of the modes can even be close to zero—which is why they need additional support. The zero modes that are related to rigid body translations and rotations are not considered for stabilization. Afterwards, the bad modes are supported by adding extra stiffness to the corresponding cell stiffness matrix. Additionally, a correction term is added to the load vector so as to avoid a large modification of the system. Furthermore, we proposed an adaptive stabilization criterion so that the modes with the worst eigenvalues receive more support than modes with better support.

We investigated the approach using different numerical examples, comparing the results to the commonly used \(\alpha \)-method. To this end, we showed for the linear analysis that the condition number can be improved significantly without affecting the solution at all, provided that the load vector is corrected accordingly. Moreover, we showed that the method is suitable to improve the robustness of the FCM significantly for nonlinear analysis.

There are several aspects which are of interest for future work. One important point is to extend the proposed stabilization scheme to distinguish between numerical and geometrical or physical instabilities. The stabilization should be applied only to instabilities arising from badly broken cells. Geometrical instabilities related to local buckling or physical instabilities caused by the material behavior should not be affected by the proposed scheme. Furthermore, the stabilization scheme could be combined with iterative solvers acting as a kind of preconditioner for nonlinear problems to be solved with the FCM.