Skip to main content
Erschienen in: Computational Mechanics 2/2022

Open Access 30.10.2021 | Original Paper

Fast and multiscale formation of isogeometric matrices of microstructured geometric models

verfasst von: T. Hirschler, P. Antolin, A. Buffa

Erschienen in: Computational Mechanics | Ausgabe 2/2022

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Abstract

The matrix formation associated to high-order discretizations is known to be numerically demanding. Based on the existing procedure of interpolation and lookup, we design a multiscale assembly procedure to reduce the exorbitant assembly time in the context of isogeometric linear elasticity of complex microstructured geometries modeled via spline compositions. The developed isogeometric approach involves a polynomial approximation occurring at the macro-scale and the use of lookup tables with pre-computed integrals incorporating the micro-scale information. We provide theoretical insights and numerical examples to investigate the performance of the procedure. The strategy turns out to be of great interest not only to form finite element operators but also to compute other quantities in a fast manner as for instance sensitivity analyses commonly used in design optimization.
Hinweise

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

1 Introduction

The present work follows the paradigm for the design of microstructured geometries using functional composition as originally introduced by Elber [29]. This approach has shown great flexibility to generate high-fidelity geometric models with heterogeneities as for instance lattice structures, structures made of composite materials or even random porous structures. More importantly, it initiates a flexible design framework of such structures since the geometries are naturally parameterized. However, in order to elaborate a complete methodology for the computational design of heterogeneous structures (or in other words microstructured structures), there is the need for efficient analysis methods adapted to these geometric models. Thanks to the emergence of the concept of IsoGeometric Analysis (IGA) introduced by Hughes et al. [41], it is now well-established that spline-based geometric models present excellent performance for numerical simulations too [8, 17, 35, 47]. Consequently, Massarwi et al. [53] and Antolin et al. [3] have been able to simulate the mechanical behavior of microstructured geometries by directly employing the geometric models developed in Elber [29]. Despite the shown viability of the paradigm in Antolin et al. [3], there are several challenges to handle in order to build a practical method for designing complex heterogeneous geometries. The two main ones regarding the analysis arise from the high-order discretizations along with the explicit description of the heterogeneities that come with these geometric models. The numerical cost is tremendous if standard methods are blindly applied to the considered models.
Indeed, the presence of heterogeneities can be a source of complex local phenomena. Fine discretizations are often required to track them accurately in the context of the standard finite element method, which automatically leads to high computational cost. A multitude of alternative numerical approaches have been dedicated to multiscale problems to reduce the required computing resources. Methods based on model enrichment by means of augmented approximations spaces and superposition of solutions have shown great performances, particularly when the micro-scale is (drastically) smaller than the length scale of the structure. Among many others, let us mention the Multiscale FEM (MsFEM) [16, 19, 39] where numerically computed basis functions encode the micro-scale heterogeneities, the Generalized and Extended FMs (GFEM/XFEM) [26, 62, 67] based on partition of unity enrichment techniques, the multilevel FEM (\(\hbox {FE}^{\text {2}}\)) [33, 65] which employs higher-order homogenization scheme, or numerical homogenization [20, 56, 57] where the effective macroscopic description of the micro-heterogeneous material is identified by means of simulation on representative volume elements (RVE). Methods based on homogenization principle seems not applicable in our context. Here, the focus is on heterogeneous structures in the context of Additive Manufacturing and 3D printing [45]. The precision of the printers constrains the achievable length scale range of the heterogeneities. We consider cases where the length scale of the heterogeneities is close to the length scale of the overall structures (factor 2 to 50). Let us also notice that the envisaged geometric models [29] provides the explicit representation of the microstructures. Therefore, we do not face the difficulty of mesh generation that motivates the use of some of the mentioned enhanced FEMs.
For this reason, we aim at solving the full scale problem and we concentrate on the use of fast assembly strategy in order to reduce the overall computational complexity. Instead of this first class of multiscale methods (superposition of micro/macro solutions), this work falls into a second class of numerical approaches for multiscale problems based on Domain Decomposition methods [13, 34, 43, 48]. Instead of introducing the multiscale procedure during the modeling stage, here the idea is to derive specific multiscale solvers capable of solving the fine-scale finite element problem efficiently. Despite the resolution in itself, such a strategy is viable if and only if the formation of the full-field problem can be made in an acceptable amount of time. Our main source of inspiration are methods introduced to allow fast assembly of high-order IGA. In fact, this issue is known in the context of standard IGA [40] and successful procedures have been developed to reduce the assembly time in comparison with the standard finite element procedure based on element loop and Gauss quadrature. The main idea behind those fast formation procedures consists in taking advantage of the tensor-product nature of spline patches and the possible high inter-element continuity. More specifically, less costly quadrature rules have been developed as for instance reduced integration [31, 63] or specific rules [6, 18, 40, 42], and alternative formation procedures have been introduced as for instance sum factorization [2, 15] or the use of lookup tables [49, 50, 64]. By combining several of these techniques, high order splines become tractable in isogeometric analysis [36, 58].
This leads us to develop a fast procedure to form the finite element operators associated to microstructured geometries modeled via spline compositions. To this purpose, we rely on the use of lookup tables as already investigated for standard IGA, and on the concept of unit cell inherited from multiscale strategies. The methodology is presented as follows. First, we present in Sect. 2 the employed geometric modeling approach based on spline composition. Section 3 starts by dealing with the simple case of the computation of the volume (Sect. 3.1), and then presents the developed assembly procedure (Sect. 3.2). Multiple numerical examples are given in Sect. 3.3 in order to study the performance of the strategy. Finally, Sect. 4 discusses the possible integration of the approach into a computational design framework for microstructured structures. Concluding remarks on our observations and findings are given in Sect. 5.

2 Geometric modeling of micro-structures

2.1 Multi-scale modeling using spline composition

Functional composition is an attractive approach to generate geometric models of complex heterogeneous structures. The benefits of such an approach have been initially presented by Elber [29] and this modeling approach starts to gain visibility, see for instance Massarwi et al. [53], Antolin et al. [3]. The main idea is depicted in Fig. 1. It involves two principal ingredients:
  • a macro-representation of the structure where the heterogeneities are not represented,
  • a reference micro-structure which defines the pattern which will be tiled into the macro geometry.
Both geometric objects are modeled using standard CAD tools, as for instance splines. Without providing the theoretical details at the moment, let us mention that a discretization is resulting from the spline representation of these objects. Therefore, the macro-geometry can be viewed as a collection of non-overlapping macro-elements. The final heterogeneous structure, with an explicit representation of the micro-structure, is then obtained by embedding the reference micro-pattern into each of these macro-elements. This process is a composition: The overall geometric mapping that defines the geometry of the heterogeneous structure is prescribed by the composition of the mapping associated to reference micro-pattern and the mapping associated to the macro-representation of the structure.
It should be noticed that, as a consequence of the composition, the micro-pattern is not simply repeated into the macro-geometry but it is subjected to shape deformations too. In the case of the cross-tile depicted in Fig. 1, it could be interesting to define the macro-mapping such that the arms of the microstructures are aligned with the directions associated to the principal stresses. This offers great flexibility, especially in a context of design optimization [3, 46]. Futhermore, one can introduce more than one reference micro-structure. Different reference micro-patterns can be set to each macro-elements. All the examples tackled along this document highlight the great flexibility of the considered modeling approach. Finally, functional composition is not only interesting to model heterogeneous structures. For instance, it has been used to model cable reinforcements into membrane structures [7], or to model stiffened aerostructures [37].

2.2 Problem definition

2.2.1 Spline modeling

Splines are common tools in Computer Aided-Design as they are able to provide parameterization of general free-form objects. We employ, in this work, B-Splines and NURBS but the presented approach can be generalized to other spline technologies without any particular additional requirements. Mathematically, a spline is defined as a function of the form:
$$\begin{aligned} \mathscr {S}~:~ {\bar{\Omega }}_{\mathrm{S}} \rightarrow {\Omega }_{\mathrm{S}} ~;~~ {\bar{x}}\mapsto \mathscr {S}({\bar{x}}), \end{aligned}$$
(1)
where the parameter \({\bar{x}}\) take values in the parameter space \({\bar{\Omega }}_{\mathrm{S}}\) and is mapped to the codomain \({\Omega }_{\mathrm{S}}\) which describes the domain delimited by the geometric object. In the case of a single B-Spline, the expression of \(\mathscr {S}\) is given by:
$$\begin{aligned} \mathscr {S}({\bar{x}}) = \sum _{i=1}^{n} R_i({\bar{x}})\,{\varvec{s}}_{i}\,, \end{aligned}$$
(2)
where the n basis functions \(R_i\) are piece-wise polynomial functions, which are weighted by the coefficients \({\varvec{s}}_{i}\). We refer the reader to [22, 25, 32, 59] for the details on spline constructions. Here we just need to remind that splines are constructed on a non-uniform tensor product partition of the unit cube \({\bar{\Omega }}_{\mathrm{S}}\). The lines and surfaces of such partition are called “parametric” knot lines while their images through \(\mathscr {S}\) are called “physical” knot lines (or just knot lines) and constitute a partition of \({\Omega }_{\mathrm{S}}\).
This simple spline model can be enriched in many ways: e.g., geometries can be described as a collections of spline patches (multipatch geometries), or via NURBS in the case of conic sections. We refer the interested readers to the following non-exhaustive list of works which deal with key points regarding the modeling with splines: theoretical description and practical use of B-Spline and NURBS [22, 25, 32, 59], the issue of trimming procedures and boundary representation [1, 14, 21, 24, 52], and the generation of analysis-suitable geometric models for complex structures [4, 23, 51, 54].

2.2.2 Domain decomposition and composition of mappings

Several mappings are involved in the geometric modeling approach presented in Sect. 2.1. The reader can refer to Fig. 2 all along this section. We first consider a reference tile (or reference microstructure) which, in our case, is prescribed as a multi-patch spline model of the form:
$$\begin{aligned} \mathscr {T}^{\mathrm{r}}({\uptheta }) = \sum _{i=1}^{n_{{T}}} R_{i}^{h}({\uptheta }) \,{\varvec{t}}_{i},\quad {\uptheta }\in {\bar{\Omega }}_{\,\mathrm{T}}. \end{aligned}$$
(3)
The superscript \((\cdot {})^h\) indicates that the basis functions are related to the fine scale (or micro-scale) of the problem.
Additionally, the model of the macro-geometry comes into play. In this work, we mainly consider single-patch models and we express these mappings as follows:
$$\begin{aligned} \mathscr {M}({\upxi }) = \sum _{i=1}^{n_{{M}}} R_{i}^{H}({\upxi }) \,{\varvec{m}}_{i},\quad {\upxi }\in {\bar{\Omega }}_{\,\mathrm{M}}. \end{aligned}$$
(4)
Analogously, the superscript \((\cdot {})^H\) indicates that the basis functions are now related to the coarse scale (or macro-scale) of the problem. The knot lines of this macro-mapping decomposes the codomain \({\Omega }_{\mathrm{M}}\) into a non-overlapping domain decomposition (see Fig. 3):
$$\begin{aligned} {\Omega }_{\mathrm{M}} = \bigcup _{e=1}^{m_{{M}}} {\Omega }_{\mathrm{M}}^{(e)}, \end{aligned}$$
(5)
where the subdomains are obtained by restricting the parameters to a subset \({\bar{\Omega }}_{\,\mathrm{M}}^{(e)}\) of the complete parameter space:
$$\begin{aligned} {\Omega }_{\mathrm{M}}^{(e)} = \left\{ {x}\in \mathbb {R}^{d} ~|~ {x}=\mathscr {M}({\upxi }),~\forall {\upxi }\in {\bar{\Omega }}_{\,\mathrm{M}}^{(e)} \right\} . \end{aligned}$$
(6)
Even if it is not mandatory, let us rewrite these macro-subdomains through a Bézier extraction [11]:
$$\begin{aligned} {\Omega }_{\mathrm{M}}^{(e)} = \left\{ {x}\in \mathbb {R}^{d} ~|~ {x}=\mathscr {M}^{(e)}({\upxi }),~\forall {\upxi }\in [0,1]^{{\bar{d}}} \right\} . \end{aligned}$$
(7)
With this formulation, the parameter spaces associated to every sub-domains become identical and what differs from one macro-subdomain to the other is only the underlying geometric mapping. Each of them is equipped with its own Bézier mapping:
$$\begin{aligned} \mathscr {M}^{(e)}({\upxi }) = \sum _{i=1}^{n_{{B}}} B_{i}^{H}({\upxi }) \,{\varvec{m}}_{i}^{(e)},\quad {\upxi }\in [0,1]^{{\bar{d}}}. \end{aligned}$$
(8)
where \(B_{i}^{H}\) denotes the Bernstein basis polynomials. A Bézier mapping can be seen as a B-Spline with one single element. The Bézier extraction is a well-established procedure and takes the form of a linear application (i.e. the new coefficients \({\varvec{m}}^{(e)}\) are expressed as a linear combination of the initial ones \({\varvec{m}}\)).
We now have in hand all the required ingredients to describe the fine-scale heterogeneous structure. The overall domain delimited by the full geometry is again given by a non-overlapping domain decomposition (see Fig. 3):
$$\begin{aligned} {\Omega }_{\mathrm{}} = \bigcup _{t=1}^{m_{\mathrm{M}}} {\Omega }_{\mathrm{}}^{(t)}, \qquad {\Omega }_{\mathrm{}}^{(t)} = \left\{ {x}\in \mathbb {R}^{d} ~|~ {x}=\mathscr {T}^{(t)}({\uptheta }),~\forall {\uptheta }\in {\bar{\Omega }}_{\,\mathrm{T}}\right\} , \end{aligned}$$
(9)
where the mappings \(\mathscr {T}^{(t)}\) associated to the subdomains \({\Omega }_{\mathrm{}}^{(t)}\) are obtained through the composition of the reference tile (3) and the macro-elements (8):
$$\begin{aligned} \mathscr {T}^{(t)}({\uptheta })= \big (\mathscr {M}^{(t)}\circ \mathscr {T}^{\mathrm{r}}\big )({\uptheta }) = \sum _{i=1}^{n_{{B}}} B_{i}^{H}\big (\mathscr {T}^{\mathrm{r}}({\uptheta })\big ) {\varvec{m}}_{i}^{(t)},\ \ {\uptheta }\in {\bar{\Omega }}_{\,\mathrm{T}}. \end{aligned}$$
(10)
The compositions are possible under the condition that the reference tile lies in the parameter space of the macro-elements, i.e. \({\Omega }_{\mathrm{T}}\subset [0,1]^{{\bar{d}}}\). Figure 2 summarizes the spaces and the mappings that are involved in the geometric modeling approach.

