# High-Performance Isogeometric Analysis of Lattice Structures: a Geometric hp-Multigrid Preconditioner

Clément Guillet, T. Hirschler, Pierre Jolivet, Robin Bouclier

► To cite this version:

Clément Guillet, T. Hirschler, Pierre Jolivet, Robin Bouclier. High-Performance Isogeometric Analysis of Lattice Structures: a Geometric hp-Multigrid Preconditioner. The Thirteenth International Conference on Isogeometric Analysis (IGA 2025), Sep 2025, Eindhoven, Netherlands. hal-05266625

HAL Id: hal-05266625

https://hal.science/hal-05266625v1

Submitted on 18 Sep 2025

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
High-Performance Isogeometric Analysis of Lattice
Structures: a Geometric *hp*-Multigrid Preconditioner

The Thirteenth International Conference on Isogeometric Analysis (IGA 2025)

Clément Guillet

Laboratoire d'Informatique de Paris 6 (LIP6)

collaboration with T. Hirschler (UTBM), P. Jolivet (LIP6),
and R. Bouclier (ICA)

September 17, 2025

<figure><img src="image_2.png" /></figure>
1 Context and Motivations

* Lattice Structures and Applications

* Model and IGA Discretization

* State of the Art

2 Geometric hp-Multigrid Preconditioner

* Overview of Preconditioner

* Explanation of each Component

3 Numerical Results

* 2D applications

* 3D applications

<figure><img src="image_3.png" /></figure>
* Lattice structure = unit-cell repeated as a pattern all over a macro shape

* Industrial applications through additive manufacturing, e.g. aerospace (thrust chambers)

<figure><img src="image_4.png" /></figure>

* Weight saving while maintaining stiffness of structure

* Objective: **fine-scale**, architecture scale simulations

<figure><img src="image_5.png" /><figcaption>Figure 1: Fine-scale analysis-suited model of thrust chamber lattice</figcaption></figure>

<figure><img src="image_6.png" /></figure>
■ Linear elasticity equations:

$$ \text{Find } \mathbf{u} \in \mathbf{H}_0^1(\Omega) \quad \text{s.t.} \quad \int_{\Omega} \sigma(\mathbf{u}) \cdot \varepsilon(\mathbf{v})dx - \int_{\Omega} \mathbf{f} \cdot \mathbf{v}dx \int_{\partial\Omega} \mathbf{g} \cdot \mathbf{v}d\mathbf{S}, \quad \forall \mathbf{v} \in \mathbf{H}_0^1(\Omega) \quad (1) $$

■ Lattices modeled by spline composition [Elber, 2017]:

$$ \Omega = \mathcal{B}^s \circ \mathcal{S}^k(\bar{\Omega}), \quad \forall \text{ patch } k, \forall \text{ unit-cell } s \quad (2) $$

<figure><img src="image_7.png" /></figure>

<figure><img src="image_8.png" /></figure>
* Constructed from univariate functions by tensor products

* Mappings with **high order $p$** and **high regularity $C^{p-1}$** B-spline or NURBS curves:

$$ S^k(\theta) = \sum_{i=1}^{n} \underbrace{\tilde{\varphi}_i^{p,h}(\theta)}_{\substack{\text{B-spline, control} \\ \text{NURBS functions}}} \underbrace{P_i^k}_{\text{points}} , \qquad \underbrace{B^s(\xi)}_{\text{macro-mapping}} = \sum_{i=1}^{\tilde{n}} \tilde{\varphi}_i^{\tilde{\beta},H}(\xi) Q_i^s \quad (3) $$

<figure><img src="image_9.png" /><figcaption>Figure 2: B-spline functions $M_i = \tilde{\varphi}_i^{p,h}$ and quadratic B-spline curve [Bouclier, Hirschler, 2022]</figcaption></figure>

<figure><img src="image_10.png" /></figure>
■ IGA [Hughes et al., 2005] based on **isoparametric concept** = same functions for geometric domain and PDE approximation space:

$$ V_h(\Omega_0) = \left\{ \underbrace{v \in C^0(\Omega_0)}_{C^0\text{-matching}} \middle| \forall s, \forall k, v|_{\Omega_0^{s,k}} \in \operatorname{span}\left\{ \underbrace{\tilde{\varphi}_i^{p,h}}_{\text{same than geometry}} \circ (\mathcal{F}^{s,k})^{-1} \middle| \forall i \right\} \right\} \quad (4) $$

