{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Basic use of Probeye\n", "## Imports" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Problem definition\n", "from probeye.definition.inverse_problem import InverseProblem\n", "from probeye.definition.forward_model import ForwardModelBase\n", "from probeye.definition.distribution import Normal\n", "from probeye.definition.sensor import Sensor\n", "from probeye.definition.likelihood_model import GaussianLikelihoodModel\n", "\n", "# Inference\n", "from probeye.inference.emcee.solver import EmceeSolver\n", "\n", "# Postprocessing\n", "from probeye.postprocessing.sampling_plots import create_posterior_plot" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Problem setup" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Fixed parameters\n", "I = 1e9 # mm^4\n", "L = 10_000 # mm\n", "Q = 100 # kN\n", "\n", "# Measurements\n", "x_meas = 5000 # mm\n", "d_meas = 50 # mm\n", "sigma_meas = 10 # mm\n", "\n", "# Prior\n", "E_mean = 60 # GPa\n", "E_std = 20 # GPa" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Define forward model" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "def midspan_deflection(E):\n", " return Q * L ** 3 / (48 * E * I)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "class BeamModel(ForwardModelBase):\n", " def interface(self):\n", " self.parameters = ...\n", " self.input_sensors = ...\n", " self.output_sensors = ...\n", "\n", " def response(self, inp: dict) -> dict:\n", " E = ...\n", " return {...}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Define inverse problem" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# Instantiate the inverse problem\n", "problem = ...\n", "\n", "# Add latent parameters\n", "problem.add_parameter(...)\n", "\n", "# Add fixed parameters\n", "problem.add_parameter(...)\n", "\n", "# Add measurement data\n", "problem.add_experiment(...)\n", "\n", "# Add forward model\n", "problem.add_forward_model(...)\n", "\n", "# Add likelihood model\n", "problem.add_likelihood_model(...)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Solve with MCMC" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "emcee_solver = EmceeSolver(...)\n", "inference_data = emcee_solver.run(...)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Plot" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "post_plot_array = create_posterior_plot(...)" ] } ], "metadata": { "kernelspec": { "display_name": "venv", "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.11.5" } }, "nbformat": 4, "nbformat_minor": 2 }