2.3 IsoGeometric analysis

2.3.1 Test and trial functions

Following the isoparametric concept that is at the basis of IsoGeometric Analysis [25, 41], the natural choices for trial and test functions are, for object \(\mathscr {S}\), of the type:
$$\begin{aligned} u(x) = \sum _{i=1}^{n} R_i\circ {}\mathscr {S}{}{}^{-1}({x})\,{\varvec{u}}_{i}\,, \end{aligned}$$
(11)
where \(R_{i}\) are the spline basis functions originated from the considered geometric model of the structure (see Equation (2)). The construction of the corresponding stiffness or mass matrices is cumbersome, due to the structure of these functions, especially in the case of the introduced geometric models which involve composition of mappings.

2.3.2 Challenges

The problem comes from the composition which may lead to a geometric mapping of very high degree. Indeed, it is possible to rewrite the composed map (10) as (multi-patch) tensor-product B-Splines (or NURBS) [69]. However, if the reference microstructure \(\mathscr {T}^{\mathrm{r}}\) is a trivariate of degree \(p_{\mathrm{T}}\) per direction and the macro-geometry \(\mathscr {M}\) is a trivariate of degree \(p_{\mathrm{M}}\) per direction, then the composed mapping is a trivariate of degree \(p_{\mathrm{}}\) per direction, where \(p_{\mathrm{}}\) is given by:
$$\begin{aligned} p_{\mathrm{}} = 3p_{\mathrm{M}}p_{\mathrm{T}}. \end{aligned}$$
(12)
Thus, as an example, composing two cubic trivariates gives composed elements with degree 27. High degree is known to be a source of troubles during, for example, the numerical integration that is performed to build the system. Standard quadrature rules (and standard element-by-element assembly strategies) are rarely employed in practice when the degree is higher than 4: they become too expensive. In order to deal with large degree, more elaborate assembly strategies have been developed, see for example [2, 5, 18, 36, 40, 42, 49, 50, 58]. The main idea of these approaches consists in exploiting the tensor-product nature of B-Splines and the inter-element regularity during the assembly. However, tracking degrees higher than 10 is still challenging. Especially here, the regularity of the composed map is limited by the regularity of the underlying reference micro-structural entity (i.e. the geometric map \(\mathscr {T}^{\mathrm{r}}\)) which reduces the performances of the aforementioned fast-assembly strategies. Finally, even if it was efficient, one might question the pertinence of performing analyses with polynomial functions of degree 20 and more (e.g., due to bad conditioning and dense structure).
Consequently, we choose to limit the degree involved in the approximation subspace. A versatile way to build this space consists in recycling the basis functions \(R_{i}^{h}\) involved in the geometric mapping of the reference micro-structure (remember Equation (3)). More specifically, the displacement field is approximated over each subdomain as follows:
$$\begin{aligned} u^{(t)} (x) = \sum _{i=1}^{n_{{T}}} \big (R_{i}^{h}\circ {}\mathscr {T}^{(t)}{}{}^{-1}\big )({x})\,{\varvec{u}}_{i}^{(t)}, \quad {x}\in {\Omega }_{\mathrm{}}^{(t)}. \end{aligned}$$
(13)
Besides keeping the degree of the solution under control, this choice has also the advantage of discretizing the displacement field identically for each subdomain. This is not always true in the case of the isoparametric formulation (e.g. when the global mapping is a NURBS). With this choice, we also do not need to reformulate the composed maps with standard (high-degree) B-Splines. The reference micro-structures and the macro-elements are given separately in the data structure. Finally, let us mention that a similar choice regarding the solution spaces is done in Massarwi et al. [53].
However, the use of this non-isoparametric formulation is not enough, as such, to build an efficient simulation strategy for the targeted heterogeneous structures. Depending on the complexity of the reference microstructure and the number of macro-elements, the construction of the linear system of equations is still (very) demanding. As we said, in order to get an attractive assembly strategy, we employ ingredients from the fast assembly strategies that have been successfully developed in the standard isogeometric framework, but more importantly, we seek to exploit the inherent repetitiveness inside the heterogeneous structures as shown in Fig. 3. Instead of performing blindly an assembly strategy, the key to success is to rely on the similarities between the subdomains in order to avoid computing the same quantities multiple times.

3 Fast multi-scale assembly of finite element matrices

3.1 A preliminary illustrative example

Before tackling the case of the finite element operators, let us start with a more simple quantity in order to present the philosophy of the developed approach. To that purpose, let us try to compute the volume of a heterogeneous structure.

3.1.1 Multi-scale philosophy

The first step consists in invoking the non-overlapping domain decomposition of our geometric model (remember Sect. 2.2.2 and Fig. 3). The overall volume is given by the sum of the local volumes:
$$\begin{aligned} \mathrm{V}= \sum _{t=1}^{m_{\mathrm{M}}{}} \mathrm{V}^{(t)}, \quad \text {with}\quad \mathrm{V}^{(t)} = \int _{\Omega ^{(t)}} {dV}. \end{aligned}$$
The second step involves the two mappings defining the subdomain. More specifically, we pull back the mapping defining the macro-element and the mapping defining the reference microstructure. According to Fig. 2, we go from the physical space back to the fine parameter space. These two successive changes of variables lead to:
$$\begin{aligned} \mathrm{V}^{(t)} = \int _{{\bar{\Omega }}_{\,\mathrm{T}}} |\mathrm{det}\,{J_{\mathscr {T}^{\mathrm{r}}}}||\mathrm{det}\,{J_{\mathscr {M}^{(t)}}}\circ \mathscr {T}^{\mathrm{r}}{}| ~{d\theta }, \end{aligned}$$
(14)
where \(\mathrm{det}\,{J_{\mathscr {T}^{\mathrm{r}}}}\) and \(\mathrm{det}\,{J_{\mathscr {M}^{(t)}}}\) denote the Jacobian determinants of the mappings \(\mathscr {T}^{\mathrm{r}}\) and \(\mathscr {M}^{(t)}\), respectively. It is interesting to notice that in the expression of the local volume as given in Equation (14), there is only one quantity that differs from one subdomain to the other. This quantity is marked by the superscript identifying the current subdomain: it is the Jacobian determinant associated to the current macro-element, i.e. \(\mathrm{det}\,{J_{\mathscr {M}^{(t)}}}\). Due to this quantity, one can hardly exploit the redundancies between the subdomains: One can, at best, store large precomputed quantities, for instance, the evaluation of \(\mathrm{det}\,{J_{\mathscr {T}^{\mathrm{r}}}}\) at every integration point, but this does not represent major savings with the price of increasing the computer memory.
The role of the third step is to a certain extent to approximate the subdomain-dependent quantities (here the Jacobian determinant associated to the macro-elements) from the integrals. To do so, a projection step onto a spline space is introduced. Without giving the details at the moment, let us formulate the result of the projection:
$$\begin{aligned} \big (\Pi ^H |\mathrm{det}\,{J_{\mathscr {M}^{(t)}}}|\big )({\upxi }) = \sum _{k=1}^{n_{{\uppi }}} N_{k}^H({\upxi })\,{d_{k}^{H}{}^{(t)}}, \quad {\upxi }\in [0,1]^{{\bar{d}}}. \end{aligned}$$
(15)
The macro-Jacobian determinant is now prescribed as a linear combination of macro-basis functions \(N_{k}^H\) weighted by some coefficient \({d_{k}^{H}{}^{(t)}}\). Importantly, the same projection space is chosen for each subdomain. By substituting the projected quantities (15) into the expression (14) of the volume, and commuting the sum and the integral, we obtain:
$$\begin{aligned} \mathrm{V}^{(t)} \approx \sum _{k=1}^{n_{{\uppi }}} \left( {d_{k}^{H}{}^{(t)}} \int _{{\bar{\Omega }}_{\,\mathrm{T}}} |\mathrm{det}\,{J_{\mathscr {T}^{\mathrm{r}}}}| \big (N_{k}^H\circ \mathscr {T}^{\mathrm{r}}{}\big ) \,{d\theta } \right) . \end{aligned}$$
(16)
As a result, the volume of each subdomain can be computed through a dot product between two vectors:
$$\begin{aligned} \mathrm{V}^{(t)} \approx {{\varvec{\mathfrak {{t}}}}^{h}}{}\cdot {{\varvec{d}}^{H}{}^{(t)}}, \end{aligned}$$
(17)
where \({{\varvec{d}}^{H}{}^{(t)}}\in \mathbb {R}^{n_{{\uppi }}}\) is the vector that collects the projection coefficients, and \({{\varvec{\mathfrak {{t}}}}^{h}}\in \mathbb {R}^{n_{{\uppi }}}\) is the vector that collects the integrals:
$$\begin{aligned} {\mathfrak {t}_{k}^{h}} = \int _{{\bar{\Omega }}_{\,\mathrm{T}}} |\mathrm{det}\,{J_{\mathscr {T}^{\mathrm{r}}}}| \big (N_{k}^H\circ \mathscr {T}^{\mathrm{r}}{}\big )d \theta . \end{aligned}$$
(18)
The vector \({{\varvec{\mathfrak {{t}}}}^{h}}{}\) constitutes the so-called lookup table. Despite that the projection basis functions \(N_{}^H\) are defined at the macro-scale, we identify the lookup table with the fine-scale superscript h because it contains all the information regarding the reference microstructure (the fine scale). Finally, with these quantities in hand, the overall volume is approximated by:
$$\begin{aligned} \mathrm{V}\approx \sum _{t=1}^{m_{\mathrm{M}}} {{\varvec{\mathfrak {{t}}}}^{h}}{}\cdot {{\varvec{d}}^{H}{}^{(t)}} = {{\varvec{\mathfrak {{t}}}}^{h}}{}\cdot \sum _{t=1}^{m_{\mathrm{M}}}{{\varvec{d}}^{H}{}^{(t)}}. \end{aligned}$$
(19)
With this last expression, one can see that the two scales have been split. Interestingly, the exact same lookup-table is used for each subdomain. It needs to be computed only once, no matter the number of tiles there are in the heterogeneous structures. In practice, the lookup-table is computed in a pre-processing step and stored in a database. Figure 4 gives an overview of the approach.

3.1.2 Projection at the macro-level

