Build reduced bases and surrogate models in Python
Project description
Arby
Arby is a fully data-driven Python module to construct surrogate models, reduced bases and empirical interpolants from training data.
This module implements a type of Reduced Order Modeling technique for reducing the computational complexity of mathematical models in numerical simulations.
Install
pip install arby
or, after cloning this repo, execute inside the directory
pip install -e .
Quick Usage
Suppose we have a set of real functions parametrized by a real number λ. This set, the training set, represents an underlying parametrized model fλ(x) with continuous dependency in λ. Without a complete knowledge about fλ(x), we'd like to produce an accurate approximation only through access to the training set.
With Arby we can do this by building a surrogate model for the original one using only the training set. For simplicity,
suppose a discretization of the parameter domain [par_min
, par_max
] with Ntrain
samples
indexing the training set
params = np.linspace(par_min, par_max, Ntrain)
and a discretization of the x domain [a,b] in Nsamples
points
x_samples = np.linspace(a, b, Nsamples)
Next, we build a training set
training_set = [f(par, x_samples) for par in params]
that has shape (Ntrain
,Nsamples
).
Finally, we build the surrogate model by executing:
from arby import ReducedOrderModel as ROM
f_model = ROM(training_space=training_set,
physical_interval=x_samples,
parameter_interval=params)
With f_model
we can get function samples for any parameter par
in the
interval [par_min
, par_max
] simply by calling it:
f_model_at_par = f_model.surrogate(par)
plt.plot(x_samples, f_model_at_par)
plt.show()
Documentation
For more details and examples check the read the docs.
License
MIT
Contact Us
(c) 2020 Aarón Villanueva
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.