# Toolboxmor

For the configuration of the case, and the usage in a C++ application, refer to ToolboxMor documentation. More details on the functions of the toolbox can be found in this page.

## 1. Model

We have a model defining a parameter-dependant problem to solve $a(u, v; \mu) = f(v; \mu)$, and we are foccussing on the following outputs $s_i(\mu) = L_i(\mu)^T u(\mu)$ for $i\in [|1, n_\text{outputs}|]$, where $n_\text{outputs}$ is the number of `CRBOutputs` described in the JSON file of the case.

We assume that we have the following decompositions :

\begin{align} a(u, v; \mu) &= \displaystyle\sum_{q=1}^{Q_a} \beta_A^q(\mu) a^q(u, v) \\ f(v; \mu) &= \displaystyle\sum_{p=1}^{Q_f} \beta_F^p(\mu) f^p(v)\\ l_i(v; \mu) &= \displaystyle\sum_{p=1}^{Q_{l_i}} \beta_{s_i}^p(\mu) l_i^p(v) \end{align}

In the term of matrices and vectors, it translates by :

\begin{align} A(\mu) &= \displaystyle\sum_{q=1}^{Q_a} \beta_A^q(\mu) A^q \\ F(\mu) &= \displaystyle\sum_{p=1}^{Q_f} \beta_F^p(\mu) F^p\\ L_i(\mu) &= \displaystyle\sum_{p=1}^{Q_{l_i}} \beta_{L_i}^p(\mu) L_i^p \end{align}

## 2. Get affine decomposition

Offline computation
``[Aq, Fq] = model.getAffineDecomposition()``
• `Aq` is a `list` of lenght 1, and `Aq[0]` contains the list of the matrices of the affine decomposition of the bilinear form : `Aq[0] = [` $A^1$`,…​,` $A^{Q_a}$`]`

• `Fq` is a list a lenght $1 + n_\text{outputs}$. `Fq[0]` contains the affine decomposition of the right-hand side `Fq[0] = [` $F^1$`,…​,` $F^{Q_f}$`]`, and for $i\in [|1,n_\text{outputs}|]$, `Fq[i]` contains the affine decomposition of the $i$-th output `Fq[i] = [` $L_i^1$`,…​,` $L_i^{Q_{l_i}}$`]`.

Online computation
``[betaA, betaF] = model.computeBetaQm(mu)``

where `mu` is a `ParameterSpaceElement` (see Parameters).

• `betaA` is a list of length 1, and `betaA[0]` contains the coefficients of the affine decomposition `betaA[0] = [` $\beta_A^1$`,…​,` $\beta_A^{Q_a}$ `]`.

• `betaF` is a list of length $1 + n_\text{outputs}$ contains the coefficients of the affine decompositions of $f$, and $s_i$ :

• `betaF[0][0] = [` $\beta_F^1$`,…​,` $\beta_F^{Q_f}$ `]`,

• `betaF[i][0] = [` $\beta_{L_i}^1$`,…​,` $\beta_{L_i}^{Q_{l_i}}$ `]` for $i\in [|1,n_\text{outputs}|]$.