{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Run an EasyVVUQ campaign to analyze the sensitivity for the Ishigami function\n", "\n", "This is done with PCE." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2021-06-07T14:42:46.244157Z", "start_time": "2021-06-07T14:42:41.768114Z" }, "code_folding": [ 0 ] }, "outputs": [], "source": [ "# Run an EasyVVUQ campaign to analyze the sensitivity for the Ishigami function\n", "# This is done with PCE.\n", "import os\n", "import easyvvuq as uq\n", "import chaospy as cp\n", "import pickle\n", "import numpy as np\n", "import matplotlib.pylab as plt\n", "import time\n", "import pandas as pd" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2021-06-07T14:42:46.248425Z", "start_time": "2021-06-07T14:42:46.245314Z" } }, "outputs": [ { "data": { "text/plain": [ "'1.20.3'" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.__version__" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "ExecuteTime": { "end_time": "2021-06-07T14:42:46.253612Z", "start_time": "2021-06-07T14:42:46.249610Z" }, "code_folding": [ 0, 1 ] }, "outputs": [], "source": [ "# Define the Ishigami function\n", "def ishigamiSA(a,b):\n", " '''Exact sensitivity indices of the Ishigami function for given a and b.\n", " From https://openturns.github.io/openturns/master/examples/meta_modeling/chaos_ishigami.html\n", " '''\n", " var = 1.0/2 + a**2/8 + b*np.pi**4/5 + b**2*np.pi**8/18\n", " S1 = (1.0/2 + b*np.pi**4/5+b**2*np.pi**8/50)/var\n", " S2 = (a**2/8)/var\n", " S3 = 0\n", " S13 = b**2*np.pi**8/2*(1.0/9-1.0/25)/var\n", " exact = {\n", " 'expectation' : a/2,\n", " 'variance' : var,\n", " 'S1' : (1.0/2 + b*np.pi**4/5+b**2*np.pi**8.0/50)/var,\n", " 'S2' : (a**2/8)/var,\n", " 'S3' : 0,\n", " 'S12' : 0,\n", " 'S23' : 0,\n", " 'S13' : S13,\n", " 'S123' : 0,\n", " 'ST1' : S1 + S13,\n", " 'ST2' : S2,\n", " 'ST3' : S3 + S13\n", " }\n", " return exact\n", "\n", "Ishigami_a = 7.0\n", "Ishigami_b = 0.1\n", "exact = ishigamiSA(Ishigami_a, Ishigami_b)" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "ExecuteTime": { "end_time": "2021-06-07T14:42:46.257741Z", "start_time": "2021-06-07T14:42:46.255954Z" }, "code_folding": [ 0 ] }, "outputs": [], "source": [ "# define a model to run the Ishigami code directly from python, expecting a dictionary and returning a dictionary\n", "def run_ishigami_model(input):\n", " import Ishigami\n", " qois = [\"Ishigami\"]\n", " del input['out_file']\n", " return {qois[0]: Ishigami.evaluate(**input)}" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "ExecuteTime": { "end_time": "2021-06-07T14:42:46.261995Z", "start_time": "2021-06-07T14:42:46.258868Z" }, "code_folding": [ 0 ] }, "outputs": [], "source": [ "# Define parameter space\n", "def define_params():\n", " return {\n", " \"x1\": {\"type\": \"float\", \"min\": -np.pi, \"max\": np.pi, \"default\": 0.0},\n", " \"x2\": {\"type\": \"float\", \"min\": -np.pi, \"max\": np.pi, \"default\": 0.0},\n", " \"x3\": {\"type\": \"float\", \"min\": -np.pi, \"max\": np.pi, \"default\": 0.0},\n", " \"a\": {\"type\": \"float\", \"min\": Ishigami_a, \"max\": Ishigami_a, \"default\": Ishigami_a},\n", " \"b\": {\"type\": \"float\", \"min\": Ishigami_b, \"max\": Ishigami_b, \"default\": Ishigami_b},\n", " \"out_file\": {\"type\": \"string\", \"default\": \"output.csv\"}\n", " }" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "ExecuteTime": { "end_time": "2021-06-07T14:42:46.265476Z", "start_time": "2021-06-07T14:42:46.263562Z" }, "code_folding": [ 0 ] }, "outputs": [], "source": [ "# Define parameter space\n", "def define_vary():\n", " return {\n", " \"x1\": cp.Uniform(-np.pi, np.pi),\n", " \"x2\": cp.Uniform(-np.pi, np.pi),\n", " \"x3\": cp.Uniform(-np.pi, np.pi)\n", " }" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "ExecuteTime": { "end_time": "2021-06-07T14:42:46.272337Z", "start_time": "2021-06-07T14:42:46.266543Z" }, "code_folding": [ 0 ] }, "outputs": [], "source": [ "# Set up and run a campaign\n", "def run_campaign(pce_order=2, use_files=False):\n", "\n", " times = np.zeros(7)\n", "\n", " time_start = time.time()\n", " time_start_whole = time_start\n", "\n", " # Set up a fresh campaign called \"Ishigami_pce.\"\n", " my_campaign = uq.Campaign(name='Ishigami_pce.')\n", "\n", " # Create an encoder and decoder for PCE test app\n", " if use_files:\n", " encoder = uq.encoders.GenericEncoder(template_fname='Ishigami.template',\n", " delimiter='$',\n", " target_filename='Ishigami_in.json')\n", "\n", " decoder = uq.decoders.SimpleCSV(target_filename=\"output.csv\",\n", " output_columns=[\"Ishigami\"])\n", "\n", " execute = uq.actions.ExecuteLocal('python3 %s/Ishigami.py Ishigami_in.json' % (os.getcwd()))\n", "\n", " actions = uq.actions.Actions(uq.actions.CreateRunDirectory('/tmp'), \n", " uq.actions.Encode(encoder), execute, uq.actions.Decode(decoder))\n", " else:\n", " actions = uq.actions.Actions(uq.actions.ExecutePython(run_ishigami_model))\n", "\n", " # Add the app (automatically set as current app)\n", " my_campaign.add_app(name=\"Ishigami\", params=define_params(), actions=actions)\n", "\n", " # Create the sampler\n", " time_end = time.time()\n", " times[1] = time_end-time_start\n", " print('Time for phase 1 = %.3f' % (times[1]))\n", "\n", " time_start = time.time()\n", " # Associate a sampler with the campaign\n", " my_campaign.set_sampler(uq.sampling.PCESampler(vary=define_vary(), polynomial_order=pce_order))\n", "\n", " # Will draw all (of the finite set of samples)\n", " my_campaign.draw_samples()\n", " print('Number of samples = %s' % my_campaign.get_active_sampler().count)\n", "\n", " time_end = time.time()\n", " times[2] = time_end-time_start\n", " print('Time for phase 2 = %.3f' % (times[2]))\n", "\n", " time_start = time.time()\n", " # Run the cases\n", " my_campaign.execute(sequential=True).collate(progress_bar=True)\n", "\n", " time_end = time.time()\n", " times[3] = time_end-time_start\n", " print('Time for phase 3 = %.3f' % (times[3]))\n", "\n", " time_start = time.time()\n", " # Get the results\n", " results_df = my_campaign.get_collation_result()\n", "\n", " time_end = time.time()\n", " times[4] = time_end-time_start\n", " print('Time for phase 4 = %.3f' % (times[4]))\n", "\n", " time_start = time.time()\n", " # Post-processing analysis\n", " results = my_campaign.analyse(qoi_cols=[\"Ishigami\"])\n", " \n", " time_end = time.time()\n", " times[5] = time_end-time_start\n", " print('Time for phase 5 = %.3f' % (times[5]))\n", "\n", " time_start = time.time()\n", " # Save the results\n", " pickle.dump(results, open('Ishigami_results.pickle','bw'))\n", " time_end = time.time()\n", " times[6] = time_end-time_start\n", " print('Time for phase 6 = %.3f' % (times[6]))\n", "\n", " times[0] = time_end - time_start_whole\n", "\n", " return results_df, results, times, pce_order, my_campaign.get_active_sampler().count" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "ExecuteTime": { "end_time": "2021-06-07T15:00:53.564255Z", "start_time": "2021-06-07T14:42:46.274613Z" }, "code_folding": [ 0 ], "scrolled": true }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 8/8 [00:00<00:00, 2198.99it/s]\n", "100%|██████████| 27/27 [00:00<00:00, 5230.77it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Time for phase 1 = 0.024\n", "Number of samples = 8\n", "Time for phase 2 = 0.047\n", "Time for phase 3 = 0.014\n", "Time for phase 4 = 0.005\n", "Time for phase 5 = 0.025\n", "Time for phase 6 = 0.001\n", "Time for phase 1 = 0.009\n", "Number of samples = 27\n", "Time for phase 2 = 0.067\n", "Time for phase 3 = 0.010\n", "Time for phase 4 = 0.003\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "100%|██████████| 64/64 [00:00<00:00, 5296.67it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Time for phase 5 = 0.096\n", "Time for phase 6 = 0.001\n", "Time for phase 1 = 0.010\n", "Number of samples = 64\n", "Time for phase 2 = 0.110\n", "Time for phase 3 = 0.018\n", "Time for phase 4 = 0.003\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", " 0%| | 0/125 [00:00\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
TotalPhase 1Phase 2Phase 3Phase 4Phase 5Phase 6
10.1168900.0235610.0474940.0143640.0047270.0251450.001371
20.1852150.0087580.0666340.0101110.0031070.0957310.000704
30.2994040.0099780.1101620.0182650.0033090.1567210.000741
40.4955860.0102130.1655190.0317260.0039380.2830120.000999
50.7445870.0096840.2110160.0472310.0049520.4706950.000839
61.1739680.0099200.2887320.0738670.0096840.7906350.000920
71.8354040.0100540.4298320.1055030.0083881.2803350.001104
82.9384340.0096340.5193470.1922730.0145602.2011860.001187
94.5345840.0104740.6442280.2034960.0179643.6567230.001494
107.4455910.0108100.8085910.2715190.0230366.3292160.002161
1111.2925700.0110031.0897630.3508400.0290359.8099490.001761
1217.3858030.0106391.2836760.4445290.03306515.6117050.001973
1326.0563650.0104421.5602730.6370030.04080323.8052250.002354
1440.1453580.0107971.9934330.7239330.04849137.3636940.004593
1560.7265230.0128182.6552320.9931640.11323856.9464010.005375
1686.5571810.0116313.1058011.1128620.06907582.2492560.008064
17116.3425490.0129753.8346791.3953180.139787110.9551480.004159
18163.8751940.0137054.5234331.4158200.138397157.7749130.008706
19230.6740450.0131405.5059231.6738610.105901223.3647990.010118
20314.4459610.0166056.6376822.0136300.175227305.5902380.012095
\n", "" ], "text/plain": [ " Total Phase 1 Phase 2 Phase 3 Phase 4 Phase 5 Phase 6\n", "1 0.116890 0.023561 0.047494 0.014364 0.004727 0.025145 0.001371\n", "2 0.185215 0.008758 0.066634 0.010111 0.003107 0.095731 0.000704\n", "3 0.299404 0.009978 0.110162 0.018265 0.003309 0.156721 0.000741\n", "4 0.495586 0.010213 0.165519 0.031726 0.003938 0.283012 0.000999\n", "5 0.744587 0.009684 0.211016 0.047231 0.004952 0.470695 0.000839\n", "6 1.173968 0.009920 0.288732 0.073867 0.009684 0.790635 0.000920\n", "7 1.835404 0.010054 0.429832 0.105503 0.008388 1.280335 0.001104\n", "8 2.938434 0.009634 0.519347 0.192273 0.014560 2.201186 0.001187\n", "9 4.534584 0.010474 0.644228 0.203496 0.017964 3.656723 0.001494\n", "10 7.445591 0.010810 0.808591 0.271519 0.023036 6.329216 0.002161\n", "11 11.292570 0.011003 1.089763 0.350840 0.029035 9.809949 0.001761\n", "12 17.385803 0.010639 1.283676 0.444529 0.033065 15.611705 0.001973\n", "13 26.056365 0.010442 1.560273 0.637003 0.040803 23.805225 0.002354\n", "14 40.145358 0.010797 1.993433 0.723933 0.048491 37.363694 0.004593\n", "15 60.726523 0.012818 2.655232 0.993164 0.113238 56.946401 0.005375\n", "16 86.557181 0.011631 3.105801 1.112862 0.069075 82.249256 0.008064\n", "17 116.342549 0.012975 3.834679 1.395318 0.139787 110.955148 0.004159\n", "18 163.875194 0.013705 4.523433 1.415820 0.138397 157.774913 0.008706\n", "19 230.674045 0.013140 5.505923 1.673861 0.105901 223.364799 0.010118\n", "20 314.445961 0.016605 6.637682 2.013630 0.175227 305.590238 0.012095" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# produce a table of the time taken for various phases\n", "# the phases are:\n", "# 1: creation of campaign\n", "# 2: creation of samples\n", "# 3: running the cases\n", "# 4: calculation of statistics including Sobols\n", "# 5: returning of analysed results\n", "# 6: saving campaign and pickled results\n", "\n", "Timings = pd.DataFrame(np.array([R[r]['times'] for r in list(R.keys())]), \n", " columns=['Total', 'Phase 1', 'Phase 2', 'Phase 3', 'Phase 4', 'Phase 5', 'Phase 6'], \n", " index=[R[r]['order'] for r in list(R.keys())])\n", "Timings.to_csv(open('Timings.csv', 'w'))\n", "display(Timings)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "ExecuteTime": { "end_time": "2021-06-07T15:00:54.334136Z", "start_time": "2021-06-07T15:00:53.767797Z" }, "code_folding": [ 0 ] }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# plot the convergence of the mean and standard deviation to that of the highest order\n", "\n", "mean_analytic = exact['expectation']\n", "std_analytic = np.sqrt(exact['variance'])\n", "\n", "O = [R[r]['order'] for r in list(R.keys())]\n", "plt.figure()\n", "plt.semilogy([o for o in O], \n", " [np.abs(R[o]['results'].describe('Ishigami', 'mean') - mean_analytic) for o in O],\n", " 'o-', label='mean')\n", "plt.semilogy([o for o in O], \n", " [np.abs(R[o]['results'].describe('Ishigami', 'std') - std_analytic) for o in O],\n", " 'o-', label='std')\n", "plt.xlabel('PCE order')\n", "plt.ylabel('RMSerror compared to analytic')\n", "plt.legend(loc=0)\n", "plt.savefig('Convergence_mean_std.png')\n", "plt.savefig('Convergence_mean_std.pdf')" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "ExecuteTime": { "end_time": "2021-06-07T15:00:54.659620Z", "start_time": "2021-06-07T15:00:54.336357Z" }, "code_folding": [ 0 ] }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# plot the convergence of the first sobol to that of the highest order\n", "\n", "sobol_first_exact = {'x1': exact['S1'], 'x2': exact['S2'], 'x3': exact['S3']}\n", "\n", "O = [R[r]['order'] for r in list(R.keys())]\n", "plt.figure()\n", "for v in list(R[O[0]]['results'].sobols_first('Ishigami').keys()):\n", " plt.semilogy([o for o in O],\n", " [np.abs(R[o]['results'].sobols_first('Ishigami')[v] - sobol_first_exact[v]) for o in O],\n", " 'o-',\n", " label=v)\n", "plt.xlabel('PCE order')\n", "plt.ylabel('ABSerror for 1st sobol compared to analytic')\n", "plt.legend(loc=0)\n", "plt.savefig('Convergence_sobol_first.png')\n", "plt.savefig('Convergence_sobol_first.pdf')" ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "ExecuteTime": { "end_time": "2021-06-07T15:00:54.981382Z", "start_time": "2021-06-07T15:00:54.660545Z" }, "code_folding": [ 0 ] }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# plot the convergence of the total sobol to that of the highest order\n", "\n", "sobol_total_exact = {'x1': exact['ST1'], 'x2': exact['ST2'], 'x3': exact['ST3']}\n", "\n", "O = [R[r]['order'] for r in list(R.keys())]\n", "plt.figure()\n", "for v in list(R[O[0]]['results'].sobols_total('Ishigami').keys()):\n", " plt.semilogy([o for o in O],\n", " [np.abs(R[o]['results'].sobols_total('Ishigami')[v] - sobol_total_exact[v]) for o in O],\n", " 'o-',\n", " label=v)\n", "plt.xlabel('PCE order')\n", "plt.ylabel('ABSerror for total sobol compared to analytic')\n", "plt.legend(loc=0)\n", "plt.savefig('Convergence_sobol_total.png')\n", "plt.savefig('Convergence_sobol_total.pdf')" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "ExecuteTime": { "end_time": "2021-06-07T15:00:55.183083Z", "start_time": "2021-06-07T15:00:54.982223Z" }, "code_folding": [ 0 ] }, "outputs": [ { "data": { "image/png": "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i/T0dLZv385dd93FmWeeySWXXMLDDz/M1q1bGTZsGFdddRW///3v2b59O+PGjeM3v/kNAEuXLmXFihWsX7++eaTNJuvXr+eFF17g008/JTQ0lLfeeostW7awevVqfvGLXzQP6paZmcnNN9/M9u3b2bVrF//85z9Zu3YtjzzyCL/73e+Oe09PPPEE4ByK4eWXX2bx4sXU1NSwcuVKhg0bxtatW9scugGcQ0AUFRXx3HPPUVdXx7XXXst//vMf1qxZw8GDB5u3e+CBBzj77LPZtGkTq1ev5vbbb6eysvKYY/3zn//k/PPPZ+vWrWzbtq151NUHHniAtLQ0tm/fzueff948vwA4R/pcv349M2fObE7CGzZs4J577mneZuPGjfzxj39kx44d7N2795jEBM7evK+++irr1q1j69at2Gw2XnrpJbZu3UpeXh47d+5kx44dLF26tM1r4AmaAJTyAToc9Hd++9vfcvToUf76178iIuzatYukpCSSk5MREa688srmbT/88EMeeughUlJSmDNnDjU1NRw4cOCY402ZMoXnnnuOe++9lx07dhAZ6Rya47XXXmPSpElMnDiR9PR0vvnmm+Z9Wg4HfcYZZxAZGUlcXByhoaEcPXoUgNNPP52hQ4dis9m4/PLLjxsO+pNPPmHz5s1MmTKFlJQUPvnkE/bt28fQoUPZt28f//3f/837779PVFRUu9eks/QegFI+QIeD/s6UKVPYvHkzhw8fbk5MrYdabnmON95446SjjM6aNYsvvviCd999l0WLFnH77bc3jx66adMmYmJiWLJkSbcMB7148WIefPDB42Latm0bH3zwAU888QSvvfYazz777MkuSadpCUApPxBIw0HPmzeP5cuXM3/+fMrLyxk5ciRZWVns3bsX4Jjx9c8//3z+93//tznZfP3118cdb//+/fTt25drr72Wq6++mi1btlBWVkZ4eDjR0dEUFhby3nvvdfj9bdy4kaysLBwOB6+++upxw0Gfc845vP766xQVFQHOarz9+/dz6NAhHA4HP/jBD/jtb3/Lli1bOnxud2kJQPml9XtLiDpY1j0HT2q7XtptOhw00LXhoBcuXEh5eTmXXHIJq1at4qmnnmL+/PnExsYyY8aM5iazd999Nz//+c8ZP348xhgSExOPax762Wef8fDDD2O324mIiODvf/87SUlJTJw4kTFj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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Plot the distribution function\n", "\n", "results_df = R[O[-1]]['results_df']\n", "results = R[O[-1]]['results']\n", "Ishigami_dist = results.raw_data['output_distributions']['Ishigami']\n", "\n", "plt.figure()\n", "plt.hist(results_df.Ishigami[0], density=True, bins=50, label='histogram of raw samples', alpha=0.25)\n", "if hasattr(Ishigami_dist, 'samples'):\n", " plt.hist(Ishigami_dist.samples[0], density=True, bins=50, label='histogram of kde samples', alpha=0.25)\n", "t1 = Ishigami_dist[0]\n", "plt.plot(np.linspace(t1.lower, t1.upper), t1.pdf(np.linspace(t1.lower,t1.upper)), label='PDF')\n", "plt.legend(loc=0)\n", "plt.xlabel('Ishigami')\n", "plt.savefig('Ishigami_distribution_function.png')" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "ExecuteTime": { "end_time": "2021-06-07T15:00:56.691840Z", "start_time": "2021-06-07T15:00:55.183929Z" }, "code_folding": [ 0 ] }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# plot the RMS surrogate error at the PCE vary points\n", "_o = []\n", "_RMS = []\n", "for r in R.values():\n", " results_df = r['results_df']\n", " results = r['results']\n", " Ishigami_surrogate = np.squeeze(np.array(results.surrogate()(results_df[results.inputs])['Ishigami']))\n", " Ishigami_samples = np.squeeze(np.array(results_df['Ishigami']))\n", " _RMS.append((np.sqrt((((Ishigami_surrogate - Ishigami_samples))**2).mean())))\n", " _o.append(r['order'])\n", "\n", "plt.figure()\n", "plt.semilogy(_o, _RMS, 'o-')\n", "plt.xlabel('PCE order')\n", "plt.ylabel('RMS error for the PCE surrogate')\n", "plt.legend(loc=0)\n", "plt.savefig('Convergence_surrogate.png')\n", "plt.savefig('Convergence_surrogate.pdf')" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "ExecuteTime": { "end_time": "2021-06-07T15:00:57.570463Z", "start_time": "2021-06-07T15:00:56.693196Z" }, "code_folding": [ 0 ] }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "100%|██████████| 1000/1000 [00:00<00:00, 5818.48it/s]\n" ] } ], "source": [ "# prepare the test data\n", "test_campaign = uq.Campaign(name='Ishigami.') \n", "test_campaign.add_app(name=\"Ishigami\", params=define_params(), \n", " actions=uq.actions.Actions(uq.actions.ExecutePython(run_ishigami_model)))\n", "test_campaign.set_sampler(uq.sampling.quasirandom.LHCSampler(vary=define_vary(), count=100))\n", "test_campaign.execute(nsamples=1000, sequential=True).collate(progress_bar=True)\n", "test_df = test_campaign.get_collation_result()" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "ExecuteTime": { "end_time": "2021-06-07T15:00:57.870125Z", "start_time": "2021-06-07T15:00:57.571271Z" }, "code_folding": [ 0 ] }, "outputs": [], "source": [ "# calculate the PCE surrogates\n", "test_points = test_df[test_campaign.get_active_sampler().vary.get_keys()]\n", "test_results = np.squeeze(test_df['Ishigami'].values)\n", "test_predictions = {}\n", "for i in list(R.keys()):\n", " test_predictions[i] = np.squeeze(np.array(R[i]['results'].surrogate()(test_points)['Ishigami']))" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "ExecuteTime": { "end_time": "2021-06-07T15:00:58.048248Z", "start_time": "2021-06-07T15:00:57.870961Z" }, "code_folding": [ 0 ] }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# plot the convergence of the surrogate\n", "_o = []\n", "_RMS = []\n", "for r in R.values():\n", " _RMS.append((np.sqrt((((test_predictions[r['order']] - test_results))**2).mean())))\n", " _o.append(r['order'])\n", "\n", "plt.figure()\n", "plt.semilogy(_o, _RMS, 'o-')\n", "plt.xlabel('PCE order')\n", "plt.ylabel('RMS error for the PCE surrogate')\n", "plt.legend(loc=0)\n", "plt.savefig('Convergence_PCE_surrogate.png')\n", "plt.savefig('Convergence_PCE_surrogate.pdf')" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "jupytext": { "cell_metadata_filter": "-all", "executable": " /usr/bin/env python", "main_language": "python", "notebook_metadata_filter": "-all" }, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.9.4" }, "latex_envs": { "LaTeX_envs_menu_present": true, "autoclose": false, "autocomplete": true, "bibliofile": "biblio.bib", "cite_by": "apalike", "current_citInitial": 1, "eqLabelWithNumbers": true, "eqNumInitial": 1, "hotkeys": { "equation": "Ctrl-E", "itemize": "Ctrl-I" }, "labels_anchors": false, "latex_user_defs": false, "report_style_numbering": false, "user_envs_cfg": false } }, "nbformat": 4, "nbformat_minor": 4 }