{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Sensitivity analysis of Ishigami function with Stochastic Collocation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Run an EasyVVUQ campaign to analyze the sensitivity for the Ishigami function\n", "\n", "This is done with SC." ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2021-06-07T14:15:21.463066Z", "start_time": "2021-06-07T14:15:16.010020Z" }, "code_folding": [ 0 ], "execution": { "iopub.execute_input": "2025-07-18T11:18:39.965874Z", "iopub.status.busy": "2025-07-18T11:18:39.965675Z", "iopub.status.idle": "2025-07-18T11:18:59.072621Z", "shell.execute_reply": "2025-07-18T11:18:59.071662Z", "shell.execute_reply.started": "2025-07-18T11:18:39.965862Z" } }, "outputs": [], "source": [ "# Run an EasyVVUQ campaign to analyze the sensitivity for the Ishigami function\n", "# This is done with SC.\n", "%matplotlib inline\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:15:21.476480Z", "start_time": "2021-06-07T14:15:21.468639Z" }, "execution": { "iopub.execute_input": "2025-07-18T11:18:59.075426Z", "iopub.status.busy": "2025-07-18T11:18:59.073930Z", "iopub.status.idle": "2025-07-18T11:18:59.088391Z", "shell.execute_reply": "2025-07-18T11:18:59.086667Z", "shell.execute_reply.started": "2025-07-18T11:18:59.075312Z" } }, "outputs": [ { "data": { "text/plain": [ "'1.26.4'" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.__version__" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "ExecuteTime": { "end_time": "2021-06-07T14:15:21.500137Z", "start_time": "2021-06-07T14:15:21.486267Z" }, "code_folding": [ 0, 1 ], "execution": { "iopub.execute_input": "2025-07-18T11:18:59.089503Z", "iopub.status.busy": "2025-07-18T11:18:59.089275Z", "iopub.status.idle": "2025-07-18T11:18:59.097189Z", "shell.execute_reply": "2025-07-18T11:18:59.096491Z", "shell.execute_reply.started": "2025-07-18T11:18:59.089480Z" } }, "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:15:21.510035Z", "start_time": "2021-06-07T14:15:21.505751Z" }, "code_folding": [ 0 ], "execution": { "iopub.execute_input": "2025-07-18T11:18:59.097708Z", "iopub.status.busy": "2025-07-18T11:18:59.097611Z", "iopub.status.idle": "2025-07-18T11:18:59.100661Z", "shell.execute_reply": "2025-07-18T11:18:59.100372Z", "shell.execute_reply.started": "2025-07-18T11:18:59.097699Z" } }, "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:15:21.520594Z", "start_time": "2021-06-07T14:15:21.515444Z" }, "code_folding": [ 0 ], "execution": { "iopub.execute_input": "2025-07-18T11:18:59.101402Z", "iopub.status.busy": "2025-07-18T11:18:59.101164Z", "iopub.status.idle": "2025-07-18T11:18:59.105366Z", "shell.execute_reply": "2025-07-18T11:18:59.105035Z", "shell.execute_reply.started": "2025-07-18T11:18:59.101371Z" } }, "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:15:21.530671Z", "start_time": "2021-06-07T14:15:21.525407Z" }, "code_folding": [ 0 ], "execution": { "iopub.execute_input": "2025-07-18T11:18:59.105863Z", "iopub.status.busy": "2025-07-18T11:18:59.105772Z", "iopub.status.idle": "2025-07-18T11:18:59.108388Z", "shell.execute_reply": "2025-07-18T11:18:59.107958Z", "shell.execute_reply.started": "2025-07-18T11:18:59.105854Z" } }, "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:15:21.547702Z", "start_time": "2021-06-07T14:15:21.534015Z" }, "code_folding": [ 0 ], "execution": { "iopub.execute_input": "2025-07-18T11:18:59.109008Z", "iopub.status.busy": "2025-07-18T11:18:59.108916Z", "iopub.status.idle": "2025-07-18T11:18:59.113518Z", "shell.execute_reply": "2025-07-18T11:18:59.113231Z", "shell.execute_reply.started": "2025-07-18T11:18:59.109000Z" } }, "outputs": [], "source": [ "# Set up and run a campaign\n", "def run_campaign(sc_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_sc.\"\n", " my_campaign = uq.Campaign(name='Ishigami_sc.')\n", "\n", "\n", " # Create an encoder and decoder for SC 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.SCSampler(vary=define_vary(), polynomial_order=sc_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, sc_order, my_campaign.get_active_sampler().count" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "ExecuteTime": { "end_time": "2021-06-07T14:17:40.849526Z", "start_time": "2021-06-07T14:15:21.555355Z" }, "code_folding": [ 0 ], "execution": { "iopub.execute_input": "2025-07-18T11:18:59.114251Z", "iopub.status.busy": "2025-07-18T11:18:59.114001Z", "iopub.status.idle": "2025-07-18T11:20:12.402469Z", "shell.execute_reply": "2025-07-18T11:20:12.401891Z", "shell.execute_reply.started": "2025-07-18T11:18:59.114239Z" }, "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Time for phase 1 = 0.047\n", "Number of samples = 8\n", "Time for phase 2 = 0.035\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|███████████████████████████████████████████| 8/8 [00:00<00:00, 2196.69it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Time for phase 3 = 0.026\n", "Time for phase 4 = 0.004\n", "Time for phase 5 = 0.004\n", "Time for phase 6 = 0.002\n", "Time for phase 1 = 0.007\n", "Number of samples = 27\n", "Time for phase 2 = 0.038\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|█████████████████████████████████████████| 27/27 [00:00<00:00, 4843.93it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Time for phase 3 = 0.010\n", "Time for phase 4 = 0.002\n", "Time for phase 5 = 0.009\n", "Time for phase 6 = 0.001\n", "Time for phase 1 = 0.006\n", "Number of samples = 64\n", "Time for phase 2 = 0.060\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "100%|█████████████████████████████████████████| 64/64 [00:00<00:00, 6232.83it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Time for phase 3 = 0.015\n", "Time for phase 4 = 0.002\n", "Time for phase 5 = 0.017\n", "Time for phase 6 = 0.001\n", "Time for phase 1 = 0.005\n", "Number of samples = 125\n", "Time for phase 2 = 0.088\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|███████████████████████████████████████| 125/125 [00:00<00:00, 6635.80it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Time for phase 3 = 0.024\n", "Time for phase 4 = 0.003\n", "Time for phase 5 = 0.031\n", "Time for phase 6 = 0.001\n", "Time for phase 1 = 0.006\n", "Number of samples = 216\n", "Time for phase 2 = 0.129\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|███████████████████████████████████████| 216/216 [00:00<00:00, 6528.19it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Time for phase 3 = 0.040\n", "Time for phase 4 = 0.004\n", "Time for phase 5 = 0.053\n", "Time for phase 6 = 0.001\n", "Time for phase 1 = 0.008\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Number of samples = 343\n", "Time for phase 2 = 0.183\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|███████████████████████████████████████| 343/343 [00:00<00:00, 6026.43it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Time for phase 3 = 0.148\n", "Time for phase 4 = 0.005\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Time for phase 5 = 0.099\n", "Time for phase 6 = 0.001\n", "Time for phase 1 = 0.006\n", "Number of samples = 512\n", "Time for phase 2 = 0.253\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|███████████████████████████████████████| 512/512 [00:00<00:00, 5871.77it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Time for phase 3 = 0.101\n", "Time for phase 4 = 0.010\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Time for phase 5 = 0.157\n", "Time for phase 6 = 0.002\n", "Time for phase 1 = 0.006\n", "Number of samples = 729\n", "Time for phase 2 = 0.296\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|███████████████████████████████████████| 729/729 [00:00<00:00, 6839.85it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Time for phase 3 = 0.123\n", "Time for phase 4 = 0.009\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Time for phase 5 = 0.234\n", "Time for phase 6 = 0.002\n", "Time for phase 1 = 0.006\n", "Number of samples = 1000\n", "Time for phase 2 = 0.371\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|█████████████████████████████████████| 1000/1000 [00:00<00:00, 6250.98it/s]" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Time for phase 3 = 0.181\n", "Time for phase 4 = 0.011\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Time for phase 5 = 0.327\n", "Time for phase 6 = 0.002\n", "Time for phase 1 = 0.018\n", "Number of samples = 1331\n", "Time for phase 2 = 0.510\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|█████████████████████████████████████| 1331/1331 [00:00<00:00, 6795.01it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Time for phase 3 = 0.223\n", "Time for phase 4 = 0.014\n", "Time for phase 5 = 0.461\n", "Time for phase 6 = 0.005\n", "Time for phase 1 = 0.017\n", "Number of samples = 1728\n", "Time for phase 2 = 0.628\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|█████████████████████████████████████| 1728/1728 [00:00<00:00, 4753.59it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Time for phase 3 = 0.401\n", "Time for phase 4 = 0.021\n", "Time for phase 5 = 0.710\n", "Time for phase 6 = 0.004\n", "Time for phase 1 = 0.006\n", "Number of samples = 2197\n", "Time for phase 2 = 0.727\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|█████████████████████████████████████| 2197/2197 [00:00<00:00, 4872.05it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Time for phase 3 = 0.494\n", "Time for phase 4 = 0.022\n", "Time for phase 5 = 0.949\n", "Time for phase 6 = 0.004\n", "Time for phase 1 = 0.006\n", "Number of samples = 2744\n", "Time for phase 2 = 0.849\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|█████████████████████████████████████| 2744/2744 [00:00<00:00, 6316.13it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Time for phase 3 = 0.559\n", "Time for phase 4 = 0.028\n", "Time for phase 5 = 1.308\n", "Time for phase 6 = 0.005\n", "Time for phase 1 = 0.008\n", "Number of samples = 3375\n", "Time for phase 2 = 1.287\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|█████████████████████████████████████| 3375/3375 [00:00<00:00, 5507.12it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Time for phase 3 = 0.699\n", "Time for phase 4 = 0.122\n", "Time for phase 5 = 1.867\n", "Time for phase 6 = 0.010\n", "Time for phase 1 = 0.009\n", "Number of samples = 4096\n", "Time for phase 2 = 1.295\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|█████████████████████████████████████| 4096/4096 [00:00<00:00, 6287.32it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Time for phase 3 = 0.731\n", "Time for phase 4 = 0.114\n", "Time for phase 5 = 2.538\n", "Time for phase 6 = 0.012\n", "Time for phase 1 = 0.011\n", "Number of samples = 4913\n", "Time for phase 2 = 1.524\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|█████████████████████████████████████| 4913/4913 [00:00<00:00, 5984.61it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Time for phase 3 = 0.915\n", "Time for phase 4 = 0.123\n", "Time for phase 5 = 3.376\n", "Time for phase 6 = 0.423\n", "Time for phase 1 = 0.014\n", "Number of samples = 5832\n", "Time for phase 2 = 1.861\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|█████████████████████████████████████| 5832/5832 [00:00<00:00, 6221.33it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Time for phase 3 = 1.115\n", "Time for phase 4 = 0.140\n", "Time for phase 5 = 4.407\n", "Time for phase 6 = 0.013\n", "Time for phase 1 = 0.010\n", "Number of samples = 6859\n", "Time for phase 2 = 2.084\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|█████████████████████████████████████| 6859/6859 [00:01<00:00, 6533.70it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Time for phase 3 = 1.242\n", "Time for phase 4 = 0.135\n", "Time for phase 5 = 5.694\n", "Time for phase 6 = 0.022\n", "Time for phase 1 = 0.011\n", "Number of samples = 8000\n", "Time for phase 2 = 2.377\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|█████████████████████████████████████| 8000/8000 [00:01<00:00, 6499.63it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Time for phase 3 = 1.378\n", "Time for phase 4 = 0.149\n", "Time for phase 5 = 7.615\n", "Time for phase 6 = 0.023\n", "Time for phase 1 = 0.016\n", "Number of samples = 9261\n", "Time for phase 2 = 2.595\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "100%|█████████████████████████████████████| 9261/9261 [00:01<00:00, 6123.90it/s]\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Time for phase 3 = 1.746\n", "Time for phase 4 = 0.167\n", "Time for phase 5 = 14.192\n", "Time for phase 6 = 0.023\n" ] } ], "source": [ "# Calculate the stochastic collocation expansion for a range of orders\n", "\n", "R = {}\n", "for sc_order in range(1, 21):\n", " R[sc_order] = {}\n", " (R[sc_order]['results_df'], \n", " R[sc_order]['results'], \n", " R[sc_order]['times'], \n", " R[sc_order]['order'], \n", " R[sc_order]['number_of_samples']) = run_campaign(sc_order=sc_order, use_files=False)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "ExecuteTime": { "end_time": "2021-06-07T14:17:41.284212Z", "start_time": "2021-06-07T14:17:40.854979Z" }, "code_folding": [ 0 ], "execution": { "iopub.execute_input": "2025-07-18T11:20:12.404370Z", "iopub.status.busy": "2025-07-18T11:20:12.404176Z", "iopub.status.idle": "2025-07-18T11:20:12.561652Z", "shell.execute_reply": "2025-07-18T11:20:12.561326Z", "shell.execute_reply.started": "2025-07-18T11:20:12.404357Z" } }, "outputs": [], "source": [ "# save the results\n", "\n", "pickle.dump(R, open('collected_results.pickle','bw'))" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "ExecuteTime": { "end_time": "2021-06-07T14:17:41.753581Z", "start_time": "2021-06-07T14:17:41.285527Z" }, "code_folding": [ 0 ], "execution": { "iopub.execute_input": "2025-07-18T11:20:12.562207Z", "iopub.status.busy": "2025-07-18T11:20:12.562121Z", "iopub.status.idle": "2025-07-18T11:20:12.609459Z", "shell.execute_reply": "2025-07-18T11:20:12.609040Z", "shell.execute_reply.started": "2025-07-18T11:20:12.562198Z" } }, "outputs": [ { "data": { "text/html": [ "
\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.1168570.0465280.0349330.0257520.0036360.0042900.001542
20.0667980.0069850.0383130.0096100.0019320.0091170.000763
30.1007640.0059550.0603590.0147360.0022380.0165970.000803
40.1513930.0053560.0876460.0239920.0028850.0307420.000696
50.2341070.0057350.1291140.0404930.0042720.0533850.001017
60.4457460.0084590.1834650.1481840.0050550.0989700.001456
70.5288470.0058180.2531950.1014430.0098720.1565320.001785
80.6687870.0059890.2956200.1226710.0087890.2338100.001744
90.8981340.0061970.3708320.1814020.0107270.3267830.002029
101.2316450.0177210.5103580.2230780.0142880.4607880.005255
111.7812110.0173180.6281230.4008590.0214700.7096110.003593
122.2028620.0059970.7271730.4939300.0224080.9485690.004500
132.7561440.0063440.8488100.5591020.0277871.3084490.005416
143.9931490.0078721.2865620.6990520.1218751.8666140.010422
154.7005410.0093321.2952800.7312920.1138672.5384330.011786
166.3738100.0107331.5242210.9153960.1231343.3764000.423174
177.5505530.0141751.8607521.1151860.1399404.4071070.012942
189.1887590.0099112.0843671.2424400.1352665.6944860.021989
1911.5530410.0113602.3769851.3775630.1486707.6149440.022871
2018.7393140.0161162.5947941.7461750.16711314.1915570.022820
\n", "
" ], "text/plain": [ " Total Phase 1 Phase 2 Phase 3 Phase 4 Phase 5 Phase 6\n", "1 0.116857 0.046528 0.034933 0.025752 0.003636 0.004290 0.001542\n", "2 0.066798 0.006985 0.038313 0.009610 0.001932 0.009117 0.000763\n", "3 0.100764 0.005955 0.060359 0.014736 0.002238 0.016597 0.000803\n", "4 0.151393 0.005356 0.087646 0.023992 0.002885 0.030742 0.000696\n", "5 0.234107 0.005735 0.129114 0.040493 0.004272 0.053385 0.001017\n", "6 0.445746 0.008459 0.183465 0.148184 0.005055 0.098970 0.001456\n", "7 0.528847 0.005818 0.253195 0.101443 0.009872 0.156532 0.001785\n", "8 0.668787 0.005989 0.295620 0.122671 0.008789 0.233810 0.001744\n", "9 0.898134 0.006197 0.370832 0.181402 0.010727 0.326783 0.002029\n", "10 1.231645 0.017721 0.510358 0.223078 0.014288 0.460788 0.005255\n", "11 1.781211 0.017318 0.628123 0.400859 0.021470 0.709611 0.003593\n", "12 2.202862 0.005997 0.727173 0.493930 0.022408 0.948569 0.004500\n", "13 2.756144 0.006344 0.848810 0.559102 0.027787 1.308449 0.005416\n", "14 3.993149 0.007872 1.286562 0.699052 0.121875 1.866614 0.010422\n", "15 4.700541 0.009332 1.295280 0.731292 0.113867 2.538433 0.011786\n", "16 6.373810 0.010733 1.524221 0.915396 0.123134 3.376400 0.423174\n", "17 7.550553 0.014175 1.860752 1.115186 0.139940 4.407107 0.012942\n", "18 9.188759 0.009911 2.084367 1.242440 0.135266 5.694486 0.021989\n", "19 11.553041 0.011360 2.376985 1.377563 0.148670 7.614944 0.022871\n", "20 18.739314 0.016116 2.594794 1.746175 0.167113 14.191557 0.022820" ] }, "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-07T14:17:45.416273Z", "start_time": "2021-06-07T14:17:41.757959Z" }, "code_folding": [ 0 ], "execution": { "iopub.execute_input": "2025-07-18T11:20:12.609967Z", "iopub.status.busy": "2025-07-18T11:20:12.609864Z", "iopub.status.idle": "2025-07-18T11:20:14.211230Z", "shell.execute_reply": "2025-07-18T11:20:14.210924Z", "shell.execute_reply.started": "2025-07-18T11:20:12.609957Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "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('SC 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-07T14:17:45.822277Z", "start_time": "2021-06-07T14:17:45.419336Z" }, "code_folding": [ 0 ], "execution": { "iopub.execute_input": "2025-07-18T11:20:14.211781Z", "iopub.status.busy": "2025-07-18T11:20:14.211668Z", "iopub.status.idle": "2025-07-18T11:20:14.410182Z", "shell.execute_reply": "2025-07-18T11:20:14.409884Z", "shell.execute_reply.started": "2025-07-18T11:20:14.211770Z" } }, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "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('SC 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-07T14:17:47.032599Z", "start_time": "2021-06-07T14:17:45.823359Z" }, "code_folding": [ 0 ], "execution": { "iopub.execute_input": "2025-07-18T11:20:14.410897Z", "iopub.status.busy": "2025-07-18T11:20:14.410803Z", "iopub.status.idle": "2025-07-18T11:20:15.217674Z", "shell.execute_reply": "2025-07-18T11:20:15.217403Z", "shell.execute_reply.started": "2025-07-18T11:20:14.410888Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "100%|█████████████████████████████████████| 1000/1000 [00:00<00:00, 6667.73it/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": 14, "metadata": { "ExecuteTime": { "end_time": "2021-06-07T14:18:01.960202Z", "start_time": "2021-06-07T14:17:47.037407Z" }, "code_folding": [ 0 ], "execution": { "iopub.execute_input": "2025-07-18T11:20:15.218129Z", "iopub.status.busy": "2025-07-18T11:20:15.218052Z", "iopub.status.idle": "2025-07-18T11:20:25.003904Z", "shell.execute_reply": "2025-07-18T11:20:25.000998Z", "shell.execute_reply.started": "2025-07-18T11:20:15.218120Z" } }, "outputs": [], "source": [ "# calculate the SC surrogates\n", "if __name__ == '__main__':\n", "\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": 15, "metadata": { "ExecuteTime": { "end_time": "2021-06-07T14:18:02.613973Z", "start_time": "2021-06-07T14:18:01.963819Z" }, "code_folding": [ 0 ], "execution": { "iopub.execute_input": "2025-07-18T11:20:25.004834Z", "iopub.status.busy": "2025-07-18T11:20:25.004701Z", "iopub.status.idle": "2025-07-18T11:20:25.140332Z", "shell.execute_reply": "2025-07-18T11:20:25.140041Z", "shell.execute_reply.started": "2025-07-18T11:20:25.004824Z" } }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "/var/folders/6f/rn14629n60j16dc99dtk7bs4000ctx/T/ipykernel_67300/2228134460.py:13: UserWarning: No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.\n", " plt.legend(loc=0)\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# plot the convergence of the surrogate\n", "if __name__ == '__main__':\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('SC order')\n", " plt.ylabel('RMS error for the SC surrogate')\n", " plt.legend(loc=0)\n", " plt.savefig('Convergence_SC_surrogate.png')\n", " plt.savefig('Convergence_SC_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 (ipykernel)", "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.12.11" }, "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 }