■ Non exact isoparametric method [Hirschler et al., 2022], [Massarwi et al., 2018]:

• $\tilde{\varphi}_i^{p,h}$ = micro-mapping basis functions

• Control degree of basis functions (composition $\Rightarrow$ large degree)

• Discretize displacement fields identically for all unit-cells

■ Computation, assembly of stiffness operator $K_{p,h}$ and resolution of linear system:

$$ K_{p,h} \mathbf{u}_h = \mathbf{f}_h \quad (5) $$

<figure><img src="image_11.png" /></figure>
* Large number of unit-cells: e.g. up to 100,000

* Fine-scale, i.e. unit-cell scale, simulations (without multiscale strategy)

* High order, high regularity basis functions to describe geometry

* Large condition number of $K_{p,h}$ (exponential increase with $p$ [Gahalaut et al., 2013])

* Large number of nonzeros in $K_{p,h}$

<figure><img src="image_12.png" /></figure>
* Direct solvers [Collier et al., 2012]: memory limitations for large problems

* Iterative solvers: need preconditioner

* Domain decomposition (DD) methods as preconditioners

* Extension from FEM: FETI [Kleiss et al., 2012], BDDC [da Veiga et al., 2012], overlapping Schwarz [da Veiga et al.]

* Variants: inexact FETI-DP [Hofer et al., 2018], all-floating variant of FETI [Bosy et al. 2020], deluxe variant of BDDC [Widlund et al., 2022], one-level FETI [Hirschler et al., 2019]

* Specific to lattice structures: inexact FETI-DP with ROM [Hirschler et al., 2024] efficient and robust but extension to parallel not straightforward

* Multigrid (MG) methods as preconditioners:

* h-multigrid with as smoothers: Gauss-Seidel [Gahalaut et al., 2013], Krylov based on spectral data [Donatelli et al., 2015], mass matrix [Hofreither et al. 2017], additive subspace splitting (ASS) [Hofreither and Takacs, 2017], ASS extension with additive Schwarz [Hofer and Takacs, 2019], multiplicative or additive Schwarz [de Prenter et al. 2020], overlapping multiplicative Schwarz [de la Riva et al., 2021]

* p-multigrid with as smoothers: Gauss-Seidel [Moller et al., 2018], ILUT [Tielen et al., 2020]

* Preconditioners fail to verify all the five properties:

1 h-robustness

2 p-robustness

3 Parallel solver suited to distributed memory architectures

4 Multi(3d)-dimensional

5 Able to treat large size problems: up to 100M, 1B DOFs

<figure><img src="image_13.png" /></figure>
1 Context and Motivations

* Lattice Structures and Applications

* Model and IGA Discretization

* State of the Art

2 Geometric hp-Multigrid Preconditioner

* Overview of Preconditioner

* Explanation of each Component

3 Numerical Results

* 2D applications

* 3D applications

<figure><img src="image_14.png" /></figure>
* Geometric hp-multigrid with one level overlapping Schwarz method as smoother...

* ... or two-level domain decomposition method with algebraic multigrid on low-order discretization as coarse space

* Two levels: fine level with fine high order discretization and coarse level with coarse low order discretization

* Operations per cycle:

1. Fine-level pre-smoother

2. Restriction to coarse level

3. Coarse correction

4. Prolongation to fine-level

5. Fine-level post-smoother

<figure><img src="image_15.png" /></figure>
■ **Fine level:** high order $p$; high regularity $C^{p-1}$ IGA discretization

<figure><img src="image_16.png" /></figure>

unit-cell

<figure><img src="image_17.png" /></figure>

40 patches
2560 elements

patch basis functions

<figure><img src="image_18.png" /></figure>

$$V_{p,h}(\Omega) := \{ \mathbf{v} \in H_0^1(\Omega) \mid \mathbf{v} \in \operatorname{span}\{ \varphi_i^{p,h} \mid i = 1, \dots, n_h \} \} \quad (6)$$

■ **Coarse level:** low order $p_0$; low regularity $C^{p_0-1}$ discretization, e.g. $\mathbb{P}_1$ FEM

<figure><img src="image_19.png" /></figure>

unit-cell

<figure><img src="image_20.png" /></figure>