Let us examine the projection step already introduced in Equation (15) in more detail. In this work, this key step is done through the application of a L2-projector occurring at the macro-level:
$$\begin{aligned} \Pi ^H:{{\textsf {\textit{L}}}}^2\big (~[0,1]^{{\bar{d}}}{}~\big ) \rightarrow {{\textsf {\textit{Q}}}}p_\pi \big (~[0,1]^{{\bar{d}}}{}~\big ), \end{aligned}$$
(20)
where the target subspace is a spline space of dimension \(n_{{\uppi }}=(p_\pi +1)^{{\bar{d}}}\) defined as:
$$\begin{aligned} {{\textsf {\textit{Q}}}}p_\pi = \text {span}\left\{ N_{k}^H\right\} _{k=1}^{n_{{\uppi }}}, \end{aligned}$$
(21)
where the macro-basis function \(N_{k}^H\) are taken as multivariate Bernstein basis polynomials of degree \(p_\pi \). The projection may introduce some approximation, for instance, if the input function is not a polynomial or if the projection degree is lower than the degree of the input polynomial. For instance, if the global mapping is a B-Spline, then the Jacobian determinants associated to the macro-element are polynomials of degree:
$$\begin{aligned} \text {deg}\left( \mathrm{det}\,{J_{\mathscr {M}^{(t)}}}\right) = {{\bar{d}}}p_{\mathrm{M}}-1. \end{aligned}$$
(22)
In order to get further numerical speed-ups, it can be interesting to balance between projection error and accuracy by taking the projection degree \(p_\pi \) lower than the one of the Jacobian determinants. Furthermore, let us mention that in the case of NURBS, the Jacobian determinants might be rationals instead of polynomials. Consequently, we consider that, in general, some approximations are introduced during the projection step (either because the projection degree is lowered or because the input quantity is not a polynomial function).
In practice, the projection step mainly involves the resolution of a linear system of the form:
$$\begin{aligned} {\varvec{M}}_{{\uppi }}^{H}{{\varvec{d}}^{H}{}^{(t)}} = {\varvec{r}}_{{\uppi }}^{H}{}^{(t)}, \end{aligned}$$
(23)
which enables to get the projection coefficients \({{\varvec{d}}^{H}{}^{(t)}}\). The components of the matrix \({\varvec{M}}_{{\uppi }}^{H}\in \mathbb {R}^{n_{{\uppi }}\times n_{{\uppi }}}\) and of the right-hand side \({\varvec{r}}_{{\uppi }}^{H}{}^{(t)}\in \mathbb {R}^{n_{{\uppi }}}\) defining the system to be solved are respectively given by:
$$\begin{aligned} \begin{aligned} \big [{\varvec{M}}_{{\uppi }}^{H}\big ]_{kl}&= \int _{[0,1]^{{\bar{d}}}} N_{k}^HN_{l}^H\mathrm{d}\xi ,\\ \big ({\varvec{r}}_{{\uppi }}^{H}{}^{(t)}\big )_{k}&= \int _{[0,1]^{{\bar{d}}}} N_{k}^H|\mathrm{det}\,{J_{\mathscr {M}^{(t)}}}|\mathrm{d}\xi . \end{aligned} \end{aligned}$$
(24)
Selecting the same projection space for every subdomains leads to one unique projection matrix for each of the projection to be done. Thus, this matrix can be built and factorized (or even inverted) only once. In order to reduce the numerical effort even more, this matrix (or even its factorization/inverse) could be simply loaded from a database. In order to go even further, the resolution of the system (23) involved during the projection can be included into the lookup tables. Indeed, substituting Equation (23) into Equation (17) gives:
$$\begin{aligned} \mathrm{V}^{(t)} \approx {{\varvec{\mathfrak {{t}}}}^{h}}{}\cdot {{\varvec{d}}^{H}{}^{(t)}} = {{\varvec{\mathfrak {{t}}}}^{h}}{}\cdot {\varvec{M}}_{{\uppi }}^{H}{}{}^{-1}{\varvec{r}}_{{\uppi }}^{H}{}^{(t)} = {{\varvec{\mathfrak {{t}}}}_{{\uppi }}^{h}}{}\cdot {\varvec{r}}_{{\uppi }}^{H}{}^{(t)}. \end{aligned}$$
(25)
The new lookup-table \({{\varvec{\mathfrak {{t}}}}_{{\uppi }}^{h}}{}\) now includes the inverse of the projection matrix:
$$\begin{aligned} {{\varvec{\mathfrak {{t}}}}_{{\uppi }}^{h}}{} = {\varvec{M}}_{{\uppi }}^{H}{}{}^{-1}\,{{\varvec{\mathfrak {{t}}}}^{h}}{}. \end{aligned}$$
(26)
It is thus possible to somehow reduce the computational needs to the construction of the right-hand side \({\varvec{r}}_{{\uppi }}^{H}{}^{(t)}\) only. However, even if it is a bit more computationally demanding, employing \({{\varvec{\mathfrak {{t}}}}^{h}}{}\) instead of \({{\varvec{\mathfrak {{t}}}}_{{\uppi }}^{h}}{}\) has the advantage of computing the projection coefficients (by solving the system (23)). One can then directly evaluate the projected field using Equation (15), and therefore one can compute the projection error in a post-processing step.

3.1.3 Preliminary results

Let us consider the heterogeneous structure presented in Fig. 4. Firstly, we compute the volume with a standard approach based on a numerical integration over the full fine-scale model. More specifically, we employ a Gauss-Legendre quadrature with 6 points per direction which leads, for this particular geometry, to compute the volume up to the machine precision. The computational time is about \(t_{1}\approx {6.5}\,\hbox {s}\). Secondly, we employ the developed fast strategy. In order to reach the machine precision too, quartic projection degree is required here (no error is introduced during the projection of the macro-Jacobian determinant with this choice). The computational time is more than 150 times lower, i.e. \(t_{2} \approx 0.04\,\hbox {s}\) (average value over multiple calculations) which represents a great computational speed-up. The construction of the lookup-table \({{\varvec{\mathfrak {{t}}}}^{h}}{}\) is not taken into account in the computational time, and, in what follows, we always consider that the tables are built off-line, in a pre-processing step.

3.2 Application to linear elasticity

The strategy developed for the case of the volume computation in Sect. 3.1 can be applied analogously to the construction of common finite element operators. We detail in this section its application to linear elasticity.

3.2.1 Elastostatics

IGA relies on the same variational formulation than standard FEM. In the context of elastostatics, it consists in seeking the kinematically admissible displacement field \({\varvec{u}}\in {\varvec{\mathscr {{U}}}}\) such that:
$$\begin{aligned} \mathrm{W}_{\mathrm{int}}({\varvec{u}},{\varvec{v}}) + \mathrm{W}_{\mathrm{ext}}({\varvec{v}}) = 0, \quad \forall {\varvec{v}}\in {\varvec{\mathscr {{V}}}}, \end{aligned}$$
(27)
where \({\varvec{\mathscr {{U}}}}\) and \({\varvec{\mathscr {{V}}}}\) over the physical domain are add-hoc functional spaces that will contain the displacement solution and test functions, respectively. The internal virtual work \(\mathrm{W}_{\mathrm{int}}\) and the external virtual work \(\mathrm{W}_{\mathrm{ext}}\) in the equilibrium principle (27) are expressed as:
$$\begin{aligned} \mathrm{W}_{\mathrm{int}}({\varvec{u}},{\varvec{v}})&= -\int _{{\Omega }_{\mathrm{}}} {\varvec{\sigma }}({\varvec{u}}):{\varvec{\varepsilon }}({\varvec{v}}) \mathrm{d}\Omega , \end{aligned}$$
(28)
$$\begin{aligned} \mathrm{W}_{\mathrm{ext}}({\varvec{v}})&= \int _{{\Omega }_{\mathrm{}}} \left( {\varvec{v}}\cdot {\varvec{b}}\right) \mathrm{d}\Omega + \int _{\Gamma } \left( {\varvec{v}}\cdot {\varvec{t}}\right) \mathrm{d}\Omega . \end{aligned}$$
(29)
where \({\varvec{\varepsilon }}\) and \({\varvec{\sigma }}\) denote the linearized Green-Lagrange strain tensor and the linearized Cauchy stress tensor, respectively. The external loads are of two kinds: \({\varvec{b}}\) denotes body forces (e.g. attraction or inertia forces), and \({\varvec{t}}\) denotes tractions (or surface forces as a pressure force, for example) prescribed at the boundaries \(\Gamma \) of the body. We distinguish two loading scenarios when dealing with tractions, as defined in Fig. 5: the case where the load support is included in the macro-boundaries (colored faces in Fig. 5), and the case where the load support lies inside the macro-elements (gray faces in Fig. 5). This last case will not be considered in the scope of this work, as, in our practice, the loading scenarios and the material parameters are prescribed using the macro-model. Consequently, only tractions applied to the colored surfaces in Fig. 5 can be described. The other scenario is automatically excluded.
The discretization of problem (27) that we consider is the Galerkin method applied on the functions constructed as in Equation (13). This choice generates a linear system:
$$\begin{aligned} {\varvec{K}}{\varvec{u}} = {\varvec{f}}, \end{aligned}$$
(30)
where \({\varvec{K}}\) is the so-called stiffness matrix, \({\varvec{u}}\) is the displacement vector that collects the Degrees Of Freedom (DOF), and \({\varvec{f}}\) is the load vector. In what follows, we use the procedure proposed in Sect. 3.1 in order to perform fast assembly of the stiffness matrix and the load vector.

3.2.2 Polynomial approximation at the Macro-scale

