damar-wicaksono / uqtestfuns

A Python3 library of test functions from the uncertainty quantification community with a common interface for validation and benchmarking purposes.
https://uqtestfuns.readthedocs.io/en/latest/
MIT License
8 stars 0 forks source link

Add the Two-Dimensional Cooling Coffee Cup Model from Tennøe et al. (2018) #344

Open damar-wicaksono opened 6 months ago

damar-wicaksono commented 6 months ago

The two-dimensional cooling coffee cup test function models the cooling of a coffee cup following Newton's law of cooling:

$$ \frac{d T(t)}{dt} = -k (T(t) - T_{\mathrm{amb}}), $$

where $T$ is the temperature of the cup, $k$ is the cooling rate constant, and $T_{\mathrm{amb}}$ is the ambient temperature.

The function is two-dimensional with $k$ and $T_{\mathrm{amb}}$ are considered uncertain input modeled as uniform random variables $\mathcal{U}(0.025, 0.075)$ and $\mathcal{U}(15, 25)$, respectively.

The solver scipy.odeint is used to solve the differential equation with initial temperature $T_0 = T(t = 0) = 95 [\mathrm{^{o}C}]$ evaluated at $150$ time points between $0$ and $200$ $[\mathrm{s}]$.

The model is taken from one of the examples of Uncertainpy package (Tennøe et al. (2018)[^Tennøe]); the model also appears in the illustration of EasyVVUQ package (Richardson et al. (2020)[^Richardson]).

[^Tennøe]: S. Tennøe, G. Halnes, and G. T. Einevoll, “Uncertainpy: A Python Toolbox for Uncertainty Quantification and Sensitivity Analysis in Computational Neuroscience,” Frontiers in Neuroinformatics, vol. 12, p. 49, 2018, DOI: 10.3389/fninf.2018.00049.

[^Richardson]: R. A. Richardson, D. W. Wright, W. Edeling, V. Jancauskas, J. Lakhlili, and P. V. Coveney, “EasyVVUQ: A Library for Verification, Validation and Uncertainty Quantification in High Performance Computing,” Journal of Open Research Software, vol. 8, no. 1, p. 11, 2020, DOI: 10.5334/jors.303.