Hide code cell content
###############################################################################
# The Institute for the Design of Advanced Energy Systems Integrated Platform
# Framework (IDAES IP) was produced under the DOE Institute for the
# Design of Advanced Energy Systems (IDAES).
#
# Copyright (c) 2018-2023 by the software owners: The Regents of the
# University of California, through Lawrence Berkeley National Laboratory,
# National Technology & Engineering Solutions of Sandia, LLC, Carnegie Mellon
# University, West Virginia University Research Corporation, et al.
# All rights reserved.  Please see the files COPYRIGHT.md and LICENSE.md
# for full copyright and license information.
###############################################################################

PySMO Tutorial#

Author: Mayo Amusat
Maintainer: Mayo Amusat
Updated: 2023-06-01

Python-based Surrogate Modelling Objects (PySMO) provides tools for generating different types of reduced order models. PySMO currently provides tools for sampling and surrogate model generation.

Installation#

PySMO is installed by default as part of IDAES. For instructions on installing IDAES, see the online documentation.

One-Shot Sampling with PySMO#

The PySMO package offers five common sampling methods for one-shot design:

  • Latin Hypercube Sampling (LHS)

  • Full-Factorial Sampling

  • Halton Sampling

  • Hammersley Sampling

  • Centroidal voronoi tessellation (CVT) sampling

PySMO provides two modes for data sampling: creation and selection.

  • In creation mode, PySMO creates a specified number of sample points from the bounds provided by the user.

  • In selection mode, PySMO selects a specified number of data points from a user-supplied dataset or file.

Generating samples:#

For demonstration purposes, let us consider a problem for which we need twenty-five (25) samples of temperature and pressure from within the ranges T = 273K - 373K, P = 1 MPa - 50 MPa. Let us generate these samples in PySMO.

Step 1: Import PySMO’s sampling tool#

For this demonstration, we will attempt to generate the samples using the Hammersley sampling method.

from idaes.core.surrogate.pysmo.sampling import HammersleySampling

Step 2: Specify sampling information and initialize class#

All the sampling tools (except full-factorial sampling) require the same keyword arguments:

      -  data_input             : must be a list of lists containing the problem bounds (when creating points), 
                                  or an input dataset (when selecting points from a dataset)
      -  number_of_samples      : number of samples to be created or selected.
      -  sampling_type          : "creation" or "selection".

For full factorial sampling, the user needs to enter a list of points in each dimension in place of the number of samples. Full-factorial sampling requires other inputs - details may be found in the documentation.

For our example, we will create the bounds and then initialize the class with the number of samples.

bounds_info = [[273, 1], [373, 50]]
init_data = HammersleySampling(
    data_input=bounds_info, number_of_samples=25, sampling_type="creation"
)
Sampling type:  creation 

Step 3: Create the samples#

The samples are created by calling the sample_points method on the initialized class.

samples = init_data.sample_points()
print(samples)
[[273.        1.     ]
 [277.       25.5    ]
 [281.       13.25   ]
 [285.       37.75   ]
 [289.        7.125  ]
 [293.       31.625  ]
 [297.       19.375  ]
 [301.       43.875  ]
 [305.        4.0625 ]
 [309.       28.5625 ]
 [313.       16.3125 ]
 [317.       40.8125 ]
 [321.       10.1875 ]
 [325.       34.6875 ]
 [329.       22.4375 ]
 [333.       46.9375 ]
 [337.        2.53125]
 [341.       27.03125]
 [345.       14.78125]
 [349.       39.28125]
 [353.        8.65625]
 [357.       33.15625]
 [361.       20.90625]
 [365.       45.40625]
 [369.        5.59375]]

Simple as that, the samples have been created!

Now, let us visualize the samples in a 2-D plot.

Step 4: Visualize samples with matplotlib#

from matplotlib import pyplot as plt

plt.plot(samples[:, 0], samples[:, 1], "o")
plt.xlabel(r"Temperature", fontsize=11)
plt.xlabel(r"Pressure", fontsize=11)
plt.xlim(272, 374)
plt.ylim(0, 50)
plt.show()
../../../_images/5c4abdee7ea37b27a90a8c010989fc2fbac5a9879b54e95afba150564493d949.png

Generating surrogates with PySMO#

PySMO currently provides tools for generating three types of surrogates:

  • Polynomial surrogates

  • Radial basis function (RBF) surrogates, and

  • Kriging surrogates

Details about thee various methods may be found in the documentation.

Generating polynomial models#

The PolynomialRegression class trains polynomial models from data.

As an example, let us generate a surrogate for the Brainin function.

The true Brainin function is given by the expression:

\begin{gather} \hat{y}(x_{1},x_{2})=\left(x_{2}-\frac{5.1x_{1}^{2}}{4\pi^{2}}+\frac{5x_{1}}{\pi}-6\right)^{2}+10\left[\left(1-\frac{1}{8\pi}\right)\cos\left(x_{1}\right)+1\right]+5x_{1}\nonumber \ x_{1}\in\left[-5,10\right];x_{2}\in\left[0,15\right] \end{gather}

We have generated 30 points from the function and saved the information in a text file called “brainin_30.txt”. We will use this data to train a simple polynomial model. The data is in XY format, with the outputs \(y\) in the third column.

Step 1: Import and visualize the data#

import numpy as np

brainin_data = np.loadtxt("brainin_30.txt")
print(brainin_data, "\n\nDataset shape:", brainin_data.shape)
[[ 3.15107413e+00  4.17554078e+00  4.03815759e+00]
 [ 1.36776386e+00  1.26716420e+01  8.60127077e+01]
 [-4.92921716e+00  1.82353681e+00  2.41888089e+02]
 [ 5.06123627e+00  1.23877913e+01  1.37242426e+02]
 [-2.94940115e+00  8.62639994e+00  1.07587601e+01]
 [ 8.36982931e+00  3.13803183e+00  7.24964869e+00]
 [-2.22007671e+00  1.62565336e+00  7.71988248e+01]
 [-1.70453761e+00  1.46793568e+01  3.99820398e+01]
 [ 7.17524724e+00  2.57911519e+00  1.78453527e+01]
 [ 7.24337123e+00  4.11110621e+00  2.36937839e+01]
 [ 1.47556275e+00  1.41004473e+01  1.14292050e+02]
 [ 7.26474068e+00  5.04167925e+00  2.96703147e+01]
 [-2.36884319e+00  5.59248069e+00  2.71582680e+01]
 [-4.91467239e+00  3.78639530e+00  1.84993457e+02]
 [ 6.93493763e+00  2.28824569e-01  1.85302363e+01]
 [ 3.98265065e+00  9.05706809e+00  5.75698037e+01]
 [-3.42278472e+00  5.72915167e+00  5.30702398e+01]
 [-4.45285915e+00  1.33561735e+01  1.27882794e+01]
 [ 9.71381286e+00  8.99129832e-01  4.14567857e+00]
 [ 8.35818917e+00  8.65352249e+00  5.34055688e+01]
 [ 6.13719534e+00  9.45275905e+00  8.93001840e+01]
 [ 3.72763289e+00  3.06586980e-01  4.42072359e+00]
 [-1.84960133e+00  8.17027317e+00  8.83431235e+00]
 [ 6.53672757e+00  3.76042844e+00  2.62862798e+01]
 [-7.11564644e-01  1.27859263e+01  4.84986100e+01]
 [ 9.62509740e+00  1.32727994e+01  1.13457908e+02]
 [ 3.92617659e-01  8.98288419e+00  3.17439666e+01]
 [ 3.21934175e-01  5.10285323e+00  1.92673649e+01]
 [-2.32878516e+00  3.56541313e+00  5.02034858e+01]
 [-4.32706576e+00  7.58147144e+00  6.60457721e+01]] 

Dataset shape: (30, 3)

Let us visualize the data:

from mpl_toolkits.mplot3d import Axes3D
from matplotlib import pyplot as plt