Pulling-back the macro-mappings The non-overlapping domain decomposition enables to split the internal and external works into local contributions:
$$\begin{aligned} \mathrm{W}_{\mathrm{int}}({\varvec{u}},{\varvec{v}}) = \sum _{t=1}^{m_{\mathrm{M}}} \mathrm{W}_{\mathrm{int}}^{(t)}({\varvec{u}},{\varvec{v}}), \quad \mathrm{W}_{\mathrm{ext}}({\varvec{v}}) = \sum _{t=1}^{m_{\mathrm{M}}} \mathrm{W}_{\mathrm{ext}}^{(t)}({\varvec{v}}), \end{aligned}$$
(31)
with:
$$\begin{aligned} \mathrm{W}_{\mathrm{int}}^{(t)}({\varvec{u}},{\varvec{v}})&= -\int _{{\Omega }_{\mathrm{}}^{(t)}} {\varvec{\sigma }}({\varvec{u}}):{\varvec{\varepsilon }}({\varvec{v}}) \mathrm{d}\Omega , \end{aligned}$$
(32)
$$\begin{aligned} \mathrm{W}_{\mathrm{ext}}^{(t)}({\varvec{v}})&= \int _{{\Omega }_{\mathrm{}}^{(t)}} \left( {\varvec{v}}\cdot {\varvec{b}}\right) \mathrm{d}\Omega + \int _{\Gamma ^{(t)}} \left( {\varvec{v}}\cdot {\varvec{t}}\right) \mathrm{d}\Omega . \end{aligned}$$
(33)
As for the case of the volume, these local works are expressed at the level of the macro-parameter space after having pulled-back the macro-mappings \(\mathscr {M}^{(t)}\). In order to identify the repeated quantities between the local works, one would need to reformulate them with respect to the curvilinear coordinates \(\xi _i\) associated to the macro-elements (instead of the Cartesian coordinates associated to the physical space). Even if it is not mandatory, one can employ the curvilinear formalism commonly adopted for shell formulations (as presented in Bischoff et al. [9], for instance) to this purpose. We briefly detail this formalism in A.1 for the sake of clarity. Consequently, after pulling back the macro-mappings, we view the local works (32) and (33) as follows:
$$\begin{aligned} \mathrm{W}_{\mathrm{int}}^{(t)}({\varvec{u}},{\varvec{v}})&= -\int _{{\Omega }_{\mathrm{T}}} \left( {\varvec{\sigma }}^{(t)}({\varvec{u}}):{\varvec{\varepsilon }}^{(t)}({\varvec{v}})\right) |\mathrm{det}\,{J_{\mathscr {M}^{(t)}}}| \mathrm{d}\xi , \end{aligned}$$
(34)
$$\begin{aligned} \mathrm{W}_{\mathrm{ext}}^{(t)}({\varvec{v}})&= \int _{{\Omega }_{\mathrm{T}}} \big ({\varvec{v}}\cdot {\bar{{\varvec{b}}}}^{(t)}\big )\mathrm{d}\xi + \int _{{\Gamma }_{\mathrm{T}}} \big ({\varvec{v}}\cdot {\bar{{\varvec{t}}}}^{(t)}\big ) \mathrm{d}\xi . \end{aligned}$$
(35)
At this step, the involved quantities (stress tensor, strain tensor, and loads) are now marked with the sub-domain superscript because their expressions incorporate terms associated to the macro-mappings \(\mathscr {M}^{(t)}\). Again, we refer to A.1 for the complete description of these quantities.
Identification of the macro-fields to project In contrast with the case of the volume, identifying the repeated quantities in the virtual works and thus the macro-quantities to project, is not straightforward, at least by looking at the expressions (34) and (35) only (especially for the internal work). Further manipulations of the integrands need to be performed, similarly to what is done for sum-factorization techniques, see for example [2] or [36]. We detail in 1 one way to rewrite the virtual works such that the quantities of interest (i.e. the sub-domain dependent quantities that will be projected) can be identified. Those developments leads us to view the local internal virtual works as:
$$\begin{aligned} \mathrm{W}_{\mathrm{int}}^{(t)}\big ({\varvec{u}},{\varvec{v}}\big ) = -\sum _{i=1}^d\sum _{j=1}^d \left( \int _{{\Omega }_{\mathrm{T}}} {\varvec{u}}_{\prime {{\upxi }_{i}}}^{\top } \left. {\varvec{{\bar{A}}}}_{ij}^{H(t)}\right. {\varvec{v}}_{\prime {{\upxi }_{j}}}^{} \mathrm{d}\xi \right) , \end{aligned}$$
(36)
where the macro-fields denoted \({\varvec{{\bar{A}}}}_{ij}^{H(t)}\) involve quantities associated to the macro-scale model only. These macro-fields are expressed by:
$$\begin{aligned} \begin{aligned} {\varvec{{\bar{A}}}}_{ij}^{H(t)}: [0,1]^{d}&\rightarrow \mathbb {R}^{d\times {}d},\\ {\upxi }~~&\mapsto \left[ \hat{{\varvec{G}}}_{i}^{(t)}\check{{\varvec{C}}}_{}^{(t)}\hat{{\varvec{G}}}_{j}^{(t)\top }\right] ({\upxi })\, |\mathrm{det}\,{J_{\mathscr {M}^{(t)}}}|({\upxi }), \end{aligned} \end{aligned}$$
(37)
with \(d=2,3\) depending on the dimension of the problem. All the quantities involved in Equation (37) are described in detail in 1. Importantly, the macro-fields do not only involve the geometrical information of the macro-model but they also include the material parameters. In this work, we consider isotropic elastic material, commonly defined through two parameters as for instance the Young’s modulus E and the Poisson’s ratio \(\nu \). We consider homogeneous material in the numerical examples in Sect. 3.3 but heterogeneous material can also be modeled.
In contrast with the case of the volume where only one scalar-field is involved in the integral (recall Equation (14) and associated discussion), we end up here with a fourth-order tensor field. In the most general case, there are 45 distinct components for 3D problems (10 for 2D problems) due to following symmetries:
$$\begin{aligned} {\varvec{{\bar{A}}}}_{ij}^{H(t)} = \left. {\varvec{{\bar{A}}}}_{ji}^{H(t)}\right. ^{\top }. \end{aligned}$$
(38)
For simple macro-geometries and homogeneous materials, the number of distinct components is then reduced. Figure 6 depicts the macro-fields involved in the internal work in the case of a free-form geometry. In general, these macro-fields are smooth rational polynomial functions defined over the macro-geometry. The polynomial degree of the denominator is the same than the one of the Jacobian determinant (recall Equation (22)). The numerator is also of high polynomial degree [50].
Regarding the external virtual work, the current multiscale approach is applicable under the condition that the underlying quantities to project can be smoothly extended to the full macro-parameter space (as it was the case for the quantities involved in the internal work, i.e. the macro-fields are well defined over \([0,1]^d\) even if only their restrictions to \({\Omega }_{\mathrm{T}}\) are used in the integrals). More specifically, the considered external works are expressed as:
$$\begin{aligned} \mathrm{W}_{\mathrm{ext}}^{(t)}({\varvec{v}}) = \int _{{\Omega }_{\mathrm{T}}} \big ({\varvec{v}}\cdot {\bar{{\varvec{b}}}}^{H}{}^{(t)}\big )\mathrm{d}\xi + \int _{{\Gamma }_{\mathrm{T}}} \big ({\varvec{v}}\cdot {\bar{{\varvec{t}}}}_{}^{H}{}^{(t)}\big ) \mathrm{d}\xi , \end{aligned}$$
(39)
where \({\bar{{\varvec{b}}}}^{H}{}^{(t)}\) and \({\bar{{\varvec{t}}}}_{}^{H}{}^{(t)}\) denote the extensions of the body and surface force terms, respectively. The body force term is define over the full macro-parameter space as follows:
$$\begin{aligned} \begin{aligned} {\bar{{\varvec{b}}}}^{H}{}^{(t)}:&[0,1]^d \rightarrow \mathbb {R}^d; {\upxi }\mapsto {\bar{{\varvec{b}}}}^{H}{}^{(t)}({\upxi }),\\&\text {such that}\quad {\bar{{\varvec{b}}}}^{H}{}^{(t)}\vert _{{\Omega }_{\mathrm{T}}} = \big ({\varvec{b}}\circ \mathscr {M}^{(t)}\big )\,|\mathrm{det}\,{J_{\mathscr {M}^{(t)}}}|. \end{aligned} \end{aligned}$$
(40)
In the case of the surface forces, their extensions do not need to be defined over the complete macro-parameter space. Instead, a better choice seems to extend the associated terms over the macro-faces only:
$$\begin{aligned} \begin{aligned} {\bar{{\varvec{t}}}}_{}^{H}{}^{(t)}:&{\bar{\Gamma }}_{}^{H} \rightarrow \mathbb {R}^d; {\upxi }\mapsto {\bar{{\varvec{t}}}}_{}^{H}{}^{(t)}({\upxi }),\\&\text {such that}\quad {\bar{{\varvec{t}}}}_{}^{H}{}^{(t)}\vert _{{\Gamma }_{\mathrm{T}}} = \big ({\varvec{t}}\circ \mathscr {M}^{(t)}\big )\,|\mathrm{det}\,{I_{\mathscr {M}^{(t)}}}|. \end{aligned} \end{aligned}$$
(41)
By setting the boundary conditions using the macro-scale model as discussed in Sect. 3.2.1, we directly have in hand the required extensions of the load terms.
Performing the projection In order to get an exact spline representation of the macro-fields as defined in Equation (37), one would need to use a high degree NURBS (or rational Bézier). In this case, the required projection space might be different from one macro-element to the other (due to the weights) which is incompatible with our strategy: It breaks the possibility to build and use an unique lookup-table with pre-computed integrals that is common to every sub-domain. The required (possibly very) high degree to get the exact representation implies an important computational cost. Instead, we seek a balance between computational cost and precision: The macro-fields are projected on a spline space defined by multivariate Berstein polynomials of degree \(p_\pi \) as for the volume case, see Equation (21). The projector defined in Equation (20) is applied to get a polynomial approximation of the components of macro-field involved in the internal work:
$$\begin{aligned} \Pi ^H {\varvec{{\bar{A}}}}_{ij}^{H(t)}({\upxi }) = \sum _{C=1}^{n_{{\uppi }}} N_{C}^H({\upxi })\, \big \langle {\varvec{{\bar{A}}}}_{ij}^{H(t)}\big \rangle _{C}, \quad {\upxi }\in [0,1]^{d}. \end{aligned}$$
(42)
The projection coefficients marked as \( \big \langle {\varvec{{\bar{A}}}}_{ij}^{H(t)}\big \rangle _{C}\) are obtained by solving systems of the same form as (23).
A similar polynomial approximation is introduced in the external virtual work (39). In order to deal with the surface forces, we introduce additional L2-projectors defined over each macro-face (or edges for 2D problem):
$$\begin{aligned} \Pi _F^H:{{\textsf {\textit{L}}}}^2\big (~{\bar{\Gamma }}_{F}^{H}~\big ) \rightarrow {{\textsf {\textit{Q}}}}p_\pi \big (~{\bar{\Gamma }}_{F}^{H}~\big ), \quad F=1,\dots ,2{d}. \end{aligned}$$
(43)
It is then possible to introduce the following polynomial approximations:
$$\begin{aligned} \Pi ^H {\bar{{\varvec{b}}}}^{H}{}^{(t)}({\upxi })&= \sum _{C=1}^{n_{{\uppi }}} N_{C}^H({\upxi })\, \big \langle {\bar{{\varvec{b}}}}^{H}{}^{(t)}\big \rangle _{C}, \quad {\upxi }\in [0,1]^{d}, \end{aligned}$$
(44)
$$\begin{aligned} \Pi _F^H {\bar{{\varvec{t}}}}_{F}^{H}{}^{(t)}({\upxi })&= \sum _{C\in \mathrm{I}_{F}} N_{C}^H({\upxi })\, \big \langle {\bar{{\varvec{t}}}}_{F}^{H}{}^{(t)}\big \rangle _{C}, \quad {\upxi }\in {\bar{\Gamma }}_{F}^{H}. \end{aligned}$$
(45)
As for the other macro-quantities, the projection coefficients are obtained through the resolution of linear systems similar to Equation (23). It is however of reduced size for the field associated to the surface forces: Only the active projection basis functions at the current face, i.e. contained in the set denoted \(\mathrm{I}_{F}\) in Equation (45), are involved in the system to be solved.
Consistency error term in Strang’s first lemma The impact of introducing polynomial approximations into the variational formulation has been theoretical studied, for instance, in [49]. The projection error due to the polynomial approximation generates a consistency error that can be analyzed with Strang’s first lemma. This enables to appropriately choose the projection degree \(p_\pi \) such that the difference between the numerical solution and the original variational formulation is under control.
More precisely, Strang’s first lemma [66] provides the following upper bound of the overall approximation error:
$$\begin{aligned} \begin{aligned}&\vert {{\varvec{u}}-{\varvec{u}}^{{\pi }h}}\vert _{H^1({\Omega }_{\mathrm{}})} \le {\upbeta }\Bigg (~ \underset{{\varvec{w}}^h\in {\varvec{\mathscr {{V}}}}^{h}}{{sup}} \frac{|\mathrm{W}_{\mathrm{ext}}({\varvec{w}}^h) - \mathrm{W}_{\mathrm{ext}}^{{\pi }}({\varvec{w}}^h)|}{\vert {{\varvec{w}}^h}\vert _{H^1({\Omega }_{\mathrm{}})}} ~+ \\&\,\underset{{\varvec{v}}^h\in {\varvec{\mathscr {{V}}}}^{h}}{{inf}} \Bigg ( \vert {{\varvec{u}}-{\varvec{v}}^h}\vert _{H^1({\Omega }_{\mathrm{}})} + \underset{{\varvec{w}}^h\in {\varvec{\mathscr {{V}}}}^{h}}{{sup}} \frac{|\mathrm{W}_{\mathrm{int}}({\varvec{v}}^h,{\varvec{w}}^h) - \mathrm{W}_{\mathrm{int}}^{{\pi }}({\varvec{v}}^h,{\varvec{w}}^h)|}{\vert {{\varvec{w}}^h}\vert _{H^1({\Omega }_{\mathrm{}})}} \Bigg ) \Bigg ), \end{aligned} \end{aligned}$$
(46)
where \({\upbeta }\in \mathbb {R}_{+}\) is a constant independent of the discretization. The polynomial projections (42), (44), and (45) influence the consistency errors (i.e. the two suprema of the upper bound). As shown in [49, Corollary 12], the approximate bilinear form \(\mathrm{W}_{\mathrm{int}}^{{\pi }}\) satisfies the inequality:
$$\begin{aligned} \underset{{\varvec{w}}^h\in {\varvec{\mathscr {{V}}}}^{h}}{{sup}} \left( \tfrac{|\mathrm{W}_{\mathrm{int}}({\varvec{v}}^{h}, {\varvec{w}}^h) - \mathrm{W}_{\mathrm{int}}^{{\pi }}({\varvec{v}}^{h},{\varvec{w}}^h)|}{\vert {{\varvec{w}}^h}\vert _{H^1({\Omega }_{\mathrm{}})}} \right) \le {\upbeta }_2 \vert {{\varvec{v}}^{h}}\vert _{H^1({\Omega }_{\mathrm{}})}\,{\upvarepsilon }_{{\uppi }}, \end{aligned}$$
(47)
where \({\upvarepsilon }_{{\uppi }}\) is the projection error given by:
$$\begin{aligned} {\upvarepsilon }_{{\uppi }}= \underset{t=1,m_{\mathrm{M}}}{\text {max}} \Big \{ \underset{{\upxi }\in {\Omega }_{\mathrm{T}}}{\text {max}} ~ \underset{ijkl=1,d}{\text {max}} ~|{\varvec{{\bar{A}}}}_{ij\,kl}^{H(t)}({\upxi }) - \Pi ^H {\varvec{{\bar{A}}}}_{ij\,kl}^{H(t)}({\upxi })| \Big \}. \end{aligned}$$
(48)
The constant \({\upbeta }_2\in \mathbb {R}_{+}\) takes into account the equivalence between the seminorms on the parameter domain and on the physical space [8, 49], and the inequality (47) is simply a Young’s inequality.
From Equation (47), it can be inferred that the consistency error is kept under control during the projection. Indeed, we can evaluate the projection error in Equation (47) since we know the quantities we are projecting. This can be done by relying on a simple sampling-based approach where the differences between the exact macro-quantities and their projections are evaluated at each sample point. More importantly, this is done a priori to the assembly of the finite element operators. Consequently, a simple approach for choosing the projection degree \(p_{\pi }\) consists in prescribing a given tolerance to the projection error (48) and an initial projection space. The projection degree is then increased recursively while the projection error gets below the given tolerance. A convenient choice for the initial guess is to set the projection degree equal to the spline degree of the macro-mappings. Regarding the prescribed tolerance, it might not be necessary to set it too low for two principal reasons. First, the discretization error might be predominant and reducing the consistency error below the discretization error does not improve the overall approximation error (see again Strang’s first lemma (46)). Second, the computational cost for building the finite element operators is directly linked to the chosen projection space. An inappropriately too low tolerance on the projection error will lead to (possibly large) extra cost during the assembly. The numerical studies in Sect. 3.3 enable to further understand the link between the projection error, the overall solution error, and the assembly cost.

3.2.3 Forming lookup tables at the fine scale

