ReducedOrderModel¶
Module for the Reduced Order Modeling.
|
Reduced Order Model class. |
|
Calculate reduced space |
|
Calculate predicted solution for given mu |
|
Compute the mean norm of the relative error vectors of predicted test snapshots. |
|
Split the database into k consecutive folds (no shuffling by default). |
|
Estimate the approximation error using leave-one-out strategy. |
|
Return the parametric points where new high-fidelity solutions have to be computed in order to globally reduce the estimated error. |
|
Method implementing the computation of the volume of a N dimensional simplex. |
-
class
ReducedOrderModel
(database, reduction, approximation, plugins=None)[source] Bases:
object
Reduced Order Model class.
This class performs the actual reduced order model using the selected methods for approximation and reduction.
- Parameters
database (ezyrb.Database) – the database to use for training the reduced order model.
reduction (ezyrb.Reduction) – the reduction method to use in reduced order model.
approximation (ezyrb.Approximation) – the approximation method to use in reduced order model.
scaler_red (object) – the scaler for the reduced variables (eg. modal coefficients). Default is None.
- Variables
database (ezyrb.Database) – the database used for training the reduced order model.
reduction (ezyrb.Reduction) – the reduction method used in reduced order model.
approximation (ezyrb.Approximation) – the approximation method used in reduced order model.
scaler_red (object) – the scaler for the reduced variables (eg. modal coefficients).
- Example
>>> from ezyrb import ReducedOrderModel as ROM >>> from ezyrb import POD, RBF, Database >>> pod = POD() >>> rbf = RBF() >>> # param, snapshots and new_param are assumed to be declared >>> db = Database(param, snapshots) >>> rom = ROM(db, pod, rbf).fit() >>> rom.predict(new_param)
-
_simplex_volume
(vertices)[source] Method implementing the computation of the volume of a N dimensional simplex. Source from: wikipedia.org/wiki/Simplex.
- Parameters
simplex_vertices (numpy.ndarray) – Nx3 array containing the parameter values representing the vertices of a simplex. N is the dimensionality of the parameters.
- Returns
N dimensional volume of the simplex.
- Return type
-
fit
()[source] Calculate reduced space
-
kfold_cv_error
(n_splits, *args, norm=<function norm>, **kwargs)[source] Split the database into k consecutive folds (no shuffling by default). Each fold is used once as a validation while the k - 1 remaining folds form the training set. If n_splits is equal to the number of snapshots this function is the same as loo_error but the error here is relative and not absolute.
- Parameters
n_splits (int) – number of folds. Must be at least 2.
norm (function) – function to apply to compute the relative error between the true snapshot and the predicted one. Default value is the L2 norm.
*args – additional parameters to pass to the fit method.
**kwargs – additional parameters to pass to the fit method.
- Returns
the vector containing the errors corresponding to each fold.
- Return type
-
static
load
(fname)[source] Load the object from fname using the pickle module.
- Returns
The ReducedOrderModel loaded
Example:
>>> from ezyrb import ReducedOrderModel as ROM >>> rom = ROM.load('ezyrb.rom') >>> rom.predict(new_param)
-
loo_error
(*args, norm=<function norm>, **kwargs)[source] Estimate the approximation error using leave-one-out strategy. The main idea is to create several reduced spaces by combining all the snapshots except one. The error vector is computed as the difference between the removed snapshot and the projection onto the properly reduced space. The procedure repeats for each snapshot in the database. The norm is applied on each vector of error to obtained a float number.
- Parameters
norm (function) – the function used to assign at each vector of error a float number. It has to take as input a ‘numpy.ndarray` and returns a float. Default value is the L2 norm.
*args – additional parameters to pass to the fit method.
**kwargs – additional parameters to pass to the fit method.
- Returns
the vector that contains the errors estimated for all parametric points.
- Return type
-
optimal_mu
(error=None, k=1)[source] Return the parametric points where new high-fidelity solutions have to be computed in order to globally reduce the estimated error. These points are the barycentric center of the region (simplex) with higher error.
- Parameters
error (numpy.ndarray) – the estimated error evaluated for each snapshot; if error array is not passed, it is computed using
loo_error()
with the default function. Default value is None.k (int) – the number of optimal points to return. Default value is 1.
- Returns
the optimal points
- Return type
-
predict
(mu)[source] Calculate predicted solution for given mu
- Returns
the database containing all the predicted solution (with corresponding parameters).
- Return type
Database
-
save
(fname, save_db=True, save_reduction=True, save_approx=True)[source] Save the object to fname using the pickle module.
- Parameters
Example:
>>> from ezyrb import ReducedOrderModel as ROM >>> rom = ROM(...) # Construct here the rom >>> rom.fit() >>> rom.save('ezyrb.rom')
-
test_error
(test, norm=<function norm>)[source] Compute the mean norm of the relative error vectors of predicted test snapshots.
- Parameters
test (database.Database) – the input test database.
norm (function) – the function used to assign at the vector of errors a float number. It has to take as input a ‘numpy.ndarray’ and returns a float. Default value is the L2 norm.
- Returns
the mean L2 norm of the relative errors of the estimated test snapshots.
- Return type