Borehole

Implementation of the bi-fidelity Borehole function as defined in:

Shifeng Xiong, Peter Z. G. Qian & C. F. Jeff Wu (2013) Sequential Design and Analysis of High-Accuracy and Low-Accuracy Computer Codes, Technometrics, 55:1, 37-46, DOI: 10.1080/00401706.2012.723572

Function definitions:

\[f_b(x, A, B) = \dfrac{A*T_u*(H_u - H_l)}{\Bigg(\log(\frac{r}{r_w}) * (B + \dfrac{2L*T_u}{\log(\frac{r}{r_w}) * r_w^2 * K_w} + \dfrac{T_u}{T_l}\Bigg)}\]
\[f_h(x) = f_b(x, 2\pi, 1)\]
\[f_l(x) = f_b(x, 5, 1.5)\]

Adapted from matlab implementation at

by: Sonja Surjanovic and Derek Bingham, Simon Fraser University

Copyright 2013. Derek Bingham, Simon Fraser University.

THERE IS NO WARRANTY, EXPRESS OR IMPLIED. WE DO NOT ASSUME ANY LIABILITY FOR THE USE OF THIS SOFTWARE. If software is modified to produce derivative works, such modified software should be clearly marked. Additionally, this program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; version 2.0 of the License. Accordingly, this program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

borehole = MultiFidelityFunction(Borehole, [1.5000e-01 5.0000e+04 1.1560e+05 1.1100e+03 1.1600e+02 8.2000e+02  1.6800e+03 1.2045e+04], [5.000e-02 1.000e+02 6.307e+04 9.900e+02 6.310e+01 7.000e+02 1.120e+03  9.855e+03], fidelity_names=['high', 'low'])

8D Borehole function with fidelities ‘high’ and ‘low’

borehole_hf(xx)

BOREHOLE FUNCTION

INPUT AND OUTPUT: inputs = [rw, r, Tu, Hu, Tl, Hl, L, Kw] output = water flow rate

borehole_lf(xx)

BOREHOLE FUNCTION, LOWER FIDELITY CODE This function is used as the “low-accuracy code” version of the function borehole_hf.

INPUT AND OUTPUT: inputs = [rw, r, Tu, Hu, Tl, Hl, L, Kw] output = water flow rate

l_bound = [0.05, 100, 63070, 990, 63.1, 700, 1120, 9855]

Lower bound for Borehole function

u_bound = [0.15, 50000, 115600, 1110, 116, 820, 1680, 12045]

Upper bound for Borehole function