Let us now elaborate a fast-assembly strategy of the stiffness matrix and of the load vector based on the strategy previously illustrated in Fig. 4. At the current step, we know what are the macro-fields to project. However, we still need to define and build the so-called lookup tables as done for the case of the volume. These lookup tables are the same for every microstructural entity under the condition that the finite dimensional subspaces discretize the solution identically at the sub-domain level. The choice associated to Equation (13) fulfills this requirement.
The overall operators are obtained by assembling sub-operators associated to the sub-domains. By invoking the expression of the internal virtual work as given by Equation (36), the contribution to the local stiffness matrices associated to the test basis function \(R_{A}^{h}\) and trial basis function \(R_{B}^{h}\) reads as:
$$\begin{aligned} {\varvec{K}}_{AB}^{(t)} = \sum _{i=1}^d\sum _{j=1}^d \left. \int _{{\Omega }_{\mathrm{T}}} R_{A}^{h}{}_{\prime {{\upxi }_{i}}} R_{B}^{h}{}_{\prime {{\upxi }_{j}}} \left. {\varvec{{\bar{A}}}}_{ij}^{H(t)}\right. \mathrm{d}\xi \right. . \end{aligned}$$
(49)
By introducing the spline approximation of the macro-fields as provided in Equation (42) into this last expression, we get:
$$\begin{aligned} {\varvec{K}}_{AB}^{{\pi }(t)} = \sum _{i=1}^d\sum _{j=1}^d\sum _{C=1}^{n_{{\uppi }}} \big \langle {\varvec{{\bar{A}}}}_{ij}^{H(t)}\big \rangle _{C} \underbrace{ \int _{{\Omega }_{\mathrm{T}}} R_{A}^{h}{}_{\prime {{\upxi }_{i}}} R_{B}^{h}{}_{\prime {{\upxi }_{j}}} N_{C}^H \mathrm{d}\xi } _{Independent of \mathscr {M}^{(t)}}. \end{aligned}$$
(50)
The remaining integrals are independent of the macro-geometry and of the material parameters. The integrands only depend on the geometric model of the reference microstructure and the macro-projection space. Therefore, they can be precomputed and stored in so-called lookup tables:
$$\begin{aligned} {\varvec{\mathfrak {{K}}}}_{\mathrm{r}}^h\in \mathbb {R}^{n_{\mathrm{T}}\times n_{\mathrm{T}}\times n_{{\uppi }}\times {}d\times {}d}, \end{aligned}$$
(51)
which takes the form of elementary stiffness matrices associated to the micro-geometry only, times some macro-basis polynomial functions associated to the projection space. The detailed expressions of the components are:
$$\begin{aligned}&{\varvec{\mathfrak {{K}}}}_{\mathrm{r}}^h(A,B,C,i,j) = \int _{{\Omega }_{\mathrm{T}}} \bigg \{\dots \nonumber \\&\frac{{d}}{{d}{\upxi }_{i}}\big ( R_{A}^{h}\circ {}\mathscr {T}^{\mathrm{r}}{}{}^{-1} \big )({\upxi }) \frac{{d}}{{d}{\upxi }_{j}}\big ( R_{B}^{h}\circ {}\mathscr {T}^{\mathrm{r}}{}{}^{-1} \big )({\upxi }) N_{C}^H({\upxi })\bigg \}\mathrm{d}\xi . \end{aligned}$$
(52)
These integrals cannot be computed analytically, in general, due to the contribution of the geometric map describing the reference micro-structure. Instead, they are evaluated via Gauss quadrature.
An identical procedure is followed in order to build the load vector. The contribution to the local load vector associated to the test basis function \(R_{A}^{h}\) is approximated by:
$$\begin{aligned} \begin{aligned} {\varvec{f}}_{A}^{{\pi }(t)}&= \sum _{C=1}^{n_{{\uppi }}} \big \langle {\bar{{\varvec{b}}}}^{H}{}^{(t)}\big \rangle _{C} \underbrace{ \int _{{\Omega }_{\mathrm{T}}} R_{A}^{h} N_{C}^H \mathrm{d}\xi }_{Independent of \mathscr {M}^{(t)}}\\&+ \sum _{F=1}^{2d} \sum _{C\in \mathrm{I}_{F}} \big \langle {\bar{{\varvec{t}}}}_{F}^{H}{}^{(t)}\big \rangle _{C} \underbrace{ \int _{{\Gamma }_{\mathrm{T}}\cap {\bar{\Gamma }}_{F}^{H}} R_{A}^{h} N_{C}^H \mathrm{d}\xi }_{Independent of \mathscr {M}^{(t)}} . \end{aligned} \end{aligned}$$
(53)
Again, we end with integrals that are independent of the macro-geometry and of the boundary conditions (Neumann type). These integrals are concatenated into a lookup table defined as:
$$\begin{aligned} {\varvec{\mathfrak {{F}}}}_{\mathrm{r}}^h\in \mathbb {R}^{n_{\mathrm{T}}\times n_{{\uppi }}\times {}(1+2d)}, \end{aligned}$$
(54)
where the detailed expressions of the components are:
$$\begin{aligned} \begin{aligned} {\varvec{\mathfrak {{F}}}}_{\mathrm{r}}^h(A,C,0)&= \int _{{\Omega }_{\mathrm{T}}} \big ( R_{A}^{h}\circ {}\mathscr {T}^{\mathrm{r}}{}{}^{-1} \big )({\upxi })N_{C}^H({\upxi }) \mathrm{d}\xi , \\ {\varvec{\mathfrak {{F}}}}_{\mathrm{r}}^h(A,C,F)&= \int _{{\Gamma }_{\mathrm{T}}\cap {\bar{\Gamma }}_{F}^{H}} \big ( R_{A}^{h}\circ {}\mathscr {T}^{\mathrm{r}}{}{}^{-1} \big )({\upxi })N_{C}^H({\upxi }) \,\,\mathrm{d}\Gamma _\mathrm{T}, \end{aligned} \end{aligned}$$
(55)
with \({F}\in \llbracket {1,2d}\rrbracket \). Finally, as for the lookup table used for the construction of the stiffness matrix, the lookup table for the load vector is considered as precomputed and stored in a database.
Implementation aspects The lookup tables should not be built in practice as dense tensors since a lot of the components may be zero. More specifically, the non-zero components that need to be stored in the lookup table \({\varvec{\mathfrak {{K}}}}_{\mathrm{r}}^h\) can be identified by the following set of basis function couples:
$$\begin{aligned}&I_{\mathrm{coo}}= \big \{ (A,B)\in \llbracket {1,n_{\mathrm{T}}}\rrbracket ^2 ~|\nonumber \\&A\le {}B, \text {supp}R_{A}^{h}\cap \text {supp}R_{B}^{h} \ne \emptyset \big \}. \end{aligned}$$
(56)
The condition of selecting index A lower than index B is a way of taking advantage of the symmetry of the stiffness matrix to be built: Only the upper part is constructed (at least in a first step). Consequently, the lookup-tables are viewed as matrix objects:
$$\begin{aligned} \mathrm{mat}\big [\left. {{\varvec{\mathfrak {{K}}}}_{\mathrm{r}}^h}\right. \big ] \in \mathbb {R}^{n_{nz}\times n_{{\uppi }}{d^2}}, \quad \text {with}\quad n_{nz}={\mathrm{card}}I_{\mathrm{coo}}. \end{aligned}$$
(57)
Finally, all the non-zero components of the full stiffness matrix can be computed by performing a single matrix-matrix product:
$$\begin{aligned} \underbrace{{{\mathrm{nzdata}}}\big [\left. {{\varvec{K}}}\right. \big ]}_{(n_{nz}\times {d^2m_{\mathrm{M}}})} = \underbrace{\mathrm{mat}\big [\left. {{\varvec{\mathfrak {{K}}}}_{\mathrm{r}}^h}\right. \big ]}_{(n_{nz}\times n_{{\uppi }}{d^2})} \cdot \underbrace{\mathrm{mat}\big [\left. {\big \langle {\varvec{{\bar{A}}}}^{H}\big \rangle }\right. \big ]}_{(n_{{\uppi }}{d^2}\times {d^2m_{\mathrm{M}}})}, \end{aligned}$$
(58)
where all the projection coefficients have been concatenated into a rectangular matrix. Once the non-zero values of the stiffness matrix in hand, one can employ any scientific library that handles sparse matrix data structures to generate the overall matrix object.

3.2.4 The multiscale fast assembling strategy

Finally, let us summarize the main steps involved during the fast multi-scale assembly strategy:
1.
Perform the L2-projection of the macro-fields (Equations (42), (44), and (45)),
 
2.
Load the lookup tables associated to the reference micro-structure (Equations (52) and (55)),
 
3.
Compute the non-zero values of the stiffness matrix and of the load vector (Equation (58)),
 
4.
Build the overall finite element operators using a sparse data structure.
 
Computational complexity The projections occur at the macro-scale only, and therefore do not form the most expensive step. Step 3 is largely the most demanding step as it involves a matrix-matrix product of quite large matrices, which leads to estimate the computational complexity of the approach as \(\mathcal {O}(\,m_{\mathrm{M}}n_{nz}p_{\pi }^{d}\,)\). Under the consideration that the spline defining the reference microstructures has maximal continuity and that \(n_{\mathrm{T}}\gg p_{\mathrm{T}}\), the number of non-zeros values \(n_{nz}\) can be approximated by \(n_{nz}\approx n_{\mathrm{T}}(p_{\mathrm{T}}+1)^d\), which leads to estimate the complexity of the assembly procedure as \(\mathcal {O}(\,m_{\mathrm{M}}n_{\mathrm{T}}p_{\mathrm{T}}^{d} p_{\pi }^{d}\,)\).
For comparison, let us mention the computational complexity of the very standard approach based on element loop and Gauss quadrature which reads in our context as \(\mathcal {O}(\,m_{\mathrm{M}}m_{{T}}p_{\mathrm{T}}^{3d}\,)\). Therefore, we can expect major speed-up when employing the developed approach in comparison to this standard assembly procedure in the case of high-order spline. Furthermore, the developed approach behaves asymptotically w.r.t. the solution degree \(p_{\mathrm{T}}\) as isogeometric collocation methods or low-rank assembling approaches, i.e. \(\mathcal {O}(\,p_{\mathrm{T}}^{d}\,)\), which is the theoretical minimum [36].
Despite its appealing performance for high degree, the developed strategy is meant to perform well for low degree too. Since the number of floating point operations associated to the matrix-matrix product is quite limited, the overall cost per DOF is found to be rather small. The following numerical experiments are conducted to confirm these predictions. Finally, more details on the computational complexity of existing assembling techniques can be found in [36, 58].

3.3 Numerical examples

In order to analyze the performance of the presented multiscale assembly approach, we compute several quantities along the numerical examples. We compare the results obtained with this new fast assembly strategy against the very standard procedure based on element loops with full Gauss quadrature [36]. More precisely, we define:
  • the relative projection error:
    $$\begin{aligned} E_{\mathrm{proj}} = \underset{t=1,m_{\mathrm{M}}}{\text {max}} \underset{{\Omega }_{\mathrm{T}}}{\text {max}} \Vert {\varvec{{\bar{A}}}}_{}^{H(t)}-\Pi ^H {\varvec{{\bar{A}}}}_{}^{H(t)}\Vert _F\big / \Vert {\varvec{{\bar{A}}}}_{}^{H(t)}\Vert _F \end{aligned}$$
    (59)
  • the relative solution errors (displacement and stress fields):
    $$\begin{aligned} E_{\mathrm{disp}}&= {\vert {{\varvec{u}}}^{\bullet }-{{\varvec{u}}}^{{\uppi }}\vert _{H^1({\Omega }_{\mathrm{}})}}\big /{\vert {{\varvec{u}}}^{\bullet }\vert _{H^1({\Omega }_{\mathrm{}})}}, \end{aligned}$$
    (60)
    $$\begin{aligned} E_{\mathrm{stress}}&= {\Vert {{\varvec{\sigma }}}^{\bullet }-{{\varvec{\sigma }}}^{{\uppi }}\Vert _{L^2({\Omega }_{\mathrm{}})}}\big /{\Vert {{\varvec{\sigma }}}^{\bullet }\Vert _{L^2({\Omega }_{\mathrm{}})}}. \end{aligned}$$
    (61)
  • the stiffness matrix and load vector differences:
    $$\begin{aligned} E_{\mathrm{mat}}&= {\Vert {{\varvec{K}}}^{\bullet }-{{\varvec{K}}}^{{\uppi }}\Vert _{F}}\big /{\Vert {{\varvec{K}}}^{\bullet }\Vert _{F}}, \end{aligned}$$
    (62)
    $$\begin{aligned} E_{\mathrm{vec}}&= {\Vert {{\varvec{f}}}^{\bullet }-{{\varvec{f}}}^{{\uppi }}\Vert _{F}}\big /{\Vert {{\varvec{f}}}^{\bullet }\Vert _{F}}. \end{aligned}$$
    (63)
  • the speed-up that evaluates the computational savings:
    $$\begin{aligned} T_{\mathrm{cost}}= \text {time}\left( {{\varvec{K}}}^{\bullet },{{\varvec{f}}}^{\bullet }\right) \big /\text {time}\left( {{\varvec{K}}}^{{\uppi }},{{\varvec{f}}}^{{\uppi }}\right) . \end{aligned}$$
    (64)
    Note: the provided assembly times in what follows measure only the time spent to compute the non-zero components and not the formation of the full matrix. Regarding the new multiscale procedure, we consider the lookup tables as pre-built. All the numerical experiments were computed on a 1.90GHz i7-8665U (Intel Core) processor with 32 GB RAM (serial computing). More importantly, the code that enables both standard and new assembly procedures has been developed by one single person into the same coding environment.
The superscripts \({(\cdot )}^{\bullet }\) and \({(\cdot )}^{{\uppi }}\) indicate that the underlying quantity is obtained with the standard and the fast procedures, respectively. Considering the solutions, the results obtained with the standard procedure are taken as the reference solutions: We aim at obtaining results similar to those given by the standard procedure. Considering the computational time, we expect that the fast procedure reduces the time needed to assemble the linear systems (speed-up greater than one).

3.3.1 Influence of the projection error

Following the discussion associated to Equation (47), we know that there is a direct link between the projection error and the consistency error. When comparing the standard procedure based on Gauss quadrature and the new multiscale procedure, the projection error is directly linked to the solution errors in the same manner (the first term representing the discretization error vanishes when using \({\varvec{u}}={{\varvec{u}}}^{\bullet }\) in Strang’s lemma (46)). This theoretical behavior is observed numerically as shown in Fig. 7. The reduction of the projection error implies the decrease of all the computed errors. It can also be seen that the solution obtained with the fast operators is very close to the one obtained with the standard operators. Even for a projection degree equal to zero (\(p_\pi =0\)), the displacement field \({{\varvec{u}}}^{{\uppi }}\) and the stress field \({{\varvec{\sigma }}}^{{\uppi }}\) are quasi indistinguishable from the reference fields obtained via the standard procedure (with Gauss quadrature), see Fig. 7 again. For higher projection degree, the differences between the solutions are not clearly visible, as reflected by the low relative errors.
It is however not necessary to select a too high projection degree: Recall that the reference numerical solution (in our case \({{\varvec{u}}}^{\bullet }\)) might be far from the exact solution due to the discretization error. Finally, a practical strategy for selecting the projection degree \(p_\pi \) consists in setting a maximal tolerance on the projection error. The selected projection degree is a solution of:
$$\begin{aligned} \text {Find}\quad p_\pi \in \mathbb {N}\quad \text {such that}\quad E_{\mathrm{proj}}(p_\pi )\le \mathrm{tol}. \end{aligned}$$
(65)
In what follows, we fix the tolerance on the projection error as \(\mathrm{tol}=10^{-3}\). With such a choice, the required projection degree is \(p_\pi =4\) for the microstrucure tackled in Fig. 7, which leads to numerical solution errors \(E_{\mathrm{disp}}=2\cdot {}10^{-5}\) and \(E_{\mathrm{stress}}=8\cdot {}10^{-5}\).

