{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# **Simple beam - Stress and Strain**\n", "In this fourth notebook, the stresses and strains inside the element are studied. For any civil engineer, the deep understanding of the behaviour of stress and strain inside an element is essential. For this reason, after completing this DEMO, you'll be equipped with the preliminary and fundamental knowledge to be able to tackle the next important concepts and theories. \n", "The system, geometry and actions are the same presented in the previous DEMO \"03-sb_diagrams\"." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## **Goals**\n", "\n", "* Describe the differences between the various strains and stresses\n", "* Explain the relations between them\n", "* Identify which parameters influence their behaviour" ] }, { "cell_type": "markdown", "metadata": { "tags": [] }, "source": [ "## **Tasks and exercises**\n", "\n", "Answer to the following questions by using and playing with the interactive visualisation tool (bottom of the notebook).\n", "\n", "1. What are the differences between the centroid and the neutral axis? Is there a way to superimpose them in this studied case?\n", "\n", "
\n", " Solution:\n", " The centroid is dependent only on the geometry of the section; on the other hand, the neutral axis is function of the centroid and the internal forces.\n", " \n", " Yes, if the external horizontal force P is removed and the axial force N becomes zero, the neutral axis is in the same position of the centroid.\n", "
\n", "\n", "
\n", "\n", "2. Does the cross-section influence the maximal stresses and strains? By changing the length of the beam to 8 m, do you ascertain any changes?\n", "\n", "
\n", " Solution:\n", " Yes; the internal forces do not change, but the resistance of the section (area and inertia) is directly influenced by h and b. Note that increasing h has a bigger impact only on the bending strain and bending stress (power of 2); on the other hand b and h have the same influence, because the axial stress and strain is dependent only on the area: $\\sigma_N = N/A$ and $\\epsilon_N = \\sigma_N/E$ and the shear stress is also only dependent on the area: $\\tau_{max} = \\frac{V S}{I_y b} = \\frac{V\\frac{bh^2}{8}}{\\frac{bh^3}{12}b} = \\frac{3V}{2bh} = \\frac{3V}{2A}$.\n", " \n", " Yes; the parameters responsible for the resistance of the section (area and inertia) do not change, but the amplitude of the shear and the bending moment increase, thus the stress and strain inside the section increase, except for the axial strain and stress, that are independent of the length of the beam and they remain the same.\n", "
\n", "\n", "
\n", "\n", "3. Consider the starting configuration; assume that the beam is composed of a material with a yield strength of 27.2 MPa.\n", " 1. Will the beam remain elastic everywhere?\n", "
\n", " Solution:\n", " No, at the position where the bending moment is maximum, the stress in the top compressed fiber is equal to 27.5 MPa, that is bigger than 27.2 MPa.\n", "
\n", "\n", "
\n", " \n", " 2. Where will it yield?\n", "
\n", " Solution:\n", " At the center of the beam, where the bending moment is the highest.\n", "
\n", "\n", "
\n", " \n", " 3. If you can change only one parameter to assure that the beam remains always elastic, what will you do?\n", "\n", "
\n", " Solution:\n", " The possible solution are:\n", " \n", "
\n", "\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## **Build the interactive visualisation tool**" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " Loading BokehJS ...\n", "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "\n", "(function(root) {\n", " function now() {\n", " return new Date();\n", " }\n", "\n", " const force = true;\n", "\n", " if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n", " root._bokeh_onload_callbacks = [];\n", " root._bokeh_is_loading = undefined;\n", " }\n", "\n", " const JS_MIME_TYPE = 'application/javascript';\n", " const HTML_MIME_TYPE = 'text/html';\n", " const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n", " const CLASS_NAME = 'output_bokeh rendered_html';\n", "\n", " /**\n", " * Render data to the DOM node\n", " */\n", " function render(props, node) {\n", " const script = document.createElement(\"script\");\n", " node.appendChild(script);\n", " }\n", "\n", " /**\n", " * Handle when an output is cleared or removed\n", " */\n", " function handleClearOutput(event, handle) {\n", " const cell = handle.cell;\n", "\n", " const id = cell.output_area._bokeh_element_id;\n", " const server_id = cell.output_area._bokeh_server_id;\n", " // Clean up Bokeh references\n", " if (id != null && id in Bokeh.index) {\n", " Bokeh.index[id].model.document.clear();\n", " delete Bokeh.index[id];\n", " }\n", "\n", " if (server_id !== undefined) {\n", " // Clean up Bokeh references\n", " const cmd_clean = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n", " cell.notebook.kernel.execute(cmd_clean, {\n", " iopub: {\n", " output: function(msg) {\n", " const id = msg.content.text.trim();\n", " if (id in Bokeh.index) {\n", " Bokeh.index[id].model.document.clear();\n", " delete Bokeh.index[id];\n", " }\n", " }\n", " }\n", " });\n", " // Destroy server and session\n", " const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n", " cell.notebook.kernel.execute(cmd_destroy);\n", " }\n", " }\n", "\n", " /**\n", " * Handle when a new output is added\n", " */\n", " function handleAddOutput(event, handle) {\n", " const output_area = handle.output_area;\n", " const output = handle.output;\n", "\n", " // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n", " if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n", " return\n", " }\n", "\n", " const toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n", "\n", " if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n", " toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n", " // store reference to embed id on output_area\n", " output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n", " }\n", " if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n", " const bk_div = document.createElement(\"div\");\n", " bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n", " const script_attrs = bk_div.children[0].attributes;\n", " for (let i = 0; i < script_attrs.length; i++) {\n", " toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n", " toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n", " }\n", " // store reference to server id on output_area\n", " output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n", " }\n", " }\n", "\n", " function register_renderer(events, OutputArea) {\n", "\n", " function append_mime(data, metadata, element) {\n", " // create a DOM node to render to\n", " const toinsert = this.create_output_subarea(\n", " metadata,\n", " CLASS_NAME,\n", " EXEC_MIME_TYPE\n", " );\n", " this.keyboard_manager.register_events(toinsert);\n", " // Render to node\n", " const props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n", " render(props, toinsert[toinsert.length - 1]);\n", " element.append(toinsert);\n", " return toinsert\n", " }\n", "\n", " /* Handle when an output is cleared or removed */\n", " events.on('clear_output.CodeCell', handleClearOutput);\n", " events.on('delete.Cell', handleClearOutput);\n", "\n", " /* Handle when a new output is added */\n", " events.on('output_added.OutputArea', handleAddOutput);\n", "\n", " /**\n", " * Register the mime type and append_mime function with output_area\n", " */\n", " OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n", " /* Is output safe? */\n", " safe: true,\n", " /* Index of renderer in `output_area.display_order` */\n", " index: 0\n", " });\n", " }\n", "\n", " // register the mime type if in Jupyter Notebook environment and previously unregistered\n", " if (root.Jupyter !== undefined) {\n", " const events = require('base/js/events');\n", " const OutputArea = require('notebook/js/outputarea').OutputArea;\n", "\n", " if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n", " register_renderer(events, OutputArea);\n", " }\n", " }\n", "\n", " \n", " if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n", " root._bokeh_timeout = Date.now() + 5000;\n", " root._bokeh_failed_load = false;\n", " }\n", "\n", " const NB_LOAD_WARNING = {'data': {'text/html':\n", " \"
\\n\"+\n", " \"

\\n\"+\n", " \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n", " \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n", " \"

\\n\"+\n", " \"\\n\"+\n", " \"\\n\"+\n", " \"from bokeh.resources import INLINE\\n\"+\n", " \"output_notebook(resources=INLINE)\\n\"+\n", " \"\\n\"+\n", " \"
\"}};\n", "\n", " function display_loaded() {\n", " const el = document.getElementById(\"1002\");\n", " if (el != null) {\n", " el.textContent = \"BokehJS is loading...\";\n", " }\n", " if (root.Bokeh !== undefined) {\n", " if (el != null) {\n", " el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n", " }\n", " } else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(display_loaded, 100)\n", " }\n", " }\n", "\n", "\n", " function run_callbacks() {\n", " try {\n", " root._bokeh_onload_callbacks.forEach(function(callback) {\n", " if (callback != null)\n", " callback();\n", " });\n", " } finally {\n", " delete root._bokeh_onload_callbacks\n", " }\n", " console.debug(\"Bokeh: all callbacks have finished\");\n", " }\n", "\n", " function load_libs(css_urls, js_urls, callback) {\n", " if (css_urls == null) css_urls = [];\n", " if (js_urls == null) js_urls = [];\n", "\n", " root._bokeh_onload_callbacks.push(callback);\n", " if (root._bokeh_is_loading > 0) {\n", " console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n", " return null;\n", " }\n", " if (js_urls == null || js_urls.length === 0) {\n", " run_callbacks();\n", " return null;\n", " }\n", " console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n", " root._bokeh_is_loading = css_urls.length + js_urls.length;\n", "\n", " function on_load() {\n", " root._bokeh_is_loading--;\n", " if (root._bokeh_is_loading === 0) {\n", " console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n", " run_callbacks()\n", " }\n", " }\n", "\n", " function on_error(url) {\n", " console.error(\"failed to load \" + url);\n", " }\n", "\n", " for (let i = 0; i < css_urls.length; i++) {\n", " const url = css_urls[i];\n", " const element = document.createElement(\"link\");\n", " element.onload = on_load;\n", " element.onerror = on_error.bind(null, url);\n", " element.rel = \"stylesheet\";\n", " element.type = \"text/css\";\n", " element.href = url;\n", " console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n", " document.body.appendChild(element);\n", " }\n", "\n", " for (let i = 0; i < js_urls.length; i++) {\n", " const url = js_urls[i];\n", " const element = document.createElement('script');\n", " element.onload = on_load;\n", " element.onerror = on_error.bind(null, url);\n", " element.async = false;\n", " element.src = url;\n", " console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", " document.head.appendChild(element);\n", " }\n", " };\n", "\n", " function inject_raw_css(css) {\n", " const element = document.createElement(\"style\");\n", " element.appendChild(document.createTextNode(css));\n", " document.body.appendChild(element);\n", " }\n", "\n", " \n", " const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-2.4.2.min.js\"];\n", " const css_urls = [];\n", " \n", "\n", " const inline_js = [\n", " function(Bokeh) {\n", " Bokeh.set_log_level(\"info\");\n", " },\n", " function(Bokeh) {\n", " \n", " \n", " }\n", " ];\n", "\n", " function run_inline_js() {\n", " \n", " if (root.Bokeh !== undefined || force === true) {\n", " \n", " for (let i = 0; i < inline_js.length; i++) {\n", " inline_js[i].call(root, root.Bokeh);\n", " }\n", " if (force === true) {\n", " display_loaded();\n", " }} else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(run_inline_js, 100);\n", " } else if (!root._bokeh_failed_load) {\n", " console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n", " root._bokeh_failed_load = true;\n", " } else if (force !== true) {\n", " const cell = $(document.getElementById(\"1002\")).parents('.cell').data().cell;\n", " cell.output_area.append_execute_result(NB_LOAD_WARNING)\n", " }\n", "\n", " }\n", "\n", " if (root._bokeh_is_loading === 0) {\n", " console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n", " run_inline_js();\n", " } else {\n", " load_libs(css_urls, js_urls, function() {\n", " console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n", " run_inline_js();\n", " });\n", " }\n", "}(window));" ], "application/vnd.bokehjs_load.v0+json": "\n(function(root) {\n function now() {\n return new Date();\n }\n\n const force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\n \n\n \n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded() {\n const el = document.getElementById(\"1002\");\n if (el != null) {\n el.textContent = \"BokehJS is loading...\";\n }\n if (root.Bokeh !== undefined) {\n if (el != null) {\n el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(display_loaded, 100)\n }\n }\n\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n for (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\n element.async = false;\n element.src = url;\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n \n const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.4.2.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-2.4.2.min.js\"];\n const css_urls = [];\n \n\n const inline_js = [\n function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\n function(Bokeh) {\n \n \n }\n ];\n\n function run_inline_js() {\n \n if (root.Bokeh !== undefined || force === true) {\n \n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n if (force === true) {\n display_loaded();\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n const cell = $(document.getElementById(\"1002\")).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Import the packages needed\n", "import sys\n", "sys.path.append('../HiddenCode')\n", "import hidden_code_nb_stress\n", "import math\n", "import numpy as np\n", "from cienpy import simplebeam as sb\n", "from cienpy import rectangular_section as beam_section\n", "from cienpy import stress_strain_elastic as stst" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Define the geometry, the external actions, the mechanical property and compute the initial configuration." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# Choose the dimensions\n", "L = 6 # [m]\n", "h = 200 # [mm]\n", "b = 100 # [mm]\n", "q = 4; # [kN/m]\n", "P = 10; # [kN]\n", "\n", "# Choose the material parameters\n", "E = 200e3 # [MPa]\n", "\n", "# compute the internal forces (at x=L)\n", "discr_NVM = 101\n", "x_discr = np.linspace(0, L, discr_NVM)\n", "N_discr = sb.compute_N(x_discr, P)\n", "V_discr = sb.compute_V(x_discr, q, L)\n", "M_discr = sb.compute_M(x_discr, q, L)\n", "N = N_discr[-1]\n", "V = V_discr[-1]\n", "M = M_discr[-1]\n", "\n", "# compute the parameters\n", "A = beam_section.compute_area(b, h) # [mm2]\n", "Iy = beam_section.compute_inertia_y(b, h) # [mm4] strong axis\n", "Iz = beam_section.compute_inertia_z(b, h) # [mm4] weak axis\n", "yG = beam_section.compute_centroid_y(h)\n", "y_n_axis = stst.compute_neutral_axis(N, A, Iy, M, yG)\n", "\n", "# compute the reactions\n", "Rx = sb.compute_Rx(P)\n", "Ry_l = sb.compute_Ry_l(q, L)\n", "Ry_r = sb.compute_Ry_r(q, L)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Run the complex code to generate the **interactive visualisation tool**:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " \n", " const docs_json = {\"8cb004cd-7d18-4bc4-989a-350d46a80772\":{\"defs\":[],\"roots\":{\"references\":[{\"attributes\":{\"children\":[{\"id\":\"1923\"}]},\"id\":\"1924\",\"type\":\"Column\"},{\"attributes\":{\"data\":{},\"selected\":{\"id\":\"2005\"},\"selection_policy\":{\"id\":\"2004\"}},\"id\":\"1943\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1614\",\"type\":\"LinearScale\"},{\"attributes\":{\"data\":{\"x\":[0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0],\"y\":[0,0.0,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0,17.0,18.0,19.0,20.0,21.0,22.0,23.0,24.0,25.0,26.0,27.0,28.0,29.0,30.0,31.0,32.0,33.0,34.0,35.0,36.0,37.0,38.0,39.0,40.0,41.0,42.0,43.0,44.0,45.0,46.0,47.0,48.0,49.0,50.0,51.0,52.0,53.0,54.0,55.0,56.0,57.0,58.0,59.0,60.0,61.0,62.0,63.0,64.0,65.0,66.0,67.0,68.0,69.0,70.0,71.0,72.0,73.0,74.0,75.0,76.0,77.0,78.0,79.0,80.0,81.0,82.0,83.0,84.0,85.0,86.0,87.0,88.0,89.0,90.0,91.0,92.0,93.0,94.0,95.0,96.0,97.0,98.0,99.0,100.0,101.0,102.0,103.0,104.0,105.0,106.0,107.0,108.0,109.0,110.0,111.0,112.0,113.0,114.0,115.0,116.0,117.0,118.0,119.0,120.0,121.0,122.0,123.0,124.0,125.0,126.0,127.0,128.0,129.0,130.0,131.0,132.0,133.0,134.0,135.0,136.0,137.0,138.0,139.0,140.0,141.0,142.0,143.0,144.0,145.0,146.0,147.0,148.0,149.0,150.0,151.0,152.0,153.0,154.0,155.0,156.0,157.0,158.0,159.0,160.0,161.0,162.0,163.0,164.0,165.0,166.0,167.0,168.0,169.0,170.0,171.0,172.0,173.0,174.0,175.0,176.0,177.0,178.0,179.0,180.0,181.0,182.0,183.0,184.0,185.0,186.0,187.0,188.0,189.0,190.0,191.0,192.0,193.0,194.0,195.0,196.0,197.0,198.0,199.0,200.0,200]},\"selected\":{\"id\":\"2124\"},\"selection_policy\":{\"id\":\"2123\"}},\"id\":\"1640\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1619\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis\":{\"id\":\"1618\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"1621\",\"type\":\"Grid\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"Total stress \\u03c4\"},\"id\":\"1609\",\"type\":\"Title\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1640\"},\"glyph\":{\"id\":\"1641\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1643\"},\"nonselection_glyph\":{\"id\":\"1642\"},\"view\":{\"id\":\"1645\"}},\"id\":\"1644\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1627\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"1616\",\"type\":\"LinearScale\"},{\"attributes\":{\"axis_label\":\"Stress \\u03c4 [MPa]\",\"coordinates\":null,\"formatter\":{\"id\":\"2088\"},\"group\":null,\"major_label_policy\":{\"id\":\"2089\"},\"ticker\":{\"id\":\"1619\"}},\"id\":\"1618\",\"type\":\"LinearAxis\"},{\"attributes\":{\"axis_label\":\"Height h [mm]\",\"coordinates\":null,\"formatter\":{\"id\":\"2085\"},\"group\":null,\"major_label_policy\":{\"id\":\"2086\"},\"ticker\":{\"id\":\"1623\"}},\"id\":\"1622\",\"type\":\"LinearAxis\"},{\"attributes\":{\"axis\":{\"id\":\"1622\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"1625\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1623\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1631\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"1626\",\"type\":\"PanTool\"},{\"attributes\":{\"overlay\":{\"id\":\"1632\"}},\"id\":\"1628\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1629\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"1630\",\"type\":\"ResetTool\"},{\"attributes\":{\"bottom_units\":\"screen\",\"coordinates\":null,\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"group\":null,\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"1632\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"2072\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"callback\":null,\"renderers\":[{\"id\":\"1644\"}],\"tooltips\":[[\"Stress\",\"@x MPa\"],[\"Height\",\"@y mm\"]]},\"id\":\"1658\",\"type\":\"HoverTool\"},{\"attributes\":{},\"id\":\"2073\",\"type\":\"AllLabels\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1680\"},\"glyph\":{\"id\":\"1681\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1683\"},\"nonselection_glyph\":{\"id\":\"1682\"},\"view\":{\"id\":\"1685\"}},\"id\":\"1684\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2075\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"2076\",\"type\":\"AllLabels\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"blue\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1682\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1979\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"line_color\":\"blue\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1681\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1980\",\"type\":\"Selection\"},{\"attributes\":{\"line_width\":1.5,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1647\",\"type\":\"Line\"},{\"attributes\":{\"data\":{},\"selected\":{\"id\":\"2149\"},\"selection_policy\":{\"id\":\"2148\"}},\"id\":\"2077\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"source\":{\"id\":\"1640\"}},\"id\":\"1645\",\"type\":\"CDSView\"},{\"attributes\":{\"line_color\":\"blue\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1641\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1946\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1947\",\"type\":\"AllLabels\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"blue\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1643\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1981\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1949\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"tools\":[{\"id\":\"1626\"},{\"id\":\"1627\"},{\"id\":\"1628\"},{\"id\":\"1629\"},{\"id\":\"1630\"},{\"id\":\"1631\"},{\"id\":\"1738\"}]},\"id\":\"1633\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"1982\",\"type\":\"Selection\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"blue\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1642\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1950\",\"type\":\"AllLabels\"},{\"attributes\":{\"line_alpha\":0.1,\"line_width\":1.5,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1648\",\"type\":\"Line\"},{\"attributes\":{\"data\":{\"x\":[0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0],\"y\":[0,0.0,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0,17.0,18.0,19.0,20.0,21.0,22.0,23.0,24.0,25.0,26.0,27.0,28.0,29.0,30.0,31.0,32.0,33.0,34.0,35.0,36.0,37.0,38.0,39.0,40.0,41.0,42.0,43.0,44.0,45.0,46.0,47.0,48.0,49.0,50.0,51.0,52.0,53.0,54.0,55.0,56.0,57.0,58.0,59.0,60.0,61.0,62.0,63.0,64.0,65.0,66.0,67.0,68.0,69.0,70.0,71.0,72.0,73.0,74.0,75.0,76.0,77.0,78.0,79.0,80.0,81.0,82.0,83.0,84.0,85.0,86.0,87.0,88.0,89.0,90.0,91.0,92.0,93.0,94.0,95.0,96.0,97.0,98.0,99.0,100.0,101.0,102.0,103.0,104.0,105.0,106.0,107.0,108.0,109.0,110.0,111.0,112.0,113.0,114.0,115.0,116.0,117.0,118.0,119.0,120.0,121.0,122.0,123.0,124.0,125.0,126.0,127.0,128.0,129.0,130.0,131.0,132.0,133.0,134.0,135.0,136.0,137.0,138.0,139.0,140.0,141.0,142.0,143.0,144.0,145.0,146.0,147.0,148.0,149.0,150.0,151.0,152.0,153.0,154.0,155.0,156.0,157.0,158.0,159.0,160.0,161.0,162.0,163.0,164.0,165.0,166.0,167.0,168.0,169.0,170.0,171.0,172.0,173.0,174.0,175.0,176.0,177.0,178.0,179.0,180.0,181.0,182.0,183.0,184.0,185.0,186.0,187.0,188.0,189.0,190.0,191.0,192.0,193.0,194.0,195.0,196.0,197.0,198.0,199.0,200.0,200]},\"selected\":{\"id\":\"2151\"},\"selection_policy\":{\"id\":\"2150\"}},\"id\":\"1680\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1654\",\"type\":\"Line\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1006\"},\"glyph\":{\"id\":\"1687\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1689\"},\"nonselection_glyph\":{\"id\":\"1688\"},\"view\":{\"id\":\"1691\"}},\"id\":\"1690\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1006\"},\"glyph\":{\"id\":\"1667\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1669\"},\"nonselection_glyph\":{\"id\":\"1668\"},\"view\":{\"id\":\"1671\"}},\"id\":\"1670\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":0.2,\"line_width\":1.5,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1649\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":0,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1653\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"1006\"}},\"id\":\"1651\",\"type\":\"CDSView\"},{\"attributes\":{\"source\":{\"id\":\"1652\"}},\"id\":\"1657\",\"type\":\"CDSView\"},{\"attributes\":{\"data\":{},\"selected\":{\"id\":\"2026\"},\"selection_policy\":{\"id\":\"2025\"}},\"id\":\"1951\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1660\"},\"glyph\":{\"id\":\"1661\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1663\"},\"nonselection_glyph\":{\"id\":\"1662\"},\"view\":{\"id\":\"1665\"}},\"id\":\"1664\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"data\":{\"x\":[-3.0,3.0],\"y\":[0,0]},\"selected\":{\"id\":\"2126\"},\"selection_policy\":{\"id\":\"2125\"}},\"id\":\"1652\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1652\"},\"glyph\":{\"id\":\"1653\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1655\"},\"nonselection_glyph\":{\"id\":\"1654\"},\"view\":{\"id\":\"1657\"}},\"id\":\"1656\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1655\",\"type\":\"Line\"},{\"attributes\":{\"axis\":{\"id\":\"1489\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"1492\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"2143\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1597\",\"type\":\"SaveTool\"},{\"attributes\":{\"axis_label\":\"Stress \\u03c3\\u2098 [MPa]\",\"coordinates\":null,\"formatter\":{\"id\":\"2063\"},\"group\":null,\"major_label_policy\":{\"id\":\"2064\"},\"ticker\":{\"id\":\"1490\"}},\"id\":\"1489\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"2144\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1490\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis_label\":\"Height h [mm]\",\"coordinates\":null,\"formatter\":{\"id\":\"2060\"},\"group\":null,\"major_label_policy\":{\"id\":\"2061\"},\"ticker\":{\"id\":\"1494\"},\"visible\":false},\"id\":\"1493\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"2018\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1494\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1065\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"2019\",\"type\":\"Selection\"},{\"attributes\":{\"overlay\":{\"id\":\"1600\"}},\"id\":\"1596\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1594\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"1591\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"2145\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1519\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2146\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1517\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2020\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"callback\":null,\"renderers\":[{\"id\":\"1766\"}],\"tooltips\":[[\"Strain\",\"@x %\"],[\"Height\",\"@y mm\"]]},\"id\":\"1782\",\"type\":\"HoverTool\"},{\"attributes\":{\"below\":[{\"id\":\"1554\"}],\"center\":[{\"id\":\"1557\"},{\"id\":\"1561\"}],\"height\":200,\"left\":[{\"id\":\"1558\"}],\"renderers\":[{\"id\":\"1684\"},{\"id\":\"1690\"},{\"id\":\"1696\"}],\"title\":{\"id\":\"1544\"},\"toolbar\":{\"id\":\"1569\"},\"toolbar_location\":null,\"width\":200,\"x_range\":{\"id\":\"1546\"},\"x_scale\":{\"id\":\"1550\"},\"y_range\":{\"id\":\"1548\"},\"y_scale\":{\"id\":\"1552\"}},\"id\":\"1543\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"2021\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1514\",\"type\":\"DataRange1d\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"Bending strain\"},\"id\":\"1512\",\"type\":\"Title\"},{\"attributes\":{\"axis\":{\"id\":\"1521\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"1524\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1530\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"axis_label\":\"Strain \\u03b5\\u2098 [%]\",\"coordinates\":null,\"formatter\":{\"id\":\"2057\"},\"group\":null,\"major_label_policy\":{\"id\":\"2058\"},\"ticker\":{\"id\":\"1780\"}},\"id\":\"1521\",\"type\":\"LinearAxis\"},{\"attributes\":{\"end\":0.9,\"start\":-0.4},\"id\":\"1013\",\"type\":\"Range1d\"},{\"attributes\":{\"axis_label\":\"Height h [mm]\",\"coordinates\":null,\"formatter\":{\"id\":\"2055\"},\"group\":null,\"major_label_policy\":{\"id\":\"2056\"},\"ticker\":{\"id\":\"1526\"},\"visible\":false},\"id\":\"1525\",\"type\":\"LinearAxis\"},{\"attributes\":{\"axis\":{\"id\":\"1525\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"1528\",\"type\":\"Grid\"},{\"attributes\":{\"below\":[{\"id\":\"1052\"}],\"center\":[{\"id\":\"1055\"},{\"id\":\"1059\"},{\"id\":\"1111\"},{\"id\":\"1120\"}],\"left\":[{\"id\":\"1056\"}],\"match_aspect\":true,\"renderers\":[{\"id\":\"1078\"},{\"id\":\"1105\"},{\"id\":\"1117\"},{\"id\":\"1126\"}],\"title\":{\"id\":\"1042\"},\"toolbar\":{\"id\":\"1067\"},\"toolbar_location\":null,\"width\":300,\"x_range\":{\"id\":\"1044\"},\"x_scale\":{\"id\":\"1048\"},\"y_range\":{\"id\":\"1046\"},\"y_scale\":{\"id\":\"1050\"}},\"id\":\"1041\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"2023\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1526\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"2022\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1534\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"1529\",\"type\":\"PanTool\"},{\"attributes\":{\"overlay\":{\"id\":\"1535\"}},\"id\":\"1531\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1532\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"1533\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"2148\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"bottom_units\":\"screen\",\"coordinates\":null,\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"group\":null,\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"1535\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"2149\",\"type\":\"Selection\"},{\"attributes\":{\"line_alpha\":0.1,\"line_width\":1.5,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1708\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2150\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"data\":{\"x\":[0,0,60,60],\"x_fade\":[0,0,60,60],\"y\":[4,8,8,4]},\"selected\":{\"id\":\"1988\"},\"selection_policy\":{\"id\":\"1987\"}},\"id\":\"1005\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1611\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"2151\",\"type\":\"Selection\"},{\"attributes\":{\"tools\":[{\"id\":\"1529\"},{\"id\":\"1530\"},{\"id\":\"1531\"},{\"id\":\"1532\"},{\"id\":\"1533\"},{\"id\":\"1534\"},{\"id\":\"1782\"}]},\"id\":\"1536\",\"type\":\"Toolbar\"},{\"attributes\":{\"axis_label\":\"Height h [mm]\",\"coordinates\":null,\"formatter\":{\"id\":\"2066\"},\"group\":null,\"major_label_policy\":{\"id\":\"2067\"},\"ticker\":{\"id\":\"1591\"}},\"id\":\"1590\",\"type\":\"LinearAxis\"},{\"attributes\":{\"data\":{\"A\":[20000],\"E\":[200000.0],\"FBD\":[0],\"Iy\":[66666666.666666664],\"Iz\":[16666666.666666666],\"L\":[6],\"M\":[0.0],\"N\":[-10.0],\"P\":[10],\"Rx\":[10],\"Ry_l\":[12.0],\"Ry_r\":[12.0],\"SCALE\":[10],\"V\":[12.0],\"b\":[100],\"h\":[200],\"q\":[4],\"state\":[\"IDLE\"],\"x\":[6],\"xF\":[60],\"y\":[0],\"yG\":[100.0],\"y_n_axis\":[100.0]},\"selected\":{\"id\":\"1982\"},\"selection_policy\":{\"id\":\"1981\"}},\"id\":\"1007\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"axis\":{\"id\":\"1590\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"1593\",\"type\":\"Grid\"},{\"attributes\":{\"below\":[{\"id\":\"1019\"}],\"center\":[{\"id\":\"1022\"},{\"id\":\"1026\"},{\"id\":\"1180\"}],\"height\":200,\"left\":[{\"id\":\"1023\"}],\"min_border_left\":0,\"renderers\":[{\"id\":\"1087\"},{\"id\":\"1093\"},{\"id\":\"1099\"},{\"id\":\"1171\"},{\"id\":\"1177\"},{\"id\":\"1186\"},{\"id\":\"1192\"}],\"title\":{\"id\":\"1009\"},\"toolbar\":{\"id\":\"1034\"},\"toolbar_location\":null,\"width\":700,\"x_range\":{\"id\":\"1011\"},\"x_scale\":{\"id\":\"1015\"},\"y_range\":{\"id\":\"1013\"},\"y_scale\":{\"id\":\"1017\"}},\"id\":\"1008\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"1595\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"data\":{\"x\":[0,6],\"y\":[0,0]},\"selected\":{\"id\":\"2013\"},\"selection_policy\":{\"id\":\"2012\"}},\"id\":\"1003\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"end\":7.2,\"start\":-1.2000000000000002},\"id\":\"1011\",\"type\":\"Range1d\"},{\"attributes\":{\"data\":{\"x\":[0,60],\"y\":[0,0]},\"selected\":{\"id\":\"1984\"},\"selection_policy\":{\"id\":\"1983\"}},\"id\":\"1004\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data\":{\"x\":[0,0],\"y\":[0,200]},\"selected\":{\"id\":\"2119\"},\"selection_policy\":{\"id\":\"2118\"}},\"id\":\"1006\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"blue\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1663\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2125\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1497\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"2126\",\"type\":\"Selection\"},{\"attributes\":{\"line_color\":\"blue\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1661\",\"type\":\"Line\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"magenta\"},\"hatch_alpha\":{\"value\":0.1},\"hatch_color\":{\"value\":\"magenta\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"magenta\"},\"size\":{\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"N\"}},\"id\":\"1398\",\"type\":\"Circle\"},{\"attributes\":{\"data\":{\"x\":[0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,-0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0],\"y\":[0,0.0,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0,17.0,18.0,19.0,20.0,21.0,22.0,23.0,24.0,25.0,26.0,27.0,28.0,29.0,30.0,31.0,32.0,33.0,34.0,35.0,36.0,37.0,38.0,39.0,40.0,41.0,42.0,43.0,44.0,45.0,46.0,47.0,48.0,49.0,50.0,51.0,52.0,53.0,54.0,55.0,56.0,57.0,58.0,59.0,60.0,61.0,62.0,63.0,64.0,65.0,66.0,67.0,68.0,69.0,70.0,71.0,72.0,73.0,74.0,75.0,76.0,77.0,78.0,79.0,80.0,81.0,82.0,83.0,84.0,85.0,86.0,87.0,88.0,89.0,90.0,91.0,92.0,93.0,94.0,95.0,96.0,97.0,98.0,99.0,100.0,101.0,102.0,103.0,104.0,105.0,106.0,107.0,108.0,109.0,110.0,111.0,112.0,113.0,114.0,115.0,116.0,117.0,118.0,119.0,120.0,121.0,122.0,123.0,124.0,125.0,126.0,127.0,128.0,129.0,130.0,131.0,132.0,133.0,134.0,135.0,136.0,137.0,138.0,139.0,140.0,141.0,142.0,143.0,144.0,145.0,146.0,147.0,148.0,149.0,150.0,151.0,152.0,153.0,154.0,155.0,156.0,157.0,158.0,159.0,160.0,161.0,162.0,163.0,164.0,165.0,166.0,167.0,168.0,169.0,170.0,171.0,172.0,173.0,174.0,175.0,176.0,177.0,178.0,179.0,180.0,181.0,182.0,183.0,184.0,185.0,186.0,187.0,188.0,189.0,190.0,191.0,192.0,193.0,194.0,195.0,196.0,197.0,198.0,199.0,200.0,200]},\"selected\":{\"id\":\"2134\"},\"selection_policy\":{\"id\":\"2133\"}},\"id\":\"1660\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1500\",\"type\":\"SaveTool\"},{\"attributes\":{\"children\":[{\"id\":\"1922\"}]},\"id\":\"1923\",\"type\":\"Row\"},{\"attributes\":{\"callback\":null,\"renderers\":[{\"id\":\"1664\"}],\"tooltips\":[[\"Stress\",\"@x MPa\"],[\"Height\",\"@y mm\"]]},\"id\":\"1678\",\"type\":\"HoverTool\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"magenta\"},\"hatch_alpha\":{\"value\":0.2},\"hatch_color\":{\"value\":\"magenta\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"magenta\"},\"size\":{\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"N\"}},\"id\":\"1399\",\"type\":\"Circle\"},{\"attributes\":{\"line_alpha\":0.1,\"line_width\":1.5,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1668\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1501\",\"type\":\"ResetTool\"},{\"attributes\":{\"source\":{\"id\":\"1660\"}},\"id\":\"1665\",\"type\":\"CDSView\"},{\"attributes\":{\"overlay\":{\"id\":\"1503\"}},\"id\":\"1499\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1991\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"blue\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1662\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":0,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1693\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null,\"renderers\":[{\"id\":\"1386\"}],\"tooltips\":[[\"Position\",\"@x m\"],[\"Bending moment\",\"@y kNm\"]]},\"id\":\"1394\",\"type\":\"HoverTool\"},{\"attributes\":{\"line_width\":1.5,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1667\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1502\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"1992\",\"type\":\"Selection\"},{\"attributes\":{\"source\":{\"id\":\"1006\"}},\"id\":\"1691\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1341\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1695\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":0.2,\"line_width\":1.5,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1669\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":0.2,\"line_dash\":[4,4],\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1675\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"1006\"}},\"id\":\"1671\",\"type\":\"CDSView\"},{\"attributes\":{\"line_dash\":[4,4],\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1673\",\"type\":\"Line\"},{\"attributes\":{\"line_color\":\"blue\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1701\",\"type\":\"Line\"},{\"attributes\":{\"data\":{\"x\":[0,0.0,0.06,0.12,0.18,0.24,0.3,0.36,0.42,0.48,0.54,0.6,0.6599999999999999,0.72,0.78,0.84,0.8999999999999999,0.96,1.02,1.08,1.14,1.2,1.26,1.3199999999999998,1.38,1.44,1.5,1.56,1.6199999999999999,1.68,1.74,1.7999999999999998,1.8599999999999999,1.92,1.98,2.04,2.1,2.16,2.2199999999999998,2.28,2.34,2.4,2.46,2.52,2.58,2.6399999999999997,2.6999999999999997,2.76,2.82,2.88,2.94,3.0,3.06,3.12,3.1799999999999997,3.2399999999999998,3.3,3.36,3.42,3.48,3.54,3.5999999999999996,3.6599999999999997,3.7199999999999998,3.78,3.84,3.9,3.96,4.02,4.08,4.14,4.2,4.26,4.32,4.38,4.4399999999999995,4.5,4.56,4.62,4.68,4.74,4.8,4.859999999999999,4.92,4.9799999999999995,5.04,5.1,5.16,5.22,5.279999999999999,5.34,5.3999999999999995,5.46,5.52,5.58,5.64,5.7,5.76,5.819999999999999,5.88,5.9399999999999995,6.0,6],\"y\":[0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,-10.0,0]},\"selected\":{\"id\":\"2028\"},\"selection_policy\":{\"id\":\"2027\"}},\"id\":\"1354\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data\":{\"x\":[-30.0,30.0],\"y\":[100.0,100.0]},\"selected\":{\"id\":\"2136\"},\"selection_policy\":{\"id\":\"2135\"}},\"id\":\"1672\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1672\"},\"glyph\":{\"id\":\"1673\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1675\"},\"nonselection_glyph\":{\"id\":\"1674\"},\"view\":{\"id\":\"1677\"}},\"id\":\"1676\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"callback\":null,\"renderers\":[{\"id\":\"1744\"}],\"tooltips\":[[\"Strain\",\"@x %\"],[\"Height\",\"@y mm\"]]},\"id\":\"1760\",\"type\":\"HoverTool\"},{\"attributes\":{\"source\":{\"id\":\"1672\"}},\"id\":\"1677\",\"type\":\"CDSView\"},{\"attributes\":{\"line_alpha\":0.1,\"line_dash\":[4,4],\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1674\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1328\",\"type\":\"LinearScale\"},{\"attributes\":{\"below\":[{\"id\":\"1521\"}],\"center\":[{\"id\":\"1524\"},{\"id\":\"1528\"}],\"height\":200,\"left\":[{\"id\":\"1525\"}],\"renderers\":[{\"id\":\"1766\"},{\"id\":\"1772\"},{\"id\":\"1778\"}],\"title\":{\"id\":\"1512\"},\"toolbar\":{\"id\":\"1536\"},\"toolbar_location\":null,\"width\":200,\"x_range\":{\"id\":\"1514\"},\"x_scale\":{\"id\":\"1517\"},\"y_range\":{\"id\":\"1419\"},\"y_scale\":{\"id\":\"1519\"}},\"id\":\"1511\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"line_width\":1.5,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1687\",\"type\":\"Line\"},{\"attributes\":{\"axis_label\":\"Position [m]\",\"coordinates\":null,\"formatter\":{\"id\":\"1968\"},\"group\":null,\"major_label_policy\":{\"id\":\"1969\"},\"ticker\":{\"id\":\"1333\"}},\"id\":\"1332\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1453\",\"type\":\"LinearScale\"},{\"attributes\":{\"callback\":null,\"renderers\":[{\"id\":\"1684\"}],\"tooltips\":[[\"Stress\",\"@x MPa\"],[\"Height\",\"@y mm\"]]},\"id\":\"1698\",\"type\":\"HoverTool\"},{\"attributes\":{\"line_alpha\":0.2,\"line_width\":1.5,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1689\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1330\",\"type\":\"LinearScale\"},{\"attributes\":{\"axis\":{\"id\":\"1457\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"1460\",\"type\":\"Grid\"},{\"attributes\":{\"line_alpha\":0.1,\"line_width\":1.5,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1688\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1333\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1466\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"data\":{\"x\":[-1.2,1.2],\"y\":[0,0]},\"selected\":{\"id\":\"2153\"},\"selection_policy\":{\"id\":\"2152\"}},\"id\":\"1692\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"Axial strain\"},\"id\":\"1448\",\"type\":\"Title\"},{\"attributes\":{\"axis\":{\"id\":\"1332\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"1335\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1455\",\"type\":\"LinearScale\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1692\"},\"glyph\":{\"id\":\"1693\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1695\"},\"nonselection_glyph\":{\"id\":\"1694\"},\"view\":{\"id\":\"1697\"}},\"id\":\"1696\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1485\",\"type\":\"LinearScale\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1700\"},\"glyph\":{\"id\":\"1701\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1703\"},\"nonselection_glyph\":{\"id\":\"1702\"},\"view\":{\"id\":\"1705\"}},\"id\":\"1704\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"axis_label\":\"Strain \\u03b5\\u2099 [%]\",\"coordinates\":null,\"formatter\":{\"id\":\"2046\"},\"group\":null,\"major_label_policy\":{\"id\":\"2047\"},\"ticker\":{\"id\":\"1758\"}},\"id\":\"1457\",\"type\":\"LinearAxis\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1694\",\"type\":\"Line\"},{\"attributes\":{\"axis_label\":\"Bending moment M [kNm]\",\"coordinates\":null,\"formatter\":{\"id\":\"1965\"},\"group\":null,\"major_label_policy\":{\"id\":\"1966\"},\"ticker\":{\"id\":\"1337\"}},\"id\":\"1336\",\"type\":\"LinearAxis\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1006\"},\"glyph\":{\"id\":\"1707\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1709\"},\"nonselection_glyph\":{\"id\":\"1708\"},\"view\":{\"id\":\"1711\"}},\"id\":\"1710\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"axis\":{\"id\":\"1336\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"1339\",\"type\":\"Grid\"},{\"attributes\":{\"axis_label\":\"Height h [mm]\",\"coordinates\":null,\"formatter\":{\"id\":\"2044\"},\"group\":null,\"major_label_policy\":{\"id\":\"2045\"},\"ticker\":{\"id\":\"1462\"},\"visible\":false},\"id\":\"1461\",\"type\":\"LinearAxis\"},{\"attributes\":{\"source\":{\"id\":\"1692\"}},\"id\":\"1697\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1337\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis\":{\"id\":\"1461\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"1464\",\"type\":\"Grid\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"blue\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1703\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1462\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"2128\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"2157\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1933\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1345\",\"type\":\"HelpTool\"},{\"attributes\":{\"data\":{\"x\":[0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0],\"y\":[0,0.0,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0,17.0,18.0,19.0,20.0,21.0,22.0,23.0,24.0,25.0,26.0,27.0,28.0,29.0,30.0,31.0,32.0,33.0,34.0,35.0,36.0,37.0,38.0,39.0,40.0,41.0,42.0,43.0,44.0,45.0,46.0,47.0,48.0,49.0,50.0,51.0,52.0,53.0,54.0,55.0,56.0,57.0,58.0,59.0,60.0,61.0,62.0,63.0,64.0,65.0,66.0,67.0,68.0,69.0,70.0,71.0,72.0,73.0,74.0,75.0,76.0,77.0,78.0,79.0,80.0,81.0,82.0,83.0,84.0,85.0,86.0,87.0,88.0,89.0,90.0,91.0,92.0,93.0,94.0,95.0,96.0,97.0,98.0,99.0,100.0,101.0,102.0,103.0,104.0,105.0,106.0,107.0,108.0,109.0,110.0,111.0,112.0,113.0,114.0,115.0,116.0,117.0,118.0,119.0,120.0,121.0,122.0,123.0,124.0,125.0,126.0,127.0,128.0,129.0,130.0,131.0,132.0,133.0,134.0,135.0,136.0,137.0,138.0,139.0,140.0,141.0,142.0,143.0,144.0,145.0,146.0,147.0,148.0,149.0,150.0,151.0,152.0,153.0,154.0,155.0,156.0,157.0,158.0,159.0,160.0,161.0,162.0,163.0,164.0,165.0,166.0,167.0,168.0,169.0,170.0,171.0,172.0,173.0,174.0,175.0,176.0,177.0,178.0,179.0,180.0,181.0,182.0,183.0,184.0,185.0,186.0,187.0,188.0,189.0,190.0,191.0,192.0,193.0,194.0,195.0,196.0,197.0,198.0,199.0,200.0,200]},\"selected\":{\"id\":\"2139\"},\"selection_policy\":{\"id\":\"2138\"}},\"id\":\"1700\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"2129\",\"type\":\"Selection\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1356\",\"type\":\"Line\"},{\"attributes\":{\"tools\":[{\"id\":\"1465\"},{\"id\":\"1466\"},{\"id\":\"1467\"},{\"id\":\"1468\"},{\"id\":\"1469\"},{\"id\":\"1470\"},{\"id\":\"1760\"}]},\"id\":\"1472\",\"type\":\"Toolbar\"},{\"attributes\":{\"callback\":null,\"renderers\":[{\"id\":\"1704\"}],\"tooltips\":[[\"Stress\",\"@x MPa\"],[\"Height\",\"@y mm\"]]},\"id\":\"1718\",\"type\":\"HoverTool\"},{\"attributes\":{},\"id\":\"1934\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"1340\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"1470\",\"type\":\"HelpTool\"},{\"attributes\":{\"overlay\":{\"id\":\"1346\"}},\"id\":\"1342\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1465\",\"type\":\"PanTool\"},{\"attributes\":{\"source\":{\"id\":\"1700\"}},\"id\":\"1705\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1343\",\"type\":\"SaveTool\"},{\"attributes\":{\"overlay\":{\"id\":\"1471\"}},\"id\":\"1467\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"blue\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1702\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1936\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1344\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"1468\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"1469\",\"type\":\"ResetTool\"},{\"attributes\":{\"line_alpha\":0.2,\"line_width\":1.5,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1771\",\"type\":\"Line\"},{\"attributes\":{\"line_width\":1.5,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1707\",\"type\":\"Line\"},{\"attributes\":{\"bottom_units\":\"screen\",\"coordinates\":null,\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"group\":null,\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"1439\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"1937\",\"type\":\"AllLabels\"},{\"attributes\":{\"bottom_units\":\"screen\",\"coordinates\":null,\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"group\":null,\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"1346\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"desired_num_ticks\":3,\"num_minor_ticks\":2},\"id\":\"1780\",\"type\":\"AdaptiveTicker\"},{\"attributes\":{\"tools\":[{\"id\":\"1340\"},{\"id\":\"1341\"},{\"id\":\"1342\"},{\"id\":\"1343\"},{\"id\":\"1344\"},{\"id\":\"1345\"},{\"id\":\"1394\"}]},\"id\":\"1347\",\"type\":\"Toolbar\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"blue\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1723\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":0.2,\"line_width\":1.5,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1709\",\"type\":\"Line\"},{\"attributes\":{\"bottom_units\":\"screen\",\"coordinates\":null,\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"group\":null,\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"1471\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1357\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":0.2,\"line_dash\":[4,4],\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1715\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1482\",\"type\":\"DataRange1d\"},{\"attributes\":{\"source\":{\"id\":\"1006\"}},\"id\":\"1711\",\"type\":\"CDSView\"},{\"attributes\":{\"line_dash\":[4,4],\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1713\",\"type\":\"Line\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1006\"},\"glyph\":{\"id\":\"1727\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1729\"},\"nonselection_glyph\":{\"id\":\"1728\"},\"view\":{\"id\":\"1731\"}},\"id\":\"1730\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"data\":{\"x\":[-30.0,30.0],\"y\":[100.0,100.0]},\"selected\":{\"id\":\"2141\"},\"selection_policy\":{\"id\":\"2140\"}},\"id\":\"1712\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"tools\":[{\"id\":\"1433\"},{\"id\":\"1434\"},{\"id\":\"1435\"},{\"id\":\"1436\"},{\"id\":\"1437\"},{\"id\":\"1438\"},{\"id\":\"1658\"}]},\"id\":\"1440\",\"type\":\"Toolbar\"},{\"attributes\":{\"coordinates\":null,\"group\":null},\"id\":\"1928\",\"type\":\"Title\"},{\"attributes\":{\"below\":[{\"id\":\"1586\"}],\"center\":[{\"id\":\"1589\"},{\"id\":\"1593\"}],\"height\":200,\"renderers\":[{\"id\":\"1704\"},{\"id\":\"1710\"},{\"id\":\"1716\"}],\"right\":[{\"id\":\"1590\"}],\"title\":{\"id\":\"1577\"},\"toolbar\":{\"id\":\"1601\"},\"toolbar_location\":null,\"width\":200,\"x_range\":{\"id\":\"1579\"},\"x_scale\":{\"id\":\"1582\"},\"y_range\":{\"id\":\"1419\"},\"y_scale\":{\"id\":\"1584\"}},\"id\":\"1576\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1712\"},\"glyph\":{\"id\":\"1713\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1715\"},\"nonselection_glyph\":{\"id\":\"1714\"},\"view\":{\"id\":\"1717\"}},\"id\":\"1716\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"1712\"}},\"id\":\"1717\",\"type\":\"CDSView\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1007\"},\"glyph\":{\"id\":\"1397\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1399\"},\"nonselection_glyph\":{\"id\":\"1398\"},\"view\":{\"id\":\"1401\"}},\"id\":\"1400\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"data\":{},\"selected\":{\"id\":\"1995\"},\"selection_policy\":{\"id\":\"1994\"}},\"id\":\"1938\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_alpha\":0.1,\"line_dash\":[4,4],\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1714\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"1354\"}},\"id\":\"1359\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1994\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"data\":{\"x\":[0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0],\"y\":[0,0.0,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0,17.0,18.0,19.0,20.0,21.0,22.0,23.0,24.0,25.0,26.0,27.0,28.0,29.0,30.0,31.0,32.0,33.0,34.0,35.0,36.0,37.0,38.0,39.0,40.0,41.0,42.0,43.0,44.0,45.0,46.0,47.0,48.0,49.0,50.0,51.0,52.0,53.0,54.0,55.0,56.0,57.0,58.0,59.0,60.0,61.0,62.0,63.0,64.0,65.0,66.0,67.0,68.0,69.0,70.0,71.0,72.0,73.0,74.0,75.0,76.0,77.0,78.0,79.0,80.0,81.0,82.0,83.0,84.0,85.0,86.0,87.0,88.0,89.0,90.0,91.0,92.0,93.0,94.0,95.0,96.0,97.0,98.0,99.0,100.0,101.0,102.0,103.0,104.0,105.0,106.0,107.0,108.0,109.0,110.0,111.0,112.0,113.0,114.0,115.0,116.0,117.0,118.0,119.0,120.0,121.0,122.0,123.0,124.0,125.0,126.0,127.0,128.0,129.0,130.0,131.0,132.0,133.0,134.0,135.0,136.0,137.0,138.0,139.0,140.0,141.0,142.0,143.0,144.0,145.0,146.0,147.0,148.0,149.0,150.0,151.0,152.0,153.0,154.0,155.0,156.0,157.0,158.0,159.0,160.0,161.0,162.0,163.0,164.0,165.0,166.0,167.0,168.0,169.0,170.0,171.0,172.0,173.0,174.0,175.0,176.0,177.0,178.0,179.0,180.0,181.0,182.0,183.0,184.0,185.0,186.0,187.0,188.0,189.0,190.0,191.0,192.0,193.0,194.0,195.0,196.0,197.0,198.0,199.0,200.0,200]},\"selected\":{\"id\":\"2156\"},\"selection_policy\":{\"id\":\"2155\"}},\"id\":\"1720\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"magenta\"},\"hatch_alpha\":{\"value\":0.5},\"hatch_color\":{\"value\":\"magenta\"},\"line_alpha\":{\"value\":0.5},\"line_color\":{\"value\":\"magenta\"},\"size\":{\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"N\"}},\"id\":\"1397\",\"type\":\"Circle\"},{\"attributes\":{\"data\":{},\"selected\":{\"id\":\"1997\"},\"selection_policy\":{\"id\":\"1996\"}},\"id\":\"1939\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1995\",\"type\":\"Selection\"},{\"attributes\":{\"source\":{\"id\":\"1007\"}},\"id\":\"1401\",\"type\":\"CDSView\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1720\"},\"glyph\":{\"id\":\"1721\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1723\"},\"nonselection_glyph\":{\"id\":\"1722\"},\"view\":{\"id\":\"1725\"}},\"id\":\"1724\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2090\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"coordinates\":null,\"group\":null},\"id\":\"1930\",\"type\":\"Title\"},{\"attributes\":{\"data\":{},\"selected\":{\"id\":\"1999\"},\"selection_policy\":{\"id\":\"1998\"}},\"id\":\"1940\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1498\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"line_color\":\"blue\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1721\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null,\"renderers\":[{\"id\":\"1724\"}],\"tooltips\":[[\"Stress\",\"@x MPa\"],[\"Height\",\"@y mm\"]]},\"id\":\"1738\",\"type\":\"HoverTool\"},{\"attributes\":{},\"id\":\"2091\",\"type\":\"Selection\"},{\"attributes\":{\"line_alpha\":0.1,\"line_width\":1.5,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1728\",\"type\":\"Line\"},{\"attributes\":{\"axis\":{\"id\":\"1493\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"1496\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1996\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"source\":{\"id\":\"1720\"}},\"id\":\"1725\",\"type\":\"CDSView\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"blue\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1722\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2130\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"data\":{},\"selected\":{\"id\":\"2001\"},\"selection_policy\":{\"id\":\"2000\"}},\"id\":\"1941\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1355\",\"type\":\"Line\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1774\"},\"glyph\":{\"id\":\"1775\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1777\"},\"nonselection_glyph\":{\"id\":\"1776\"},\"view\":{\"id\":\"1779\"}},\"id\":\"1778\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"Bending stress and centroid\"},\"id\":\"1480\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1997\",\"type\":\"Selection\"},{\"attributes\":{\"line_width\":1.5,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1727\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2131\",\"type\":\"Selection\"},{\"attributes\":{\"source\":{\"id\":\"1006\"}},\"id\":\"1773\",\"type\":\"CDSView\"},{\"attributes\":{\"data\":{},\"selected\":{\"id\":\"2003\"},\"selection_policy\":{\"id\":\"2002\"}},\"id\":\"1942\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_alpha\":0.2,\"line_width\":1.5,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1729\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1998\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1734\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1487\",\"type\":\"LinearScale\"},{\"attributes\":{\"source\":{\"id\":\"1006\"}},\"id\":\"1731\",\"type\":\"CDSView\"},{\"attributes\":{\"line_alpha\":0,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1733\",\"type\":\"Line\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1354\"},\"glyph\":{\"id\":\"1355\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1357\"},\"nonselection_glyph\":{\"id\":\"1356\"},\"view\":{\"id\":\"1359\"}},\"id\":\"1358\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1732\"},\"glyph\":{\"id\":\"1733\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1735\"},\"nonselection_glyph\":{\"id\":\"1734\"},\"view\":{\"id\":\"1737\"}},\"id\":\"1736\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1999\",\"type\":\"Selection\"},{\"attributes\":{\"data\":{\"x\":[-1.2,1.2],\"y\":[0,0]},\"selected\":{\"id\":\"2158\"},\"selection_policy\":{\"id\":\"2157\"}},\"id\":\"1732\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1735\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1548\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1552\",\"type\":\"LinearScale\"},{\"attributes\":{\"below\":[{\"id\":\"1618\"}],\"center\":[{\"id\":\"1621\"},{\"id\":\"1625\"}],\"height\":200,\"renderers\":[{\"id\":\"1724\"},{\"id\":\"1730\"},{\"id\":\"1736\"}],\"right\":[{\"id\":\"1622\"}],\"title\":{\"id\":\"1609\"},\"toolbar\":{\"id\":\"1633\"},\"toolbar_location\":null,\"width\":200,\"x_range\":{\"id\":\"1611\"},\"x_scale\":{\"id\":\"1614\"},\"y_range\":{\"id\":\"1548\"},\"y_scale\":{\"id\":\"1616\"}},\"id\":\"1608\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"1546\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1555\",\"type\":\"BasicTicker\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"Shear stress\"},\"id\":\"1544\",\"type\":\"Title\"},{\"attributes\":{\"axis\":{\"id\":\"1554\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"1557\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1550\",\"type\":\"LinearScale\"},{\"attributes\":{\"axis_label\":\"Stress \\u03c4\\u1d65 [MPa]\",\"coordinates\":null,\"formatter\":{\"id\":\"2082\"},\"group\":null,\"major_label_policy\":{\"id\":\"2083\"},\"ticker\":{\"id\":\"1555\"}},\"id\":\"1554\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1587\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1563\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"2138\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"axis_label\":\"Height h [mm]\",\"coordinates\":null,\"formatter\":{\"id\":\"2079\"},\"group\":null,\"major_label_policy\":{\"id\":\"2080\"},\"ticker\":{\"id\":\"1559\"},\"visible\":false},\"id\":\"1558\",\"type\":\"LinearAxis\"},{\"attributes\":{\"axis\":{\"id\":\"1558\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"1561\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"2139\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1559\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1567\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"1562\",\"type\":\"PanTool\"},{\"attributes\":{\"overlay\":{\"id\":\"1568\"}},\"id\":\"1564\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1565\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"1566\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"2103\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"2104\",\"type\":\"Selection\"},{\"attributes\":{\"bottom_units\":\"screen\",\"coordinates\":null,\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"group\":null,\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"1568\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"1965\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1006\"},\"glyph\":{\"id\":\"1647\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1649\"},\"nonselection_glyph\":{\"id\":\"1648\"},\"view\":{\"id\":\"1651\"}},\"id\":\"1650\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2060\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1966\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"2061\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"1968\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"2063\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1969\",\"type\":\"AllLabels\"},{\"attributes\":{\"tools\":[{\"id\":\"1594\"},{\"id\":\"1595\"},{\"id\":\"1596\"},{\"id\":\"1597\"},{\"id\":\"1598\"},{\"id\":\"1599\"},{\"id\":\"1718\"}]},\"id\":\"1601\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"2064\",\"type\":\"AllLabels\"},{\"attributes\":{\"bottom_units\":\"screen\",\"coordinates\":null,\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"group\":null,\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"1600\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"2105\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1599\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"2140\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"2106\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"2141\",\"type\":\"Selection\"},{\"attributes\":{\"axis\":{\"id\":\"1586\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"1589\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1582\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1579\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"2107\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"tools\":[{\"id\":\"1562\"},{\"id\":\"1563\"},{\"id\":\"1564\"},{\"id\":\"1565\"},{\"id\":\"1566\"},{\"id\":\"1567\"},{\"id\":\"1698\"}]},\"id\":\"1569\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"1598\",\"type\":\"ResetTool\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"Total stress \\u03c3 and neutral axis\"},\"id\":\"1577\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"2108\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1584\",\"type\":\"LinearScale\"},{\"attributes\":{\"axis_label\":\"Stress \\u03c3 [MPa]\",\"coordinates\":null,\"formatter\":{\"id\":\"2069\"},\"group\":null,\"major_label_policy\":{\"id\":\"2070\"},\"ticker\":{\"id\":\"1587\"}},\"id\":\"1586\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"2100\",\"type\":\"Selection\"},{\"attributes\":{\"line_alpha\":0.1,\"line_width\":1.5,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1770\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2066\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1006\"},\"glyph\":{\"id\":\"1769\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1771\"},\"nonselection_glyph\":{\"id\":\"1770\"},\"view\":{\"id\":\"1773\"}},\"id\":\"1772\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2067\",\"type\":\"AllLabels\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"blue\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1683\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2069\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"source\":{\"id\":\"1680\"}},\"id\":\"1685\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2109\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"2070\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"1983\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"2101\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1984\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"2102\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1046\",\"type\":\"DataRange1d\"},{\"attributes\":{\"axis_label\":\"Width b [mm]\",\"coordinates\":null,\"formatter\":{\"id\":\"2008\"},\"group\":null,\"major_label_policy\":{\"id\":\"2009\"},\"ticker\":{\"id\":\"1080\"}},\"id\":\"1052\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"2030\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1044\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"2120\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"2031\",\"type\":\"Selection\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.1},\"height\":{\"value\":480.0},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"width\":{\"value\":240.0},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1076\",\"type\":\"Rect\"},{\"attributes\":{},\"id\":\"2121\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1061\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"1048\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1985\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"Cross-section of the beam\"},\"id\":\"1042\",\"type\":\"Title\"},{\"attributes\":{\"axis\":{\"id\":\"1052\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"1055\",\"type\":\"Grid\"},{\"attributes\":{\"axis\":{\"id\":\"1056\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"1059\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1986\",\"type\":\"Selection\"},{\"attributes\":{\"axis_label\":\"Height h [mm]\",\"coordinates\":null,\"formatter\":{\"id\":\"2006\"},\"group\":null,\"major_label_policy\":{\"id\":\"2007\"},\"ticker\":{\"id\":\"1080\"}},\"id\":\"1056\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1050\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2049\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"fill_alpha\":0.2,\"fill_color\":\"white\",\"hatch_alpha\":0.2,\"line_alpha\":0.2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1092\",\"type\":\"Patch\"},{\"attributes\":{\"line_width\":6,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1084\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2050\",\"type\":\"AllLabels\"},{\"attributes\":{\"source\":{\"id\":\"1089\"}},\"id\":\"1094\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2052\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"2012\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1060\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"2038\",\"type\":\"AllLabels\"},{\"attributes\":{\"overlay\":{\"id\":\"1066\"}},\"id\":\"1062\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"2013\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"2053\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"1063\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"1064\",\"type\":\"ResetTool\"},{\"attributes\":{\"line_alpha\":0.2,\"line_width\":6,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1086\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1987\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1988\",\"type\":\"Selection\"},{\"attributes\":{\"text_align\":{\"value\":\"right\"},\"text_alpha\":{\"value\":0.1},\"text_baseline\":{\"value\":\"middle\"},\"text_color\":{\"value\":\"gray\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1124\",\"type\":\"Text\"},{\"attributes\":{\"source\":{\"id\":\"1122\"}},\"id\":\"1127\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2040\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"2014\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"2015\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"2123\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"2124\",\"type\":\"Selection\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1122\"},\"glyph\":{\"id\":\"1123\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1125\"},\"nonselection_glyph\":{\"id\":\"1124\"},\"view\":{\"id\":\"1127\"}},\"id\":\"1126\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1003\"},\"glyph\":{\"id\":\"1084\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1086\"},\"nonselection_glyph\":{\"id\":\"1085\"},\"view\":{\"id\":\"1088\"}},\"id\":\"1087\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"interval\":50},\"id\":\"1080\",\"type\":\"SingleIntervalTicker\"},{\"attributes\":{},\"id\":\"2041\",\"type\":\"AllLabels\"},{\"attributes\":{\"source\":{\"id\":\"1074\"}},\"id\":\"1079\",\"type\":\"CDSView\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.2},\"height\":{\"value\":480.0},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#1f77b4\"},\"width\":{\"value\":240.0},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1077\",\"type\":\"Rect\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1074\"},\"glyph\":{\"id\":\"1075\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1077\"},\"nonselection_glyph\":{\"id\":\"1076\"},\"view\":{\"id\":\"1079\"}},\"id\":\"1078\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2055\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"2016\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"line_alpha\":0.1,\"line_width\":6,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1085\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"1003\"}},\"id\":\"1088\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2056\",\"type\":\"AllLabels\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1089\"},\"glyph\":{\"id\":\"1090\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1092\"},\"nonselection_glyph\":{\"id\":\"1091\"},\"view\":{\"id\":\"1094\"}},\"id\":\"1093\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2017\",\"type\":\"Selection\"},{\"attributes\":{\"fill_color\":\"white\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1090\",\"type\":\"Patch\"},{\"attributes\":{},\"id\":\"1989\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"2057\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"text_align\":{\"value\":\"right\"},\"text_alpha\":{\"value\":0.2},\"text_baseline\":{\"value\":\"middle\"},\"text_color\":{\"value\":\"gray\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1125\",\"type\":\"Text\"},{\"attributes\":{\"fill_color\":{\"value\":\"white\"},\"radius\":{\"value\":0.15},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1096\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1990\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"2033\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"2058\",\"type\":\"AllLabels\"},{\"attributes\":{\"data\":{\"x\":[0],\"y\":[0]},\"selected\":{\"id\":\"2093\"},\"selection_policy\":{\"id\":\"2092\"}},\"id\":\"1101\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"fill_color\":{\"value\":\"white\"},\"hatch_pattern\":{\"value\":\"/\"},\"height\":{\"value\":200},\"line_width\":{\"value\":3},\"width\":{\"value\":100},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1102\",\"type\":\"Rect\"},{\"attributes\":{},\"id\":\"2034\",\"type\":\"Selection\"},{\"attributes\":{\"fill_alpha\":0.1,\"fill_color\":\"white\",\"hatch_alpha\":0.1,\"line_alpha\":0.1,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1091\",\"type\":\"Patch\"},{\"attributes\":{\"data\":{\"x\":[0,0.15,-0.15],\"y\":[0,-0.16887495373796552,-0.16887495373796552]},\"selected\":{\"id\":\"2015\"},\"selection_policy\":{\"id\":\"2014\"}},\"id\":\"1089\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data\":{\"x\":[6],\"y\":[-0.0975]},\"selected\":{\"id\":\"2017\"},\"selection_policy\":{\"id\":\"2016\"}},\"id\":\"1095\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"2079\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"white\"},\"hatch_alpha\":{\"value\":0.1},\"line_alpha\":{\"value\":0.1},\"radius\":{\"value\":0.15},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1097\",\"type\":\"Circle\"},{\"attributes\":{\"source\":{\"id\":\"1101\"}},\"id\":\"1106\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2080\",\"type\":\"AllLabels\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"white\"},\"hatch_alpha\":{\"value\":0.1},\"hatch_pattern\":{\"value\":\"/\"},\"height\":{\"value\":200},\"line_alpha\":{\"value\":0.1},\"line_width\":{\"value\":3},\"width\":{\"value\":100},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1103\",\"type\":\"Rect\"},{\"attributes\":{\"line_alpha\":0.2,\"line_width\":1.5,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1749\",\"type\":\"Line\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"white\"},\"hatch_alpha\":{\"value\":0.2},\"line_alpha\":{\"value\":0.2},\"radius\":{\"value\":0.15},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1098\",\"type\":\"Circle\"},{\"attributes\":{\"fill_color\":{\"value\":\"gray\"},\"line_color\":{\"value\":\"gray\"},\"size\":{\"value\":15.380572041353537}},\"id\":\"1110\",\"type\":\"VeeHead\"},{\"attributes\":{},\"id\":\"2082\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1095\"},\"glyph\":{\"id\":\"1096\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1098\"},\"nonselection_glyph\":{\"id\":\"1097\"},\"view\":{\"id\":\"1100\"}},\"id\":\"1099\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"1095\"}},\"id\":\"1100\",\"type\":\"CDSView\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"white\"},\"hatch_alpha\":{\"value\":0.2},\"hatch_pattern\":{\"value\":\"/\"},\"height\":{\"value\":200},\"line_alpha\":{\"value\":0.2},\"line_width\":{\"value\":3},\"width\":{\"value\":100},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1104\",\"type\":\"Rect\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1755\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2083\",\"type\":\"AllLabels\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1101\"},\"glyph\":{\"id\":\"1102\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1104\"},\"nonselection_glyph\":{\"id\":\"1103\"},\"view\":{\"id\":\"1106\"}},\"id\":\"1105\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"end\":300,\"js_property_callbacks\":{\"change:value\":[{\"id\":\"1900\"}]},\"start\":10,\"step\":10,\"title\":\"Change the width b [mm]\",\"value\":100},\"id\":\"1108\",\"type\":\"Slider\"},{\"attributes\":{\"text\":\"\\n

Geometrical and mechanical parameters:

\\n h = 200 mm
\\n b = 100 mm
\\n L = 6 m
\\n A = 2.00e+04 mm2
\\n Iy = 6.67e+07 mm4
\\n Iz = 1.67e+07 mm4\",\"width\":170},\"id\":\"1107\",\"type\":\"Div\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1113\"},\"glyph\":{\"id\":\"1114\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1116\"},\"nonselection_glyph\":{\"id\":\"1115\"},\"view\":{\"id\":\"1118\"}},\"id\":\"1117\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"end\":600,\"js_property_callbacks\":{\"change:value\":[{\"id\":\"1901\"}]},\"start\":20,\"step\":20,\"title\":\"Change the height h [mm]\",\"value\":200},\"id\":\"1109\",\"type\":\"Slider\"},{\"attributes\":{\"source\":{\"id\":\"1006\"}},\"id\":\"1751\",\"type\":\"CDSView\"},{\"attributes\":{\"coordinates\":null,\"end\":{\"id\":\"1110\"},\"group\":null,\"line_color\":{\"value\":\"gray\"},\"line_width\":{\"value\":2.1972245773362196},\"source\":{\"id\":\"2010\"},\"start\":null,\"x_end\":{\"value\":0},\"x_start\":{\"value\":0},\"y_end\":{\"value\":128.0},\"y_start\":{\"value\":0}},\"id\":\"1111\",\"type\":\"Arrow\"},{\"attributes\":{\"source\":{\"id\":\"1113\"}},\"id\":\"1118\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1133\",\"type\":\"DataRange1d\"},{\"attributes\":{\"angle\":{\"value\":1.5707963267948966},\"text_alpha\":{\"value\":0.1},\"text_baseline\":{\"value\":\"middle\"},\"text_color\":{\"value\":\"gray\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1115\",\"type\":\"Text\"},{\"attributes\":{\"line_alpha\":0,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1753\",\"type\":\"Line\"},{\"attributes\":{\"angle\":{\"value\":1.5707963267948966},\"text_baseline\":{\"value\":\"middle\"},\"text_color\":{\"value\":\"gray\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1114\",\"type\":\"Text\"},{\"attributes\":{\"data\":{\"text\":[\"y\"],\"x\":[0],\"y\":[136.0]},\"selected\":{\"id\":\"2095\"},\"selection_policy\":{\"id\":\"2094\"}},\"id\":\"1113\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"angle\":{\"value\":1.5707963267948966},\"text_alpha\":{\"value\":0.2},\"text_baseline\":{\"value\":\"middle\"},\"text_color\":{\"value\":\"gray\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1116\",\"type\":\"Text\"},{\"attributes\":{},\"id\":\"1953\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"fill_color\":{\"value\":\"gray\"},\"line_color\":{\"value\":\"gray\"},\"size\":{\"value\":15.380572041353537}},\"id\":\"1119\",\"type\":\"VeeHead\"},{\"attributes\":{\"coordinates\":null,\"end\":{\"id\":\"1119\"},\"group\":null,\"line_color\":{\"value\":\"gray\"},\"line_width\":{\"value\":2.1972245773362196},\"source\":{\"id\":\"2011\"},\"start\":null,\"x_end\":{\"value\":-80.0},\"x_start\":{\"value\":0},\"y_end\":{\"value\":0},\"y_start\":{\"value\":0}},\"id\":\"1120\",\"type\":\"Arrow\"},{\"attributes\":{},\"id\":\"1131\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1954\",\"type\":\"AllLabels\"},{\"attributes\":{\"below\":[{\"id\":\"1139\"}],\"center\":[{\"id\":\"1142\"},{\"id\":\"1146\"},{\"id\":\"1225\"},{\"id\":\"1228\"},{\"id\":\"1231\"},{\"id\":\"1234\"},{\"id\":\"1237\"},{\"id\":\"1240\"}],\"height\":200,\"left\":[{\"id\":\"1143\"}],\"match_aspect\":true,\"renderers\":[{\"id\":\"1165\"},{\"id\":\"1198\"},{\"id\":\"1204\"},{\"id\":\"1210\"},{\"id\":\"1216\"},{\"id\":\"1222\"},{\"id\":\"1247\"},{\"id\":\"1253\"}],\"title\":{\"id\":\"1129\"},\"toolbar\":{\"id\":\"1154\"},\"toolbar_location\":null,\"width\":700,\"x_range\":{\"id\":\"1131\"},\"x_scale\":{\"id\":\"1135\"},\"y_range\":{\"id\":\"1133\"},\"y_scale\":{\"id\":\"1137\"}},\"id\":\"1128\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"fill_alpha\":{\"value\":0},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0},\"height\":{\"value\":18.0},\"line_alpha\":{\"value\":0},\"line_color\":{\"value\":\"#1f77b4\"},\"width\":{\"value\":72.0},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1162\",\"type\":\"Rect\"},{\"attributes\":{\"data\":{\"x\":[30.0],\"y\":[0]},\"selected\":{\"id\":\"1980\"},\"selection_policy\":{\"id\":\"1979\"}},\"id\":\"1161\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1956\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.1},\"height\":{\"value\":18.0},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"width\":{\"value\":72.0},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1163\",\"type\":\"Rect\"},{\"attributes\":{},\"id\":\"1135\",\"type\":\"LinearScale\"},{\"attributes\":{\"coordinates\":null,\"formatter\":{\"id\":\"1936\"},\"group\":null,\"major_label_policy\":{\"id\":\"1937\"},\"ticker\":{\"id\":\"1140\"},\"visible\":false},\"id\":\"1139\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1957\",\"type\":\"AllLabels\"},{\"attributes\":{\"coordinates\":null,\"formatter\":{\"id\":\"1933\"},\"group\":null,\"major_label_policy\":{\"id\":\"1934\"},\"ticker\":{\"id\":\"1144\"},\"visible\":false},\"id\":\"1143\",\"type\":\"LinearAxis\"},{\"attributes\":{\"axis\":{\"id\":\"1139\"},\"coordinates\":null,\"grid_line_alpha\":0,\"group\":null,\"ticker\":null},\"id\":\"1142\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1137\",\"type\":\"LinearScale\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"Forces and Moments Scheme\"},\"id\":\"1129\",\"type\":\"Title\"},{\"attributes\":{\"axis\":{\"id\":\"1143\"},\"coordinates\":null,\"dimension\":1,\"grid_line_alpha\":0,\"group\":null,\"ticker\":null},\"id\":\"1146\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1152\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"1140\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1144\",\"type\":\"BasicTicker\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1161\"},\"glyph\":{\"id\":\"1162\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1164\"},\"nonselection_glyph\":{\"id\":\"1163\"},\"view\":{\"id\":\"1166\"}},\"id\":\"1165\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2085\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1148\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"1147\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"2086\",\"type\":\"AllLabels\"},{\"attributes\":{\"overlay\":{\"id\":\"1153\"}},\"id\":\"1149\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1150\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"1151\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"2088\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"bottom_units\":\"screen\",\"coordinates\":null,\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"group\":null,\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"1153\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"2089\",\"type\":\"AllLabels\"},{\"attributes\":{\"fill_alpha\":0.3,\"fill_color\":\"blue\",\"hatch_alpha\":0.3,\"hatch_color\":\"navy\",\"line_alpha\":0.3,\"line_color\":\"navy\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1213\",\"type\":\"Patch\"},{\"attributes\":{\"axis_label\":\"Shear force V [kN]\",\"coordinates\":null,\"formatter\":{\"id\":\"1959\"},\"group\":null,\"major_label_policy\":{\"id\":\"1960\"},\"ticker\":{\"id\":\"1307\"}},\"id\":\"1306\",\"type\":\"LinearAxis\"},{\"attributes\":{\"fill_alpha\":0.1,\"fill_color\":\"blue\",\"hatch_alpha\":0.1,\"hatch_color\":\"navy\",\"line_alpha\":0.1,\"line_color\":\"navy\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1214\",\"type\":\"Patch\"},{\"attributes\":{\"fill_alpha\":0.2,\"fill_color\":\"blue\",\"hatch_alpha\":0.2,\"hatch_color\":\"navy\",\"line_alpha\":0.2,\"line_color\":\"navy\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1215\",\"type\":\"Patch\"},{\"attributes\":{},\"id\":\"1959\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0.2},\"height\":{\"value\":18.0},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"#1f77b4\"},\"width\":{\"value\":72.0},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1164\",\"type\":\"Rect\"},{\"attributes\":{},\"id\":\"1960\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"1962\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"tools\":[{\"id\":\"1147\"},{\"id\":\"1148\"},{\"id\":\"1149\"},{\"id\":\"1150\"},{\"id\":\"1151\"},{\"id\":\"1152\"}]},\"id\":\"1154\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"1963\",\"type\":\"AllLabels\"},{\"attributes\":{\"source\":{\"id\":\"1881\"}},\"id\":\"1886\",\"type\":\"CDSView\"},{\"attributes\":{\"source\":{\"id\":\"1161\"}},\"id\":\"1166\",\"type\":\"CDSView\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"red\"},\"hatch_alpha\":{\"value\":0.1},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"red\"},\"marker\":{\"value\":\"triangle\"},\"size\":{\"value\":0},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1251\",\"type\":\"Scatter\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1740\"},\"glyph\":{\"id\":\"1741\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1743\"},\"nonselection_glyph\":{\"id\":\"1742\"},\"view\":{\"id\":\"1745\"}},\"id\":\"1744\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"end\":6,\"js_property_callbacks\":{\"change:value\":[{\"id\":\"1899\"}]},\"start\":0,\"step\":0.02,\"title\":\"Change the position x along the beam [m]\",\"value\":6},\"id\":\"1256\",\"type\":\"Slider\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1006\"},\"glyph\":{\"id\":\"1747\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1749\"},\"nonselection_glyph\":{\"id\":\"1748\"},\"view\":{\"id\":\"1751\"}},\"id\":\"1750\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"data\":{\"x\":[0.0],\"y\":[0.0]},\"selected\":{\"id\":\"2108\"},\"selection_policy\":{\"id\":\"2107\"}},\"id\":\"1875\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"red\"},\"hatch_alpha\":{\"value\":0.2},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"red\"},\"marker\":{\"value\":\"triangle\"},\"size\":{\"value\":0},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1252\",\"type\":\"Scatter\"},{\"attributes\":{\"source\":{\"id\":\"1732\"}},\"id\":\"1737\",\"type\":\"CDSView\"},{\"attributes\":{\"source\":{\"id\":\"1249\"}},\"id\":\"1254\",\"type\":\"CDSView\"},{\"attributes\":{\"line_color\":\"red\",\"line_width\":3,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1870\",\"type\":\"Line\"},{\"attributes\":{\"line_color\":\"red\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1741\",\"type\":\"Line\"},{\"attributes\":{\"end\":5.0,\"js_property_callbacks\":{\"change:value\":[{\"id\":\"1904\"}]},\"start\":0.1,\"step\":0.1,\"title\":\"Change the uniform load q [kN/m]\",\"value\":4},\"id\":\"1255\",\"type\":\"Slider\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"red\",\"line_width\":3,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1871\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1837\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1249\"},\"glyph\":{\"id\":\"1250\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1252\"},\"nonselection_glyph\":{\"id\":\"1251\"},\"view\":{\"id\":\"1254\"}},\"id\":\"1253\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"red\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1743\",\"type\":\"Line\"},{\"attributes\":{\"text\":\"Free-body diagram (FBD):\"},\"id\":\"1257\",\"type\":\"Div\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"red\",\"line_width\":3,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1872\",\"type\":\"Line\"},{\"attributes\":{\"text_alpha\":{\"value\":0.1},\"text_color\":{\"value\":\"red\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1883\",\"type\":\"Text\"},{\"attributes\":{\"active\":0,\"js_property_callbacks\":{\"change:active\":[{\"id\":\"1903\"}]},\"labels\":[\"Right-hand\",\"Left-hand\"]},\"id\":\"1258\",\"type\":\"RadioButtonGroup\"},{\"attributes\":{\"source\":{\"id\":\"1868\"}},\"id\":\"1874\",\"type\":\"CDSView\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[201]},\"y\":{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAADwPwAAAAAAAABAAAAAAAAACEAAAAAAAAAQQAAAAAAAABRAAAAAAAAAGEAAAAAAAAAcQAAAAAAAACBAAAAAAAAAIkAAAAAAAAAkQAAAAAAAACZAAAAAAAAAKEAAAAAAAAAqQAAAAAAAACxAAAAAAAAALkAAAAAAAAAwQAAAAAAAADFAAAAAAAAAMkAAAAAAAAAzQAAAAAAAADRAAAAAAAAANUAAAAAAAAA2QAAAAAAAADdAAAAAAAAAOEAAAAAAAAA5QAAAAAAAADpAAAAAAAAAO0AAAAAAAAA8QAAAAAAAAD1AAAAAAAAAPkAAAAAAAAA/QAAAAAAAAEBAAAAAAACAQEAAAAAAAABBQAAAAAAAgEFAAAAAAAAAQkAAAAAAAIBCQAAAAAAAAENAAAAAAACAQ0AAAAAAAABEQAAAAAAAgERAAAAAAAAARUAAAAAAAIBFQAAAAAAAAEZAAAAAAACARkAAAAAAAABHQAAAAAAAgEdAAAAAAAAASEAAAAAAAIBIQAAAAAAAAElAAAAAAACASUAAAAAAAABKQAAAAAAAgEpAAAAAAAAAS0AAAAAAAIBLQAAAAAAAAExAAAAAAACATEAAAAAAAABNQAAAAAAAgE1AAAAAAAAATkAAAAAAAIBOQAAAAAAAAE9AAAAAAACAT0AAAAAAAABQQAAAAAAAQFBAAAAAAACAUEAAAAAAAMBQQAAAAAAAAFFAAAAAAABAUUAAAAAAAIBRQAAAAAAAwFFAAAAAAAAAUkAAAAAAAEBSQAAAAAAAgFJAAAAAAADAUkAAAAAAAABTQAAAAAAAQFNAAAAAAACAU0AAAAAAAMBTQAAAAAAAAFRAAAAAAABAVEAAAAAAAIBUQAAAAAAAwFRAAAAAAAAAVUAAAAAAAEBVQAAAAAAAgFVAAAAAAADAVUAAAAAAAABWQAAAAAAAQFZAAAAAAACAVkAAAAAAAMBWQAAAAAAAAFdAAAAAAABAV0AAAAAAAIBXQAAAAAAAwFdAAAAAAAAAWEAAAAAAAEBYQAAAAAAAgFhAAAAAAADAWEAAAAAAAABZQAAAAAAAQFlAAAAAAACAWUAAAAAAAMBZQAAAAAAAAFpAAAAAAABAWkAAAAAAAIBaQAAAAAAAwFpAAAAAAAAAW0AAAAAAAEBbQAAAAAAAgFtAAAAAAADAW0AAAAAAAABcQAAAAAAAQFxAAAAAAACAXEAAAAAAAMBcQAAAAAAAAF1AAAAAAABAXUAAAAAAAIBdQAAAAAAAwF1AAAAAAAAAXkAAAAAAAEBeQAAAAAAAgF5AAAAAAADAXkAAAAAAAABfQAAAAAAAQF9AAAAAAACAX0AAAAAAAMBfQAAAAAAAAGBAAAAAAAAgYEAAAAAAAEBgQAAAAAAAYGBAAAAAAACAYEAAAAAAAKBgQAAAAAAAwGBAAAAAAADgYEAAAAAAAABhQAAAAAAAIGFAAAAAAABAYUAAAAAAAGBhQAAAAAAAgGFAAAAAAACgYUAAAAAAAMBhQAAAAAAA4GFAAAAAAAAAYkAAAAAAACBiQAAAAAAAQGJAAAAAAABgYkAAAAAAAIBiQAAAAAAAoGJAAAAAAADAYkAAAAAAAOBiQAAAAAAAAGNAAAAAAAAgY0AAAAAAAEBjQAAAAAAAYGNAAAAAAACAY0AAAAAAAKBjQAAAAAAAwGNAAAAAAADgY0AAAAAAAABkQAAAAAAAIGRAAAAAAABAZEAAAAAAAGBkQAAAAAAAgGRAAAAAAACgZEAAAAAAAMBkQAAAAAAA4GRAAAAAAAAAZUAAAAAAACBlQAAAAAAAQGVAAAAAAABgZUAAAAAAAIBlQAAAAAAAoGVAAAAAAADAZUAAAAAAAOBlQAAAAAAAAGZAAAAAAAAgZkAAAAAAAEBmQAAAAAAAYGZAAAAAAACAZkAAAAAAAKBmQAAAAAAAwGZAAAAAAADgZkAAAAAAAABnQAAAAAAAIGdAAAAAAABAZ0AAAAAAAGBnQAAAAAAAgGdAAAAAAACgZ0AAAAAAAMBnQAAAAAAA4GdAAAAAAAAAaEAAAAAAACBoQAAAAAAAQGhAAAAAAABgaEAAAAAAAIBoQAAAAAAAoGhAAAAAAADAaEAAAAAAAOBoQAAAAAAAAGlA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[201]}},\"selected\":{\"id\":\"2117\"},\"selection_policy\":{\"id\":\"2116\"}},\"id\":\"1740\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"below\":[{\"id\":\"1302\"}],\"center\":[{\"id\":\"1305\"},{\"id\":\"1309\"}],\"height\":160,\"left\":[{\"id\":\"1306\"}],\"renderers\":[{\"id\":\"1372\"},{\"id\":\"1378\"},{\"id\":\"1406\"}],\"title\":{\"id\":\"1928\"},\"toolbar\":{\"id\":\"1317\"},\"toolbar_location\":null,\"width\":700,\"x_range\":{\"id\":\"1011\"},\"x_scale\":{\"id\":\"1298\"},\"y_range\":{\"id\":\"1296\"},\"y_scale\":{\"id\":\"1300\"}},\"id\":\"1294\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"red\"},\"hatch_alpha\":{\"value\":0.1},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"red\"},\"marker\":{\"value\":\"triangle\"},\"size\":{\"value\":0},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1877\",\"type\":\"Scatter\"},{\"attributes\":{\"desired_num_ticks\":3,\"num_minor_ticks\":2},\"id\":\"1758\",\"type\":\"AdaptiveTicker\"},{\"attributes\":{\"text\":\"Axial force P=10 kN (applied)\"},\"id\":\"1259\",\"type\":\"Div\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"red\"},\"hatch_alpha\":{\"value\":0.2},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"red\"},\"marker\":{\"value\":\"triangle\"},\"size\":{\"value\":0},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1878\",\"type\":\"Scatter\"},{\"attributes\":{\"line_alpha\":0.1,\"line_width\":1.5,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1748\",\"type\":\"Line\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1875\"},\"glyph\":{\"id\":\"1876\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1878\"},\"nonselection_glyph\":{\"id\":\"1877\"},\"view\":{\"id\":\"1880\"}},\"id\":\"1879\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"text\":\"\\n

Forces and Moments:

\\n P = 10 kN
\\n Rx = 10 kN
\\n Ry (left) = 12.0 kN
\\n Ry (right) = 12.0 kN
\\n No cross section analysed.
\\n N = 0 kN
\\n V = 0 kN
\\n M = 0 kNm\\n \\n \",\"width\":170},\"id\":\"1261\",\"type\":\"Div\"},{\"attributes\":{\"source\":{\"id\":\"1740\"}},\"id\":\"1745\",\"type\":\"CDSView\"},{\"attributes\":{\"fill_color\":{\"value\":\"red\"},\"line_color\":{\"value\":\"red\"},\"marker\":{\"value\":\"triangle\"},\"size\":{\"value\":0},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1876\",\"type\":\"Scatter\"},{\"attributes\":{},\"id\":\"2037\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"red\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1742\",\"type\":\"Line\"},{\"attributes\":{\"text_color\":{\"value\":\"red\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1882\",\"type\":\"Text\"},{\"attributes\":{},\"id\":\"2153\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1268\",\"type\":\"LinearScale\"},{\"attributes\":{\"data\":{\"text\":[\"\"],\"x\":[11.0],\"y\":[1]},\"selected\":{\"id\":\"2110\"},\"selection_policy\":{\"id\":\"2109\"}},\"id\":\"1881\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_width\":1.5,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1747\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1017\",\"type\":\"LinearScale\"},{\"attributes\":{\"active\":[0],\"js_property_callbacks\":{\"change:active\":[{\"id\":\"1902\"}]},\"labels\":[\"Apply or remove axial force P\"]},\"id\":\"1260\",\"type\":\"CheckboxButtonGroup\"},{\"attributes\":{},\"id\":\"1820\",\"type\":\"DataRange1d\"},{\"attributes\":{\"below\":[{\"id\":\"1272\"}],\"center\":[{\"id\":\"1275\"},{\"id\":\"1279\"}],\"height\":160,\"left\":[{\"id\":\"1276\"}],\"renderers\":[{\"id\":\"1358\"},{\"id\":\"1364\"},{\"id\":\"1400\"}],\"title\":{\"id\":\"1263\"},\"toolbar\":{\"id\":\"1287\"},\"toolbar_location\":null,\"width\":700,\"x_range\":{\"id\":\"1011\"},\"x_scale\":{\"id\":\"1268\"},\"y_range\":{\"id\":\"1266\"},\"y_scale\":{\"id\":\"1270\"}},\"id\":\"1262\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"axis_label\":\"Position [m]\",\"coordinates\":null,\"formatter\":{\"id\":\"1949\"},\"group\":null,\"major_label_policy\":{\"id\":\"1950\"},\"ticker\":{\"id\":\"1020\"}},\"id\":\"1019\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1787\",\"type\":\"DataRange1d\"},{\"attributes\":{\"below\":[{\"id\":\"1332\"}],\"center\":[{\"id\":\"1335\"},{\"id\":\"1339\"}],\"height\":200,\"left\":[{\"id\":\"1336\"}],\"renderers\":[{\"id\":\"1386\"},{\"id\":\"1392\"},{\"id\":\"1412\"}],\"title\":{\"id\":\"1930\"},\"toolbar\":{\"id\":\"1347\"},\"toolbar_location\":null,\"width\":700,\"x_range\":{\"id\":\"1011\"},\"x_scale\":{\"id\":\"1328\"},\"y_range\":{\"id\":\"1326\"},\"y_scale\":{\"id\":\"1330\"}},\"id\":\"1324\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1762\"},\"glyph\":{\"id\":\"1763\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1765\"},\"nonselection_glyph\":{\"id\":\"1764\"},\"view\":{\"id\":\"1767\"}},\"id\":\"1766\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"1875\"}},\"id\":\"1880\",\"type\":\"CDSView\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1003\"},\"glyph\":{\"id\":\"1361\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1363\"},\"nonselection_glyph\":{\"id\":\"1362\"},\"view\":{\"id\":\"1365\"}},\"id\":\"1364\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1881\"},\"glyph\":{\"id\":\"1882\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1884\"},\"nonselection_glyph\":{\"id\":\"1883\"},\"view\":{\"id\":\"1886\"}},\"id\":\"1885\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2025\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"coordinates\":null,\"formatter\":{\"id\":\"1946\"},\"group\":null,\"major_label_policy\":{\"id\":\"1947\"},\"ticker\":{\"id\":\"1024\"},\"visible\":false},\"id\":\"1023\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1266\",\"type\":\"DataRange1d\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1887\"},\"glyph\":{\"id\":\"1888\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1890\"},\"nonselection_glyph\":{\"id\":\"1889\"},\"view\":{\"id\":\"1892\"}},\"id\":\"1891\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"axis\":{\"id\":\"1272\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"1275\",\"type\":\"Grid\"},{\"attributes\":{\"text_alpha\":{\"value\":0.2},\"text_color\":{\"value\":\"red\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1884\",\"type\":\"Text\"},{\"attributes\":{\"text_baseline\":{\"value\":\"top\"},\"text_color\":{\"value\":\"red\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1888\",\"type\":\"Text\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"N V M Diagrams\"},\"id\":\"1263\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1822\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"2026\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1270\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1824\",\"type\":\"LinearScale\"},{\"attributes\":{\"data\":{\"text\":[\"\"],\"x\":[6],\"y\":[-5]},\"selected\":{\"id\":\"2112\"},\"selection_policy\":{\"id\":\"2111\"}},\"id\":\"1887\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1281\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"coordinates\":null,\"formatter\":{\"id\":\"2075\"},\"group\":null,\"major_label_policy\":{\"id\":\"2076\"},\"ticker\":{\"id\":\"1829\"},\"visible\":false},\"id\":\"1828\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"2027\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"axis_label\":\"Position [m]\",\"coordinates\":null,\"formatter\":{\"id\":\"1956\"},\"group\":null,\"major_label_policy\":{\"id\":\"1957\"},\"ticker\":{\"id\":\"1273\"},\"visible\":false},\"id\":\"1272\",\"type\":\"LinearAxis\"},{\"attributes\":{\"axis_label\":\"Height h [mm]\",\"coordinates\":null,\"formatter\":{\"id\":\"2072\"},\"group\":null,\"major_label_policy\":{\"id\":\"2073\"},\"ticker\":{\"id\":\"1833\"},\"visible\":false},\"id\":\"1832\",\"type\":\"LinearAxis\"},{\"attributes\":{\"source\":{\"id\":\"1887\"}},\"id\":\"1892\",\"type\":\"CDSView\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1752\"},\"glyph\":{\"id\":\"1753\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1755\"},\"nonselection_glyph\":{\"id\":\"1754\"},\"view\":{\"id\":\"1757\"}},\"id\":\"1756\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"text_alpha\":{\"value\":0.1},\"text_baseline\":{\"value\":\"top\"},\"text_color\":{\"value\":\"red\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1889\",\"type\":\"Text\"},{\"attributes\":{\"data\":{\"x\":[-0.00012,0.00012],\"y\":[0,0]},\"selected\":{\"id\":\"2121\"},\"selection_policy\":{\"id\":\"2120\"}},\"id\":\"1752\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1273\",\"type\":\"BasicTicker\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1893\"},\"glyph\":{\"id\":\"1894\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1896\"},\"nonselection_glyph\":{\"id\":\"1895\"},\"view\":{\"id\":\"1898\"}},\"id\":\"1897\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2028\",\"type\":\"Selection\"},{\"attributes\":{\"axis\":{\"id\":\"1828\"},\"coordinates\":null,\"grid_line_alpha\":0,\"group\":null,\"ticker\":null},\"id\":\"1831\",\"type\":\"Grid\"},{\"attributes\":{\"text_alpha\":{\"value\":0.2},\"text_baseline\":{\"value\":\"top\"},\"text_color\":{\"value\":\"red\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1890\",\"type\":\"Text\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1754\",\"type\":\"Line\"},{\"attributes\":{\"axis_label\":\"Axial force N [kN]\",\"coordinates\":null,\"formatter\":{\"id\":\"1953\"},\"group\":null,\"major_label_policy\":{\"id\":\"1954\"},\"ticker\":{\"id\":\"1277\"}},\"id\":\"1276\",\"type\":\"LinearAxis\"},{\"attributes\":{\"below\":[{\"id\":\"1795\"}],\"center\":[{\"id\":\"1798\"},{\"id\":\"1802\"},{\"id\":\"1863\"}],\"height\":200,\"left\":[{\"id\":\"1799\"}],\"match_aspect\":true,\"renderers\":[{\"id\":\"1854\"},{\"id\":\"1873\"},{\"id\":\"1879\"},{\"id\":\"1885\"},{\"id\":\"1891\"}],\"title\":{\"id\":\"1785\"},\"toolbar\":{\"id\":\"1810\"},\"toolbar_location\":null,\"width\":200,\"x_range\":{\"id\":\"1787\"},\"x_scale\":{\"id\":\"1791\"},\"y_range\":{\"id\":\"1789\"},\"y_scale\":{\"id\":\"1793\"}},\"id\":\"1784\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"V at position x\"},\"id\":\"1818\",\"type\":\"Title\"},{\"attributes\":{\"axis\":{\"id\":\"1276\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"1279\",\"type\":\"Grid\"},{\"attributes\":{\"source\":{\"id\":\"1752\"}},\"id\":\"1757\",\"type\":\"CDSView\"},{\"attributes\":{\"data\":{\"text\":[\"\"],\"x\":[5],\"y\":[0]},\"selected\":{\"id\":\"2146\"},\"selection_policy\":{\"id\":\"2145\"}},\"id\":\"1893\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1277\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis\":{\"id\":\"1832\"},\"coordinates\":null,\"dimension\":1,\"grid_line_alpha\":0,\"group\":null,\"ticker\":null},\"id\":\"1835\",\"type\":\"Grid\"},{\"attributes\":{\"source\":{\"id\":\"1893\"}},\"id\":\"1898\",\"type\":\"CDSView\"},{\"attributes\":{\"line_color\":\"red\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1763\",\"type\":\"Line\"},{\"attributes\":{\"text_alpha\":{\"value\":0.1},\"text_baseline\":{\"value\":\"middle\"},\"text_color\":{\"value\":\"red\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1895\",\"type\":\"Text\"},{\"attributes\":{},\"id\":\"1829\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1826\",\"type\":\"LinearScale\"},{\"attributes\":{\"data\":{},\"selected\":{\"id\":\"2115\"},\"selection_policy\":{\"id\":\"2114\"}},\"id\":\"2042\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"text_baseline\":{\"value\":\"middle\"},\"text_color\":{\"value\":\"red\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1894\",\"type\":\"Text\"},{\"attributes\":{},\"id\":\"1285\",\"type\":\"HelpTool\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1850\"},\"glyph\":{\"id\":\"1851\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1853\"},\"nonselection_glyph\":{\"id\":\"1852\"},\"view\":{\"id\":\"1855\"}},\"id\":\"1854\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"red\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1765\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1030\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"1280\",\"type\":\"PanTool\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[201]},\"y\":{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAADwPwAAAAAAAABAAAAAAAAACEAAAAAAAAAQQAAAAAAAABRAAAAAAAAAGEAAAAAAAAAcQAAAAAAAACBAAAAAAAAAIkAAAAAAAAAkQAAAAAAAACZAAAAAAAAAKEAAAAAAAAAqQAAAAAAAACxAAAAAAAAALkAAAAAAAAAwQAAAAAAAADFAAAAAAAAAMkAAAAAAAAAzQAAAAAAAADRAAAAAAAAANUAAAAAAAAA2QAAAAAAAADdAAAAAAAAAOEAAAAAAAAA5QAAAAAAAADpAAAAAAAAAO0AAAAAAAAA8QAAAAAAAAD1AAAAAAAAAPkAAAAAAAAA/QAAAAAAAAEBAAAAAAACAQEAAAAAAAABBQAAAAAAAgEFAAAAAAAAAQkAAAAAAAIBCQAAAAAAAAENAAAAAAACAQ0AAAAAAAABEQAAAAAAAgERAAAAAAAAARUAAAAAAAIBFQAAAAAAAAEZAAAAAAACARkAAAAAAAABHQAAAAAAAgEdAAAAAAAAASEAAAAAAAIBIQAAAAAAAAElAAAAAAACASUAAAAAAAABKQAAAAAAAgEpAAAAAAAAAS0AAAAAAAIBLQAAAAAAAAExAAAAAAACATEAAAAAAAABNQAAAAAAAgE1AAAAAAAAATkAAAAAAAIBOQAAAAAAAAE9AAAAAAACAT0AAAAAAAABQQAAAAAAAQFBAAAAAAACAUEAAAAAAAMBQQAAAAAAAAFFAAAAAAABAUUAAAAAAAIBRQAAAAAAAwFFAAAAAAAAAUkAAAAAAAEBSQAAAAAAAgFJAAAAAAADAUkAAAAAAAABTQAAAAAAAQFNAAAAAAACAU0AAAAAAAMBTQAAAAAAAAFRAAAAAAABAVEAAAAAAAIBUQAAAAAAAwFRAAAAAAAAAVUAAAAAAAEBVQAAAAAAAgFVAAAAAAADAVUAAAAAAAABWQAAAAAAAQFZAAAAAAACAVkAAAAAAAMBWQAAAAAAAAFdAAAAAAABAV0AAAAAAAIBXQAAAAAAAwFdAAAAAAAAAWEAAAAAAAEBYQAAAAAAAgFhAAAAAAADAWEAAAAAAAABZQAAAAAAAQFlAAAAAAACAWUAAAAAAAMBZQAAAAAAAAFpAAAAAAABAWkAAAAAAAIBaQAAAAAAAwFpAAAAAAAAAW0AAAAAAAEBbQAAAAAAAgFtAAAAAAADAW0AAAAAAAABcQAAAAAAAQFxAAAAAAACAXEAAAAAAAMBcQAAAAAAAAF1AAAAAAABAXUAAAAAAAIBdQAAAAAAAwF1AAAAAAAAAXkAAAAAAAEBeQAAAAAAAgF5AAAAAAADAXkAAAAAAAABfQAAAAAAAQF9AAAAAAACAX0AAAAAAAMBfQAAAAAAAAGBAAAAAAAAgYEAAAAAAAEBgQAAAAAAAYGBAAAAAAACAYEAAAAAAAKBgQAAAAAAAwGBAAAAAAADgYEAAAAAAAABhQAAAAAAAIGFAAAAAAABAYUAAAAAAAGBhQAAAAAAAgGFAAAAAAACgYUAAAAAAAMBhQAAAAAAA4GFAAAAAAAAAYkAAAAAAACBiQAAAAAAAQGJAAAAAAABgYkAAAAAAAIBiQAAAAAAAoGJAAAAAAADAYkAAAAAAAOBiQAAAAAAAAGNAAAAAAAAgY0AAAAAAAEBjQAAAAAAAYGNAAAAAAACAY0AAAAAAAKBjQAAAAAAAwGNAAAAAAADgY0AAAAAAAABkQAAAAAAAIGRAAAAAAABAZEAAAAAAAGBkQAAAAAAAgGRAAAAAAACgZEAAAAAAAMBkQAAAAAAA4GRAAAAAAAAAZUAAAAAAACBlQAAAAAAAQGVAAAAAAABgZUAAAAAAAIBlQAAAAAAAoGVAAAAAAADAZUAAAAAAAOBlQAAAAAAAAGZAAAAAAAAgZkAAAAAAAEBmQAAAAAAAYGZAAAAAAACAZkAAAAAAAKBmQAAAAAAAwGZAAAAAAADgZkAAAAAAAABnQAAAAAAAIGdAAAAAAABAZ0AAAAAAAGBnQAAAAAAAgGdAAAAAAACgZ0AAAAAAAMBnQAAAAAAA4GdAAAAAAAAAaEAAAAAAACBoQAAAAAAAQGhAAAAAAABgaEAAAAAAAIBoQAAAAAAAoGhAAAAAAADAaEAAAAAAAOBoQAAAAAAAAGlA\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[201]}},\"selected\":{\"id\":\"2129\"},\"selection_policy\":{\"id\":\"2128\"}},\"id\":\"1762\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"overlay\":{\"id\":\"1286\"}},\"id\":\"1282\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"args\":{\"M_stress_diag\":{\"id\":\"1664\"},\"N_stress_diag\":{\"id\":\"1644\"},\"V_stress_diag\":{\"id\":\"1684\"},\"axial_strain_diag\":{\"id\":\"1744\"},\"bending_strain_diag\":{\"id\":\"1766\"},\"centroid\":{\"id\":\"1676\"},\"div\":{\"id\":\"1107\"},\"neutral_axis\":{\"id\":\"1716\"},\"s_b\":{\"id\":\"1003\"},\"section\":{\"id\":\"1105\"},\"sigma_stress_diag\":{\"id\":\"1704\"},\"source\":{\"id\":\"1007\"},\"support_r\":{\"id\":\"1099\"},\"tau_stress_diag\":{\"id\":\"1724\"}},\"code\":\"\\n // retrieve data used\\n const db = source.data\\n const b = cb_obj.value // value of the slider\\n const h = db['h'][0]\\n const A = compute_area(b, h)\\n const Iy = compute_inertia_y(b, h)\\n const yG = db['yG'][0]\\n const N = db['N'][0]\\n const M = db['M'][0]\\n\\n // apply the changes\\n db['b'][0] = b\\n db['A'][0] = A\\n db['Iy'][0] = Iy\\n db['Iz'][0] = compute_inertia_z(b, h)\\n db['y_n_axis'][0] = compute_neutral_axis(N, A, Iy, M, yG)\\n\\n // update\\n update_div_geo(db, div)\\n update_section(db, section)\\n update_axial_stress_strain(db, N_stress_diag, axial_strain_diag)\\n update_bending_stress_strain(db, M_stress_diag, bending_strain_diag, centroid)\\n update_shear_stress(db, V_stress_diag)\\n update_total_stress(db, sigma_stress_diag, tau_stress_diag, neutral_axis)\\n\\n // emit the changes\\n source.change.emit()\\n\\n \\n function update_div_geo(data, div) {\\n // compute the parameters and dimensions\\n const L = Math.round(data['L'][0]*10)/10\\n const b = Math.round(data['b'][0])\\n const h = Math.round(data['h'][0])\\n const A = data['A'][0]\\n const Iy = data['Iy'][0]\\n const Iz = data['Iz'][0]\\n // change the div text\\n div.text = `\\n

Geometrical and mechanical parameters:

\\n h = `+h+` mm
\\n b = `+b+` mm
\\n L = `+L+` m
\\n A = `+A.toExponential(2)+` mm2
\\n Iy = `+Iy.toExponential(2)+` mm4
\\n Iz = `+Iz.toExponential(2)+` mm4` \\n }\\n \\n \\n function update_section(data, glyph_section) {\\n // change the plot of the section\\n glyph_section.glyph.width = data['b'][0]\\n glyph_section.glyph.height = data['h'][0]\\n }\\n \\n \\n function compute_area(b, h) {\\n return b*h\\n }\\n \\n \\n function compute_inertia_y(b, h) {\\n return b*h**3/12\\n }\\n \\n \\n function compute_inertia_z(b, h) {\\n return h*b**3/12\\n }\\n \\n \\n function compute_neutral_axis(N, A, Iy, M, yG) {\\n if (M == 0) {\\n return yG\\n }\\n else {\\n return yG - N/A*Iy/M/1000\\n }\\n }\\n \\n \\n function update_axial_stress_strain(data, glyph_stress, glyph_strain, discr=201) { \\n // define parameters\\n const h = data['h'][0]\\n const A = data['A'][0]\\n const E = data['E'][0]\\n const N = data['N'][0]\\n const y_discr = linspace(0, h, discr)\\n let sigma_axial = new Array(discr)\\n let strain_axial = new Array(discr)\\n \\n // compute the arrays\\n for (var i = 0; i < discr; i++) {\\n sigma_axial[i] = compute_sigma_axial(N, A)\\n strain_axial[i] = compute_epsilon_axial(sigma_axial[i], E)\\n }\\n \\n // change the diagrams\\n update_stress_diagram(glyph_stress, sigma_axial, y_discr)\\n update_strain_diagram(glyph_strain, strain_axial, y_discr)\\n }\\n \\n \\n function update_bending_stress_strain(data, glyph_stress, glyph_strain, glyph_centroid, discr=201) { \\n // define parameters\\n const h = data['h'][0]\\n const E = data['E'][0]\\n const Iy = data['Iy'][0]\\n const yG = data['yG'][0]\\n const M = data['M'][0]\\n const y_discr = linspace(0, h, discr)\\n let sigma_bending = new Array(discr)\\n let strain_bending = new Array(discr)\\n const src_centroid = glyph_centroid.data_source\\n \\n // apply the changes\\n src_centroid.data.y = [yG, yG]\\n \\n // compute the arrays\\n for (var i = 0; i < discr; i++) {\\n sigma_bending[i] = compute_sigma_bending(y_discr[i], M, Iy, yG)\\n strain_bending[i] = compute_epsilon_bending(sigma_bending[i], E)\\n }\\n \\n // change the diagrams\\n update_stress_diagram(glyph_stress, sigma_bending, y_discr)\\n update_strain_diagram(glyph_strain, strain_bending, y_discr)\\n src_centroid.change.emit()\\n }\\n \\n \\n function update_shear_stress(data, glyph_stress, discr=201) { \\n // define parameters\\n const h = data['h'][0]\\n const b = data['b'][0]\\n const yG = data['yG'][0]\\n const Iy = data['Iy'][0]\\n const V = data['V'][0]\\n const y_discr = linspace(0, h, discr)\\n let tau_shear = new Array(discr)\\n \\n // compute the arrays\\n for (var i = 0; i < discr; i++) {\\n var S = compute_first_moment_of_area_implicit(y_discr[i], data)\\n tau_shear[i] = compute_tau_shear(V, S, Iy, b)\\n }\\n \\n // change the diagrams\\n update_stress_diagram(glyph_stress, tau_shear, y_discr)\\n }\\n \\n \\n function update_total_stress(data, glyph_sigma, glyph_tau, glyph_neutral_axis, discr=201) { \\n // define parameters\\n const h = data['h'][0]\\n const b = data['b'][0]\\n const M = data['M'][0]\\n const N = data['N'][0]\\n const V = data['V'][0]\\n const A = data['A'][0]\\n const Iy = data['Iy'][0]\\n const yG = data['yG'][0]\\n const y_discr = linspace(0, h, discr)\\n const y_n_axis = compute_neutral_axis(N, A, Iy, M, yG)\\n let sigma_bending = new Array(discr)\\n let tau_shear = new Array(discr)\\n let sigma_axial = new Array(discr)\\n let total_sigma = new Array(discr)\\n let total_tau = new Array(discr)\\n const src_n_axis = glyph_neutral_axis.data_source\\n \\n \\n // apply the changes\\n db['y_n_axis'][0] = y_n_axis\\n src_n_axis.data.y = [y_n_axis, y_n_axis]\\n \\n // compute the arrays\\n for (var i = 0; i < discr; i++) {\\n // sigma\\n sigma_axial[i] = compute_sigma_axial(N, A)\\n sigma_bending[i] = compute_sigma_bending(y_discr[i], M, Iy, yG)\\n total_sigma[i] = compute_total_sigma(sigma_axial[i], sigma_bending[i])\\n // tau\\n var S = compute_first_moment_of_area_implicit(y_discr[i], data)\\n tau_shear[i] = compute_tau_shear(V, S, Iy, b)\\n \\n total_tau[i] = compute_total_tau(tau_shear[i])\\n }\\n \\n // change the diagrams\\n update_stress_diagram(glyph_sigma, total_sigma, y_discr)\\n update_stress_diagram(glyph_tau, total_tau, y_discr)\\n src_n_axis.change.emit()\\n }\\n \\n \\n function linspace(start, stop, discr = 100) {\\n const step = (stop - start) / (discr-1);\\n return Array.from({length: discr}, (_, i) => start + step * i);\\n }\\n \\n \\n function compute_epsilon_axial(sigma_axial, E) {\\n return sigma_axial/E*100\\n }\\n \\n \\n function compute_epsilon_bending(sigma_bending, E) {\\n return sigma_bending/E*100\\n }\\n \\n \\n function compute_sigma_axial(N, A) {\\n return N*1000/A\\n }\\n \\n \\n function update_stress_diagram(diagram, x, y) {\\n const x_ = [...x]\\n const y_ = [...y]\\n const source = diagram.data_source\\n x_.unshift(0)\\n x_.push(0)\\n y_.unshift(y[0])\\n y_.push(y[y.length-1])\\n source.data.x = x_\\n source.data.y = y_\\n source.change.emit()\\n }\\n \\n \\n function update_strain_diagram(diagram, x, y) {\\n const source = diagram.data_source\\n source.data.x = x\\n source.data.y = y\\n source.change.emit()\\n }\\n \\n \\n function compute_sigma_bending(y, M, Iy, yG) {\\n return M*1e6/Iy*(y-yG)\\n }\\n \\n \\n function compute_total_sigma(sigma_axial, sigma_bending) {\\n return sigma_bending+sigma_axial\\n }\\n \\n \\n function compute_total_tau(tau_shear, tau_torsion=0) {\\n return tau_shear + tau_torsion\\n }\\n \\n \\n function compute_first_moment_of_area(y, b, h, yG) {\\n return b/2*(h**2/4-(y-yG)**2)\\n }\\n \\n \\n function compute_first_moment_of_area_implicit(y_, data) {\\n return compute_first_moment_of_area(y_, data['b'][0], data['h'][0], data['yG'][0])\\n }\\n \\n \\n function compute_tau_shear(V, S, Iy, b_or_t) {\\n return V*1000*S/(Iy*b_or_t)\\n }\\n \\n \\n function compute_centroid_y(h) {\\n return h/2\\n }\\n \\n \\n function compute_neutral_axis(N, A, Iy, M, yG) {\\n if (M == 0) {\\n return yG\\n }\\n else {\\n return yG - N/A*Iy/M/1000\\n }\\n }\\n \\n \"},\"id\":\"1900\",\"type\":\"CustomJS\"},{\"attributes\":{\"text_alpha\":{\"value\":0.2},\"text_baseline\":{\"value\":\"middle\"},\"text_color\":{\"value\":\"red\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1896\",\"type\":\"Text\"},{\"attributes\":{},\"id\":\"1283\",\"type\":\"SaveTool\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1777\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1833\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1284\",\"type\":\"ResetTool\"},{\"attributes\":{\"source\":{\"id\":\"1762\"}},\"id\":\"1767\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1841\",\"type\":\"HelpTool\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"red\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1764\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1836\",\"type\":\"PanTool\"},{\"attributes\":{\"args\":{\"M_stress_diag\":{\"id\":\"1664\"},\"N_stress_diag\":{\"id\":\"1644\"},\"V_stress_diag\":{\"id\":\"1684\"},\"arr_head\":{\"id\":\"1253\"},\"axial_strain_diag\":{\"id\":\"1744\"},\"bending_strain_diag\":{\"id\":\"1766\"},\"centroid\":{\"id\":\"1676\"},\"div_P\":{\"id\":\"1259\"},\"div_f\":{\"id\":\"1261\"},\"fN\":{\"id\":\"1237\"},\"fP\":{\"id\":\"1225\"},\"fRx\":{\"id\":\"1234\"},\"fRyl\":{\"id\":\"1231\"},\"fRyr\":{\"id\":\"1228\"},\"fV\":{\"id\":\"1240\"},\"label_M_section\":{\"id\":\"1891\"},\"label_N_section\":{\"id\":\"1885\"},\"label_V_section\":{\"id\":\"1897\"},\"neutral_axis\":{\"id\":\"1716\"},\"s_M\":{\"id\":\"1242\"},\"s_q\":{\"id\":\"1005\"},\"s_sb\":{\"id\":\"1004\"},\"s_section_M\":{\"id\":\"1868\"},\"section_M_head\":{\"id\":\"1879\"},\"section_N\":{\"id\":\"1863\"},\"section_V\":{\"id\":\"1866\"},\"sigma_stress_diag\":{\"id\":\"1704\"},\"source\":{\"id\":\"1007\"},\"tau_stress_diag\":{\"id\":\"1724\"}},\"code\":\"\\n // retrieve data\\n const db = source.data\\n const data_sb = s_sb.data\\n const data_q = s_q.data\\n const FBD = db['FBD'][0]\\n const pos = cb_obj.value\\n const q = db['q'][0]\\n const L = db['L'][0]\\n\\n // update data\\n db['N'][0] = compute_N(db['P'][0])\\n db['V'][0] = compute_V(pos, q, L)\\n db['M'][0] = compute_M(pos, q, L)\\n db['x'][0] = pos\\n\\n // check state\\n check_state(db)\\n\\n // update:\\n update_internal_forces(db, fN, fV, arr_head, s_M)\\n update_scheme_position(db, data_sb, data_q)\\n update_reactions(db, fRx, fRyl, fRyr)\\n update_external_forces(db, fP, div_P)\\n update_div_forces(db, div_f)\\n update_axial_stress_strain(db, N_stress_diag, axial_strain_diag)\\n update_bending_stress_strain(db, M_stress_diag, bending_strain_diag, centroid)\\n update_shear_stress(db, V_stress_diag)\\n update_total_stress(db, sigma_stress_diag, tau_stress_diag, neutral_axis)\\n update_NVM_section(db, section_N, section_V, section_M_head, s_section_M, label_N_section, label_V_section, label_M_section)\\n\\n // apply the changes\\n source.change.emit()\\n s_sb.change.emit()\\n s_q.change.emit()\\n\\n // declare functions\\n \\n function compute_N(P) {\\n return -P\\n }\\n \\n \\n function compute_V(x, q, L) {\\n return q*x-q*L/2\\n }\\n \\n \\n function compute_M(x, q, L) {\\n return q*x/2*(x-L)\\n }\\n \\n \\n function update_internal_forces(data, glyph_N, glyph_V, glyph_M_head, source_M, lambda=0.25, offset_N=1.5, offset_V=1) {\\n const pos = data['x'][0]\\n const SCALE = data['SCALE'][0]\\n const N = data['N'][0]\\n const V = data['V'][0]\\n const M = data['M'][0]\\n switch(data['state'][0]) {\\n case 'IDLE':\\n // internal forces\\n update_arrow(glyph_N)\\n update_arrow(glyph_V)\\n update_curvedArrow(0, 0, 0, 0, 0, source_M, glyph_M_head)\\n break;\\n case 'R_SEC':\\n // internal forces\\n update_arrow(glyph_N, -N, pos*SCALE-N+offset_N, pos*SCALE+offset_N, 0, 0)\\n update_arrow(glyph_V, -V, pos*SCALE+offset_V, pos*SCALE+offset_V, -V/2, V/2)\\n var b = 6\\n var c = -M/2*0.8\\n var a = b-lambda*c\\n update_curvedArrow(a, b, c, pos*SCALE, 0, source_M, glyph_M_head)\\n break;\\n case 'L_SEC':\\n // internal forces\\n update_arrow(glyph_N, N, pos*SCALE+N-offset_N, pos*SCALE-offset_N, 0, 0)\\n update_arrow(glyph_V, V, pos*SCALE-offset_V, pos*SCALE-offset_V, V/2, -V/2)\\n var b = -6\\n var c = -M/2*0.8\\n var a = b+lambda*c\\n update_curvedArrow(a, b, c, pos*SCALE, 0, source_M, glyph_M_head)\\n break;\\n default:\\n console.error(\\\"State \\\"+data['state'][0]+\\\" in state machine not implemented\\\")\\n }\\n }\\n \\n \\n function update_scheme_position(data, data_scheme_beam, data_scheme_q) {\\n const L = data['L'][0]*data['SCALE'][0]\\n const pos = data['x'][0]*data['SCALE'][0]\\n \\n // move position of the point\\n data['xF'][0] = pos\\n \\n switch(data['state'][0]) {\\n case 'IDLE':\\n // beam\\n data_scheme_beam['x'][0] = 0\\n data_scheme_beam['x'][1] = L\\n // unif load\\n data_scheme_q['x'][0] = 0\\n data_scheme_q['x'][1] = 0\\n data_scheme_q['x'][2] = L\\n data_scheme_q['x'][3] = L\\n break\\n case 'R_SEC':\\n // beam\\n data_scheme_beam['x'][0] = 0\\n data_scheme_beam['x'][1] = pos\\n // unif load\\n data_scheme_q['x'][0] = 0\\n data_scheme_q['x'][1] = 0\\n data_scheme_q['x'][2] = pos\\n data_scheme_q['x'][3] = pos\\n break\\n case 'L_SEC':\\n // beam\\n data_scheme_beam['x'][0] = L\\n data_scheme_beam['x'][1] = pos\\n // unif load\\n data_scheme_q['x'][0] = L\\n data_scheme_q['x'][1] = L\\n data_scheme_q['x'][2] = pos\\n data_scheme_q['x'][3] = pos\\n break\\n default:\\n console.error(\\\"State \\\"+data['state'][0]+\\\" in state machine not implemented\\\")\\n }\\n }\\n \\n \\n function update_reactions(data, glyph_Rx, glyph_Ry_l, glyph_Ry_r, alpha=0.3) {\\n const P = data['P'][0]\\n const L = data['L'][0]*data['SCALE'][0]\\n const Ry_l = data['Ry_l'][0]\\n const Ry_r = data['Ry_r'][0]\\n \\n // update visibility\\n switch(data['state'][0]) {\\n case 'IDLE':\\n arrow_alpha(glyph_Rx) // Rx\\n arrow_alpha(glyph_Ry_l) // Ry left\\n arrow_alpha(glyph_Ry_r) // Ry right\\n break\\n case 'R_SEC':\\n arrow_alpha(glyph_Rx, 1) // Rx\\n arrow_alpha(glyph_Ry_l, 1) // Ry left\\n arrow_alpha(glyph_Ry_r, alpha) // Ry right\\n break\\n case 'L_SEC':\\n arrow_alpha(glyph_Rx, alpha) //Rx\\n arrow_alpha(glyph_Ry_l, alpha) //Ry left\\n arrow_alpha(glyph_Ry_r, 1) // Ry right\\n break\\n default:\\n console.error(\\\"State \\\"+data['state'][0]+\\\" in state machine not implemented\\\")\\n }\\n \\n // update size\\n update_arrow(glyph_Rx, -P, -P, 0, 0, 0) // Rx\\n update_arrow(glyph_Ry_r, Ry_r, L, L, -Ry_r, 0) // Ry right\\n update_arrow(glyph_Ry_l, Ry_l, 0, 0, -Ry_l, 0) // Ry left\\n }\\n \\n \\n function update_external_forces(data, glyph_P, div_P, alpha=0.3) {\\n const P = data['P'][0]\\n const L = data['L'][0]*data['SCALE'][0]\\n \\n // update visibility\\n switch(data['state'][0]) {\\n case 'IDLE':\\n arrow_alpha(glyph_P) // P\\n break\\n case 'R_SEC':\\n arrow_alpha(glyph_P, alpha) // P\\n break\\n case 'L_SEC':\\n arrow_alpha(glyph_P, 1) //P\\n break\\n default:\\n console.error(\\\"State \\\"+data['state'][0]+\\\" in state machine not implemented\\\")\\n }\\n \\n // update size\\n if (P==0) {\\n div_P.text = \\\"Axial force P=0 kN (removed)\\\"\\n update_arrow(glyph_P) // P\\n } else {\\n div_P.text = \\\"Axial force P=\\\"+P+\\\" kN (applied)\\\"\\n update_arrow(glyph_P, P, L+P, L, 0, 0) // P\\n }\\n }\\n \\n \\n function update_div_forces(data, div) {\\n switch(data['state'][0]) {\\n case 'IDLE':\\n var str_sec = \\\"No cross section analysed.\\\"\\n break\\n case 'R_SEC':\\n case 'L_SEC':\\n var str_sec = \\\"Cross section at \\\"+Math.round(data['x'][0]*10)/10+\\\" m.\\\"\\n break\\n default:\\n console.error(\\\"State \\\"+data['state'][0]+\\\" in state machine not implemented\\\")\\n }\\n const P = data['P'][0]\\n const Rx = data['Rx'][0]\\n const Ry_l = Math.round(data['Ry_l'][0]*10)/10\\n const Ry_r = Math.round(data['Ry_r'][0]*10)/10\\n const N = Math.abs(data['N'][0])\\n const V = Math.round(Math.abs(data['V'][0])*10)/10\\n const M = Math.round(data['M'][0]*10)/10\\n \\n div.text = `\\n

Forces and Moments:

\\n P = `+P+` kN
\\n Rx = `+Rx+` kN
\\n Ry (left) = `+Ry_r+` kN
\\n Ry (right) = `+Ry_l+` kN
\\n `+str_sec+`
\\n N = `+N+` kN
\\n V = `+V+` kN
\\n M = `+M+` kNm\\n \\n ` \\n }\\n \\n \\n function linspace(start, stop, discr = 100) {\\n const step = (stop - start) / (discr-1);\\n return Array.from({length: discr}, (_, i) => start + step * i);\\n }\\n \\n \\n function parabola(x, a1, a2, a3) {\\n return Array.from({length: x.length}, (_, i) => a3 * x[i]**2 + a2 * x[i] + a1);\\n }\\n \\n \\n function arrow_alpha(straight_arrow, alpha=1) {\\n straight_arrow.end.line_alpha = alpha\\n straight_arrow.end.fill_alpha = alpha\\n straight_arrow.line_alpha = alpha\\n }\\n \\n \\n function update_arrow(straight_arrow, intensity, x_start=0, x_end=0, y_start=0, y_end=0, AHF=7) {\\n straight_arrow.end.size = arrow_growth(intensity)*AHF\\n straight_arrow.x_start = x_start\\n straight_arrow.x_end = x_end\\n straight_arrow.y_start = y_start\\n straight_arrow.y_end = y_end\\n straight_arrow.line_width = arrow_growth(intensity)\\n }\\n \\n \\n function arrow_growth(variable) {\\n return Math.log(Math.abs(variable)+1)\\n }\\n \\n \\n function update_curvedArrow(a, b, c, pos_x, pos_y, source, arr_head, discr=10, AHF=6) {\\n const data_M = source.data\\n if (c==0) {\\n var a1 = 0\\n var a3 = 0\\n } else {\\n var a1 = b\\n var a3 = (a-b)/c**2\\n }\\n const step = 2*c / (discr-1);\\n const x = Array.from({length: discr}, (_, i) => -c + step * i);\\n const y = Array.from({length: x.length}, (_, i) => a3 * x[i]**2 + a1)\\n var theta = -Math.atan(2/c*(a-b))\\n if (c<0) {\\n theta = theta+Math.PI\\n }\\n data_M['x'] = y.map(y => y+pos_x)\\n data_M['y'] = x.map(x => x+pos_y)\\n \\n arr_head.glyph.size = arrow_growth(2*c)*AHF\\n arr_head.glyph.angle = theta\\n arr_head.glyph.x = y[y.length-1]+pos_x\\n arr_head.glyph.y = x[x.length-1]+pos_y\\n source.change.emit()\\n }\\n \\n \\n function update_NVM_diagram(diagram, y) {\\n const y_ = [...y]\\n const source = diagram.data_source\\n y_.unshift(0)\\n y_.push(0)\\n source.data.y = y_\\n source.change.emit()\\n }\\n \\n \\n function check_state(data) {\\n const FBD = data['FBD'][0]\\n const pos = data['x'][0]\\n const L = data['L'][0]\\n if (FBD == 0 && pos != L) {\\n data['state'][0] = 'R_SEC'\\n } else if (FBD == 1 && pos != 0) {\\n data['state'][0] = 'L_SEC'\\n } else {\\n data['state'][0] = 'IDLE'\\n }\\n }\\n \\n \\n function update_stress_diagram(diagram, x, y) {\\n const x_ = [...x]\\n const y_ = [...y]\\n const source = diagram.data_source\\n x_.unshift(0)\\n x_.push(0)\\n y_.unshift(y[0])\\n y_.push(y[y.length-1])\\n source.data.x = x_\\n source.data.y = y_\\n source.change.emit()\\n }\\n \\n \\n function update_strain_diagram(diagram, x, y) {\\n const source = diagram.data_source\\n source.data.x = x\\n source.data.y = y\\n source.change.emit()\\n }\\n \\n \\n function compute_first_moment_of_area(y, b, h, yG) {\\n return b/2*(h**2/4-(y-yG)**2)\\n }\\n \\n \\n function compute_first_moment_of_area_implicit(y_, data) {\\n return compute_first_moment_of_area(y_, data['b'][0], data['h'][0], data['yG'][0])\\n }\\n \\n \\n function compute_sigma_axial(N, A) {\\n return N*1000/A\\n }\\n \\n \\n function compute_sigma_bending(y, M, Iy, yG) {\\n return M*1e6/Iy*(y-yG)\\n }\\n \\n \\n function compute_tau_shear(V, S, Iy, b_or_t) {\\n return V*1000*S/(Iy*b_or_t)\\n }\\n \\n \\n function compute_epsilon_axial(sigma_axial, E) {\\n return sigma_axial/E*100\\n }\\n \\n \\n function compute_epsilon_bending(sigma_bending, E) {\\n return sigma_bending/E*100\\n }\\n \\n \\n function compute_total_sigma(sigma_axial, sigma_bending) {\\n return sigma_bending+sigma_axial\\n }\\n \\n \\n function compute_total_tau(tau_shear, tau_torsion=0) {\\n return tau_shear + tau_torsion\\n }\\n \\n \\n function compute_neutral_axis(N, A, Iy, M, yG) {\\n if (M == 0) {\\n return yG\\n }\\n else {\\n return yG - N/A*Iy/M/1000\\n }\\n }\\n \\n \\n function update_axial_stress_strain(data, glyph_stress, glyph_strain, discr=201) { \\n // define parameters\\n const h = data['h'][0]\\n const A = data['A'][0]\\n const E = data['E'][0]\\n const N = data['N'][0]\\n const y_discr = linspace(0, h, discr)\\n let sigma_axial = new Array(discr)\\n let strain_axial = new Array(discr)\\n \\n // compute the arrays\\n for (var i = 0; i < discr; i++) {\\n sigma_axial[i] = compute_sigma_axial(N, A)\\n strain_axial[i] = compute_epsilon_axial(sigma_axial[i], E)\\n }\\n \\n // change the diagrams\\n update_stress_diagram(glyph_stress, sigma_axial, y_discr)\\n update_strain_diagram(glyph_strain, strain_axial, y_discr)\\n }\\n \\n \\n function update_bending_stress_strain(data, glyph_stress, glyph_strain, glyph_centroid, discr=201) { \\n // define parameters\\n const h = data['h'][0]\\n const E = data['E'][0]\\n const Iy = data['Iy'][0]\\n const yG = data['yG'][0]\\n const M = data['M'][0]\\n const y_discr = linspace(0, h, discr)\\n let sigma_bending = new Array(discr)\\n let strain_bending = new Array(discr)\\n const src_centroid = glyph_centroid.data_source\\n \\n // apply the changes\\n src_centroid.data.y = [yG, yG]\\n \\n // compute the arrays\\n for (var i = 0; i < discr; i++) {\\n sigma_bending[i] = compute_sigma_bending(y_discr[i], M, Iy, yG)\\n strain_bending[i] = compute_epsilon_bending(sigma_bending[i], E)\\n }\\n \\n // change the diagrams\\n update_stress_diagram(glyph_stress, sigma_bending, y_discr)\\n update_strain_diagram(glyph_strain, strain_bending, y_discr)\\n src_centroid.change.emit()\\n }\\n \\n \\n function update_shear_stress(data, glyph_stress, discr=201) { \\n // define parameters\\n const h = data['h'][0]\\n const b = data['b'][0]\\n const yG = data['yG'][0]\\n const Iy = data['Iy'][0]\\n const V = data['V'][0]\\n const y_discr = linspace(0, h, discr)\\n let tau_shear = new Array(discr)\\n \\n // compute the arrays\\n for (var i = 0; i < discr; i++) {\\n var S = compute_first_moment_of_area_implicit(y_discr[i], data)\\n tau_shear[i] = compute_tau_shear(V, S, Iy, b)\\n }\\n \\n // change the diagrams\\n update_stress_diagram(glyph_stress, tau_shear, y_discr)\\n }\\n \\n \\n function update_total_stress(data, glyph_sigma, glyph_tau, glyph_neutral_axis, discr=201) { \\n // define parameters\\n const h = data['h'][0]\\n const b = data['b'][0]\\n const M = data['M'][0]\\n const N = data['N'][0]\\n const V = data['V'][0]\\n const A = data['A'][0]\\n const Iy = data['Iy'][0]\\n const yG = data['yG'][0]\\n const y_discr = linspace(0, h, discr)\\n const y_n_axis = compute_neutral_axis(N, A, Iy, M, yG)\\n let sigma_bending = new Array(discr)\\n let tau_shear = new Array(discr)\\n let sigma_axial = new Array(discr)\\n let total_sigma = new Array(discr)\\n let total_tau = new Array(discr)\\n const src_n_axis = glyph_neutral_axis.data_source\\n \\n \\n // apply the changes\\n db['y_n_axis'][0] = y_n_axis\\n src_n_axis.data.y = [y_n_axis, y_n_axis]\\n \\n // compute the arrays\\n for (var i = 0; i < discr; i++) {\\n // sigma\\n sigma_axial[i] = compute_sigma_axial(N, A)\\n sigma_bending[i] = compute_sigma_bending(y_discr[i], M, Iy, yG)\\n total_sigma[i] = compute_total_sigma(sigma_axial[i], sigma_bending[i])\\n // tau\\n var S = compute_first_moment_of_area_implicit(y_discr[i], data)\\n tau_shear[i] = compute_tau_shear(V, S, Iy, b)\\n \\n total_tau[i] = compute_total_tau(tau_shear[i])\\n }\\n \\n // change the diagrams\\n update_stress_diagram(glyph_sigma, total_sigma, y_discr)\\n update_stress_diagram(glyph_tau, total_tau, y_discr)\\n src_n_axis.change.emit()\\n }\\n \\n \\n function update_NVM_section(data, glyph_N, glyph_V, glyph_M_head, source_M, label_N_section, label_V_section, label_M_section, lambda=0.25, offset_N=1.5, offset_V=2) {\\n const x = 0\\n const y = 0\\n const N = data['N'][0]\\n const V = data['V'][0]\\n const M = data['M'][0]\\n \\n update_arrow(glyph_N, -N, x-N+offset_N, x+offset_N, y, y)\\n update_arrow(glyph_V, -V, x+offset_V, x+offset_V, y-V/2, y+V/2)\\n var b = 6\\n var c = -M/2*0.8\\n var a = b-lambda*c\\n update_curvedArrow(a, b, c, x, y, source_M, glyph_M_head)\\n \\n if (N==0) {\\n label_N_section.glyph.text=''\\n } else {\\n label_N_section.glyph.text='N'\\n }\\n \\n if (V==0) {\\n label_V_section.glyph.text=''\\n } else {\\n label_V_section.glyph.text='V'\\n }\\n \\n if (M==0) {\\n label_M_section.glyph.text=''\\n } else {\\n label_M_section.glyph.text='M'\\n }\\n }\\n \\n \"},\"id\":\"1899\",\"type\":\"CustomJS\"},{\"attributes\":{\"overlay\":{\"id\":\"1842\"}},\"id\":\"1838\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"bottom_units\":\"screen\",\"coordinates\":null,\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"group\":null,\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"1286\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"line_width\":1.5,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1769\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1839\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"1840\",\"type\":\"ResetTool\"},{\"attributes\":{\"axis_label\":\"Position [m]\",\"coordinates\":null,\"formatter\":{\"id\":\"1962\"},\"group\":null,\"major_label_policy\":{\"id\":\"1963\"},\"ticker\":{\"id\":\"1303\"},\"visible\":false},\"id\":\"1302\",\"type\":\"LinearAxis\"},{\"attributes\":{\"args\":{\"M_stress_diag\":{\"id\":\"1664\"},\"N_stress_diag\":{\"id\":\"1644\"},\"V_stress_diag\":{\"id\":\"1684\"},\"axial_strain_diag\":{\"id\":\"1744\"},\"bending_strain_diag\":{\"id\":\"1766\"},\"centroid\":{\"id\":\"1676\"},\"div\":{\"id\":\"1107\"},\"neutral_axis\":{\"id\":\"1716\"},\"s_b\":{\"id\":\"1003\"},\"s_ss\":{\"id\":\"1006\"},\"section\":{\"id\":\"1105\"},\"sigma_stress_diag\":{\"id\":\"1704\"},\"source\":{\"id\":\"1007\"},\"support_r\":{\"id\":\"1099\"},\"tau_stress_diag\":{\"id\":\"1724\"}},\"code\":\"\\n // retrieve data used\\n const db = source.data\\n const data_ss = s_ss.data\\n const b = db['b'][0]\\n const h = cb_obj.value // value of the slider\\n const A = compute_area(b, h)\\n const Iy = compute_inertia_y(b, h)\\n const N = db['N'][0]\\n const M = db['M'][0]\\n const yG = compute_centroid_y(h)\\n\\n // apply the changes\\n db['h'][0] = h\\n db['A'][0] = A\\n db['Iy'][0] = Iy\\n db['Iz'][0] = compute_inertia_z(b, h)\\n db['yG'][0] = yG\\n db['y_n_axis'][0] = compute_neutral_axis(N, A, Iy, M, yG)\\n data_ss['y'][1] = h // change the height of the section in the diagrams\\n\\n // update\\n update_div_geo(db, div)\\n update_section(db, section)\\n update_axial_stress_strain(db, N_stress_diag, axial_strain_diag)\\n update_bending_stress_strain(db, M_stress_diag, bending_strain_diag, centroid)\\n update_shear_stress(db, V_stress_diag)\\n update_total_stress(db, sigma_stress_diag, tau_stress_diag, neutral_axis)\\n\\n // emit the changes\\n source.change.emit()\\n s_ss.change.emit()\\n\\n \\n function update_div_geo(data, div) {\\n // compute the parameters and dimensions\\n const L = Math.round(data['L'][0]*10)/10\\n const b = Math.round(data['b'][0])\\n const h = Math.round(data['h'][0])\\n const A = data['A'][0]\\n const Iy = data['Iy'][0]\\n const Iz = data['Iz'][0]\\n // change the div text\\n div.text = `\\n

Geometrical and mechanical parameters:

\\n h = `+h+` mm
\\n b = `+b+` mm
\\n L = `+L+` m
\\n A = `+A.toExponential(2)+` mm2
\\n Iy = `+Iy.toExponential(2)+` mm4
\\n Iz = `+Iz.toExponential(2)+` mm4` \\n }\\n \\n \\n function update_section(data, glyph_section) {\\n // change the plot of the section\\n glyph_section.glyph.width = data['b'][0]\\n glyph_section.glyph.height = data['h'][0]\\n }\\n \\n \\n function compute_area(b, h) {\\n return b*h\\n }\\n \\n \\n function compute_inertia_y(b, h) {\\n return b*h**3/12\\n }\\n \\n \\n function compute_inertia_z(b, h) {\\n return h*b**3/12\\n }\\n \\n \\n function compute_centroid_y(h) {\\n return h/2\\n }\\n \\n \\n function compute_neutral_axis(N, A, Iy, M, yG) {\\n if (M == 0) {\\n return yG\\n }\\n else {\\n return yG - N/A*Iy/M/1000\\n }\\n }\\n \\n \\n function update_axial_stress_strain(data, glyph_stress, glyph_strain, discr=201) { \\n // define parameters\\n const h = data['h'][0]\\n const A = data['A'][0]\\n const E = data['E'][0]\\n const N = data['N'][0]\\n const y_discr = linspace(0, h, discr)\\n let sigma_axial = new Array(discr)\\n let strain_axial = new Array(discr)\\n \\n // compute the arrays\\n for (var i = 0; i < discr; i++) {\\n sigma_axial[i] = compute_sigma_axial(N, A)\\n strain_axial[i] = compute_epsilon_axial(sigma_axial[i], E)\\n }\\n \\n // change the diagrams\\n update_stress_diagram(glyph_stress, sigma_axial, y_discr)\\n update_strain_diagram(glyph_strain, strain_axial, y_discr)\\n }\\n \\n \\n function update_bending_stress_strain(data, glyph_stress, glyph_strain, glyph_centroid, discr=201) { \\n // define parameters\\n const h = data['h'][0]\\n const E = data['E'][0]\\n const Iy = data['Iy'][0]\\n const yG = data['yG'][0]\\n const M = data['M'][0]\\n const y_discr = linspace(0, h, discr)\\n let sigma_bending = new Array(discr)\\n let strain_bending = new Array(discr)\\n const src_centroid = glyph_centroid.data_source\\n \\n // apply the changes\\n src_centroid.data.y = [yG, yG]\\n \\n // compute the arrays\\n for (var i = 0; i < discr; i++) {\\n sigma_bending[i] = compute_sigma_bending(y_discr[i], M, Iy, yG)\\n strain_bending[i] = compute_epsilon_bending(sigma_bending[i], E)\\n }\\n \\n // change the diagrams\\n update_stress_diagram(glyph_stress, sigma_bending, y_discr)\\n update_strain_diagram(glyph_strain, strain_bending, y_discr)\\n src_centroid.change.emit()\\n }\\n \\n \\n function update_shear_stress(data, glyph_stress, discr=201) { \\n // define parameters\\n const h = data['h'][0]\\n const b = data['b'][0]\\n const yG = data['yG'][0]\\n const Iy = data['Iy'][0]\\n const V = data['V'][0]\\n const y_discr = linspace(0, h, discr)\\n let tau_shear = new Array(discr)\\n \\n // compute the arrays\\n for (var i = 0; i < discr; i++) {\\n var S = compute_first_moment_of_area_implicit(y_discr[i], data)\\n tau_shear[i] = compute_tau_shear(V, S, Iy, b)\\n }\\n \\n // change the diagrams\\n update_stress_diagram(glyph_stress, tau_shear, y_discr)\\n }\\n \\n \\n function update_total_stress(data, glyph_sigma, glyph_tau, glyph_neutral_axis, discr=201) { \\n // define parameters\\n const h = data['h'][0]\\n const b = data['b'][0]\\n const M = data['M'][0]\\n const N = data['N'][0]\\n const V = data['V'][0]\\n const A = data['A'][0]\\n const Iy = data['Iy'][0]\\n const yG = data['yG'][0]\\n const y_discr = linspace(0, h, discr)\\n const y_n_axis = compute_neutral_axis(N, A, Iy, M, yG)\\n let sigma_bending = new Array(discr)\\n let tau_shear = new Array(discr)\\n let sigma_axial = new Array(discr)\\n let total_sigma = new Array(discr)\\n let total_tau = new Array(discr)\\n const src_n_axis = glyph_neutral_axis.data_source\\n \\n \\n // apply the changes\\n db['y_n_axis'][0] = y_n_axis\\n src_n_axis.data.y = [y_n_axis, y_n_axis]\\n \\n // compute the arrays\\n for (var i = 0; i < discr; i++) {\\n // sigma\\n sigma_axial[i] = compute_sigma_axial(N, A)\\n sigma_bending[i] = compute_sigma_bending(y_discr[i], M, Iy, yG)\\n total_sigma[i] = compute_total_sigma(sigma_axial[i], sigma_bending[i])\\n // tau\\n var S = compute_first_moment_of_area_implicit(y_discr[i], data)\\n tau_shear[i] = compute_tau_shear(V, S, Iy, b)\\n \\n total_tau[i] = compute_total_tau(tau_shear[i])\\n }\\n \\n // change the diagrams\\n update_stress_diagram(glyph_sigma, total_sigma, y_discr)\\n update_stress_diagram(glyph_tau, total_tau, y_discr)\\n src_n_axis.change.emit()\\n }\\n \\n \\n function linspace(start, stop, discr = 100) {\\n const step = (stop - start) / (discr-1);\\n return Array.from({length: discr}, (_, i) => start + step * i);\\n }\\n \\n \\n function compute_epsilon_axial(sigma_axial, E) {\\n return sigma_axial/E*100\\n }\\n \\n \\n function compute_epsilon_bending(sigma_bending, E) {\\n return sigma_bending/E*100\\n }\\n \\n \\n function compute_sigma_axial(N, A) {\\n return N*1000/A\\n }\\n \\n \\n function update_stress_diagram(diagram, x, y) {\\n const x_ = [...x]\\n const y_ = [...y]\\n const source = diagram.data_source\\n x_.unshift(0)\\n x_.push(0)\\n y_.unshift(y[0])\\n y_.push(y[y.length-1])\\n source.data.x = x_\\n source.data.y = y_\\n source.change.emit()\\n }\\n \\n \\n function update_strain_diagram(diagram, x, y) {\\n const source = diagram.data_source\\n source.data.x = x\\n source.data.y = y\\n source.change.emit()\\n }\\n \\n \\n function compute_sigma_bending(y, M, Iy, yG) {\\n return M*1e6/Iy*(y-yG)\\n }\\n \\n \\n function compute_total_sigma(sigma_axial, sigma_bending) {\\n return sigma_bending+sigma_axial\\n }\\n \\n \\n function compute_total_tau(tau_shear, tau_torsion=0) {\\n return tau_shear + tau_torsion\\n }\\n \\n \\n function compute_first_moment_of_area(y, b, h, yG) {\\n return b/2*(h**2/4-(y-yG)**2)\\n }\\n \\n \\n function compute_first_moment_of_area_implicit(y_, data) {\\n return compute_first_moment_of_area(y_, data['b'][0], data['h'][0], data['yG'][0])\\n }\\n \\n \\n function compute_tau_shear(V, S, Iy, b_or_t) {\\n return V*1000*S/(Iy*b_or_t)\\n }\\n \\n \"},\"id\":\"1901\",\"type\":\"CustomJS\"},{\"attributes\":{\"bottom_units\":\"screen\",\"coordinates\":null,\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"group\":null,\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"1033\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"source\":{\"id\":\"1774\"}},\"id\":\"1779\",\"type\":\"CDSView\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1776\",\"type\":\"Line\"},{\"attributes\":{\"args\":{\"N_diag\":{\"id\":\"1358\"},\"N_stress_diag\":{\"id\":\"1644\"},\"arr_head\":{\"id\":\"1253\"},\"axial_strain_diag\":{\"id\":\"1744\"},\"div_P\":{\"id\":\"1259\"},\"div_f\":{\"id\":\"1261\"},\"fN\":{\"id\":\"1237\"},\"fP\":{\"id\":\"1225\"},\"fRx\":{\"id\":\"1234\"},\"fRyl\":{\"id\":\"1231\"},\"fRyr\":{\"id\":\"1228\"},\"fV\":{\"id\":\"1240\"},\"label_M_section\":{\"id\":\"1891\"},\"label_N_section\":{\"id\":\"1885\"},\"label_V_section\":{\"id\":\"1897\"},\"neutral_axis\":{\"id\":\"1716\"},\"s_M\":{\"id\":\"1242\"},\"s_section_M\":{\"id\":\"1868\"},\"section_M_head\":{\"id\":\"1879\"},\"section_N\":{\"id\":\"1863\"},\"section_V\":{\"id\":\"1866\"},\"sigma_stress_diag\":{\"id\":\"1704\"},\"source\":{\"id\":\"1007\"},\"tau_stress_diag\":{\"id\":\"1724\"}},\"code\":\"\\n // retrieve var from the object that uses callback\\n var f = cb_obj.active // checkbox P\\n if (f.length==0) f = [1]\\n const db = source.data\\n\\n // apply the changes\\n db['P'][0] = 10*(1-f)\\n db['N'][0] = compute_N(db['P'][0])\\n db['Rx'][0] = compute_Rx(db['P'][0])\\n\\n // update\\n update_reactions(db, fRx, fRyl, fRyr)\\n update_external_forces(db, fP, div_P)\\n update_N_diagram(db, N_diag)\\n update_internal_forces(db, fN, fV, arr_head, s_M)\\n update_div_forces(db, div_f)\\n update_axial_stress_strain(db, N_stress_diag, axial_strain_diag)\\n update_total_stress(db, sigma_stress_diag, tau_stress_diag, neutral_axis)\\n update_NVM_section(db, section_N, section_V, section_M_head, s_section_M, label_N_section, label_V_section, label_M_section)\\n\\n // emit the changes\\n source.change.emit()\\n\\n // declare functions\\n \\n function update_external_forces(data, glyph_P, div_P, alpha=0.3) {\\n const P = data['P'][0]\\n const L = data['L'][0]*data['SCALE'][0]\\n \\n // update visibility\\n switch(data['state'][0]) {\\n case 'IDLE':\\n arrow_alpha(glyph_P) // P\\n break\\n case 'R_SEC':\\n arrow_alpha(glyph_P, alpha) // P\\n break\\n case 'L_SEC':\\n arrow_alpha(glyph_P, 1) //P\\n break\\n default:\\n console.error(\\\"State \\\"+data['state'][0]+\\\" in state machine not implemented\\\")\\n }\\n \\n // update size\\n if (P==0) {\\n div_P.text = \\\"Axial force P=0 kN (removed)\\\"\\n update_arrow(glyph_P) // P\\n } else {\\n div_P.text = \\\"Axial force P=\\\"+P+\\\" kN (applied)\\\"\\n update_arrow(glyph_P, P, L+P, L, 0, 0) // P\\n }\\n }\\n \\n \\n function update_reactions(data, glyph_Rx, glyph_Ry_l, glyph_Ry_r, alpha=0.3) {\\n const P = data['P'][0]\\n const L = data['L'][0]*data['SCALE'][0]\\n const Ry_l = data['Ry_l'][0]\\n const Ry_r = data['Ry_r'][0]\\n \\n // update visibility\\n switch(data['state'][0]) {\\n case 'IDLE':\\n arrow_alpha(glyph_Rx) // Rx\\n arrow_alpha(glyph_Ry_l) // Ry left\\n arrow_alpha(glyph_Ry_r) // Ry right\\n break\\n case 'R_SEC':\\n arrow_alpha(glyph_Rx, 1) // Rx\\n arrow_alpha(glyph_Ry_l, 1) // Ry left\\n arrow_alpha(glyph_Ry_r, alpha) // Ry right\\n break\\n case 'L_SEC':\\n arrow_alpha(glyph_Rx, alpha) //Rx\\n arrow_alpha(glyph_Ry_l, alpha) //Ry left\\n arrow_alpha(glyph_Ry_r, 1) // Ry right\\n break\\n default:\\n console.error(\\\"State \\\"+data['state'][0]+\\\" in state machine not implemented\\\")\\n }\\n \\n // update size\\n update_arrow(glyph_Rx, -P, -P, 0, 0, 0) // Rx\\n update_arrow(glyph_Ry_r, Ry_r, L, L, -Ry_r, 0) // Ry right\\n update_arrow(glyph_Ry_l, Ry_l, 0, 0, -Ry_l, 0) // Ry left\\n }\\n \\n \\n function compute_Rx(P) {\\n return P\\n }\\n \\n \\n function update_arrow(straight_arrow, intensity, x_start=0, x_end=0, y_start=0, y_end=0, AHF=7) {\\n straight_arrow.end.size = arrow_growth(intensity)*AHF\\n straight_arrow.x_start = x_start\\n straight_arrow.x_end = x_end\\n straight_arrow.y_start = y_start\\n straight_arrow.y_end = y_end\\n straight_arrow.line_width = arrow_growth(intensity)\\n }\\n \\n \\n function arrow_alpha(straight_arrow, alpha=1) {\\n straight_arrow.end.line_alpha = alpha\\n straight_arrow.end.fill_alpha = alpha\\n straight_arrow.line_alpha = alpha\\n }\\n \\n \\n function update_NVM_diagram(diagram, y) {\\n const y_ = [...y]\\n const source = diagram.data_source\\n y_.unshift(0)\\n y_.push(0)\\n source.data.y = y_\\n source.change.emit()\\n }\\n \\n \\n function compute_N(P) {\\n return -P\\n }\\n \\n \\n function update_N_diagram(data, glyph, discr=101) {\\n const P = data['P'][0]\\n const N_discr = Array.from({length: discr}, (_, i) => compute_N(P))\\n update_NVM_diagram(glyph, N_discr)\\n }\\n \\n \\n function update_internal_forces(data, glyph_N, glyph_V, glyph_M_head, source_M, lambda=0.25, offset_N=1.5, offset_V=1) {\\n const pos = data['x'][0]\\n const SCALE = data['SCALE'][0]\\n const N = data['N'][0]\\n const V = data['V'][0]\\n const M = data['M'][0]\\n switch(data['state'][0]) {\\n case 'IDLE':\\n // internal forces\\n update_arrow(glyph_N)\\n update_arrow(glyph_V)\\n update_curvedArrow(0, 0, 0, 0, 0, source_M, glyph_M_head)\\n break;\\n case 'R_SEC':\\n // internal forces\\n update_arrow(glyph_N, -N, pos*SCALE-N+offset_N, pos*SCALE+offset_N, 0, 0)\\n update_arrow(glyph_V, -V, pos*SCALE+offset_V, pos*SCALE+offset_V, -V/2, V/2)\\n var b = 6\\n var c = -M/2*0.8\\n var a = b-lambda*c\\n update_curvedArrow(a, b, c, pos*SCALE, 0, source_M, glyph_M_head)\\n break;\\n case 'L_SEC':\\n // internal forces\\n update_arrow(glyph_N, N, pos*SCALE+N-offset_N, pos*SCALE-offset_N, 0, 0)\\n update_arrow(glyph_V, V, pos*SCALE-offset_V, pos*SCALE-offset_V, V/2, -V/2)\\n var b = -6\\n var c = -M/2*0.8\\n var a = b+lambda*c\\n update_curvedArrow(a, b, c, pos*SCALE, 0, source_M, glyph_M_head)\\n break;\\n default:\\n console.error(\\\"State \\\"+data['state'][0]+\\\" in state machine not implemented\\\")\\n }\\n }\\n \\n \\n function update_curvedArrow(a, b, c, pos_x, pos_y, source, arr_head, discr=10, AHF=6) {\\n const data_M = source.data\\n if (c==0) {\\n var a1 = 0\\n var a3 = 0\\n } else {\\n var a1 = b\\n var a3 = (a-b)/c**2\\n }\\n const step = 2*c / (discr-1);\\n const x = Array.from({length: discr}, (_, i) => -c + step * i);\\n const y = Array.from({length: x.length}, (_, i) => a3 * x[i]**2 + a1)\\n var theta = -Math.atan(2/c*(a-b))\\n if (c<0) {\\n theta = theta+Math.PI\\n }\\n data_M['x'] = y.map(y => y+pos_x)\\n data_M['y'] = x.map(x => x+pos_y)\\n \\n arr_head.glyph.size = arrow_growth(2*c)*AHF\\n arr_head.glyph.angle = theta\\n arr_head.glyph.x = y[y.length-1]+pos_x\\n arr_head.glyph.y = x[x.length-1]+pos_y\\n source.change.emit()\\n }\\n \\n \\n function update_axial_stress_strain(data, glyph_stress, glyph_strain, discr=201) { \\n // define parameters\\n const h = data['h'][0]\\n const A = data['A'][0]\\n const E = data['E'][0]\\n const N = data['N'][0]\\n const y_discr = linspace(0, h, discr)\\n let sigma_axial = new Array(discr)\\n let strain_axial = new Array(discr)\\n \\n // compute the arrays\\n for (var i = 0; i < discr; i++) {\\n sigma_axial[i] = compute_sigma_axial(N, A)\\n strain_axial[i] = compute_epsilon_axial(sigma_axial[i], E)\\n }\\n \\n // change the diagrams\\n update_stress_diagram(glyph_stress, sigma_axial, y_discr)\\n update_strain_diagram(glyph_strain, strain_axial, y_discr)\\n }\\n \\n \\n function update_total_stress(data, glyph_sigma, glyph_tau, glyph_neutral_axis, discr=201) { \\n // define parameters\\n const h = data['h'][0]\\n const b = data['b'][0]\\n const M = data['M'][0]\\n const N = data['N'][0]\\n const V = data['V'][0]\\n const A = data['A'][0]\\n const Iy = data['Iy'][0]\\n const yG = data['yG'][0]\\n const y_discr = linspace(0, h, discr)\\n const y_n_axis = compute_neutral_axis(N, A, Iy, M, yG)\\n let sigma_bending = new Array(discr)\\n let tau_shear = new Array(discr)\\n let sigma_axial = new Array(discr)\\n let total_sigma = new Array(discr)\\n let total_tau = new Array(discr)\\n const src_n_axis = glyph_neutral_axis.data_source\\n \\n \\n // apply the changes\\n db['y_n_axis'][0] = y_n_axis\\n src_n_axis.data.y = [y_n_axis, y_n_axis]\\n \\n // compute the arrays\\n for (var i = 0; i < discr; i++) {\\n // sigma\\n sigma_axial[i] = compute_sigma_axial(N, A)\\n sigma_bending[i] = compute_sigma_bending(y_discr[i], M, Iy, yG)\\n total_sigma[i] = compute_total_sigma(sigma_axial[i], sigma_bending[i])\\n // tau\\n var S = compute_first_moment_of_area_implicit(y_discr[i], data)\\n tau_shear[i] = compute_tau_shear(V, S, Iy, b)\\n \\n total_tau[i] = compute_total_tau(tau_shear[i])\\n }\\n \\n // change the diagrams\\n update_stress_diagram(glyph_sigma, total_sigma, y_discr)\\n update_stress_diagram(glyph_tau, total_tau, y_discr)\\n src_n_axis.change.emit()\\n }\\n \\n \\n function linspace(start, stop, discr = 100) {\\n const step = (stop - start) / (discr-1);\\n return Array.from({length: discr}, (_, i) => start + step * i);\\n }\\n \\n \\n function compute_epsilon_axial(sigma_axial, E) {\\n return sigma_axial/E*100\\n }\\n \\n \\n function compute_sigma_axial(N, A) {\\n return N*1000/A\\n }\\n \\n \\n function update_stress_diagram(diagram, x, y) {\\n const x_ = [...x]\\n const y_ = [...y]\\n const source = diagram.data_source\\n x_.unshift(0)\\n x_.push(0)\\n y_.unshift(y[0])\\n y_.push(y[y.length-1])\\n source.data.x = x_\\n source.data.y = y_\\n source.change.emit()\\n }\\n \\n \\n function update_strain_diagram(diagram, x, y) {\\n const source = diagram.data_source\\n source.data.x = x\\n source.data.y = y\\n source.change.emit()\\n }\\n \\n \\n function compute_neutral_axis(N, A, Iy, M, yG) {\\n if (M == 0) {\\n return yG\\n }\\n else {\\n return yG - N/A*Iy/M/1000\\n }\\n }\\n \\n \\n function compute_sigma_bending(y, M, Iy, yG) {\\n return M*1e6/Iy*(y-yG)\\n }\\n \\n \\n function compute_total_sigma(sigma_axial, sigma_bending) {\\n return sigma_bending+sigma_axial\\n }\\n \\n \\n function compute_total_tau(tau_shear, tau_torsion=0) {\\n return tau_shear + tau_torsion\\n }\\n \\n \\n function compute_first_moment_of_area(y, b, h, yG) {\\n return b/2*(h**2/4-(y-yG)**2)\\n }\\n \\n \\n function compute_first_moment_of_area_implicit(y_, data) {\\n return compute_first_moment_of_area(y_, data['b'][0], data['h'][0], data['yG'][0])\\n }\\n \\n \\n function compute_tau_shear(V, S, Iy, b_or_t) {\\n return V*1000*S/(Iy*b_or_t)\\n }\\n \\n \\n function update_div_forces(data, div) {\\n switch(data['state'][0]) {\\n case 'IDLE':\\n var str_sec = \\\"No cross section analysed.\\\"\\n break\\n case 'R_SEC':\\n case 'L_SEC':\\n var str_sec = \\\"Cross section at \\\"+Math.round(data['x'][0]*10)/10+\\\" m.\\\"\\n break\\n default:\\n console.error(\\\"State \\\"+data['state'][0]+\\\" in state machine not implemented\\\")\\n }\\n const P = data['P'][0]\\n const Rx = data['Rx'][0]\\n const Ry_l = Math.round(data['Ry_l'][0]*10)/10\\n const Ry_r = Math.round(data['Ry_r'][0]*10)/10\\n const N = Math.abs(data['N'][0])\\n const V = Math.round(Math.abs(data['V'][0])*10)/10\\n const M = Math.round(data['M'][0]*10)/10\\n \\n div.text = `\\n

Forces and Moments:

\\n P = `+P+` kN
\\n Rx = `+Rx+` kN
\\n Ry (left) = `+Ry_r+` kN
\\n Ry (right) = `+Ry_l+` kN
\\n `+str_sec+`
\\n N = `+N+` kN
\\n V = `+V+` kN
\\n M = `+M+` kNm\\n \\n ` \\n }\\n \\n \\n function update_NVM_section(data, glyph_N, glyph_V, glyph_M_head, source_M, label_N_section, label_V_section, label_M_section, lambda=0.25, offset_N=1.5, offset_V=2) {\\n const x = 0\\n const y = 0\\n const N = data['N'][0]\\n const V = data['V'][0]\\n const M = data['M'][0]\\n \\n update_arrow(glyph_N, -N, x-N+offset_N, x+offset_N, y, y)\\n update_arrow(glyph_V, -V, x+offset_V, x+offset_V, y-V/2, y+V/2)\\n var b = 6\\n var c = -M/2*0.8\\n var a = b-lambda*c\\n update_curvedArrow(a, b, c, x, y, source_M, glyph_M_head)\\n \\n if (N==0) {\\n label_N_section.glyph.text=''\\n } else {\\n label_N_section.glyph.text='N'\\n }\\n \\n if (V==0) {\\n label_V_section.glyph.text=''\\n } else {\\n label_V_section.glyph.text='V'\\n }\\n \\n if (M==0) {\\n label_M_section.glyph.text=''\\n } else {\\n label_M_section.glyph.text='M'\\n }\\n }\\n \\n \\n function arrow_growth(variable) {\\n return Math.log(Math.abs(variable)+1)\\n }\\n \\n \"},\"id\":\"1902\",\"type\":\"CustomJS\"},{\"attributes\":{\"line_alpha\":0,\"line_color\":\"#1f77b4\",\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1775\",\"type\":\"Line\"},{\"attributes\":{\"bottom_units\":\"screen\",\"coordinates\":null,\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"group\":null,\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"1842\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"1313\",\"type\":\"SaveTool\"},{\"attributes\":{\"args\":{\"arr_head\":{\"id\":\"1253\"},\"div_P\":{\"id\":\"1259\"},\"fN\":{\"id\":\"1237\"},\"fP\":{\"id\":\"1225\"},\"fRx\":{\"id\":\"1234\"},\"fRyl\":{\"id\":\"1231\"},\"fRyr\":{\"id\":\"1228\"},\"fV\":{\"id\":\"1240\"},\"label_M_section\":{\"id\":\"1891\"},\"label_N_section\":{\"id\":\"1885\"},\"label_V_section\":{\"id\":\"1897\"},\"s_M\":{\"id\":\"1242\"},\"s_q\":{\"id\":\"1005\"},\"s_sb\":{\"id\":\"1004\"},\"s_section_M\":{\"id\":\"1868\"},\"section_M_head\":{\"id\":\"1879\"},\"section_N\":{\"id\":\"1863\"},\"section_V\":{\"id\":\"1866\"},\"source\":{\"id\":\"1007\"},\"tau_stress_diag\":{\"id\":\"1724\"}},\"code\":\"\\n // retrieve data\\n const db = source.data\\n const FBD = cb_obj.active\\n const data_sb = s_sb.data\\n const data_q = s_q.data\\n const pos = db['x'][0]\\n\\n // apply the changes\\n db['FBD'][0] = FBD\\n\\n // update\\n check_state(db)\\n update_internal_forces(db, fN, fV, arr_head, s_M)\\n update_scheme_position(db, data_sb, data_q)\\n update_reactions(db, fRx, fRyl, fRyr)\\n update_external_forces(db, fP, div_P)\\n update_NVM_section(db, section_N, section_V, section_M_head, s_section_M, label_N_section, label_V_section, label_M_section)\\n\\n // emit the changes\\n source.change.emit()\\n s_sb.change.emit()\\n s_q.change.emit()\\n\\n \\n function check_state(data) {\\n const FBD = data['FBD'][0]\\n const pos = data['x'][0]\\n const L = data['L'][0]\\n if (FBD == 0 && pos != L) {\\n data['state'][0] = 'R_SEC'\\n } else if (FBD == 1 && pos != 0) {\\n data['state'][0] = 'L_SEC'\\n } else {\\n data['state'][0] = 'IDLE'\\n }\\n }\\n \\n \\n function update_internal_forces(data, glyph_N, glyph_V, glyph_M_head, source_M, lambda=0.25, offset_N=1.5, offset_V=1) {\\n const pos = data['x'][0]\\n const SCALE = data['SCALE'][0]\\n const N = data['N'][0]\\n const V = data['V'][0]\\n const M = data['M'][0]\\n switch(data['state'][0]) {\\n case 'IDLE':\\n // internal forces\\n update_arrow(glyph_N)\\n update_arrow(glyph_V)\\n update_curvedArrow(0, 0, 0, 0, 0, source_M, glyph_M_head)\\n break;\\n case 'R_SEC':\\n // internal forces\\n update_arrow(glyph_N, -N, pos*SCALE-N+offset_N, pos*SCALE+offset_N, 0, 0)\\n update_arrow(glyph_V, -V, pos*SCALE+offset_V, pos*SCALE+offset_V, -V/2, V/2)\\n var b = 6\\n var c = -M/2*0.8\\n var a = b-lambda*c\\n update_curvedArrow(a, b, c, pos*SCALE, 0, source_M, glyph_M_head)\\n break;\\n case 'L_SEC':\\n // internal forces\\n update_arrow(glyph_N, N, pos*SCALE+N-offset_N, pos*SCALE-offset_N, 0, 0)\\n update_arrow(glyph_V, V, pos*SCALE-offset_V, pos*SCALE-offset_V, V/2, -V/2)\\n var b = -6\\n var c = -M/2*0.8\\n var a = b+lambda*c\\n update_curvedArrow(a, b, c, pos*SCALE, 0, source_M, glyph_M_head)\\n break;\\n default:\\n console.error(\\\"State \\\"+data['state'][0]+\\\" in state machine not implemented\\\")\\n }\\n }\\n \\n \\n function update_scheme_position(data, data_scheme_beam, data_scheme_q) {\\n const L = data['L'][0]*data['SCALE'][0]\\n const pos = data['x'][0]*data['SCALE'][0]\\n \\n // move position of the point\\n data['xF'][0] = pos\\n \\n switch(data['state'][0]) {\\n case 'IDLE':\\n // beam\\n data_scheme_beam['x'][0] = 0\\n data_scheme_beam['x'][1] = L\\n // unif load\\n data_scheme_q['x'][0] = 0\\n data_scheme_q['x'][1] = 0\\n data_scheme_q['x'][2] = L\\n data_scheme_q['x'][3] = L\\n break\\n case 'R_SEC':\\n // beam\\n data_scheme_beam['x'][0] = 0\\n data_scheme_beam['x'][1] = pos\\n // unif load\\n data_scheme_q['x'][0] = 0\\n data_scheme_q['x'][1] = 0\\n data_scheme_q['x'][2] = pos\\n data_scheme_q['x'][3] = pos\\n break\\n case 'L_SEC':\\n // beam\\n data_scheme_beam['x'][0] = L\\n data_scheme_beam['x'][1] = pos\\n // unif load\\n data_scheme_q['x'][0] = L\\n data_scheme_q['x'][1] = L\\n data_scheme_q['x'][2] = pos\\n data_scheme_q['x'][3] = pos\\n break\\n default:\\n console.error(\\\"State \\\"+data['state'][0]+\\\" in state machine not implemented\\\")\\n }\\n }\\n \\n \\n function update_curvedArrow(a, b, c, pos_x, pos_y, source, arr_head, discr=10, AHF=6) {\\n const data_M = source.data\\n if (c==0) {\\n var a1 = 0\\n var a3 = 0\\n } else {\\n var a1 = b\\n var a3 = (a-b)/c**2\\n }\\n const step = 2*c / (discr-1);\\n const x = Array.from({length: discr}, (_, i) => -c + step * i);\\n const y = Array.from({length: x.length}, (_, i) => a3 * x[i]**2 + a1)\\n var theta = -Math.atan(2/c*(a-b))\\n if (c<0) {\\n theta = theta+Math.PI\\n }\\n data_M['x'] = y.map(y => y+pos_x)\\n data_M['y'] = x.map(x => x+pos_y)\\n \\n arr_head.glyph.size = arrow_growth(2*c)*AHF\\n arr_head.glyph.angle = theta\\n arr_head.glyph.x = y[y.length-1]+pos_x\\n arr_head.glyph.y = x[x.length-1]+pos_y\\n source.change.emit()\\n }\\n \\n \\n function update_arrow(straight_arrow, intensity, x_start=0, x_end=0, y_start=0, y_end=0, AHF=7) {\\n straight_arrow.end.size = arrow_growth(intensity)*AHF\\n straight_arrow.x_start = x_start\\n straight_arrow.x_end = x_end\\n straight_arrow.y_start = y_start\\n straight_arrow.y_end = y_end\\n straight_arrow.line_width = arrow_growth(intensity)\\n }\\n \\n \\n function update_reactions(data, glyph_Rx, glyph_Ry_l, glyph_Ry_r, alpha=0.3) {\\n const P = data['P'][0]\\n const L = data['L'][0]*data['SCALE'][0]\\n const Ry_l = data['Ry_l'][0]\\n const Ry_r = data['Ry_r'][0]\\n \\n // update visibility\\n switch(data['state'][0]) {\\n case 'IDLE':\\n arrow_alpha(glyph_Rx) // Rx\\n arrow_alpha(glyph_Ry_l) // Ry left\\n arrow_alpha(glyph_Ry_r) // Ry right\\n break\\n case 'R_SEC':\\n arrow_alpha(glyph_Rx, 1) // Rx\\n arrow_alpha(glyph_Ry_l, 1) // Ry left\\n arrow_alpha(glyph_Ry_r, alpha) // Ry right\\n break\\n case 'L_SEC':\\n arrow_alpha(glyph_Rx, alpha) //Rx\\n arrow_alpha(glyph_Ry_l, alpha) //Ry left\\n arrow_alpha(glyph_Ry_r, 1) // Ry right\\n break\\n default:\\n console.error(\\\"State \\\"+data['state'][0]+\\\" in state machine not implemented\\\")\\n }\\n \\n // update size\\n update_arrow(glyph_Rx, -P, -P, 0, 0, 0) // Rx\\n update_arrow(glyph_Ry_r, Ry_r, L, L, -Ry_r, 0) // Ry right\\n update_arrow(glyph_Ry_l, Ry_l, 0, 0, -Ry_l, 0) // Ry left\\n }\\n \\n \\n function update_external_forces(data, glyph_P, div_P, alpha=0.3) {\\n const P = data['P'][0]\\n const L = data['L'][0]*data['SCALE'][0]\\n \\n // update visibility\\n switch(data['state'][0]) {\\n case 'IDLE':\\n arrow_alpha(glyph_P) // P\\n break\\n case 'R_SEC':\\n arrow_alpha(glyph_P, alpha) // P\\n break\\n case 'L_SEC':\\n arrow_alpha(glyph_P, 1) //P\\n break\\n default:\\n console.error(\\\"State \\\"+data['state'][0]+\\\" in state machine not implemented\\\")\\n }\\n \\n // update size\\n if (P==0) {\\n div_P.text = \\\"Axial force P=0 kN (removed)\\\"\\n update_arrow(glyph_P) // P\\n } else {\\n div_P.text = \\\"Axial force P=\\\"+P+\\\" kN (applied)\\\"\\n update_arrow(glyph_P, P, L+P, L, 0, 0) // P\\n }\\n }\\n \\n \\n function arrow_alpha(straight_arrow, alpha=1) {\\n straight_arrow.end.line_alpha = alpha\\n straight_arrow.end.fill_alpha = alpha\\n straight_arrow.line_alpha = alpha\\n }\\n \\n \\n function update_NVM_section(data, glyph_N, glyph_V, glyph_M_head, source_M, label_N_section, label_V_section, label_M_section, lambda=0.25, offset_N=1.5, offset_V=2) {\\n const x = 0\\n const y = 0\\n const N = data['N'][0]\\n const V = data['V'][0]\\n const M = data['M'][0]\\n \\n update_arrow(glyph_N, -N, x-N+offset_N, x+offset_N, y, y)\\n update_arrow(glyph_V, -V, x+offset_V, x+offset_V, y-V/2, y+V/2)\\n var b = 6\\n var c = -M/2*0.8\\n var a = b-lambda*c\\n update_curvedArrow(a, b, c, x, y, source_M, glyph_M_head)\\n \\n if (N==0) {\\n label_N_section.glyph.text=''\\n } else {\\n label_N_section.glyph.text='N'\\n }\\n \\n if (V==0) {\\n label_V_section.glyph.text=''\\n } else {\\n label_V_section.glyph.text='V'\\n }\\n \\n if (M==0) {\\n label_M_section.glyph.text=''\\n } else {\\n label_M_section.glyph.text='M'\\n }\\n }\\n \\n \\n function arrow_growth(variable) {\\n return Math.log(Math.abs(variable)+1)\\n }\\n \\n \"},\"id\":\"1903\",\"type\":\"CustomJS\"},{\"attributes\":{\"data\":{\"x\":[-0.00012,0.00012],\"y\":[0,0]},\"selected\":{\"id\":\"2131\"},\"selection_policy\":{\"id\":\"2130\"}},\"id\":\"1774\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"args\":{\"M_diag\":{\"id\":\"1386\"},\"M_stress_diag\":{\"id\":\"1664\"},\"V_diag\":{\"id\":\"1372\"},\"V_stress_diag\":{\"id\":\"1684\"},\"arr_head\":{\"id\":\"1253\"},\"bending_strain_diag\":{\"id\":\"1766\"},\"centroid\":{\"id\":\"1676\"},\"div_P\":{\"id\":\"1259\"},\"div_f\":{\"id\":\"1261\"},\"fN\":{\"id\":\"1237\"},\"fP\":{\"id\":\"1225\"},\"fRx\":{\"id\":\"1234\"},\"fRyl\":{\"id\":\"1231\"},\"fRyr\":{\"id\":\"1228\"},\"fV\":{\"id\":\"1240\"},\"label_M_section\":{\"id\":\"1891\"},\"label_N_section\":{\"id\":\"1885\"},\"label_V_section\":{\"id\":\"1897\"},\"neutral_axis\":{\"id\":\"1716\"},\"s_M\":{\"id\":\"1242\"},\"s_q\":{\"id\":\"1005\"},\"s_section_M\":{\"id\":\"1868\"},\"section_M_head\":{\"id\":\"1879\"},\"section_N\":{\"id\":\"1863\"},\"section_V\":{\"id\":\"1866\"},\"sigma_stress_diag\":{\"id\":\"1704\"},\"source\":{\"id\":\"1007\"},\"tau_stress_diag\":{\"id\":\"1724\"}},\"code\":\"\\n // retrieve data\\n const db = source.data\\n const q = cb_obj.value\\n const pos = db['x'][0]\\n const L = db['L'][0]\\n\\n // update q\\n db['q'][0] = q\\n db['V'][0] = compute_V(pos, q, L)\\n db['M'][0] = compute_M(pos, q, L)\\n db['Ry_l'][0] = compute_Ry_l(q, L)\\n db['Ry_r'][0] = compute_Ry_r(q, L)\\n\\n // update\\n update_u_load(db, s_q)\\n update_reactions(db, fRx, fRyl, fRyr)\\n update_external_forces(db, fP, div_P)\\n update_V_diagram(db, V_diag)\\n update_M_diagram(db, M_diag)\\n update_internal_forces(db, fN, fV, arr_head, s_M)\\n update_div_forces(db, div_f)\\n update_bending_stress_strain(db, M_stress_diag, bending_strain_diag, centroid)\\n update_shear_stress(db, V_stress_diag)\\n update_total_stress(db, sigma_stress_diag, tau_stress_diag, neutral_axis)\\n update_NVM_section(db, section_N, section_V, section_M_head, s_section_M, label_N_section, label_V_section, label_M_section)\\n\\n // apply changes\\n source.change.emit()\\n\\n // declare functions\\n \\n function update_arrow(straight_arrow, intensity, x_start=0, x_end=0, y_start=0, y_end=0, AHF=7) {\\n straight_arrow.end.size = arrow_growth(intensity)*AHF\\n straight_arrow.x_start = x_start\\n straight_arrow.x_end = x_end\\n straight_arrow.y_start = y_start\\n straight_arrow.y_end = y_end\\n straight_arrow.line_width = arrow_growth(intensity)\\n }\\n \\n \\n function linspace(start, stop, discr = 100) {\\n const step = (stop - start) / (discr-1);\\n return Array.from({length: discr}, (_, i) => start + step * i);\\n }\\n \\n \\n function parabola(x, a1, a2, a3) {\\n return Array.from({length: x.length}, (_, i) => a3 * x[i]**2 + a2 * x[i] + a1);\\n }\\n \\n \\n function arrow_alpha(straight_arrow, alpha=1) {\\n straight_arrow.end.line_alpha = alpha\\n straight_arrow.end.fill_alpha = alpha\\n straight_arrow.line_alpha = alpha\\n }\\n \\n \\n function update_arrow(straight_arrow, intensity, x_start=0, x_end=0, y_start=0, y_end=0, AHF=7) {\\n straight_arrow.end.size = arrow_growth(intensity)*AHF\\n straight_arrow.x_start = x_start\\n straight_arrow.x_end = x_end\\n straight_arrow.y_start = y_start\\n straight_arrow.y_end = y_end\\n straight_arrow.line_width = arrow_growth(intensity)\\n }\\n \\n \\n function compute_V(x, q, L) {\\n return q*x-q*L/2\\n }\\n \\n \\n function compute_M(x, q, L) {\\n return q*x/2*(x-L)\\n }\\n \\n \\n function compute_Ry_l(q, L) {\\n return q*L/2\\n }\\n \\n \\n function compute_Ry_r(q, L) {\\n return q*L/2\\n }\\n \\n \\n function update_NVM_diagram(diagram, y) {\\n const y_ = [...y]\\n const source = diagram.data_source\\n y_.unshift(0)\\n y_.push(0)\\n source.data.y = y_\\n source.change.emit()\\n }\\n \\n \\n function update_V_diagram(data, glyph, discr=101) {\\n const L = data['L'][0]\\n const q = data['q'][0]\\n const x = linspace(0, L, 101)\\n const V_discr = Array.from({length: discr}, (_, i) => compute_V(x[i], q, L))\\n update_NVM_diagram(glyph, V_discr)\\n }\\n \\n \\n function update_M_diagram(data, glyph, discr=101) {\\n const L = data['L'][0]\\n const q = data['q'][0]\\n const x = linspace(0, L, 101)\\n const M_discr = Array.from({length: discr}, (_, i) => compute_M(x[i], q, L))\\n update_NVM_diagram(glyph, M_discr)\\n }\\n \\n \\n function update_reactions(data, glyph_Rx, glyph_Ry_l, glyph_Ry_r, alpha=0.3) {\\n const P = data['P'][0]\\n const L = data['L'][0]*data['SCALE'][0]\\n const Ry_l = data['Ry_l'][0]\\n const Ry_r = data['Ry_r'][0]\\n \\n // update visibility\\n switch(data['state'][0]) {\\n case 'IDLE':\\n arrow_alpha(glyph_Rx) // Rx\\n arrow_alpha(glyph_Ry_l) // Ry left\\n arrow_alpha(glyph_Ry_r) // Ry right\\n break\\n case 'R_SEC':\\n arrow_alpha(glyph_Rx, 1) // Rx\\n arrow_alpha(glyph_Ry_l, 1) // Ry left\\n arrow_alpha(glyph_Ry_r, alpha) // Ry right\\n break\\n case 'L_SEC':\\n arrow_alpha(glyph_Rx, alpha) //Rx\\n arrow_alpha(glyph_Ry_l, alpha) //Ry left\\n arrow_alpha(glyph_Ry_r, 1) // Ry right\\n break\\n default:\\n console.error(\\\"State \\\"+data['state'][0]+\\\" in state machine not implemented\\\")\\n }\\n \\n // update size\\n update_arrow(glyph_Rx, -P, -P, 0, 0, 0) // Rx\\n update_arrow(glyph_Ry_r, Ry_r, L, L, -Ry_r, 0) // Ry right\\n update_arrow(glyph_Ry_l, Ry_l, 0, 0, -Ry_l, 0) // Ry left\\n }\\n \\n \\n function update_external_forces(data, glyph_P, div_P, alpha=0.3) {\\n const P = data['P'][0]\\n const L = data['L'][0]*data['SCALE'][0]\\n \\n // update visibility\\n switch(data['state'][0]) {\\n case 'IDLE':\\n arrow_alpha(glyph_P) // P\\n break\\n case 'R_SEC':\\n arrow_alpha(glyph_P, alpha) // P\\n break\\n case 'L_SEC':\\n arrow_alpha(glyph_P, 1) //P\\n break\\n default:\\n console.error(\\\"State \\\"+data['state'][0]+\\\" in state machine not implemented\\\")\\n }\\n \\n // update size\\n if (P==0) {\\n div_P.text = \\\"Axial force P=0 kN (removed)\\\"\\n update_arrow(glyph_P) // P\\n } else {\\n div_P.text = \\\"Axial force P=\\\"+P+\\\" kN (applied)\\\"\\n update_arrow(glyph_P, P, L+P, L, 0, 0) // P\\n }\\n }\\n \\n \\n function update_u_load(data, source_q, OFFSET_Q=4) {\\n const q = data['q'][0]\\n source_q.data['y'][1] = OFFSET_Q+q\\n source_q.data['y'][2] = OFFSET_Q+q\\n source_q.change.emit()\\n }\\n \\n \\n function update_internal_forces(data, glyph_N, glyph_V, glyph_M_head, source_M, lambda=0.25, offset_N=1.5, offset_V=1) {\\n const pos = data['x'][0]\\n const SCALE = data['SCALE'][0]\\n const N = data['N'][0]\\n const V = data['V'][0]\\n const M = data['M'][0]\\n switch(data['state'][0]) {\\n case 'IDLE':\\n // internal forces\\n update_arrow(glyph_N)\\n update_arrow(glyph_V)\\n update_curvedArrow(0, 0, 0, 0, 0, source_M, glyph_M_head)\\n break;\\n case 'R_SEC':\\n // internal forces\\n update_arrow(glyph_N, -N, pos*SCALE-N+offset_N, pos*SCALE+offset_N, 0, 0)\\n update_arrow(glyph_V, -V, pos*SCALE+offset_V, pos*SCALE+offset_V, -V/2, V/2)\\n var b = 6\\n var c = -M/2*0.8\\n var a = b-lambda*c\\n update_curvedArrow(a, b, c, pos*SCALE, 0, source_M, glyph_M_head)\\n break;\\n case 'L_SEC':\\n // internal forces\\n update_arrow(glyph_N, N, pos*SCALE+N-offset_N, pos*SCALE-offset_N, 0, 0)\\n update_arrow(glyph_V, V, pos*SCALE-offset_V, pos*SCALE-offset_V, V/2, -V/2)\\n var b = -6\\n var c = -M/2*0.8\\n var a = b+lambda*c\\n update_curvedArrow(a, b, c, pos*SCALE, 0, source_M, glyph_M_head)\\n break;\\n default:\\n console.error(\\\"State \\\"+data['state'][0]+\\\" in state machine not implemented\\\")\\n }\\n }\\n \\n \\n function update_curvedArrow(a, b, c, pos_x, pos_y, source, arr_head, discr=10, AHF=6) {\\n const data_M = source.data\\n if (c==0) {\\n var a1 = 0\\n var a3 = 0\\n } else {\\n var a1 = b\\n var a3 = (a-b)/c**2\\n }\\n const step = 2*c / (discr-1);\\n const x = Array.from({length: discr}, (_, i) => -c + step * i);\\n const y = Array.from({length: x.length}, (_, i) => a3 * x[i]**2 + a1)\\n var theta = -Math.atan(2/c*(a-b))\\n if (c<0) {\\n theta = theta+Math.PI\\n }\\n data_M['x'] = y.map(y => y+pos_x)\\n data_M['y'] = x.map(x => x+pos_y)\\n \\n arr_head.glyph.size = arrow_growth(2*c)*AHF\\n arr_head.glyph.angle = theta\\n arr_head.glyph.x = y[y.length-1]+pos_x\\n arr_head.glyph.y = x[x.length-1]+pos_y\\n source.change.emit()\\n }\\n \\n \\n function update_axial_stress_strain(data, glyph_stress, glyph_strain, discr=201) { \\n // define parameters\\n const h = data['h'][0]\\n const A = data['A'][0]\\n const E = data['E'][0]\\n const N = data['N'][0]\\n const y_discr = linspace(0, h, discr)\\n let sigma_axial = new Array(discr)\\n let strain_axial = new Array(discr)\\n \\n // compute the arrays\\n for (var i = 0; i < discr; i++) {\\n sigma_axial[i] = compute_sigma_axial(N, A)\\n strain_axial[i] = compute_epsilon_axial(sigma_axial[i], E)\\n }\\n \\n // change the diagrams\\n update_stress_diagram(glyph_stress, sigma_axial, y_discr)\\n update_strain_diagram(glyph_strain, strain_axial, y_discr)\\n }\\n \\n \\n function update_bending_stress_strain(data, glyph_stress, glyph_strain, glyph_centroid, discr=201) { \\n // define parameters\\n const h = data['h'][0]\\n const E = data['E'][0]\\n const Iy = data['Iy'][0]\\n const yG = data['yG'][0]\\n const M = data['M'][0]\\n const y_discr = linspace(0, h, discr)\\n let sigma_bending = new Array(discr)\\n let strain_bending = new Array(discr)\\n const src_centroid = glyph_centroid.data_source\\n \\n // apply the changes\\n src_centroid.data.y = [yG, yG]\\n \\n // compute the arrays\\n for (var i = 0; i < discr; i++) {\\n sigma_bending[i] = compute_sigma_bending(y_discr[i], M, Iy, yG)\\n strain_bending[i] = compute_epsilon_bending(sigma_bending[i], E)\\n }\\n \\n // change the diagrams\\n update_stress_diagram(glyph_stress, sigma_bending, y_discr)\\n update_strain_diagram(glyph_strain, strain_bending, y_discr)\\n src_centroid.change.emit()\\n }\\n \\n \\n function update_shear_stress(data, glyph_stress, discr=201) { \\n // define parameters\\n const h = data['h'][0]\\n const b = data['b'][0]\\n const yG = data['yG'][0]\\n const Iy = data['Iy'][0]\\n const V = data['V'][0]\\n const y_discr = linspace(0, h, discr)\\n let tau_shear = new Array(discr)\\n \\n // compute the arrays\\n for (var i = 0; i < discr; i++) {\\n var S = compute_first_moment_of_area_implicit(y_discr[i], data)\\n tau_shear[i] = compute_tau_shear(V, S, Iy, b)\\n }\\n \\n // change the diagrams\\n update_stress_diagram(glyph_stress, tau_shear, y_discr)\\n }\\n \\n \\n function update_total_stress(data, glyph_sigma, glyph_tau, glyph_neutral_axis, discr=201) { \\n // define parameters\\n const h = data['h'][0]\\n const b = data['b'][0]\\n const M = data['M'][0]\\n const N = data['N'][0]\\n const V = data['V'][0]\\n const A = data['A'][0]\\n const Iy = data['Iy'][0]\\n const yG = data['yG'][0]\\n const y_discr = linspace(0, h, discr)\\n const y_n_axis = compute_neutral_axis(N, A, Iy, M, yG)\\n let sigma_bending = new Array(discr)\\n let tau_shear = new Array(discr)\\n let sigma_axial = new Array(discr)\\n let total_sigma = new Array(discr)\\n let total_tau = new Array(discr)\\n const src_n_axis = glyph_neutral_axis.data_source\\n \\n \\n // apply the changes\\n db['y_n_axis'][0] = y_n_axis\\n src_n_axis.data.y = [y_n_axis, y_n_axis]\\n \\n // compute the arrays\\n for (var i = 0; i < discr; i++) {\\n // sigma\\n sigma_axial[i] = compute_sigma_axial(N, A)\\n sigma_bending[i] = compute_sigma_bending(y_discr[i], M, Iy, yG)\\n total_sigma[i] = compute_total_sigma(sigma_axial[i], sigma_bending[i])\\n // tau\\n var S = compute_first_moment_of_area_implicit(y_discr[i], data)\\n tau_shear[i] = compute_tau_shear(V, S, Iy, b)\\n \\n total_tau[i] = compute_total_tau(tau_shear[i])\\n }\\n \\n // change the diagrams\\n update_stress_diagram(glyph_sigma, total_sigma, y_discr)\\n update_stress_diagram(glyph_tau, total_tau, y_discr)\\n src_n_axis.change.emit()\\n }\\n \\n \\n function compute_epsilon_bending(sigma_bending, E) {\\n return sigma_bending/E*100\\n }\\n \\n \\n function compute_sigma_axial(N, A) {\\n return N*1000/A\\n }\\n \\n \\n function update_stress_diagram(diagram, x, y) {\\n const x_ = [...x]\\n const y_ = [...y]\\n const source = diagram.data_source\\n x_.unshift(0)\\n x_.push(0)\\n y_.unshift(y[0])\\n y_.push(y[y.length-1])\\n source.data.x = x_\\n source.data.y = y_\\n source.change.emit()\\n }\\n \\n \\n function update_strain_diagram(diagram, x, y) {\\n const source = diagram.data_source\\n source.data.x = x\\n source.data.y = y\\n source.change.emit()\\n }\\n \\n \\n function compute_neutral_axis(N, A, Iy, M, yG) {\\n if (M == 0) {\\n return yG\\n }\\n else {\\n return yG - N/A*Iy/M/1000\\n }\\n }\\n \\n \\n function compute_centroid_y(h) {\\n return h/2\\n }\\n \\n \\n function compute_sigma_bending(y, M, Iy, yG) {\\n return M*1e6/Iy*(y-yG)\\n }\\n \\n \\n function compute_total_sigma(sigma_axial, sigma_bending) {\\n return sigma_bending+sigma_axial\\n }\\n \\n \\n function compute_total_tau(tau_shear, tau_torsion=0) {\\n return tau_shear + tau_torsion\\n }\\n \\n \\n function compute_first_moment_of_area(y, b, h, yG) {\\n return b/2*(h**2/4-(y-yG)**2)\\n }\\n \\n \\n function compute_first_moment_of_area_implicit(y_, data) {\\n return compute_first_moment_of_area(y_, data['b'][0], data['h'][0], data['yG'][0])\\n }\\n \\n \\n function compute_tau_shear(V, S, Iy, b_or_t) {\\n return V*1000*S/(Iy*b_or_t)\\n }\\n \\n \\n function update_div_forces(data, div) {\\n switch(data['state'][0]) {\\n case 'IDLE':\\n var str_sec = \\\"No cross section analysed.\\\"\\n break\\n case 'R_SEC':\\n case 'L_SEC':\\n var str_sec = \\\"Cross section at \\\"+Math.round(data['x'][0]*10)/10+\\\" m.\\\"\\n break\\n default:\\n console.error(\\\"State \\\"+data['state'][0]+\\\" in state machine not implemented\\\")\\n }\\n const P = data['P'][0]\\n const Rx = data['Rx'][0]\\n const Ry_l = Math.round(data['Ry_l'][0]*10)/10\\n const Ry_r = Math.round(data['Ry_r'][0]*10)/10\\n const N = Math.abs(data['N'][0])\\n const V = Math.round(Math.abs(data['V'][0])*10)/10\\n const M = Math.round(data['M'][0]*10)/10\\n \\n div.text = `\\n

Forces and Moments:

\\n P = `+P+` kN
\\n Rx = `+Rx+` kN
\\n Ry (left) = `+Ry_r+` kN
\\n Ry (right) = `+Ry_l+` kN
\\n `+str_sec+`
\\n N = `+N+` kN
\\n V = `+V+` kN
\\n M = `+M+` kNm\\n \\n ` \\n }\\n \\n \\n function update_NVM_section(data, glyph_N, glyph_V, glyph_M_head, source_M, label_N_section, label_V_section, label_M_section, lambda=0.25, offset_N=1.5, offset_V=2) {\\n const x = 0\\n const y = 0\\n const N = data['N'][0]\\n const V = data['V'][0]\\n const M = data['M'][0]\\n \\n update_arrow(glyph_N, -N, x-N+offset_N, x+offset_N, y, y)\\n update_arrow(glyph_V, -V, x+offset_V, x+offset_V, y-V/2, y+V/2)\\n var b = 6\\n var c = -M/2*0.8\\n var a = b-lambda*c\\n update_curvedArrow(a, b, c, x, y, source_M, glyph_M_head)\\n \\n if (N==0) {\\n label_N_section.glyph.text=''\\n } else {\\n label_N_section.glyph.text='N'\\n }\\n \\n if (V==0) {\\n label_V_section.glyph.text=''\\n } else {\\n label_V_section.glyph.text='V'\\n }\\n \\n if (M==0) {\\n label_M_section.glyph.text=''\\n } else {\\n label_M_section.glyph.text='M'\\n }\\n }\\n \\n \\n function arrow_growth(variable) {\\n return Math.log(Math.abs(variable)+1)\\n }\\n \\n \"},\"id\":\"1904\",\"type\":\"CustomJS\"},{\"attributes\":{\"coordinates\":null,\"formatter\":{\"id\":\"2040\"},\"group\":null,\"major_label_policy\":{\"id\":\"2041\"},\"ticker\":{\"id\":\"1796\"},\"visible\":false},\"id\":\"1795\",\"type\":\"LinearAxis\"},{\"attributes\":{\"coordinates\":null,\"end\":{\"id\":\"1862\"},\"group\":null,\"line_color\":{\"value\":\"red\"},\"line_width\":{\"value\":0.0},\"source\":{\"id\":\"2042\"},\"start\":null,\"x_end\":{\"value\":0},\"x_start\":{\"value\":0},\"y_end\":{\"value\":0},\"y_start\":{\"value\":0}},\"id\":\"1863\",\"type\":\"Arrow\"},{\"attributes\":{},\"id\":\"2155\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"width\":10},\"id\":\"1905\",\"type\":\"Spacer\"},{\"attributes\":{},\"id\":\"1314\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"1791\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1789\",\"type\":\"DataRange1d\"},{\"attributes\":{\"source\":{\"id\":\"1856\"}},\"id\":\"1861\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2156\",\"type\":\"Selection\"},{\"attributes\":{\"height\":10},\"id\":\"1908\",\"type\":\"Spacer\"},{\"attributes\":{\"axis_label\":\"Height h [mm]\",\"coordinates\":null,\"formatter\":{\"id\":\"2037\"},\"group\":null,\"major_label_policy\":{\"id\":\"2038\"},\"ticker\":{\"id\":\"1800\"},\"visible\":false},\"id\":\"1799\",\"type\":\"LinearAxis\"},{\"attributes\":{\"axis\":{\"id\":\"1023\"},\"coordinates\":null,\"dimension\":1,\"grid_line_alpha\":0,\"group\":null,\"ticker\":null},\"id\":\"1026\",\"type\":\"Grid\"},{\"attributes\":{\"overlay\":{\"id\":\"1316\"}},\"id\":\"1312\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"line_alpha\":0.1,\"line_width\":1.5,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1858\",\"type\":\"Line\"},{\"attributes\":{\"height\":10},\"id\":\"1906\",\"type\":\"Spacer\"},{\"attributes\":{},\"id\":\"1032\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"1804\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"children\":[{\"id\":\"1107\"},{\"id\":\"1261\"}]},\"id\":\"1907\",\"type\":\"Row\"},{\"attributes\":{},\"id\":\"1024\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis\":{\"id\":\"1795\"},\"coordinates\":null,\"grid_line_alpha\":0,\"group\":null,\"ticker\":null},\"id\":\"1798\",\"type\":\"Grid\"},{\"attributes\":{\"axis\":{\"id\":\"1302\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"1305\",\"type\":\"Grid\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"N and M at position x\"},\"id\":\"1785\",\"type\":\"Title\"},{\"attributes\":{\"fill_color\":{\"value\":\"red\"},\"line_color\":{\"value\":\"red\"},\"size\":{\"value\":0.0}},\"id\":\"1862\",\"type\":\"VeeHead\"},{\"attributes\":{\"data\":{\"text\":[\"z\"],\"x\":[-88.0],\"y\":[0]},\"selected\":{\"id\":\"2097\"},\"selection_policy\":{\"id\":\"2096\"}},\"id\":\"1122\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1796\",\"type\":\"BasicTicker\"},{\"attributes\":{\"line_alpha\":0.2,\"line_width\":1.5,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1859\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1015\",\"type\":\"LinearScale\"},{\"attributes\":{\"axis\":{\"id\":\"1799\"},\"coordinates\":null,\"dimension\":1,\"grid_line_alpha\":0,\"group\":null,\"ticker\":null},\"id\":\"1802\",\"type\":\"Grid\"},{\"attributes\":{\"children\":[{\"id\":\"1041\"},{\"id\":\"1905\"},{\"id\":\"1909\"}]},\"id\":\"1910\",\"type\":\"Row\"},{\"attributes\":{},\"id\":\"1793\",\"type\":\"LinearScale\"},{\"attributes\":{\"line_width\":1.5,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1857\",\"type\":\"Line\"},{\"attributes\":{\"children\":[{\"id\":\"1906\"},{\"id\":\"1108\"},{\"id\":\"1109\"},{\"id\":\"1907\"},{\"id\":\"1908\"},{\"id\":\"1256\"},{\"id\":\"1255\"},{\"id\":\"1257\"},{\"id\":\"1258\"},{\"id\":\"1259\"},{\"id\":\"1260\"}]},\"id\":\"1909\",\"type\":\"Column\"},{\"attributes\":{\"below\":[{\"id\":\"1828\"}],\"center\":[{\"id\":\"1831\"},{\"id\":\"1835\"},{\"id\":\"1866\"}],\"height\":200,\"left\":[{\"id\":\"1832\"}],\"match_aspect\":true,\"renderers\":[{\"id\":\"1860\"},{\"id\":\"1897\"}],\"title\":{\"id\":\"1818\"},\"toolbar\":{\"id\":\"1843\"},\"toolbar_location\":null,\"width\":200,\"x_range\":{\"id\":\"1820\"},\"x_scale\":{\"id\":\"1824\"},\"y_range\":{\"id\":\"1822\"},\"y_scale\":{\"id\":\"1826\"}},\"id\":\"1817\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"1311\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"1800\",\"type\":\"BasicTicker\"},{\"attributes\":{\"width\":200},\"id\":\"1916\",\"type\":\"Spacer\"},{\"attributes\":{},\"id\":\"1020\",\"type\":\"BasicTicker\"},{\"attributes\":{\"children\":[{\"id\":\"1128\"},{\"id\":\"1910\"}]},\"id\":\"1911\",\"type\":\"Column\"},{\"attributes\":{},\"id\":\"2044\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"axis\":{\"id\":\"1019\"},\"coordinates\":null,\"grid_line_alpha\":0,\"group\":null,\"ticker\":null},\"id\":\"1022\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1296\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1808\",\"type\":\"HelpTool\"},{\"attributes\":{\"height\":10},\"id\":\"1912\",\"type\":\"Spacer\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1856\"},\"glyph\":{\"id\":\"1857\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1859\"},\"nonselection_glyph\":{\"id\":\"1858\"},\"view\":{\"id\":\"1861\"}},\"id\":\"1860\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"fill_alpha\":{\"value\":0},\"fill_color\":{\"value\":\"#1f77b4\"},\"hatch_alpha\":{\"value\":0},\"height\":{\"value\":480.0},\"line_alpha\":{\"value\":0},\"line_color\":{\"value\":\"#1f77b4\"},\"width\":{\"value\":240.0},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1075\",\"type\":\"Rect\"},{\"attributes\":{\"children\":[{\"id\":\"1911\"},{\"id\":\"1913\"}]},\"id\":\"1914\",\"type\":\"Row\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"Simple supported beam\"},\"id\":\"1009\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1803\",\"type\":\"PanTool\"},{\"attributes\":{\"children\":[{\"id\":\"1008\"},{\"id\":\"1912\"},{\"id\":\"1262\"},{\"id\":\"1294\"},{\"id\":\"1324\"}]},\"id\":\"1913\",\"type\":\"Column\"},{\"attributes\":{\"overlay\":{\"id\":\"1809\"}},\"id\":\"1805\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1806\",\"type\":\"SaveTool\"},{\"attributes\":{\"width\":200},\"id\":\"1917\",\"type\":\"Spacer\"},{\"attributes\":{\"tools\":[{\"id\":\"1060\"},{\"id\":\"1061\"},{\"id\":\"1062\"},{\"id\":\"1063\"},{\"id\":\"1064\"},{\"id\":\"1065\"}]},\"id\":\"1067\",\"type\":\"Toolbar\"},{\"attributes\":{\"line_alpha\":0.2,\"line_width\":1.5,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1853\",\"type\":\"Line\"},{\"attributes\":{\"tools\":[{\"id\":\"1027\"},{\"id\":\"1028\"},{\"id\":\"1029\"},{\"id\":\"1030\"},{\"id\":\"1031\"},{\"id\":\"1032\"}]},\"id\":\"1034\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"1298\",\"type\":\"LinearScale\"},{\"attributes\":{\"width\":200},\"id\":\"1918\",\"type\":\"Spacer\"},{\"attributes\":{\"line_width\":1.5,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1851\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1807\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"2046\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"children\":[{\"id\":\"1817\"},{\"id\":\"1916\"},{\"id\":\"1543\"},{\"id\":\"1917\"},{\"id\":\"1918\"},{\"id\":\"1608\"}]},\"id\":\"1919\",\"type\":\"Row\"},{\"attributes\":{\"bottom_units\":\"screen\",\"coordinates\":null,\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"group\":null,\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"1809\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"tools\":[{\"id\":\"1280\"},{\"id\":\"1281\"},{\"id\":\"1282\"},{\"id\":\"1283\"},{\"id\":\"1284\"},{\"id\":\"1285\"},{\"id\":\"1366\"}]},\"id\":\"1287\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"1031\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"2047\",\"type\":\"AllLabels\"},{\"attributes\":{\"children\":[{\"id\":\"1784\"},{\"id\":\"1447\"},{\"id\":\"1414\"},{\"id\":\"1511\"},{\"id\":\"1479\"},{\"id\":\"1576\"}]},\"id\":\"1915\",\"type\":\"Row\"},{\"attributes\":{},\"id\":\"1300\",\"type\":\"LinearScale\"},{\"attributes\":{\"tools\":[{\"id\":\"1803\"},{\"id\":\"1804\"},{\"id\":\"1805\"},{\"id\":\"1806\"},{\"id\":\"1807\"},{\"id\":\"1808\"}]},\"id\":\"1810\",\"type\":\"Toolbar\"},{\"attributes\":{\"children\":[{\"id\":\"1914\"},{\"id\":\"1921\"}]},\"id\":\"1922\",\"type\":\"Column\"},{\"attributes\":{},\"id\":\"1310\",\"type\":\"PanTool\"},{\"attributes\":{\"data\":{\"x\":[-1.6666666666666667,0,0,-1.6666666666666667],\"y\":[-10,-10,10,10]},\"selected\":{\"id\":\"2104\"},\"selection_policy\":{\"id\":\"2103\"}},\"id\":\"1850\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1303\",\"type\":\"BasicTicker\"},{\"attributes\":{\"data\":{\"x\":[0],\"y\":[0]},\"selected\":{\"id\":\"2091\"},\"selection_policy\":{\"id\":\"2090\"}},\"id\":\"1074\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"bottom_units\":\"screen\",\"coordinates\":null,\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"group\":null,\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"1066\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"tools\":[{\"id\":\"1310\"},{\"id\":\"1311\"},{\"id\":\"1312\"},{\"id\":\"1313\"},{\"id\":\"1314\"},{\"id\":\"1315\"},{\"id\":\"1380\"}]},\"id\":\"1317\",\"type\":\"Toolbar\"},{\"attributes\":{\"tools\":[{\"id\":\"1836\"},{\"id\":\"1837\"},{\"id\":\"1838\"},{\"id\":\"1839\"},{\"id\":\"1840\"},{\"id\":\"1841\"}]},\"id\":\"1843\",\"type\":\"Toolbar\"},{\"attributes\":{\"coordinates\":null,\"end\":{\"id\":\"1865\"},\"group\":null,\"line_color\":{\"value\":\"red\"},\"line_width\":{\"value\":0.0},\"source\":{\"id\":\"2077\"},\"start\":null,\"x_end\":{\"value\":0},\"x_start\":{\"value\":0},\"y_end\":{\"value\":0},\"y_start\":{\"value\":0}},\"id\":\"1866\",\"type\":\"Arrow\"},{\"attributes\":{\"children\":[{\"id\":\"1915\"},{\"id\":\"1919\"}]},\"id\":\"1920\",\"type\":\"Column\"},{\"attributes\":{},\"id\":\"1028\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"1315\",\"type\":\"HelpTool\"},{\"attributes\":{\"children\":[{\"id\":\"1920\"}]},\"id\":\"1921\",\"type\":\"Row\"},{\"attributes\":{},\"id\":\"1326\",\"type\":\"DataRange1d\"},{\"attributes\":{\"overlay\":{\"id\":\"1033\"}},\"id\":\"1029\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1027\",\"type\":\"PanTool\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1868\"},\"glyph\":{\"id\":\"1870\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1872\"},\"nonselection_glyph\":{\"id\":\"1871\"},\"view\":{\"id\":\"1874\"}},\"id\":\"1873\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"1850\"}},\"id\":\"1855\",\"type\":\"CDSView\"},{\"attributes\":{\"bottom_units\":\"screen\",\"coordinates\":null,\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"group\":null,\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"1316\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"line_alpha\":0.1,\"line_width\":1.5,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1852\",\"type\":\"Line\"},{\"attributes\":{\"data\":{\"x\":[-1.6666666666666667,0,0,-1.6666666666666667],\"y\":[-10,-10,10,10]},\"selected\":{\"id\":\"2144\"},\"selection_policy\":{\"id\":\"2143\"}},\"id\":\"1856\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[10]},\"y\":{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[10]}},\"selected\":{\"id\":\"2106\"},\"selection_policy\":{\"id\":\"2105\"}},\"id\":\"1868\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"fill_color\":{\"value\":\"red\"},\"line_color\":{\"value\":\"red\"},\"size\":{\"value\":0.0}},\"id\":\"1865\",\"type\":\"VeeHead\"},{\"attributes\":{},\"id\":\"2158\",\"type\":\"Selection\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"magenta\"},\"hatch_alpha\":{\"value\":0.2},\"hatch_color\":{\"value\":\"magenta\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"magenta\"},\"size\":{\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"V\"}},\"id\":\"1405\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"2110\",\"type\":\"Selection\"},{\"attributes\":{\"line_width\":3,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1361\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2000\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"2092\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"coordinates\":null,\"end\":{\"id\":\"1179\"},\"group\":null,\"line_color\":{\"value\":\"green\"},\"line_width\":{\"value\":2.3978952727983707},\"source\":{\"id\":\"1951\"},\"start\":null,\"x_end\":{\"value\":6},\"x_start\":{\"value\":7.0},\"y_end\":{\"value\":0},\"y_start\":{\"value\":0}},\"id\":\"1180\",\"type\":\"Arrow\"},{\"attributes\":{\"callback\":null,\"renderers\":[{\"id\":\"1358\"}],\"tooltips\":[[\"Position\",\"@x m\"],[\"Axial force\",\"@y kN\"]]},\"id\":\"1366\",\"type\":\"HoverTool\"},{\"attributes\":{\"line_alpha\":0.1,\"line_width\":3,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1362\",\"type\":\"Line\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1368\"},\"glyph\":{\"id\":\"1369\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1371\"},\"nonselection_glyph\":{\"id\":\"1370\"},\"view\":{\"id\":\"1373\"}},\"id\":\"1372\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.6},\"fill_color\":{\"value\":\"blue\"},\"hatch_alpha\":{\"value\":0.6},\"hatch_color\":{\"value\":\"navy\"},\"height\":{\"value\":0.4},\"line_alpha\":{\"value\":0.6},\"line_color\":{\"value\":\"navy\"},\"width\":{\"value\":6},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1168\",\"type\":\"Rect\"},{\"attributes\":{},\"id\":\"2001\",\"type\":\"Selection\"},{\"attributes\":{\"data\":{\"x\":[3.0],\"y\":[0.6]},\"selected\":{\"id\":\"2019\"},\"selection_policy\":{\"id\":\"2018\"}},\"id\":\"1167\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_alpha\":0.2,\"line_width\":3,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1363\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2093\",\"type\":\"Selection\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1167\"},\"glyph\":{\"id\":\"1168\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1170\"},\"nonselection_glyph\":{\"id\":\"1169\"},\"view\":{\"id\":\"1172\"}},\"id\":\"1171\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"1003\"}},\"id\":\"1365\",\"type\":\"CDSView\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"blue\"},\"hatch_alpha\":{\"value\":0.1},\"hatch_color\":{\"value\":\"navy\"},\"height\":{\"value\":0.4},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"navy\"},\"width\":{\"value\":6},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1169\",\"type\":\"Rect\"},{\"attributes\":{\"fill_color\":{\"value\":\"green\"},\"line_color\":{\"value\":\"green\"},\"size\":{\"value\":16.785266909588593}},\"id\":\"1179\",\"type\":\"VeeHead\"},{\"attributes\":{},\"id\":\"2002\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"blue\"},\"hatch_alpha\":{\"value\":0.2},\"hatch_color\":{\"value\":\"navy\"},\"height\":{\"value\":0.4},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"navy\"},\"width\":{\"value\":6},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1170\",\"type\":\"Rect\"},{\"attributes\":{\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1369\",\"type\":\"Line\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1173\"},\"glyph\":{\"id\":\"1174\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1176\"},\"nonselection_glyph\":{\"id\":\"1175\"},\"view\":{\"id\":\"1178\"}},\"id\":\"1177\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1371\",\"type\":\"Line\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1003\"},\"glyph\":{\"id\":\"1375\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1377\"},\"nonselection_glyph\":{\"id\":\"1376\"},\"view\":{\"id\":\"1379\"}},\"id\":\"1378\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"1167\"}},\"id\":\"1172\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2003\",\"type\":\"Selection\"},{\"attributes\":{\"data\":{\"text\":[\"q\"],\"x\":[-0.2],\"y\":[0.4]},\"selected\":{\"id\":\"2021\"},\"selection_policy\":{\"id\":\"2020\"}},\"id\":\"1173\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data\":{\"x\":[0,0.0,0.06,0.12,0.18,0.24,0.3,0.36,0.42,0.48,0.54,0.6,0.6599999999999999,0.72,0.78,0.84,0.8999999999999999,0.96,1.02,1.08,1.14,1.2,1.26,1.3199999999999998,1.38,1.44,1.5,1.56,1.6199999999999999,1.68,1.74,1.7999999999999998,1.8599999999999999,1.92,1.98,2.04,2.1,2.16,2.2199999999999998,2.28,2.34,2.4,2.46,2.52,2.58,2.6399999999999997,2.6999999999999997,2.76,2.82,2.88,2.94,3.0,3.06,3.12,3.1799999999999997,3.2399999999999998,3.3,3.36,3.42,3.48,3.54,3.5999999999999996,3.6599999999999997,3.7199999999999998,3.78,3.84,3.9,3.96,4.02,4.08,4.14,4.2,4.26,4.32,4.38,4.4399999999999995,4.5,4.56,4.62,4.68,4.74,4.8,4.859999999999999,4.92,4.9799999999999995,5.04,5.1,5.16,5.22,5.279999999999999,5.34,5.3999999999999995,5.46,5.52,5.58,5.64,5.7,5.76,5.819999999999999,5.88,5.9399999999999995,6.0,6],\"y\":[0,-12.0,-11.76,-11.52,-11.28,-11.04,-10.8,-10.56,-10.32,-10.08,-9.84,-9.6,-9.36,-9.120000000000001,-8.879999999999999,-8.64,-8.4,-8.16,-7.92,-7.68,-7.44,-7.2,-6.96,-6.720000000000001,-6.48,-6.24,-6.0,-5.76,-5.5200000000000005,-5.28,-5.04,-4.800000000000001,-4.5600000000000005,-4.32,-4.08,-3.84,-3.5999999999999996,-3.3599999999999994,-3.120000000000001,-2.880000000000001,-2.6400000000000006,-2.4000000000000004,-2.16,-1.92,-1.6799999999999997,-1.4400000000000013,-1.200000000000001,-0.9600000000000009,-0.7200000000000006,-0.4800000000000004,-0.2400000000000002,0.0,0.2400000000000002,0.4800000000000004,0.7199999999999989,0.9599999999999991,1.1999999999999993,1.4399999999999995,1.6799999999999997,1.92,2.16,2.3999999999999986,2.639999999999999,2.879999999999999,3.119999999999999,3.3599999999999994,3.5999999999999996,3.84,4.079999999999998,4.32,4.559999999999999,4.800000000000001,5.039999999999999,5.280000000000001,5.52,5.759999999999998,6.0,6.239999999999998,6.48,6.719999999999999,6.960000000000001,7.199999999999999,7.439999999999998,7.68,7.919999999999998,8.16,8.399999999999999,8.64,8.879999999999999,9.119999999999997,9.36,9.599999999999998,9.84,10.079999999999998,10.32,10.559999999999999,10.8,11.04,11.279999999999998,11.52,11.759999999999998,12.0,0]},\"selected\":{\"id\":\"2031\"},\"selection_policy\":{\"id\":\"2030\"}},\"id\":\"1368\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"text_color\":{\"value\":\"blue\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1174\",\"type\":\"Text\"},{\"attributes\":{\"line_alpha\":0.1,\"line_width\":3,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1376\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2112\",\"type\":\"Selection\"},{\"attributes\":{\"source\":{\"id\":\"1173\"}},\"id\":\"1178\",\"type\":\"CDSView\"},{\"attributes\":{\"source\":{\"id\":\"1368\"}},\"id\":\"1373\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2111\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1007\"},\"glyph\":{\"id\":\"1195\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1197\"},\"nonselection_glyph\":{\"id\":\"1196\"},\"view\":{\"id\":\"1199\"}},\"id\":\"1198\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1370\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2004\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1007\"},\"glyph\":{\"id\":\"1403\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1405\"},\"nonselection_glyph\":{\"id\":\"1404\"},\"view\":{\"id\":\"1407\"}},\"id\":\"1406\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"text_alpha\":{\"value\":0.1},\"text_color\":{\"value\":\"blue\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1175\",\"type\":\"Text\"},{\"attributes\":{},\"id\":\"2152\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"magenta\"},\"hatch_alpha\":{\"value\":0.1},\"hatch_color\":{\"value\":\"magenta\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"magenta\"},\"size\":{\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"M\"}},\"id\":\"1410\",\"type\":\"Circle\"},{\"attributes\":{\"text_alpha\":{\"value\":0.2},\"text_color\":{\"value\":\"blue\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1176\",\"type\":\"Text\"},{\"attributes\":{\"line_alpha\":0.2,\"line_width\":3,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1377\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2005\",\"type\":\"Selection\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1182\"},\"glyph\":{\"id\":\"1183\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1185\"},\"nonselection_glyph\":{\"id\":\"1184\"},\"view\":{\"id\":\"1187\"}},\"id\":\"1186\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_width\":3,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1375\",\"type\":\"Line\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"magenta\"},\"hatch_alpha\":{\"value\":0.5},\"hatch_color\":{\"value\":\"magenta\"},\"line_alpha\":{\"value\":0.5},\"line_color\":{\"value\":\"magenta\"},\"size\":{\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1189\",\"type\":\"Circle\"},{\"attributes\":{\"text_align\":{\"value\":\"right\"},\"text_baseline\":{\"value\":\"middle\"},\"text_color\":{\"value\":\"gray\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1123\",\"type\":\"Text\"},{\"attributes\":{\"data\":{\"text\":[\"P\"],\"x\":[6.5],\"y\":[0.2]},\"selected\":{\"id\":\"2023\"},\"selection_policy\":{\"id\":\"2022\"}},\"id\":\"1182\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"callback\":null,\"renderers\":[{\"id\":\"1372\"}],\"tooltips\":[[\"Position\",\"@x m\"],[\"Shear force\",\"@y kN\"]]},\"id\":\"1380\",\"type\":\"HoverTool\"},{\"attributes\":{},\"id\":\"2094\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"source\":{\"id\":\"1182\"}},\"id\":\"1187\",\"type\":\"CDSView\"},{\"attributes\":{\"text_color\":{\"value\":\"green\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1183\",\"type\":\"Text\"},{\"attributes\":{\"source\":{\"id\":\"1003\"}},\"id\":\"1379\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2095\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"2133\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1007\"},\"glyph\":{\"id\":\"1189\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1191\"},\"nonselection_glyph\":{\"id\":\"1190\"},\"view\":{\"id\":\"1193\"}},\"id\":\"1192\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1382\"},\"glyph\":{\"id\":\"1383\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1385\"},\"nonselection_glyph\":{\"id\":\"1384\"},\"view\":{\"id\":\"1387\"}},\"id\":\"1386\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"text_alpha\":{\"value\":0.1},\"text_color\":{\"value\":\"green\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1184\",\"type\":\"Text\"},{\"attributes\":{\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1383\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2134\",\"type\":\"Selection\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"magenta\"},\"hatch_alpha\":{\"value\":0.1},\"hatch_color\":{\"value\":\"magenta\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"magenta\"},\"size\":{\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1190\",\"type\":\"Circle\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1385\",\"type\":\"Line\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1003\"},\"glyph\":{\"id\":\"1389\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1391\"},\"nonselection_glyph\":{\"id\":\"1390\"},\"view\":{\"id\":\"1393\"}},\"id\":\"1392\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"text_alpha\":{\"value\":0.2},\"text_color\":{\"value\":\"green\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1185\",\"type\":\"Text\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"magenta\"},\"hatch_alpha\":{\"value\":0.2},\"hatch_color\":{\"value\":\"magenta\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"magenta\"},\"size\":{\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1191\",\"type\":\"Circle\"},{\"attributes\":{\"data\":{\"x\":[0,0.0,0.06,0.12,0.18,0.24,0.3,0.36,0.42,0.48,0.54,0.6,0.6599999999999999,0.72,0.78,0.84,0.8999999999999999,0.96,1.02,1.08,1.14,1.2,1.26,1.3199999999999998,1.38,1.44,1.5,1.56,1.6199999999999999,1.68,1.74,1.7999999999999998,1.8599999999999999,1.92,1.98,2.04,2.1,2.16,2.2199999999999998,2.28,2.34,2.4,2.46,2.52,2.58,2.6399999999999997,2.6999999999999997,2.76,2.82,2.88,2.94,3.0,3.06,3.12,3.1799999999999997,3.2399999999999998,3.3,3.36,3.42,3.48,3.54,3.5999999999999996,3.6599999999999997,3.7199999999999998,3.78,3.84,3.9,3.96,4.02,4.08,4.14,4.2,4.26,4.32,4.38,4.4399999999999995,4.5,4.56,4.62,4.68,4.74,4.8,4.859999999999999,4.92,4.9799999999999995,5.04,5.1,5.16,5.22,5.279999999999999,5.34,5.3999999999999995,5.46,5.52,5.58,5.64,5.7,5.76,5.819999999999999,5.88,5.9399999999999995,6.0,6],\"y\":[0,-0.0,-0.7128,-1.4112,-2.0952,-2.7647999999999997,-3.42,-4.0607999999999995,-4.6872,-5.299199999999999,-5.896800000000001,-6.48,-7.048799999999999,-7.6032,-8.1432,-8.6688,-9.179999999999998,-9.6768,-10.1592,-10.6272,-11.0808,-11.52,-11.9448,-12.355199999999998,-12.751199999999999,-13.132800000000001,-13.5,-13.852799999999998,-14.191199999999998,-14.5152,-14.8248,-15.12,-15.4008,-15.6672,-15.919199999999998,-16.1568,-16.38,-16.5888,-16.7832,-16.9632,-17.1288,-17.28,-17.4168,-17.5392,-17.6472,-17.7408,-17.82,-17.8848,-17.9352,-17.9712,-17.9928,-18.0,-17.9928,-17.9712,-17.935200000000002,-17.8848,-17.82,-17.7408,-17.6472,-17.5392,-17.4168,-17.28,-17.128800000000002,-16.9632,-16.7832,-16.5888,-16.38,-16.1568,-15.919200000000002,-15.6672,-15.400800000000002,-15.12,-14.824800000000002,-14.515199999999998,-14.1912,-13.852800000000002,-13.5,-13.132800000000003,-12.751199999999999,-12.355200000000002,-11.944799999999999,-11.520000000000001,-11.080800000000004,-10.6272,-10.159200000000004,-9.6768,-9.180000000000003,-8.6688,-8.143200000000002,-7.6032000000000055,-7.048800000000002,-6.480000000000005,-5.896800000000001,-5.299200000000004,-4.687199999999999,-4.060800000000003,-3.419999999999998,-2.7648000000000024,-2.095200000000007,-1.4112000000000011,-0.7128000000000059,0.0,0]},\"selected\":{\"id\":\"2034\"},\"selection_policy\":{\"id\":\"2033\"}},\"id\":\"1382\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"source\":{\"id\":\"1007\"}},\"id\":\"1193\",\"type\":\"CDSView\"},{\"attributes\":{\"line_alpha\":0.1,\"line_width\":3,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1390\",\"type\":\"Line\"},{\"attributes\":{\"axis\":{\"id\":\"1306\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"1309\",\"type\":\"Grid\"},{\"attributes\":{\"source\":{\"id\":\"1005\"}},\"id\":\"1217\",\"type\":\"CDSView\"},{\"attributes\":{\"source\":{\"id\":\"1382\"}},\"id\":\"1387\",\"type\":\"CDSView\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"magenta\"},\"hatch_alpha\":{\"value\":0.1},\"hatch_color\":{\"value\":\"magenta\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"magenta\"},\"size\":{\"value\":10},\"x\":{\"field\":\"xF\"},\"y\":{\"field\":\"y\"}},\"id\":\"1196\",\"type\":\"Circle\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1384\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"1007\"}},\"id\":\"1407\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1307\",\"type\":\"BasicTicker\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"magenta\"},\"hatch_alpha\":{\"value\":0.5},\"hatch_color\":{\"value\":\"magenta\"},\"line_alpha\":{\"value\":0.5},\"line_color\":{\"value\":\"magenta\"},\"size\":{\"value\":10},\"x\":{\"field\":\"xF\"},\"y\":{\"field\":\"y\"}},\"id\":\"1195\",\"type\":\"Circle\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"magenta\"},\"hatch_alpha\":{\"value\":0.5},\"hatch_color\":{\"value\":\"magenta\"},\"line_alpha\":{\"value\":0.5},\"line_color\":{\"value\":\"magenta\"},\"size\":{\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"V\"}},\"id\":\"1403\",\"type\":\"Circle\"},{\"attributes\":{\"fill_alpha\":0.3,\"fill_color\":\"blue\",\"hatch_alpha\":0.3,\"hatch_color\":\"navy\",\"line_alpha\":0.3,\"line_color\":\"navy\",\"x\":{\"field\":\"x_fade\"},\"y\":{\"field\":\"y\"}},\"id\":\"1219\",\"type\":\"Patch\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1004\"},\"glyph\":{\"id\":\"1201\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1203\"},\"nonselection_glyph\":{\"id\":\"1202\"},\"view\":{\"id\":\"1205\"}},\"id\":\"1204\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_width\":3,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1389\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"1007\"}},\"id\":\"1199\",\"type\":\"CDSView\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"magenta\"},\"hatch_alpha\":{\"value\":0.5},\"hatch_color\":{\"value\":\"magenta\"},\"line_alpha\":{\"value\":0.5},\"line_color\":{\"value\":\"magenta\"},\"size\":{\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"M\"}},\"id\":\"1409\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"2096\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"magenta\"},\"hatch_alpha\":{\"value\":0.2},\"hatch_color\":{\"value\":\"magenta\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"magenta\"},\"size\":{\"value\":10},\"x\":{\"field\":\"xF\"},\"y\":{\"field\":\"y\"}},\"id\":\"1197\",\"type\":\"Circle\"},{\"attributes\":{\"line_alpha\":0.2,\"line_width\":3,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1391\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2045\",\"type\":\"AllLabels\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1206\"},\"glyph\":{\"id\":\"1207\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1209\"},\"nonselection_glyph\":{\"id\":\"1208\"},\"view\":{\"id\":\"1211\"}},\"id\":\"1210\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2097\",\"type\":\"Selection\"},{\"attributes\":{\"bottom_units\":\"screen\",\"coordinates\":null,\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"group\":null,\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"right_units\":\"screen\",\"syncable\":false,\"top_units\":\"screen\"},\"id\":\"1503\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1201\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"1003\"}},\"id\":\"1393\",\"type\":\"CDSView\"},{\"attributes\":{\"fill_alpha\":0.1,\"fill_color\":\"blue\",\"hatch_alpha\":0.1,\"hatch_color\":\"navy\",\"line_alpha\":0.1,\"line_color\":\"navy\",\"x\":{\"field\":\"x_fade\"},\"y\":{\"field\":\"y\"}},\"id\":\"1220\",\"type\":\"Patch\"},{\"attributes\":{\"below\":[{\"id\":\"1425\"}],\"center\":[{\"id\":\"1428\"},{\"id\":\"1432\"}],\"height\":200,\"left\":[{\"id\":\"1429\"}],\"renderers\":[{\"id\":\"1644\"},{\"id\":\"1650\"},{\"id\":\"1656\"}],\"title\":{\"id\":\"1415\"},\"toolbar\":{\"id\":\"1440\"},\"toolbar_location\":null,\"width\":200,\"x_range\":{\"id\":\"1417\"},\"x_scale\":{\"id\":\"1421\"},\"y_range\":{\"id\":\"1419\"},\"y_scale\":{\"id\":\"1423\"}},\"id\":\"1414\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"line_alpha\":0.1,\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1202\",\"type\":\"Line\"},{\"attributes\":{\"fill_alpha\":0.2,\"fill_color\":\"blue\",\"hatch_alpha\":0.2,\"hatch_color\":\"navy\",\"line_alpha\":0.2,\"line_color\":\"navy\",\"x\":{\"field\":\"x_fade\"},\"y\":{\"field\":\"y\"}},\"id\":\"1221\",\"type\":\"Patch\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"magenta\"},\"hatch_alpha\":{\"value\":0.1},\"hatch_color\":{\"value\":\"magenta\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"magenta\"},\"size\":{\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"V\"}},\"id\":\"1404\",\"type\":\"Circle\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1007\"},\"glyph\":{\"id\":\"1409\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1411\"},\"nonselection_glyph\":{\"id\":\"1410\"},\"view\":{\"id\":\"1413\"}},\"id\":\"1412\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":0.2,\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1203\",\"type\":\"Line\"},{\"attributes\":{\"fill_color\":{\"value\":\"orange\"},\"line_color\":{\"value\":\"orange\"},\"size\":{\"value\":17.954645502230758}},\"id\":\"1230\",\"type\":\"VeeHead\"},{\"attributes\":{\"tools\":[{\"id\":\"1497\"},{\"id\":\"1498\"},{\"id\":\"1499\"},{\"id\":\"1500\"},{\"id\":\"1501\"},{\"id\":\"1502\"},{\"id\":\"1678\"}]},\"id\":\"1504\",\"type\":\"Toolbar\"},{\"attributes\":{\"below\":[{\"id\":\"1457\"}],\"center\":[{\"id\":\"1460\"},{\"id\":\"1464\"}],\"height\":200,\"left\":[{\"id\":\"1461\"}],\"renderers\":[{\"id\":\"1744\"},{\"id\":\"1750\"},{\"id\":\"1756\"}],\"title\":{\"id\":\"1448\"},\"toolbar\":{\"id\":\"1472\"},\"toolbar_location\":null,\"width\":200,\"x_range\":{\"id\":\"1450\"},\"x_scale\":{\"id\":\"1453\"},\"y_range\":{\"id\":\"1419\"},\"y_scale\":{\"id\":\"1455\"}},\"id\":\"1447\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"source\":{\"id\":\"1004\"}},\"id\":\"1205\",\"type\":\"CDSView\"},{\"attributes\":{\"source\":{\"id\":\"1007\"}},\"id\":\"1413\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2006\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"source\":{\"id\":\"1206\"}},\"id\":\"1211\",\"type\":\"CDSView\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.2},\"fill_color\":{\"value\":\"magenta\"},\"hatch_alpha\":{\"value\":0.2},\"hatch_color\":{\"value\":\"magenta\"},\"line_alpha\":{\"value\":0.2},\"line_color\":{\"value\":\"magenta\"},\"size\":{\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"M\"}},\"id\":\"1411\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"2114\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"line_alpha\":0.2,\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1207\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1426\",\"type\":\"BasicTicker\"},{\"attributes\":{\"line_alpha\":0.2,\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1209\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2007\",\"type\":\"AllLabels\"},{\"attributes\":{\"data\":{\"x\":[0,60],\"y\":[0,0]},\"selected\":{\"id\":\"1986\"},\"selection_policy\":{\"id\":\"1985\"}},\"id\":\"1206\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1417\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"2115\",\"type\":\"Selection\"},{\"attributes\":{\"below\":[{\"id\":\"1489\"}],\"center\":[{\"id\":\"1492\"},{\"id\":\"1496\"}],\"height\":200,\"left\":[{\"id\":\"1493\"}],\"renderers\":[{\"id\":\"1664\"},{\"id\":\"1670\"},{\"id\":\"1676\"}],\"title\":{\"id\":\"1480\"},\"toolbar\":{\"id\":\"1504\"},\"toolbar_location\":null,\"width\":200,\"x_range\":{\"id\":\"1482\"},\"x_scale\":{\"id\":\"1485\"},\"y_range\":{\"id\":\"1419\"},\"y_scale\":{\"id\":\"1487\"}},\"id\":\"1479\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"line_alpha\":0.1,\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1208\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2135\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1005\"},\"glyph\":{\"id\":\"1219\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1221\"},\"nonselection_glyph\":{\"id\":\"1220\"},\"view\":{\"id\":\"1223\"}},\"id\":\"1222\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1423\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2008\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1005\"},\"glyph\":{\"id\":\"1213\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1215\"},\"nonselection_glyph\":{\"id\":\"1214\"},\"view\":{\"id\":\"1217\"}},\"id\":\"1216\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1419\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"2116\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"fill_color\":{\"value\":\"green\"},\"line_color\":{\"value\":\"green\"},\"size\":{\"value\":16.785266909588593}},\"id\":\"1224\",\"type\":\"VeeHead\"},{\"attributes\":{\"coordinates\":null,\"group\":null,\"text\":\"Axial stress\"},\"id\":\"1415\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"2136\",\"type\":\"Selection\"},{\"attributes\":{\"source\":{\"id\":\"1005\"}},\"id\":\"1223\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2009\",\"type\":\"AllLabels\"},{\"attributes\":{},\"id\":\"2117\",\"type\":\"Selection\"},{\"attributes\":{\"coordinates\":null,\"end\":{\"id\":\"1224\"},\"group\":null,\"line_color\":{\"value\":\"green\"},\"line_width\":{\"value\":2.3978952727983707},\"source\":{\"id\":\"1938\"},\"start\":null,\"x_end\":{\"value\":60},\"x_start\":{\"value\":70},\"y_end\":{\"value\":0},\"y_start\":{\"value\":0}},\"id\":\"1225\",\"type\":\"Arrow\"},{\"attributes\":{\"axis\":{\"id\":\"1425\"},\"coordinates\":null,\"group\":null,\"ticker\":null},\"id\":\"1428\",\"type\":\"Grid\"},{\"attributes\":{\"fill_color\":{\"value\":\"orange\"},\"line_color\":{\"value\":\"orange\"},\"size\":{\"value\":17.954645502230758}},\"id\":\"1227\",\"type\":\"VeeHead\"},{\"attributes\":{},\"id\":\"1421\",\"type\":\"LinearScale\"},{\"attributes\":{\"fill_color\":{\"value\":\"red\"},\"line_color\":{\"value\":\"red\"},\"size\":{\"value\":0.0}},\"id\":\"1236\",\"type\":\"VeeHead\"},{\"attributes\":{\"axis_label\":\"Stress \\u03c3\\u2099 [MPa]\",\"coordinates\":null,\"formatter\":{\"id\":\"2052\"},\"group\":null,\"major_label_policy\":{\"id\":\"2053\"},\"ticker\":{\"id\":\"1426\"}},\"id\":\"1425\",\"type\":\"LinearAxis\"},{\"attributes\":{\"fill_color\":{\"value\":\"orange\"},\"line_color\":{\"value\":\"orange\"},\"size\":{\"value\":16.785266909588593}},\"id\":\"1233\",\"type\":\"VeeHead\"},{\"attributes\":{},\"id\":\"1450\",\"type\":\"DataRange1d\"},{\"attributes\":{\"coordinates\":null,\"end\":{\"id\":\"1236\"},\"group\":null,\"line_color\":{\"value\":\"red\"},\"line_width\":{\"value\":0.0},\"source\":{\"id\":\"1942\"},\"start\":null,\"x_end\":{\"value\":0},\"x_start\":{\"value\":0},\"y_end\":{\"value\":0},\"y_start\":{\"value\":0}},\"id\":\"1237\",\"type\":\"Arrow\"},{\"attributes\":{},\"id\":\"1434\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"coordinates\":null,\"end\":{\"id\":\"1227\"},\"group\":null,\"line_color\":{\"value\":\"orange\"},\"line_width\":{\"value\":2.5649493574615367},\"source\":{\"id\":\"1939\"},\"start\":null,\"x_end\":{\"value\":60},\"x_start\":{\"value\":60},\"y_end\":{\"value\":0},\"y_start\":{\"value\":-12.0}},\"id\":\"1228\",\"type\":\"Arrow\"},{\"attributes\":{\"coordinates\":null,\"end\":{\"id\":\"1239\"},\"group\":null,\"line_color\":{\"value\":\"red\"},\"line_width\":{\"value\":0.0},\"source\":{\"id\":\"1943\"},\"start\":null,\"x_end\":{\"value\":0},\"x_start\":{\"value\":0},\"y_end\":{\"value\":0},\"y_start\":{\"value\":0}},\"id\":\"1240\",\"type\":\"Arrow\"},{\"attributes\":{\"axis_label\":\"Height h [mm]\",\"coordinates\":null,\"formatter\":{\"id\":\"2049\"},\"group\":null,\"major_label_policy\":{\"id\":\"2050\"},\"ticker\":{\"id\":\"1430\"},\"visible\":false},\"id\":\"1429\",\"type\":\"LinearAxis\"},{\"attributes\":{\"coordinates\":null,\"end\":{\"id\":\"1230\"},\"group\":null,\"line_color\":{\"value\":\"orange\"},\"line_width\":{\"value\":2.5649493574615367},\"source\":{\"id\":\"1940\"},\"start\":null,\"x_end\":{\"value\":0},\"x_start\":{\"value\":0},\"y_end\":{\"value\":0},\"y_start\":{\"value\":-12.0}},\"id\":\"1231\",\"type\":\"Arrow\"},{\"attributes\":{\"axis\":{\"id\":\"1429\"},\"coordinates\":null,\"dimension\":1,\"group\":null,\"ticker\":null},\"id\":\"1432\",\"type\":\"Grid\"},{\"attributes\":{\"fill_color\":{\"value\":\"red\"},\"line_color\":{\"value\":\"red\"},\"size\":{\"value\":0.0}},\"id\":\"1239\",\"type\":\"VeeHead\"},{\"attributes\":{},\"id\":\"1430\",\"type\":\"BasicTicker\"},{\"attributes\":{\"coordinates\":null,\"end\":{\"id\":\"1233\"},\"group\":null,\"line_color\":{\"value\":\"orange\"},\"line_width\":{\"value\":2.3978952727983707},\"source\":{\"id\":\"1941\"},\"start\":null,\"x_end\":{\"value\":0},\"x_start\":{\"value\":-10},\"y_end\":{\"value\":0},\"y_start\":{\"value\":0}},\"id\":\"1234\",\"type\":\"Arrow\"},{\"attributes\":{\"line_color\":\"red\",\"line_width\":3,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1244\",\"type\":\"Line\"},{\"attributes\":{\"data\":{},\"selected\":{\"id\":\"2100\"},\"selection_policy\":{\"id\":\"2099\"}},\"id\":\"2010\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1438\",\"type\":\"HelpTool\"},{\"attributes\":{\"fill_color\":{\"value\":\"red\"},\"line_color\":{\"value\":\"red\"},\"marker\":{\"value\":\"triangle\"},\"size\":{\"value\":0},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1250\",\"type\":\"Scatter\"},{\"attributes\":{},\"id\":\"1433\",\"type\":\"PanTool\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[10]},\"y\":{\"__ndarray__\":\"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=\",\"dtype\":\"float64\",\"order\":\"little\",\"shape\":[10]}},\"selected\":{\"id\":\"1990\"},\"selection_policy\":{\"id\":\"1989\"}},\"id\":\"1242\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"overlay\":{\"id\":\"1439\"}},\"id\":\"1435\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"data\":{\"x\":[0.0],\"y\":[0.0]},\"selected\":{\"id\":\"1992\"},\"selection_policy\":{\"id\":\"1991\"}},\"id\":\"1249\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1436\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"2118\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"coordinates\":null,\"data_source\":{\"id\":\"1242\"},\"glyph\":{\"id\":\"1244\"},\"group\":null,\"hover_glyph\":null,\"muted_glyph\":{\"id\":\"1246\"},\"nonselection_glyph\":{\"id\":\"1245\"},\"view\":{\"id\":\"1248\"}},\"id\":\"1247\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"data\":{},\"selected\":{\"id\":\"2102\"},\"selection_policy\":{\"id\":\"2101\"}},\"id\":\"2011\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1437\",\"type\":\"ResetTool\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"red\",\"line_width\":3,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1245\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2099\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"2119\",\"type\":\"Selection\"},{\"attributes\":{\"line_alpha\":0.2,\"line_color\":\"red\",\"line_width\":3,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1246\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"1242\"}},\"id\":\"1248\",\"type\":\"CDSView\"}],\"root_ids\":[\"1924\"]},\"title\":\"Bokeh Application\",\"version\":\"2.4.2\"}};\n", " const render_items = [{\"docid\":\"8cb004cd-7d18-4bc4-989a-350d46a80772\",\"root_ids\":[\"1924\"],\"roots\":{\"1924\":\"84fa22ec-cc0c-4de4-9dfa-2f183159d7e8\"}}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", "\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " let attempts = 0;\n", " const timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " clearInterval(timer);\n", " embed_document(root);\n", " } else {\n", " attempts++;\n", " if (attempts > 100) {\n", " clearInterval(timer);\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " }\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "1924" } }, "output_type": "display_data" } ], "source": [ "hidden_code_nb_stress.main_code(L, h, b, A, Iy, Iz, yG, y_n_axis, q, P, E, N, V, M, Rx, Ry_l, Ry_r, discr_NVM, x_discr, N_discr, V_discr, M_discr)" ] }, { "cell_type": "markdown", "metadata": { "tags": [] }, "source": [ "## **Legend**\n", "\n", "Brief description on how to use the interactive visualization tool. For more information on specific features, check the comments in the desired file in the HiddenCode folder.\n", "\n", "* **Slider of the width b:** move the slider to change the width b of the cross-section of the beam.\n", "* **Slider of height h:** move the slider to change the height h of the cross-section of the beam.\n", "* **Slider of the position x:** move the slider to change the position x along the beam.\n", "* **Slider of the uniform load q:** move the slider to change the uniform load q.\n", "* **Textbox \"Geometrical and mechanical parameters:** small summary with the value of h, b, L, A (area), Iy (inertia with respect to the strong axis) and Iz (inertia with respect to the weak axis).\n", "* **Textbox \"Forces and Moments:** small summary with the value of the magnitude of the reaction forces and the internal forces at the position x.\n", "* **Figure \"Simple supported beam\":** in this figure, the initial state is presented with the static scheme, the length of the beam, the horizontal force P and the uniform load q.\n", "* **Figure \"Cross-section of the beam\":** in this figure, the cross section (constant along the beam) and the remaining two axis (y and z) are depicted.\n", "* **Figure \"Forces and Moments Scheme\":** this figure has a dynamic representation of the studied case with the position x indicated by a magenta dot, the internal forces shown in with red arrows, the reaction forces with yellow arrows, the external force P with a green arrow and the uniform load q in blue.\n", "* **Radio buttons of the FBD:** choose between right-hand or left-hand free-body diagram.\n", "* **Button of the force P:** apply or remove the external force P.\n", "* **Figures \"N V M Diagrams\":** plots that show the axial force N, shear force V and bending moment M diagrams, with a magenta dot that represents the x position. By hovering with the cursor over the desired position, a small window will show the position and the value of the internal force.\n", "* **9 small bottom figures:** plots that show the strains, stresses and right-hand free-body diagram section (with N, V and M). By hovering with the cursor over the desired position, a small window will show the height and the value of the stress or strain.\n", "\n", "### Help and Information on the functions\n", "\n", "In Jupyter Notebooks the user can learn more about a function by using the question mark after the target function. One question mark shows some useful information on the function and two question marks show in addition also the code of the function, revealing it's content.\n", "For example, by creating a Code cell and pasting \"beam_section.compute_area?\" or \"beam_section.compute_area??\", it's possible to see how this feature works.\n", "\n", "### Recommendations\n", "\n", "If you have problem visualizing the entirety of the tool, you can maximize the window size by using Ctrl+B or Cmd+B to hide/show the left explorer panel and by using F11 to go to the full-page mode and back in the browser (NB: it could not work in the tab with NOTO; just use F11 in another tab and come back in the NOTO tab). If you're using a very sall display and it's not enough, you can zoom out the browser tab.\n", "\n", "Considering the innate graphical nature of the interactive visualization tool, the input in the definition of the variables with extreme configuration can lead to small glitches or unclear plots; it's recommended to change these values carefully.\n", "\n", "### EXTRA: Note on the slow reactivity of the tool\n", "\n", "The slow reactivity of the tool is given by the two textboxes (called Div Widgets) which automatically call a specific funtion every time they are modified. This function redraws everything in the tool (figures, plots, diagrams, textboxes, sliders, ...), generating this problem. Considering that a real solution does not exist in the current version of the lib used (Bokeh 2.4.2), these textboxes will be removed in the next DEMOs." ] } ], "metadata": { "interpreter": { "hash": "f29f3a16a5c47811d2900cf82e6584cc83572ddcd5db25d9cf9bef77823b3d45" }, "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.8.10" } }, "nbformat": 4, "nbformat_minor": 4 }