DiscretizationModel
DiscretizationModel is the abstract base class for discretization error models. Below is the description of the abstract base class followed by the concrete classes.
- class cfdverify.discretization.DiscretizationModel(parent: DiscretizationError)
Abstract base class for discretization error models
- abstract f_est() Series
Return estimate of system response quantities
- Returns:
System response quantity estimates
- Return type:
pd.Series
- abstract model(key: str, h: int | float | ndarray) int | float | ndarray
Estimate system response quantity at provided discretizations
- Parameters:
key (str) – Key of system response quantity
h (int | float | np.ndarray) – Discretization levels of interest
- Returns:
System response quantity estimate
- Return type:
int | float | np.ndarray
- abstract order() Series
Return observed convergence orders of system response quantities
- Returns:
Observed convergence orders
- Return type:
pd.Series
- abstract property parameter_keys
List of parameter keys
- abstract solve(*args, **kwargs)
Solve the discretization model
- class cfdverify.discretization.SinglePower(parent: DiscretizationError)
Bases:
DiscretizationModelModel discretization error with a single term power series
- f_est() Series
Return estimate of system response quantities
- Returns:
System response quantity estimates
- Return type:
pd.Series
- model(key: str, h: int | float | ndarray) int | float | ndarray
Estimate system response quantity at provided discretizations
The discretization model for a single term power series expansion is
\[f_h = f_0 + \alpha h^{\hat{p}},\]where \(f_h\) is the system response quantity (SRQ) at a representative discretization size of \(h\), \(f_0\) is the estimated SRQ with no discretization error, \(\alpha\) is the term coefficient, and \(\hat{p}\) is the observed order of convergence.
- Parameters:
key (str) – Key of system response quantity
h (int | float | np.ndarray) – Discretization levels of interest
- Returns:
System response quantity estimate
- Return type:
int | float | np.ndarray
- order() Series
Return observed convergence orders of system response quantities
- Returns:
Observed convergence orders
- Return type:
pd.Series
- parameter_keys = ['f_est', 'alpha', 'p']
Parameter keys for SinglePower
- solve(p_limits: list | tuple = [0, inf])
Solve the model
- Parameters:
p_limits (list | tuple) – Lower and upper limit for observed convergence order
- class cfdverify.discretization.FirstAndSecondOrder(parent: DiscretizationError)
Bases:
DiscretizationModelModel discretization error with a 1st and 2nd order power series
- f_est() Series
Return estimate of system response quantities
- Returns:
System response quantity estimates
- Return type:
pd.Series
- model(key: str, h: int | float | ndarray) int | float | ndarray
Estimate system response quantity at provided discretizations
The discretization model for a 1st and 2nd order power series expansion is
\[f_h = f_0 + \alpha_1 h^{1} + \alpha_2 h^{2},\]where \(f_h\) is the system response quantity (SRQ) at a representative discretization size of \(h\), \(f_0\) is the estimated SRQ for an infinitely fine mesh, \(\alpha_1\) is the 1st order term coefficient, and \(\alpha_2\) is the 2nd order term coefficient.
- Parameters:
key (str) – Key of system response quantity
h (int | float | np.ndarray) – Discretization levels of interest
- Returns:
System response quantity estimate
- Return type:
int | float | np.ndarray
- order() Series
Return observed convergence orders of system response quantities
- Returns:
Observed convergence orders
- Return type:
pd.Series
- parameter_keys = ['f_est', 'alpha_1', 'alpha_2']
Parameter keys for SinglePower
- solve()
Solve the model
- class cfdverify.discretization.AverageValue(parent: DiscretizationError)
Bases:
DiscretizationModelModel discretization error as average of all values
- f_est() Series
Return estimate of system response quantities
- Returns:
System response quantity estimates
- Return type:
pd.Series
- model(key: str, h: int | float | ndarray) int | float | ndarray
Estimate system response quantity at provided discretizations
AverageValue uses the average of all system response quantities (SRQ)s as the estimated true value. This model is useful for cases with oscillatory data without a definitive trend.
- Parameters:
key (str) – Key of system response quantity
h (int | float | np.ndarray) – Discretization levels of interest
- Returns:
est – System response quantity estimate
- Return type:
int | float | np.ndarray
- order() Series
Return observed convergence orders of system response quantities
- Returns:
Observed convergence orders
- Return type:
pd.Series
- parameter_keys = ['mean', 'std', 'order']
Parameter keys for AverageValue
- solve()
Solve the discretization model
- class cfdverify.discretization.FinestValue(parent: DiscretizationError)
Bases:
DiscretizationModelModel discretization error relative to finest response value
- f_est() Series
Return estimate of system response quantities
- Returns:
System response quantity estimates
- Return type:
pd.Series
- model(key: str, h: int | float | ndarray) int | float | ndarray
Estimate system response quantity at provided discretizations
FinestValue uses the system response quantity (SRQ) of the finest result as its estimate. This model is useful if only the finest mesh result is trusted.
- Parameters:
key (str) – Key of system response quantity
h (int | float | np.ndarray) – Discretization levels of interest
- Returns:
est – System response quantity estimate
- Return type:
int | float | np.ndarray
- order() Series
Return observed convergence orders of system response quantities
- Returns:
Observed convergence orders
- Return type:
pd.Series
- parameter_keys = ['f_est', 'order']
Parameter keys for FinestValue
- solve()
Solve the discretization model
- class cfdverify.discretization.MaximumValue(parent: DiscretizationError)
Bases:
DiscretizationModelModel discretization error relative to maximum response value
- f_est() Series
Return estimate of system response quantities
- Returns:
System response quantity estimates
- Return type:
pd.Series
- model(key: str, h: int | float | ndarray) int | float | ndarray
Estimate system response quantity at provided discretizations
MaximumValue uses the largest system response quantity (SRQ) of the results. This model is useful if expert knowledge indicates this is the only reliable result.
- Parameters:
key (str) – Key of system response quantity
h (int | float | np.ndarray) – Discretization levels of interest
- Returns:
est – System response quantity estimate
- Return type:
int | float | np.ndarray
- order() Series
Return observed convergence orders of system response quantities
- Returns:
Observed convergence orders
- Return type:
pd.Series
- parameter_keys = ['f_est', 'order']
Parameter keys for MaximumValue
- solve()
Solve the discretization model
- class cfdverify.discretization.MinimumValue(parent: DiscretizationError)
Bases:
DiscretizationModelModel discretization error relative to minimum response value
- f_est() Series
Return estimate of system response quantities
- Returns:
System response quantity estimates
- Return type:
pd.Series
- model(key: str, h: int | float | ndarray) int | float | ndarray
Estimate system response quantity at provided discretizations
MinimumValue uses the smallest system response quantity (SRQ) of the results. This model is useful if expert knowledge indicates this is the only reliable result.
- Parameters:
key (str) – Key of system response quantity
h (int | float | np.ndarray) – Discretization levels of interest
- Returns:
est – System response quantity estimate
- Return type:
int | float | np.ndarray
- order() Series
Return observed convergence orders of system response quantities
- Returns:
Observed convergence orders
- Return type:
pd.Series
- parameter_keys = ['f_est', 'order']
Parameter keys for MinimumValue
- solve()
Solve the discretization model