3.3.2 Influence of the reference microstructrure

Figure 8 summarizes the study of the influence of the reference microstructure on the computational time required to form the operators. Here, the macro-geometry is the same for each case and we vary the reference tile. Thus, the projection space is the same for each case (setting the tolerance on the projection error to \(10^{-3}\) leads to \(p_\pi =4\) again). Ten different reference tiles with different spline degree \(p_{\mathrm{T}}\), mesh density \(n_{\mathrm{T}}\), or shape \({\Omega }_{\mathrm{T}}\) are successively used. More precisely, we report in Fig. 8 the computational time to build the operators with either the standard procedure based on Gauss quadrature and the presented fast procedure based on projection and lookup tables. We also give the resulting speed-up and some information regarding the underlying discretization (the spline degree \(p_{\mathrm{T}}\), the number of control points \(n_{\mathrm{T}}\), and the number of non-zero components in the full stiffness matrix).
By comparing the cases marked by the identifiers G1G6, and G10, or by comparing the cases marked by the identifiers G2 and G8, one can observe the influence of the solution degree \(p_{\mathrm{T}}\). These reference tiles are identical in their shape and their number of element but are discretized with different spline degrees (quadratic, cubic, or quartic). It is not surprising that the speed-up increases with the solution degree, as the presented approach originates from the assembly procedure of Mantzaflaris and Jüttler [49] which has great benefits for high degree parametrization [49, 58]. It is also known that the standard procedure based on element loop and Gauss quadrature is too expensive when it comes to high degree, especially for 3D problems (it is rarely employed for quartic spline degree and above). These observations are in perfect agreement with the theoretical computational complexity of these two procedures (remember Sect. 3.2.4). As a conclusion, the use of lookup tables with precomputed integrals gives access to high spline degree. Indeed, the assembly time for the case G10 (quartic solution space) is lower than 3 seconds with the fast approach, whereas it takes more than 3 minutes to assemble the operators with the standard procedure.
By comparing the cases marked by the identifiers G1G3, and G7, one can observe the influence of the mesh density \(n_{\mathrm{T}}\). The degree of the solution space is the same in these three cases (quadratic). The computational time, with either the standard or the fast procedures, increases with the refinement of the solution space which was also expected from the theoretical computational complexity (see Sect. 3.2.4). The increase for the fast procedure is linear with respect to the number of basis functions \(n_{\mathrm{T}}\) which is in agreement with the computational complexity. The fast procedure offers the possibility to handle fine mesh sizes in an acceptable amount of time: The computation of the non-zero components of the stiffness matrix is reduced from 3 minutes with the standard procedure to 6 seconds with the presented multiscale approach.
Finally, the complexity of the shape of the reference tiles does not play a major role on the computational time. The cases marked by the identifiers G5 and G6 require the same times to form the matrices.
Table 1
Quantitative results associated to the problems depicted in Figs. 10 and 11
 
Projection
 
Numerical solutions
 
Assembly time
 
\(E_{\mathrm{proj}}\)
\(p_\pi \)
 
\(E_{\mathrm{disp}}\)
\(E_{\mathrm{stress}}\)
\(E_{\mathrm{mat}}\)
\(E_{\mathrm{vec}}\)
 
Gauss
Fast
\(T_{\mathrm{cost}}\)
Torus 1
\(7.2\times {10^{-4}}\)
4, 4, 4
 
\(8.1\times {10^{-5}}\)
\(9.3\times {10^{-5}}\)
\(5.8\times {10^{-5}}\)
\(4.3\times {10^{-6}}\)
 
5.3min
4.4s
71
Torus 2
\(7.2\times {10^{-4}}\)
4, 4, 4
 
\(2.0\times {10^{-4}}\)
\(1.6\times {10^{-4}}\)
\(8.1\times {10^{-5}}\)
\(1.5\times {10^{-4}}\)
 
4.0min
4.7s
51
Twist 1
\(1.9\times {10^{-4}}\)
3, 3, 4
 
\(3.9\times {10^{-3}}\)
\(3.6\times {10^{-3}}\)
\(2.5\times {10^{-5}}\)
\(6.2\times {10^{-6}}\)
 
1.1min
3.2s
36
Twist 2
\(1.9\times {10^{-4}}\)
3, 3, 4
 
\(6.5\times {10^{-3}}\)
\(3.9\times {10^{-3}}\)
\(2.6\times {10^{-5}}\)
\(8.5\times {10^{-4}}\)
 
11.min
6.1s
107

3.3.3 Influence of the density of the macro-geometry

Figure 9 summarizes the study of the influence of the macro-mesh density, i.e. the number of tiles. In this study, the reference tile is fixed and taken as the case G1 depicted in Fig. 8. The macro-geometry is successively refined such that the number of tiles is increased by one in every direction at each step. If the projection degree is fixed then the speed-up \(T_{\mathrm{cost}}\) rapidly reaches a plateau (for \(m_{\mathrm{M}}\ge {30}\)). Indeed, the computational cost increases linearly with respect to \(m_{\mathrm{M}}\) for both formation procedures which agrees with the theoretical computational complexities (see Sect. 3.2.4). For instance, the speed-up is about \(T_{\mathrm{cost}}{}=11\,(\pm {1})\) when the projection degree is \(p_\pi =4\) when the number of tiles is \(m_{\mathrm{M}}\ge 30\) (see again Fig. 9). However, the projection error for a given projection degree decreases with the refinement of the macro-geometry as shown in Fig. 9. When adopting the strategy defined by Equation (65), the required projection degree tends to decrease while increasing the number of tiles. For instance, the required projection degree is \(p_\pi =4\) when the number of tiles is \(m_{\mathrm{M}}=45\), whereas \(p_\pi =2\) when \(m_{\mathrm{M}}=1573\). Consequently, the computational time for assembling the operators is kept low when following the adaptive selection of the projection degree. One can note that this observation follows well the theoretical computational complexity: decreasing the projection degree \(p_{\mathrm{\pi }}\) reduces the number of floating point operations to be done. Finally, all the cases, from \(m_{\mathrm{M}}=3\) to \(m_{\mathrm{M}}=2016\), require less than 4 seconds to compute the non-zero components of the operators. Interestingly, the maximal time which is 3.5 seconds concerns the case \(m_{\mathrm{M}}=1200\) for which cubic projection degree is required. The finest case, i.e. \(m_{\mathrm{M}}=2016\), requires less than 3 seconds to generate the non-zero data. The speed-up is about \(T_{\mathrm{cost}}=45\) for this last case, which attests the drastic reduction of the computational time in comparison with the standard procedure where a bit more than 2 minutes are needed to form the operators.

3.3.4 Influence of the complexity of the macro-geometry

Finally, Figs. 10 and 11 present additionally test cases where the macro-geometries are more challenging. The macro-geometry in Fig. 10 consists in a quarter torus with a cross-section defined by the combination of three circles. This geometry is parameterized exactly with a quadratic NURBS. This macro-geometry is discretized into 63 elements. Using the tolerance on the projection error as \(\mathrm{tol}=10^{-3}\) leads to select the projection degree as \(p_\pi =4\) (which implies \(E_{\mathrm{proj}}=7.2\cdot {10^{-4}}\le \mathrm{tol}\)). Figure 10 also presents the mechanical settings of the problem. Two reference microstructures are considered here: a straight cross tile similar to the case G3 in Fig. 8 but discretized with cubic splines, and the reference microstructure with identifier G8 in Fig. 8. Figure 10 presents several results from the structural analyses for both microstructured-geometries. The depicted results are obtained with the operators built with the presented multiscale procedure but very similar results are obtained with the standard operators. To highlight the similarities between these numerical solutions, we provide in Table 1 the associated errors. This table also provides the computational time required to form the operators. It can be seen that the new procedure leads to the same results than the standard procedure within a much smaller amount of time.
The macro-geometry in Fig. 11 consists in a helix volume (twisted extrusion of a square). Interestingly, the complexity of the geometry concerns the direction of the extrusion only. The squared cross-section can be represented with linear polynomials whereas higher degree is required to represent (approximately) the twist. Here, we employ a NURBS with degree one in the two cross-section directions and degree two in the direction of the extrusion. In order to take into account these geometrical differences during the assembly, it seems natural to select a different projection degree in the cross-section directions than in the direction of the extrusion. This can be done by initializing the projection degrees by the ones of the underlying macro-geometry. Then, the projection space is enriched (or coarsened) until the projection error is below the chosen tolerance (strategy described in Equation (65)). For the macro-geometry of the twist as given in Fig. 11, it leads to a projection space with degrees \(p_\pi =3,3,4\). Figure 11 also describes the mechanical problem: the microstructured-geometries are subjected to their own weights. We use the same projection space for approximating the body forces (recall Equation (40)) than the one used for the stiffness matrix. Again, two reference microstructures are considered here: the reference microstructures with identifier G4 and G9 in Fig. 8. The observations are the same than for the previous example of the torus-like microstructured geometry. The new multiscale approach requires much less computational time for the formation of the finite element operators than the standard procedure, and it leads to (visually) indistinguishable numerical results as evidenced by the results in table 1. The solution errors are a bit higher than for the previous examples but are still acceptably low.
Finally, let us point out that the new procedure is successful due to the smoothness of the fields to be projected. Even for complex macro-geometries like the torus or the twist, relatively low projection degrees were found appropriate to get satisfying numerical results. Surely, this is no longer valid in case of geometrical singularities. When a macro-element is degenerated, one would preferably used more standard procedure to form the local operators there.

4 Extension to other quantities of interest

The presented fast assembling strategy can be extended to the computation of other quantities of interest than the finite element operators. We show briefly in this section how the developed multi-scale approach enables to perform, for instance, sensitivity analyses commonly involved in design optimization. We also discuss the construction of a matrix-free solver for the resolution.

4.1 Sensitivity analysis

The volume and the compliance are often involved in design optimization problems. It is possible to perform the sensitivity analysis of these response functions with respect to the macro-geometry which follows the multiscale philosophy presented in this work.

4.1.1 Geometric quantities

Again, the case of the volume enables to highlight the methodology. The goal is to evaluate the influence of the macro-geometry on the volume. More specifically, we seek to compute the gradient of the volume with respect to the control point coordinates associated to the macro-mapping. Then, this gradient can be employed in gradient-based optimization algorithm to solve design optimization problems.
After the split of the scale (recall Fig. 4), all the geometric information associated to the macro-geometry is concatenated into the projection coefficients. Thus, the differentiation of the volume w.r.t. the macro-geometry concerns these projection coefficients principally. All the other quantities involved in the expression of the volume remain untouched (especially the lookup table) and can be concatenated into what can be seen as an adjoint field. Mathematically, the mentioned derivatives w.r.t. a control point \({\varvec{m}}\) are expressed as:
$$\begin{aligned} \frac{{d}\mathrm{V}^{{\uppi }(t)}}{{d}{\varvec{m}}} = \int _{[0,1]^{{\bar{d}}}} v^{\mathrm{r}}({\upxi })\, \frac{{d}}{{d}{\varvec{m}}}|\mathrm{det}\,{J_{\mathscr {M}^{(t)}}}|({\upxi }) \,{\hbox {d}{\mathrm{{\upxi }}}}\,, \end{aligned}$$
(66)
where \(v^{\mathrm{r}}\) denotes the adjoint field, that lives in the projection space (21) and encapsulates all the information regarding the micro-structure through the Bezier-coefficients:
$$\begin{aligned} v^{\mathrm{r}}({\upxi }) = \sum _{C=1}^{n_{{\uppi }}} N_{C}^H({\upxi }) \big \langle {{\varvec{\mathfrak {{t}}}}_{{\uppi }}^{h}}{}\big \rangle _C. \end{aligned}$$
(67)
Here, the coefficients are basically the components of the lookup table where the inverse of the projection matrix was included (see Equation (26)). Interestingly, when taking \(p_\pi =0\), the adjoint field is constant and equal to the volume fraction filled by the reference microstructure.
Except this adjoint field, the differentiation of the Jacobian determinant w.r.t. the control point coordinates in Equation (66) is a standard mathematical operation found also in the classical isogeometric shape optimization framework, see for example [38] for the calculation details. Finally, the computational cost of the gradient as given by Equation (66) is almost the same than computing the gradient associated to the macro-geometry without the microstructure. The speed-up is therefore important (similar to the case of the volume itself) in comparison with the standard computation based on full quadrature rule occurring at the micro-scale. Figure 12 gives the results of the sensitivity analysis of the volume w.r.t. the control point of the macro-geometry for the same microstructured geometry than the one already studied in Sect. 3.1.

