Releases: damar-wicaksono/uqtestfuns
v0.5.0
November 18, 2024
v0.5.0 is a minor release that further expands the library of available UQ test functions. This update introduces 14 new test functions, bringing the total to 56.
See the complete CHANGELOG.
New features
Test functions
This release includes the following newly added test functions:
- Five-dimensional single-diode solar cell model: from Constantine et al. (2015) for sensivitiy analysis and metamodeling.
- Six-dimensional undamped non-linear oscillator function: for reliability analysis.
- M-dimension Sobol'-Levitan function: from Sobol' and Levitan (1999), for sensitivity analysis.
- M-dimensional test function: from Morris et al. (2006), for sensitivity analysis.
- Modified Sobol'-G test function (i.e., Sobol'-G)*: from Saltelli et al. (2010), sensitivity analysis.
- M-dimensional linear function: from Saltelli et al. (2008), for sensitivity analysis.
- Two-dimensional test function: from Cheng and Sandu (2010), for metamodeling exercises.
- Two-dimensional non-polynomial test function: from Lim et al. (2002), for metamodeling.
- Two-dimensional polynomial test function: from Lim et al. (2002), for metamodeling.
- Three-dimensional test function: from Moon (2010), for sensitivity analysis.
- Six-dimensional and ten-dimensional Friedman functions: from Friedman et al. (1983) and Friedman (1991), respectively.
- Three-dimensional simple portfolio model: from Saltelli et al. (2004), for sensitivity analysis.
- 20-dimensional polynomial test function: Alemazkoor and Meidani (2018), for metamodeling.
- New Sobol'-G parameter set: from Sun et al. (2022).
Documentation
- Added concise overviews of uncertainty quantifiction frameworks, metamodeling, and sensitivity analysis.
Probabilistic input
- Support for exponential distribution is now available.
Core
- Introduced
FunParams
, an abstraction for managing collection of fixed function parameters. function_id
andinput_id
added as properties ofProbInput
.- The printout of test function instances now indicates the number of output dimension and whether the function is parameterized.
- Parameterization details are displayed in the output of
list_functions()
output_dimension
added as a property of UQ test functions.
Changes
- Renamed
spatial_dimension
toinput_dimension
. UnivDist
class renamed toMarginal
, closely reflecting its role as a marginal distribution of a univariate random variable.name
property of UQ test functions is nowfunction_id
.- Removed noise parameterization from the Gramacy 1D test function; noise, if necessary, can be added on the fly after the function has been evaluated.
Fixes
- Corrected minor typos and grammatical mistakes in documentation and in-code comments.
v0.4.1
October 27, 2023
v0.4.1 is a minor release that incorporates all the changes required from the review process in the submission of the package to the Journal of Open Source Software (JOSS). This release is part of the final steps prior to the acceptance of the submission.
See the complete CHANGELOG.
New
- The two-dimensional high-degree polynomial function for metamodeling exercises from Alemazkoor and Meidani (2018).
- A couple of tutorials regarding the use of the package for sensitivity analysis and reliability analysis exercises (following a comment by a reviewer).
Enhancements
- The documentation now includes a new section on tutorials (where all tutorials are collected).
Fixes
- Minor typos across documentation and in-code documentation.
v0.4.0
July 07, 2023
v0.4.0 includes several new UQ test functions in the context of reliability analysis and metamodeling. The package is now tested against Python v3.11. This is the release before the package is submitted for review to the Journal of Open Source Software (JOSS).
See the complete CHANGELOG.
New
- The two-dimensional convex failure domain problem for reliability analysis exercises from Borri and Speranzini (1997).
- The two-dimensional quadratic RS problem for reliability analysis exercises from Waarts (2000). This is a variant of the classic RS problem with one quadratic term.
- The one-dimensional damped cosine function for metamodeling exercises from an example in Santner et al. (2018).
- The two-dimensional circular bar RS problem for reliability analysis exercises taken from an example in Verma et al. (2015).
- The two-dimensional polynomial function with random inputs from Webster et al. (1996) for metamodeling exercises.
Enhancements
reset_rng()
method is now available for instances ofUnivDist
andProbInput
classes. When called (optionally with a seed number), a new instance of NumPy default RNG will be created and attached to the instance.
Changes
rng_seed_prob_input
keyword parameter has been removed from the list of parameters to the constructor of all UQ test functions. The "official" way to reset an RNG with a seed is to use the instance methodreset_rng()
(optionally with a seed number) of theProbInput
instance attached.
Fixes
- A mistake in one the parameter values of the Sobol'-G function has been fixed.
v0.3.0
July 03, 2023
v0.3.0 includes several new test functions in the context of reliability analysis. This represents a whole new class of problem now supported by UQTestFuns
.
See the complete CHANGELOG
New
All the new test functions are reliability analysis test functions:
- The two-dimensional Gayton Hat function (
GaytonHat()
) from Echard et al. (2013) - The eight-dimensional damped oscillator reliability problem (
DampedOscillatorReliability()
) from Der Kiureghian and De Stefano (1990);
the problem is based on the existing Damped Oscillator model in the code base - The two-dimensional hyper-sphere bound problem (
HyperSphere()
) from Li et al. (2018) - The two-dimensional cantilever beam problem (
CantileverBeam2D()
) from Rajashekhar and Ellington (1993) - The two-dimensional four-branch function (
FourBranch()
) from Katsuki and Frangopol (1994) - The five-dimensional speed reducer shaft problem (
SpeedReducerShaft()
) from Du and Sudjianto (2004) - The two-dimensional reliability problem of a circular pipe crack under a bending moment (
CircularPipeCrack()
) from Verma et al. (2015) - A new section in the docs regarding the list of functions for reliability analysis including a brief description on the reliability analysis problem
v0.2.0
June 26, 2023
v0.2.0 includes several new test functions in the context of metamodeling, sensitivity analysis, integration, and optimization.
The release also includes several refactoring, enhancements, and bugfixes in the code base.
See the complete CHANGELOG
New
- Six two-dimensional test functions from Franke (1979)
- Five two-dimensional test functions from McLain (1974)
- Four M-dimensional test functions from Bratley et al. (1992)
- 20-dimensional test function from Welch et al. (1992)
- One-dimensional test function from Forrester et al. (2008)
- One-dimensional test function from Gramacy (2007)
- New sets of parameters for the Sobol'-G function taken from Bratley et al. (1992) and Saltelli and Sobol' (1995)
Enhancements
- An instance of NumPy random number generator is now attached to instances of
UnivDist
andProbInput
. The random seed number may be passed to the corresponding constructor for reproducibility. This is to conform with the current best practice of using NumPy random number generators.
Changes
- Two base classes are now available
UQTestFunBareABC
andUQTestFunABC
. The former is used to implement a bare UQ test function (with onlyevaluate()
andProbInput
), while the latter is used to implement published UQ test functions in the code base (i.e., with additional metadata such as tags and description). - When
list_functions()
is called with atag
argument, then the application tags are no longer displayed to save terminal spaces. - The one-dimensional
OakleyOHagan1D
function has been renamed toOakley1D
.
Bugfixes
- The original citation for the Sobol'-G function has been fixed; it is now referred to Saltelli and Sobol' (1995).
- If a function is used as parameters in a test function (e.g., if variable dimension), then it must have the keyword parameter
"spatial_dimension" for the function to be called when an instance of a UQ test function is created. This is to allow an arbitrary function (without a parameter named "spatial_dimension") to be a parameter of UQ test function. - One-dimensional test function now returns a one-dimensional array.
v0.1.1
v0.1.0
March 7, 2023
UQTestFuns v0.1.0 contains minor changes and bugfixes;
the changes are mainly related to the internal organization.
See the complete CHANGELOG
New
- UQTestFuns is now registered on Zenodo
Enhancements
- The HTML representation of
ProbInput
instances (for Jupyter notebook session) now takes less space - Some typos in the docs have been fixed
- Additional boxes to highlight certain passages have been added
Changes
- Some numerical tolerances in test cases have been relaxed for a faster execution
Bugfixes
- Wrong classifier specification in
setup.cfg
has been fixed - Built issue in ReadTheDocs due to an older matplotlib version
v0.0.1
This is the first public release of UQTestFuns 🎉
New features
- 11 built-in UQ test functions commonly used in metamodeling, sensitivity analysis, and optimization exercises
- Probabilistic input modeling capabilities for independent joint distribution; 9 univariate distributions are supported
- Minimal but relatively complete documentation served via ReadTheDocs
UQTestFuns is still under heavy development and, at this point, there is neither assurance that everything will work as expected nor future changes will not break the current API.