fig1 = plt.figure(figsize=(6, 4), tight_layout=True)
ax = fig1.add_subplot(111, projection="3d")
ax.scatter3D(
    brainin_data[:, 0], brainin_data[:, 1], brainin_data[:, 2], cmap=brainin_data[:, 2]
)
ax.set_xlabel(r"$x_{1}$", fontsize=11)
ax.set_ylabel(r"$x_{2}$", fontsize=11)
ax.set_zlabel(r"$y$", fontsize=11)
/tmp/ipykernel_7794/142152307.py:6: UserWarning: No data for colormapping provided via 'c'. Parameters 'cmap' will be ignored
  ax.scatter3D(
Text(0.5, 0, '$y$')
../../../_images/87393746ae1e602f9b69bc68261d7c5cf75b55281691331302afc6da0f3bf627.png

Step 2: Import the polynomial model tool#

from idaes.core.surrogate.pysmo.polynomial_regression import PolynomialRegression

Step 3: Specify the regression settings and initialize the PolynomialRegression class#

The PolynomialRegression class takes a keyword arguments:

  -  original_data_input           : The dataset for regression training. training_data is expected to contain xy_data, 
                                     with the output values (y) in the last column.
  -  regression_data_input         : same as above
  -  maximum_polynomial_order      : maximum order of the polynomial to be generated  

It also takes a number of optional arguments:

  - multinomials                  : True/False option for specifying second-order bi-variate terms. default is False
  - training_split                : The training/cross-validation split of training data. Must be between 0 and 1. 
                                    Default is 0.75
  - fname                         : Filename for saving results (.pickle extension). 
  - overwrite                     : Option determining whether any existing file with the same name supplied in 'fname'  
                                    should be overwritten.

For this example, let us consider a 4th order polynomial with interaction terms. We will split the data 80/20 between training and cross-validation.

poly_class = PolynomialRegression(
    original_data_input=brainin_data,
    regression_data_input=brainin_data,
    maximum_polynomial_order=4,
    multinomials=1,
    training_split=0.8,
    number_of_crossvalidations=10,
    overwrite=True,
)
===========================Polynomial Regression===============================================

No iterations will be run.
Default parameter estimation method is used.
Parameter estimation method:  pyomo 

Step 4: Extract variable names#

Next, we extract Pyomo variable names from the dataset. This should be done always.

vars = poly_class.get_feature_vector()

We can view the variables using Pyomo’s pprint function:

vars.pprint()
IndexedParam : Size=2, Index={0, 1}, Domain=Any, Default=None, Mutable=True
    Key : Value
      0 :     0
      1 :     0

Step 5: Specify additional regression terms, if required.#

This is one of the unique features of PySMO - it allows the user to specify additional regression features if they want. The additional features must be specified in terms of the Pyomo variables created when calling the get_feature_vector()

For this example, let us create three additional features: \(x_{1}^{2}x_{2}^{2}\), \(exp(x_1)\) and \(exp(x_2)\). We do this by calling the set_additional_terms function:

from pyomo.environ import exp

poly_class.set_additional_terms(
    [vars[0] * vars[0] * vars[1] * vars[1], exp(vars[0]), exp(vars[1])]
)

That’s it - those features will now exist in the model.

Note that set_additional_terms an optional call - the regression process works just fine without it.

Step 6: Train the surrogate and view results#

Next, we train the polynomial surrogate by calling training:

poly_class.training()
No iterations will be run.
WARNING: Could not locate the 'ipopt' executable, which is required for solver
ipopt
---------------------------------------------------------------------------
ApplicationError                          Traceback (most recent call last)
Cell In[13], line 1
----> 1 poly_class.training()

File ~/checkouts/readthedocs.org/user_builds/idaes-examples/envs/latest/lib/python3.8/site-packages/idaes/core/surrogate/pysmo/polynomial_regression.py:1639, in PolynomialRegression.training(self)
   1635 npe = NumpyEvaluator(cMap)
   1636 additional_data = list(
   1637     npe.walk_expression(term) for term in self.additional_term_expressions
   1638 )
-> 1639 return self.polynomial_regression_fitting(additional_data)

File ~/checkouts/readthedocs.org/user_builds/idaes-examples/envs/latest/lib/python3.8/site-packages/idaes/core/surrogate/pysmo/polynomial_regression.py:1473, in PolynomialRegression.polynomial_regression_fitting(self, additional_regression_features)
   1471 for poly_order in range(1, self.max_polynomial_order + 1):
   1472     for cv_number in range(1, self.number_of_crossvalidations + 1):
-> 1473         phi, train_error, cv_error = self.polyregression(
   1474             poly_order,
   1475             training_data["training_set_" + str(cv_number)],
   1476             cross_val_data["test_set_" + str(cv_number)],
   1477             training_data["training_extras_" + str(cv_number)],
   1478             cross_val_data["test_extras_" + str(cv_number)],
   1479         )
   1480         if cv_error < best_error:
   1481             best_error = cv_error

File ~/checkouts/readthedocs.org/user_builds/idaes-examples/envs/latest/lib/python3.8/site-packages/idaes/core/surrogate/pysmo/polynomial_regression.py:897, in PolynomialRegression.polyregression(self, poly_order, training_data, test_data, additional_x_training_data, additional_x_test_data)
    893     phi_vector = self.bfgs_parameter_optimization(
    894         x_polynomial_data, y_training_data
    895     )
    896 elif self.solution_method == "pyomo":
--> 897     phi_vector = self.pyomo_optimization(x_polynomial_data, y_training_data)
    898 phi_vector = phi_vector.reshape(
    899     phi_vector.shape[0], 1
    900 )  # Pseudo-inverse approach
    902 x_polynomial_data_test = self.polygeneration(
    903     poly_order, self.multinomials, x_test_data, additional_x_test_data
    904 )

File ~/checkouts/readthedocs.org/user_builds/idaes-examples/envs/latest/lib/python3.8/site-packages/idaes/core/surrogate/pysmo/polynomial_regression.py:813, in PolynomialRegression.pyomo_optimization(x, y)
    811 opt.options["max_iter"] = 1000
    812 # TODO: Should this be checking the for a feasible solution?
--> 813 opt.solve(instance)
    815 # Convert theta variable into numpy array
    816 phi = np.zeros((len(instance.theta), 1))

File ~/checkouts/readthedocs.org/user_builds/idaes-examples/envs/latest/lib/python3.8/site-packages/pyomo/opt/base/solvers.py:534, in OptSolver.solve(self, *args, **kwds)
    531 def solve(self, *args, **kwds):
    532     """Solve the problem"""
--> 534     self.available(exception_flag=True)
    535     #
    536     # If the inputs are models, then validate that they have been
    537     # constructed! Collect suffix names to try and import from solution.
    538     #
    539     from pyomo.core.base.block import BlockData

File ~/checkouts/readthedocs.org/user_builds/idaes-examples/envs/latest/lib/python3.8/site-packages/pyomo/opt/solver/shellcmd.py:140, in SystemCallSolver.available(self, exception_flag)
    138     if exception_flag:
    139         msg = "No executable found for solver '%s'"
--> 140         raise ApplicationError(msg % self.name)
    141     return False
    142 return True

ApplicationError: No executable found for solver 'ipopt'

The polynomial model seems to fit well based on the \(R^2\). It should be noted that the metrics are only an indication of how well of how well the model fit the training data - the user needs to verify the model’s performance on a test data set if possible.

We can view the parity and residual plots for the fit:

poly_class.parity_residual_plots()
../../../_images/2b3fc4b63013139f03c90ea490da987ff1e8096849159e479e09dd649ca1619e.png

PySMO is also able to compute the confidence intervals on the regression coefficients obtained by calling confint_regression(). This is left as an exercise for the user.

Step 8 (Optional): Generate Pyomo expression#

If the user wishes, they can generate the Pyomo expression for the polynomial fit using PySMO’s generate_expression. To do this, the user must pass in a list of Pyomo variables corresponding to each variable in the input dataset.

As a demonstration, let us create the variables \(x_1\) and \(x_2\) and generate the pyomo expression based on them:

from pyomo.environ import Var, ConcreteModel

m = ConcreteModel()
m.x = Var([1, 2])
print(poly_class.generate_expression([m.x[1], m.x[2]]))
57.60700349249289 - 19.078560846595344*x[1] - 17.191563035875806*x[2] + 3.8899241750021663*x[1]**2 + 1.1633280319958954*x[2]**2 - 0.3519284134546862*x[1]**3 + 0.018398180902055014*x[2]**3 + 3.1001348356698335*(x[2]*x[1]) - 0.017933037213866673*(x[1]*x[1]*x[2]*x[2]) + 0.00474571104342994*exp(x[1]) - 1.2975320261052192e-05*exp(x[2])

Step 9 (Optional): Predict output at any unsampled point#

Based on the model we trained, we can predict the surrogate value at any previously unsampled point.

Let us evaluate the surrogate at three points:

  • \(x_{1}=5\), \(x_{2}=8\) (true function value: 57.9908)

  • \(x_{1}=-3\), \(x_{2}=10\) (true function value: 4.2461)

  • \(x_{1}=-2\), \(x_{2}=3\). (true function value: 50.8899)

We will pass the points in as an array.

unsampled_points = np.array([[5, 8], [-3, 10], [-2, 3]])
ys = poly_class.predict_output(unsampled_points)
print(ys)
[[57.7897913 ]
 [12.74008178]
 [54.28524655]]

The model performs fairly well in predicting the value at two of our sampled points but is off on the value at [-3, 2]. For better model performance, additional training data is needed in this region. We will leave this to the user to try.

Further information about using PySMO’s polynomial regression tool can be found in the documentation.

Generating RBF models#

The RadialBasisFunction class trains RBF models from data. For details about RBF models, the user should consult the documentation.

As an example, we will again consider the Brainin function. The same dataset loaded previously will be used.

Step 1: Import the data and the RBF tool#

import numpy as np

brainin_data = np.loadtxt("brainin_30.txt")
from idaes.core.surrogate.pysmo.radial_basis_function import RadialBasisFunctions

Step 2: Specify the RBF settings and initialize the RadialBasisFunctions class#

The RadialBasisFunctions class takes a number of keyword arguments:

  -  XY_data                       : The dataset forRBF training. training_data is expected to contain xy_data, 
                                     with the output values (y) in the last column.

It also takes a number of optional arguments:

  -  regularization                : Boolean variable determining whether regularization is done. Default is True.
  -  basis_function                : Basis function transformation to be applied to the training data. PySMO offers 
                                     six basis function types including the Gaussian and Spline transformations. User 
                                     should consult documentation for full list of options.   
  -  fname                         : Filename for saving (.pickle extension)
  - overwrite                      : Option determining whether any existing file with the same name supplied in 'fname'  
                                     should be overwritten.

For this demonstration, we will train an RBF model with a Gaussian basis function:

rbf_class = RadialBasisFunctions(
    XY_data=brainin_data, basis_function="gaussian", overwrite=True
)
Warning: solution.pickle already exists; previous file will be overwritten.

Default parameter estimation method is used.

Parameter estimation method:  algebraic
Basis function:  gaussian
Regularization done:  True

Step 3: Extract variable names#

Next, we extract Pyomo variable names from the dataset.

vars = rbf_class.get_feature_vector()

Step 4: Train the RBF surrogate#

Next, we train the RBF surrogate by calling training:

rbf_class.training()
===========================================================================================================
0.001    |     1e-05    |     1.330188999805357    |     7.936658808585865e+18    |     1762.2922695772181    |     2999999.7996930624    |     6.661337702980191e-10
0.001    |     2e-05    |     1.3231321486358596    |     7.936658808585865e+18    |     1762.2922695772181    |     1500000.3998815753    |     3.3306699617909336e-10
0.001    |     5e-05    |     1.3204882439270513    |     7.936658808585865e+18    |     1762.2922695772181    |     600000.7598810853    |     1.3322693168251415e-10
0.001    |     7.5e-05    |     1.3203184940690464    |     7.936658808585865e+18    |     1762.2922695772181    |     400000.83992750663    |     8.88180284713839e-11
0.001    |     0.0001    |     1.3203209127587061    |     7.936658808585865e+18    |     1762.2922695772181    |     300000.87994025816    |     6.661357686349637e-11
0.001    |     0.0002    |     1.320453829126744    |     7.936658808585865e+18    |     1762.2922695772181    |     150000.93996799184    |     3.330689945357609e-11
0.001    |     0.0005    |     1.3206180157500875    |     7.936658808585865e+18    |     1762.2922695772181    |     60000.975986938625    |     1.3322893008136078e-11
0.001    |     0.00075    |     1.3206637488446602    |     7.936658808585865e+18    |     1762.2922695772181    |     40000.98399132156    |     8.882002686965498e-12
0.001    |     0.001    |     1.3206877851838068    |     7.936658808585865e+18    |     1762.2922695772181    |     30000.987993464787    |     6.661557526369496e-12
0.001    |     0.002    |     1.3207246211571246    |     7.936658808585865e+18    |     1762.2922695772181    |     15000.993996724195    |     3.3308897854853903e-12
0.001    |     0.005    |     1.3207441010685603    |     7.936658808585865e+18    |     1762.2922695772181    |     6000.997598686373    |     1.3324891409563772e-12
0.001    |     0.0075    |     1.3207457685491724    |     7.936658808585865e+18    |     1762.2922695772181    |     4000.9983991229724    |     8.884001088389431e-13
0.001    |     0.01    |     1.3207447379585568    |     7.936658808585865e+18    |     1762.2922695772181    |     3000.998799341891    |     6.663555927803635e-13
0.001    |     0.02    |     1.320733880721723    |     7.936658808585865e+18    |     1762.2922695772181    |     1500.9993996709732    |     3.332888186926504e-13
0.001    |     0.05    |     1.320692242454931    |     7.936658808585865e+18    |     1762.2922695772181    |     600.999759868342    |     1.334487542400047e-13
0.001    |     0.075    |     1.3206569542287017    |     7.936658808585865e+18    |     1762.2922695772181    |     400.9998399122189    |     8.903985102830944e-14
0.001    |     0.1    |     1.320622227525564    |     7.936658808585865e+18    |     1762.2922695772181    |     300.99987993416397    |     6.68353994224633e-14
0.001    |     0.2    |     1.3204909253945512    |     7.936658808585865e+18    |     1762.2922695772181    |     150.9999399670793    |     3.352872201369357e-14
0.001    |     0.5    |     1.3201734897566477    |     7.936658808585865e+18    |     1762.2922695772181    |     60.99997598683129    |     1.354471556843235e-14
0.001    |     0.75    |     1.3199938819612356    |     7.936658808585865e+18    |     1762.2922695772181    |     40.999983991220795    |     9.10382524726323e-15
0.001    |     1    |     1.3198876280547236    |     7.936658808585865e+18    |     1762.2922695772181    |     30.999987993415566    |     6.883380086678673e-15
0.002    |     1e-05    |     1.362387822278568    |     5.782309804024167e+18    |     1283.9306959886815    |     2999996.19772378    |     6.661329705001728e-10
0.002    |     2e-05    |     1.343994630873922    |     5.782309804024167e+18    |     1283.9306959886815    |     1499998.5987316754    |     3.3306659624347544e-10
0.002    |     5e-05    |     1.3272246485698753    |     5.782309804024167e+18    |     1283.9306959886815    |     600000.0394937922    |     1.3322677172440228e-10
0.002    |     7.5e-05    |     1.3235440099208564    |     5.782309804024167e+18    |     1283.9306959886815    |     400000.3596555643    |     8.881792182959021e-11
0.002    |     0.0001    |     1.3220037168855518    |     5.782309804024167e+18    |     1283.9306959886815    |     300000.51974200836    |     6.66134968834183e-11
0.002    |     0.0002    |     1.3204880868279008    |     5.782309804024167e+18    |     1283.9306959886815    |     150000.75986912134    |     3.330685946359354e-11
0.002    |     0.0005    |     1.3203538501482557    |     5.782309804024167e+18    |     1283.9306959886815    |     60000.903947554114    |     1.3322877012179405e-11
0.002    |     0.00075    |     1.3204389361297426    |     5.782309804024167e+18    |     1283.9306959886815    |     40000.935965030716    |     8.881992022986721e-12
0.002    |     0.001    |     1.320500039765387    |     5.782309804024167e+18    |     1283.9306959886815    |     30000.95197376373    |     6.661549528389206e-12
0.002    |     0.002    |     1.320615846455827    |     5.782309804024167e+18    |     1283.9306959886815    |     15000.975986864492    |     3.330885786493208e-12
0.002    |     0.005    |     1.3206969267656394    |     5.782309804024167e+18    |     1283.9306959886815    |     6000.990394744541    |     1.3324875413599593e-12
0.002    |     0.0075    |     1.3207137929011277    |     5.782309804024167e+18    |     1283.9306959886815    |     4000.9935964959222    |     8.883990424415172e-13
0.002    |     0.01    |     1.3207205715037762    |     5.782309804024167e+18    |     1283.9306959886815    |     3000.9951973718266    |     6.663547929823436e-13
0.002    |     0.02    |     1.3207216922930982    |     5.782309804024167e+18    |     1283.9306959886815    |     1500.997598685877    |     3.3328841879362624e-13
0.002    |     0.05    |     1.320687393868504    |     5.782309804024167e+18    |     1283.9306959886815    |     600.9990394743187    |     1.334485942803984e-13
0.002    |     0.075    |     1.320653752364362    |     5.782309804024167e+18    |     1283.9306959886815    |     400.9993596495438    |     8.90397443885735e-14
0.002    |     0.1    |     1.3206198511578064    |     5.782309804024167e+18    |     1283.9306959886815    |     300.9995197371585    |     6.683531944266152e-14
0.002    |     0.2    |     1.320489789943987    |     5.782309804024167e+18    |     1283.9306959886815    |     150.9997598685783    |     3.352868202379307e-14
0.002    |     0.5    |     1.3201731005146329    |     5.782309804024167e+18    |     1283.9306959886815    |     60.99990394743119    |     1.3544699572472217e-14
0.002    |     0.75    |     1.3199936589276795    |     5.782309804024167e+18    |     1283.9306959886815    |     40.99993596495411    |     9.103814583289818e-15
0.002    |     1    |     1.319887488406783    |     5.782309804024167e+18    |     1283.9306959886815    |     30.99995197371558    |     6.88337208869862e-15
0.005    |     1e-05    |     1.398281393989088    |     4.7315568285138035e+19    |     10506.166666676816    |     2999970.9840130205    |     6.661273719317286e-10
0.005    |     2e-05    |     1.388722431615681    |     4.7315568285138035e+19    |     10506.166666676816    |     1499985.9920165162    |     3.330637969903885e-10
0.005    |     5e-05    |     1.3683630926262451    |     4.7315568285138035e+19    |     10506.166666676816    |     599994.9967708938    |     1.3322565201498855e-10
0.005    |     7.5e-05    |     1.3574022549722211    |     4.7315568285138035e+19    |     10506.166666676816    |     399996.9978457239    |     8.881717535785236e-11
0.005    |     0.0001    |     1.349656526521845    |     4.7315568285138035e+19    |     10506.166666676816    |     299997.99838577345    |     6.661293702986925e-11
0.005    |     0.0002    |     1.3338899892280682    |     4.7315568285138035e+19    |     10506.166666676816    |     149999.49919096037    |     3.330657953680935e-11
0.005    |     0.0005    |     1.3231314606154727    |     4.7315568285138035e+19    |     10506.166666676816    |     60000.399676413464    |     1.3322765041493204e-11
0.005    |     0.00075    |     1.3213658709059117    |     4.7315568285138035e+19    |     10506.166666676816    |     40000.599784124155    |     8.88191737583014e-12
0.005    |     0.001    |     1.3207434325086935    |     4.7315568285138035e+19    |     10506.166666676816    |     30000.699838091627    |     6.661493543023506e-12
0.005    |     0.002    |     1.3203109441737189    |     4.7315568285138035e+19    |     10506.166666676816    |     15000.84991903379    |     3.3308577938115457e-12
0.005    |     0.005    |     1.3204473592564139    |     4.7315568285138035e+19    |     10506.166666676816    |     6000.939967612918    |     1.3324763442874405e-12
0.005    |     0.0075    |     1.3205266147948784    |     4.7315568285138035e+19    |     10506.166666676816    |     4000.95997840818    |     8.883915777265062e-13
0.005    |     0.01    |     1.3205722511348426    |     4.7315568285138035e+19    |     10506.166666676816    |     3000.9699838059914    |     6.66349194446079e-13
0.005    |     0.02    |     1.3206416674457822    |     4.7315568285138035e+19    |     10506.166666676816    |     1500.9849919029054    |     3.3328561952548196e-13
0.005    |     0.05    |     1.3206543062552778    |     4.7315568285138035e+19    |     10506.166666676816    |     600.9939967611574    |     1.3344747457314674e-13
0.005    |     0.075    |     1.3206317178276619    |     4.7315568285138035e+19    |     10506.166666676816    |     400.9959978407689    |     8.903899791707224e-14
0.005    |     0.1    |     1.3206034290426678    |     4.7315568285138035e+19    |     10506.166666676816    |     300.9969983805781    |     6.683475958903575e-14
0.005    |     0.2    |     1.3204818942961338    |     4.7315568285138035e+19    |     10506.166666676816    |     150.99849919028685    |     3.3528402096979903e-14
0.005    |     0.5    |     1.3201703838941503    |     4.7315568285138035e+19    |     10506.166666676816    |     60.99939967611459    |     1.3544587601746947e-14
0.005    |     0.75    |     1.3199921011576614    |     4.7315568285138035e+19    |     10506.166666676816    |     40.999599784076366    |     9.103739936139636e-15
0.005    |     1    |     1.3198865127506896    |     4.7315568285138035e+19    |     10506.166666676816    |     30.999699838057264    |     6.883316103335982e-15
0.0075    |     1e-05    |     1.404300593878447    |     1.7372731761309637e+18    |     385.75213604085417    |     2999933.4645628342    |     6.661190409402349e-10
0.0075    |     2e-05    |     1.3994032633183124    |     1.7372731761309637e+18    |     385.75213604085417    |     1499967.232282145    |     3.3305963149258154e-10
0.0075    |     5e-05    |     1.386805647947958    |     1.7372731761309637e+18    |     385.75213604085417    |     599987.4928880802    |     1.332239858182938e-10
0.0075    |     7.5e-05    |     1.3783815287748937    |     1.7372731761309637e+18    |     385.75213604085417    |     399991.9952527292    |     8.881606455906726e-11
0.0075    |     0.0001    |     1.3714017808048378    |     1.7372731761309637e+18    |     385.75213604085417    |     299994.24643613514    |     6.661210392969411e-11
0.0075    |     0.0002    |     1.352783451657262    |     1.7372731761309637e+18    |     385.75213604085417    |     149997.6232191162    |     3.330616298738236e-11
0.0075    |     0.0005    |     1.3320471009302473    |     1.7372731761309637e+18    |     385.75213604085417    |     59999.64928707162    |     1.3322598421588254e-11
0.0075    |     0.00075    |     1.3264972569267337    |     1.7372731761309637e+18    |     385.75213604085417    |     40000.09952468137    |     8.881806295919807e-12
0.0075    |     0.001    |     1.3239147582316242    |     1.7372731761309637e+18    |     385.75213604085417    |     30000.32464348631    |     6.6614102330855985e-12
0.0075    |     0.002    |     1.3209497744222265    |     1.7372731761309637e+18    |     385.75213604085417    |     15000.66232173369    |     3.33081613884316e-12
0.0075    |     0.005    |     1.32030667526022    |     1.7372731761309637e+18    |     385.75213604085417    |     6000.864928690638    |     1.332459682299589e-12
0.0075    |     0.0075    |     1.3203572891448485    |     1.7372731761309637e+18    |     385.75213604085417    |     4000.9099524600265    |     8.883804697346124e-13
0.0075    |     0.01    |     1.3204149453606089    |     1.7372731761309637e+18    |     385.75213604085417    |     3000.932464345096    |     6.663408634522074e-13
0.0075    |     0.02    |     1.3205391985944162    |     1.7372731761309637e+18    |     385.75213604085417    |     1500.9662321724334    |     3.332814540285408e-13
0.0075    |     0.05    |     1.3206077953595612    |     1.7372731761309637e+18    |     385.75213604085417    |     600.9864928689655    |     1.3344580837436958e-13
0.0075    |     0.075    |     1.320600144100872    |     1.7372731761309637e+18    |     385.75213604085417    |     400.9909952459681    |     8.90378871178861e-14
0.0075    |     0.1    |     1.320579675219363    |     1.7372731761309637e+18    |     385.75213604085417    |     300.99324643447636    |     6.683392648964589e-14
0.0075    |     0.2    |     1.3204703143593972    |     1.7372731761309637e+18    |     385.75213604085417    |     150.99662321723713    |     3.352798554728523e-14
0.0075    |     0.5    |     1.320166367422988    |     1.7372731761309637e+18    |     385.75213604085417    |     60.998649286894484    |     1.3544420981869028e-14
0.0075    |     0.75    |     1.3199897942613739    |     1.7372731761309637e+18    |     385.75213604085417    |     40.99909952459634    |     9.103628856221033e-15
0.0075    |     1    |     1.3198850669656137    |     1.7372731761309637e+18    |     385.75213604085417    |     30.9993246434473    |     6.8832327933970424e-15
0.01    |     1e-05    |     1.4061992061470945    |     9.15881260810045e+18    |     2033.66492714806    |     2999880.9389639026    |     6.661073779143717e-10
0.01    |     2e-05    |     1.4035355143448425    |     9.15881260810045e+18    |     2033.66492714806    |     1499940.969350007    |     3.330537999501908e-10
0.01    |     5e-05    |     1.395627182515116    |     9.15881260810045e+18    |     2033.66492714806    |     599976.9877232183    |     1.3322165320311236e-10
0.01    |     7.5e-05    |     1.389760075244399    |     9.15881260810045e+18    |     2033.66492714806    |     399984.9918138873    |     8.881450948325649e-11
0.01    |     0.0001    |     1.3845164268287486    |     9.15881260810045e+18    |     2033.66492714806    |     299988.99385887664    |     6.66109376232519e-11
0.01    |     0.0002    |     1.368340200656151    |     9.15881260810045e+18    |     2033.66492714806    |     149994.9969292092    |     3.3305579833877544e-11
0.01    |     0.0005    |     1.3439837129673218    |     9.15881260810045e+18    |     2033.66492714806    |     59998.598771298515    |     1.3322365160228448e-11
0.01    |     0.00075    |     1.335093711991605    |     9.15881260810045e+18    |     2033.66492714806    |     39999.399180849905    |     8.881650788350438e-12
0.01    |     0.001    |     1.3301839804871138    |     9.15881260810045e+18    |     2033.66492714806    |     29999.799385624003    |     6.661293602411079e-12
0.01    |     0.002    |     1.3231293127499864    |     9.15881260810045e+18    |     2033.66492714806    |     15000.399692799341    |     3.3307578235051907e-12
0.01    |     0.005    |     1.3204830758443515    |     9.15881260810045e+18    |     2033.66492714806    |     6000.7598771195135    |     1.3324363561649818e-12
0.01    |     0.0075    |     1.3203100371670242    |     9.15881260810045e+18    |     2033.66492714806    |     4000.839918079025    |     8.883649189781518e-13
0.01    |     0.01    |     1.320308943205694    |     9.15881260810045e+18    |     2033.66492714806    |     3000.879938558849    |     6.663292003847519e-13
0.01    |     0.02    |     1.3204273423452193    |     9.15881260810045e+18    |     2033.66492714806    |     1500.9399692794002    |     3.3327562249483305e-13
0.01    |     0.05    |     1.3205480387004698    |     9.15881260810045e+18    |     2033.66492714806    |     600.9759877117588    |     1.3344347576088794e-13
0.01    |     0.075    |     1.3205583477737104    |     9.15881260810045e+18    |     2033.66492714806    |     400.9839918078323    |     8.903633204223211e-14
0.01    |     0.1    |     1.320547778680883    |     9.15881260810045e+18    |     2033.66492714806    |     300.98799385587427    |     6.683276018290535e-14
0.01    |     0.2    |     1.3204544411843475    |     9.15881260810045e+18    |     2033.66492714806    |     150.99399692793642    |     3.3527402393915034e-14
0.01    |     0.5    |     1.3201607967208802    |     9.15881260810045e+18    |     2033.66492714806    |     60.99759877117422    |     1.3544187720520954e-14
0.01    |     0.75    |     1.3199865871021215    |     9.15881260810045e+18    |     2033.66492714806    |     40.99839918078277    |     9.103473348655637e-15
0.01    |     1    |     1.3198830550759415    |     9.15881260810045e+18    |     2033.66492714806    |     30.998799385587116    |     6.8831161627229944e-15
0.02    |     1e-05    |     1.3991967821771687    |     4.596172752109427e+18    |     1020.5553629093316    |     2999520.8077985244    |     6.660274127320341e-10
0.02    |     2e-05    |     1.4033527820009084    |     4.596172752109427e+18    |     1020.5553629093316    |     1499760.9038967583    |     3.3301381738776355e-10
0.02    |     5e-05    |     1.4040547659095226    |     4.596172752109427e+18    |     1020.5553629093316    |     599904.9615311394    |     1.3320566017574796e-10
0.02    |     7.5e-05    |     1.4028711082098146    |     4.596172752109427e+18    |     1020.5553629093316    |     399936.9743506041    |     8.880384746459227e-11
0.02    |     0.0001    |     1.4014091897441256    |     4.596172752109427e+18    |     1020.5553629093316    |     299952.98076160415    |     6.660294110929591e-11
0.02    |     0.0002    |     1.3952513762994323    |     4.596172752109427e+18    |     1020.5553629093316    |     149976.99038130237    |     3.3301581577061505e-11
0.02    |     0.0005    |     1.3796701173934471    |     4.596172752109427e+18    |     1020.5553629093316    |     59991.39615212075    |     1.3320765857498696e-11
0.02    |     0.00075    |     1.3699232085655064    |     4.596172752109427e+18    |     1020.5553629093316    |     39994.5974347125    |     8.880584586526408e-12
0.02    |     0.001    |     1.362292110296485    |     4.596172752109427e+18    |     1020.5553629093316    |     29996.198076027966    |     6.660493951044614e-12
0.02    |     0.002    |     1.3439496124690997    |     4.596172752109427e+18    |     1020.5553629093316    |     14998.599038011473    |     3.330357997824212e-12
0.02    |     0.005    |     1.3272089427378684    |     4.596172752109427e+18    |     1020.5553629093316    |     6000.039615202919    |     1.332276425892269e-12
0.02    |     0.0075    |     1.323532461862641    |     4.596172752109427e+18    |     1020.5553629093316    |     4000.3597434684293    |     8.88258298796447e-13
0.02    |     0.01    |     1.3219923714906017    |     4.596172752109427e+18    |     1020.5553629093316    |     3000.5198076010715    |     6.662492352485109e-13
0.02    |     0.02    |     1.3204676186157385    |     4.596172752109427e+18    |     1020.5553629093316    |     1500.7599038004946    |     3.332356399267088e-13
0.02    |     0.05    |     1.3202928659769584    |     4.596172752109427e+18    |     1020.5553629093316    |     600.9039615201905    |     1.334274827336369e-13
0.02    |     0.075    |     1.3203431410941724    |     4.596172752109427e+18    |     1020.5553629093316    |     400.9359743467912    |     8.902567002406575e-14
0.02    |     0.1    |     1.320369937260628    |     4.596172752109427e+18    |     1020.5553629093316    |     300.95198076008995    |     6.68247636692798e-14
0.02    |     0.2    |     1.320356005679441    |     4.596172752109427e+18    |     1020.5553629093316    |     150.97599038004486    |     3.352340413710239e-14
0.02    |     0.5    |     1.3201242272878075    |     4.596172752109427e+18    |     1020.5553629093316    |     60.990396152017844    |     1.3542588417795952e-14
0.02    |     0.75    |     1.3199652973344642    |     4.596172752109427e+18    |     1020.5553629093316    |     40.99359743467856    |     9.102407146838978e-15
0.02    |     1    |     1.3198696409051938    |     4.596172752109427e+18    |     1020.5553629093316    |     30.99519807600895    |     6.882316511360498e-15
0.05    |     1e-05    |     1.1802626763387565    |     2.292482447793158e+19    |     5090.333594178005    |     2997002.1306760353    |     6.654681540654373e-10
0.05    |     2e-05    |     1.2638668839634342    |     2.292482447793158e+19    |     5090.333594178005    |     1498501.5652584448    |     3.327341880373524e-10
0.05    |     5e-05    |     1.3399914336674565    |     2.292482447793158e+19    |     5090.333594178005    |     599401.2260877036    |     1.3309380843822352e-10
0.05    |     7.5e-05    |     1.3607917455523473    |     2.292482447793158e+19    |     5090.333594178005    |     399601.150725315    |     8.872927964039045e-11
0.05    |     0.0001    |     1.3717399149142016    |     2.292482447793158e+19    |     5090.333594178005    |     299701.11304101965    |     6.654701524078536e-11
0.05    |     0.0002    |     1.388357196418246    |     2.292482447793158e+19    |     5090.333594178005    |     149851.0565198782    |     3.3273618642554895e-11
0.05    |     0.0005    |     1.3960809195486679    |     2.292482447793158e+19    |     5090.333594178005    |     59941.02260797523    |     1.330958068379023e-11
0.05    |     0.00075    |     1.395825918790288    |     2.292482447793158e+19    |     5090.333594178005    |     39961.015071850336    |     8.87312780403223e-12
0.05    |     0.001    |     1.3944270862078088    |     2.292482447793158e+19    |     5090.333594178005    |     29971.011303897183    |     6.6549013641774975e-12
0.05    |     0.002    |     1.3868038656182429    |     2.292482447793158e+19    |     5090.333594178005    |     14986.005651941321    |     3.327561704389597e-12
0.05    |     0.005    |     1.3676102367336447    |     2.292482447793158e+19    |     5090.333594178005    |     5995.002260777155    |     1.331157908518933e-12
0.05    |     0.0075    |     1.3569104532323966    |     2.292482447793158e+19    |     5090.333594178005    |     3997.0015071830744    |     8.875126205472204e-13
0.05    |     0.01    |     1.3492964425395066    |     2.292482447793158e+19    |     5090.333594178005    |     2998.001130387283    |     6.656899765616415e-13
0.05    |     0.02    |     1.3337278030826976    |     2.292482447793158e+19    |     5090.333594178005    |     1499.500565193526    |     3.3295601058325763e-13
0.05    |     0.05    |     1.3230623528240189    |     2.292482447793158e+19    |     5090.333594178005    |     600.4002260774155    |     1.333156309962592e-13
0.05    |     0.075    |     1.3212917568278908    |     2.292482447793158e+19    |     5090.333594178005    |     400.6001507182743    |     8.895110219914721e-14
0.05    |     0.1    |     1.3206495137172813    |     2.292482447793158e+19    |     5090.333594178005    |     300.70011303870496    |     6.67688378005915e-14
0.05    |     0.2    |     1.3201079927565518    |     2.292482447793158e+19    |     5090.333594178005    |     150.85005651935137    |     3.349544120275802e-14
0.05    |     0.5    |     1.3199430633401974    |     2.292482447793158e+19    |     5090.333594178005    |     60.940022607740424    |     1.3531403244058199e-14
0.05    |     0.75    |     1.3198490982380757    |     2.292482447793158e+19    |     5090.333594178005    |     40.96001507182699    |     9.094950364347151e-15
0.05    |     1    |     1.3197937467706273    |     2.292482447793158e+19    |     5090.333594178005    |     30.970011303870223    |     6.876723924491617e-15
0.075    |     1e-05    |     1.0289125856997683    |     2.5655434447895905e+18    |     569.6650806163085    |     2993261.340844146    |     6.646375318651079e-10
0.075    |     2e-05    |     1.06833574230173    |     2.5655434447895905e+18    |     569.6650806163085    |     1496631.170356869    |     3.323188769403782e-10
0.075    |     5e-05    |     1.1788194485853987    |     2.5655434447895905e+18    |     569.6650806163085    |     598653.0681396328    |     1.3292768400222262e-10
0.075    |     7.5e-05    |     1.229861581346619    |     2.5655434447895905e+18    |     569.6650806163085    |     399102.3787592882    |     8.861853001624636e-11
0.075    |     0.0001    |     1.2625315302908773    |     2.5655434447895905e+18    |     569.6650806163085    |     299327.0340661838    |     6.646395302260717e-11
0.075    |     0.0002    |     1.3241269630070216    |     2.5655434447895905e+18    |     569.6650806163085    |     149664.01703276392    |     3.323208753353322e-11
0.075    |     0.0005    |     1.3699287056814906    |     2.5655434447895905e+18    |     569.6650806163085    |     59866.20681304865    |     1.3292968240163605e-11
0.075    |     0.00075    |     1.3804567145238036    |     2.5655434447895905e+18    |     569.6650806163085    |     39911.137875334636    |     8.862052841637133e-12
0.075    |     0.001    |     1.3852806670848645    |     2.5655434447895905e+18    |     569.6650806163085    |     29933.60340651576    |     6.646595142382363e-12
0.075    |     0.002    |     1.389766784950012    |     2.5655434447895905e+18    |     569.6650806163085    |     14967.301703250861    |     3.3234085934920857e-12
0.075    |     0.005    |     1.3829509021399737    |     2.5655434447895905e+18    |     569.6650806163085    |     5987.520681298484    |     1.3294966641593762e-12
0.075    |     0.0075    |     1.3758254841268682    |     2.5655434447895905e+18    |     569.6650806163085    |     3992.013787532067    |     8.864051243078357e-13
0.075    |     0.01    |     1.3694975238618983    |     2.5655434447895905e+18    |     569.6650806163085    |     2994.2603406490575    |     6.648593543821096e-13
0.075    |     0.02    |     1.3518655278680678    |     2.5655434447895905e+18    |     569.6650806163085    |     1497.630170324489    |     3.325406994935085e-13
0.075    |     0.05    |     1.3317271553627905    |     2.5655434447895905e+18    |     569.6650806163085    |     599.6520681297745    |     1.3314950656035374e-13
0.075    |     0.075    |     1.3262949589526654    |     2.5655434447895905e+18    |     569.6650806163085    |     400.1013787531858    |     8.884035257521146e-14
0.075    |     0.1    |     1.3237555826770928    |     2.5655434447895905e+18    |     569.6650806163085    |     300.3260340648898    |     6.668577558263996e-14
0.075    |     0.2    |     1.3207755491672837    |     2.5655434447895905e+18    |     569.6650806163085    |     150.6630170324437    |     3.345391009378222e-14
0.075    |     0.5    |     1.3198839335916897    |     2.5655434447895905e+18    |     569.6650806163085    |     60.86520681297757    |     1.3514790800467928e-14
0.075    |     0.75    |     1.3197723726186081    |     2.5655434447895905e+18    |     569.6650806163085    |     40.91013787531835    |     9.083875401953622e-15
0.075    |     1    |     1.3197346497546036    |     2.5655434447895905e+18    |     569.6650806163085    |     30.932603406488766    |     6.868417702696476e-15
0.1    |     1e-05    |     1.0798981068160698    |     1.4534741232350866e+18    |     322.73608746249107    |     2988038.7413779353    |     6.634778818299514e-10
0.1    |     2e-05    |     1.034411147287902    |     1.4534741232350866e+18    |     322.73608746249107    |     1494019.8706289497    |     3.3173905192395153e-10
0.1    |     5e-05    |     1.0485665416883234    |     1.4534741232350866e+18    |     322.73608746249107    |     597608.5482298866    |     1.3269575399152668e-10
0.1    |     7.5e-05    |     1.0859812540943814    |     1.4534741232350866e+18    |     322.73608746249107    |     398406.0321496727    |     8.846391000842339e-11
0.1    |     0.0001    |     1.1199271289309896    |     1.4534741232350866e+18    |     322.73608746249107    |     298804.7741134506    |     6.634798801773436e-11
0.1    |     0.0002    |     1.2092033599799092    |     1.4534741232350866e+18    |     322.73608746249107    |     149402.88705538897    |     3.317410503087292e-11
0.1    |     0.0005    |     1.305803183492356    |     1.4534741232350866e+18    |     322.73608746249107    |     59761.75482211882    |     1.3269775239103958e-11
0.1    |     0.00075    |     1.3347573633949794    |     1.4534741232350866e+18    |     322.73608746249107    |     39841.5032147429    |     8.846590840936952e-12
0.1    |     0.001    |     1.3503821090957047    |     1.4534741232350866e+18    |     322.73608746249107    |     29881.37741105147    |     6.634998641852679e-12
0.1    |     0.002    |     1.374194887133274    |     1.4534741232350866e+18    |     322.73608746249107    |     14941.188705527122    |     3.3176103432291097e-12
0.1    |     0.005    |     1.3835828525725824    |     1.4534741232350866e+18    |     322.73608746249107    |     5977.075482208381    |     1.327177364054051e-12
0.1    |     0.0075    |     1.381710463377333    |     1.4534741232350866e+18    |     322.73608746249107    |     3985.050321472298    |     8.848589242376854e-13
0.1    |     0.01    |     1.378484030173927    |     1.4534741232350866e+18    |     322.73608746249107    |     2989.0377411040554    |     6.63699704329458e-13
0.1    |     0.02    |     1.365360961026239    |     1.4534741232350866e+18    |     322.73608746249107    |     1495.018870551993    |     3.319608744671838e-13
0.1    |     0.05    |     1.3428726584962276    |     1.4534741232350866e+18    |     322.73608746249107    |     598.607548220793    |     1.329175765498276e-13
0.1    |     0.075    |     1.3344025162997288    |     1.4534741232350866e+18    |     322.73608746249107    |     399.4050321471928    |     8.868573256819285e-14
0.1    |     0.1    |     1.3296947739898706    |     1.4534741232350866e+18    |     322.73608746249107    |     299.80377411039274    |     6.656981057737548e-14
0.1    |     0.2    |     1.3228751118106652    |     1.4534741232350866e+18    |     322.73608746249107    |     150.40188705519589    |     3.339592759115015e-14
0.1    |     0.5    |     1.320130553011318    |     1.4534741232350866e+18    |     322.73608746249107    |     60.76075482207832    |     1.3491597799415071e-14
0.1    |     0.75    |     1.319826836642748    |     1.4534741232350866e+18    |     322.73608746249107    |     40.84050321471888    |     9.068413401251725e-15
0.1    |     1    |     1.3197458467857655    |     1.4534741232350866e+18    |     322.73608746249107    |     30.880377411039163    |     6.856821202170052e-15
0.2    |     1e-05    |     1.034878071426437    |     8.562996015832429e+17    |     190.13670673101288    |     2952676.851384146    |     6.556259649368781e-10
0.2    |     2e-05    |     1.099054270537908    |     8.562996015832429e+17    |     190.13670673101288    |     1476338.9256587334    |     3.278130934833386e-10
0.2    |     5e-05    |     1.118668157567818    |     8.562996015832429e+17    |     190.13670673101288    |     590536.170254422    |     1.3112537061808416e-10
0.2    |     7.5e-05    |     1.106463291346616    |     8.562996015832429e+17    |     190.13670673101288    |     393691.1135038531    |     8.741698776045872e-11
0.2    |     0.0001    |     1.091806769704812    |     8.562996015832429e+17    |     190.13670673101288    |     295268.58512797963    |     6.556279633151521e-11
0.2    |     0.0002    |     1.0475901909841485    |     8.562996015832429e+17    |     190.13670673101288    |     147634.79256333216    |     3.278150918791404e-11
0.2    |     0.0005    |     1.0237060377513256    |     8.562996015832429e+17    |     190.13670673101288    |     59054.517025191155    |     1.3112736901897105e-11
0.2    |     0.00075    |     1.04286126411308    |     8.562996015832429e+17    |     190.13670673101288    |     39370.011350120825    |     8.741898616131577e-12
0.2    |     0.001    |     1.0675482361224131    |     8.562996015832429e+17    |     190.13670673101288    |     29527.758512602293    |     6.556479473252506e-12
0.2    |     0.002    |     1.150251960798731    |     8.562996015832429e+17    |     190.13670673101288    |     14764.379256294229    |     3.2783507589271796e-12
0.2    |     0.005    |     1.2613461172689404    |     8.562996015832429e+17    |     190.13670673101288    |     5906.351702517787    |     1.311473530333848e-12
0.2    |     0.0075    |     1.2986164432111689    |     8.562996015832429e+17    |     190.13670673101288    |     3937.9011350116157    |     8.743897017574866e-13
0.2    |     0.01    |     1.3193653278045645    |     8.562996015832429e+17    |     190.13670673101288    |     2953.6758512586707    |     6.558477874693371e-13
0.2    |     0.02    |     1.3511101649720016    |     8.562996015832429e+17    |     190.13670673101288    |     1477.3379256293263    |     3.2803491603712903e-13
0.2    |     0.05    |     1.361365740618009    |     8.562996015832429e+17    |     190.13670673101288    |     591.5351702517382    |     1.3134719317780835e-13
0.2    |     0.075    |     1.3577244256580792    |     8.562996015832429e+17    |     190.13670673101288    |     394.69011350115363    |     8.763881032017942e-14
0.2    |     0.1    |     1.35321206907301    |     8.562996015832429e+17    |     190.13670673101288    |     296.26758512586605    |     6.578461889136601e-14
0.2    |     0.2    |     1.3396807959929746    |     8.562996015832429e+17    |     190.13670673101288    |     148.6337925629331    |     3.300333174814554e-14
0.2    |     0.5    |     1.3258785979549303    |     8.562996015832429e+17    |     190.13670673101288    |     60.05351702517299    |     1.3334559462213177e-14
0.2    |     0.75    |     1.3227927985529944    |     8.562996015832429e+17    |     190.13670673101288    |     40.369011350115315    |     8.96372117645046e-15
0.2    |     1    |     1.321535717952325    |     8.562996015832429e+17    |     190.13670673101288    |     30.5267585125865    |     6.778302033569106e-15
0.5    |     1e-05    |     0.24096794492402857    |     980258980477233.9    |     0.21766121804428137    |     2725466.7390964394    |     6.051751853189823e-10
0.5    |     2e-05    |     0.24490838803503873    |     980258980477233.9    |     0.21766121804428137    |     1362733.8714523853    |     3.025877041046033e-10
0.5    |     5e-05    |     0.26603719418936833    |     980258980477233.9    |     0.21766121804428137    |     545094.1490353851    |     1.2103521496950822e-10
0.5    |     7.5e-05    |     0.3041435170925932    |     980258980477233.9    |     0.21766121804428137    |     363396.432758199    |     8.069021734296e-11
0.5    |     0.0001    |     0.3466455959864901    |     980258980477233.9    |     0.21766121804428137    |     272547.57459426456    |     6.051771852405897e-11
0.5    |     0.0002    |     0.48965105730966685    |     980258980477233.9    |     0.21766121804428137    |     136274.2873159813    |     3.025897028851727e-11
0.5    |     0.0005    |     0.7000258094502446    |     980258980477233.9    |     0.21766121804428137    |     54510.31493093633    |     1.2103721343178792e-11
0.5    |     0.00075    |     0.7803152404537564    |     980258980477233.9    |     0.21766121804428137    |     36340.54328796332    |     8.069221577136814e-12
0.5    |     0.001    |     0.8291864833507758    |     980258980477233.9    |     0.21766121804428137    |     27255.657466223165    |     6.0519716940595025e-12
0.5    |     0.002    |     0.9148557625310408    |     980258980477233.9    |     0.21766121804428137    |     13628.32873330063    |     3.0260968693741908e-12
0.5    |     0.005    |     0.9605054768523522    |     980258980477233.9    |     0.21766121804428137    |     5451.931493366453    |     1.21057197452289e-12
0.5    |     0.0075    |     0.9664986040888508    |     980258980477233.9    |     0.21766121804428137    |     3634.9543289176663    |     8.071219978850555e-13
0.5    |     0.01    |     0.9715770597539694    |     980258980477233.9    |     0.21766121804428137    |     2726.465746690786    |     6.053970095655861e-13
0.5    |     0.02    |     1.0046221692212978    |     980258980477233.9    |     0.21766121804428137    |     1363.7328733473048    |     3.0280952708568005e-13
0.5    |     0.05    |     1.1047795554227993    |     980258980477233.9    |     0.21766121804428137    |     546.0931493393778    |     1.2125703759732826e-13
0.5    |     0.075    |     1.158142451657815    |     980258980477233.9    |     0.21766121804428137    |     364.395432892986    |     8.091203993320883e-14
0.5    |     0.1    |     1.1943040342674953    |     980258980477233.9    |     0.21766121804428137    |     273.5465746697651    |     6.073954110114357e-14
0.5    |     0.2    |     1.2650403625958067    |     980258980477233.9    |     0.21766121804428137    |     137.27328733490157    |     3.048079285303852e-14
0.5    |     0.5    |     1.3129959855689677    |     980258980477233.9    |     0.21766121804428137    |     55.50931493396519    |     1.2325543904171442e-14
0.5    |     0.75    |     1.320563153538016    |     980258980477233.9    |     0.21766121804428137    |     37.3395432893108    |     8.29104413775612e-15
0.5    |     1    |     1.322880946564286    |     980258980477233.9    |     0.21766121804428137    |     28.254657466983357    |     6.273794254548405e-15
0.75    |     1e-05    |     0.2224499701913163    |     3532627464900.7993    |     0.0007844008697912129    |     2442727.9074404994    |     5.423945531469741e-10
0.75    |     2e-05    |     0.20530606055267492    |     3532627464900.7993    |     0.0007844008697912129    |     1221364.876011224    |     2.711974813632221e-10
0.75    |     5e-05    |     0.2085533760821295    |     3532627464900.7993    |     0.0007844008697912129    |     488546.6517436233    |     1.084791482738597e-10
0.75    |     7.5e-05    |     0.21981047089552586    |     3532627464900.7993    |     0.0007844008697912129    |     325698.1161762267    |     7.23195095311772e-11
0.75    |     0.0001    |     0.22929183435173858    |     3532627464900.7993    |     0.0007844008697912129    |     244273.84276196134    |     5.4239688909598923e-11
0.75    |     0.0002    |     0.25206556710849465    |     3532627464900.7993    |     0.0007844008697912129    |     122137.4256038074    |     2.7119956414757816e-11
0.75    |     0.0005    |     0.29114658168992563    |     3532627464900.7993    |     0.0007844008697912129    |     48855.571254952665    |     1.084811601769268e-11
0.75    |     0.00075    |     0.32523987895143874    |     3532627464900.7993    |     0.0007844008697912129    |     32570.714320096464    |     7.232151393331879e-12
0.75    |     0.001    |     0.35990828966432387    |     3532627464900.7993    |     0.0007844008697912129    |     24428.285796379587    |     5.424169068652859e-12
0.75    |     0.002    |     0.4758051392903338    |     3532627464900.7993    |     0.0007844008697912129    |     12214.642940416235    |     2.7121955660050457e-12
0.75    |     0.005    |     0.6515260879776209    |     3532627464900.7993    |     0.0007844008697912129    |     4886.457186300838    |     1.0850114554152496e-12
0.75    |     0.0075    |     0.7197356993725796    |     3532627464900.7993    |     0.0007844008697912129    |     3257.9714590352405    |     7.234149854785078e-13
0.75    |     0.01    |     0.7617582568840171    |     3532627464900.7993    |     0.0007844008697912129    |     2443.7285948394756    |     5.426167503851333e-13
0.75    |     0.02    |     0.8408992984214783    |     3532627464900.7993    |     0.0007844008697912129    |     1222.3642978419875    |     2.714193975887874e-13
0.75    |     0.05    |     0.9210906761308861    |     3532627464900.7993    |     0.0007844008697912129    |     489.5457192381444    |     1.0870098582097407e-13
0.75    |     0.075    |     0.9624492708631208    |     3532627464900.7993    |     0.0007844008697912129    |     326.69714617377673    |     7.254133875229146e-14
0.75    |     0.1    |     0.9968207350967749    |     3532627464900.7993    |     0.0007844008697912129    |     245.2728596359627    |     5.4461515216699997e-14
0.75    |     0.2    |     1.0921914353907192    |     3532627464900.7993    |     0.0007844008697912129    |     123.13642982220418    |     2.734177991175017e-14
0.75    |     0.5    |     1.2113887072395224    |     3532627464900.7993    |     0.0007844008697912129    |     49.85457192989512    |     1.1069938727880118e-14
0.75    |     0.75    |     1.2502765485666594    |     3532627464900.7993    |     0.0007844008697912129    |     33.56971462008021    |     7.453974020261758e-15
0.75    |     1    |     1.2715113409155712    |     3532627464900.7993    |     0.0007844008697912129    |     25.427285965116454    |     5.645991666440076e-15
1.0    |     1e-05    |     0.3201790446663786    |     63914578843.30032    |     1.4191887408210385e-05    |     2130369.1131565426    |     4.730369680753338e-10
1.0    |     2e-05    |     0.30074023142892836    |     63914578843.30032    |     1.4191887408210385e-05    |     1065202.8089900897    |     2.3652253688723805e-10
1.0    |     5e-05    |     0.26987296047072223    |     63914578843.30032    |     1.4191887408210385e-05    |     426085.98427822563    |     9.461009404315171e-11
1.0    |     7.5e-05    |     0.255971387187336    |     63914578843.30032    |     1.4191887408210385e-05    |     284058.28740671236    |     6.307361020290444e-11
1.0    |     0.0001    |     0.24652041427480517    |     63914578843.30032    |     1.4191887408210385e-05    |     213044.20226336323    |     4.730531572313695e-11
1.0    |     0.0002    |     0.2298542106226902    |     63914578843.30032    |     1.4191887408210385e-05    |     106522.77866349413    |     2.365280830385211e-11
1.0    |     0.0005    |     0.23919407237621151    |     63914578843.30032    |     1.4191887408210385e-05    |     42609.754073134274    |     9.461266009121844e-12
1.0    |     0.00075    |     0.25539979901780313    |     63914578843.30032    |     1.4191887408210385e-05    |     28406.842361022733    |     6.307586089220936e-12
1.0    |     0.001    |     0.2695794334088568    |     63914578843.30032    |     1.4191887408210385e-05    |     21305.384137872177    |     4.730745603669856e-12
1.0    |     0.002    |     0.31063876807450386    |     63914578843.30032    |     1.4191887408210385e-05    |     10653.193844259556    |     2.3654842183383887e-12
1.0    |     0.005    |     0.3936609595496504    |     63914578843.30032    |     1.4191887408210385e-05    |     4261.877963782238    |     9.46327008706724e-13
1.0    |     0.0075    |     0.4469915900961469    |     63914578843.30032    |     1.4191887408210385e-05    |     2841.5853723107916    |     6.309587013554977e-13
1.0    |     0.01    |     0.49016736300399305    |     63914578843.30032    |     1.4191887408210385e-05    |     2131.4390529041125    |     4.732745424238766e-13
1.0    |     0.02    |     0.6017532446914196    |     63914578843.30032    |     1.4191887408210385e-05    |     1066.21954420533    |     2.3674829745641947e-13
1.0    |     0.05    |     0.7405769938099301    |     63914578843.30032    |     1.4191887408210385e-05    |     427.0878219429178    |     9.48325466916073e-14
1.0    |     0.075    |     0.7971634633262175    |     63914578843.30032    |     1.4191887408210385e-05    |     285.05854859317236    |     6.32957128028738e-14
1.0    |     0.1    |     0.8372760302121777    |     63914578843.30032    |     1.4191887408210385e-05    |     214.04391168158926    |     4.752729580594678e-14
1.0    |     0.2    |     0.9403435142235629    |     63914578843.30032    |     1.4191887408210385e-05    |     107.52195601832736    |     2.387467024485609e-14
1.0    |     0.5    |     1.0888716539372494    |     63914578843.30032    |     1.4191887408210385e-05    |     43.60878244993884    |     9.68309487035831e-15
1.0    |     0.75    |     1.1499813978771314    |     63914578843.30032    |     1.4191887408210385e-05    |     29.40585497293815    |     6.529411449948819e-15
1.0    |     1    |     1.1884279444711843    |     63914578843.30032    |     1.4191887408210385e-05    |     22.304391232070714    |     4.952569739218474e-15
2.0    |     1e-05    |     0.3771752708028818    |     4995157.201079173    |     1.1091477072520501e-09    |     931785.0004902228    |     2.0689783230892163e-10
2.0    |     2e-05    |     0.3655473904437711    |     4995157.201079173    |     1.1091477072520501e-09    |     513815.8738667831    |     1.1409004271695957e-10
2.0    |     5e-05    |     0.3556659370171325    |     4995157.201079173    |     1.1091477072520501e-09    |     219045.86744179655    |     4.8637953096574494e-11
2.0    |     7.5e-05    |     0.3535036870211835    |     4995157.201079173    |     1.1091477072520501e-09    |     148197.11674353815    |     3.290637023834767e-11
2.0    |     0.0001    |     0.3528173534980046    |     4995157.201079173    |     1.1091477072520501e-09    |     111978.62460515015    |     2.4864249460498955e-11
2.0    |     0.0002    |     0.35343475255308104    |     4995157.201079173    |     1.1091477072520501e-09    |     56624.48346399592    |     1.2573161059846943e-11
2.0    |     0.0005    |     0.3550242415453222    |     4995157.201079173    |     1.1091477072520501e-09    |     22805.49604335586    |     5.063837359066316e-12
2.0    |     0.00075    |     0.35371635738709434    |     4995157.201079173    |     1.1091477072520501e-09    |     15227.168148581388    |     3.3811105356787747e-12
2.0    |     0.001    |     0.35159094176904937    |     4995157.201079173    |     1.1091477072520501e-09    |     11429.335035838723    |     2.537822182588628e-12
2.0    |     0.002    |     0.3437425980245058    |     4995157.201079173    |     1.1091477072520501e-09    |     5721.711678609065    |     1.2704752091716875e-12
2.0    |     0.005    |     0.3384378232843943    |     4995157.201079173    |     1.1091477072520501e-09    |     2290.858149957779    |     5.086726928466632e-13
2.0    |     0.0075    |     0.34349118443995413    |     4995157.201079173    |     1.1091477072520501e-09    |     1527.8054038403636    |     3.3924094729806145e-13
2.0    |     0.01    |     0.35145093865438215    |     4995157.201079173    |     1.1091477072520501e-09    |     1146.1915618887438    |     2.545056525279907e-13
2.0    |     0.02    |     0.3879545312712362    |     4995157.201079173    |     1.1091477072520501e-09    |     573.6614252411312    |     1.2737842452839735e-13
2.0    |     0.05    |     0.47107485080566824    |     4995157.201079173    |     1.1091477072520501e-09    |     230.08032761773362    |     5.108809544690143e-14
2.0    |     0.075    |     0.5172647100633155    |     4995157.201079173    |     1.1091477072520501e-09    |     153.72255305569738    |     3.413326356131949e-14
2.0    |     0.1    |     0.5526131904880445    |     4995157.201079173    |     1.1091477072520501e-09    |     115.54279030330187    |     2.5655653224832402e-14
2.0    |     0.2    |     0.6463104722195465    |     4995157.201079173    |     1.1091477072520501e-09    |     58.27205179784529    |     1.2938994719623518e-14
2.0    |     0.5    |     0.7972439807925051    |     4995157.201079173    |     1.1091477072520501e-09    |     23.908978317115814    |     5.308859644585121e-15
2.0    |     0.75    |     0.8774340306364916    |     4995157.201079173    |     1.1091477072520501e-09    |     16.272675559455422    |     3.613259815672492e-15
2.0    |     1    |     0.9386486865700188    |     4995157.201079173    |     1.1091477072520501e-09    |     12.454515425128454    |     2.765457957105356e-15
5.0    |     1e-05    |     0.7290963744458004    |     555.636804006467    |     1.23376154627423e-13    |     554.9108780960391    |     1.2321496669543722e-13
5.0    |     2e-05    |     0.729116226423653    |     555.636804006467    |     1.23376154627423e-13    |     554.1868499306469    |     1.230542001474981e-13
5.0    |     5e-05    |     0.7291757523892822    |     555.636804006467    |     1.23376154627423e-13    |     552.0260777777667    |     1.225744123484788e-13
5.0    |     7.5e-05    |     0.729225323038207    |     555.636804006467    |     1.23376154627423e-13    |     550.2382870339197    |     1.2217744305907268e-13
5.0    |     0.0001    |     0.7292748625029514    |     555.636804006467    |     1.23376154627423e-13    |     548.462059660397    |     1.217830413536618e-13
5.0    |     0.0002    |     0.7294727088701933    |     555.636804006467    |     1.23376154627423e-13    |     541.470568779268    |     1.2023061852312455e-13
5.0    |     0.0005    |     0.7300632679255015    |     555.636804006467    |     1.23376154627423e-13    |     521.5279990898952    |     1.1580247851525786e-13
5.0    |     0.00075    |     0.7305520056062911    |     555.636804006467    |     1.23376154627423e-13    |     505.99987151524925    |     1.1235454156272012e-13
5.0    |     0.001    |     0.731037681432382    |     555.636804006467    |     1.23376154627423e-13    |     491.37136147682907    |     1.0910635983059726e-13
5.0    |     0.002    |     0.7329502858896307    |     555.636804006467    |     1.23376154627423e-13    |     440.4522822110097    |     9.780005299187204e-14
5.0    |     0.005    |     0.7384152522426066    |     555.636804006467    |     1.23376154627423e-13    |     336.0726653659447    |     7.462312220728345e-14
5.0    |     0.0075    |     0.742685910400422    |     555.636804006467    |     1.23376154627423e-13    |     280.7085388287958    |     6.232981660332277e-14
5.0    |     0.01    |     0.7467295294070299    |     555.636804006467    |     1.23376154627423e-13    |     241.04573230445237    |     5.3522904398406983e-14
5.0    |     0.02    |     0.7610911745523715    |     555.636804006467    |     1.23376154627423e-13    |     154.16834802636305    |     3.4232249929458513e-14
5.0    |     0.05    |     0.7938460924485602    |     555.636804006467    |     1.23376154627423e-13    |     74.4352551993876    |     1.6527946833241902e-14
5.0    |     0.075    |     0.815067856911206    |     555.636804006467    |     1.23376154627423e-13    |     52.21726682813808    |     1.1594562383118863e-14
5.0    |     0.1    |     0.8333792535955515    |     555.636804006467    |     1.23376154627423e-13    |     40.32070591377204    |     8.952995214921886e-15
5.0    |     0.2    |     0.8919888448352009    |     555.636804006467    |     1.23376154627423e-13    |     21.382869766048398    |     4.747950869365613e-15
5.0    |     0.5    |     1.0120030229593937    |     555.636804006467    |     1.23376154627423e-13    |     9.336977975122132    |     2.0732255856797125e-15
5.0    |     0.75    |     1.0827038377848375    |     555.636804006467    |     1.23376154627423e-13    |     6.585973686347976    |     1.4623799252317884e-15
5.0    |     1    |     1.1385693673981578    |     555.636804006467    |     1.23376154627423e-13    |     5.2000553828745195    |     1.1546442430786551e-15
7.5    |     1e-05    |     1.1579727162941067    |     65.42062274366073    |     1.4526296331065664e-14    |     65.40750197167736    |     1.4523382934434306e-14
7.5    |     2e-05    |     1.157977684282372    |     65.42062274366073    |     1.4526296331065664e-14    |     65.39438654331288    |     1.452047072432469e-14
7.5    |     5e-05    |     1.1579925874856083    |     65.42062274366073    |     1.4526296331065664e-14    |     65.35507228730188    |     1.4511741205880808e-14
7.5    |     7.5e-05    |     1.1580050059490283    |     65.42062274366073    |     1.4526296331065664e-14    |     65.32234705876328    |     1.4504474745438874e-14
7.5    |     0.0001    |     1.1580174236191763    |     65.42062274366073    |     1.4526296331065664e-14    |     65.28965509555218    |     1.449721567138344e-14
7.5    |     0.0002    |     1.1580670863672333    |     65.42062274366073    |     1.4526296331065664e-14    |     65.1592188836095    |     1.446825301423471e-14
7.5    |     0.0005    |     1.158215998465057    |     65.42062274366073    |     1.4526296331065664e-14    |     64.77106671380919    |     1.4382065919040608e-14
7.5    |     0.00075    |     1.1583400046414278    |     65.42062274366073    |     1.4526296331065664e-14    |     64.45117618545733    |     1.431103595305346e-14
7.5    |     0.001    |     1.1584639315271195    |     65.42062274366073    |     1.4526296331065664e-14    |     64.13447892974611    |     1.424071503602822e-14
7.5    |     0.002    |     1.1589588465897578    |     65.42062274366073    |     1.4526296331065664e-14    |     62.89868505684161    |     1.3966313673750365e-14
7.5    |     0.005    |     1.1604360020625992    |     65.42062274366073    |     1.4526296331065664e-14    |     59.46547650580346    |     1.320398823740986e-14
7.5    |     0.0075    |     1.161658314493383    |     65.42062274366073    |     1.4526296331065664e-14    |     56.88254043457721    |     1.2630461217927815e-14
7.5    |     0.01    |     1.162872831495904    |     65.42062274366073    |     1.4526296331065664e-14    |     54.518170529658384    |     1.2105465636493481e-14
7.5    |     0.02    |     1.1676546346371224    |     65.42062274366073    |     1.4526296331065664e-14    |     46.77181528449087    |     1.0385429246471316e-14
7.5    |     0.05    |     1.1813220595206992    |     65.42062274366073    |     1.4526296331065664e-14    |     32.913913723848474    |     7.3083569693485e-15
7.5    |     0.075    |     1.192025682675384    |     65.42062274366073    |     1.4526296331065664e-14    |     26.48423006114886    |     5.8806804006714365e-15
7.5    |     0.1    |     1.2021902002798601    |     65.42062274366073    |     1.4526296331065664e-14    |     22.210881996573836    |     4.931806517965728e-15
7.5    |     0.2    |     1.2385142386896435    |     65.42062274366073    |     1.4526296331065664e-14    |     13.695471638717006    |     3.0410055892808887e-15
7.5    |     0.5    |     1.3202321940460664    |     65.42062274366073    |     1.4526296331065664e-14    |     6.759169742060505    |     1.5008371749970505e-15
7.5    |     0.75    |     1.3692070811077144    |     65.42062274366073    |     1.4526296331065664e-14    |     4.957375592564133    |     1.1007585049158958e-15
7.5    |     1    |     1.4074503211973    |     65.42062274366073    |     1.4526296331065664e-14    |     4.014324376831694    |     8.91359070294516e-16
10.0    |     1e-05    |     1.4570968886841438    |     19.17586490054359    |     4.257897345936976e-15    |     19.174489304841284    |     4.257591902332721e-15
10.0    |     2e-05    |     1.4570993187331154    |     19.17586490054359    |     4.257897345936976e-15    |     19.173113917340388    |     4.257286504958466e-15
10.0    |     5e-05    |     1.4571066086154152    |     19.17586490054359    |     4.257897345936976e-15    |     19.168989003573486    |     4.256370590110744e-15
10.0    |     7.5e-05    |     1.4571126832141397    |     19.17586490054359    |     4.257897345936976e-15    |     19.16555300557406    |     4.255607645292439e-15
10.0    |     0.0001    |     1.457118757537252    |     19.17586490054359    |     4.257897345936976e-15    |     19.162118306915016    |     4.2548449889856545e-15
10.0    |     0.0002    |     1.4571430520739157    |     19.17586490054359    |     4.257897345936976e-15    |     19.148392490952492    |     4.251797245602982e-15
10.0    |     0.0005    |     1.4572159092372132    |     19.17586490054359    |     4.257897345936976e-15    |     19.10733923905199    |     4.242681592503847e-15
10.0    |     0.00075    |     1.4572765932520457    |     19.17586490054359    |     4.257897345936976e-15    |     19.0732698075378    |     4.235116659043259e-15
10.0    |     0.001    |     1.4573372497498753    |     19.17586490054359    |     4.257897345936976e-15    |     19.039328340305325    |     4.227580139361048e-15
10.0    |     0.002    |     1.4575796008997444    |     19.17586490054359    |     4.257897345936976e-15    |     18.904827802739522    |     4.197715020635045e-15
10.0    |     0.005    |     1.4583040248763595    |     19.17586490054359    |     4.257897345936976e-15    |     18.513096874683345    |     4.110733281477895e-15
10.0    |     0.0075    |     1.4589047145245593    |     19.17586490054359    |     4.257897345936976e-15    |     18.199513783630795    |     4.041103847913962e-15
10.0    |     0.01    |     1.459502697662358    |     19.17586490054359    |     4.257897345936976e-15    |     17.89696296052529    |     3.973924069927757e-15
10.0    |     0.02    |     1.461867908452495    |     19.17586490054359    |     4.257897345936976e-15    |     16.786203891155246    |     3.72728601120259e-15
10.0    |     0.05    |     1.468716436218725    |     19.17586490054359    |     4.257897345936976e-15    |     14.185809264834264    |     3.149882413751973e-15
10.0    |     0.075    |     1.4741565641494008    |     19.17586490054359    |     4.257897345936976e-15    |     12.594249511471265    |     2.7964851571019056e-15
10.0    |     0.1    |     1.479371019681003    |     19.17586490054359    |     4.257897345936976e-15    |     11.345519722685252    |     2.5192114444927974e-15
10.0    |     0.2    |     1.4982457886579081    |     19.17586490054359    |     4.257897345936976e-15    |     8.230533331790685    |     1.8275455219797643e-15
10.0    |     0.5    |     1.541009865953393    |     19.17586490054359    |     4.257897345936976e-15    |     4.798974397071008    |     1.0655863740429724e-15
10.0    |     0.75    |     1.5663574352182952    |     19.17586490054359    |     4.257897345936976e-15    |     3.7223151344244276    |     8.265199934297368e-16
10.0    |     1    |     1.5858716852811883    |     19.17586490054359    |     4.257897345936976e-15    |     3.1211613132222835    |     6.930370307017338e-16
20.0    |     1e-05    |     1.728648675651949    |     2.1429162348750768    |     4.75822988760272e-16    |     2.142898417351135    |     4.758190324752077e-16
20.0    |     2e-05    |     1.728648764407431    |     2.1429162348750768    |     4.75822988760272e-16    |     2.142880600382717    |     4.758150763134943e-16
20.0    |     5e-05    |     1.7286490306649482    |     2.1429162348750768    |     4.75822988760272e-16    |     2.1428271528103546    |     4.758032085684049e-16
20.0    |     7.5e-05    |     1.7286492525359833    |     2.1429162348750768    |     4.75822988760272e-16    |     2.1427826169852673    |     4.757933196287184e-16
20.0    |     0.0001    |     1.7286494743977217    |     2.1429162348750768    |     4.75822988760272e-16    |     2.142738084631156    |     4.757834314597433e-16
20.0    |     0.0002    |     1.728650361751707    |     2.1429162348750768    |     4.75822988760272e-16    |     2.1425599899163488    |     4.757438864891547e-16
20.0    |     0.0005    |     1.728653022921501    |     2.1429162348750768    |     4.75822988760272e-16    |     2.142026038687107    |     4.756253254994085e-16
20.0    |     0.00075    |     1.7286552395412744    |     2.1429162348750768    |     4.75822988760272e-16    |     2.1415814604086187    |     4.755266092912033e-16
20.0    |     0.001    |     1.728657455232824    |     2.1429162348750768    |     4.75822988760272e-16    |     2.1411372281343835    |     4.754279699113758e-16
20.0    |     0.002    |     1.7286663087282654    |     2.1429162348750768    |     4.75822988760272e-16    |     2.13936375101392    |     4.750341788848189e-16
20.0    |     0.005    |     1.7286927805265953    |     2.1429162348750768    |     4.75822988760272e-16    |     2.1340762407576848    |     4.738601157589361e-16
20.0    |     0.0075    |     1.7287147392794118    |     2.1429162348750768    |     4.75822988760272e-16    |     2.1297073264769604    |     4.728900219135213e-16
20.0    |     0.01    |     1.7287366067447667    |     2.1429162348750768    |     4.75822988760272e-16    |     2.1253719446187813    |     4.719273737616228e-16
20.0    |     0.02    |     1.7288231748695113    |     2.1429162348750768    |     4.75822988760272e-16    |     2.1083581370698803    |     4.681495495861566e-16
20.0    |     0.05    |     1.7290745149199334    |     2.1429162348750768    |     4.75822988760272e-16    |     2.060269448440304    |     4.574717157180394e-16
20.0    |     0.075    |     1.7292748667352158    |     2.1429162348750768    |     4.75822988760272e-16    |     2.023271926743742    |     4.492566156297211e-16
20.0    |     0.1    |     1.7294674543189974    |     2.1429162348750768    |     4.75822988760272e-16    |     1.9887693614232311    |     4.4159550714422816e-16
20.0    |     0.2    |     1.7301684663530894    |     2.1429162348750768    |     4.75822988760272e-16    |     1.871261042321496    |     4.1550341885387885e-16
20.0    |     0.5    |     1.7317725169771812    |     2.1429162348750768    |     4.75822988760272e-16    |     1.64227232787048    |     3.6465771022131223e-16
20.0    |     0.75    |     1.7327288355012886    |     2.1429162348750768    |     4.75822988760272e-16    |     1.5268757896947271    |     3.390345314923609e-16
20.0    |     1    |     1.7334658393718347    |     2.1429162348750768    |     4.75822988760272e-16    |     1.446630124465455    |     3.212164144595808e-16
50.0    |     1e-05    |     1.7391411403978456    |     1.0013610750249617    |     2.2234682429122227e-16    |     1.0013610614050856    |     2.2234682126700225e-16
50.0    |     2e-05    |     1.739141140461826    |     1.0013610750249617    |     2.2234682429122227e-16    |     1.0013610477854815    |     2.2234681824284264e-16
50.0    |     5e-05    |     1.7391411406537574    |     1.0013610750249617    |     2.2234682429122227e-16    |     1.0013610069283048    |     2.2234680917072697e-16
50.0    |     7.5e-05    |     1.739141140813692    |     1.0013610750249617    |     2.2234682429122227e-16    |     1.0013609728825315    |     2.223468016110467e-16
50.0    |     0.0001    |     1.7391411409736177    |     1.0013610750249617    |     2.2234682429122227e-16    |     1.0013609388384612    |     2.2234679405174456e-16
50.0    |     0.0002    |     1.7391411416132447    |     1.0013610750249617    |     2.2234682429122227e-16    |     1.0013608026792107    |     2.2234676381831757e-16
50.0    |     0.0005    |     1.7391411435313564    |     1.0013610750249617    |     2.2234682429122227e-16    |     1.00136039436488    |     2.223466731543233e-16
50.0    |     0.00075    |     1.7391411451289047    |     1.0013610750249617    |     2.2234682429122227e-16    |     1.0013600542900682    |     2.223465976425461e-16
50.0    |     0.001    |     1.7391411467256548    |     1.0013610750249617    |     2.2234682429122227e-16    |     1.0013597143852402    |     2.2234652216851285e-16
50.0    |     0.002    |     1.739141153104692    |     1.0013610750249617    |     2.2234682429122227e-16    |     1.0013583564632105    |     2.2234622064925224e-16
50.0    |     0.005    |     1.739141172165665    |     1.0013610750249617    |     2.2234682429122227e-16    |     1.0013542989220954    |     2.2234531969413837e-16
50.0    |     0.0075    |     1.7391411879631304    |     1.0013610750249617    |     2.2234682429122227e-16    |     1.0013509361089248    |     2.2234457299961647e-16
50.0    |     0.01    |     1.7391412036824188    |     1.0013610750249617    |     2.2234682429122227e-16    |     1.0013475899545612    |     2.223438300040928e-16
50.0    |     0.02    |     1.7391412657893084    |     1.0013610750249617    |     2.2234682429122227e-16    |     1.0013343694737178    |     2.22340894467647e-16
50.0    |     0.05    |     1.7391414450146112    |     1.0013610750249617    |     2.2234682429122227e-16    |     1.001296219922522    |     2.2233242356562365e-16
50.0    |     0.075    |     1.7391415867303393    |     1.0013610750249617    |     2.2234682429122227e-16    |     1.001266056190751    |     2.223257258717195e-16
50.0    |     0.1    |     1.7391417220066685    |     1.0013610750249617    |     2.2234682429122227e-16    |     1.0012372643858902    |     2.223193328067841e-16
50.0    |     0.2    |     1.739142206764682    |     1.0013610750249617    |     2.2234682429122227e-16    |     1.0011341005544732    |     2.2229642583459456e-16
50.0    |     0.5    |     1.7391432733304768    |     1.0013610750249617    |     2.2234682429122227e-16    |     1.0009071775605214    |     2.2224603880805413e-16
50.0    |     0.75    |     1.7391438828572479    |     1.0013610750249617    |     2.2234682429122227e-16    |     1.0007775303834385    |     2.222172513518391e-16
50.0    |     1    |     1.739144340031251    |     1.0013610750249617    |     2.2234682429122227e-16    |     1.0006803060255958    |     2.2219566320771284e-16
75.0    |     1e-05    |     1.7391475402804037    |     1.000000149021347    |     2.2204463801441744e-16    |     1.0000001490198573    |     2.2204463801408666e-16
75.0    |     2e-05    |     1.7391475402804104    |     1.000000149021347    |     2.2204463801441744e-16    |     1.0000001490183668    |     2.220446380137557e-16
75.0    |     5e-05    |     1.7391475402804306    |     1.000000149021347    |     2.2204463801441744e-16    |     1.0000001490138963    |     2.2204463801276305e-16
75.0    |     7.5e-05    |     1.7391475402804475    |     1.000000149021347    |     2.2204463801441744e-16    |     1.0000001490101718    |     2.2204463801193603e-16
75.0    |     0.0001    |     1.739147540280464    |     1.000000149021347    |     2.2204463801441744e-16    |     1.0000001490064463    |     2.220446380111088e-16
75.0    |     0.0002    |     1.73914754028053    |     1.000000149021347    |     2.2204463801441744e-16    |     1.0000001489915489    |     2.220446380078009e-16
75.0    |     0.0005    |     1.7391475402807293    |     1.000000149021347    |     2.2204463801441744e-16    |     1.0000001489468737    |     2.2204463799788104e-16
75.0    |     0.00075    |     1.7391475402808945    |     1.000000149021347    |     2.2204463801441744e-16    |     1.000000148909665    |     2.2204463798961905e-16
75.0    |     0.001    |     1.7391475402810592    |     1.000000149021347    |     2.2204463801441744e-16    |     1.000000148872475    |     2.220446379813612e-16
75.0    |     0.002    |     1.7391475402817205    |     1.000000149021347    |     2.2204463801441744e-16    |     1.0000001487238994    |     2.220446379483708e-16
75.0    |     0.005    |     1.739147540283696    |     1.000000149021347    |     2.2204463801441744e-16    |     1.0000001482799472    |     2.220446378497936e-16
75.0    |     0.0075    |     1.7391475402853336    |     1.000000149021347    |     2.2204463801441744e-16    |     1.000000147912007    |     2.220446377680945e-16
75.0    |     0.01    |     1.7391475402869625    |     1.000000149021347    |     2.2204463801441744e-16    |     1.0000001475458882    |     2.2204463768679976e-16
75.0    |     0.02    |     1.7391475402933994    |     1.000000149021347    |     2.2204463801441744e-16    |     1.0000001460993597    |     2.220446373656059e-16
75.0    |     0.05    |     1.7391475403119734    |     1.000000149021347    |     2.2204463801441744e-16    |     1.0000001419250921    |     2.220446364387323e-16
75.0    |     0.075    |     1.7391475403266607    |     1.000000149021347    |     2.2204463801441744e-16    |     1.000000138624508    |     2.2204463570585544e-16
75.0    |     0.1    |     1.7391475403406793    |     1.000000149021347    |     2.2204463801441744e-16    |     1.0000001354739512    |     2.2204463500629127e-16
75.0    |     0.2    |     1.7391475403909142    |     1.000000149021347    |     2.2204463801441744e-16    |     1.0000001241844543    |     2.220446324995194e-16
75.0    |     0.5    |     1.7391475405014305    |     1.000000149021347    |     2.2204463801441744e-16    |     1.0000000993475624    |     2.2204462698462155e-16
75.0    |     0.75    |     1.7391475405645829    |     1.000000149021347    |     2.2204463801441744e-16    |     1.0000000851550528    |     2.2204462383325136e-16
75.0    |     1    |     1.7391475406119472    |     1.000000149021347    |     2.2204463801441744e-16    |     1.0000000745106707    |     2.2204462146972376e-16
100.0    |     1e-05    |     1.7391475409434956    |     1.000000000000426    |     2.220446049251259e-16    |     1.000000000000426    |     2.220446049251259e-16
100.0    |     2e-05    |     1.7391475409434953    |     1.000000000000426    |     2.220446049251259e-16    |     1.000000000000426    |     2.220446049251259e-16
100.0    |     5e-05    |     1.7391475409434949    |     1.000000000000426    |     2.220446049251259e-16    |     1.0000000000004259    |     2.2204460492512587e-16
100.0    |     7.5e-05    |     1.7391475409434953    |     1.000000000000426    |     2.220446049251259e-16    |     1.0000000000004259    |     2.2204460492512587e-16
100.0    |     0.0001    |     1.7391475409434953    |     1.000000000000426    |     2.220446049251259e-16    |     1.0000000000004259    |     2.2204460492512587e-16
100.0    |     0.0002    |     1.739147540943495    |     1.000000000000426    |     2.220446049251259e-16    |     1.0000000000004259    |     2.2204460492512587e-16
100.0    |     0.0005    |     1.7391475409434953    |     1.000000000000426    |     2.220446049251259e-16    |     1.0000000000004257    |     2.220446049251258e-16
100.0    |     0.00075    |     1.739147540943495    |     1.000000000000426    |     2.220446049251259e-16    |     1.0000000000004259    |     2.2204460492512587e-16
100.0    |     0.001    |     1.7391475409434949    |     1.000000000000426    |     2.220446049251259e-16    |     1.0000000000004254    |     2.2204460492512577e-16
100.0    |     0.002    |     1.7391475409434953    |     1.000000000000426    |     2.220446049251259e-16    |     1.0000000000004252    |     2.2204460492512572e-16
100.0    |     0.005    |     1.7391475409434949    |     1.000000000000426    |     2.220446049251259e-16    |     1.0000000000004237    |     2.220446049251254e-16
100.0    |     0.0075    |     1.739147540943495    |     1.000000000000426    |     2.220446049251259e-16    |     1.0000000000004228    |     2.220446049251252e-16
100.0    |     0.01    |     1.7391475409434949    |     1.000000000000426    |     2.220446049251259e-16    |     1.0000000000004219    |     2.22044604925125e-16
100.0    |     0.02    |     1.7391475409434953    |     1.000000000000426    |     2.220446049251259e-16    |     1.0000000000004174    |     2.22044604925124e-16
100.0    |     0.05    |     1.7391475409434953    |     1.000000000000426    |     2.220446049251259e-16    |     1.000000000000406    |     2.2204460492512144e-16
100.0    |     0.075    |     1.7391475409434953    |     1.000000000000426    |     2.220446049251259e-16    |     1.0000000000003963    |     2.220446049251193e-16
100.0    |     0.1    |     1.7391475409434949    |     1.000000000000426    |     2.220446049251259e-16    |     1.0000000000003872    |     2.220446049251173e-16
100.0    |     0.2    |     1.739147540943496    |     1.000000000000426    |     2.220446049251259e-16    |     1.0000000000003548    |     2.220446049251101e-16
100.0    |     0.5    |     1.739147540943496    |     1.000000000000426    |     2.220446049251259e-16    |     1.0000000000002842    |     2.220446049250944e-16
100.0    |     0.75    |     1.7391475409434956    |     1.000000000000426    |     2.220446049251259e-16    |     1.0000000000002436    |     2.220446049250854e-16
100.0    |     1    |     1.7391475409434956    |     1.000000000000426    |     2.220446049251259e-16    |     1.000000000000213    |     2.220446049250786e-16
200.0    |     1e-05    |     1.739147540943497    |     1.0000000000000004    |     2.220446049250314e-16    |     1.0000000000000002    |     2.2204460492503136e-16
200.0    |     2e-05    |     1.739147540943497    |     1.0000000000000004    |     2.220446049250314e-16    |     1.0000000000000002    |     2.2204460492503136e-16
200.0    |     5e-05    |     1.7391475409434967    |     1.0000000000000004    |     2.220446049250314e-16    |     1.0000000000000004    |     2.220446049250314e-16
200.0    |     7.5e-05    |     1.7391475409434973    |     1.0000000000000004    |     2.220446049250314e-16    |     1.0000000000000004    |     2.220446049250314e-16
200.0    |     0.0001    |     1.739147540943497    |     1.0000000000000004    |     2.220446049250314e-16    |     1.0000000000000004    |     2.220446049250314e-16
200.0    |     0.0002    |     1.7391475409434969    |     1.0000000000000004    |     2.220446049250314e-16    |     1.0000000000000004    |     2.220446049250314e-16
200.0    |     0.0005    |     1.7391475409434973    |     1.0000000000000004    |     2.220446049250314e-16    |     1.0000000000000004    |     2.220446049250314e-16
200.0    |     0.00075    |     1.7391475409434967    |     1.0000000000000004    |     2.220446049250314e-16    |     1.0000000000000004    |     2.220446049250314e-16
200.0    |     0.001    |     1.739147540943497    |     1.0000000000000004    |     2.220446049250314e-16    |     1.0000000000000004    |     2.220446049250314e-16
200.0    |     0.002    |     1.739147540943497    |     1.0000000000000004    |     2.220446049250314e-16    |     1.0000000000000004    |     2.220446049250314e-16
200.0    |     0.005    |     1.7391475409434969    |     1.0000000000000004    |     2.220446049250314e-16    |     1.0000000000000004    |     2.220446049250314e-16
200.0    |     0.0075    |     1.7391475409434973    |     1.0000000000000004    |     2.220446049250314e-16    |     1.0000000000000004    |     2.220446049250314e-16
200.0    |     0.01    |     1.739147540943497    |     1.0000000000000004    |     2.220446049250314e-16    |     1.0000000000000004    |     2.220446049250314e-16
200.0    |     0.02    |     1.739147540943497    |     1.0000000000000004    |     2.220446049250314e-16    |     1.0000000000000004    |     2.220446049250314e-16
200.0    |     0.05    |     1.739147540943497    |     1.0000000000000004    |     2.220446049250314e-16    |     1.0000000000000004    |     2.220446049250314e-16
200.0    |     0.075    |     1.739147540943497    |     1.0000000000000004    |     2.220446049250314e-16    |     1.0    |     2.220446049250313e-16
200.0    |     0.1    |     1.739147540943497    |     1.0000000000000004    |     2.220446049250314e-16    |     1.0000000000000007    |     2.2204460492503146e-16
200.0    |     0.2    |     1.7391475409434973    |     1.0000000000000004    |     2.220446049250314e-16    |     1.0000000000000004    |     2.220446049250314e-16
200.0    |     0.5    |     1.739147540943497    |     1.0000000000000004    |     2.220446049250314e-16    |     1.0    |     2.220446049250313e-16
200.0    |     0.75    |     1.739147540943497    |     1.0000000000000004    |     2.220446049250314e-16    |     1.0000000000000002    |     2.2204460492503136e-16
200.0    |     1    |     1.7391475409434967    |     1.0000000000000004    |     2.220446049250314e-16    |     1.0000000000000004    |     2.220446049250314e-16
500.0    |     1e-05    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
500.0    |     2e-05    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
500.0    |     5e-05    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
500.0    |     7.5e-05    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
500.0    |     0.0001    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
500.0    |     0.0002    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
500.0    |     0.0005    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
500.0    |     0.00075    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
500.0    |     0.001    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
500.0    |     0.002    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
500.0    |     0.005    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
500.0    |     0.0075    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
500.0    |     0.01    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
500.0    |     0.02    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
500.0    |     0.05    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
500.0    |     0.075    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
500.0    |     0.1    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
500.0    |     0.2    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
500.0    |     0.5    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
500.0    |     0.75    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
500.0    |     1    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
1000.0    |     1e-05    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
1000.0    |     2e-05    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
1000.0    |     5e-05    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
1000.0    |     7.5e-05    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
1000.0    |     0.0001    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
1000.0    |     0.0002    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
1000.0    |     0.0005    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
1000.0    |     0.00075    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
1000.0    |     0.001    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
1000.0    |     0.002    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
1000.0    |     0.005    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
1000.0    |     0.0075    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
1000.0    |     0.01    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
1000.0    |     0.02    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
1000.0    |     0.05    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
1000.0    |     0.075    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
1000.0    |     0.1    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
1000.0    |     0.2    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
1000.0    |     0.5    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
1000.0    |     0.75    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16
1000.0    |     1    |     1.739147540943497    |     1.0    |     2.220446049250313e-16    |     1.0    |     2.220446049250313e-16

Results saved in  solution.pickle
========================================================================================================================
Results of radial basis function run:

Basis function type               : gaussian
Shape parameter                    : 0.75
Regularization parameter           : 2e-05
Number of terms in RBF model       : 31

RBF Expression:
--------------------------

4.038157591240296 + 237.8499310618983*(-1551.5244569618876*exp(- (0.75*(((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.5518182560031254)**2 + ((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.2731190901874679)**2)**0.5)**2) - 334.71891273048857*exp(- (0.75*(((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.4300326512391472)**2 + ((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.8610629174234938)**2)**0.5)**2) + 235.58220304204985*exp(- (0.75*(((IndexedParam[0] + 4.929217157135412)/14.643030012320084)**2 + ((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.11035664436222248)**2)**0.5)**2) + 27.886153309561678*exp(- (0.75*(((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.6822668136056202)**2 + ((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.8414199967160326)**2)**0.5)**2) - 1415.9829578091171*exp(- (0.75*(((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.13520535030959882)**2 + ((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.5811256814195772)**2)**0.5)**2) - 990.5466782519585*exp(- (0.75*(((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.908216841775921)**2 + ((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.20132180755786522)**2)**0.5)**2) - 343.10909375147367*exp(- (0.75*(((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.18501228557936236)**2 + ((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.09666279198240106)**2)**0.5)**2) - 723.9922784849874*exp(- (0.75*(((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.22021941796179972)**2 + ((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 1.0)**2)**0.5)**2) - 8.525226879211669*exp(- (0.75*(((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.8266365897830592)**2 + ((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.16264387978612238)**2)**0.5)**2) + 255.07386589590683*exp(- (0.75*(((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.831288905218487)**2 + ((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.26866011456766936)**2)**0.5)**2) + 528.0399010886766*exp(- (0.75*(((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.43739443999592303)**2 + ((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.9599385359524552)**2)**0.5)**2) + 432.74002291691215*exp(- (0.75*(((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.8327482651149929)**2 + ((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.3330572615505772)**2)**0.5)**2) - 761.4482839044426*exp(- (0.75*(((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.17485274298531528)**2 + ((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.3711736045917253)**2)**0.5)**2) + 854.4206928222548*exp(- (0.75*(((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.0009932894634358945)**2 + ((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.2461895993357224)**2)**0.5)**2) + 158.4825871693355*exp(- (0.75*(((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.8102253955808789)**2 + ((IndexedParam[1] - 0.22882456869508516)/14.45053220191546)**2)**0.5)**2) - 2542.5018400558793*exp(- (0.75*(((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.6086081776493459)**2 + ((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.6109286075828757)**2)**0.5)**2) - 1366.554383948263*exp(- (0.75*(((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.1028770983224648)**2 + ((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.38063145554753214)**2)**0.5)**2) + 342.1406582093882*exp(- (0.75*(((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.0325313822086792)**2 + ((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.9084335925839453)**2)**0.5)**2) + 107.6091733488148*exp(- (0.75*(((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 1.0)**2 + ((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.046386199083146756)**2)**0.5)**2) + 49.67120676760413*exp(- (0.75*(((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.9074219145138307)**2 + ((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.5830026053427076)**2)**0.5)**2) + 897.3018668528205*exp(- (0.75*(((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.7557460774371298)**2 + ((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.6383110566137417)**2)**0.5)**2) - 8.627269390497531*exp(- (0.75*(((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.5911925356865033)**2 + ((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.005381283583344741)**2)**0.5)**2) - 136.91234827602625*exp(- (0.75*(((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.21031274399063923)**2 + ((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.5495609776179707)**2)**0.5)**2) + 735.7407100245284*exp(- (0.75*(((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.7830308832306688)**2 + ((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.24439265066740792)**2)**0.5)**2) + 541.730933783887*exp(- (0.75*(((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.28803140536417743)**2 + ((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.8689715765112118)**2)**0.5)**2) - 45.921399758259014*exp(- (0.75*(((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.993941455353761)**2 + ((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.9026639746834018)**2)**0.5)**2) + 1712.6788445573948*exp(- (0.75*(((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.36343808704287006)**2 + ((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.6057949629205177)**2)**0.5)**2) + 3266.9168170263265*exp(- (0.75*(((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.3586109792561233)**2 + ((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.3372905989731323)**2)**0.5)**2) - 827.2715689260567*exp(- (0.75*(((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.17758838147122427)**2 + ((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.23089727866378493)**2)**0.5)**2) + 919.0325530603195*exp(- (0.75*(((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.04112204875223326)**2 + ((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.5088149538788017)**2)**0.5)**2))
--------------------------

Model training errors:
-----------------------
Mean Squared Error (MSE)         : 0.0004443809827437673
Root Mean Squared Error (RMSE)   : 0.021080345887669095
Goodness of fit (R2)             : 0.9918215668806757

========================================================================================================================

Step 5: View model metrics#

We can view the Root Mean Square Error (RMSE) and \(R^2\) values of the RBF fit based on the training data:

print("R2: ", rbf_class.R2, "\nRMSE: ", rbf_class.rmse)
R2:  0.9918215668806757 
RMSE:  0.021080345887669095

Step 6 (Optional): Generate Pyomo expression output at any unsampled point#

Based on the model we trained, we can predict the surrogate value at any previously unsampled point. We do this by calling the function predict_output.

Let us again evaluate the RBF surrogate at the same set of points we considered for the polynomial model:

  • \(x_{1}=5\), \(x_{2}=8\) (true function value: 57.9908)

  • \(x_{1}=-3\), \(x_{2}=10\) (true function value: 4.2461)

  • \(x_{1}=-2\), \(x_{2}=3\) (true function value: 50.8899)

unsampled_points = np.array([[5, 8], [-3, 10], [-2, 3]])
ys = rbf_class.predict_output(unsampled_points)
print(ys)
[[61.06401281]
 [12.7142377 ]
 [50.97501439]]

The results from the RBF surrogate are similar to those obtained from the polynomial.

For RBF models, the Pyomo expression is generated by calling generate_expression on the results object, while parity plots may be viewed with the parity_residual_plots method.

Further information about using PySMO’s RBF tool and features can be found in the documentation.

Training Kriging models#

The KrigingModel class trains Kriging from data. For details about Kriging models, users should consult the documentation.

As an example, we will again consider the Brainin function. The same dataset loaded previously will be used.

Step 1: Load the data and import the Kriging tool#

import numpy as np

brainin_data = np.loadtxt("brainin_30.txt")
from idaes.core.surrogate.pysmo.kriging import KrigingModel

Step 2: Specify the Kriging settings and initialize the KrigingModel class#

The KrigingModel class takes a number of keyword arguments:

  -  XY_data                       : The dataset for Kriging training. training_data is expected to contain xy_data, 
                                     with the output values (y) in the last column.

It also takes a number of optional arguments:

  -  regularization                : Boolean variable determining whether regularization is done. Default is True.
  -  numerical_gradients           : Boolean variable which determines whether numerical gradients are used when
                                     solving the max. likelihood optimization problem. Default is True.
  -  fname                         : Filename for saving (.pickle extension)
  - overwrite                      : Option determining whether any existing file with the same name supplied in 'fname'  
                                     should be overwritten.

For this demonstration, we will train a Kriging model with regularization:

krg_class = KrigingModel(XY_data=brainin_data, overwrite=True)
Warning: solution.pickle already exists; previous file will be overwritten.

Step 3: Extract variable names (optional)#

Next, we extract Pyomo variable names from the dataset.

vars = krg_class.get_feature_vector()

Step 4: Train the Kriging surrogate#

Next, we train the RBF surrogate by calling training:

krg_class.training()
Optimizing kriging parameters using L-BFGS-B algorithm...
Final results
================
Theta: [6.01576437 0.22794622] 
Mean: [[386.67466251]] 
Regularization parameter: 1.000000000001e-06

Results saved in  solution.pickle
========================================================================================================================
Results of Kriging run:

Kriging mean                     : [[386.67466251]]
Kriging variance                 : [[70460.78166121]]
Kriging weights                  : [6.01576437 0.22794622]
Regularization parameter         : 1.000000000001e-06
Number of terms in Kriging model : 31

Kriging Expression:
--------------------

386.6746625106164 + (3469.0208871846553*exp(- (6.01576436749808*((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.5518182560031254)**2 + 0.22794621767031822*((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.2731190901874679)**2)) - 141877.18052533641*exp(- (6.01576436749808*((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.4300326512391472)**2 + 0.22794621767031822*((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.8610629174234938)**2)) + 89858.53563122451*exp(- (6.01576436749808*((IndexedParam[0] + 4.929217157135412)/14.643030012320084)**2 + 0.22794621767031822*((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.11035664436222248)**2)) - 17331.16845172411*exp(- (6.01576436749808*((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.6822668136056202)**2 + 0.22794621767031822*((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.8414199967160326)**2)) + 70866.88925537094*exp(- (6.01576436749808*((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.13520535030959882)**2 + 0.22794621767031822*((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.5811256814195772)**2)) + 84227.85506583657*exp(- (6.01576436749808*((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.908216841775921)**2 + 0.22794621767031822*((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.20132180755786522)**2)) + 12240.144907206297*exp(- (6.01576436749808*((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.18501228557936236)**2 + 0.22794621767031822*((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.09666279198240106)**2)) + 10862.880267933011*exp(- (6.01576436749808*((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.22021941796179972)**2 + 0.22794621767031822*((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 1.0)**2)) - 88626.71938276757*exp(- (6.01576436749808*((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.8266365897830592)**2 + 0.22794621767031822*((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.16264387978612238)**2)) - 59560.382920601405*exp(- (6.01576436749808*((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.831288905218487)**2 + 0.22794621767031822*((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.26866011456766936)**2)) + 108091.18288033456*exp(- (6.01576436749808*((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.43739443999592303)**2 + 0.22794621767031822*((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.9599385359524552)**2)) - 49286.85214255564*exp(- (6.01576436749808*((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.8327482651149929)**2 + 0.22794621767031822*((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.3330572615505772)**2)) + 142911.70424503088*exp(- (6.01576436749808*((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.17485274298531528)**2 + 0.22794621767031822*((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.3711736045917253)**2)) - 121075.87439893931*exp(- (6.01576436749808*((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.0009932894634358945)**2 + 0.22794621767031822*((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.2461895993357224)**2)) + 18631.616961394437*exp(- (6.01576436749808*((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.8102253955808789)**2 + 0.22794621767031822*((IndexedParam[1] - 0.22882456869508516)/14.45053220191546)**2)) - 20558.20656931633*exp(- (6.01576436749808*((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.6086081776493459)**2 + 0.22794621767031822*((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.6109286075828757)**2)) - 147105.12800574303*exp(- (6.01576436749808*((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.1028770983224648)**2 + 0.22794621767031822*((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.38063145554753214)**2)) - 20770.266188384965*exp(- (6.01576436749808*((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.0325313822086792)**2 + 0.22794621767031822*((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.9084335925839453)**2)) - 12552.899758738116*exp(- (6.01576436749808*((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 1.0)**2 + 0.22794621767031822*((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.046386199083146756)**2)) - 15680.859052546322*exp(- (6.01576436749808*((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.9074219145138307)**2 + 0.22794621767031822*((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.5830026053427076)**2)) + 51439.576363677625*exp(- (6.01576436749808*((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.7557460774371298)**2 + 0.22794621767031822*((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.6383110566137417)**2)) - 7759.502903997432*exp(- (6.01576436749808*((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.5911925356865033)**2 + 0.22794621767031822*((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.005381283583344741)**2)) - 105321.72080910672*exp(- (6.01576436749808*((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.21031274399063923)**2 + 0.22794621767031822*((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.5495609776179707)**2)) + 103559.18517672084*exp(- (6.01576436749808*((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.7830308832306688)**2 + 0.22794621767031822*((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.24439265066740792)**2)) - 32907.053552615456*exp(- (6.01576436749808*((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.28803140536417743)**2 + 0.22794621767031822*((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.8689715765112118)**2)) + 2458.404474788578*exp(- (6.01576436749808*((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.993941455353761)**2 + 0.22794621767031822*((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.9026639746834018)**2)) + 99575.24403728923*exp(- (6.01576436749808*((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.36343808704287006)**2 + 0.22794621767031822*((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.6057949629205177)**2)) - 18709.6442205254*exp(- (6.01576436749808*((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.3586109792561233)**2 + 0.22794621767031822*((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.3372905989731323)**2)) - 47558.269057542086*exp(- (6.01576436749808*((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.17758838147122427)**2 + 0.22794621767031822*((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.23089727866378493)**2)) + 108489.48778639734*exp(- (6.01576436749808*((IndexedParam[0] + 4.929217157135412)/14.643030012320084 - 0.04112204875223326)**2 + 0.22794621767031822*((IndexedParam[1] - 0.22882456869508516)/14.45053220191546 - 0.5088149538788017)**2)))
--------------------------

Model training errors:
-----------------------
Mean Squared Error (MSE)         : 0.005821749035738542
Root Mean Squared Error (RMSE)   : 0.07630038686493366
Goodness of fit (R2)             : 0.999998106078119

========================================================================================================================

The returned information correspond to the Kriging model parameters.

As we can see, the optimization problem was solved using SciPy’s L-BFGS algorithm which makes use of gradients. A different algorithm (Basinhopping) is used when no numerical gradients are computed (when numerical_gradients is set to False). The user should try this.

Step 5: View model metrics#

We can view the RMSE and \(R^2\) values of the Kriging fit based on the training data:

print("R2: ", krg_class.training_R2, "\nRMSE: ", krg_class.training_rmse)
R2:  0.999998106078119 
RMSE:  0.07630038686493366

Step 6 (Optional): Generate Pyomo expression output at any unsampled point#

Again, based on the model we trained, we evaluate the surrogate at a set of off-design points:

  • \(x_{1}=5\), \(x_{2}=8\) (true function value: 57.9908)

  • \(x_{1}=-3\), \(x_{2}=10\) (true function value: 4.2461)

  • \(x_{1}=-2\), \(x_{2}=3\) (true function value: 50.8899)

We do this by calling the function predict_output:

unsampled_points = np.array([[5, 8], [-3, 10], [-2, 3]])
ys = krg_class.predict_output(unsampled_points)
print(ys)
[[57.63225481]
 [ 4.44461901]
 [50.8024123 ]]

The Kriging model performs very well, predicting all three points fairly accurately.

For Kriging models, the Pyomo expression is generated by calling generate_expression on the results object:

print(krg_class.generate_expression([m.x[1], m.x[2]]))
3469.0208871846553*exp(- (6.01576436749808*((x[1] + 4.929217157135412)/14.643030012320084 - 0.5518182560031254)**2 + 0.22794621767031822*((x[2] - 0.22882456869508516)/14.45053220191546 - 0.2731190901874679)**2)) - 141877.18052533641*exp(- (6.01576436749808*((x[1] + 4.929217157135412)/14.643030012320084 - 0.4300326512391472)**2 + 0.22794621767031822*((x[2] - 0.22882456869508516)/14.45053220191546 - 0.8610629174234938)**2)) + 89858.53563122451*exp(- (6.01576436749808*((x[1] + 4.929217157135412)/14.643030012320084)**2 + 0.22794621767031822*((x[2] - 0.22882456869508516)/14.45053220191546 - 0.11035664436222248)**2)) - 17331.16845172411*exp(- (6.01576436749808*((x[1] + 4.929217157135412)/14.643030012320084 - 0.6822668136056202)**2 + 0.22794621767031822*((x[2] - 0.22882456869508516)/14.45053220191546 - 0.8414199967160326)**2)) + 70866.88925537094*exp(- (6.01576436749808*((x[1] + 4.929217157135412)/14.643030012320084 - 0.13520535030959882)**2 + 0.22794621767031822*((x[2] - 0.22882456869508516)/14.45053220191546 - 0.5811256814195772)**2)) + 84227.85506583657*exp(- (6.01576436749808*((x[1] + 4.929217157135412)/14.643030012320084 - 0.908216841775921)**2 + 0.22794621767031822*((x[2] - 0.22882456869508516)/14.45053220191546 - 0.20132180755786522)**2)) + 12240.144907206297*exp(- (6.01576436749808*((x[1] + 4.929217157135412)/14.643030012320084 - 0.18501228557936236)**2 + 0.22794621767031822*((x[2] - 0.22882456869508516)/14.45053220191546 - 0.09666279198240106)**2)) + 10862.880267933011*exp(- (6.01576436749808*((x[1] + 4.929217157135412)/14.643030012320084 - 0.22021941796179972)**2 + 0.22794621767031822*((x[2] - 0.22882456869508516)/14.45053220191546 - 1.0)**2)) - 88626.71938276757*exp(- (6.01576436749808*((x[1] + 4.929217157135412)/14.643030012320084 - 0.8266365897830592)**2 + 0.22794621767031822*((x[2] - 0.22882456869508516)/14.45053220191546 - 0.16264387978612238)**2)) - 59560.382920601405*exp(- (6.01576436749808*((x[1] + 4.929217157135412)/14.643030012320084 - 0.831288905218487)**2 + 0.22794621767031822*((x[2] - 0.22882456869508516)/14.45053220191546 - 0.26866011456766936)**2)) + 108091.18288033456*exp(- (6.01576436749808*((x[1] + 4.929217157135412)/14.643030012320084 - 0.43739443999592303)**2 + 0.22794621767031822*((x[2] - 0.22882456869508516)/14.45053220191546 - 0.9599385359524552)**2)) - 49286.85214255564*exp(- (6.01576436749808*((x[1] + 4.929217157135412)/14.643030012320084 - 0.8327482651149929)**2 + 0.22794621767031822*((x[2] - 0.22882456869508516)/14.45053220191546 - 0.3330572615505772)**2)) + 142911.70424503088*exp(- (6.01576436749808*((x[1] + 4.929217157135412)/14.643030012320084 - 0.17485274298531528)**2 + 0.22794621767031822*((x[2] - 0.22882456869508516)/14.45053220191546 - 0.3711736045917253)**2)) - 121075.87439893931*exp(- (6.01576436749808*((x[1] + 4.929217157135412)/14.643030012320084 - 0.0009932894634358945)**2 + 0.22794621767031822*((x[2] - 0.22882456869508516)/14.45053220191546 - 0.2461895993357224)**2)) + 18631.616961394437*exp(- (6.01576436749808*((x[1] + 4.929217157135412)/14.643030012320084 - 0.8102253955808789)**2 + 0.22794621767031822*((x[2] - 0.22882456869508516)/14.45053220191546)**2)) - 20558.20656931633*exp(- (6.01576436749808*((x[1] + 4.929217157135412)/14.643030012320084 - 0.6086081776493459)**2 + 0.22794621767031822*((x[2] - 0.22882456869508516)/14.45053220191546 - 0.6109286075828757)**2)) - 147105.12800574303*exp(- (6.01576436749808*((x[1] + 4.929217157135412)/14.643030012320084 - 0.1028770983224648)**2 + 0.22794621767031822*((x[2] - 0.22882456869508516)/14.45053220191546 - 0.38063145554753214)**2)) - 20770.266188384965*exp(- (6.01576436749808*((x[1] + 4.929217157135412)/14.643030012320084 - 0.0325313822086792)**2 + 0.22794621767031822*((x[2] - 0.22882456869508516)/14.45053220191546 - 0.9084335925839453)**2)) - 12552.899758738116*exp(- (6.01576436749808*((x[1] + 4.929217157135412)/14.643030012320084 - 1.0)**2 + 0.22794621767031822*((x[2] - 0.22882456869508516)/14.45053220191546 - 0.046386199083146756)**2)) - 15680.859052546322*exp(- (6.01576436749808*((x[1] + 4.929217157135412)/14.643030012320084 - 0.9074219145138307)**2 + 0.22794621767031822*((x[2] - 0.22882456869508516)/14.45053220191546 - 0.5830026053427076)**2)) + 51439.576363677625*exp(- (6.01576436749808*((x[1] + 4.929217157135412)/14.643030012320084 - 0.7557460774371298)**2 + 0.22794621767031822*((x[2] - 0.22882456869508516)/14.45053220191546 - 0.6383110566137417)**2)) - 7759.502903997432*exp(- (6.01576436749808*((x[1] + 4.929217157135412)/14.643030012320084 - 0.5911925356865033)**2 + 0.22794621767031822*((x[2] - 0.22882456869508516)/14.45053220191546 - 0.005381283583344741)**2)) - 105321.72080910672*exp(- (6.01576436749808*((x[1] + 4.929217157135412)/14.643030012320084 - 0.21031274399063923)**2 + 0.22794621767031822*((x[2] - 0.22882456869508516)/14.45053220191546 - 0.5495609776179707)**2)) + 103559.18517672084*exp(- (6.01576436749808*((x[1] + 4.929217157135412)/14.643030012320084 - 0.7830308832306688)**2 + 0.22794621767031822*((x[2] - 0.22882456869508516)/14.45053220191546 - 0.24439265066740792)**2)) - 32907.053552615456*exp(- (6.01576436749808*((x[1] + 4.929217157135412)/14.643030012320084 - 0.28803140536417743)**2 + 0.22794621767031822*((x[2] - 0.22882456869508516)/14.45053220191546 - 0.8689715765112118)**2)) + 2458.404474788578*exp(- (6.01576436749808*((x[1] + 4.929217157135412)/14.643030012320084 - 0.993941455353761)**2 + 0.22794621767031822*((x[2] - 0.22882456869508516)/14.45053220191546 - 0.9026639746834018)**2)) + 99575.24403728923*exp(- (6.01576436749808*((x[1] + 4.929217157135412)/14.643030012320084 - 0.36343808704287006)**2 + 0.22794621767031822*((x[2] - 0.22882456869508516)/14.45053220191546 - 0.6057949629205177)**2)) - 18709.6442205254*exp(- (6.01576436749808*((x[1] + 4.929217157135412)/14.643030012320084 - 0.3586109792561233)**2 + 0.22794621767031822*((x[2] - 0.22882456869508516)/14.45053220191546 - 0.3372905989731323)**2)) - 47558.269057542086*exp(- (6.01576436749808*((x[1] + 4.929217157135412)/14.643030012320084 - 0.17758838147122427)**2 + 0.22794621767031822*((x[2] - 0.22882456869508516)/14.45053220191546 - 0.23089727866378493)**2)) + 108489.48778639734*exp(- (6.01576436749808*((x[1] + 4.929217157135412)/14.643030012320084 - 0.04112204875223326)**2 + 0.22794621767031822*((x[2] - 0.22882456869508516)/14.45053220191546 - 0.5088149538788017)**2)) + 386.6746625106164

As we can see, expressing a Kriging model algebraically is pretty complicated!

Parity plots for the Kriging model may be viewed with the parity_residual_plots method.

Further information about using PySMO’s Kriging tool and features can be found in the documentation.

Summary#

PySMO allows IDAES users to sample design spaces and generate different types of surrogate models. Further information about PySMO’s capabilities may be found in the documentation.