4.1.2 Compliance

The compliance characterizes the overall stiffness of the structure and how it deforms under the prescribed loads. In design optimization, this quantity is often used as the objective function to be minimized, see for example [60]. It is basically the deformation energy and can be expressed as:
$$\begin{aligned} \mathrm{C}= \frac{1}{2}\mathrm{W}_{\mathrm{ext}}. \end{aligned}$$
(68)
Then, the derivative of the local compliance w.r.t. the control point coordinates associated to the macro-geometry can be expressed as:
$$\begin{aligned} \frac{{d}\mathrm{C}^{{\uppi }(t)}}{{d}{\varvec{m}}} = \frac{{\partial }\mathrm{W}_{\mathrm{ext}}^{{\uppi }(t)}}{{\partial }{\varvec{m}}} + \frac{1}{2}\frac{{\partial }\mathrm{W}_{\mathrm{int}}^{{\uppi }(t)}}{{\partial }{\varvec{m}}}. \end{aligned}$$
(69)
The remaining derivatives take the same form than the ones introduced for the case of the volume, i.e. Equation (66). They involve some adjoint fields and the derivatives of the macro-fields involved in the formulation of the virtual works (i.e. Equations (37), (40), and (41)). For instance, the differentiation of the local internal work reads as:
$$\begin{aligned} \frac{{\partial }\mathrm{W}_{\mathrm{int}}^{{\uppi }(t)}}{{\partial }{\varvec{m}}} = \int _{[0,1]^{{\bar{d}}}} \Bigg ( \sum _{ijkl=1}^{d} {\varvec{W}}_{{\pi },ijkl}^{h(t)}({\upxi })\,\frac{{d}}{{d}{\varvec{m}}} {\varvec{{\bar{A}}}}_{ij\,kl}^{H(t)}({\upxi }) \Bigg ) \,{\hbox {d}{\mathrm{{\upxi }}}}\,, \end{aligned}$$
(70)
where the corresponding adjoint quantities live in the projection space again:
$$\begin{aligned} {\varvec{W}}_{{\pi },ijkl}^{h(t)}({\upxi }) = \sum _{C=1}^{n_{{\uppi }}} N_{C}^H({\upxi }) \langle {}{\varvec{W}}_{{\pi },ijkl}^{h(t)}\rangle _{C}, \quad {\upxi }\in [0,1]^{d}. \end{aligned}$$
(71)
The associated Bezier coefficients are obtained by solving linear systems of the form:
$$\begin{aligned} \langle {}{\varvec{W}}_{{\pi },ijkl}^{h(t)}\rangle = {{\varvec{M}}_{{\uppi }}^{H}}{}^{-1}\langle {}{\varvec{W}}_{ijkl}^{h(t)}\rangle , \end{aligned}$$
(72)
where the right-hand sides involve the local state solution (13):
$$\begin{aligned} \langle {}{\varvec{W}}_{ijkl}^{h(t)}\rangle _C = \int _{{\Omega }_{\mathrm{T}}} {u_{k_{\prime {}}i}^{(t)}}\,{u_{l_{\prime {}}j}^{(t)}}\,N_{C}^H\,{\hbox {d}{\mathrm{{\upxi }}}}\,. \end{aligned}$$
(73)
These integrals are computed via the product of the lookup table already introduced for the fast assembly of the stiffness matrix and the displacement DOF. Let us mentioned that the resolution of the linear systems as given in Equation (72), can be done off-line by integrating the inverse directly into the lookup table as done for the case of the volume (recall Equation (26) and the related discussion). Finally, the derivatives of the macro-fields w.r.t. the control points in Equation (70) are standard calculation steps in structural shape optimization, see for example [38, 60] for the details. The differentiation of the external work in Equation (69) is done similarly. Furthermore, this term might be neglected if the load support is kept identical during the design optimization (which is often the case). Employing semi-analytical differentiation schemes [10] or even automatic differentiation tools [30] might good alternatives to perform these calculation steps too.
Figure 13 shows several results regarding the sensitivity analysis for the case of the compliance. Several components of the adjoint field, for two different sub-domains, are depicted. At the end, this gradient can be useful in an optimization process to improve the design of the structure.

4.2 Toward a matrix-free approach

Despite the computational time, one another important resource is the computer memory. The full matrices associated to a microstructured geometry can be large especially when the macro-geometry and/or the reference microstructure are finely discretized. The presented multiscale approach can be the starting point to design a matrix-free approach [27, 55, 61]. The main idea consists in solving the linear system (30) without assembling the full matrix in a preliminary step. To that purpose, one can employ a Krylov subspace method along with a preconditioner, where only matrix-vector multiplications are performed. Interestingly, it is possible to perform the multiplication of a vector with the system matrix with only the lookup table and the projection coefficients at hand:
$$\begin{aligned} {\varvec{K}}{\varvec{u}} = \sum _{t=1}^{m_{\mathrm{M}}} \mathrm{LinOp}{}\left( \big \langle {\varvec{{\bar{A}}}}_{}^{H(t)}\big \rangle _{},{\varvec{\mathfrak {{K}}}}_{\mathrm{r}}^h,{\varvec{u}}^{(t)}\right) . \end{aligned}$$
(74)
The linear operator \(\mathrm{LinOp}\) computes somehow the local matrices on-the-fly. However, the local matrices are never stored but only the lookup table and the projection coefficients are. For this matrix-free approach to be valid, the preconditioning step needs to follow the same philosophy. For that purpose, the use of Domain-Decomposition Methods appears to us very attractive, see for example [12, 34]. In order to push the multiscale philosophy during the resolution too, one may apply multiscale DDMs [28, 44, 68].

5 Conclusions

We developed a novel procedure for the formation of the finite element operators associated to microstructured geometries modeled via compositions of splines. The approach involves two principal ingredients: a polynomial approximation of the common factors in the integrals occurring at the macro-scale and lookup tables with precomputed integrals associated to the micro-scale. As a result, we exploited not only the multiscale nature of the problem, but also the repetitiveness of the micro-scale pattern during the formation of the operators. We observed major computational savings in comparison with the standard formation procedure based on Gauss quadrature. Even for low degree solution space, the assembly time is reduced from minutes (standard procedure) to seconds (new procedure) as revealed by the presented numerical examples. The speedup became overwhelming for high-order and/or refined splines. We believe the developed multiscale approach constitutes an interesting basis for the computational design of complex microstructured geometries. In order to highlight this point, we extended this fast procedure to sensitivity analyses commonly involved in design optimization. We also briefly described the construction of a matrix-free approach which consists a perspective of interest to set up an efficient resolution of the large linear systems to be solved.

Acknowledgements

This research was supported by the European Union Horizon 2020 research and innovation program, under grant agreement No 862025 (ADAM2), by the European Research Council through the H2020 ERC Advanced Grant 2015 No 694515 (CHANGE), and by the Swiss National Science Foundation through the project No 40B2-0_187094 (BRIDGE Discovery 2019).
Open AccessThis article is licensed under a Creative Commons Attribution 4.0 International License, which permits use, sharing, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, provide a link to the Creative Commons licence, and indicate if changes were made. The images or other third party material in this article are included in the article’s Creative Commons licence, unless indicated otherwise in a credit line to the material. If material is not included in the article’s Creative Commons licence and your intended use is not permitted by statutory regulation or exceeds the permitted use, you will need to obtain permission directly from the copyright holder. To view a copy of this licence, visit http://​creativecommons.​org/​licenses/​by/​4.​0/​.

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Anhänge

Appendix

A Macro-field in linear elasticity

We provide here several intermediary calculation steps required to identify the quantities to project during the fast-assembly via table lookup in the context of linear elasticity. The following results can also be used in standard IGA together with the methodologies developed in [49, 50, 58], for instance.

A.1 Elastostatics with curvilinear coordinates