40 patches
40 elements

patch basis functions

<figure><img src="image_21.png" /></figure>

$$V_{p_0,H}(\Omega) := \{ \mathbf{v} \in H_0^1(\Omega) \mid \mathbf{v} \in \operatorname{span}\{ \varphi_i^{p_0,H} \mid i = 1, \dots, n_H \} \} \subset V_{p,h}(\Omega) \quad (7)$$

<figure><img src="image_22.png" /></figure>
* Matrix-free formulation at fine-level

* Large memory costs (nb. of nonzeros) to store $K_{p,h}$

<figure><img src="image_23.png" /><figcaption>Fine stiffness matrix number of nonzeros</figcaption></figure>

<figure><img src="image_24.png" /></figure>
■ Perform efficiently matrix-vector products

■ **Fast-assembly strategy** [Hirschler, Antolin, Buffa, 2022]:

• Approximation of macro-element dependent quantity on low degree polynomial space

• Pre-computation of integrals with micro-scale quantities (macro-element independent) and storage in lookuptables

■ The closer the macro geometry to linear mapping the cheaper (low degree) the polynomial space

<figure><img src="image_25.png" /><figcaption>Figure 3: Macro geometry and polynomial space degree $p$ used for accurate projection</figcaption></figure>

<figure><img src="image_26.png" /></figure>
* Smoother based on **domain decomposition** methods: overlapping Schwarz and inexact FETI-DP methods

* Standard smoother not robust with degree $p$

Number of iterations with Jacobi smoother

<figure><img src="image_27.png" /></figure>

<figure><img src="image_28.png" /></figure>
■ Overlapping restrictive additive Schwarz method:

$$M^{-1} = \sum_{\sigma=1}^{N_{\Sigma}} (\tilde{\mathbf{R}}^{[\sigma]})^T (\mathbf{K}_{p,h}^{[\sigma]})^{-1} \mathbf{R}^{[\sigma]}, \quad \text{for } N_{\Sigma} \text{ subdomains} \quad (8)$$

<figure><img src="image_29.png" /></figure>

<figure><img src="image_30.png" /></figure>
■ FETI-DP method to compute $(K_{p,h}^{[\sigma]})^{-1}$:

• Continuity constraints treated differently: primal and dual DOFs at interface

• Interface problem to solve

• In 3D, bad convergence of interface problem with only primal DOFs as corners: augmented coarse problem [Farhat, Lesoinne, Pierson, 2000] with edge average variables

$$ \begin{pmatrix} K & B^T & B^T Q \\ B & 0 & 0 \\ Q^T B & 0 & 0 \end{pmatrix} \begin{pmatrix} u \\ \lambda \\ \mu \end{pmatrix} = \begin{pmatrix} f \\ d \\ Q^T d \end{pmatrix}. $$

$\mu$: additional Lagrange multipliers, $Q$: translation rigid body modes of each edge

■ Inexact FETI-DP [Klawonn, Rheinbach, 2006]:

• Iterate on saddle-point problem with block preconditioner

■ Reduced basis (RB) [Hirschler et al., 2024] strategy to construct preconditioner:

• Principal unit-cells forming a RB: $K = \text{span}\{K_{p,h}^{(s_1)}, \dots, K_{p,h}^{(s_{n_r})}\}$

• FETI-DP operators approximated with RB:

$$ \underbrace{F_{h,pp}^{(s)}}_{\text{primal Schur complement}} \approx \sum_{k=1}^{n_r} \underbrace{\left\{ \delta^{(s)} \underbrace{F_{h,pp}^{(s_k)}}_{\text{RB coefficients}} \right\}}_{\text{overlapping subdomains}} \text{etc.} $$

<figure><img src="image_31.png" /></figure>

<figure><img src="image_32.png" /></figure>
* Based on *k-refinement* procedure:

<figure><img src="image_33.png" /></figure>

* Maintains maximum possible smoothness $C^{p-1}$

* Consistent with geometry and approximation spaces: $V_{p,h}$ constructed from $V_{p_0,h}$ with *k-refinement*

* Prolongation operator **P** from *k-refinement* and restriction **R** = $\mathbf{P}^T$

* Matrix-free formulation of **P** and **R**

* Different from [Tielen et al., 2020] based on $L^2$-projection

