multivariate Loewner Framework
  • GitHub

Porous irrational and multivariate example

Define the porous irrational functions

Start by defining the model through the two following irrational functions, $\alpha$ (dynamic viscous tortuosity) and $\beta$ (dynamic thermal compressibility), $$ \begin{array}{rcl} \alpha(x_1,x_2,x_3,x_4) = \alpha(\omega,\sigma_r, \phi, \overline{r}) &=& \dfrac{e^{4S_2}}{\phi}\left[1+\dfrac{a_1}{\imath\omega\overline{r}^2}e^{6S_2}+\dfrac{a_1 e^{6S_2}\sqrt{1+\dfrac{\imath\omega\overline{r}^2}{2a_1}e^{-7S_2}}-1}{\imath\omega\overline{r}^2}\right]\\ \beta(x_1,x_2,x_3,x_4) = \beta(\omega,\sigma_r, \phi, \overline{r}) &=& \phi\gamma-\phi(\gamma-1)\left[1 +\dfrac{a_2 e^{-2S_2}}{\imath\omega\overline{r}^2}+\dfrac{a_2e^{-2S_2} \sqrt{1+\dfrac{\imath\omega \overline{r}^2e^{3S_2}}{a_3}}-1}{\imath\omega \overline{r}^2}\right]^{-1} \end{array} $$ where, $S_2 =\left(\sigma_r\log_{10}2\right)^2$ and where $\omega\in[10^{-2},10^8]$ is the frequency [rad/s], $\sigma_r\in[0.6,0.99]$ is the porosity, $\phi\in[10^{-6}, 10^{-2}]$ is the pore mean size and $\overline{r}\in[0,0.5]$ is the pore standard deviation. The functions are given in Matlab form here.
%%% Bounds
w_bnd                	= [1e-2 1e8];
porosity_bnd            = [.6 .99];
pore_mean_size_bnd      = [1e-6 1e-2];
pore_standard_dev_bnd   = [0 .5];
%%% Interpolation points
ip{1,1} = logspace(log10(w_bnd(1)),log10(w_bnd(2)),50);
ip{2,1} = linspace(porosity_bnd(1),porosity_bnd(2),10);
ip{3,1} = logspace(log10(pore_mean_size_bnd(1)),log10(pore_mean_size_bnd(2)),20);
ip{4,1} = linspace(pore_standard_dev_bnd(1),pore_standard_dev_bnd(2),20);
for ii = 1:length(ip)
    p_c{ii} = ip{ii}(2:2:end);
    p_r{ii} = ip{ii}(1:2:end);
end
%%% Define the alpha and beta functions
H_alpha = @(x)      fun.dynamic_viscous_tortuosity(x(:,1), x(:,2), x(:,3), x(:,4));
H_beta  = @(x) fun.dynamic_thermal_compressibility(x(:,1), x(:,2), x(:,3), x(:,4));
%%% Data tensor
[y,x,dim]   = mlf.make_tab_vec(H_alpha,p_c,p_r);
tab_alpha   = mlf.vec2mat(y,dim);
[y,x,dim]   = mlf.make_tab_vec(H_beta,p_c,p_r);
tab_beta    = mlf.vec2mat(y,dim);
Then, the tensorized data tab_alpha and tab_beta are constructed. Here leading to two 4-D tensors, with the following complexity $$ \mathcal T_4^{\otimes} \in \mathbb C^{50\times 10\times 20 \times 20} $$

Use the mLF (Alg. 1: direct [A/G/P-V, 2025])

Now we are ready to build the approximation. The opt.method is used to select either the recursive ('rec') or full ('full') method. Here the latter is used and results in better results (still to be understood). The opt.data_min is used to use all data in the null-scapce computation (requires more CPU but may result in a least square averaging). The opt.ord_obj is used to specify the complexity along each variables. Here it should be noticed that due to the irrational structure, order is not straightforward.
opt.method_null = 'svd0';
opt.method      = 'full';
opt.ord_obj     = [9 1 5 6];
opt.data_min    = false;
[r_alpha,imlf]  = mlf.alg1(tab_alpha,p_c,p_r,opt);
opt.ord_obj     = [8 1 6 5];
[r_beta,imlf]   = mlf.alg1(tab_beta,p_c,p_r,opt);

Evaluate the resulting approximate

Now we compare the original data and approximate functions. The below figure compares the original and its rational approximate functions along $\omega$ and $\sigma_r$, for varying $\phi$ and $\overline{r}$. The frames show the value (left) and the mismatch (right). First figure shows $\alpha$ (dynamic viscous tortuosity), the second is $\beta$ (dynamic thermal compressibility).


Now we can compute the material impedence ($Z$) and absoption ($A$) coefficients using the formula $$ \begin{array}{rcl} Z &=& -\imath \sqrt{\dfrac{c_1\alpha}{\beta}} \text{cot}(\omega h \sqrt{c_2 \alpha \beta})\\ A &=& 1 - \Bigg\lvert\dfrac{Z-Z_0}{Z+Z_0}\Bigg\rvert^2 \end{array} $$ This can be done by evaluating the original and approximated functions
ZAref   = @(x) fun.impedence_abs(H_alpha,H_beta, x(:,1), x(:,2), x(:,3), x(:,4));
ZAapp   = @(x) fun.impedence_abs(r_alpha,r_beta, x(:,1), x(:,2), x(:,3), x(:,4));
Evaluating these function along $\omega$, the following absorption curves are obtained.

Reference

  • L. Schwoebel, C. Poussot-Vassal, D. Matignon, R. Roncen, E. Piot and P. Vuillemin, "Application of the multivariate Loewner Framework to the modelling of acoustic propagation in rigid-frame porous materials", in Proceedings of the Wave conference, Montreal, Canada, June, 2026.
  • charles.poussot-vassal [at] onera.fr

Menu

  • mLF in a nushell
  • Getting started
  • API
  • Examples
  • Loewner community
    • Get familiar with Loewner
    • References