The virtual work (32, 33) can be formulated with respect to general curvilinear coordinates. For this purpose, one can employ the formalism commonly adopted for shell formulations, as presented in Bischoff et al. [9] for instance. The following steps consider 3-dimensional problems (i.e. we fix \({\bar{d}}=d=3\)).
By pulling back the macro-mapping \(\mathscr {M}^{(t)}\), the virtual internal work is transformed as:
$$\begin{aligned} \mathrm{W}_{\mathrm{int}}^{(t)}({\varvec{u}},{\varvec{v}})&= -\int _{{\Omega }_{\mathrm{}}^{(t)}} {\varvec{\sigma }}({\varvec{u}}):{\varvec{\varepsilon }}({\varvec{v}}) \mathrm{d}\Omega , \end{aligned}$$
(75)
$$\begin{aligned}&= -\int _{{\Omega }_{\mathrm{T}}} \left( {\varvec{\sigma }}^{(t)}({\varvec{u}}):{\varvec{\varepsilon }}^{(t)}({\varvec{v}})\right) |\mathrm{det}\,{J_{\mathscr {M}^{(t)}}}| \mathrm{d}\xi . \end{aligned}$$
(76)
where the stress and strain tensors are expressed with respect to the macro-curvilinear coordinates \({\upxi }_i\) (recall the notations in Fig. 2). The strain tensors are represented by their covariant components \(\hat{{\upvarepsilon }}_{ij}\) and the stress tensors are represented by their contravariant components \(\check{{\upsigma }}_{ij}\):
$$\begin{aligned} {\varvec{\varepsilon }}^{(t)} = \hat{{\upvarepsilon }}_{ij}^{(t)}\,\check{{\varvec{g}}}_{i}^{(t)}\otimes \check{{\varvec{g}}}_{j}^{(t)}, \qquad {\varvec{\sigma }}^{(t)} = \check{{\upsigma }}_{ij}^{(t)}\,\hat{{\varvec{g}}}_{i}^{(t)}\otimes \hat{{\varvec{g}}}_{j}^{(t)}, \end{aligned}$$
(77)
where the Einstein’s summation convention applies, and \(\otimes \) defines the tensor product of two vectors. With this choice, the scalar product of the strain and stress second-order tensors (operator  :  in the internal work) reads as:
$$\begin{aligned} {\varvec{\sigma }}^{(t)}:{\varvec{\varepsilon }}^{(t)} = \sum _{i=1}^3\sum _{j=1}^3 \check{{\upsigma }}_{ij}^{(t)}\,\hat{{\upvarepsilon }}_{ij}^{(t)}. \end{aligned}$$
(78)
The covariant basis vectors \(\hat{{\varvec{g}}}_{i}\) are obtained from partial derivatives of the global mappings with respect to the macro-parameters, which are abbreviated via subscripted comma for short notation:
$$\begin{aligned} \hat{{\varvec{g}}}_{i}^{(t)} = \mathscr {M}_{\prime {{\upxi }_{i}}}^{(t)}. \end{aligned}$$
(79)
Their orthogonal counterpart, i.e. the contravariant basis vectors \(\check{{\varvec{g}}}_{i}\), can be obtained through:
$$\begin{aligned} \check{{\varvec{g}}}_{i}^{(t)} = \check{g}_{i1}^{(t)}\hat{{\varvec{g}}}_{1}^{(t)} + \check{g}_{i2}^{(t)}\hat{{\varvec{g}}}_{2}^{(t)} + \check{g}_{i3}^{(t)}\hat{{\varvec{g}}}_{3}^{(t)} \end{aligned}$$
(80)
where the contravariant metrics \(\check{g}_{ij}\) result from inverting 3-by-3 matrices formed by the covariant metrics \(\hat{g}_{ij}\):
$$\begin{aligned} \big [~\check{g}_{ij}^{(t)}~\big ] = {\big [~\hat{g}_{ij}^{(t)}~\big ]}{}^{-1}, \quad \text {where}\quad \hat{g}_{ij}^{(t)} = \hat{{\varvec{g}}}_{i}^{(t)}\cdot \hat{{\varvec{g}}}_{j}^{(t)}. \end{aligned}$$
(81)
With these notations in hand, the covariant strains components in Equation (78) are given by:
$$\begin{aligned} \hat{{\upvarepsilon }}_{ij}^{(t)}({\varvec{u}}) = \frac{1}{2} \left( {\varvec{u}}_{\prime {{\upxi }_{i}}}\cdot {}\hat{{\varvec{g}}}_{j}^{(t)} + {\varvec{u}}_{\prime {{\upxi }_{j}}}\cdot {}\hat{{\varvec{g}}}_{i}^{(t)} \right) . \end{aligned}$$
(82)
In the case of isotropic materials with an elastic behavior, the contravariant stresses components also involved in Equation (78) are given by:
$$\begin{aligned} \check{{\upsigma }}_{ij}^{(t)}({\varvec{u}}) = \sum _{k=1}^3\sum _{l=1}^3 \check{C}_{ij\,kl}^{(t)} \hat{{\upvarepsilon }}_{kl}^{(t)}({\varvec{u}}), \end{aligned}$$
(83)
where the contravariant components of the material tensor are:
$$\begin{aligned} \check{C}_{ij\,kl}^{(t)}&= \lambda \left. \check{g}_{ij}^{(t)}\check{g}_{kl}^{(t)}\right. + \mu \left( \check{g}_{ik}^{(t)}\check{g}_{jl}^{(t)} + \check{g}_{il}^{(t)}\check{g}_{jk}^{(t)} \right) , \end{aligned}$$
(84a)
$$\begin{aligned} \check{C}_{ij\,kl}^{(t)}&= \check{C}_{ji\,kl}^{(t)} = \check{C}_{ij\,lk}^{(t)} = \check{C}_{kl\,ij}^{(t)}, \end{aligned}$$
(84b)
which involve two material parameters, i.e. the so-called Lamé constants \(\lambda \) and \(\mu \). These coefficients are usually prescribed using the Young’s modulus E and the Poisson’s ratio \(\nu \) of the material.
The external virtual work also needs to be manipulated in order to apply the fast assembly strategy. Similarly to the internal work, the integrals defining the external work need to be expressed with respect to the macro-curvilinear coordinates. Performing the change of variables by pulling back the macro-mappings is quite straightforward for the case of the body forces. On the contrary, dealing with the tractions may require more attention. Two loading scenarios should be distinguished as defined in Fig. 5: the case where load support overlaps the macro-boundaries, and the case where the load support lies inside the macro-elements. This last case will not be considered in the scope of this work. Consequently, after the change of variables, the considered local external works are of the form:
$$\begin{aligned} \mathrm{W}_{\mathrm{ext}}^{(t)}\big ({\varvec{v}}\big ) = \int _{{\Omega }_{\mathrm{T}}} \left( {\varvec{v}}\cdot {\bar{{\varvec{b}}}}^{(t)}\right) \,{\hbox {d}{\mathrm{\xi }}}\, + \int _{\Gamma _{{T}}} \left( {\varvec{v}}\cdot {\bar{{\varvec{t}}}}^{(t)}\right) \mathrm{d}\Gamma _\mathrm{T}. \end{aligned}$$
(85)
where
$$\begin{aligned} {\bar{{\varvec{b}}}}^{(t)}({\upxi })&= \big ({\varvec{b}}\circ \mathscr {M}^{(t)}\big )({\upxi })\,|\mathrm{det}\,{J_{\mathscr {M}^{(t)}}}|({\upxi }), ~{\upxi }\in {\Omega }_{\mathrm{T}}, \end{aligned}$$
(86)
$$\begin{aligned} {\bar{{\varvec{t}}}}^{(t)}({\upxi })&= \big ({\varvec{t}}\circ \mathscr {M}^{(t)}\big )({\upxi })\,|\mathrm{det}\,{I_{\mathscr {M}^{(t)}}}|({\upxi }), ~{\upxi }\in {\Gamma }_{\mathrm{T}}\cap {\partial }[0,1]^3, \end{aligned}$$
(87)
and
$$\begin{aligned} \begin{aligned} \mathrm{det}\,{I_{\mathscr {M}^{(t)}}}&= \big ({\varvec{v}}_{1}^{(t)}\times {}{\varvec{v}}_{2}^{(t)}\big )\cdot {\varvec{v}}_{3}^{(t)}, \\ {\varvec{v}}_{i}^{(t)}&= {\left\{ \begin{array}{ll} {\varvec{n}}_{i}^{(t)} = \check{{\varvec{g}}}_{i}^{(t)}/|\check{{\varvec{g}}}_{i}^{(t)}| &{} {if}~{\upxi }_i \in \{0,1\}, \\ \hat{{\varvec{g}}}_{i}^{(t)} &{} {else}. \end{array}\right. } \end{aligned} \end{aligned}$$
(88)
Further information regarding continuum formulation with curvilinear coordinates can be found, for instance in Bischoff et al. [9].

Expression of the macro-fields in the internal work

Matrix formulation

In order to reveal the macro-quantities to be projected, one can use the following matrix formulation. The following steps consider 3-dimensional problems (i.e. we fix \({\bar{d}}=d=3\)). Due to the symmetries in the strains, the stresses, and the material tensors, a compact matrix representation of theses quantities is possible. By employing Voigt notation, the six distinct strains components are concatenated into a vector given by:
$$\begin{aligned} \hat{{\varvec{\varepsilon }}}^{(t)}({\varvec{u}}) = \hat{{\varvec{G}}}_{}^{(t)\top }{{\varvec{u}}}_{\prime {{\varvec{\xi }}}}{}, \end{aligned}$$
(89)
with \(\hat{{\varvec{\varepsilon }}}^{(t)}\in \mathbb {R}^6\), \(\hat{{\varvec{G}}}_{}^{(t)\top }\in \mathbb {R}^{6\times 9}\), and \({{\varvec{u}}}_{\prime {{\varvec{\xi }}}}{}\in \mathbb {R}^9\). According to Equation (82), their expressions are:
https://static-content.springer.com/image/art%3A10.1007%2Fs00466-021-02098-y/MediaObjects/466_2021_2098_Equ91_HTML.png
(90)
Key sub-blocks denoted \(\hat{{\varvec{G}}}_{i}^{(t)}\in \mathbb {R}^{3\times {}6}\) can be identified in the strains-displacement relations:
$$\begin{aligned} \hat{{\varvec{G}}}_{1}^{(t)}&= \begin{bmatrix} \hat{{\varvec{g}}}_{1}&{\varvec{0}}&{\varvec{0}}&{\varvec{0}}&{\hat{{\varvec{g}}}_{3}}&{\hat{{\varvec{g}}}_{2}} \end{bmatrix}^{(t)}, \end{aligned}$$
(91a)
$$\begin{aligned} \hat{{\varvec{G}}}_{2}^{(t)}&= \begin{bmatrix} {\varvec{0}}&\hat{{\varvec{g}}}_{2}&{\varvec{0}}&{\hat{{\varvec{g}}}_{3}}&{\varvec{0}}&{\hat{{\varvec{g}}}_{1}} \end{bmatrix}^{(t)}, \end{aligned}$$
(91b)
$$\begin{aligned} \hat{{\varvec{G}}}_{3}^{(t)}&= \begin{bmatrix} {\varvec{0}}&{\varvec{0}}&\hat{{\varvec{g}}}_{3}&{\hat{{\varvec{g}}}_{2}}&{\hat{{\varvec{g}}}_{1}}&{\varvec{0}} \end{bmatrix}^{(t)}, \end{aligned}$$
(91c)
such that:
$$\begin{aligned} \hat{{\varvec{G}}}_{}^{(t)\top } = \begin{bmatrix} \hat{{\varvec{G}}}_{1}^{(t)\top }&\hat{{\varvec{G}}}_{2}^{(t)\top }&\hat{{\varvec{G}}}_{3}^{(t)\top } \end{bmatrix}. \end{aligned}$$
(92)
Then, the strains-stresses relation (the constitutive law, already introduced in Equation (83)) reads, in the matrix form, as:
https://static-content.springer.com/image/art%3A10.1007%2Fs00466-021-02098-y/MediaObjects/466_2021_2098_Equ96_HTML.png
(93)
where the given matrix, later denoted \(\check{{\varvec{C}}}^{(t)}\), is symmetric and contains the 21 distinct components of the material tensor. By substituting Equation (89) in Equation (93), the stresses can be expressed with respect to the displacement field via:
$$\begin{aligned} \check{{\varvec{\sigma }}}^{(t)}({\varvec{u}}) = \check{{\varvec{C}}}^{(t)}\hat{{\varvec{\varepsilon }}}^{(t)}({\varvec{u}}) = \check{{\varvec{C}}}^{(t)}\hat{{\varvec{G}}}_{}^{(t)\top }{{\varvec{u}}}_{\prime {{\varvec{\xi }}}}{}\,. \end{aligned}$$
(94)
Finally, this leads us to the following expression of the internal virtual work:
$$\begin{aligned}&\mathrm{W}_{\mathrm{int}}^{(t)}({\varvec{u}},{\varvec{v}}) = -\int _{{\Omega }_{\mathrm{T}}} \big ( \check{{\varvec{\sigma }}}^{(t)}({\varvec{u}})\cdot \hat{{\varvec{\varepsilon }}}^{(t)}({\varvec{v}})\big )|\mathrm{det}\,{J_{\mathscr {M}^{(t)}}}| \mathrm{d}\xi ,\end{aligned}$$
(95)
$$\begin{aligned}&= -\int _{{\Omega }_{\mathrm{T}}} \big ( {\varvec{u}}_{\prime {{\upxi }_{}}}^{\top }\hat{{\varvec{G}}}_{}^{(t)}\check{{\varvec{C}}}_{}^{(t)}\hat{{\varvec{G}}}_{}^{(t)\top }{\varvec{v}}_{\prime {{\upxi }_{}}} \big )|\mathrm{det}\,{J_{\mathscr {M}^{(t)}}}| \mathrm{d}\xi ,\end{aligned}$$
(96)
$$\begin{aligned}&= -\sum _{i=1}^3\sum _{j=1}^3 \int _{{\Omega }_{\mathrm{T}}} \big ( {\varvec{u}}_{\prime {{\upxi }_{i}}}^{\top }\hat{{\varvec{G}}}_{i}^{(t)}\check{{\varvec{C}}}_{}^{(t)}\hat{{\varvec{G}}}_{j}^{(t)\top }{\varvec{v}}_{\prime {{\upxi }_{j}}} \big )|\mathrm{det}\,{J_{\mathscr {M}^{(t)}}}| \mathrm{d}\xi . \end{aligned}$$
(97)
This last equation enables to identify the macro-fields to project as provided in Equation (36).

A simple case for validation

For illustrative purpose (and code verification), the macro-field involved in the internal work can be explicitly expressed for simple geometries. Let us for instance consider the macro-geometry as a cube of length L; i.e. the global mapping reads:
$$\begin{aligned} \mathscr {M}({\upxi }_1,{\upxi }_2,{\upxi }_3) = ({\upxi }_1 L)\,{\varvec{x}} + ({\upxi }_2 L)\,{\varvec{y}} + ({\upxi }_3 L)\,{\varvec{z}}, \end{aligned}$$
(98)
with \({{\upxi }_1,{\upxi }_2,{\upxi }_3\in [0,1]}\). In this simple case, the macro-fields are constants, and are given by:
$$\begin{aligned} \begin{aligned} {\varvec{{\bar{A}}}}_{11}^{H}&= \begin{bmatrix} \alpha _1&{}&{} \\ &{}\alpha _2&{} \\ &{}&{}\alpha _2 \end{bmatrix},&{\varvec{{\bar{A}}}}_{22}^{H}&= \begin{bmatrix} \alpha _2&{}&{} \\ &{}\alpha _1&{} \\ &{}&{}\alpha _2 \end{bmatrix},&{\varvec{{\bar{A}}}}_{33}^{H}&= \begin{bmatrix} \alpha _2&{}&{} \\ &{}\alpha _2&{} \\ &{}&{}\alpha _1 \end{bmatrix}, \\ {\varvec{{\bar{A}}}}_{12}^{H}&= \begin{bmatrix} &{}\alpha _3&{} \\ \alpha _2&{}&{} \\ &{}&{} \end{bmatrix},&{\varvec{{\bar{A}}}}_{13}^{H}&= \begin{bmatrix} &{}&{}\alpha _3 \\ &{} &{} \\ \alpha _2&{}&{} \end{bmatrix},&{\varvec{{\bar{A}}}}_{23}^{H}&= \begin{bmatrix} &{}&{} \\ &{}&{}\alpha _3 \\ &{}\alpha _2&{} \end{bmatrix}. \end{aligned} \end{aligned}$$
(99)
where the three distinct coefficients are:
$$\begin{aligned} \alpha _1 = (\lambda +2\mu )L, \quad \alpha _2 = \mu L, \quad \alpha _3 = \lambda L. \end{aligned}$$
(100)
Literatur
22.
Zurück zum Zitat Cohen E, Riesenfeld RF, Elber G (2001) Geometric Modeling with Splines Taylor & Francis Ltd, ISBN 9781439864203 Cohen E, Riesenfeld RF, Elber G (2001) Geometric Modeling with Splines Taylor & Francis Ltd, ISBN 9781439864203
25.
Zurück zum Zitat Cottrell JA, Hughes TJR, Bazilevs Y (2009) Isogeometric Analysis. Wiley Cottrell JA, Hughes TJR, Bazilevs Y (2009) Isogeometric Analysis. Wiley
32.
Zurück zum Zitat Farin G (2001) Curves and surfaces for Cagd: a practical guide. Morgan Kaufmann Publ inc, USA Farin G (2001) Curves and surfaces for Cagd: a practical guide. Morgan Kaufmann Publ inc, USA
55.
56.
Zurück zum Zitat Moulinec H, Suquet P (1995). A FFT-Based Numerical Method for Computing the Mechanical Properties of Composites from Images of their Microstructures. In: IUTAM Symposium on Microstructure-Property Interactions in Composite Materials, pages 235–246. Springer Netherlands. https://doi.org/10.1007/978-94-011-0059-5_20 Moulinec H, Suquet P (1995). A FFT-Based Numerical Method for Computing the Mechanical Properties of Composites from Images of their Microstructures. In: IUTAM Symposium on Microstructure-Property Interactions in Composite Materials, pages 235–246. Springer Netherlands. https://​doi.​org/​10.​1007/​978-94-011-0059-5_​20
Metadaten
Titel
Fast and multiscale formation of isogeometric matrices of microstructured geometric models
verfasst von
T. Hirschler
P. Antolin
A. Buffa
Publikationsdatum
30.10.2021
Verlag
Springer Berlin Heidelberg
Erschienen in
Computational Mechanics / Ausgabe 2/2022
Print ISSN: 0178-7675
Elektronische ISSN: 1432-0924
DOI
https://doi.org/10.1007/s00466-021-02098-y

Weitere Artikel der Ausgabe 2/2022

Computational Mechanics 2/2022 Zur Ausgabe