<figure><img src="image_34.png" /></figure>
* Algebraic multigrid (AMG) method on coarse level (PCGAMG in PETSc)

* Matrix $K_{P_0,H}$ stored explicitly in memory (MATAIJ in PETSc)

* Efficient of low-order discretization (e.g. $P_1$ FEM) with assembled matrices

* For AMG to be efficient: provide near null space

* by mapping Greville abscissae through geometric maps and solve rigid body modes at physical nodes (because non isoparametric approach)

<figure><img src="image_35.png" /></figure>
## ① Context and Motivations

* Lattice Structures and Applications

* Model and IGA Discretization

* State of the Art

## ② Geometric hp-Multigrid Preconditioner

* Overview of Preconditioner

* Explanation of each Component

## ③ Numerical Results

* 2D applications

* 3D applications

<figure><img src="image_36.png" /></figure>
* Size $|max_x - min_x| = 151$mm, $|max_y - min_y| = 61$mm,

* One quadratic NURBS patch with knot-vectors $U = \{0, 0, 0, 0.5, 0.5, 1, 1, 1\}$ and $V = \{0, 0, 0, 1, 1, 1\}$

* Dirichlet boundary conditions on left edge

* Normal surface force of $g = -1$N·mm applied to right edge

* Linear macro-mapping with 256 macro-elements (unit-cells)

* Reference unit-cell with 24 linear patches, refined to $p = 3$, $h = 1/8$

<figure><img src="image_37.png" /></figure>

<figure><img src="image_38.png" /></figure>
* Structure after deformation (scale factor ∈ [0, 3]) and Von Mises stress

<figure><img src="image_39.png" /></figure>

<figure><img src="image_40.png" /></figure>
* Robust with degree *p* and mesh refinement parameter *h*

<table><thead><tr><th rowspan="3"></th><th colspan="6"># iterations</th></tr><tr><th colspan="2">p = 1</th><th colspan="2">p = 2</th><th colspan="2">p = 4</th><th colspan="2">p = 6</th></tr><tr><th>Jacobi</th><th>RAS</th><th>Jacobi</th><th>RAS</th><th>Jacobi</th><th>RAS</th><th>Jacobi</th><th>RAS</th></tr></thead><tbody><tr><th>h<sub>1</sub></th><td>84</td><td>9</td><td>184</td><td>10</td><td>828</td><td>11</td><td>1224</td><td>12</td></tr><tr><th>h<sub>2</sub></th><td>260</td><td>10</td><td>591</td><td>11</td><td>1303</td><td>12</td><td>1744</td><td>12</td></tr><tr><th>h<sub>3</sub></th><td>969</td><td>10</td><td>1561</td><td>11</td><td>2009</td><td>12</td><td>†</td><td>13</td></tr></tbody></table>

* Robust with number of unit-cells

<table><thead><tr><th rowspan="2"># unit-cells</th><th colspan="2"># DOFs</th><th colspan="4"># iterations</th></tr><tr><th>fine</th><th>coarse</th><th>outer</th><th>saddle</th><th>interface</th><th>coarse</th></tr></thead><tbody><tr><td>32x8 (256)</td><td>0.1M</td><td>0.01M</td><td>10</td><td>2</td><td>23</td><td>8</td></tr><tr><td>128x32 (4,096)</td><td>1.8M</td><td>0.2M</td><td>10</td><td>2</td><td>24</td><td>10</td></tr><tr><td>512x128 (65,536)</td><td>30M</td><td>3.4M</td><td>11</td><td>2</td><td>24</td><td>11</td></tr></tbody></table>

* Efficient coarse space correction:

<table><thead><tr><th rowspan="2">#MPI processes</th><th colspan="2"># iterations</th></tr><tr><th>one-level RAS</th><th>multilevel</th></tr></thead><tbody><tr><td>2</td><td>19</td><td>8</td></tr><tr><td>4</td><td>400</td><td>9</td></tr><tr><td>8</td><td>†</td><td>9</td></tr><tr><td>32</td><td>†</td><td>10</td></tr><tr><td>64</td><td>†</td><td>11</td></tr></tbody></table>

<figure><img src="image_41.png" /></figure>
■ Robust with degree *p* and mesh refinement parameter *h*

