Yes, in openLCA also advanced models are in principle reduced to the same matrix based equations like `A * s = f` and `B * s = g`. Amount values of flow exchanges are mapped to corresponding matrix cells of `A` and `B`. When the amount is a formula, this formula is evaluated in the context of the corresponding process (using an environment model that supports different parameter scopes) and the resulting value is mapped to the corresponding matrix cell.

In Monte Carlo simulations, the numbers of uncertainty distributions (exchange amounts or parameter values) are generated in each run and then mapped to the corresponding matrix cells as described above (also formulas are evaluated in each run as they may depend on parameters with uncertainty distributions). Also, multiple exchanges with different uncertainty distributions may are mapped and added up to the same matrix cell. Results are calculated and stored for each run with the updated matrices.

Before setting the matrix value possible unit and flow property conversion factors as well as allocation factors may are applied (results are always calculated in the reference unit of the flows). Depending on the calculation type the matrix `A` does not necessarily have to be invertible but the equation `A * s = f` needs to be solvable.

It gets a bit more complicated with hierarchical product systems or regionalized LCIA but the basic matrix equations are always the same.