<table><thead><tr><th rowspan="3"></th><th colspan="6"># iterations</th></tr><tr><th colspan="2">p = 1</th><th colspan="2">p = 2</th><th colspan="2">p = 4</th><th colspan="2">p = 6</th></tr><tr><th>Jacobi</th><th>RAS</th><th>Jacobi</th><th>RAS</th><th>Jacobi</th><th>RAS</th><th>Jacobi</th><th>RAS</th></tr></thead><tbody><tr><th>h<sub>1</sub></th><td>84</td><td>9</td><td>184</td><td>10</td><td>828</td><td>11</td><td>1224</td><td>12</td></tr><tr><th>h<sub>2</sub></th><td>260</td><td>10</td><td>591</td><td>11</td><td>1303</td><td>12</td><td>1744</td><td>12</td></tr><tr><th>h<sub>3</sub></th><td>969</td><td>10</td><td>1561</td><td>11</td><td>2009</td><td>12</td><td>†</td><td>13</td></tr></tbody></table>

■ Robust with number of unit-cells

<table><thead><tr><th rowspan="2"># unit-cells</th><th colspan="2"># DOFs</th><th colspan="4"># iterations</th></tr><tr><th>fine</th><th>coarse</th><th>outer</th><th>saddle</th><th>interface</th><th>coarse</th></tr></thead><tbody><tr><td>32x8 (256)</td><td>0.1M</td><td>0.01M</td><td>10</td><td>2</td><td>23</td><td>8</td></tr><tr><td>128x32 (4,096)</td><td>1.8M</td><td>0.2M</td><td>10</td><td>2</td><td>24</td><td>10</td></tr><tr><td>512x128 (65,536)</td><td>30M</td><td>3.4M</td><td>11</td><td>2</td><td>24</td><td>11</td></tr></tbody></table>

■ Efficient coarse space correction:

<table><thead><tr><th rowspan="2">#MPI processes</th><th colspan="2"># iterations</th></tr><tr><th>one-level RAS</th><th>multilevel</th></tr></thead><tbody><tr><td>2</td><td>19</td><td>8</td></tr><tr><td>4</td><td>400</td><td>9</td></tr><tr><td>8</td><td>†</td><td>9</td></tr><tr><td>32</td><td>†</td><td>10</td></tr><tr><td>64</td><td>†</td><td>11</td></tr></tbody></table>

<figure><img src="image_42.png" /></figure>
* Robust with degree *p* and mesh refinement parameter *h*

<table><thead><tr><th rowspan="3"></th><th colspan="6"># iterations</th></tr><tr><th colspan="2">p = 1</th><th colspan="2">p = 2</th><th colspan="2">p = 4</th><th colspan="2">p = 6</th></tr><tr><th>Jacobi</th><th>RAS</th><th>Jacobi</th><th>RAS</th><th>Jacobi</th><th>RAS</th><th>Jacobi</th><th>RAS</th></tr></thead><tbody><tr><th>h<sub>1</sub></th><td>84</td><td>9</td><td>184</td><td>10</td><td>828</td><td>11</td><td>1224</td><td>12</td></tr><tr><th>h<sub>2</sub></th><td>260</td><td>10</td><td>591</td><td>11</td><td>1303</td><td>12</td><td>1744</td><td>12</td></tr><tr><th>h<sub>3</sub></th><td>969</td><td>10</td><td>1561</td><td>11</td><td>2009</td><td>12</td><td>†</td><td>13</td></tr></tbody></table>

* Robust with number of unit-cells

<table><thead><tr><th rowspan="2"># unit-cells</th><th colspan="2"># DOFs</th><th colspan="4"># iterations</th></tr><tr><th>fine</th><th>coarse</th><th>outer</th><th>saddle</th><th>interface</th><th>coarse</th></tr></thead><tbody><tr><td>32x8 (256)</td><td>0.1M</td><td>0.01M</td><td>10</td><td>2</td><td>23</td><td>8</td></tr><tr><td>128x32 (4,096)</td><td>1.8M</td><td>0.2M</td><td>10</td><td>2</td><td>24</td><td>10</td></tr><tr><td>512x128 (65,536)</td><td>30M</td><td>3.4M</td><td>11</td><td>2</td><td>24</td><td>11</td></tr></tbody></table>

* Efficient coarse space correction:

<table><thead><tr><th rowspan="2">#MPI processes</th><th colspan="2"># iterations</th></tr><tr><th>one-level RAS</th><th>multilevel</th></tr></thead><tbody><tr><td>2</td><td>19</td><td>8</td></tr><tr><td>4</td><td>400</td><td>9</td></tr><tr><td>8</td><td>†</td><td>9</td></tr><tr><td>32</td><td>†</td><td>10</td></tr><tr><td>64</td><td>†</td><td>11</td></tr></tbody></table>

<figure><img src="image_43.png" /></figure>
* Constant ratio of DOFs per subdomain

* Straight beam under bending:

<table><thead><tr><th rowspan="2">#<br>unit-cells</th><th rowspan="2">#<br>processes</th><th># DOFs</th><th rowspan="2"># it</th><th colspan="2">time (s)</th></tr><tr><th>fine</th><th>solve</th><th>setup</th></tr></thead><tbody><tr><td>500</td><td>8</td><td>3.7M</td><td>15</td><td>224</td><td>114</td></tr><tr><td>6,912</td><td>128</td><td>51.2M</td><td>16</td><td>337</td><td>97</td></tr><tr><td>55,296</td><td>1,024</td><td>409.4M</td><td>16</td><td>345</td><td>131</td></tr><tr><td>202,612</td><td>4,096</td><td>1.5B</td><td>16</td><td>565</td><td>207</td></tr></tbody></table>

<figure><img src="image_44.png" /></figure>
- Two matching NURBS patches, each with 1230 elements

- Dirichlet boundary conditions on left surface

- Normal surface force of $g = 1\text{N} \cdot \text{mm}^2$ applied to interior of structure

- Reference unit-cell with 40 linear patches, refined to $p = 2$, $h = 1/4$

<figure><img src="image_45.png" /></figure>

<figure><img src="image_46.png" /></figure>
* Structure after deformation (scale factor $\in [0, 2]$) and Von Mises stress

<figure><img src="image_47.png" /></figure>

<figure><img src="image_48.png" /></figure>
* Geometric hp-multigrid [G., Hirschler, Jolivet, Bouclier, 2025] verifies:

1 h-robustness ✓

2 p-robustness ✓

3 Parallel solver suited to distributed memory architectures ✓

4 Multi(3d)-dimensional ✓

5 Able to treat large size problems: up to 100M, 1B DOFs ✓

* Extension to non linear hyperelasticity (Neo Hookean material) [G., Hirschler, Jolivet, Antolin, Bouclier, in preparation]:

• Reduced basis strategy for fast assembly of tangent operator and inexact FETI-DP solver

<figure><img src="image_49.png" /></figure>

<figure><img src="image_50.png" /></figure>
Thank you for your attention!

This research was supported by the French "Agence Nationale de la Recherche" under grant ANR-22-CE46-0007 (AVATAR)

<figure><img src="image_51.png" /></figure>
■ Fast-assembly strategy [Hirschler, Antolin, Buffa, 2022]:

1. Identify macro-scale quantities, i.e. different from one macro-element (unit-cell) to another:

$$ (K_{p,h}^{(s)})_{ij} = \sum_{k,l=1}^{d} \int_{\Omega_{\text{ref}}} \frac{\partial \varphi_j^{p,h}}{\partial \xi_k} \frac{\partial \varphi_l^{p,h}}{\partial \xi_l} \underbrace{A_{kl}^{(s)}}_{\substack{\text{all macro-scale} \\ \text{quantities}}} d\xi \quad (9) $$

2. Project macro-scale quantities onto low degree ($p_\pi$) polynomial space:

$$ A_{kl}^{(s)} \approx \sum_{r=1}^{n_{\pi}} \alpha_r^{(s)} \underbrace{\varphi_r^{p_{\pi},H}}_{\substack{\text{projection} \\ \text{coeffs}}} \quad (10) $$

3. Pre-compute lookuptables with all micro-scale quantities (independent of $s$):

$$ T_{ijkl} = \int_{\Omega_{\text{ref}}} \frac{\partial \varphi_i^{p,h}}{\partial \xi_k} \frac{\partial \varphi_j^{p,h}}{\partial \xi_l} \varphi_r^{p_{\pi},H} d\xi \quad (11) $$

4. Matrix-vector products $K_{p,h}^{(s)}v$ by products of lookuptables $T$ and projection coefficients $\alpha_r^{(s)}$

<figure><img src="image_52.png" /></figure>